协议第2章-2IP协议_第1页
协议第2章-2IP协议_第2页
协议第2章-2IP协议_第3页
协议第2章-2IP协议_第4页
协议第2章-2IP协议_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机网络

协议分析第二章

-2

IP协议分析本章主要内容第一节网络层概述第二节IP数据报格式第三节IP无连接数据报传输第四节IP数据报选项第五节IP模块的结构第一节

网络层概述

IP层概述IP层:TCP/IP协议的网络层网络层的协议有:ARP、RARP、ICMP、IGMP。IP协议是TCP/IP协议的核心协议提供了网络数据传输的最基本服务实现网络互联的基本协议除ARP、RARP协议报文之外几乎所有数据都要经过IP协议进行发送。IP层概述IP层:不可靠的无连接数据报协议IP提供尽力而为的传输服务(Best-effort)

点对点协议:尽管其数据报中有源、目的IP地址,但在数据传输时,对等实体一定是相邻设备(同一网络)中的对等实体。

不保证传输的可靠性unreliable:不对数据进行差错校验和跟踪,数据报发生损坏时,不向发送方通告。可靠性一般通过IP层之上的TCP协议加以保证。无连接数据报服务connectionless:各个数据报独立传输,可能沿不同路径到达目的地,顺序也不一定按原次序。除ARP、RARP协议报文之外IP层概述IP层:尽力传输协议的效率高实现简单

好处明显:底层网络质量越来越好IP层之下可能存在不同的物理网络,而IP向上层却要提供一个统一的数据传输服务。通过IP地址实现物理地址的统一;通过IP数据报实现物理数据帧的统一。即:对上层屏蔽了下层的差异第二节

IP数据报格式

IP数据报格式034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移生存时间协议首部校验和源IP地址目的IP地址IP选项(MAX:40)填充域数据IP数据报格式034781516-181931VERHLENServiceTypeTotalLength(MAX:65535)IdentificationFlagsFragmentationOffsetTimetoliveTTLProtocolHeaderChecksumSourceAddressIPDestinationAddressIPIPOptions

(MAX:40)packingDataIP数据报格式IP数据报组成,2个部分:首部+数据首部分为2个部分:

定长部分20Bytes

变长部分最大40Bytes034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移生存时间协议首部校验和源IP地址目的IP地址IP选项(MAX:40)填充域数据IP数据报格式-版本版本:4bitVER字段表示:数据报的IP协议版本号,版本号规定了数据报的格式

当前IP协议号4,即IPv4

下一代网络协议为6,即IPv6IP软件在处理数据报时,必须检查版本号字段,估计该字段的值,决定对IP数据报的处理方法。034781516-181931版本首部长服务类型总长(MAX:65535)IP数据报格式-首部长度首部长度:4bitHLEN字段指出:以32位(4字节)为单位的数据报首部长度。

通过HLEN值,可以确定首部和数据的分界点定长部分是20字节,即5个单位的长度,默认是5。变长部分最大值是40字节,即10个单位的长度。IP数据报首部有IP选项字段时,根据HLEN值来确定选项的长度。4bit的字段,最大值是1111(即15),HLEN减去5个定长单位,才是选项的长度。034781516-181931版本首部长服务类型总长(MAX:65535)IP数据报格式-服务类型服务类型:8bitServiceType字段规定:对本数据报的处理方式。

服务类型字段(ServiceType)

区分业务字段(DifferentiateServices)

∵因特网应用增多,多媒体数据传输、实时应用对TCP/IP服务类型提出了更高要求

∴IETF修改了该字段。034781516-181931版本首部长服务类型总长(MAX:65535)IP数据报格式-服务类型服务类型:8bit,规定对本数据报的处理方式。

服务类型字段(ServiceType)034781516-181931版本首部长服务类型总长(MAX:65535)优先级DTRC保留

优先级precedence:前3bit,表示本数据报的重要程度,网络有拥塞时,路由设备可以根据该值决定首先丢弃哪些数据报。优先级从0(最低优先级)到7(最高优先级)依次越来越重要该值为有区别地对待不同数据提供了可能,但目前IPv4并未使用优先级。IP数据报格式-服务类型服务类型:8bit,规定对本数据报的处理方式。

