MTU概念深入讲解.doc

上传人:m**** 文档编号:554673673 上传时间:2023-06-16 格式:DOC 页数:5 大小:213KB
返回 下载 相关 举报
MTU概念深入讲解.doc_第1页
第1页 / 共5页
MTU概念深入讲解.doc_第2页
第2页 / 共5页
MTU概念深入讲解.doc_第3页
第3页 / 共5页
MTU概念深入讲解.doc_第4页
第4页 / 共5页
MTU概念深入讲解.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《MTU概念深入讲解.doc》由会员分享,可在线阅读,更多相关《MTU概念深入讲解.doc(5页珍藏版)》请在金锄头文库上搜索。

1、MTU概念详解1. 概述在IP数据在网络上传输时,会涉及到MTU这个概念。MTU,即最大传输单元(Maximum Transport Unit),这是一个数据链路层的概念,指数据链路层对数据帧长度的限制。但是,MTU实际上限制的并非数据链路层数据帧的长度,而是数据链路层帧的载荷(Payload)部分的长度。以最常见的以太网为例,其帧格式如图 1所示,MTU限定的是数据部分的长度,根据RFC894(附后),对于以太网而言,MTU为1500 bytes,也即“数据(载荷)”部分的最大长度为1500 bytes。图 1 数据链路帧格式2. MTU详解由于IP数据报在由IP层交由数据链路层传输时,要将

2、包括IP报头和IP数据的内容作为数据链路层的载荷封装在数据链路帧中。因此,MTU实际上是限制了IP层中IP数据报的总长度,当IP数据报的总长度超过MTU时,即需要分片,若IP数据报头中设置了“不可分片”,则该报文将被丢弃,并产生ICMP差错报告。图 2 IP数据报分片演示图 2演示了一个长度为2000的IP数据报在经过以太网传输时的分片情况,由于MTU限制为1500 bytes,在以太网中传输时将被拆分为两个分片,每个分片包含首部的长度不超过1500 bytes。3. 抓包分析在局域网中进行抓包,采用如下命令:C: ping -l 2000 10.137.135.191由于指定的数据长度超过了

3、以太网MTU的限制,在传输中会发生分片。对第一个分片的抓包结果如图 3所示。通过IP协议部分可见,该IP数据报为一个分片,且不为第一分片(More Fragments位被设置),首部长度20 bytes,总长1500 bytes。这里发现抓包得到数据链路帧的长度为1514 bytes,而非如图 1所示的1526 bytes。分析其原因:数据帧在到达物理网卡时,首先要去掉前导同步码和帧开始定界符,然后对帧进行CRC校验。只有CRC校验正确,才会将帧送到“设备驱动程序”进行进一步处理,此时抓包软件才能抓到数据,因此,Wireshark抓到的数据帧是去掉了前导同步码字段、帧开始定界符字段和帧校验和字

4、段后的数据,因此抓包得到的数据帧总长为1514bytes。图 3 指定长度2000的数据报第一分片抓包结果进一步,对第二个分片进行分析,这个分片为ICMP包,其IP数据报长度为548 bytes,这其中包括原2000bytes的数据中剩余的520 bytes(上一分片传输了1480 bytes),加上分片的首部20bytes,以及ICMP的首部8bytes,因此该分片的IP数据层长度为20+8+520 = 548 bytes。该数据帧长度为548+14 = 562 bytes。图 4 指定长度2000的数据报第二分片抓包结果同样,我们还可通过抓包分析当IP数据报长度达不到最短帧长时的情况。采用

5、如下命令:C: ping -l 0 10.137.135.191这里我们指定发送了一个长度为0的ICMP请求报文。首先分析由对端发回的reply报文,如图 5所示。图 5 指定长度0的数据报reply报文抓包结果可以看到,IP数据报的长度为28 bytes,包含了20 bytes IP首部和8 bytes ICMP协议首部,数据部分长度为0。由于数据部分长度达不到数据链路层数据帧的最小长度(46 bytes),数据层对数据进行了填充(图中Trailer部分),最后的抓包得到的总帧长为60 bytes(46 bytes数据和14 bytes数据链路帧首部)。图 6 指定长度0的数据报reques

