第八章:IP 数据报 IP数据报的格式及主要字段的功能; IP数据报的分片与重组; 源路由、记录路由及时间戳选项; ICMP的主要功能。
8.1 IP 数据报的格式 IP数据报 = 报头区+数据区 报头区:控制该包发往何处以及如何发送信息。 数据区:包括高层需要传输的数据。
IP 数据报的格式介绍 数据报中前5个或6个32位字为控制信息,称为报头。在缺省形式下,报头的长度是5个字,第6个字是可选的。
各主要字段的功能-版本与协议类型 版本号:(4 比特)指明当前所用的IP协议版本号。不同版本号的标头格式有区别。 协议类型:(8比特)指明数据部分的数据单元来自于上层的什么协议实体(如TCP、UDP),用于识别上层的服务用户。
各主要字段的功能-长度 表头长度(IHL):4 bit 指明IP数据报标头部分的长度,它的计数值是32bit的整数倍值。例如 IHL=5时,表头长20字节,表明它只含固定部分而没有可变部分。 若可变部分长度不是32的整数倍,需在填充域加0凑齐。 总长度(Total Length):16bit 指明数据报的全长字节数,最大可计到64K。
各主要字段的功能-服务类型 服务类型(Type of Service):8bit,它的码值反映出上层实体对IP层服务质量方面的要求,供IP执行时参考使用。含义如下: 优先权(precedence) 值=0,1,2,3,4,5,6,7,不同的值反映不同的用户数据等级,最高值“7”用于网控数据。 D (delay) =1时要求低的传输迟延。 T(Throughput)=1(时要求高吞吐率传输。 R(Reliability)=1时高可靠性传输。
各主要字段的功能-生存周期 生存期(TTL):8bit 记录该数据报在传输过程中还剩余的生存时间(秒)。 源发站先赋给某个初值,每经过一个网关,其值减1;若遇到排队等待,则要减去等待时间。 任一节点如发现TTL=0的数据报,都要将它丢弃,并向源发端报告出错信息。
各主要字段的功能-头部校验和 头部校验和(Header Checksum):16bit 作用:保证IP数据报报头的完整性。
各主要字段的功能-寿命(TTL) 寿命(Time to Live,又称生存时间)设置了该数据报在互联网络系统中允许存在的时间,以秒为单位。
各主要字段的功能-地址 源地址(Source address):32bit 源端系统的IP地址. 目的地址(Destination Address):32bit 目的端系统的IP地址。 注意:在整个数据报传输过程中,无论经过什么路由,如何分片,此两字段一直保持不变。
IP数据报选项数据区 作用:主要用于网络控制、测试、诊断等。 IP数据报选项 =选项码+长度+选项数据 选项码:用于确定该选项的具体内容。 选项数据部分的长度由选项的长度字段决定。
IP数据报选项-源路由选项 源路由:指IP数据报穿越互联网所经过的路径是由源主机指定的。 作用:用于测试某特定网络的吞吐率,可以使数据报绕开出错网络。 源路由分类: 1)严格源路由选项:严格经过路径上的每一个路由器。 2)松散源路由选项:给出IP数据报必须经过的一些“要点”,并不给出一条完备的路径。
IP数据报选项-记录路由选项 记录路由:记录下IP数据报从源主机到目的主机所经过路径上各个路由器IP地址。 作用:测试互联网中路由器的路由配置是否正确。
IP数据报选项-时间戳选项 时间戳(time stamp):记录下IP数据报经过每一个路由器时的当地时间。 作用:分析网络吞吐率、拥塞情况、负载情况等。
8.2 数据报的封装 封装(encapsulation):在一个网络帧中携带一个数据报的传输方式成为封装。 IP数据报封装在一个帧中,物理网络把包括首部在内的整个数据报当作数据。
数据报的大小 事实:一个数据报在通过互联网到达最终目的地的过程中可能穿过了许多中类型的物理网络。 每种分组交换技术都对一个物理帧可传输的数据量规定了一个固定的上界。如以太网传输1500byte,FDDI允许每帧大约4470Byte。
网络MTU及分片 根据网络使用的技术不同,每种网络都规定了一个帧最多能够携带的数据量,这一限制称为最大传输单元(MTU,maximum transmission unit). 当一个数据报的尺寸大于将发往网络的MTU值时,路由器会将IP数据报分成若干较小的部分,该过程成为分片,然后再将每片独立地进行发送。
分片后的数据报: 格式 = 报头区 +数据区
分片的结果解析: 携带1400byte的初始数据报; 在MTU为620byte的网络上的三个片。首部1和2的片未完(more fragment)标志设为1。 所显示的偏移量为十进制的八位组。必须把它们除以8才能得到存储在分片首部中的值。
数据报的重组 定义:在接收到所有分片的基础上,主机对分片进行重新组装的过程叫做IP数据报重组。 中间路由器不可能对分片进行重组。 在目的主机重组的两大好处: 目的主机进行重组减少了路由器的计算量。 路由器可以为每个分片独立选路,每个分片到达目的地的路径可以不同。
数据报的重组 一直把分片保留到目的站的两个缺点: 由于在通过一个小MTU网络后并没有对片立即重组,可能导致效率较低:即使到了MTU较大的网络,也只能传输小的片。 如果任何一个数据报片丢失了,就无法重组数据报。设定一个重组计时器。
8.2.3 分片控制 在IP数据报报头中,标识、标志、片位移 量三个字段用来控制数据报的分片和重组。 标识(Identification):标识数据报的惟一整数。 标志(Flags):标识是否已经分片。 片位移量(Fragment offset):指出本片数据在初始IP数据报数据区中的位置。
8.4. 差错与控制报文 IP层使用的控制协议是 互联网控制报文协议(ICMP,internet control message protocol) ICMP不仅用于传输控制报文,还用于传输差错报文。 ICMP报文是作为IP数据报的数据部分而传输的。ICMP软件作为IP软件的一个模块存在。
ICMP报文需要如图所示的两级封装。ICMP报文封装在IP数据报中,IP数据报进一步封装在帧中用于传输。为了标识ICMP,数据报协议字段包含的值为“1”。
ICMP报文格式的介绍: 类型(Type)-表示ICMP报文类型的整数。 代码 (Code)-进一步区分ICMP 类型的信息码值。 校验码(CheckSum)-对整个ICM报文的校验和。
ICMP完成的控制功能及其类型值 功能大类 类型值 控制功能详称 用到的代码值 差错报告 控制报文 故障诊断 3 11 12 目的不可达 数据报超时 数据报参数错误 0—11 0,1 控制报文 (拥塞,寻径) 4 5 源抑制 重定向 (改变路由) 0,1,2,3 故障诊断 13 14 17 18 时间戳请求 时间戳响应 地址掩码请求 地址掩码响应
8.4.1 ICMP差错控制 作用:提供差错报告 ICMP差错报告都是采用路由器到源主机的模式。也就是所有的差错信息都需要向源主机报告。 向目的主机发送错误报告显得没有意义,并且在实现上也不理想。
ICMP差错报文的特点: 差错报告不享有特别优先权和可靠性,作为一般数据传输。 ICMP差错报告中除了包含故障IP数据报报头外,还包含故障IP数据报数据区的前64比特数据。 ICMP差错报告是伴随着抛弃出错IP数据报而产生的。
ICMP出错报告的种类: 目的地不可达报告 超时报告 参数出错报告
目的不可达报告 发生条件:当路由器无法转发或交付IP数据报时。 具体不可达情况代码对应情况: 网络不可达 code=0
超时报告 一个IP数据报一旦到达生存周期,路由器立即将其抛弃,同时发送一个ICMP超时差错报告。
参数差错报告 一旦参数错误严重到机器不得不抛弃IP数据报时,机器向源主机发送参数差错报告报文,指出可能出现错误的参数位置。
8.4.2 ICMP控制报文 ICMP控制功能包括 拥塞控制 路由控制
1.拥塞和拥塞控制 拥塞:路由器可能被涌入的通信量“淹没”。 产生原因: 高速计算机产生的通信量比网络所能传输的还要快。 如果许多计算机同时需要通过某个路由器发送数据报,则该路由器可能会发生拥塞。
拥塞和拥塞控制 实质:没有足够的缓冲区存放大量涌入的IP数据报。 解决方案:采用“ 源站抑制”技术,利用 ICMP源抑制报文抑制源主机发送IP数据报的速率。
拥塞和拥塞控制 发送方式: 输出队列已经满了,缓冲区没有腾出。 为路由器的输出队列设置一个闸值,当队列中的数据报达到一定数量。 选择地抑制IP数据报发送率较高的源主机。
2.路由控制与重定向报文 主机中保留有相邻路由器的信息,这些信息可以保证主机将IP数据报正常发送出去,但是不保证经过的路径是最优的。 优点:保证主机拥有一个动态的、小且优的路由表。 限制:ICMP重定向机制只能用于同一网络的路由器和主机之间。
8.4.3 ICMP请求/应答报文对 回应请求与应答 时间戳请求与应答 掩码请求与应答
回应请求与应答 作用: 测试目的主机或路由器的可达性。 请求者向目的主机发送回应请求,如果请求者成功收到目的主机的一个应答,表明: 目的主机(或路由器)可以到达; 源主机与目的主机(或路由器)的ICMP软件和IP软件工作正常。 回应请求与应答ICMP报文经过的中间路由器的路由选项功能正常。 Ping命令是利用回应请求/应答ICMP报文来测试 目的主机或路由器的可达性。