服务类型字段(ServiceType)034781516-181931版本首部长服务类型总长(MAX:65535)优先级DTRC保留DTRC:4bit,是服务类型TOSTypeofService,表示本数据报在传输过程中所希望得到的服务,由用户设置,0000表示一般服务类型的数据报(没啥要求的)。D:最小延迟(minimize)DelayT:最大吞吐率(maximize)ThroughputR:最高可靠性(maximize)ReliabilityC:最低成本(minimize)CostIP数据报格式-服务类型服务类型各种协议服务类型的建议值034781516-181931版本首部长服务类型总长(MAX:65535)优先级DTRC保留TOS协议D、T、R、C备注0000ICMP、BOOTP、DNS(TCP)Normal一般信息0001NNTPC低成本直接发给用户0010IGP、SNMPR高可靠路由、网管0100FTP(数据)、SMTP(数据)T高吞吐传输数据量大1000Telnet、FTP(控制)、TFTP、SMTP(命令)D低延迟少量数据传输IP数据报格式-服务类型服务类型:8bit,规定对本数据报的处理方式。

服务类型字段(ServiceType)034781516-181931版本首部长服务类型总长(MAX:65535)优先级DTRC保留设置数据报的服务类型的DTRC时,要注意:TOS仅代表用户的希望:不具有强制性,不少路由设备的TCP/IP实现中,不支持TOS特性,新的路由协议(如OSPF)可以根据TOS值选择路由DTRC4个参数,每次只能设置其中的1个:传输时,路由设备只能考虑一个性能指标,不能面面俱到都兼顾,多个参数的同时指定,会让路由设备很茫然,无所适从,没有意义。IP数据报格式-服务类型服务类型:8bitServiceType字段规定:对本数据报的处理方式。区分业务字段(DifferentiateServices)

∵因特网应用增多,多媒体数据传输、实时应用对TCP/IP服务类型提出了更高要求

∴IETF修改了该字段,叫做区分业务字段。034781516-181931版本首部长服务类型总长(MAX:65535)IP数据报格式-服务类型服务类型:区分业务字段仍旧8bit,最后两bit保留,未用,前6bit成为“码点”(codepoint)6bit码点可提供64种不同编码,对应不同业务。034781516-181931版本首部长服务类型总长(MAX:65535)IP数据报格式-服务类型服务类型:区分业务字段前6bit“码点”(codepoint)提供的64种编码第一类IETF指派因特网XXXXX0:0,2,4,…,62第二类本地管理机构使用XXXX11:3,7,11,15,…,63第三类临时或试验使用XXXX01:1,5,9,…,61每一类的号码并不连续,没有按照0-31,32-47,48-63分类,否则与TOS解释不兼容。XXX000(0,8,16,…,56)会落入所有的这三个类别,而目前的指派方法,这些都属于类别1。034781516-181931版本首部长服务类型总长(MAX:65535)IP数据报格式-数据报总长度总长度:16bitTotalLength字段指示:以字节为单位的整个IP数据报的长度

IP数据报最大长度可达216-1(65535)个字节根据数据报总长度和首部长度可以计算出数据部分的长度。数据长度=数据报总长度-首部长度*4034781516-181931版本首部长服务类型总长(MAX:65535)IP数据报格式-数据报总长度总长度:16bit数据长度=数据报总长度-首部长度*4例如:在以太网帧封装数据报时,要求封装的最小数据为46个字节,数据少于46字节,必须在数据后面进行填充,使其达到46字节。根据上述公式,可以计算除去填充后的实际数据长度。假设IP数据报首部HLen=5,TotalLength=44Bytes,则实际数据长度为:

