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

下载本文档

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

文档简介

1、计算机网络计算机网络协议分析协议分析 第二章 -2 IP协议分析 本章主要内容 第一节 网络层概述 第二节 IPIP数据报格式 第三节 IPIP无连接数据报传输 第四节 IPIP数据报选项 第五节 IPIP模块的结构第一节 网络层概述 IP层概述IP层:TCP/IP协议的网络层网络层的协议有:ARP、RARP、ICMP、IGMP。IPIP协议是协议是TCP/IP协议的核心协议 提供了网络数据传输的最基本服务 实现网络互联的基本协议 除ARP、RARP协议报文之外 几乎所有数据都要经过IP协议进行发送。IP层概述IP层:不可靠的无连接数据报协议IP提供尽力而为的传输服务(Best-effort)

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

3、过IP数据报实现物理数据帧的统一。 即:对上层屏蔽了下层的差异第二节 IP数据报格式 IP数据报格式0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标 志片 偏 移生 存 时 间协 议首 部 校 验 和源 IP IP 地 址目 的 IP IP 地 址IP IP 选 项 (MAX: 40)(MAX: 40)填充域数 据IP数据报格式0 03 3 4 47 7 8 8151516-1816-1819193131VERVERHLENHLEN Service TypeService TypeTota

4、l LengthTotal Length(MAX: 65535MAX: 65535)IdentificationIdentificationFlagsFlagsFragmentation OffsetFragmentation OffsetTime to liveTime to live TTL TTLProtocolProtocolHeader ChecksumHeader ChecksumSource AddressSource Address IP IP Destination AddressDestination Address IP IP IP IP OptionsOptions (

5、MAX: 40)(MAX: 40)packingpackingDataDataIP数据报格式IP数据报组成,2个部分:首部+数据首部分为2个部分: 定长部分20Bytes 变长部分最大40Bytes0 03 34 47 78 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标 志片 偏 移生 存 时 间协 议首 部 校 验 和源 IP IP 地 址目 的 IP IP 地 址IP IP 选 项 (MAX: 40)(MAX: 40)填充域数 据IP数据报格式-版本版本:4bitVER字段表示:数据报的IP协议版本号,版本号规定

6、了数据报的格式 当前IP协议号 4,即IPv4 下一代网络协议为 6,即IPv6IP软件在处理数据报时,必须检查版本号字段,估计该字段的值,决定对IP数据报的处理方法。0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)IP数据报格式-首部长度首部长度:4bitHLEN字段指出:以32位(4字节)为单位的数据报首部长度。 通过HLEN值,可以确定首部和数据的分界点 定长部分是20字节,即5个单位的长度,默认是5。 变长部分最大值是40字节,即10个单位的长度。IP数据报首部有IP选项字段时,根据HLE

7、N值来确定选项的长度。4bit的字段,最大值是1111(即15),HLEN减去5个定长单位,才是选项的长度。0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)IP数据报格式-服务类型服务类型:8bitService Type字段规定:对本数据报的处理方式。 服务类型字段(Service Type) 区分业务字段(Differentiate Services) 因特网应用增多,多媒体数据传输、实时应用对TCP/IP服务类型提出了更高要求 IETF修改了该字段。0 03 3 4 47 7 8 81515

8、16-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)IP数据报格式-服务类型服务类型:8bit,规定对本数据报的处理方式。 服务类型字段(Service Type)0 03 34 47 78 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)优先级DDT TR RC C保留 优先级precedence:前3bit,表示本数据报的重要程度,网络有拥塞时,路由设备可以根据该值决定首先丢弃哪些数据报。优先级从0(最低优先级)到7(最高优先级)依次越来越重要该值为有区别地对待不同数据提供

9、了可能,但目前IPv4并未使用优先级。IP数据报格式-服务类型服务类型:8bit,规定对本数据报的处理方式。 服务类型字段(Service Type)0 03 34 47 78 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)优先级DDT TR RC C保留D T R C:4bit,是服务类型TOS Type of Service,表示本数据报在传输过程中所希望得到的服务,由用户设置,0000表示一般服务类型的数据报(没啥要求的)。D:最小延迟(minimize) DelayT: 最大吞吐率 (maximize)Throughp

