TCP/ IP 网络层协议的核心是 IP (I nternet Protocol) 协议,又叫网间网协议或网际协议。在计算机网络通信过程中,IP 层协议起着核心的作用:其一,提供无连接的数据报传输机制,虽然不能保证传输的可靠性却简单有效;其二,利用 IP 地址和 IP 数据报将各种物理网络技术统一起来,达到屏蔽低层细节,向上提供一致性的目的。IP 层协议的主要功能是 IP 数据报传输及在网间的路由选择,即 IP 路由选择。另外,与 IP 相关的协议和内容有 IP 地址、地址解析、差错控制协议和路由选择协议等。
IP 数据报头部的格式
TCP/ IP 网传输的基本数据单元是 IP 数据报,IP数据报头部的格式如下图所示。
IP数据报由数据报头部和数据两部分组成。数据报头部由 20 字节的固定长度部分和可变长度的任选部分组成。传送顺序是从上至下逐行发送,每行从左至右逐比特发送。 各字段的意义如下。
(1 )版本( Version ) : 4 比特,给出生成该数据报的 IP 协议版本号。IP 协议存在两个版本: I P v4 和 1P v6 , 目 前 的 版本为 IP v4 。
(2) 头部长度:4 比特,给出以 32 比特字长为单位的 IP 分组头的长度。
(3) 服务类型(Type of Service): 用千说明所需要的服务类型。其结构如下图所示。
3 比特的优先级子字段指明数据报的重要程度,按升序排序," O" 为正常优先级," 7"为网络控制分组,可供网络拥塞控制使用。标志位 D、工R 分别表示主机对时延、吞吐量和可靠性的要求;若相应位置" 1"' 表示希望低时延、高吞吐晕和高可靠性。此信息可供路 由器选路时参考。例如,语 音通信可置 n - 1 , 大块文件传送可置 T — 1' 路由器据此可选低时延的租用线路或高吞吐址的卫星链路,还可根据要求确定路由算法中的成本函数。 因为任何一种选择只能是各种性能的折中,所以将 D、T 、R 比特均置为" l " 是没有什么意义的。另外它们只是一种参考信息,并非强制要求,即使路由器找不到合适路由也仍然要转发此数据报,因为 IP 本身只提供尽力而为的无连接服务。
尽管目前网络中的路由器对此子字段均不予处理,但是在理论上该字段具有重要的意义。目前正在研究中的 IP 网络的区别性业务就要以此为基础划分不同业务类别,予以不同的处理。IP v6 除 了 保留此字段外,还新定义了 3 个字节的“流标记",意图进一步细化对数据流的类型划分。
( 4) 总长度:1 6 比特,以字节为单位的 IP 分组的总长度,总长度 =IP 头部长度 十数据区长度, 可表示的最大长度(即IP 分组的最大长度)为65 535 字节。
( 5 ) 标识:1 6 比特,用于数据报分片操作。每个网络都对允许传输的分组最大长度有一 定的限制,称之为 M T U 。在传输中遇到 M T U 小 千 IP 数据报长度的网络,就要求路由器将数据报分片。为了使目的主机能够正确地重装,要求每个片段具有相同的标识值, 以识别它是属千哪个 IP 数据报的。
(6)DF 比特:该 位置" 1" 表示本数据报不能分片,因为目的主机不具备分片重装的能力,这样路由器可能不得不选择某个非最优的路由。如果路由器不能不分片,则丢弃该数据报,并向源主机回送一个错误信息。
(7)M F 比特:该 位置" l " 指示还有后续分片,仅最后一个片段的 MF0。
( 8 ) 片段偏移值:1 3 比特,指示本片段数据部分的首字节在原始数据报数据部分中的位置。偏移值的长度单位为 8 个字节。
( 9 ) 生存时间 T T L : 8 比特,又称寿命。用来防止 IP 分组在网络中出现无限循环,分
组产生时 T T L 被设置一个初值,每经过一个路由器时,T T L 值都将减少,当 T T L = 0时,该分组将被丢弃。
(1 0 ) 协议:8 比特,指出数据区中承载的数据所采用的高层协议。协议类型的编码是预定义的,如 T CP =6, UDP=17, ICMP =1, OSPF =89。
(1 1) 头部校验和:1 6 比特,用 以 检测头部差错。其计算方法是:以 16 比特半字为计算单位。在发送端取该字段初值为零,对头部各个半字依次进行逐位异或运算,求得的值 取反作为校验和发送。在接收端对各个半字,包括校验和,进行同样的运算,若无差错其 结果应为零。
(1 2 ) 源地址和目的地址:各为 32 比特,指示源主机和目的主机的 IP 地址。