以太网复习

以太帧格式


我们经常说的以太网帧长度是从图中 Destination MAC Address开始,FCS结束。标准以太网帧长度范围为([64,1518]),除去目的MAC地址6字节,源MAC地址6字节,以太网协议2字节,校验码4字节,有效载荷payload的长度范围为$[46,1500]。而这个有效载荷的最大值就被叫做MTU(Maximum Transmission Unit)。

  • Preamble+SFD:只是用于帧同步,所以不会当成帧来处理。
  • EtherType:以太网协议,网卡用来分辨封装的是什么上层协议,然后再通知不同的协议模块来取走数据。
  • Payload:这个允许负荷的最大长度对应的就是负荷的最大传输单元。
  • FCS:Frame Check Sequence,帧校验码,而CRC是循环冗余校验算法,FCS可以由CRC算法生成,也可以由其他算法生成。

网卡怎么知道以太帧的长度

在ethernet II中,没有记录载荷的长度,那网卡是怎么知道具体的帧长的呢?
其实这是由物理层完成的工作,以太网数据帧在物理链路上发送时,是按4B5B编码的,在发送完一个以太帧之后会添加上4B5B编码的ESD字段表示已发送完毕,或者以一个特殊宽脉冲SOI来表示链路空闲。

以太帧长度为什么是[64, 1518]

最早的以太网工作方式:载波多路复用/冲突检测CSMA/CD,因为网络是共享的,即任何一个节点发送数据之前,先要侦听线路上是否有数据在传输,如果有,需要等待,如果线路可用,才可以发送。为了检测到极端情况的冲突碰撞,以太帧最短为64字节。
同时为了避免大的以太帧占据太多时间,并且大包出现数据损坏的概率也会大一些,所以综合考虑,以太帧最长为1518字节。
实际网络中,以太帧的长度可能会超过1518这一限制,这是由于后续的一些协议,比如在802.1Q中,又定义了以太帧中可选的QTag,位于SMAC和EtherType之间,占4个字节;比如jumbo frame中最高支持9K的大小。

以太网传输可靠性

在tcp/ip协议栈中,除了传输层的tcp协议,传输层的udp、以及传输层之下的网络层、数据链路层都是“尽最大努力交付”。所以以太网传输并不可靠。

原文地址:https://www.cnblogs.com/HachikoT/p/12680498.html