首页 > 编程知识 正文

数据链路层的数据帧最大和最小,mtu是指数据链路层帧中的

时间:2023-05-05 01:31:54 阅读:250782 作者:1064

       无论是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字节)。

汇总在vue中写jsx的方式JS对象如何定义

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。