协议分析 第2章-2.ppt_第1页
协议分析 第2章-2.ppt_第2页
协议分析 第2章-2.ppt_第3页
协议分析 第2章-2.ppt_第4页
协议分析 第2章-2.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机网络协议分析与测试,第二章 -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) 点对点协议:尽管其数据

2、报中有源、目的IP地址,但在数据传输时,对等实体一定是相邻设备(同一网络)中的对等实体。 不保证传输的可靠性unreliable:不对数据进行差错校验和跟踪,数据报发生损坏时,不向发送方通告。可靠性一般通过IP层之上的TCP协议加以保证。 无连接数据报服务connectionless:各个数据报独立传输,可能沿不同路径到达目的地,顺序也不一定按原次序。除ARP、RARP协议报文之外,IP层概述,IP层:尽力传输 协议的效率高 实现简单 好处明显:底层网络质量越来越好 IP层之下可能存在不同的物理网络,而IP向上层却要提供一个统一的数据传输服务。 通过IP地址实现物理地址的统一; 通过IP数据报

3、实现物理数据帧的统一。 即:对上层屏蔽了下层的差异,第二节 IP数据报格式,IP数据报格式,IP数据报格式,IP数据报格式,IP数据报组成,2个部分:首部+数据 首部分为2个部分: 定长部分20Bytes 变长部分最大40Bytes,IP数据报格式-版本,版本:4bit VER字段表示:数据报的IP协议版本号,版本号规定了数据报的格式 当前IP协议号 4,即IPv4 下一代网络协议为 6,即IPv6 IP软件在处理数据报时,必须检查版本号字段,估计该字段的值,决定对IP数据报的处理方法。,IP数据报格式-首部长度,首部长度:4bit HLEN字段指出:以32位(4字节)为单位的数据报首部长度。

4、 通过HLEN值,可以确定首部和数据的分界点 定长部分是20字节,即5个单位的长度,默认是5。 变长部分最大值是40字节,即10个单位的长度。 IP数据报首部有IP选项字段时,根据HLEN值来确定选项的长度。4bit的字段,最大值是1111(即15),HLEN减去5个定长单位,才是选项的长度。,IP数据报格式-服务类型,服务类型:8bit Service Type字段规定:对本数据报的处理方式。 服务类型字段(Service Type) 区分业务字段(Differentiate Services) 因特网应用增多,多媒体数据传输、实时应用对TCP/IP服务类型提出了更高要求 IETF修改了该字

5、段。,IP数据报格式-服务类型,服务类型:8bit,规定对本数据报的处理方式。 服务类型字段(Service Type),优先级precedence:前3bit,表示本数据报的重要程度,网络有拥塞时,路由设备可以根据该值决定首先丢弃哪些数据报。 优先级从0(最低优先级)到7(最高优先级)依次越来越重要 该值为有区别地对待不同数据提供了可能, 但目前IPv4并未使用优先级。,IP数据报格式-服务类型,服务类型:8bit,规定对本数据报的处理方式。 服务类型字段(Service Type),D T R C:4bit,是服务类型TOS Type of Service,表示本数据报在传输过程中所希望得

6、到的服务,由用户设置,0000表示一般服务类型的数据报(没啥要求的)。 D:最小延迟(minimize) Delay T: 最大吞吐率 (maximize)Throughput R:最高可靠性 (maximize)Reliability C:最低成本 (minimize)Cost,IP数据报格式-服务类型,服务类型 各种协议服务类型的建议值,IP数据报格式-服务类型,服务类型:8bit,规定对本数据报的处理方式。 服务类型字段(Service Type),设置数据报的服务类型的D T R C时,要注意: TOS仅代表用户的希望:不具有强制性,不少路由设备的TCP/IP实现中,不支持TOS特性,

7、新的路由协议(如OSPF)可以根据TOS值选择路由 DTRC4个参数,每次只能设置其中的1个:传输时,路由设备只能考虑一个性能指标,不能面面俱到都兼顾,多个参数的同时指定,会让路由设备很茫然,无所适从,没有意义。,IP数据报格式-服务类型,服务类型:8bit Service Type字段规定:对本数据报的处理方式。 区分业务字段(Differentiate Services) 因特网应用增多,多媒体数据传输、实时应用对TCP/IP服务类型提出了更高要求 IETF修改了该字段,叫做区分业务字段。,IP数据报格式-服务类型,服务类型:区分业务字段 仍旧8bit,最后两bit保留,未用,前6bit成

