第2章TCPIP协议分析3网际协议

上传人:大米 文档编号:568251916 上传时间:2024-07-23 格式:PPT 页数:50 大小:884.50KB
返回 下载 相关 举报
第2章TCPIP协议分析3网际协议_第1页
第1页 / 共50页
第2章TCPIP协议分析3网际协议_第2页
第2页 / 共50页
第2章TCPIP协议分析3网际协议_第3页
第3页 / 共50页
第2章TCPIP协议分析3网际协议_第4页
第4页 / 共50页
第2章TCPIP协议分析3网际协议_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《第2章TCPIP协议分析3网际协议》由会员分享,可在线阅读,更多相关《第2章TCPIP协议分析3网际协议(50页珍藏版)》请在金锄头文库上搜索。

1、网网 络络 协协 议议第第2 2章章 TCP/IPTCP/IP协议分析协议分析 TCP/IPTCP/IP协议族协议族 编址与地址解析编址与地址解析 网际协议网际协议 网际控制消息协议网际控制消息协议 IPIP路由协议路由协议 IPIP组播协议组播协议 传输层协议传输层协议 应用层协议应用层协议2.3 2.3 网网 际际 协协 议议 网际协议(网际协议(IP)负责通过相互连接的一组网络传负责通过相互连接的一组网络传送数据块(数据报)。送数据块(数据报)。IP接受来自接受来自TCP或用户数据报或用户数据报(UDP)等更高层次协议的这些数据块,然后再转发等更高层次协议的这些数据块,然后再转发给网络接

2、口层,并通过给网络接口层,并通过Internet传送这些数据块。传送这些数据块。 IP是是TCP/IP协议族中最为核心的协议。所有的协议族中最为核心的协议。所有的TCP、UDP、ICMP及及IGMP数据都以数据都以IP数据报格式数据报格式传输。传输。1 网际协议概述网际协议概述 向网络接口层传输数据;向网络接口层传输数据; 在端站之间提供在端站之间提供无连接无连接(数据报)传送服务。(数据报)传送服务。每个数据报携带一个完整的目的地址,并独立于每个数据报携带一个完整的目的地址,并独立于其他数据报在系统内进行路由,此时不需要建立其他数据报在系统内进行路由,此时不需要建立连接和逻辑链路。连接和逻辑

3、链路。 为那些最大数据报长度小于数据包长度的网络为那些最大数据报长度小于数据包长度的网络进行数据传送提供一种数据报进行数据传送提供一种数据报分段分段和和重组重组机制。机制。(1)IP的功能的功能(2) IP特性特性无连接传递无连接传递数据报独立传输、数据报独立传输、IPIP不维护通信不维护通信双方之间的连接细节。双方之间的连接细节。不能保证数据传输的可靠性。不能保证数据传输的可靠性。IPIP提供了一个提供了一个1616位位报头校验和,用于接收节点验证数据包传送是否正报头校验和,用于接收节点验证数据包传送是否正确。确。“尽力而为尽力而为”的传递机制的传递机制不提供确认功能,不提供确认功能,不提供

4、对丢失或破坏数据的重传机制,不提供流量不提供对丢失或破坏数据的重传机制,不提供流量控制或数据包排序机制。控制或数据包排序机制。2 多路分解传送协议多路分解传送协议TCPTCP协议协议UDPUDP协议协议IPIPARPARPRARPRARP以太网帧以太网帧传输层传输层网络层网络层数据链路层数据链路层物理层物理层3 IP数据报数据报 目前,已经有目前,已经有2种种IP版本成为标准,它们分别版本成为标准,它们分别是是IPv4和和IPv6,后者是前者的升级。现在网络正后者是前者的升级。现在网络正在使用的是在使用的是IPv4。04816192431版版 本本标志标志生存时间生存时间协协 议议标标 识识服

5、服 务务 类类 型型总总 长长 度度片片 偏偏 移移填填 充充首首 部部 检检 验验 和和源源 站站 IP 地地 址址目目 地地 站站 IP 地地 址址长长 度度 可可 变变 的的 可可 选选 字字 段段比特比特首部长度首部长度20个个字节字节固定固定长度长度可变可变长度长度01234567DTRC未用未用优优 先先 级级数数 据据IP数据报的格式数据报的格式v 版本(版本(versionversion):):说明数据报属于哪一个协议版本,以便可以在运说明数据报属于哪一个协议版本,以便可以在运行不同版本协议的机器之间进行版本转换。行不同版本协议的机器之间进行版本转换。 IPv4IPv4和和IP

6、v6IPv6即在此标示,当该域值为即在此标示,当该域值为4 4时,表示时,表示IPv4IPv4。v 首部长度(首部长度(Header LengthHeader Length):):说明报头的长度(单位:说明报头的长度(单位:3232位字长,位字长,4 4字节),最字节),最小为小为5 5,最大为,最大为1515。头部最长为。头部最长为6060字节,可选部分最大字节,可选部分最大为为4040字节。该域值变化字节。该域值变化1 1,表示报头长度变化,表示报头长度变化3232个字节。个字节。此外,对于有些可选项,例如记录分组已经走过路由此外,对于有些可选项,例如记录分组已经走过路由的源路由选项,的源

7、路由选项,4040字节就显得太短了。字节就显得太短了。v 服务类型(服务类型(type of service):):允许主机告诉子网它需要什么类型的服务,可能允许主机告诉子网它需要什么类型的服务,可能是可靠程度和传输速率的各种组合。是可靠程度和传输速率的各种组合。例如,对数字话音要求快速传递;而对文件传输例如,对数字话音要求快速传递;而对文件传输无差错比快速更重要。该域中,左起无差错比快速更重要。该域中,左起3位为优先级位为优先级(precedence)字段,从字段,从0(正常)到(正常)到7(网络控(网络控制分组)。后跟制分组)。后跟3个标识(个标识(flag)位分别表示延迟、位分别表示延迟

8、、吞吐量和可靠性,它们允许主机指明在以上三项指吞吐量和可靠性,它们允许主机指明在以上三项指标中它最关心什么。最后两位没有定义。标中它最关心什么。最后两位没有定义。实际上,目前的路由器都不支持服务类型字段。实际上,目前的路由器都不支持服务类型字段。 Precedence D T R unused0 1 2 3 4 5 6 70 1 2 3 4 5 6 7优先级优先级ToSToS0 0ToS =1000 1000 最小延迟最小延迟 0100 0100 最大吞吐量最大吞吐量 0010 0010 最大可靠性最大可靠性0001 0001 最小成本最小成本0000 0000 正常业务正常业务 CISCO提

9、出的服务类型组件:提出的服务类型组件:v总长度(总长度(total length):): 指头部和正文部分的长度之和,最大为指头部和正文部分的长度之和,最大为65535字节。(目前允许这一上限,但将来的千兆位网络字节。(目前允许这一上限,但将来的千兆位网络将要求更长的数据报。)将要求更长的数据报。) 数据报总长数据报总长 = 报头长度报头长度 + 数据长度数据长度v标识(标识(identification):):由信源机产生,每次自动加由信源机产生,每次自动加1。用来让目的主。用来让目的主机确定新到达的分段(机确定新到达的分段(fragment)属于哪一个数据属于哪一个数据报。同一数据报的所有

10、分段包含相同的标识值。报。同一数据报的所有分段包含相同的标识值。v :该域没有定义。该域没有定义。v DF:置置“1”表示不要分段(表示不要分段(dont fragment),),它它命令路由器不要将数据报分段。置命令路由器不要将数据报分段。置“0”表示需要的表示需要的话数据就会被分段。话数据就会被分段。v MF:表示当前分段后面是否还有更多的分段(表示当前分段后面是否还有更多的分段(more fragment)。)。除了最后一个分段外,所有同一数据报除了最后一个分段外,所有同一数据报的各分段中该位都要置位的各分段中该位都要置位“1”。v分段偏移量(分段偏移量(fragment offset)

11、:):告知本分段在当前数据报的位置。除了最后一个告知本分段在当前数据报的位置。除了最后一个分段以外,分段以外,一个数据报的所有分组必须是一个数据报的所有分组必须是8字节的倍字节的倍数数,即,即8字节为一个基本分段单位。该域有字节为一个基本分段单位。该域有13位,所位,所以每个数据报最多有以每个数据报最多有8192个分段,数据报长度最大可个分段,数据报长度最大可达到达到65536字节,比总长度域的最大值大字节,比总长度域的最大值大1个字节。个字节。v 生存期生存期TTLTTL(time to livetime to live):):是用来限制分组寿命的计数器,最长生存期为是用来限制分组寿命的计数

12、器,最长生存期为255255秒。该域在每条链路上都必须递减。若在某个路由器秒。该域在每条链路上都必须递减。若在某个路由器中排了长时间的队,则要以倍数递减。实际上,它只中排了长时间的队,则要以倍数递减。实际上,它只计算链路上的时间。当该域减为计算链路上的时间。当该域减为0 0时,就将这一分组丢时,就将这一分组丢弃,并向源主机发送一告警分组。弃,并向源主机发送一告警分组。运输层运输层网络层网络层首部首部TCPUDPICMPIGMPOSPF数数 据据 部部 分分IP 数据报数据报协议字段指出应将数据协议字段指出应将数据部分交给哪一个进程部分交给哪一个进程v 协议(协议(protocolprotoco

13、l):):告诉网络层把收到的数据报送给哪一个传输层进告诉网络层把收到的数据报送给哪一个传输层进程,可能是程,可能是TCPTCP,也可能是也可能是UDPUDP或其他。协议编号在整或其他。协议编号在整个个InternetInternet中是全局唯一的,定义参考中是全局唯一的,定义参考RFC 1700RFC 1700。Protocol Keyword ProtocolProtocol Keyword Protocol01234568917294155-608092101-254255ICMPIGMPGGPIPSTTCPEGPIGPUDPISO-TP4SIPISO-IPMTPReservedInter

14、net Control MessageInternet Group ManagementGateway-to-GatewayIP in IP (encasulation)StreamTransmission ControlExterior Gateway Protocolany private interior gatewayUser DatagramISO Transport Protocol Class 4Simple Internet ProtocolUnassignedISO Internet ProtocolMulticast Transport ProtocolUnassigned

15、Reservedv报头校验和(报头校验和(header checksumheader checksum):):u 只验证只验证IPIP报头。每条链路中该域都必须重新计算,报头。每条链路中该域都必须重新计算,因为至少有一个域(生存期域)的值是一直在变化的。因为至少有一个域(生存期域)的值是一直在变化的。u 校验和不计算被封装的数据,校验和不计算被封装的数据,UDPUDP、TCPTCP和和ICMPICMP都都有各自的校验和。有各自的校验和。u 按照按照IPIP校验和算法的定义,头部被分成校验和算法的定义,头部被分成1616位的字位的字进行进行1 1的补码相加求和的补码相加求和,计算中要注意加上进位

16、。,计算中要注意加上进位。u发现校验和错时:发现校验和错时: 数据报必须立即丢弃,不作进数据报必须立即丢弃,不作进一步的处理。一步的处理。(原文)(原文)The checksum algorithm is simply to add up all the 16-bit words in ones complement and then to take the ones complement of the sum. (译文)校验和的算法是简单地将所有(译文)校验和的算法是简单地将所有16位字位字以以1的补码的补码形式相加,然后再对相加和求形式相加,然后再对相加和求1的补的补码。码。 ones c

17、omplement 就是反码。就是反码。在发送数据时,按如下步骤:在发送数据时,按如下步骤: (1)把)把IP数据报的首部校验和字段置为数据报的首部校验和字段置为0。 (2)把首部看成以)把首部看成以16位为单位的数字组成,依次进位为单位的数字组成,依次进行二进制反码求和。行二进制反码求和。 (3)把得到的结果存入校验和字段中。)把得到的结果存入校验和字段中。 在接收数据时,按如下步骤:在接收数据时,按如下步骤: (1)把首部看成以)把首部看成以16位为单位的数字组成,依次进位为单位的数字组成,依次进行二进制反码求和,包括校验和字段。行二进制反码求和,包括校验和字段。 (2)检查计算出的校验和

