一、IPV4
1.IPV4协议简介
IPv4(Internet Protocol version 4)
是网际协议的第四个修订版本,也是该协议第一个被广泛部署和使用的版本。其在1981年9月由IETF发布的RFC791中被描述,是一种面向无连接的协议
,可以在使用分组交换的链路层(如以太网)上运行
。在数据传输方面,IPv4协议会尽最大努力交付数据包
,但不能保证所有数据包能够成功到达目的地,或者按照正确的顺序到达,这些方面由上层的传输协议(如TCP协议)处理
。
2.IPV4地址数量
IPv4协议使用32位(4字节)地址
,其地址空间为4,294,967,296(2^32)个
。其中一些地址被保留用于特定用途,如专用网络(约1800万个地址)和多播地址(约2.7亿个地址),这减少了可供互联网路由的地址数量。
随着地址被分配给最终用户,IPv4地址枯竭问题也日益严重。虽然基于分类网络、无类别域间路由和网络地址转换的地址结构重构减缓了地址枯竭的速度,但在2019年11月26日,全球近43亿个IPv4地址已分配完毕
。
IPv4地址数量的限制刺激了IPv6的部署,IPv6是唯一的长期解决方案。
IPv6使用128位地址空间
,提供了更多的地址,以及更好的安全性和性能。IPv6的广泛部署需要时间和努力,但已经成为解决IPv4地址短缺问题的主要途径。
3.IPV4协议特点
-
面向无连接
:
IPv4是一种面向无连接的协议,每个数据包都是独立的,数据包的传输不需要建立和维护连接状态。这使得IPv4的数据包传输速度较快,但同时也增加了数据包传输的可靠性和安全性方面的挑战。 -
分组交换
:
IPv4协议采用分组交换的技术,将数据分割成一系列小的数据包进行传输,每个数据包都包含了目标地址和源地址等必要的控制信息,这使得数据传输更加高效和灵活。同时,IPv4协议还支持多种传输协议,如TCP、UDP等,可以适应不同的数据传输需求。 -
简单、可靠、稳定
:
IPv4协议的设计非常简单、可靠、稳定,已经被广泛应用于互联网和局域网等各种网络环境中,具有良好的兼容性和稳定性。 -
地址格式
:
IPv4地址是一个32位的二进制数,通常用点分十进制表示法来表示,被分为四段,每段可以取0-255之间的整数。IPv4地址的短缺成为了一个问题,因此引入了私有地址和网络地址转换等技术来缓解IPv4地址短缺的问题。 -
安全性
:
IPv4协议的安全性较低,容易受到各种网络攻击,如IP欺骗、数据包伪造等。因此,为了提高IPv4协议的安全性,通常需要通过路由器、防火墙等网络安全设备来进行加强和保护。
4.IPV4报文结构
IP头部固定20字节,最多为60字节。
版本:占4bit,指IP协议的版本。IPv4或者IPv6
首部长度(又称为头部长度,IHL):占4bit,转换成十进制取值范围就是0-15,单位是4字节。常用5和15两个值,因为首部长度一般为20或者60。
区分服务:占8bit,用来获得更好地服务,QoS使用此标记。
总长度:指首部和数据之和的长度,总长度字段为16位,单位为字节,2的16次方是65536,取值0-65535,数据报最大长度65535。
标识:占16bit,每产生一个数据包,计数器就加1(通过此选项排查是否是同一个设备发过来的)
标志:占3bit,目前只有两位有意义
最低标记位MF(More Fragment),MF=1表示后面“还有分片”的数据包,MF=0表示这已经是最后一个数据包。
DF(Don't Fragment)意思是“不能分片”。只有当DF=0时才允许分片。
片偏移:占13bit,片偏移指出,较长的分组在分片后,某片在原分组的相对位置,MTU默认为1500,大于1500字节的数据包需要进行分片。
生存时间:占8位,最大值为255,生存时间字段常用的英文缩写是 TTL (Time To Live) ,表明这是数据报在网络中的寿命,防止IP报文在网络中无限转发。
协议:占8 位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的 主机的 IP 层知道应将数据部分上交给哪个协议进行处理。
常见协议的协议号:
协议名 | ICMP | IGMP | IP | TCP | EGP | IGP | UDP | IPv6 | ESP | OSPF |
协议字段值 | 1 | 2 | 4 | 6 | 8 | 9 | 17 | 41 | 50 | 89 |
首部检验和:占16 位。这个字段只检验数据报的首部,但不包括数据部分。
源地址:占32 位。
目的地址:占32 位。
5.IPV4报文长度
IPv4报文的最大长度是65,535字节
,这个长度是由IP报文中的16位总长度
字段决定的。该字段的最大值是65535,因为它是一个16位无符号整数,所以IP报文的最大长度不能超过该值
。
需要注意的是,在实际情况下,IP报文的长度
通常会受到网络设备(如路由器、防火墙等)和网络链路的限制
,另外,由于网络传输存在MTU(Maximum Transmission Unit)的限制
,实际上能够传输的最大数据长度通常不会超过MTU值
,一般为1500个字节左右
,因此实际传输的IP报文长度可能会比最大长度小得多
。
网络传输MTU(Maximum Transmission Unit)大小并不是固定的
,它的大小取决于底层网络传输协议和网络设备的配置
。不同的网络传输协议和设备可能会有不同的MTU大小限制。
以太网
是最常见的网络传输协议之一,其MTU大小通常为1500字节
。在以太网上传输的数据包如果超过1500字节,就会被分割成多个小块进行传输。其他网络传输协议的MTU大小可能会有所不同,例如PPP协议的MTU大小通常为1480字节,ATM网络的MTU大小通常为48字节等。
此外,MTU还受到网络设备的配置影响。例如,路由器和交换机等网络设备可以通过配置MTU大小来优化网络传输效率和减少延迟。在实际应用中,为了保证网络传输的稳定性和效率,需要根据具体的网络环境和需求来设置MTU大小,并进行必要的优化和调整。
【考点】IP首部报文经常考察IHL头部长度、数据报报文最大长度、片偏移计算、TTL等字段的题目,必须理解这几个字段。
二、IPV6
1.IPV6简介
IPv6(Internet Protocol version 6)
是网际协议的最新版本,主要是为了解决IPv4地址枯竭问题
,同时它也在其他方面对于IPv4有许多改进,协议由1998年12月公布的 RFC2960 定义。
IPv6的设计目的是取代IPv4
,然而长期以来IPv4在互联网流量中仍占据主要地位,IPv6的使用增长缓慢。在2022年4月,通过IPv6使用Google服务的用户百分率首次超过40%。
虽然IPv6在1994年就已被IETF指定作为IPv4的下一代标准,由于早期的路由器
、防火墙及相关应用程序
皆须改写,所以在世界范围内使用IPv6部署的网络服务与IPv4相比相对较少,技术上仍以双架构并存居多
。
2.IPV6地址数量
IPv6地址总长度为128比特位(16字节)
,分为8组(每组2个字节)
,每组以4个十六进制数
形式表示,组间用冒号分隔。例如:FC00:0000:130F:0000:0000:09C0:876A:130B
因为IPv6地址
使用128位(16字节)
表示,其可以支持约3.4×10²³(2^128)个唯一地址
。这个数量比IPv4地址空间(43亿个地址)大得多,可以满足未来数十年互联网的发展需求。IPv6地址空间的巨大规模不仅可以支持更多的设备连接到互联网,而且还可以提供更好的网络安全性和性能。
3.IPV6协议特点
-
更大的地址空间
:
IPv6地址使用128位长度表示,可以支持约3.4×10²³(2^128)个唯一地址,这个数量比IPv4地址空间(43亿个地址)大得多,可以满足未来数十年互联网的发展需求。 -
改进的寻址和路由机制
:
IPv6协议引入了一些新的寻址和路由机制,包括多播寻址、任播寻址和移动IPv6等,使得网络路由更加高效和灵活。 -
简化的头部结构
:
IPv6协议头部长度固定为40字节,相比于IPv4头部结构更加简化,可以提高网络数据传输效率。 -
可选的扩展首部
:
IPv6定义了许多可选的的扩展首部,不仅可提供比IPv4更多的功能,而且还可以提高路由器的处理效率,因为路由器对逐跳扩展首部外的其他扩展首部都不进行处理。 -
更好的安全性和隐私保护
:
IPv6协议提供了更好的安全性和隐私保护,包括IPsec协议的强制支持、地址隐私扩展等,可以有效地保护网络和用户的隐私。 -
更好的流量控制和服务质量
:
IPv6协议引入了流量控制和服务质量(QoS)机制,可以更好地管理网络流量和提供不同的服务质量,提高用户体验。
4.IPV6报文结构
IPv6
数据报首部长度
为固定的40字节
,在IPv6中所有的扩展首部并不属于IPv6数据报的首部,扩展首部与其后面的数据部分合起来构成有效载荷
。
IPv6基本首部40字节。
版本:占4位,标明协议版本。
通信量类:占8位,区分不同IPv6数据报的类别或优先级。
流标号:占20位,非实时类的数据,流标号没有用处,置为0。
有效载荷长度:占16位,字段最大值65535字节。
下一个首部:占8位,相当于IPv4的协议字段或可选字段。
跳数限制(hop limit):占8位,相当于IPv4协议的TTL值。
源地址:占128位。
目的地址:占128位。
六种扩展首部:
逐跳选项:此扩展头必须紧跟在IPv6基本首部之后,它包含所经路径上的每一个节点都必须检查的选项数据。由于它需要在每个中间路由器都进行处理,所以只有在绝对必要的时候才出现。
路由选择:此扩展头指明数据包在到达目的地途中将经过的各节点的地址列表。
分片:当IPv6 源地址发送的数据包比到达目的地址所经过的路径上的最小MTU还要大时,这个数据包就要被分成几段分别发送,这时就要用到分片头。
鉴别:鉴别头的功能是实现了数据的完整性和对数据来源的认证。
封装安全有效载荷:封装安全有效载荷头提供数据加密功能,实现端到端的加密,提供无连接的完整性和防重发服务。
目的站选项:目的站选项头中携带仅需要最终目的节点检验的可选信息。
5.IPV6负载长度
关于 IPv6 有效载荷长度
:
-
IPv6报文有效载荷长度主要由
Payload Length
字段决定,Payload Length
字段占用16比特位
,用于表示载荷Payload的长度,即除去IPv6报头(固定为40字节)之外的部分。鉴于此字段为16比特,其最大值为2^16 - 1
,即65,535字节
。 -
然而,IPv6还支持一种叫做
Jumbo Payload
的选项。当使用这个选项时,载荷长度可以通过一个名为 Jumbo Payload Option 的扩展报头表示,该扩展报头中有一个32比特(4字节)的字段表示载荷长度。因此,最大载荷长度可以达到2^32 - 1
,即4,294,967,295
字节。
尽管IPv6有效载荷
最大长度可达到4294967295字节
,但其承载的传输层协议数据(如TCP、UDP)仍然受到IPv6网络中MTU的限制
,因此仍然需要遵循最大报文长度65,535字节的限制
。
6.IPV4和IPV6报文比较
ipv4报文结构
ipv6报文结构
IPv6
数据报首部长度
为固定的40字节
,所有的扩展首部并不属于IPv6数据报的首部,扩展首部与其后面的数据部分合起来构成有效载荷
。
由于IPv6地址的长度扩展到了128比特位,使得IPv6数据报基本首部的长度增大到了40字节,比IPv4数据报首部固定部分的长度(20字节)增大了20字节。
与IPv4相比,IPv6对首部某些字段进行更改:
取消了首部长度字段,因为它的首部长度是固定的(40字节)。
取消了服务类型字段,因为优先级和流标号字段实现了服务类型字段的功能取消了总长度字段,改用有效载荷长度字段。
取消了标识、标志和片偏移字段,因为这些功能已包含在分片扩展首部中。
把 TTL 字段改称为跳数限制字段,但作用是一样的(名称与作用更加一致)。
取消了协议字段,改用下一个首部字段。
取消了检验和字段,这样就加快了路由器处理数据报的速度。我们知道,在数据销路层对检测出有差错的帧就丢弃。
取消了选项字段,而用扩展首部来实现选项功能。
三、软考真题
2020年11月网络工程师:
为了控制IP数据报在网络中无限转发,在IP数据报首部中设置了()字段。
A.标识符
B.首部长度
C.生存期
D.总长度
【解析】答案是C,生存期就是TTL字段,当TTL为0时就丢弃数据报不进行转发,防止无限转发消耗资源。
2018年5月网络工程师:
IP数据报首部中IHL(Internet首部长度)字段的最小值为()
A.5
B.20
C.32
D.128
【解析】答案是A。IHL字段取值范围是0-15,最小值是5,最大值是15。
2019年11月网络规划设计师:
IPv4报文的最大长度为()字节
A.1500
B.1518
C.10000
D.65535
【解析】答案是D,报文长度最大16位,2的16次方是65536,因为从0开始计算,则最大长度是65535。
2023年11月网络规划设计师:
IPv6可聚合全球单播地址的格式前缀是()
A.001
B.1111 1111
C.1111 1110 10
D.1111 1110 11
【解析】答案是A。001开头换算成十六进制就是2或者3,全球单播地址。B选项换算是FF组播地址。C选项换算是FE80开头是链路本地地址,D选项换算是FEC0是站点本地地址。
2023年5月网络工程师:
IPv6组播地址的前缀是()
A.FF
B.FE
C.FD
D.FC
【解析】答案选A,IPv6组播地址前缀是8个1,十六进制表示就是FF。
2022年11月网络工程师:
以下关于IPv6与IPv4比较的说法中,错误的是( )。
A.IPv4的头部是变长的,IPv6的头部是定长的
B.IPV6与IPv4中均有头部校验和字段
C.IPv6中的HOP Limit字段作用类似IPv4中的TTL字段
D.IPv6中的Traffic Class字段作用类似于IPv4中的ToS字段
【解析】答案是B。B的错误非常明显,IPv6取消了校验和字段。当然A也有些问题,IPv6头部也可以扩展,但是选择肯定选明显错误的答案。
2019年11月网络工程师:
IPv6链路本地单播地址的前缀是()
A.001
B.1111 1110 10
C.1111 1110 11
D.1111 1111
【解析】答案是B。链路本地地址开头是FE80,二进制表示就是B选项,需要熟悉二进制和十六进制转换。