6、t报文抓包结果抓包得到的request报文如图 6所示。从图中可以看到,IP数据报长度和reply报文相同,同样为28 bytes,但是得到的帧长仅为42 bytes,达不到数据链路帧的最小长度。分析其原因,可以看到与图 5的差别是没有Trailer填充字段部分。这说明了两点:1)当IP数据报达不到数据链路层最小长度要求时,是由数据链路层进行填充的;2)Wireshark对本机发出的数据抓包的处理权优先于数据链路层对数据帧的处理。附:RFC894(已校对)IP 数据报通过以太网网络传输标准(A Standard for the Transmission of IP Datagrams over

7、 Ethernet Networks)1984年4月本RFC文档描述了在以太网2中封装IP数据进行传输1的一种标准方法。本RFC文档描述的是ARPA网络社区的一种标准协议。1介绍本文适用于速率为10MB/S,采用48位地址的以太网。文献3描述了IP数据报在一种速率3MB/S的试验以太网中传输的过程。2帧格式IP数据报通过标准的以太网帧传输,以太网帧的帧类型字节数值必须为十六进制的0800以表示它的类型。以太帧的数据部分包含了IP数据报的首部和数据部分。以太网帧数据字段要求的最小长度为46个字节,在必要时需要在数据字段以0进行填充,填充的部分不属于IP数据报的内容,不计入IP数据报的总长。以太网

8、帧的数据字段的最大长度为1500个字节,因此,在以太网中传输的IP数据报的最大长度不能超过1500字节。在实现中,推荐尽量使用最大长度(1500字节)的数据包。网关的设计也要求必须能够处理最大长度的数据包,并且可将超长的数据包进行分片。如果一个系统不能处理最大长度的包,应该采取措施,要求发送方减小发送数据包的长度,例如使用TCP的最大段长度4。注意:在以太网上的数据报可能不再是一般Internet上默认的576字节的最大包长。一个以太网上的主机在向另一个以太网上的主机发送数据报时,应注意到这一点。比较合适的方法是发送一个较小的数据报以避免在中间的网关处被分片。在这一点上,请参考文献4以得到更多

9、的信息。3地址映射32位的IP地址映射到48位的以太网地址有多种方式,可以使用静态对照表或采用动态解析。3.1 静态对照表 在一个局域网里可以为每一个主机制定一个以太网地址和IP地址对应的表格。3.2 动态解析32位的IP地址和48位的以太网地址之间的映射可以通过ARP5(地址解析协议)来实现。IP地址在一些Internet网络中被随意的分配。每一个主机必须知道自己的IP地址以及对应的以太网地址才能正常处理数据包。在必要时,需要使用ARP协议将IP地址解析为对应的以太网地址。3.3 广播地址Internet上的广播地址(主机地址为全1)映射为以太网广播地址(48位全1,即16位地址FF-FF-

10、FFFF -FF-FF)。强烈推荐使用ARP协议进行动态解析。4追踪格式(Trailer Format)一些版本的Unix 4.2bsd为了在VAX虚拟内存结构下得到更好的性能,采用了一种不同的封装方式。在同一以太网中的兼容系统可能使用这种格式。一般主机不要求去实现这种格式。除非发送方能够肯定接受方可以正确进行解析。数据报也不能以这种方式发送给其它主机。(附:现在Unix 4.2bsd系统可以一直使用追踪方式,也可以永不使用这种方式,这取决于系统启动时的选项。这种情况可在未来发生改变。Unix 4.2bsd系统还使用一致非标准的广播地址,它采用全0的以太网地址作为广播地址,这也将在未来得到修正。)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

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