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

       在前面的文章中, 我们讨论了IP的包格式, 也说过TCP/UDP的包格式。

       无论是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字节)。 理解这很重要, 在后面的博文中, 我们会继续说到。

 

        有个问题有点拗口, MTU中的M已经有了“最”的意思, 为什么还说MTU的最大值呢? 爱思考的, 可以思考下。 我们后面再说。

 

 

 

 

### 以太网结构 在网络通信中,以太网作为数据链路层的数据单元,在不同设备间传递信息。每一都包含了源地址、目的地址、类型字段以及数据部分校验码[^1]。 #### 的具体组成部分如下: - **前导码 (Preamble)** **起始定界符 (Start Frame Delimiter, SFD):** 这些用于同步接收方的时钟频率以便正确解析后续的信息位。 - **目标MAC地址:** 表明该应被哪个特定站点接收到;可以是指向单个节点的单播地址或多播/广播地址。 - **源MAC地址:** 发送者的硬件地址,用来标识发送端的身份。 - **长度/类型字段:** 如果此值小于等于1500字节,则代表的是载荷的实际大小;如果大于这个数值则说明这是一个EtherType类型的字段,指示上层协议类型如IPv4或ARP请求响应等。 - **数据与填充:** 用户有效负载区域,通常不超过MTU最大传输单位限制(对于标准Ethernet II来说通常是1500字节),当实际内容不足最小规定尺寸时需通过额外的零来填补至合适大小。 - **检验序列(Frame Check Sequence, FCS):** CRC循环冗余校验码,确保整个报文无误地到达目的地。 ```plaintext +-----+ | Preamble | SFD | +----------+---------------------+ | Destination MAC Address | +--+ | Source MAC Address | +--------------------------------+ | Length / Type | +-------------------------------+ | Data and Padding | +-------------------------------+ | Frame Check Sequence | +-------------------------------+ ``` ### OSI模型中的作用 #### 链路层 在OSI七层参考模型里,以太网工作于第二层即数据链路层。这一层次负责建立并管理相邻节点间的可靠通讯路径,并处理错误检测等功能。它还定义了如何访问介质共享资源,比如采用何种方式避免冲突发生等问题。具体而言,以太网利用CSMA/CD机制解决多台机器共用一条总线可能引发的竞争状况[^2]。 #### 网络层 第三层网络层主要涉及逻辑寻址(IPv4/v6)及最佳路由的选择过程。虽然这些操作并不直接体现在以太网内部,但是IP头部所携带的目的地IP地址决定了下一跳应该转发给谁。因此可以说是以太网承载着来自更高一层封装好的数据包(packet),并将它们送往相应的子网内指定主机之前完成最后一步物理定位的任务。 #### 传输层 第四层传输层关注点在于提供可靠的进程到进程之间的消息传送服务。TCP作为一种面向连接的协议会在两端建立起虚拟电路之后才开始正式交换应用级指令。而UDP则是尽力而为型的服务模式,不保证绝对的成功率却拥有更低延迟特性。无论是哪种情况下的segment段都会被打包进更下一层形成的frame当中去跨越局域网络传播出去。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值