8、为“码点”(code point) 6bit码点可提供64种不同编码,对应不同业务。,IP数据报格式-服务类型,服务类型:区分业务字段 前6bit“码点”(code point)提供的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。,IP数据报格式-数据报总长度,总

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

10、4=24Bytes,IP数据报格式-数据报总长度,总长度:16bit 数据报总长度最大值为65535字节 很少有底层物理网络能封装这样大的数据。 底层物理网络能够封装的最大数据长度称为该网络的最大传输单元MTU。 当IP层要传送的数据大于MTU时,必须将数据报分片传输。,IP数据报格式-标识,标识:16bit Identification字段表示:每个IP数据报本地唯一的标识符 标识符由信源机产生,赋予IP数据报,每次自动加1,然后分配给要发送的数据报。 当IP数据报被分片时,每个数据分片仍然沿用该分片所属的IP数据报的标识符。信宿机根据该字段值和源IP地址来判定收到的分片属于哪个IP数据报,

11、从而完成数据报的重组。,IP数据报格式-标志,标志:3bit Flags字段表示:该IP数据报是否允许分片以及是否是最后一片分片。该字段低两位有效。 D位表示是否允许该数据报分片; 1:不允许;0:允许。 M为表示该片是否是分片的最后一片 1:非最后一片;0:最后一片 001 允许分片,非最后一片;000 允许分片,最后一片,IP数据报格式-片偏移,片偏移:13bit Fragmentation Offset字段表示:本片数据在它所属的原始数据报数据区中的偏移量。 以8字节(64bit)为一个单位。 偏移量为信宿机进行各分片的重组提供顺序依据。,IP数据报格式-生存时间,生存时间:8bit T

12、ime to live TTL字段表示:每个数据报的生存时间。 IP数据报从源目的传递时,经过多个中间Router基于route table转发,有时会无法正确到达目的,或进入死循环路径,空耗网络资源。 设置TTL值后,数据报每经过1个路由器,则Routers将TTL减去一定的值,一旦TTL0,则将该数据报从网络中删除,同时向信源机发回差错报告报文。,IP数据报格式-生存时间,生存时间:8bit Time to live TTL字段表示:每个数据报的生存时间。 由于因特网上的Routers无法进行精确时间同步,不能准确计算出需要减去的时间。 目前采用了一种较为简单的方法,即用经过路由器的个数(

13、跳数)进行控制,数据报每经过一个路由器,则TTL值减1。当TTL到0时,数据报仍未到信宿,则弃之。,IP数据报格式-生存时间,生存时间:8bit Time to live TTL字段表示:每个数据报的生存时间。 路由器收到数据报时,先把TTL-1,若减1后,TTL=0,则路由器丢弃该数据报。 源主机想限制分组的行程,比如限制在局域网的范围内,则可以把TTL设置为1,则分组到达第一个路由器时,该值就减为0,这个数据报就被丢弃了。,IP数据报格式-协议,协议标识:8bit Protocol字段表示:被IP数据报封装的协议。 信源机的IP协议根据被封装的协议将该字段设置为相应的值。 信宿机根据该值进

14、行分用,并交给相应的上层协议去处理。 ICMP 1;IGMP 2;TCP 6;EGP 8;UDP 17;OSPF 89;,IP数据报格式-首部校验和,首部校验和:16bit Header Checksum字段:用于保证首部数据的完整性。 将首部按顺序分为多个16bit的数据块 首部检验和字段初始值为0 用1的补码算法对16bit小数据块求和 然后再对求和结果求补码,得到首部校验和。,IP数据报格式-源IP地址,源IP地址:32bit Source address 字段表示:本数据报的最初发送方的IP地址。 在IPv4中,长度为32bit 在IPv6中,长度是128bit,且数据报格式不一样。,

