Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4534521
  • 博文数量: 252
  • 博客积分: 5347
  • 博客等级: 大校
  • 技术积分: 13838
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-30 10:13
文章分类
文章存档

2022年(12)

2017年(11)

2016年(7)

2015年(14)

2014年(20)

2012年(9)

2011年(20)

2010年(153)

2009年(6)

分类: 系统运维

2010-03-02 14:45:01

   数据在以太网中的传输有长度有一个限制,其最大值一般情况下是1500字节。链路层的这个特性叫作MTU,也就是最大传输单元。不同类型的网络会有所不同的。如果IP层有一个数据报要传输,而且数据的长度比链路层的MTU还要大的话,那么IP层就需要进行分片。把数据分成更小的片,这样每一个小的片就小于了MTU,也就可以在以太网中传输。
   但是如果两台主要之间的通信要通过不同的多个网络,那么每个网络的链路层就可能有不同的MTU。这里不同的网络指的是,例如:以太网,令牌环网,FDDI(光纤分布式数据接口)及RS-232串行线路这类的网络 。而这个时候进行数据的通信时,重要的不是两台主机的所在网络的MTU的值,重要 的是两台通信主机路径中的最小MTU,被称作路径MTU,也被写作PMTU。它等于路径上每一跳的MTU之中的最小值。两台主机之间的路径MTU不一定是个常数,它取决于当时所选择的路由。而选路不一定是对称的,也就是从A到B的路径路由和从B到A的路径路由不一定相同,因此路径MTU在两个方向上不一定是一致的。
   在ICMP不可达差错中,这个差错可以用来确定PMTU。假设考虑这样一种情况 。在IP首部使用不分片(DF)比特位动态发现一条路径的PMTU。基本思想就是源主机开始假定一条路径的PMTU是它的(已知的)第一跳的MTU,在这条路径上发送的数据报都设置DF比特位。如果有的数据报太大,不被路径中的某些路由器分片就不能转发,那么路由器将丢弃这些数据报,然后返回一个意思为“需要分片,设置了DF位[7]”的ICMP目的不可达报文。在收到这样一条报文后(以后称它为“数据报太大”报文),源主机减小它假定的这条路径的PMTU。当主机对PMTU的估计值小到它的数据报不需要分片也能转发的时候,PMTU发现过程结束。
    其中还有用Traceroute确定路径MTU,和采用UDP的路径MTU发现两种常用的方法。
阅读(4190) | 评论(0) | 转发(0) |
0

上一篇:TCP/IP中的链路层

下一篇:DNS解析过程分析

给主人留下些什么吧!~~