18、的结果是否等于零。)检查计算出的校验和的结果是否等于零。 (3)如果等于零,说明被整除,校验是和正确。否)如果等于零,说明被整除,校验是和正确。否则,校验和就是错误的,协议栈要抛弃这个数据包。则,校验和就是错误的,协议栈要抛弃这个数据包。计算方法描述计算方法描述FUSHORT checksum(USHORT *buffer, int size) Funsigned long cksum=0; Fwhile (size 1) F cksum+=*buffer+; F size -=sizeof(USHORT); F Fif (size ) F cksum += *(UCHAR*)buffer;

19、F Fcksum = (cksum 16) + (cksum & 0xffff); Fcksum += (cksum 16); Freturn (USHORT)(cksum); & 按位与按位与 | 按位或按位或 按位异或按位异或 取反取反 右移右移C语言实现语言实现F01000101 /*ver_hlen*/F00000000 /*tos*/F00000000 00000010 /*len*/F00000000 00000000 /*id*/F00000000 00000000 /*offset*/F00000100 /*ttl*/F00010001 /*type*/F00000000 00

20、000000 /*cksum(0)*/F01111111 00000000 00000000 00000001 -/*sip*/F01111111 00000000 00000000 00000001 -/*dip*/发送端的发送端的IP报头数据报头数据:F1 01000111 00010101 cksumF 00000000 00000001 (cksum16)F 01000111 00010101 (cksum&0xffff)F -F 01000111 00010110F 10111000 11101001 cksum 计算校验和:计算校验和:F01000101 /*ver_hlen*/F