15、IP数据报格式-目的地址,目的IP地址:32bit Destination address字段表示:本IP数据报最终接收方的IP地址 IP数据报转发过程中,经过若干路由器,会对物理帧进行解封装和再封装,物理地址会不断变化,但IP数据报中的源地址、目的地址字段始终保持不变。,IP数据报格式-IP选项,IP数据报选项:变长字段,在传输数据报时可选的附加功能,用于控制数据在网络中的传输路径、记录数据报经过的路由器、获取数据报在途中经过的路由器的时间戳。 IP选项长度受首部长度限制 变长部分最大40Bytes,IP数据报格式-数据,IP数据:长度可变,用于携带上层数据。 数据长度受数据报总长度限制 数

16、据总长度65535-首部长度*4,IP数据报格式-questions,1、某数据报前8位 0100 0010,接收者丢弃了该分组,为什么? 2、IP数据报中,HLEN=1000,则该数据报携带了多少字节的选项? 3、IP数据报中,HLEN=516,而总长度字段=002816,则该数据报携带了多少字节的数据? 4、某数据报,前n位16进制数字如下:45000028000100000102,则该数据报在被丢弃之前还能够传送多少跳?该数据属于上层的什么协议?,IP数据报格式-questions,1、某数据报前8位 0100 0010,接收者丢弃了该分组,为什么? 首部最小字节20字节,小于20,说明

17、数据报传输受损伤 2、IP数据报中,HLEN=1000,则该数据报携带了多少字节的选项? 8*4-20 3、IP数据报中,HLEN=516,而总长度字段=002816,则该数据报携带了多少字节的数据? 40-20 4、某数据报,前n位16进制数字如下:45000028000100000102,则该数据报在被丢弃之前还能够传送多少跳?该数据属于上层的什么协议? 01,再走一跳,02-IGMP,第三节 IP无连接数据报传输,本节主要内容,2.3.1 首部校验 2.3.2 数据分片与重组,返回,无连接的IP数据报传输,IP数据报传输是IP层要解决的重要问题之一,是影响数据传输效率的重要因素。 IP数

18、据报在经过路由器转发时,一般进行3个方面的处理: 首部校验 路由选择 数据分片,2.3.1 首部校验,原因 原理 方法 案例,IP首部校验-原因,IP数据报在传输过程中,并不对其数据区进行校验。 IP协议是点对点的协议,如果在每个点都对数据进行校验,开销会很大,且与“尽力传输”思想不符。 IP将可靠性留给自己的高层去解决,既可以保证数据可靠性,又能得到更大的灵活性和效率。 上层的端到端的校验相对开销小,在通信链路质量好时,更小。 上层协议可以根据对数据可靠性的要求,选择是否进行校验,或采用不同的校验方法,很灵活。,IP首部校验-原因,IP数据报在传输过程中,要对其首部进行校验。 IP首部属于I

19、P层协议的内容,不可能由上层协议处理。 IP首部中的部分字段在点对点的传递过程中是不断变化的,只能在每个中间点重新生成校验数据,在相邻点之间完成校验。 比如由于底层网络不同MTU的限制,需要分片、数据报总长度、片位移值不同,且TTL值在一直减小等原因引起首部字段值在变化,IP首部校验-原理,IP数据报在传输过程中,两个层次的校验,如图所示:,IP首部校验-原理,IP数据报在传输过程中,发送端先将IP层首部校验和置0(此时,相当于该字段没有参与计算),通过计算各字段和,后求补运算,得到的结果填入首部检验和字段内,然后与数据报一起发出去。 接收端对包括校验和(此时,该字段要参与校验和计算)在内的整

20、个数据报重复进行同样的计算,若结果=0,则保留数据报;若结果0,则丢弃数据报。 假定在发送端将所有段相加后得到的和数是T,用反码运算得到-T,即校验和。在接收端,若首部没有变化,则对所有段相加时,实际上就是把T和-T相加,得-0(0 xffff),取反码为0(0 x0000)。,IP首部校验-方法,IP数据报在传输过程中,其首部通过校验和checksum来保证其正确性。,计算首部校验和: 发送方将IP数据报的首部按顺序分为多个16比特的小数据块 首部校验和字段的初始值被设置为0 用1的补码算法对16比特小数据块进行求和 最后再对结果求补,IP首部校验-方法,IP数据报在传输过程中,其首部通过校

