数据链路层以太网帧格式----理解MTU的定义和最大值(1500字节)

       无论是TCP还是UDP, 最终还是封装成了IP包。

       我们知道, IP包的最大长度为65535个字节, 于是很多初学者会误解, 以为这65535字节的IP包数据, 是直接被数据链路层套上帧头和帧尾巴的。比如, 下图就容易让人产生一个极大的误解:

        这幅图的最大误人子弟之处在于:

        如果上层数据比较长, 是无法套在一个tcp头部之后的, 其他各层也有类似特点。   举个本文涉及到的例子, 网络层的数据如果过长, 是没法直接加载链路层上的, 需要将网络层的数据分片, 然后在数据链路层组装成多个帧(而不是一个)。

       下面, 我们来看看数据链路层(用以太网来举例)对上一层数据(网络层数据)长度的限制:

        可以看到, 在单个帧中, IP数据包必须小于1500字节,  这个1500就是MTU(max transmission unit)能达到的最大值,  它是数据链路层允许的最大IP包。

        回想下以前说的概念:

        UDP包头中, UDP整个包的最大长度是65535个字节, 但是IP数据包的最大值也是这个长度, 所以IP层允许的最大UDP包长绝对不能65535个字节(而应该是65535 - 20个字节)。

       同理, IP包的最大长度是65535个字节, 但是数据链路层允许的最大IP包, 绝对不能是65535个自己, 实际上远远小于这个数(如上图)。

        在本文中, 我们了解到, 实际上, MTU的定义就是:数据链路层允许的最大IP包长(其最大值是1500字节)。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值