最大传输单元

来源:互联网 发布:伊斯科马拉加数据 编辑:程序博客网 时间:2024/06/05 11:17
最大传输单元
    最大传输单元(MTU)表示运行在接口上的协议的信息字段所支持的最大字节数。比如以太网帧中数据字段的最大长度是1 500B,所以它的MTU就是1500B.
    在这里顺便解释一下以太网帧的长度问题。如前所述,以太网帧中的数据字段最少需要有4B(如果不够则在成帧时予以补足),最多为1500Ba参看图3一和表3-1可知,加上其他字段,整个帧的长度就是72-1 526B.有些资料上讲到以太核的长度是64-1 518E,也是对的.这是因为前导码和SFD字段(共8B)其实是在网卡里封装成帧以后、将要交给物理层介质时(比如通过RJ-45接口向双绞线发送)才添加上的,而到了接收节点,从介质收到的比特流进入网卡后这两个字段就又会被去掉。不管怎么样,以太帧的MTU是1500B,这是从硬件上给予保障的,如果一个以太帧的数据字段超过了1 500B,几乎可以肯定是网卡或其驱动程序的故障:或者是集线器、交换机、路由器等设备的以太接口的故障造成的。    不同类型的网络,帧数据字段的最大长度可能有不同的规定。比如对于令牌环,最大的值是65 535B。实际上令牌环网帧数据字段的最大长度取决于环上各节点可持有“令牌”的最大时间,而在同样的时间段内可传输的字节数又因网络使用的速率不同而不同,所以RFC 1191建议对于16Mbids令牌环把MTU值选择为17 914的,而对于4Mbit/s令牌环则选择为4464字节。又比如,帧中继的数据字段最大长度是16001)个字节。
    网络中互相通信的两个节点,很可能中间需要经过若干个网段和路由器.这些网段和路由器网络接口各自有自己的MTU,那么其中最小的那个MTU值实际上就决定了(或者说是限制了)整个这条路径上可以通过的最大帧长度。
    从网络体系的层次结构可以知道,可以说在每层都有封装问题。第二层的封装是把上层来的数据包(或称报文分组)“装入”自己帧的数据字段里,而上层的数据包(报文分组)本身其实也都是一种封装的结果.以TCP/IP体系为例,IP. TCP协议都对其封装格式有所规定,应用程序要求发送的数据到了传输层被封装成TCP报文,每个报文的“报文头”至少有20B,这个报文被送到网络层再被封装成IP包,每个包的“包头”也至少有20B。可见,每次封装在实际上都降低了网络对最原始的数据的吞吐能力。如果IP包的总长度超过网络接口(链路层)的MW规定,链路层必将对它进行再分割,这将增加额外开销。虽然在高速LAN连接中,通常无需担心与这种分割有关的额外开销,但在低速串行接口上,这可能会是一个比较严重的问题。
    与任需要通过网络传愉信息的应用程序,都需要“认可”、“适应”网络对自己提交的数据做这样的“分割”和“封装”。比如IP电话,尽管人们的语音信息是连续的,但是把它们放到TCP/IP网络中传输,就必须组成TCP报文、分割为IP包、封装成链路层的帧。如果某个应用程序对于其数据传输的“分割”有所限制,比如要求至少多少字节为一片,不能分割得更小等,那么应当在TCP报文头中有所标志。而且一旦它的要求高于路径中某环节的MTU限制,就只能在中途被丢弃,造成“无法通信”的结果。所以,对于几乎所有的以太网应用程序,默认的1500B MTU应该都是有效的。
0 0
原创粉丝点击