44-5*4=24Bytes034781516-181931版本首部长服务类型总长(MAX:65535)IP数据报格式-数据报总长度总长度:16bit数据报总长度最大值为65535字节很少有底层物理网络能封装这样大的数据。底层物理网络能够封装的最大数据长度称为该网络的最大传输单元MTU。当IP层要传送的数据大于MTU时,必须将数据报分片传输。034781516-181931版本首部长服务类型总长(MAX:65535)IP数据报格式-标识标识:16bitIdentification字段表示:每个IP数据报本地唯一的标识符

标识符由信源机产生,赋予IP数据报,每次自动加1,然后分配给要发送的数据报。当IP数据报被分片时,每个数据分片仍然沿用该分片所属的IP数据报的标识符。信宿机根据该字段值和源IP地址来判定收到的分片属于哪个IP数据报,从而完成数据报的重组。034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移IP数据报格式-标志标志:3bitFlags字段表示:该IP数据报是否允许分片以及是否是最后一片分片。该字段低两位有效。

D位表示是否允许该数据报分片;1:不允许;0:允许。

M为表示该片是否是分片的最后一片1:非最后一片;0:最后一片001允许分片,非最后一片;000允许分片,最后一片

034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移未用DMIP数据报格式-片偏移片偏移:13bitFragmentationOffset字段表示:本片数据在它所属的原始数据报数据区中的偏移量。以8字节(64bit)为一个单位。偏移量为信宿机进行各分片的重组提供顺序依据。034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移IP数据报格式-生存时间生存时间:8bitTimetoliveTTL字段表示:每个数据报的生存时间。

IP数据报从源—>目的传递时,经过多个中间Router基于routetable转发,有时会无法正确到达目的,或进入死循环路径,空耗网络资源。设置TTL值后,数据报每经过1个路由器,则Routers将TTL减去一定的值,一旦TTL≤0,则将该数据报从网络中删除,同时向信源机发回差错报告报文。034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移生存时间协议首部校验和IP数据报格式-生存时间生存时间:8bitTimetoliveTTL字段表示:每个数据报的生存时间。由于因特网上的Routers无法进行精确时间同步,不能准确计算出需要减去的时间。目前采用了一种较为简单的方法,即用经过路由器的个数(跳数)进行控制,数据报每经过一个路由器,则TTL值减1。当TTL到0时,数据报仍未到信宿,则弃之。034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移生存时间协议首部校验和IP数据报格式-生存时间生存时间:8bitTimetoliveTTL字段表示:每个数据报的生存时间。路由器收到数据报时,先把TTL-1,若减1后,TTL=0,则路由器丢弃该数据报。源主机想限制分组的行程,比如限制在局域网的范围内,则可以把TTL设置为1,则分组到达第一个路由器时,该值就减为0,这个数据报就被丢弃了。034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移生存时间协议首部校验和IP数据报格式-协议协议标识:8bitProtocol字段表示:被IP数据报封装的协议。信源机的IP协议根据被封装的协议将该字段设置为相应的值。信宿机根据该值进行分用,并交给相应的上层协议去处理。ICMP1;IGMP2;TCP6;EGP8;UDP17;OSPF89;034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移生存时间协议首部校验和IP数据报格式-首部校验和首部校验和:16bitHeaderChecksum字段:用于保证首部数据的完整性。将首部按顺序分为多个16bit的数据块首部检验和字段初始值为0用1的补码算法对16bit小数据块求和然后再对求和结果求补码,得到首部校验和。034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移生存时间协议首部校验和IP数据报格式-源IP地址源IP地址:32bitSourceaddress字段表示:本数据报的最初发送方的IP地址。

在IPv4中,长度为32bit

在IPv6中,长度是128bit,且数据报格式不一样。034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移生存时间协议首部校验和源IP地址IP数据报格式-目的地址目的IP地址:32bitDestinationaddress字段表示:本IP数据报最终接收方的IP地址IP数据报转发过程中,经过若干路由器,会对物理帧进行解封装和再封装,物理地址会不断变化,但IP数据报中的源地址、目的地址字段始终保持不变。034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移生存时间协议首部校验和源IP地址目的IP地址IP数据报格式-IP选项IP数据报选项:变长字段,在传输数据报时可选的附加功能,用于控制数据在网络中的传输路径、记录数据报经过的路由器、获取数据报在途中经过的路由器的时间戳。