10、utR:最高可靠性 (maximize)ReliabilityC:最低成本 (minimize)CostIP数据报格式-服务类型服务类型 各种协议服务类型的建议值0 03 34 47 78 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)优先级DDT TR RC C保留TOSTOS协议DD、T T、R R、C C备注00000000ICMPICMP、BOOTPBOOTP、DNS(TCP)DNS(TCP)NormalNormal一般信息00010001NNTPNNTPC C低成本直接发给用户00100010IGPIGP、SNMPS

11、NMPR R高可靠路由、网管01000100FTP(FTP(数据) )、SMTP (SMTP (数据) )T T高吞吐传输数据量大10001000TelnetTelnet、FTP(FTP(控制) )、TFTPTFTP、SMTP (SMTP (命令) )DD低延迟少量数据传输IP数据报格式-服务类型服务类型:8bit,规定对本数据报的处理方式。 服务类型字段(Service Type)0 03 34 47 78 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)优先级DDT TR RC C保留设置数据报的服务类型的D T R C时,

12、要注意:TOS仅代表用户的希望:不具有强制性,不少路由设备的TCP/IP实现中,不支持TOS特性,新的路由协议(如OSPF)可以根据TOS值选择路由DTRC4个参数,每次只能设置其中的1个:传输时,路由设备只能考虑一个性能指标,不能面面俱到都兼顾,多个参数的同时指定,会让路由设备很茫然,无所适从,没有意义。IP数据报格式-服务类型服务类型:8bitService Type字段规定:对本数据报的处理方式。区分业务字段(Differentiate Services) 因特网应用增多,多媒体数据传输、实时应用对TCP/IP服务类型提出了更高要求 IETF修改了该字段,叫做区分业务字段。0 03 3

13、4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)IP数据报格式-服务类型服务类型:区分业务字段仍旧8bit,最后两bit保留,未用,前6bit成为“码点”(code point)6bit码点可提供64种不同编码,对应不同业务。0 03 34 47 78 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)0 0 0 优 先 级 保 留 保 留 1 6 码 点(Code point) X X 0 保 留 X X X X 1 1 保 留 X X X X

14、0 1 保 留 X X X 与原服务类型兼容 IETF 指定 本地机构指定 用于临时使用或实验目的 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。0 03 34 47 78 81

15、51516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)IP数据报格式-数据报总长度总长度:16bitTotal Length字段指示:以字节为单位的整个IP数据报的长度 IP数据报最大长度可达216-1(65535)个字节 根据数据报总长度和首部长度可以计算出数据部分的长度。数据长度=数据报总长度-首部长度*40 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)IP数据报格式-数据报总长度总长度:16bit数据长度=数据报总长度-首部长度*4例如

16、:例如:在以太网帧封装数据报时,要求封装的最小数据为在以太网帧封装数据报时,要求封装的最小数据为46个字个字节节,数据少于,数据少于46字节,必须在数据后面进行填充,使其达到字节,必须在数据后面进行填充,使其达到46字节。根字节。根据上述公式,可以据上述公式,可以计算除去填充后的实际数据长度计算除去填充后的实际数据长度。假设假设IP数据报首部数据报首部HLen=5,Total Length=44Bytes,则实际数据长度为:则实际数据长度为: 44-5*4=24Bytes0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535

17、MAX: 65535)IP数据报格式-数据报总长度总长度:16bit数据报总长度最大值为65535字节很少有很少有底层物理网络能底层物理网络能封装这样大的数据。封装这样大的数据。底层物理网络能够封装的最大数据长度称为该网络底层物理网络能够封装的最大数据长度称为该网络的的最大传输单元最大传输单元MTU。当当IP层要传送的数据大于层要传送的数据大于MTU时,必须将数据报分时,必须将数据报分片传输。片传输。0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)IP数据报格式-标识标识:16bitIdentif

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

