以太网帧结构

简介

网络中传输数据时需要定义并遵循一些标准,以太网是根据IEEE 802.3标准来管理和控制数据帧的。了解这个标准是充分理解以太网中链路层通信的基础。

网络通信协议:

不同的协议栈用于定义和管理不同网络的数据转发规则:


图片.png

数据封装:


图片.png
图片.png

注意:帧结构的封装是加了帧头和帧尾。

帧格式

数据包在以太网物理介质上传播之前必须封装头部和尾部信息。封装后的数据包称为数据帧,数据帧的封装的信息决定了数据如何传输。
以太网中传输的帧有两种格式,选择哪种格式由TCP/IP协议簇中的网络层决定。

图片.png

20世纪80年代初提出的,Ethernet II后来被IEEE 802 标准接纳,并写进了IEEE 802.3x-1997的3.2.6节。IEEE802.3 是1983年提出的帧格式。这两种区别是,Ethernet_II格式中包含一个Type字段,标识以太帧处理完成之后将被发送到哪个上层协议进行处理。IEEE 802.3格式中,同样的位置是长度字段。
不同的Type字段值可以用来区别这两种帧的类型,当Type字段值小于或者等于1500(或者16进制的0x05DC)时,帧使用的是IEEE 802.3格式。当Type字段值大于等于1536(或者16进制的0x0600)时,帧使用的是Ethernet_II格式。
以太网中大多数的数据帧使用的是Ethernet_II格式

Ethernet_II 帧格式

图片.png

Ethernet_II帧类型值(Type)大于1536(0x0600)。
以太网数据帧的长度在64-1518字节之间。数据部分在46~1500 B之间。

Ethernet_II数据帧中各字段说明如下:
1.DMAC(Destination MAC) 是目的MAC地址。DMAC字段长度为6个字节,标识帧的接受者。
2.SMAC(Source MAC)是源MAC地址。SMAC字段长度为6个字节,标识帧的发送者。
3.类型字段(Type)用于表示数据字段中包含的高层协议,该字段长度为2个字节。类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0806的帧代表ARP协议帧(ARP是工作在链路层)。所以说,以太网帧中的Ethernet_II格式的Type可以标识是3层的协议,也可以标识为2层的协议。

图片.png

4.数据字段(Data)是网络层数据,最小长度必须为46字节()以保证帧长度至少为64字节,数据字段的最大长度为1500字节。
5.循环冗余校验字段(FCS)提供了一种错误检测机制。该字段长度为4个字节。

IEEE802.3帧格式

图片.png

IEEE 802.3帧长度字段值小于等于1500(0x05DC)

IEEE802.3帧格式类似于Ethernet_II帧,只是Ethernet_II帧的Type域被802.3帧的Length域取代,并且占用了Data字段的8个字节作为LLC和SNAP字段。


图片.png

数据帧传输

数据链路层基于MAC地址进行帧的传输。
以太网在二层链路上通过MAC地址来唯一标识网络设备,并且实现局域网上网络设备之间的通信。MAC地址也叫物理地址。大多数网卡厂商把MAC地址烧录到了网卡的ROM中。发送端的MAC地址作为目的地址。以太帧封装完成后会通过物理层转换为比特流在物理介质上传输。

以太网的MAC地址

图片.png

MAC地址分为两部分:
供应商代码(OUI,Origanizationally Unique Identifier)和序列号。前24位代表该供应商代码,由IEEE管理和分配。剩下的24位序列号由厂商自己分配。

局域网上的帧可以通过三种方式发送
注意是发送方式:下面讨论的都是目的MAC地址,第一个字节的最后一个bit是0啊,是1啊,所有字节全部是f啊这样的情况。目的地址是发送方自己写的。
1.单播:
2.广播
3.组播

重要:https://blog.csdn.net/yygydjkthh/article/details/6751611

单播

图片.png

单播:指从单一的源端发送到单一的目的端。每个主机接口由一个MAC地址唯一标识,MAC地址的OUI中,第一字节第8个比特标识地址类型。对于主机MAC地址,这个比特固定为0,标识目的MAC地址为此MAC地址的帧都是发送到某个唯一的目的端。在冲突域中,所有主机都能收到源主机发送的单播帧,但是其他主机发现目的地址与本地MAC地址不一致后会丢弃收到的帧,只有真正的目的主机才会接受并处理收到的帧。

MAC地址类型:
https://blog.csdn.net/luobin1984/article/details/12185797

广播

图片.png

组播

图片.png

数据帧的发送和接收

数据帧的Type:

IP:  0x0800
ARP: 0x0806

当主机接收到的数据帧所包含的目的MAC地址是自己时,会把以太网封装剥掉后送往上层协议。
帧从主机的物理接口发送出来后,通过传输介质传输到目的端。共享网络中,这个帧可能到达多个主机。主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机监听的组播或广播MAC地址,则主机会丢弃收到的帧。

如果目的MAC地址是本机MAC地址,则接受该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果帧的FCS值与本机计算的不同,那么就会丢弃该帧。如果该帧通过了FCS校验,则主机会根据帧头部中的Type字段来确定该帧发送给上层(或者本层)哪个协议处理。本例中,Type字段的值为0x0800,表明该帧需要发送到IP协议上处理。在发送给IP协议之前,帧的头部和尾部会被剥掉。

问题:
1.网络设备如何确定以太网数据帧的上层协议?
以太网帧中包含一个Type字段,表示帧中的数据应该发送到上层(或者本层)哪个协议处理。
eg: IP: 0x0800, ARP: 0x0806

2.终端设备接收到数据帧时,会如何处理?
主机检查帧头中的目的MAC地址,如果目的MAC地址不是本机MAC地址,也不是本机侦听的组播或广播MAC地址,则主机会丢弃收到的帧。如果目的MAC地址是本机MAC地址,则接收该帧,检查帧校验序列(FCS)字段,并与本机计算的值对比来确定帧在传输过程中是否保持了完整性。如果检查通过,剥离帧头帧尾,然后根据帧头的Type字段来决定把数据发送到哪个上层协议进行后续处理。

你可能感兴趣的:(以太网帧结构)