IP选项长度受首部长度限制

变长部分最大40Bytes034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移生存时间协议首部校验和源IP地址目的IP地址IP选项(MAX:40)填充域IP数据报格式-数据IP数据:长度可变,用于携带上层数据。数据长度受数据报总长度限制数据总长度≤65535-首部长度*4034781516-181931版本首部长服务类型总长(MAX:65535)标识标志片偏移生存时间协议首部校验和源IP地址目的IP地址IP选项(MAX:40)填充域数据IP数据报格式-questions1、某数据报前8位01000010,接收者丢弃了该分组,为什么?2、IP数据报中,HLEN=1000,则该数据报携带了多少字节的选项?3、IP数据报中,HLEN=516,而总长度字段=002816,则该数据报携带了多少字节的数据?4、某数据报,前n位16进制数字如下:45000028000100000102…,则该数据报在被丢弃之前还能够传送多少跳?该数据属于上层的什么协议?IP数据报格式-questions1、某数据报前8位01000010,接收者丢弃了该分组,为什么?首部最小字节20字节,小于20,说明数据报传输受损伤2、IP数据报中,HLEN=1000,则该数据报携带了多少字节的选项?8*4-203、IP数据报中,HLEN=516,而总长度字段=002816,则该数据报携带了多少字节的数据?40-204、某数据报,前n位16进制数字如下:45000028000100000102…,则该数据报在被丢弃之前还能够传送多少跳?该数据属于上层的什么协议?01,再走一跳,02-IGMP第三节

IP无连接数据报传输

本节主要内容2.3.1首部校验2.3.2数据分片与重组返回无连接的IP数据报传输IP数据报传输是IP层要解决的重要问题之一,是影响数据传输效率的重要因素。IP数据报在经过路由器转发时,一般进行3个方面的处理:首部校验路由选择数据分片2.3.1首部校验原因原理方法案例IP首部校验-原因IP数据报在传输过程中,并不对其数据区进行校验。∵IP协议是点对点的协议,如果在每个点都对数据进行校验,开销会很大,且与“尽力传输”思想不符。IP将可靠性留给自己的高层去解决,既可以保证数据可靠性,又能得到更大的灵活性和效率。上层的端到端的校验相对开销小,在通信链路质量好时,更小。上层协议可以根据对数据可靠性的要求,选择是否进行校验,或采用不同的校验方法,很灵活。IP首部校验-原因IP数据报在传输过程中,要对其首部进行校验。∵IP首部属于IP层协议的内容,不可能由上层协议处理。IP首部中的部分字段在点对点的传递过程中是不断变化的,只能在每个中间点重新生成校验数据,在相邻点之间完成校验。比如由于底层网络不同MTU的限制,需要分片、数据报总长度、片位移值不同,且TTL值在一直减小等原因引起首部字段值在变化IP首部校验-原理IP数据报在传输过程中,两个层次的校验,IP层对数据报首部进行点对点校验,传输层对数据进行端到端校验,如图所示:IP首部校验-原理IP数据报在传输过程中,发送端先将IP层首部校验和置0(此时,相当于该字段没有参与计算),通过计算各字段和,后求补运算,得到的结果填入首部检验和字段内,然后与数据报一起发出去。接收端对包括校验和(此时,该字段要参与校验和计算)在内的整个数据报重复进行同样的计算,若结果=0,则保留数据报;若结果≠0,则丢弃数据报。∵假定在发送端将所有段相加后得到的和数是T,用反码运算得到-T,即校验和。在接收端,若首部没有变化,则对所有段相加时,实际上就是把T和-T相加,得-0(0xffff),取反码为0(0x0000)。IP首部校验-方法IP数据报在传输过程中,其首部通过校验和checksum来保证其正确性。计算首部校验和:发送方将IP数据报的首部按顺序分为多个16比特的小数据块首部校验和字段的初始值被设置为0用1的补码算法对16比特小数据块进行求和最后再对结果求补[1的补码],其英文为1‘scomplement,其实就是指反码[2的补码],英文为2'scomplement就是通常说的补码