19、许该数据报分片;1:不允许;0:允许。 M为表示该片是否是分片的最后一片1:非最后一片;0:最后一片001 允许分片,非最后一片;000 允许分片,最后一片 0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标 志片 偏 移未用D DMMIP数据报格式-片偏移片偏移:13bitFragmentation Offset字段表示:本片数据在它所属的原始数据报数据区中的偏移量。以8字节(64bit)为一个单位。偏移量为信宿机进行各分片的重组提供顺序依据。0 03 3 4 47 7 8 8151516

20、-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标 志片 偏 移IP数据报格式-生存时间生存时间:8bitTime to live TTL字段表示:每个数据报的生存时间。 IP数据报从源目的传递时,经过多个中间Router基于route table转发,有时会无法正确到达目的,或进入死循环路径,空耗网络资源。 设置TTL值后,数据报每经过1个路由器,则Routers将TTL减去一定的值,一旦TTL0,则将该数据报从网络中删除,同时向信源机发回差错报告报文。0 03 3 4 47 7 8 8151516-1816-1819193131版本

21、首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标 志片 偏 移生 存 时 间协 议首 部 校 验 和IP数据报格式-生存时间生存时间:8bitTime to live TTL字段表示:每个数据报的生存时间。 由于因特网上的Routers无法进行精确时间同步,不能准确计算出需要减去的时间。目前采用了一种较为简单的方法,即用经过路由器的个数(跳数)进行控制,数据报每经过一个路由器,则TTL值减1。当TTL到0时,数据报仍未到信宿,则弃之。0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65

22、535)标 识标 志片 偏 移生 存 时 间协 议首 部 校 验 和IP数据报格式-生存时间生存时间:8bitTime to live TTL字段表示:每个数据报的生存时间。路由器收到数据报时,先把TTL-1,若减1后,TTL=0,则路由器丢弃该数据报。源主机想限制分组的行程,比如限制在局域网的范围内,则可以把TTL设置为1,则分组到达第一个路由器时,该值就减为0,这个数据报就被丢弃了。0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标 志片 偏 移生 存 时 间协 议首 部 校 验 和IP

23、数据报格式-协议协议标识:8bitProtocol字段表示:被IP数据报封装的协议。 信源机的IP协议根据被封装的协议将该字段设置为相应的值。 信宿机根据该值进行分用,并交给相应的上层协议去处理。ICMP 1;IGMP 2;TCP 6;EGP 8;UDP 17;OSPF 89;0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标 志片 偏 移生 存 时 间协 议首 部 校 验 和IP数据报格式-首部校验和首部校验和:16bitHeader Checksum字段:用于保证首部数据的完整性。将首部

24、按顺序分为多个16bit的数据块首部检验和字段初始值为0用1的补码算法对16bit小数据块求和然后再对求和结果求补码,得到首部校验和。0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标 志片 偏 移生 存 时 间协 议首 部 校 验 和IP数据报格式-源IP地址源IP地址:32bitSource address 字段表示:本数据报的最初发送方的IP地址。 在IPv4中,长度为32bit 在IPv6中,长度是128bit,且数据报格式不一样。0 03 3 4 47 7 8 8151516-18

25、16-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标 志片 偏 移生 存 时 间协 议首 部 校 验 和源 IP IP 地 址IP数据报格式-目的地址目的IP地址:32bitDestination address字段表示:本IP数据报最终接收方的IP地址IP数据报转发过程中,经过若干路由器,会对物理帧进行解封装和再封装,物理地址会不断变化,但IP数据报中的源地址、目的地址字段始终保持不变。 0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标

26、志片 偏 移生 存 时 间协 议首 部 校 验 和源 IP IP 地 址目 的 IP IP 地 址IP数据报格式-IP选项IP数据报选项:变长字段,在传输数据报时可选的附加功能,用于控制数据在网络中的传输路径、记录数据报经过的路由器、获取数据报在途中经过的路由器的时间戳。 IP选项长度受首部长度限制 变长部分最大40Bytes0 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标 志片 偏 移生 存 时 间协 议首 部 校 验 和源 IP IP 地 址目 的 IP IP 地 址IP IP 选 项

