计算机网络之IP

    IP协议是TCP/IP协议簇中的核心协议,也是TCP/IP的载体。所有的TCP,UDP,ICMP及IGMP数据都以IP数据报格式传输。

特点

    IP提供不可靠的,无连接的数据传送服务。

不可靠

    不可靠指它不能保证IP数据报能成功到达目的地。IP仅提供最好的传输服务。当发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息给信源。任何要求的可靠性必须由上层来提供。

无连接

    无连接指IP并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B)每个数据报都是独立的进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。

IP路由

路由选择

    IP可以从TCP,UDP,ICMP,IGMP接收数据报并进行发送,或者从一个接口接收数据报并进行发送。IP层在内存中有一个路由表,当收到一份数据报并进行发送时,都要对该表进行搜索。当数据报来自某个接口时,IP首先检查目的IP地址是否为本机的IP地址或广播地址。如果是,数据报就被送到由IP首部协议字段所指定的协议模块进行处理。如果数据报的目的不是这些地址,那么:(1)如果IP层被设置成路由器的功能,那么就对数据报进行转发。(2)数据报被丢弃。

路由表

    路由表是指路由器或者其他互联网网络设备上存储的一张路由信息表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。

  • 目的IP地址:
    可以是一个完整的主机地址,也可以是一个网络地址。
  • 下一跳地址:
    一个直接相连网络上的路由器。下一跳路由器不一定是最终目的地,但它可以把传送给它的数据报转发到目的。
  • 标志:
    其中一个标志指明目的IP地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一跳路由器还是一个直连接口。

IP地址

    IP地址的长度为32位(共有2^32个IP地址),分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。

分类

    IP地址按分段划分成了A~E五中类型。

  • A类型:
    A类地址为政府机构所用,第1个字节为网络地址,后3个字节为主机地址。
    1
    0 XXXXXXX . (XXXXXXXX . XXXXXXXX . XXXXXXXX)    //地址范围1.0.0.0-127.255.255.255
  • B类型:
    B类型地址为大中型企业所用,第1,2个字节为网络地址,后两个字节为主机地址。
    1
    10 XXXXXX . XXXXXXXX. (XXXXXXXX . XXXXXXXX)  //地址范围:128.0.0.0-191.255.255.255
  • C类型:
    C类型用于小型网络,前三个字节为网络号,最后一个字节为主机号。
    1
    110 XXXXX . XXXXXXXX . XXXXXXXX . (XXXXXXXX)  //地址范围:192.0.0.0-223.255.255.255
  • D类型:
    D类地址用于多点广播,即组播,1对多发送。
    1
    1110 XXXX . XXXXXXXX . XXXXXXXX . XXXXXXXX  //地址范围:224.0.0.0-239.255.255.255
  • E类型:
    E类型为特殊网址。以11110开头。
    1
    11110 XXX . XXXXXXXX . XXXXXXXX . XXXXXXXX  //地址范围:240.0.0.0-255.255.255.254
  • 广播地址:
    区别于组播地址,广播地址是对同一路由范围内的所有主机广播。
    1
    11111111 . 11111111 . 11111111 . 11111111 //地址:255.255.255.255

子网掩码

    通俗地说,子网掩码是一种能判定某一IP地址所在子网(广播域),以及与自己在同一子网(广播域)内的其他主机IP地址范围记录方法。

  • 表示方式:

    1. 主机/子网掩码(2进制) 如:
      1
      11000000.10101000.00000001.00000000/11111111.11111111.11111111.11000000
    2. 主机/子网掩码(10进制) 如:192.168.1.0/255.255.255.192
    3. 主机/子网掩码中1的个数 如:192.168.1.0/26
  • 计算子网范围:

    1. 将主机地址转化为2进制编码;
    2. 主机编码位置对应子网掩码中1的部分标识此部分相同的IP地址与当前主机IP地址同属同一子网(对应为0的全为1时表示广播地址)。
      如:192.168.1.199/26与192.168.1.200/24:
      1
      2
      3
      4
      5
      11000000.10101000.00000001.11000111 // 192.168.1.199二进制
      11111111.11111111.11111111.11000000 // 26对应子网掩码
      // 子网范围:192.168.1.192-192.168.1.254
      11000000.10101000.00000001.11001000 // 192.168.1.200二进制
      // 证明两个网址同属一个子网内

      IPV4

    IPv4,是互联网协议(Internet Protocol | IP)的第四版,也是第一个被广泛使用,构成现今互联网技术的基础的协议。

地址格式

    IPv4中规定IP地址长度为32(按TCP/IP参考模型划分) ,即有2^32-1个地址。

地址分布

    中国互联网络信息中心(CNNIC)表示,全球互联网IP地址刚刚突破了一个新的关键临界点,IANA可分配IPv4地址剩余量已不足10%。CNNIC同时呼吁:应尽快从国家层面加快部署向IPv6地址的平稳过渡,避免在下一代互联网发展中掉队。

IPV6

地址格式

    IPv6的地址长度为128b,是IPv4地址长度的4倍。于是IPv4点分十进制格式不再适用,采用十六进制表示。IPv6有3种表示方法:

  1. 冒分十六进制表示法,如:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789;
  2. 0位压缩表示法,在某些情况下,一个IPv6地址中问可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次。如:FF01:0:0:0:0:0:0:1101 → FF01::1101;
  3. 内嵌IPv4地址表示法,为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六进制表示,而最后32b地址则使用IPv4的点分十进制表示,如:::FFFF:192.168.0.1

地址分类

  1. 单播地址
  2. 组播地址
  3. 任播地址: 用来标识一组接口(通常这组接口属于不同的节点)。发送到任播地址的数据报文被传送给此地址所标识的一组接口中距离源节点最近(根据使用的路由协议进行度量)的一个接口。
  4. 广播地址

地址配置协议

    IPv6使用两种地址自动配置协议,分别为无状态地址自动配置协议(SLAAC)和IPv6动态主机配置协议(DHCPv6)。

  • 无状态地址自动配置协议
    无状态地址自动配置的核心是不需要额外的服务器管理地址状态,主机可自行计算地址进行地址自动配置。

  • IPv6动态主机配置协议
    IPv6动态主机配置协议DHCPv6是由IPv4场景下的DHCP发展而来。客户端通过向DHCP服务器发出申请来获取本机IP地址并进行自动配置,DHCP服务器负责管理并维护地址池以及地址与客户端的映射信息。

对比IPV4

  • 地址数量提升
  • IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
  • IPv6增加了增强的组播(Multicast)支持以及对流的控制(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
  • IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
  • IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,在IPV6中的加密与鉴别选项提供了分组的保密性与完整性。极大的增强了网络的安全性。
  • 允许扩充。如果新的技术或应用需要时,IPV6允许协议进行扩充。
  • 更好的头部格式。IPV6使用新的头部格式,其选项与基本头部分开,如果需要,可将选项插入到基本头部与上层数据之间。这就简化和加速了路由选择过程,因为大多数的选项不需要由路由选择。
  • 新的选项。IPV6有一些新的选项来实现附加的功能。