校验和-反码运算传统上讲,IP、UDP、TCP使用的计算校验和的方法都是2进制反码运算。把各数据块的数字,按照列从低位开始计算,分别相加,得到一个和(部分和)。如果有进位,把进位加到下一列。加完最后一列,如果还有进位,将该进位与部分和再次相加,得到最后的和。将和进行二进制反码(0->1;1->0)各块数字,按列相加得到一个部分和如果有进位,把进位加到下一列。加完最后一列,如果还有进位,将该进位与部分和再次相加,得到最后的和。将和进行二进制反码(0->1;1->0)IP首部校验-方法IP数据报在传输过程中,其首部通过校验和checksum来保证其正确性。校验和加入首部并发送:经过计算得到首部校验和将计算得到的首部校验和填回到数据报的首部校验和字段封装成帧后发给通往信宿的下一跳设备。IP首部校验-方法IP数据报在传输过程中,其首部通过校验和checksum来保证其正确性。接收端校验:下一跳设备作为接收方将收到的IP数据报的首部再分为多个16比特的小数据块,用1的补码算法(反码)对16位小数据块进行求和,最后再对结果求补,若得到的结果为0,就验证了数据报首部的正确性。否则,丢弃该数据报.IP首部校验-方法IP数据报在传输过程中,其首部通过校验和checksum来保证其正确性。和校验和求补码传输和0000求补码IP首部校验-案例IP数据报首部校验和的生成、数据报的校验案例。例:数据报无IP选项,所以首部长度为5,数据总长度为128字节,数据报的标识为1,未分片,TTL值为4,封装的是TCP协议数据,源地址和目的地址分别为:6和0。计算中要注意加上进位。生成的校验和为3005。IP首部校验-案例接收方对同一数据报首部进行校验:求补后得到的校验和值为0,表明IP数据报首部在传输过程中没有出现差错。IP首部校验-字段变化若接收该数据报的设备不是信宿,则将TTL值-1然后判断TTL是否超时若未超时,则应根据路由表寻找下一跳路由器并判断数据报是否需要分片以及是否允许分片每次转发数据报,其TTL值都会发生变化如果发生分片,其数据报总长度、标志、片偏移等字段也会发生变化因此,对新形成的数据报需要重新计算首部较验和然后向下一跳转发2.3.2数据分片与重组分片重组案例IP数据分片IP数据报在从信源到信宿的传输过程中要穿过多个不同的网络。由于物理网络的差异性,对帧最大长度有不同的规定,各物理网络最大传输单元MTU不同。物理网络的MTU是由硬件决定的。数据报封装成帧时,数据报总长度必须小于数据发送出去时的物理网络的MTU。路由设备收到数据报后,要对帧进行拆、再封装,格式与数据报来的网络和数据报去的网络的帧格式相对应。通常,网络的速度越高,MTU也就越大。超级通道hyperchannel65535—

以太网1500令牌环16Mbps17914—X.25576令牌环4Mbps4464—PPP296FDDI4352IP数据分片为使IP协议与物理网络无关,IP数据报的最大长度是65535字节,如果使用具有(MTU=65535)的协议时,传输效率更高。即:IP数据报如果恰好能封装在一个帧内部传输,效率自然高,但这很难保证。对于一般的物理网络,如果类似65535字节这么大的数据报,则必须要对数据报进行分割,使其能够通过这些网络,这就是分片。把一个数据报封装在具有较大MTU的物理网络帧中发送时,可能在穿过较小MTU的物理网络时,无法正常传输。IP数据分片解决不同网络MTU不同带来的问题,有两种思路。即:TCP/IP协议的帧封装,存在2种方法:将数据报以从信源到信宿路径上的最小MTU进行封装(IPv6)将数据报先以信源网络的MTU进行封装,在传输过程中再根据需要对数据报进行动态分片(IPv4)第一种方法,不能充分利用网络的传输能力,效率不高,第二种方法,要求网络支持对数据报的动态分片。IP数据分片将数据报先以信源网络的MTU进行封装,在传输过程中再根据需要对数据报进行动态分片IP协议在确定数据报大小时,以方便为原则,选择当前信源机所在物理网络最合适的数据报大小来传输数据。当数据报要穿过MTU较小的网络时,进行分片后,再传输。当传输后在碰到更小MTU的网络时,继续分片。所以,分片可能会发生很多次。IP数据分片当数据报被分片时,每个分片都会得到一个首部。分片首部的大部分内容和原数据报相同,如IP地址、版本号、协议和数据报标识等所不同的是标志字段、数据报总长度和片偏移。(即这三个字段的值发生了改变)分片既可以带也可以不带原数据报的选项。不管是否分片,校验和的值必须重新计算。IP数据分片在IP数据报中与分片相关的字段是标识字段、标志字段和片偏移字段。