27、 (MAX: 40)(MAX: 40)填充域IP数据报格式-数据IP数据:长度可变,用于携带上层数据。 数据长度受数据报总长度限制 数据总长度65535-首部长度*40 03 3 4 47 7 8 8151516-1816-1819193131版本首部长服务类型总 长(MAX: 65535MAX: 65535)标 识标 志片 偏 移生 存 时 间协 议首 部 校 验 和源 IP IP 地 址目 的 IP IP 地 址IP IP 选 项 (MAX: 40)(MAX: 40)填充域数 据IP数据报格式-questions 1、某数据报前8位 0100 0010,接收者丢弃了该分组,为什么? 2、I

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

29、字段=002816,则该数据报携带了多少字节的数据? 40-20 4、某数据报,前n位16进制数字如下:450000280001000001010202,则该数据报在被丢弃之前还能够传送多少跳?该数据属于上层的什么协议? 01,再走一跳,02-IGMP第三节 IP无连接数据报传输 本节主要内容n2.3.1 首部校验n2.3.2 数据分片与重组返回无连接的IP数据报传输 IP数据报传输是IP层要解决的重要问题之一,是影响数据传输效率的重要因素。 IP数据报在经过路由器转发时,一般进行3个方面的处理: 首部校验 路由选择 数据分片2.3.1 首部校验 原因 原理 方法 案例IP首部校验-原因IPI

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

31、是不断变化的,只能在每个中间点重新生成校验数据,在相邻点之间完成校验。比如由于底层网络不同MTU的限制,需要分片、数据报总长度、片位移值不同,且TTL值在一直减小等原因引起首部字段值在变化IP首部校验-原理IPIP数据报在传输过程中,两个层次的校验,数据报在传输过程中,两个层次的校验,IPIP层对数据层对数据报首部进行点对点校验,传输层对数据进行端到端校验,如报首部进行点对点校验,传输层对数据进行端到端校验,如图所示:图所示: 5-4 IP层对IP数据报首部进行点到点校验,传输层对数据进行端到端校验 信源 信宿 路由器1 网络 路由器2 网络 路由器n 网络 传输层进行端到端的数据校验(可选)

32、 IP层进行点到点 数据报首部校验 IP层进行点到点 数据报首部校验 IP层进行点到点 数据报首部校验 校验并形成新校验和 校验 形成校验和 校验并形成新校验和 校验并形成新校验和 IP首部校验-原理IPIP数据报在传输过程中,发送端先将数据报在传输过程中,发送端先将IPIP层首部校验和置层首部校验和置0 0(此时,相当于该字段没有参与计算此时,相当于该字段没有参与计算),通过计算各字段),通过计算各字段和,后求补运算,得到的结果填入首部检验和字段内,然后和,后求补运算,得到的结果填入首部检验和字段内,然后与数据报一起发出去。与数据报一起发出去。接收端对包括校验和(此时,接收端对包括校验和(此

33、时,该字段要参与校验和计算该字段要参与校验和计算)在内的整个数据报重复进行同样的计算,若结果在内的整个数据报重复进行同样的计算,若结果=0=0,则保留,则保留数据报;若结果数据报;若结果0 0,则丢弃数据报。,则丢弃数据报。假定在发送端将所有段相加后得到的和数是假定在发送端将所有段相加后得到的和数是T T,用反码,用反码运算得到运算得到- -T T,即校验和。在接收端,即校验和。在接收端,若首部没有变化若首部没有变化,则对,则对所有段相加时,实际上就是把所有段相加时,实际上就是把T T和和-T-T相加,得相加,得-0-0(0 xffff0 xffff),),取反码为取反码为0(0 x0000)

34、0(0 x0000)。IP首部校验-方法IPIP数据报在传输过程中,其首部通过校验和数据报在传输过程中,其首部通过校验和checksumchecksum来来保证其正确性。保证其正确性。 计算首部校验和: 发送方将IPIP数据报的首部按顺序分为多个1616比特的小数据块 首部校验和字段的初始值被设置为0 0 用1 1的补码算法对1616比特小数据块进行求和 最后再对结果求补 11的补码 ,其英文为1s complement, 1s complement, 其实就是指反码 22的补码 ,英文为2s complement2s complement就是通常说的补码 校验和-反码运算 传统上讲,IP、U