21、验和checksum来保证其正确性。,校验和加入首部并发送: 将经过计算得到的首部校验和填回到数据报的首部校验和字段 封装成帧后发给通往信宿的下一跳设备。,IP首部校验-方法,IP数据报在传输过程中,其首部通过校验和checksum来保证其正确性。,接收端校验: 下一跳设备作为接收方将收到的IP数据报的首部再分为多个16比特的小数据块, 用1的补码算法对16位小数据块进行求和, 最后再对结果求补, 若得到的结果为0,就验证了数据报首部的正确性。 否则,丢弃该数据报.,IP首部校验-方法,IP数据报在传输过程中,其首部通过校验和checksum来保证其正确性。,IP首部校验-案例,IP数据报首部

22、校验和的生成、数据报的校验案例。,例:数据报无IP选项,所以首部长度为5,数据总长度为128字节,数据报的标识为1,未分片,TTL值为4,封装的是TCP协议数据,源地址和目的地址分别为:192.168.20.86和192.168.21.20。 计算中要注意加上进位。生成的校验和为3005。,IP首部校验-案例,接收方对同一数据报首部进行校验:求补后得到的校验和值为0,表明IP数据报首部在传输过程中没有出现差错。,IP首部校验-案例,若接收该数据报的设备不是信宿,则将TTL值-1 然后判断TTL是否超时 若未超时,则应根据路由表寻找下一跳路由器 并判断数据报是否需要分片以及是否允许分片 每次转发

23、数据报,其TTL值都会发生变化 如果发生分片,其数据报总长度、标志、片偏移等字段也会发生变化 因此,对新形成的数据报需要重新计算首部较验和 然后向下一跳转发,2.3.2 数据分片与重组,分片 重组 案例,IP数据分片,IP数据报在从信源到信宿的传输过程中要穿过多个不同的网络。由于各种物理网络存在着差异,对帧的最大长度有不同的规定,因此,各个物理网络的最大传输单元MTU可能不同。物理网络的MTU是由硬件决定的。 通常,网络的速度越高,MTU也就越大。 TCP/IP协议的封装: 将数据报以从信源到信宿路径上的最小MTU进行封装(IPv6) 将数据报先以信源网络的MTU进行封装,在传输过程中再根据需

24、要对数据报进行动态分片(IPv4),IP数据分片,当数据报被分片时,每个分片都会得到一个首部。分片首部的大部分内容和原数据报相同,如IP地址、版本号、协议和数据报标识等,所不同的是标志字段、数据报总长度和片偏移。分片既可以带也可以不带原数据报的选项. 在IP数据报中与分片相关的字段是标识字段、标志字段和片偏移字段。 1)数据报标识是分片所属数据报的关键信息,是分片重组的依据。,IP数据分片,2)标志字段由3位构成,低两位有效,最高位未用;D位表示是否允许该数据报分片;M位表示该片是否是分片的最后一片。 3)片偏移字段指出本片数据在原始数据报数据区中的偏移量。由于各分片独立传输,其到达信宿机的顺

25、序无法保证,需要片偏移为重组提供顺序信息。,IP数据分片,IP数据分片,该例子中数据报首部长度为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),片未完标志也

26、为1。 分片必须满足两个条件: 各片尽可能大,但必须能为帧所封装, 片中数据的大小必须为8字节的整数倍,否则IP无法表达其偏移量。,IP数据重组,分片可以在信源机或传输路径上的任何一台路由器上进行,而分片的重组只能在信宿机上进行。 各片作为独立数据报进行传输,在网络中可能沿着不同的路径传输,不太可能在中间的某一个路由器上收气同一数据报的各个分片。 不在中间进行重组,可以建华路由器上的协议,减轻路由器的负担。 TCP/IP的作法是只在信宿机上进行所有分片的重组,一旦数据报被分片,在到达信宿机之前只可能再次被分片,而绝不会进行重组。,IP数据重组,信宿机在进行分片的重组时,采用了一组重组定时器。开