1)数据报标识是分片所属数据报的关键信息,是分片重组的依据。数据报被分片时,该字段值被复制到所有分片中,即同一数据报的所有分片具有相同的标识,即原始数据报的标识号。标识号在分片重组时很重要。信宿机借此字段知道所有具有相同标识号的分片必须组装成一个数据报。IP数据分片

2)标志字段由3位构成,低两位有效,最高位未用;D位表示是否允许该数据报分片;M位表示该片是否是分片的最后一片。D=donotfragmentM=morefragment

IP数据分片3)片偏移字段(13bit)指出本片数据在原始数据报数据区中的偏移量。由于各分片独立传输,其到达信宿机的顺序无法保证,需要片偏移为重组提供顺序信息。片偏移值是以8字节为单位的。213=8192,所以13个bit,最大值是8191。即这个字段的值不能超过8191

8192*8字节=65536字节

IP数据报最大值是65535IP数据分片0000字节3999字节0000字节1399字节1400字节2799字节2800字节3999字节偏移=0000/8=0偏移=0000/8=0偏移=1400/8=175偏移=2800/8=350分片和重组长度=1600BMTU=820BMTU=1420B

该主机IP层重组P1P2P3P4P5I2I1I3I4I5I6H1R1R2P6H216001400200800600200

该路由器IP层分片

该路由器IP层分片数据报分片数据区报头20B1600B数据区报头数据1数据2数据1=1400数据2=200报头报头标识片偏移标志295710000000295710010/8=00295710001400/8=175175MTU=1420IP数据分片IP数据分片该数据报首部长20字节,数据区长1600个字节,进入MTU为1420字节的物理网络时进行第一次分片。第1次分片,形成1个1400字节分片和1个200字节分片。第1片的片偏移为0(0/8),片未完标志为1;第2片的片偏移为175(1400/8),片未完标志为0,表示该片是数据报的最后一片。当第1个分片进入MTU为820字节的物理网络时再次分片。第2次分片,又形成了1个800字节分片和1个600字节分片。800字节分片的片偏移为0(0/8),片未完标志为1;600字节的片偏移为100(800/8),片未完标志也为1。IP数据分片分片必须满足两个条件:各片尽可能大,但必须能为帧所封装,片中数据的大小必须为8字节的整数倍,否则IP无法表达其偏移量。

IP数据重组分片重组只能在信宿机上进行。

重组策略是:第1个分片的分片偏移值是0;(第1个分片长度)/8,得到的结果是第2个分片的偏移值。(第1个分片长度+第2个分片长度)/8,得到的结果是第3个分片的偏移值。继续以上过程。。。。最后的分片的标志位M位=0,则重组结束。数据报重组数据1=800B首部数据2=600B首部数据3=200B首部2957100102957100110029571000175分片到达目的主机后重组数据1=800B数据2=600B数据3=200B数据1=800B数据2=600B数据3=200B数据(1600字节)首部标识标志片偏移295712957129571标志000片偏移000重组成功!!!IP数据重组分片可以在信源机或传输路径上的任何一台路由器上进行,而分片的重组只能在信宿机上进行。