35、DP、TCP使用的计算校验和的方法都是2进制反码运算。 把各数据块的数字,按照列从低位开始计算,分别相加,得到一个和(部分和)。 如果有进位,把进位加到下一列。 加完最后一列,如果还有进位,将该进位与部分和再次相加,得到最后的和。 将和进行二进制反码(0-1;1-0)各块数字,按列相加得到一个部分和如果有进位,把进位加到下一列。加完最后一列,如果还有进位,将该进位与部分和再次相加,得到最后的和。将和进行二进制反码(0-1;1-0)IP首部校验-方法IPIP数据报在传输过程中,其首部通过校验和数据报在传输过程中,其首部通过校验和checksumchecksum来来保证其正确性。保证其正确性。 校

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

37、中,其首部通过校验和数据报在传输过程中,其首部通过校验和checksumchecksum来来保证其正确性。保证其正确性。 校验和的生成与校验 第 1 块 IP 数据报 首部 第 2 块 校验和 0 x0000 第 n 块 和数 第 1 块 第 2 块 校验和 第 n 块 校验和 求补 第 1 块 第 2 块 校验和 第 n 块 和数 校验和 求补 0 x0000 接收方 发送方 传输 图 5-5 校验和的生成与校验 IP 数据报 首部 第 1 块 第 2 块 校验和 0 x0000 第 n 块 第 1 块 第 2 块 校验和 第 n 块 第 1 块 第 2 块 校验和 第 n 块 接收方 发送

38、方 和校验和求补码传输和0000求补码IP首部校验-案例IPIP数据报首部校验和的生成、数据报的校验案例。数据报首部校验和的生成、数据报的校验案例。例:数据报无IPIP选项,所以首部长度为5 5,数据总长度为128128字节,数据报的标识为1 1,未分片,TTLTTL值为4 4,封装的是TCPTCP协议数据,源地址和目的地址分别为:66和00。计算中要注意加上进位。生成的校验和为30053005。 标识 生成 IP 数据报首部校验和 4 5 0 128 1 0 0 4 6 0 192 168 20

39、86 192 168 21 20 数据报总长度 版本、首部长度、 服务类型 标志、片偏移 TTL、协议 首部校验和 源 IP 地址 目的 IP 地址 01000101 00000000 00000000 10000000 00000000 00000001 00000000 00000000 00000100 00000110 00000000 00000000 11000000 10101000 00010100 01010110 11000000 10101000 00010101 00010100 11110100 01000001 1 11110100 01000010 0000101

40、1 10111101 加进位 和数 求补得校验和 4 5 0 128 1 0 0 4 6 3005 192 168 20 86 192 168 21 20 加入校验和前的数据报首部 加入校验和后的数据报首部 计算校验和 3005 IP首部校验-案例 接收方对同一数据报首部进行校验:求补后得到的校验和值为0 0,表明IPIP数据报首部在传输过程中没有出现差错。 标识 接收方进行 IP 数据报首部校验 4 5 0 128 1 0 0 4 6 3005 192 168 20 86 192 168 21 20 数据报总长度 版本、首部长度、 服务类型 标志、片偏移 TTL、协议 首部校验和 源 IP

41、地址 目的 IP 地址 01000101 00000000 00000000 10000000 00000000 00000001 00000000 00000000 00000100 00000110 00001011 10111101 11000000 10101000 00010100 01010110 11000000 10101000 00010101 00010100 11111111 11111110 1 11111111 11111111 00000000 00000000 加进位 和数 求补得校验和 计算校验和 IP首部校验-字段变化 若接收该数据报的设备不是信宿,则将若接收

42、该数据报的设备不是信宿,则将TTLTTL值值-1-1 然后判断然后判断TTLTTL是否超时是否超时 若未超时,则应根据路由表寻找下一跳路由器若未超时,则应根据路由表寻找下一跳路由器 并判断数据报是否需要分片以及是否允许分片并判断数据报是否需要分片以及是否允许分片 每次转发数据报,其每次转发数据报,其TTLTTL值都会发生变化值都会发生变化 如果发生分片,其数据报总长度、标志、片偏移等字段也会发生如果发生分片,其数据报总长度、标志、片偏移等字段也会发生变化变化 因此,对新形成的数据报因此,对新形成的数据报需要重新计算首部较验和需要重新计算首部较验和 然后向下一跳转发然后向下一跳转发2.3.2 数