21、00000000 /*tos*/F00000000 00000010 /*len*/F00000000 00000000 /*id*/F00000000 00000000 /*offset*/F00000100 /*ttl*/F00010001 /*type*/F10111000 11101001 /*cksum(0)*/F01111111 00000000 00000000 00000001 /*sip*/F01111111 00000000 00000000 00000001 /*dip*/接受端的接受端的IP报头数据报头数据:F1 11111111 11111110 cksumF 000

22、00000 00000001 (cksum16)F 11111111 11111110 (cksum&0xffff)F -F 11111111 11111111F 00000000 00000000 cksum 计算校验和:计算校验和:v 源地址(源地址(source addresssource address)和目的地址和目的地址(destination addressdestination address):):指明发送数据报的源和目的的网络号和主机号。指明发送数据报的源和目的的网络号和主机号。v 选项(选项(optionsoptions):):用来提供一种余地,使协议的后来版本可以包含原

23、用来提供一种余地,使协议的后来版本可以包含原有设计中没有的信息,也可以使试验者能尝试他的新想有设计中没有的信息,也可以使试验者能尝试他的新想法。选项域的长度是可变的,每个选项都以一个字节表法。选项域的长度是可变的,每个选项都以一个字节表明内容。某些选项还跟有一个字节的选项长度字段,其明内容。某些选项还跟有一个字节的选项长度字段,其后是一个或多个数据字节。选项域以后是一个或多个数据字节。选项域以4 4个字节的倍数来个字节的倍数来安排。安排。Option TypeOption TypeOption lengthdataCopy Class number 1B1B1B1b25Option TypeI