∵各片作为独立数据报进行传输,在网络中可能沿着不同的路径传输,不太可能在中间的某一个路由器上收气同一数据报的各个分片。不在中间进行重组,可以简化路由器上的协议,减轻路由器的负担。TCP/IP的作法是只在信宿机上进行所有分片的重组,一旦数据报被分片,在到达信宿机之前只可能再次被分片,而绝不会进行重组。IP数据重组信宿机在进行分片的重组时,采用了一组重组定时器。开始重组时,启动定时器,如果重组定时器超时时,仍然未能完成重组(由于某些分片未及时到达信宿机),信宿机的IP层将丢弃该数据报,并产生一个超时错误,报告给信源机。片重组的控制主要根据数据报首部中的标识、标志和片偏移字段。数据报的分片和重组操作对用户和应用程序的编程人员都是透明的,分片和重组操作由网络操作系统自动完成。IP数据报分片重组-questions1、某数据报的标志位M=0,那么该分片是第1个分片,还是最后一个分片,或中间的分片?是否可以看出该数据报是否被分片?2、某数据报的标志位M=1,那么该分片是第1个分片,还是最后一个分片,或中间的分片?是否可以看出该数据报是否被分片?IP数据报分片重组-questions1、某数据报的标志位M=0,那么该分片是第1个分片,还是最后1个分片,或中间的分片?是否可以看出该数据报是否被分片?M=0,表示没有进行分片,这个分片也是最后1个,但不能说明原来的数据报是否被分片,因为不被分片的数据报也被认为是最后一个分片。2、某数据报的标志位M=1,那么该分片是第1个分片,还是最后一个分片,或中间的分片?是否可以看出该数据报是否被分片?M=1,表示至少有1个以上的分片,这个分片可以是第1个或中间的某个(单从该位看不出到底是1,还是中间的,要结合其他信息看),但不是最后1个。IP数据报分片重组-questions3、某数据报的标志位M=1,分片偏移值=0,那么该分片是第1个分片,还是最后一个分片,或中间的分片?4、某数据报的分片偏移值是100,第1个字节的编号是多少?是否能知道最后1个字节的编号?5、某数据报的分片偏移值是100,HLEN=5,总长度=100,那么第1个字节和最后1个字节的编号是多少?IP数据报分片重组-questions3、某数据报的标志位M=1,分片偏移值=0,那么该分片是第1个分片,还是最后一个分片,或中间的分片?第1个4、某数据报的分片偏移值是100,第1个字节的编号是多少?是否能知道最后1个字节的编号?100*8=800,但不能确定最后1个字节的编号5、某数据报的分片偏移值是100,HLEN=5,总长度=100,那么第1个字节和最后1个字节的编号是多少?100*8=800,总长100-首部5*4=数据80字节,则最后1个字节的编号是879。第四节

IP数据报选项