43、据分片与重组 分片 重组 案例IP数据分片 IPIP数据报在从信源到信宿的传输过程中要穿过多个不同的网数据报在从信源到信宿的传输过程中要穿过多个不同的网络。由于物理网络的差异性,对帧最大长度有不同的规定,络。由于物理网络的差异性,对帧最大长度有不同的规定,各物理网络各物理网络最大传输单元最大传输单元MTUMTU不同。不同。 物理网络的物理网络的MTUMTU是由硬件决定的。数据报封装成帧时,数据报是由硬件决定的。数据报封装成帧时,数据报总长度必须小于数据发送出去时的物理网络的总长度必须小于数据发送出去时的物理网络的MTUMTU。路由设备收路由设备收到数据报后,要对帧进行拆、再封装,格式与数据报来

44、的网络和数据报去到数据报后,要对帧进行拆、再封装,格式与数据报来的网络和数据报去的网络的帧格式相对应。的网络的帧格式相对应。 通常,网络的速度越高,通常,网络的速度越高,MTUMTU也就越大。也就越大。 超级通道超级通道hyperchannel 65535 hyperchannel 65535 以太网以太网 15001500 令牌环令牌环16Mbps 17914 16Mbps 17914 X.25 576 X.25 576 令牌环令牌环4Mbps 4464 4Mbps 4464 PPP 296 PPP 296 FDDI 4352FDDI 4352IP数据分片 为使为使IPIP协议与物理网络无关

45、,协议与物理网络无关,IPIP数据报的最大长度数据报的最大长度是是6553565535字节,如果使用具有(字节,如果使用具有(MTU=65535MTU=65535)的协议)的协议时,传输效率更高。时,传输效率更高。 即:即:IPIP数据报如果恰好能封装在一个帧内部传输,数据报如果恰好能封装在一个帧内部传输,效率自然高,但这很难保证。效率自然高,但这很难保证。 对于一般的物理网络,如果类似对于一般的物理网络,如果类似6553565535字节这么大的字节这么大的数据报,则必须要对数据报进行分割,使其能够通数据报,则必须要对数据报进行分割,使其能够通过这些网络,这就是分片。过这些网络,这就是分片。

46、把一个数据报封装在具有较大把一个数据报封装在具有较大MTUMTU的物理网络帧中发的物理网络帧中发送时,可能在穿过较小送时,可能在穿过较小MTUMTU的物理网络时,无法正常的物理网络时,无法正常传输。传输。IP数据分片 解决不同网络解决不同网络MTUMTU不同带来的问题,有两种思路。不同带来的问题,有两种思路。 即:即:TCP/IPTCP/IP协议的帧协议的帧封装,存在封装,存在2 2种方法种方法: 将数据报以将数据报以从信源到信宿路径上的最小从信源到信宿路径上的最小MTUMTU进行封进行封装装(IPv6)(IPv6) 将数据报先将数据报先以信源网络的以信源网络的MTUMTU进行封装,在传输过进

47、行封装,在传输过程中再程中再根据需要对数据报进行动态分片根据需要对数据报进行动态分片(IPv4)(IPv4) 第一种方法,不能充分利用网络的传输能力,效第一种方法,不能充分利用网络的传输能力,效率不高,第二种方法,要求网络支持对数据报的率不高,第二种方法,要求网络支持对数据报的动态分片。动态分片。IP数据分片 将数据报先将数据报先以信源网络的以信源网络的MTUMTU进行封装,在传进行封装,在传输过程中再输过程中再根据需要对数据报进行动态分片根据需要对数据报进行动态分片 IPIP协议在确定数据报大小时,以方便为原则,选协议在确定数据报大小时,以方便为原则,选择择当前信源机所在物理网络最合适的数据