27、始重组时,启动定时器,如果重组定时器超时时,仍然未能完成重组(由于某些分片未及时到达信宿机),信宿机的IP层将丢弃该数据报,并产生一个超时错误,报告给信源机。 片重组的控制主要根据数据报首部中的标识、标志和片偏移字段。 数据报的分片和重组操作对用户和应用程序的编程人员都是透明的,分片和重组操作由网络操作系统自动完成。,第四节 IP数据报选项,本节主要内容,2.4.1 数据报选项格式 2.4.2 数据报选项类型,返回,IP选项是IP数据报首部中的变长部分 用于网络控制和测试目的(如源路由、记录路由、时间戳等)。 IP选项的最大长度不能超过40字节。 IP选项在使用时是可选的,但在TCP/IP软件

28、的实现中却是必须有的,也就是说所有的IP协议都具有IP选项的处理功能。,2.4.1 数据报选项格式,格式 案例,IP数据报选项格式,IP选项的格式如图5-10所示。选项由三个部分组成: 选项码(Option Code) 选项长度 选项数据。,选项码由8位构成,分为复制位(COPY)、选项类和选项号3个子字段。 复制位占一比特,用于控制分片时是否将选项复制到各个分片。复制位为“1”时,表示将原数据报所带的选项复制到所有的分片中,复制位为“0”时,表示仅将选项复制到第一个分片中。 选项类占2比特,用于定义选项的一般作用。 选项号占5比特,用于定义选项的具体类型。选项类区别选项的一般目的,而选项号则

29、对同一类选项进行进一步的细化。 选项长度为8位,用于定义选项的长度。长度信息除包括选项数据部分的长度外还包括选项码和长度字段本身。有些选项不含长度字段。 选项数据不定长,用于定义选项请求。选项是单方向发送的请求,不需要信宿机进行响应。,2.4.2 数据报选项类型,类型 案例,IP数据报选项类型,两位IP选项类定义了四种选项类型:00用于IP数据报路径的控制和测试;10用于时间戳的测试;01类和11类未用。 每一选项类又由选项号进行细分,其中00类中常用的有5个选项号,10类中只有1个选项号在用。 选项类选项号长度 含义 0000000无选项结束 0000001无无操作(作为填充数据) 0000

30、011 变长宽松源路由 0000111 变长记录路径 0001001变长严格源路由 1000100变长时间戳,1单字节选项,表中的前面两个选项为单字节选项,负责标识IP选项的结束和对IP数据报首部进行填充。当IP数据报首部中选用了IP选项时,选项不定长,而数据报要求首部是32位的整数倍,若不是,则需要进行填充。 填充由“无操作”(No Operation)符和选项结束符(End of Option)组成。当需要一个以上的字节对选项进行填充时,先用多个“无操作”符进行填充,最后用选项结束符结束整个选项。,2源路由选项,作用:通常IP数据报在传输时,由路由器自动为其选择路由。但网络管理人员为了使数

31、据报绕开出错网络,或者为了对某特定网络的吞吐率进行测试,需要在信源机控制IP数据报的传输路径。源路由(Source Route)就是为了满足这一要求而设计的选项。 方法:源路由指由信源机上的发送者规定本数据报穿越网络的路径。 种类:源路由选项分为两种。 严格源路由 宽松源路由,(1)严格源路由,严格源路由选项要求信源机上的发送者指定数据报必须经过的每一个路由器。也就是说,数据报必须严格按照发送方规定的路径穿过每一个路由器。严格源路由选项的格式如图所示。,选项码137的含义是:复制位为“1”(严格源路由分片时选项要复制到各个分片),选项类为“00”,选项号为“01001”,即128+0+9=137。 指针字段的含义: 当设备(信源机或路由器)发出带该选项的数据报时,指针指的是该设备的下下跳路由器的入口IP地址。 当一个路由器收到数据报时,指针指的是该路由器的下一跳IP地址,路由器转发数据报前要将指针值加4,这样发出去的数据报的指针又指向了它的下下跳路由器的入口IP地址。 这里要注意的是,源路由对于数据报中目的IP地址的处理和一般情况下有所不同。在源路由传输过程中数据报的目的IP地址会不断变化,而

温馨提示

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

评论

0/150

提交评论