Skip to main content

IP 协议 & IPv4 & IPv6

OSI 七层模型TCP/IP 五层模型TCP/IP 四层模型对应 UDP对应 TCP/IP 协议族的协议
应用层应用层应用层数据HTTP、TFTP、FTP、NFS、WAIS、SMTP
表示层Telnet、Rlogin、SNMP、Gopher
会话层SMTP、DNS
传输层传输层传输层TCP、UDP
网络层网络层网络层IP、ICMP、IGMP
数据链路层数据链路层网络接口层ARP、RARP、Ethernet、PPP
物理层物理层数据比特流IEEE 802.1A、IEEE 802.2 ~ IEEE 802.11

从前面网络的模型中可以看到位于网络层的 IP 协议。

一、IP 协议的定义

1、什么是 IP 地址

IP 地址是指互联网协议地址,是 IP Address 的缩写。

IP 地址是 IP 协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

IP 地址是一个 32 位的二进制数,比如 127.0.0.1 为本机 IP。

2、什么是 IP 协议

IP(Internet Protocol)协议又称网际协议,它负责 Internet 上网络之间的通信,并规定了将数据从一个网络传输到另一个网络应遵循的规则,是 TCP/IP 协议的核心。

因特网看起来好像是真实存在的,但实际上它是一种并不存在的虚拟网络,只不过是利用 IP 协议把全世界所有愿意接入因特网的计算机局域网连接起来,使得它们彼此之间都能够通信。正如人类进行有效交流需要使用同一种语言一样,计算机之间的通信也要使用同一种“语言”,而 IP 协议正是这种语言。

二、IP 协议的特性

  • IP 协议提供无连接数据报服务,各个数据报独立传输,可能沿着不同的路径到达目的地,也可能不会按序到达目的地。

  • IP 协议不含错误检测或错误恢复的编码,属于不可靠的协议。所谓不可靠,是从数据传输的可靠性不能保证的角度而言的,查询的延误及其他网络通信故障都有可能导致所传数据的丢失。对这种情况,IP 协议本身不处理。它的不可靠并不能说明整个TCP/IP 协议不可靠。如果要求数据传输具有可靠性,则要在 IP 的上面使用 TCP 协议加以保证。位于上一层的 TCP 协议则提供了错误检测和恢复机制。

  • 作为一种点对点协议,虽然 IP 数据报携带源 IP 地址和目的 IP 地址,但进行数据传输时的对等实体(对等实体是指在开放系统互连环境中相互通信的不同节点的同一层中相互对应的实体)一定是相邻设备(同一网络)中的对等实体。

  • IP 协议的效率非常高,实现起来也较简单。这是因为 IP 协议采用了尽力传输的思想,随着底层网络质量的日益提高,IP 协议的尽力传输的优势体现得更加明显。

三、IPv4 协议

IP 协议是在 TCP/IP 协议模型中的重要组成部分,目前使用最多的是 IPv4(Internet Protocol Version 4)协议,IPv6 协议的用户量也在慢慢增加,苹果在几年之前就已经开始支持 IPv6 协议了。

IPv4 数据报格式

  • 版本号(4位):IPv4 的版本就是 4,通信双方的 IP 协议必须要达到一致。

  • 首部长度(4位):最大值为 15,最小值为 5。

  • 区分服务(8位):定义上层协议对处理当前数据报所期望的服务质量,并对数据报按照重要性级别进行分配。

  • 总长度(16位):定义整个 IP 数据报的字节长度,包括协议头部和数据,最大值为 216-1 = 65535。

  • 标识(16位):IP 在存储器中维持一个计数器,每产生一个数据报,计数器就加 1 并赋给标识字段。

  • 标志(3位):一般有用的是前两位:

    • 最低位为 MF,MF = 0 表示这已经是分段传输最后一段报文,MF = 1 表示后面还有若干个数据报。
    • 中间位为 DF,DF = 0 表示报文不能进行分片,DF = 1 表示可以进行分片操作。
  • 片偏移(13位):标记了该段报文在原始报文中的位置,方便接收端进行拼接操作。

  • 生存时间 TTL(8位):表明数据报在网络中的寿命。

  • 协议(8位):用来指明数据报携带了哪种协议。

  • 首部效验和(16位):用来效验数据报首段,帮助确保 IP 协议头的完整性。

  • 源地址(32位):源主机 IP 地址,在整个传输过程中保持不变。

  • 目的地址(32位):目的主机 IP 地址,在整个传输过程中保持不变。

  • 可选字段:长度可变,如果选项存在的话,它在 IPv4 分组中紧跟在基本 IPv4 头部之后。

  • 填充:IP 头是以 32bit 字长为单位,有时需要填充来实现。

  • 数据部分:从传输层封装过来的数据。

四、IPv6 协议

IPv4 最大的问题在于网络地址资源有限,而 IPv6(Internet Protocol Version 6)的使用,不仅能解决网络地址资源数量限制的问题,而且也解决了多种接入设备连入互联网的障碍。

与 IPv4 相比,IPv6 的头部做了如下修改:

1、IPv6 与 IPv4 的区别

  • 取消了首部长度,因为 IPv6 的首部长度是固定 40 个字节。

  • 取消了服务类型,因为流标号和优先级结合起来实现了服务类型的功能。

  • 取消了总长度字段,改用为有效载荷长度,有效载荷就是后面的扩展首部加上数据报中的数据。

  • 取消了标识,标志和片偏移,因为这些功能都包含在了扩展首部里面。

  • 取消了协议字段,改用为下一个首部,功能不变,这样更容易理解。

  • 取消了生存时间 ttl,改用为跳数限制,功能不变,这样更容易理解,更形象了。

  • 取消了首部效验和,这样加快了路由器对数据报的处理速度,在数据链路层中,当我们发现有差错的帧就会抛弃,在运输层中,在 udp 中,当发现有差错就会抛弃,在 tcp 中,当发现有差错就会重传,直到传送到目的进程为止。因此在网路层的检测就可以精简掉。

  • 取消了选项字段,功能归并在了扩展首部上。

2、IPv6 相比 IPv4 的改进

  • IPv6 的地址大小增加到 128 位,解决了 IPv4 地址空间有限(32位)的问题。IPv6 有 3 种表示方法:

    • 冒分十六进制表示法: ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
    • 0 位压缩表示法:FF01:0:0:0:0:0:0:1101 → FF01::1101
    • 内嵌 IPv4 地址表示法:::FFFF:192.168.0.1
  • IPv6 使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。

  • IPv6 增加了增强的组播(Multicast)支持以及对流的控制(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。

  • IPv6 加入了对自动配置(Auto Configuration)的支持。这是对 DHCP 协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。

  • IPv6 具有更高的安全性。在使用 IPv6 网络中用户可以对网络层的数据进行加密并对 IP 报文进行校验,在 IPV6 中的加密与鉴别选项提供了分组的保密性与完整性。极大的增强了网络的安全性。

  • IPV6 允许协议进行扩充。如果新的技术或应用需要时,IPV6 允许协议进行扩充。

  • IPV6 使用新的头部格式,其选项与基本头部分开,如果需要,可将选项插入到基本头部与上层数据之间。这就简化和加速了路由选择过程,因为大多数的选项不需要由路由选择。

  • IPV6 有一些新的选项来实现附加的功能。