如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第5章IP协议正因为IP协议采用了尽力传输的思想,所以使得IP协议的效率非常高,实现起来也较简单。IP层通过IP地址实现了物理地址的统一;通过IP数据报实现了物理数据帧的统一。IP层通过对以上两个方面的统一达到了向上屏蔽底层差异的目的。重点讨论IP数据报的格式和无连接数据报的传输机制。第5章IP协议5.1IP数据报格式IP数据报=首部+数据IP数据报首部分为定长部分和变长部分。(1)版本(4位)表示数据报的IP协议版本,版本号规定了数据报的格式。IPv4=4(2)首部长度(4位)指出数据报首部长度(32位为单位)。(3)服务类型(8位)规定对本数据报的处理方式。服务类型的含义如图1-2所示。随着因特网应用的迅速发展,多媒体数据传输和实时应用对TCP/IP的服务类型提出了更高的要求,为此,因特网工程任务组IETF将IP数据报的服务类型字段改成了区分业务字段。区分业务字段仍然是8位,最后两位保留未用,前面6位为“码点”。6位码点可以提供64种不同的编码,对应不同的业务。(4)数据报总长度指示整个IP数据报的长度。数据长度=数据报总长度-首部长度×4(5)标识(16位)由信源机赋给IP数据报,每个IP数据报有一个本地惟一的标识符。数据报的标识由信源机产生,每次自动加1后分配给要发送的数据报。(6)标志(3位)用于表示该IP数据报是否允许分片和是否是最后的一片。(7)片偏移(13位)表示本片数据在它所属的原始数据报数据区中的偏移量(以8字节为单位)。(8)生存时间TTL(8位)控制IP数据报在网络中的传输时间。(9)协议(8位)指明被IP数据报封装的协议。(P83)(10)首部校验和(16位)用于保证首部数据的完整性。(11)源地址表示本IP数据报的最初发送者的IP地址;目的地址一般表示本IP数据报最终接收者的IP地址。(12)IP选项用于控制数据在网络中的传输路径、记录数据报走过的路由器以及获取数据报所途径经过的路由器的时间戳。(13)数据字段用于携带上层数据,长度受数据报总长度限制(≤65535-首部长度×4)。5.2无连接数据报传输5.2.1首部校验两个层次的校验如图所示。IP数据报的首部通过校验和(Checksum)来保证其正确性。计算首部校验和:发送方将IP数据报的首部按顺序分为多个16比特的小数据块首部校验和字段的初始值被设置为0用1的补码算法对16比特小数据块进行求和最后再对结果求补将经过计算得到的首部校验和填回到数据报的首部校验和字段,封装成帧后发给通往信宿的下一跳设备。校验:下一跳设备作为接收方将收到的IP数据报的首部再分为多个16比特的小数据块,用1的补码算法对16位小数据块进行求和,最后再对结果求补,若得到的结果为0,就验证了数据报首部的正确性。发送方用1的补码计算和数时,首部校验和字段被设置为0,等于没有参加计算,求补后的校验和与和数各位正好相反。接收方用1的补码计算和数时,新的首部校验和字段已经被加入,正确情况下所得的和数应该为0xffff,因此,求补后的结果应该为0x0000。例子:本例中没有IP选项,所以首部长度为5,数据总长度为128字节,数据报的标识为1,未分片,TTL值为4,封装的是TCP协议数据,源地址和目的地址分别为:192.168.20.86和192.168.21.20。计算中要注意加上进位。生成的校验和为3005。接收方对同一数据报首部进行校验:求补后得到的校验和值为0,表明IP数据报首部在传输过程中没有出现差错。5.2.2数据分片与重组1.数据报分片2)标志字段由3位构成,低两位有效,最高位未用;D位表示是否允许该数据报分片;M位表示该片是否是分片的最后一片。3)片偏移字段指出本片数据在原始数据报数据区中的偏移量。由于各分片独立传输,其到达信宿机的顺序无法保证,需要片偏移为重组提供顺序信息。一个例子该例子中数据报首部长度为20个字节,数据区长度为1600个字节,进入MTU为1420字节的物理网络时进行第一次分片。第一次分片后,形成一个1400字节的分片和一个200字节的分片。第一片的片偏移为0(0/8),片未完标志为1;第二片的片偏移为175(1400/8),片未完标志为0,表示该片是数据报的最后一片。当第一个分片进入MTU为820字节的物理网络时再次进行分片。第二次分片后,又形成了一个800字节的分片和一个600字节的分片。前者的片偏移为0(0/8),片未完标志为1;后者的片偏移为100(800/8),片未完标志也为1。分片必须满足两个条件:各片尽可能大,但必须能为帧所封装,片中数据的大小必须为8字节的整数倍,否则IP无法表达其偏移量。2.分片的重组5.3IP数据报选项5.3.1选项格式选项码由8位构成,分为复制位(COPY