协议版本
IPv4协议
网际协议第4版(Internet Protocol version4,IPv4)是TCP/IP协议使用的数据报传输机制。数据报是一个可变长分组,有两部分组成:头部和数据。头部长度可由20~60个字节组成,该部分包含有与路由选择和传输有关的重要信息。头部各字段意义按顺序如下:
(2)头部长度(4位):该字段定义数据报协议头长度,表示协议头部具有32位字长的数量。协议头最小值为5,最大值为15。
(3)服务(8位):该字段定义上层协议对处理当前数据报所期望的服务质量,并对数据报按照重要性级别进行分配。前3位成为优先位,后面4位成为服务类型,最后1位没有定义。这些8位字段用于分配优先级、延迟、吞吐量以及可靠性。
(4)总长度(16位):该字段定义整个IP数据报的字节长度,包括协议头部和数据。其最大值为65535字节。以太网协议对能够封装在一个帧中的数据有最小值和最大值的限制(46~1500个字节)。
(5)标识(16位):该字段包含一个整数,用于识别当前数据报。当数据报分段时,标识字段的值被复制到所有的分段之中。该字段由发送端分配帮助接收端集中数据报分段。
(6)标记(3位):该字段由3位字段构成,其中最低位(MF)控制分段,存在下一个分段置为1,否则置0代表该分段是最后一个分段。中间位(DF)指出数据报是否可进行分段,如果为1则机器不能将该数据报进行分段。第三位即最高位保留不使用,值为0。
(7)分段偏移(13位):该字段指出分段数据在源数据报中的相对位置,支持目标IP适当重建源数据。
(8)生存时间(8位):该字段是一种计数器,在丢弃数据报的每个点值依次减1直至减少为0。这样确保数据报拥有有限的环路过程(即TTL),限制了数据报的寿命。
(9)协议(8位):该字段指出在IP处理过程完成之后,有哪种上层协议接收导入数据报。这个字段的值对接收方的网络层了解数据属于哪个协议很有帮助。
(10)头部校验和(16位):该字段帮助确保IP协议头的完整性。由于某些协议头字段的改变,这就需要对每个点重新计算和检验。计算过程是先将校验和字段置为0,然后将整个头部每16位划分为一部分,将个部分相加,再将计算结果取反码,插入到校验和字段中。
(11)源地址(32位):源主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间必须保持不变。
(12)目的地址(32位):目标主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间同样必须保持不变。
IPv6协议
自从1970年代IPv4问世以来,数据通信技术日新月异有了很大发展。虽然IPv4设计得很好,但其缺点也逐渐显露出来:①虽说借助子网化、无类寻址和NAT技术可以提高IP地址使用效率,因特网中IP地址的耗尽仍然是一个没有彻底解决的问题;②IPv4没有提供对实时音频和视频传输这种要求传输最小时延的策略和预留资源支持;③IPv4不能对某些有数据加密和鉴别要求的应用提供支持。为了克服这些缺点,IPv6(Internet working Protocol version6)被提了出来。在IPv6中,IP地址格式和分组长度以及分组的格式都改变了。IPv6每个分组由必须的基本头部和其后的有效载荷组成。有效载荷由可选的扩展头部和来自上层的数据组成。基本头部占用40字节,有效载荷可以包含65535字节数据。IPv6头部各字段意义按顺序如下:
(1)版本(4位):该字段定义IPv6协议版本,其值为6,负责向处理机所运行的IP软件指明此IP数据报是IPv6版本。
(2)优先级(4位):该字段定义当发生通信拥塞时的分组的优先级。
(3)流标号(24位):该字段用来对特殊的数据流提供专门处理。
(4)有效载荷长度(16位):该字段定义整个IPv6数据报的字节长度,包括基本头部和有效载荷。其最大值为65,535字节。
(5)下一个头部(8位):该字段定义了数据报中跟随在基本头部之后的头部。下一个头部可以是IP所使用的可选扩展头部,也可以是上层协议的头部。
(6)条数限制(8位):该字段与IPv4中生存时间(TTL)字段一样是一种计数器,在丢弃数据报的每个点值依次减1直至减少为0。
(7)源地址(128位):源主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间必须保持不变。
(8)目的地址(128位):目标主机IP地址,该字段在IPv4数据报从源主机到目的主机传输期间同样必须保持不变。
(9)扩展头部:该字段包含6个可选类型,包括逐跳选项、源路由选择、分段、鉴别、加密的安全有效载荷、目的端选项。
IPv4到IPv6的过渡
考虑到因特网上的系统和设备非常之多,想要一次性从IPv4升级到IPv6是无法做到的。而要实现IP版本的升级,需要花费相当多的时间,且升级过程必须是相当平滑的,防止升级过程中出现任何问题。目前IETF(Internet Engineering Task Force,国际互联网工程任务组)设计了三种策略来实现平滑的IP版本升级。
(1)双协议栈策略,就是一个站同时运行IPv4和IPv6,直到整个因特网使用IPv6。当一个分组被发送到目的端时,主机向DNS进行查询。如果DNS返回一个IPv4地址,那么源主机就发送一个IPv4分组,如果返回一个IPv6地址,就发送一个IPv6分组。
(2)隧道技术策略,当两台使用IPv6的计算机要进行相互通信,但其分组数据要通过使用IPv4的网络时,该分组要封装成IPv4分组,而当分组离开时该网络时再去掉这个封装。
(3)头部转换策略,当因特网中绝大多数系统设备已经过渡到IPv6,但一些系统仍然使用IPv4时,发送方想使用IPv6,但接收方不能识别IPv6,这时将IPv6头部格式转换成IPv4头部格式,IPv6地址按照一定规则映射转换为IPv4地址。