本节主要内容2.4.1数据报选项格式2.4.2数据报选项类型返回IP数据包选项IP选项是IP数据报首部中的变长部分,用于网络控制和测试目的(如源路由、记录路由、时间戳等)。IP选项的最大长度不能超过40字节。IP选项在使用时是可选的,但在TCP/IP软件的实现中却是必须有的,也就是说所有的IP协议都具有IP选项的处理功能。2.4.1数据报选项格式格式详解IP数据报选项格式IP选项三个部分组成:选项码(OptionCode)选项长度选项数据格式如图所示选项码:8位,复制位(COPY)、选项类和选项号3个子字段。复制位占1比特,用于控制分片时是否将选项复制到各个分片。复制位为“1”,表示将原数据报所带的选项复制到所有分片中,复制位为“0”,表示仅将选项复制到第一个分片中。选项类占2比特,定义选项的一般作用,区别选项的一般目的选项号占5比特,定义选项的具体类型,对同一类选项进行进一步的细化。IP数据报选项格式IP数据报选项格式选项长度为8位,用于定义选项的长度。长度信息除包括选项数据部分的长度外还包括选项码和长度字段本身。有些选项不含长度字段。选项数据不定长,用于定义选项请求。选项是单方向发送的请求,不需要信宿机进行响应。2.4.2数据报选项类型类型详解IP数据报选项类型两位IP选项类定义了四种选项类型:00用于IP数据报路径的控制和测试;10用于时间戳的测试;01类和11类未用。每一选项类又由选项号进行细分,其中00类中常用的有5个选项号,10类中只有1个选项号在用。选项类选项号长度含义0000000无选项结束0000001无无操作(作为填充数据)0000011变长宽松源路由0000111变长记录路径0001001变长严格源路由1000100变长时间戳1.单字节选项表中的前面两个选项为单字节选项,负责标识IP选项的结束和对IP数据报首部进行填充。当IP数据报首部中选用了IP选项时,选项不定长,而数据报要求首部是32位的整数倍,若不是,则需要进行填充。填充由“无操作”(NoOperation)符和选项结束符(EndofOption)组成。当需要一个以上的字节对选项进行填充时,先用多个“无操作”符进行填充,最后用选项结束符结束整个选项。选项类选项号长度含义0000000无选项结束0000001无无操作(作为填充数据)2.源路由选项作用:通常IP数据报在传输时,由路由器自动为其选择路由。但网络管理人员为了使数据报绕开出错网络,或者为了对某特定网络的吞吐率进行测试,需要在信源机控制IP数据报的传输路径。源路由(SourceRoute)就是为了满足这一要求而设计的选项。方法:源路由指由信源机上的发送者规定本数据报穿越网络的路径。种类:源路由选项分为2种。严格源路由宽松源路由(1)严格源路由严格源路由选项要求信源机上的发送者指定数据报必须经过的每一个路由器。也就是说,数据报必须严格按照发送方规定的路径穿过每一个路由器。[Router应该是一一相连,不能有其他未指定的R,且顺序不能改变。如果传输时,无法直接到达下一跳指定的R,会丢弃该报,产生一个源路由失败的信宿不可达报文,向信源机报告]选项码137的含义是:复制位为“1”(严格源路由分片时选项要复制到各个分片),选项类为“00”,选项号为“01001”,即128+0+9=137。指针字段的含义:当设备(信源机或路由器)发出带该选项的数据报时,指针指的是该设备的下下跳路由器的入口IP地址。当一个路由器收到数据报时,指针指的是该路由器的下一跳IP地址,路由器转发数据报前要将指针值加4,这样发出去的数据报的指针又指向了它的下下跳路由器的入口IP地址。这里要注意的是,源路由对于数据报中目的IP地址的处理和一般情况下有所不同。在源路由传输过程中数据报的目的IP地址会不断变化,而且选项中的IP地址表也会发生变化。信源机从上层收到源路由IP地址表后,将第一个IP地址从列表中去掉(将该IP地址作为当前数据报的目的地址),再将剩余的表项前移,然后将最终要去的目的地址写入到选项地址表的最后。123456192.168.40778源IP:1目的IP:8151374246源路由IP地址表:151374468源IP:1目的IP:2151378268源IP:1目的IP:41513712248源IP:1目的IP:61513716246源IP:1目的IP:8(2)宽松源路由宽松源路由IP选项的格式与严格源路由相同,如图所示。所不同的是,宽松源路由在选项的IP地址表中并不给出一条完备的路径,而是只给出路径中的某些关键点,关键点之间无直接物理连接时,通过路由器的自动路由选择功能进行补充。

3.记录路由记录路由选项用于记录IP数据报从信源机到信宿机所经过路径上各路由器的IP地址。记录路由选项格式与源路由选项格式相同,如图所示。地址区域的大小由源机预先分配(根据对所需记录的地址数的估计)并初始化。指针域指向地址区域中下一个可存放地址的位置。假如分配的地址表大小不足以记录下全部路径,IP软件将放弃记录多余地址。路由器将指针值与选项长度比较,如果(指针值<选项长度),将该路由器输出口的IP地址填入指针所指的地址区域,然后指针值+4。路径记录选项长度码(7

)指针第一IP地址第二IP地址……0816

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论