24、PIP数据报选项数据报选项(长度可变,默认是(长度可变,默认是0 0字节,最大值是字节,最大值是4040字节)字节)Copy Copy 1 1 该选项应被拷该选项应被拷 贝到所有段中贝到所有段中0 0 该选项仅被拷该选项仅被拷 贝到第一分段中贝到第一分段中ClassClass0 0 数据报用于数据报用于 网络控制网络控制 1 1 保留保留2 2 调试和测量调试和测量3 3 保留保留选项类选项类选项号选项号选项长度选项长度字段字段0 00 0- -选项结束选项结束0 01 1- -空操作空操作0 02 21111安全安全0 03 3可变可变松散源路由松散源路由0 09 9可变可变严格源路由严格源

25、路由0 07 7可变可变记录路由记录路由2 24 4可变可变InternetInternet时间戳时间戳目前定义了目前定义了5种选项,列表如下:种选项,列表如下:选选 项项描描 述述安全性(安全性(securitysecurity)指明数据报的机密程度指明数据报的机密程度(IPSecIPSec)严格的源路由选择严格的源路由选择(strict source strict source routingrouting) 指定一个指定一个IPIP地址列表,不能和指地址列表,不能和指定的路径有任何背离定的路径有任何背离松散的源路由选择松散的源路由选择(loose source routingloose

26、source routing) 指定一个指定一个IPIP地址列表,指定的路地址列表,指定的路径可以发生变化径可以发生变化记录路由(记录路由(record routerecord route) 路由器执行数据报路径的跟踪任路由器执行数据报路径的跟踪任务,存储动态增长的路由列表务,存储动态增长的路由列表时间戳时间戳(time stamptime stamp) 是每个路由器都附上它的地址和是每个路由器都附上它的地址和时间标记时间标记 记录路由选项记录路由选项源主机生成一个源主机生成一个IPIP地址的空表,由所有处理过该数据报的路地址的空表,由所有处理过该数据报的路由器把它们的由器把它们的IPIP地址

27、(最多地址(最多9 9个)填入表中。个)填入表中。First hop IP addressSecond hop IP address Pointer( 0, 7 ) length 分段时分段时记录路由选项只拷贝到其中一个段中记录路由选项只拷贝到其中一个段中 源路由选项源路由选项严格源路由:发送端指明严格源路由:发送端指明IPIP数据报所必须采用的确切路由。数据报所必须采用的确切路由。松散源路由:发送端指明了一个数据报经过的松散源路由:发送端指明了一个数据报经过的IPIP地址清单,地址清单,但是数据报在清单上指明的任意两个地址之间可以通过其他但是数据报在清单上指明的任意两个地址之间可以通过其他路

28、由器。路由器。First hop IP addressSecond hop IP address Pointer(0,3)/(0,9) length 分段时,分段时,源路由选项必须拷贝到所有段中源路由选项必须拷贝到所有段中0 0 仅记录时间戳;忽略仅记录时间戳;忽略IPIP地址地址1 1 在每个时间戳之前记录在每个时间戳之前记录IPIP地址地址3 3 由发方指定由发方指定IPIP地址;地址; 如表中下一个如表中下一个IPIP地址与路由器的地址与路由器的IPIP地址匹配,地址匹配, 则路由器仅记录时间戳。则路由器仅记录时间戳。Flag meaning 时间戳选项时间戳选项Second times

29、tampFirst IP addressFirst timestamp Second IP addressflag ( 2,4 )lengthPointeroflow路由更新路由更新路由更新路由更新路由协议路由协议路由表路由表接口接口接口接口转发转发目的地址目的地址提取提取数据包数据包数据包数据包路由路由数据库数据库路由表路由表IP软件中的软件中的路由选择算法路由选择算法路由的检查或更新路由的检查或更新要选择路由的数据报要选择路由的数据报要发送的数据报和下要发送的数据报和下一跳地址一起发送一跳地址一起发送使用使用IP地址地址使用物理地址使用物理地址使用使用IP地址使路由易于检查或改地址使路由易

30、于检查或改变,并隐藏了物理地址的细节。变,并隐藏了物理地址的细节。4 数据报转发和路由数据报转发和路由路由表和转发表的数据结构不同,实现也不同路由表和转发表的数据结构不同,实现也不同路由更新路由更新路由更新路由更新一组输入端口一组输入端口Phy,DL,Net排队,查表,转发排队,查表,转发一组输出端口一组输出端口Net,DL,Phy排队,缓存,发送排队,缓存,发送存储器,总线,互联网络存储器,总线,互联网络路由协议路由协议路由表路由表接口接口接口接口数据分组数据分组数据分组数据分组路由路由数据库数据库路由选择处理机路由选择处理机交换结构交换结构分组处理分组处理转发表转发表(1 1)数据报传输与

31、帧)数据报传输与帧当主机或路由器处理一个数据报时,首先选择当主机或路由器处理一个数据报时,首先选择数据报发往的下一跳数据报发往的下一跳N N,然后通过物理网络将数据报然后通过物理网络将数据报传送给传送给N N。但是,网络硬件并不了解数据报格式或但是,网络硬件并不了解数据报格式或InternetInternet寻址。寻址。 相反,每种硬件技术定义了自己的帧格式和物相反,每种硬件技术定义了自己的帧格式和物理寻址方案,硬件只接收和传送那些符合特定帧格理寻址方案,硬件只接收和传送那些符合特定帧格式以及使用特定的物理寻址方案的包。由于一个式以及使用特定的物理寻址方案的包。由于一个Internet可能包含

32、异构网络,穿过当前网络的帧格式可能包含异构网络,穿过当前网络的帧格式与前一个网络的帧格式可能是不同的。与前一个网络的帧格式可能是不同的。5 IP封装、分段和重组封装、分段和重组为了解决上述问题,引入了封装技术。即将一个为了解决上述问题,引入了封装技术。即将一个IP数据报封装进一个帧中,这时整个数据报被放进帧数据报封装进一个帧中,这时整个数据报被放进帧的数据区。网络硬件象对待普通帧一样对待包含一个的数据区。网络硬件象对待普通帧一样对待包含一个数据报的帧。事实上,硬件不会检测或改变帧的数据数据报的帧。事实上,硬件不会检测或改变帧的数据区内容。区内容。由于每个网络可能使用一种不同于其他网络的硬由于每

33、个网络可能使用一种不同于其他网络的硬件技术,因此帧的格式也相应地不同。件技术,因此帧的格式也相应地不同。(2 2)封装()封装(encapsulationencapsulation)每一种硬件技术都规定了一帧所能携带的最大每一种硬件技术都规定了一帧所能携带的最大数据量。这一限制称为最大传输单元(数据量。这一限制称为最大传输单元(Maximum Maximum Transmission Unit,MTUTransmission Unit,MTU)。)。网络硬件在设计上不能网络硬件在设计上不能接受或传输数据量大于接受或传输数据量大于MTUMTU的帧。因而一个数据报必的帧。因而一个数据报必须小于或等

34、于一个网络的须小于或等于一个网络的MTUMTU。() 分段(分段(fragmentation)u 选择合适的分组长度适应不同的选择合适的分组长度适应不同的MTU选择网络中最小的选择网络中最小的MTU在在MTU较大的网络传输会造成硬件能力较大的网络传输会造成硬件能力浪费浪费选择网络中最大的选择网络中最大的MTU在在MTU较小的网络不能实现数据报到帧的封装较小的网络不能实现数据报到帧的封装u 分组长度的定义原则分组长度的定义原则与硬件无关与硬件无关以以“方便方便”为原则(取本地网络的为原则(取本地网络的MTU) 当一个数据报的尺寸大于将发往的网络的当一个数据报的尺寸大于将发往的网络的MTUMTU值

35、值时,路由器会将数据报分成若干较小的段时,路由器会将数据报分成若干较小的段(fragment)(fragment),然后再将每段独立的进行发送。,然后再将每段独立的进行发送。每个段与原数据包每个段与原数据包具有同样的格式,只是头部的稍有不同。具有同样的格式,只是头部的稍有不同。标志标志域中有一位标识了一个数据报是一个段还是域中有一位标识了一个数据报是一个段还是一个完整的数据报。段的头部中的其他域中包含有其一个完整的数据报。段的头部中的其他域中包含有其他一些信息,以便用来重组这些段,重新生成原始数他一些信息,以便用来重组这些段,重新生成原始数据报。另外,头部的据报。另外,头部的段偏移(段偏移(f

36、ragment offset)域指域指出该段在原始数据报中的位置。出该段在原始数据报中的位置。图中图中IPIP数据报被分成三段。每段携带着原始数据数据报被分成三段。每段携带着原始数据报的一部分数据,并有类似于原始数据报的报的一部分数据,并有类似于原始数据报的IPIP头头部。每个段尺寸小于它所经网络的部。每个段尺寸小于它所经网络的MTUMTU。在何处实行分段?在何处实行分段?R1R2 网络网络2MTU=620 网络网络1MTU=1500 网络网络3MTU=1500主机主机A主机主机B实行分段实行分段无须分段无须分段从大到小从大到小从小到大从小到大分段方法分段方法TCP segmentIpH主机主

37、机A20 1300BytesR1FraH1Fragment1FraH2FraH3Fragment2Frag3MTU=150020 600MTU=620片片1偏移(偏移(offset)=0片片2偏移(偏移(offset)=600片片3偏移(偏移(offset)=1200分段头(复制分段头(复制IP报头)报头)段的传输和控制段的传输和控制传输传输每个分段独立选择传输路径,每个分段独立选择传输路径,“尽力传递尽力传递”控制(定义分段头参数)控制(定义分段头参数)信源机赋予数据报的标识,信源机赋予数据报的标识,识别此片所属分组,用于识别此片所属分组,用于分组重组。分组重组。“000”,片未完;,片未完

38、;“001”,不分片。,不分片。提供分段顺序信息提供分段顺序信息u 在所有的段的基础上重新产生原数据报的过在所有的段的基础上重新产生原数据报的过程叫重组(程叫重组(reassemblyreassembly)。)。由于每个段都以原由于每个段都以原数据报头部的一个副本作为开始,因此都有与数据报头部的一个副本作为开始,因此都有与原数据报同样的目的地址。原数据报同样的目的地址。u 含有最后一块数据的段在头部设置有一个特含有最后一块数据的段在头部设置有一个特别的位(别的位(MFMF),因此,执行重组的接收方能报),因此,执行重组的接收方能报告是否所有的段都成功地到达。告是否所有的段都成功地到达。u 只有

39、最终目的主机才会对段进行重组。只有最终目的主机才会对段进行重组。(4 4)重组)重组 发送方将一个惟一的标识放进每个输出数据报的标发送方将一个惟一的标识放进每个输出数据报的标识(识(identification)域中。当一个路由器对一个数据域中。当一个路由器对一个数据报分段时,就会将这一标识数复制到每一段中,接收方报分段时,就会将这一标识数复制到每一段中,接收方就可利用收到的段的标识数和就可利用收到的段的标识数和IP源地址来确定该段属于源地址来确定该段属于那个数据报。另外,段偏移(那个数据报。另外,段偏移(fragment offset)域可域可以告诉接收方各段的次序。以告诉接收方各段的次序。

40、(5)IP软件怎样重组乱序的段软件怎样重组乱序的段 只有一个数据报的所有的段都收到了,才能重组只有一个数据报的所有的段都收到了,才能重组该数据报。该数据报。 一些段由于延迟或丢失会影响数据报的重组,接一些段由于延迟或丢失会影响数据报的重组,接收方须保留所有已收到的段,以防未到的段可能只是收方须保留所有已收到的段,以防未到的段可能只是被延迟。被延迟。 接收方不能将这些段保留任意长的时间,因为它接收方不能将这些段保留任意长的时间,因为它们会占用大量的内存资源。因此们会占用大量的内存资源。因此,IP规定了保留段的最规定了保留段的最大时间。当数据报的某一段第一个到达时,接收方开大时间。当数据报的某一段

41、第一个到达时,接收方开始一个计时器。如果数据报的所有段在规定时间内到始一个计时器。如果数据报的所有段在规定时间内到达,接收方取消计时,重组数据报。否则,接收方会达,接收方取消计时,重组数据报。否则,接收方会丢弃已到达的段。丢弃已到达的段。 引入引入IP重组计数器重组计数器结果是全有结果是全有/全无(全无(all-or-nothing):要么所有的段都到达了并且):要么所有的段都到达了并且IP重组数据报,重组数据报,要么要么IP丢弃了整个数据报。丢弃了整个数据报。 没有任何机制使接收方去告知发送方已收到哪些段。没有任何机制使接收方去告知发送方已收到哪些段。更进一步地,如果发送方重发该数据报,路由

42、可能不同,更进一步地,如果发送方重发该数据报,路由可能不同,因为每次传输并不总是通过同样的路由器。因此,无法因为每次传输并不总是通过同样的路由器。因此,无法保证重发的数据报会象上次一样地被分段。保证重发的数据报会象上次一样地被分段。 IP对源段与子段并不加以区分,接收方也并不知道对源段与子段并不加以区分,接收方也并不知道收到的是一个第一次分段后形成的段还是一个已经被多收到的是一个第一次分段后形成的段还是一个已经被多个路由器多次分段后形成的段。个路由器多次分段后形成的段。分段之后,路由器将每一段转发给它的目的地。分段之后,路由器将每一段转发给它的目的地。如果某段遇到一个如果某段遇到一个MTU值更小的网络时,将在已有分值更小的网络时,将在已有分段的基础上,将比段的基础上,将比MTU大的再分段。大的再分段。 如果一个互联网设计得很糟糕,其中的网络按如果一个互联网设计得很糟糕,其中的网络按MTU从大到小依次连接,则路径上的每个路由器就必从大到小依次连接,则路径上的每个路由器就必须对段再进行分段。须对段再进行分段。6 IP模块结构模块结构

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号