美文网首页
以太网数据帧结构基础

以太网数据帧结构基础

作者: 陈凯歌 | 来源:发表于2023-04-08 00:26 被阅读0次

一、以太网数据帧概念
1、以太网链路传输的数据包称做以太帧,或者以太网数据帧。在以太网中,网络访问层的软件必须把数据转换成能够通过网络适配器硬件进行传输的格式。
2、以太网上使用两种标准帧格式。第一种是上世纪80年代初提出的DIX v2格式,即Ethernet II帧格式。Ethernet II后来被IEEE 802标准接纳,并写进了IEEE 802.3x-1997的3.2.6节。第二种是1983年提出的IEEE 802.3格式。这两种格式的主要区别在于,Ethernet II格式中包含一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理。IEEE802.3格式中,同样的位置是长度字段。


b60298cbdec33d61d27cb04f7866a7d.png

3、不同的Type字段值可以用来区别这两种帧的类型,当Type字段值小于等于1500(或者十六进制的0x05DC)时,帧使用的是IEEE 802.3格式。当Type字段值大于等于1536 (或者十六进制的0x0600)时,帧使用的是Ethernet II格式。以太网中大多数的数据帧使用的是Ethernet II格式。
二、以太帧的工作机制
当以太网软件从网络层接收到数据报之后,需要完成如下操作:

  1. 根据需要把网际层的数据分解为较小的块,以符合以太网帧数据段的要求。
    以太网帧的整体大小必须在 64~1518 字节之间(不包含前导码)。有些系统支持更大的帧,最大可以支持 9000 字节。
  2. 把数据块打包成帧。每一帧都包含数据及其他信息,这些信息是以太网网络适配器处理帧所需要的。
  3. 把数据帧传递给对应于 OSI 模型物理层的底层组件,后者把帧转换为比特流,并且通过传输介质发送出去。
  4. 以太网上的其他网络适配器接收到这个帧,检查其中的目的地址。如果目的地址与网络适配器的地址相匹配,适配器软件就会处理接收到的帧,把数据传递给协议栈中较高的层。
    二、以太网数据帧结构


    以太网数据帧结构.png

    以太帧起始部分由前导码和帧开始符组成。后面紧跟着一个以太网报头,以MAC地址说明目的地址和源地址。帧的中部是该帧负载的包含其他协议报头的数据包(例如IP协议)。以太帧由一个32位冗余校验码结尾。它用于检验数据传输是否出现损坏。
    以太网由前导码(7B)、定界符(1B)、目的地址(6B)、源地址(6B)、类型(2B)、数据(46-1500)、FCS(4B)
    上图中每个字段的含义如下表所示:
    字段含义
    前同步码:用来使接收端的适配器在接收 MAC 帧时能够迅速调整时钟频率,使它和发送端的频率相同。前同步码为 7 个字节,1 和 0 交替。
    帧开始定界符:帧的起始符,为 1 个字节。前 6 位 1 和 0 交替,最后的两个连续的 1 表示告诉接收端适配器:“帧信息要来了,准备接收”。
    目的地址:接收帧的网络适配器的物理地址(MAC 地址),为 6 个字节(48 比特)。作用是当网卡接收到一个数据帧时,首先会检查该帧的目的地址,是否与当前适配器的物理地址相同,如果相同,就会进一步处理;如果不同,则直接丢弃。
    源地址:发送帧的网络适配器的物理地址(MAC 地址),为 6 个字节(48 比特)。
    类型:上层协议的类型。由于上层协议众多,所以在处理数据的时候必须设置该字段,标识数据交付哪个协议处理。例如,字段为 0x0800 时,表示将数据交付给 IP 协议。
    数据:也称为效载荷,表示交付给上层的数据。以太网帧数据长度最小为 46 字节,最大为 1500 字节。如果不足 46 字节时,会填充到最小长度。最大值也叫最大传输单元(MTU)。 在 Linux 中,使用 ifconfig 命令可以查看该值,通常为 1500。
    帧检验序列FCS:检测该帧是否出现差错,占 4 个字节(32 比特)。发送方计算帧的循环冗余码校验(CRC)值,把这个值写到帧里。接收方计算机重新计算 CRC,与 FCS 字段的值进行比较。如果两个值不相同,则表示传输过程中发生了数据丢失或改变。这时,就需要重新传输这一帧。
    说明:
    1.MAC对应着数据链路层。
    2.前同步码其作用是使目的主机接收器时钟与源主机发送器时钟同步。
    3.帧开始分界符字节“10101011”,用于指示帧的开始。
    4.前同步码是为了隔离每个以太网帧的,也是定位符。因为以太网是变长的,所以每个帧之间需要前导来区分
    5.重点:一个标准的以太网数据帧大小是:1518,头信息有14字节,尾部校验FCS占了4字节,所以真正留给上层协议传输数据的大小就是:1518 - 14 - 4 = 1500 。
    我们一般将这 1500(对应 IP层的IP数据包) 作为MTU 。但其实真正的数据仅仅占用(1472 UDP报文,而TCP报文是1460),因为UDP头部是8字节,TCP头部20字节,共有的IP报头20字节。

相关文章

  • 车载以太网(中)

    接上一篇《车载以太网(上)》,这篇主要介绍以太帧的结构及传输 一、车载以太网帧结构 以太网帧的格式如下: 以太帧有...

  • Wireshark抓包参数详解

    Frame: 物理层 的数据帧概况。 Ethernet II: 数据链路层 以太网帧头部信息。 以太网 Inter...

  • tcpdump

    抓取网络数据包,以太网帧,

  • MTU MSS

    一、基本概念 由于以太网EthernetII最大的数据帧是1518Bytes,刨去以太网帧的帧头(DMAC目的地址...

  • 以太网帧格式

    以太网数据帧格式 以太网数据帧格式由于技术发展的历史原因有5种格式,归类整理,以便学习工作使用。 1、Ethern...

  • 网络

    网络协议 由于以太网最大的数据帧是1518Bytes,刨去以太网帧的帧头(DMAC目的MAC地址48bits=6B...

  • 网络分层模型与ARP协议

    一、链路层 链路层包含以太网卡,光纤,电缆,驱动,以太网驱动 链路层:以太网协议,以太网帧,光纤电缆 链路层的数据...

  • 网络编程-Socket

    链路层以太网帧和ARP 以太网帧在首尾都要封装, 用来验证数据完整性. 其他IP报头, TCP段首, http协议...

  • 交换机与路由器(以太网)

    一、以太网MAC和以太网帧 1.交换机的工作原理 交换机是属于数据链路层的设备,数据链路层所传输的是数据帧,所封装...

  • 2020-04-19

    Linux 网络编程---以太网帧和ARP协议 1.以太网帧格式 最小46字节 2.ARP数据报格式 ARP协议:...

网友评论

      本文标题:以太网数据帧结构基础

      本文链接:https://www.haomeiwen.com/subject/rcpmddtx.html