48、报当前信源机所在物理网络最合适的数据报大小大小来传输数据。来传输数据。 当数据报要当数据报要穿过穿过MTUMTU较小的网络时,进行分片较小的网络时,进行分片后,后,再传输。再传输。 当传输后在当传输后在碰到更小碰到更小MTUMTU的网络的网络时,时,继续分片继续分片。 所以,分片可能会发生很多次。所以,分片可能会发生很多次。IP数据分片 当数据报被分片时,每个分片都会得到一个首部。当数据报被分片时,每个分片都会得到一个首部。 分片首部分片首部的大部分内容和原数据报的大部分内容和原数据报相同相同,如,如IPIP地址地址、版本号、协议和数据报标识等、版本号、协议和数据报标识等 所所不同不同的是的是

49、标志字段、数据报总长度和片偏移标志字段、数据报总长度和片偏移。( (即这三个字段的值发生了改变即这三个字段的值发生了改变) ) 分片既可以带也可以不带原数据报的选项。分片既可以带也可以不带原数据报的选项。 不管是否分片,校验和的值必须重新计算。不管是否分片,校验和的值必须重新计算。IP数据分片 在在IPIP数据报中数据报中与分片相关的字段与分片相关的字段是是标识字段、标志标识字段、标志字段和片偏移字段字段和片偏移字段。 1)1)数据报标识数据报标识是分片是分片所属数据报所属数据报的关键信息,是的关键信息,是分片重组的依据。分片重组的依据。 数据报被分片时,该字段值被复制到所有分数据报被分片时,

50、该字段值被复制到所有分片中,即同一数据报的所有分片具有相同的标识,片中,即同一数据报的所有分片具有相同的标识,即原始数据报的标识号。即原始数据报的标识号。 标识号在分片重组时很重要。信宿机借此字标识号在分片重组时很重要。信宿机借此字段知道所有具有相同标识号的分片必须组装成一个段知道所有具有相同标识号的分片必须组装成一个数据报。数据报。IP数据分片 2)2)标志标志字段由字段由3 3位构成,低两位有效,最高位未用;位构成,低两位有效,最高位未用;D D位表示位表示是否允许该数据报分片是否允许该数据报分片;M M位表示该片位表示该片是否是否是分片的最后一片是分片的最后一片。D=do not fra

51、gmentD=do not fragmentM=more fragmentM=more fragment 标志 D M IP 数据报标志字段 D:不分片 1:不允许分片 0:允许分片 M:片未完 1:非最后一片 0:最后一片 未用 IP数据分片3)3)片偏移片偏移字段(字段(13bit13bit)指出本片数据在原始数据报)指出本片数据在原始数据报数据区中的偏移量。数据区中的偏移量。 由于各分片独立传输,其到达信宿机的顺序无法由于各分片独立传输,其到达信宿机的顺序无法保证,需要片偏移保证,需要片偏移为重组提供顺序信息为重组提供顺序信息。 片偏移值是以片偏移值是以8 8字节为单位的。字节为单位的。

52、 2 21313=8192=8192,所以,所以1313个个bitbit,最大值是,最大值是81918191。 即这个字段的值不能超过即这个字段的值不能超过81918191 81928192* *8 8字节字节=65536=65536字节字节 IPIP数据报最大值是数据报最大值是6553565535IP数据分片0000字节字节3999字节字节0000字节字节1399字节字节1400字节字节2799字节字节2800字节字节3999字节字节偏移偏移=0000/8=0偏移偏移=0000/8=0偏移偏移=1400/8=175偏移偏移=2800/8=350分片和重组长度=1600BMTU=820BMTU

53、=1420B 该主机IP层重组P1P2P3P4P5I2I1I3I4I5I6H 1R1R2P6H216001400200800600200 该路由器IP层分片 该路由器IP层分片数据报分片数据区报头20B1600B数据区报头数据1数据2数据1=1400数据2=200报头报头标识片偏移标志295710000000295710010/8=00295710001400/8=175175MTU=1420IP数据分片 IP 数据报分片示例 第一次分片 4 5 0 1620 29571 0 0 0 17 6 0 数据(0-1599) 4 5 0 1420 29

