您好,欢迎访问三七文档
第5章IP协议因特网的核心协议是IP和TCP两大协议。作用:IP协议是TCP/IP协议簇中的核心协议,提供数据传输的最基本服务,是实现网络互联的基本协议。位置:IP协议位于网络层,位于同一层次的协议还有下面的ARP和RARP以及上面的因特网控制报文协议ICMP和因特网组管理协议IGMP。(P44)关系:ARP和RARP报文不被封装在IP数据报中,而ICMP和IGMP的数据则要封装在IP数据报中进行传输。由于IP协议在网络层中具有重要的地位,人们又将TCP/IP协议的网络层称为IP层。IP是不可靠的无连接数据报协议,提供尽力而为的传输服务。•正因为IP协议采用了尽力传输的思想,所以使得IP协议的效率非常高,实现起来也较简单。•IP层通过IP地址实现了物理地址的统一;通过IP数据报实现了物理数据帧的统一。IP层通过对以上两个方面的统一达到了向上屏蔽底层差异的目的。•重点讨论IP数据报的格式和无连接数据报的传输机制。第5章IP协议5.1IP数据报格式5.2无连接数据报传输5.3IP数据报选项5.4IP模块的结构5.1IP数据报格式•IP协议所处理的数据单元称为IP数据报。数据报总长度服务类型(TOS)数据0816431版本标识片偏移源IP地址IP选项(可选、变长)首部长度标志生存时间(TTL)协议首部校验和目的IP地址首部数据20字节图5-1IP数据报格式19IP数据报=首部+数据IP数据报首部分为定长部分和变长部分。(1)版本(4位)表示数据报的IP协议版本,版本号规定了数据报的格式。IPv4=4(2)首部长度(4位)指出数据报首部长度(32位为单位)。(3)服务类型(8位)规定对本数据报的处理方式。服务类型的含义如图1-2所示。TOS协议D、T、R、C0000ICMP、BOOTP、DNS(TCP)Normal0001NNTPC0010IGP、SNMPR0100FTP(数据)、SMTP(数据)T1000Telnet、FTP(控制)、TFTPD服务类型•随着因特网应用的迅速发展,多媒体数据传输和实时应用对TCP/IP的服务类型提出了更高的要求,为此,因特网工程任务组IETF将IP数据报的服务类型字段改成了区分业务字段。区分业务字段仍然是8位,最后两位保留未用,前面6位为“码点”。6位码点可以提供64种不同的编码,对应不同的业务。000图5-3IP数据报的区分业务字段优先级保留保留16码点(Codepoint)XX0保留XXXX11保留XXXX01保留XXX与原服务类型兼容IETF指定本地机构指定用于临时使用或实验目的(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无连接数据报传输IP数据报传输是IP层要解决的重要问题之一,是影响数据传输效率的一个重要因素。IP数据报在经过路由器进行转发时一般要进行三个方面的处理:–首部校验–路由选择–数据分片这一节将讨论通常首部校验和数据分片问题。5.2.1首部校验•IP层不对数据进行校验。原因:上层传输层是端到端的协议,进行端到端的校验比进行点到点的校验开销小得多,在通信线路较好的情况下尤其如此。另外,上层协议可以根据对于数据可靠性的要求,选择进行校验或不进行校验,甚至可以考虑采用不同的校验方法,这给系统带来很大的灵活性。•IP协议对IP数据报首部进行校验。原因:–IP首部属于IP层协议的内容,不可能由上层协议处理。–IP首部中的部分字段在点到点的传递过程中是不断变化的,只能在每个中间点重新形成校验数据,在相邻点之间完成校验。•两个层次的校验如图所示。IP数据报的首部通过校验和(Checksum)来保证其正确性。图5-4IP层对IP数据报首部进行点到点校验,传输层对数据进行端到端校验信源信宿路由器1网络路由器2网络路由器n网络…传输层进行端到端的数据校验(可选)IP层进行点到点数据报首部校验IP层进行点到点数据报首部校验IP层进行点到点数据报首部校验校验并形成新校验和校验形成校验和校验并形成新校验和校验并形成新校验和•计算首部校验和:–发送方将IP数据报的首部按顺序分为多个16比特的小数据块–首部校验和字段的初始值被设置为0–用1的补码算法对16比特小数据块进行求和–最后再对结果求补•将经过计算得到的首部校验和填回到数据报的首部校验和字段,封装成帧后发给通往信宿的下一跳设备。•校验:下一跳设备作为接收方将收到的IP数据报的首部再分为多个16比特的小数据块,用1的补码算法对16位小数据块进行求和,最后再对结果求补,若得到的结果为0,就验证了数据报首部的正确性。•发送方用1的补码计算和数时,首部校验和字段被设置为0,等于没有参加计算,求补后的校验和与和数各位正好相反。•接收方用1的补码计算和数时,新的首部校验和字段已经被加入,正确情况下所得的和数应该为0xffff,因此,求补后的结果应该为0x0000。图5-5校验和的生成与校验第1块IP数据报首部第2块校验和…0x0000…第n块和数第1块第2块校验和……第n块校验和求补第1块第2块校验和……第n块和数校验和求补0x0000接收方发送方传输•例子:本例中没有IP选项,所以首部长度为5,数据总长度为128字节,数据报的标识为1,未分片,TTL值为4,封装的是TCP协议数据,源地址和目的地址分别为:192.168.20.86和192.168.21.20。•计算中要注意加上进位。生成的校验和为3005。标识图5-6生成IP数据报首部校验和45012810046019216820861921682120数据报总长度版本、首部长度、服务类型标志、片偏移TTL、协议首部校验和源IP地址目的IP地址01000101000000000000000010000000000000000000000100000000000000000000010000000110000000000000000011000000101010000001010001010110110000001010100000010101000101001111010001000001111110100010000100000101110111101加进位和数求补得校验和45012810046300519216820861921682120加入校验和前的数据报首部加入校验和后的数据报首部计算校验和3005•接收方对同一数据报首部进行校验:求补后得到的校验和值为0,表明IP数据报首部在传输过程中没有出现差错。标识图5-7接收方进行IP数据报首部校验45012810046300519216820861921682120数据报总长度版本、首部长度、服务类型标志、片偏移TTL、协议首部校验和源IP地址目的IP地址01000101000000000000000010000000000000000000000100000000000000000000010000000110000010111011110111000000101010000001010001010110110000001010100000010101000101001111111111111110111111111111111110000000000000000加进位和数求补得校验和计算校验和5.2.2数据分片与重组•IP数据报在从信源到信宿的传输过程中要穿过多个不同的网络。由于各种物理网络存在着差异,对帧的最大长度有不同的规定,因此,各个物理网络的最大传输单元MTU可能不同。物理网络的MTU是由硬件决定的。•通常,网络的速度越高,MTU也就越大。•TCP/IP协议的封装:–将数据报以从信源到信宿路径上的最小MTU进行封装(IPv6)–将数据报先以信源网络的MTU进行封装,在传输过程中再根据需要对数据报进行动态分片(IPv4)1.数据报分片•当数据报被分片时,每个分片都会得到一个首部。分片首部的大部分内容和原数据报相同,如IP地址、版本号、协议和数据报标识等,所不同的是标志字段、数据报总长度和片偏移。分片既可以带也可以不带原数据报的选项.•在IP数据报中与分片相关的字段是标识字段、标志字段和片偏移字段。1)数据报标识是分片所属数据报的关键信息,是分片重组的依据。2)标志字段由3位构成,低两位有效,最高位未用;D位表示是否允许该数据报分片;M位表示该片是否是分片的最后一片。3)片偏移字段指出本片数据在原始数据报数据区中的偏移量。由于各分片独立传输,其到达信宿机的顺序无法保证,需要片偏移为重组提供顺序信息。标志DM图5-8IP数据报标志字段D:不分片1:不允许分片0:允许分片M:片未完1:非最后一片0:最后一片未用•一个例子图5-9IP数据报分片示例第一次分片45016202957100017192.168.20.86192.168.21.20数据(0-1599)45014202957101017192.168.20.86192.168.21.20数据(0-1399)450220295710017517192.168.20.86192.168.21.20数据(1400-1599)4508202957101017192.168.20.86192.168.21.20数据(0-799)450620295710110017192.168.20.86192.168.21.20数据(800-1399)第二次分片•该例子中数据报首部长度为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.分片的重组•分片可以在信源机或传输路径上的任何一台路由器上进行,而分片的重组只能在信宿机上进行。•信宿机在进行分片的重组时,采用了一组重组定时器。开始重组时,启动定时器,如果重组定时器超时时,仍然未能完成重组(由于某些分片未及时到达信宿机),信宿机的IP层将丢弃该数据报,并产生一个超时错误,报告给信源机。•片重组的控制主要根据数据报首部中的标识、标志和片偏移字段。•数据报的分片和重组操作对用户和应用程序的编程人员都是透明的,分片和重组操作由网络操作系统自动完成。返回5.3IP数据报选项•IP选项是IP数据报首部中的变长部分•用于网络控制和测试目的(如源路由、记录路由、时间戳等)。•IP选项的最大长度不能超过40字节。•IP选项在使用时是可选的,但在TCP/IP软件的实现中却是必须有的,也就是说所有的IP协议都具有IP选项的处理功能。5.3.1选项格式•IP选项的格式如图5-10所示。选项由
本文标题:第4章 IP协议
链接地址:https://www.777doc.com/doc-3737672 .html