54、571 0 1 0 17 6 0 数据(0-1399) 4 5 0 220 29571 0 0 175 17 6 0 数据(1400-1599) 4 5 0 820 29571 0 1 0 17 6 0 数据(0-799) 4 5 0 620 29571 0 1 100 17 6 0 数据(800-1399) 第二次分片 IP数据分片 该数据报首部长该数据报首部长2020字节,数据区长字节,数据区长160

55、01600个字节,进入个字节,进入MTUMTU为为14201420字节的物理网络时进行第一次分片。字节的物理网络时进行第一次分片。 第第1 1次分片,形成次分片,形成1 1个个14001400字节分片和字节分片和1 1个个200200字节分片。字节分片。 第第1 1片的片偏移为片的片偏移为0 0(0/80/8),片未完标志为片未完标志为1 1; 第第2 2片的片偏移为片的片偏移为175175(1400/81400/8),片未完标志为片未完标志为0 0,表示该片,表示该片是数据报的最后一片。是数据报的最后一片。 当第当第1 1个分片进入个分片进入MTUMTU为为820820字节的物理网络时再次分

56、片。字节的物理网络时再次分片。 第第2 2次分片,又形成了次分片,又形成了1 1个个800800字节分片和字节分片和1 1个个600600字节分片。字节分片。 800800字节分片的字节分片的片偏移为片偏移为0 0(0/80/8),片未完标志为片未完标志为1 1; 600600字节的字节的片偏移为片偏移为100100(800/8800/8),片未完标志也为片未完标志也为1 1。IP数据分片分片必须满足两个条件:分片必须满足两个条件: 各片尽可能大,但必须能为帧所封装,各片尽可能大,但必须能为帧所封装, 片中数据的大小必须为片中数据的大小必须为8 8字节的整数倍字节的整数倍,否则否则IPIP无法

57、表达其偏移量。无法表达其偏移量。 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字节)首部标识标志片偏

58、移295712957129571标志000片偏移000重组成功! !IP数据重组 分片可以在信源机或传输路径上的任何一台路由器上进行,而分片的重组只能在信宿机上进行。 各片作为独立数据报进行传输,在网络中可能沿着不同的路径传输,不太可能在中间的某一个路由器上收气同一数据报的各个分片。 不在中间进行重组,可以简化路由器上的协议,减轻路由器的负担。 TCP/IPTCP/IP的作法是只在信宿机上进行所有分片的重组,一旦数据报被分片,在到达信宿机之前只可能再次被分片,而绝不会进行重组。IP数据重组 信宿机在进行分片的重组时,采用了一组重组定时器。开始重组时,启动定时器,如果重组定时器超时时,仍然未能完

59、成重组(由于某些分片未及时到达信宿机),信宿机的IPIP层将丢弃该数据报,并产生一个超时错误,报告给信源机。 片重组的控制主要根据数据报首部中的标识、标志和片偏移字段。 数据报的分片和重组操作对用户和应用程序的编程人员都是透明的,分片和重组操作由网络操作系统自动完成。IP数据报分片重组-questions 1、某数据报的标志位M=0,那么该分片是第1个分片,还是最后一个分片,或中间的分片?是否可以看出该数据报是否被分片? 2、某数据报的标志位M=1,那么该分片是第1个分片,还是最后一个分片,或中间的分片?是否可以看出该数据报是否被分片?IP数据报分片重组-questions 1、某数据报的标志

60、位M=0,那么该分片是第1个分片,还是最后1个分片,或中间的分片?是否可以看出该数据报是否被分片? M=0,表示没有进行分片,这个分片也是最后1个,但不能说明原来的数据报是否被分片,因为不被分片的数据报也被认为是最后一个分片。 2、某数据报的标志位M=1,那么该分片是第1个分片,还是最后一个分片,或中间的分片?是否可以看出该数据报是否被分片? M=1,表示至少有1个以上的分片,这个分片可以是第1个或中间的某个(单从该位看不出到底是1,还是中间的,要结合其他信息看),但不是最后1个。IP数据报分片重组-questions 3、某数据报的标志位M=1,分片偏移值=0,那么该分片是第1个分片,还是最

温馨提示

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

评论

0/150

提交评论