在说以太网帧之前先清楚这几个概念:
- 链路类型,链路一般分为两种类型分别是:
点到点链路:即仅支持两个接口的链路,例如:PPP、DHLC。
广播型链路(MA多路访问):允许链路上存在两个以上的接口,所以需要区别不同的接口,那么规定每个以太网接口都要有一个全球唯一但链路有效的MAC地址。 - 以太网的定义:以太网是一种广播式数据链路层协议,支持多点接入;个人电脑的网络接口遵循的就是以太网标准;一般情况下,一个广播域对应着一个IP网段。
- MAC地址:MAC (Media Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要且会有唯一的一个MAC地址;MAC用于在一个IP网段内,寻址找到具体的物理设备;工作在数据链路层的设备。例如以太网交换机,会维护一张MAC地址表,用于指导数据帧转发。
1.Ethernet II
Ethernet II的帧中各字段说明如下:
- DMAC(Destination MAC)是目的MAC地址。DMAC字段长度为6个字节,标识帧的接收者。
- SMAC(Source MAC)是源MAC地址。SMAC字段长度为6个字节,标识帧的发送者。
- 类型字段(Type)用于标识数据字段中包含的高层协议,该字段长度为2个字节。类型字段取值为0x0800(2048)的帧代表IP协议帧;类型字段取值为0x0806(2054)的帧代表ARP协议帧。
- 数据字段(Data)是网络层数据,最小长度必须为46字节以保证帧长至少为64字节,数据字段的最大长度为1500字节。
- 循环冗余校验字段(FCS)提供了一种错误检测机制。该字段长度为4个字节。
2.IEEE802.3
IEEE802.3帧格式类似于Ethernet_II帧,只是Ethernet_II帧的Type域被802.3帧的Length域取代,并且占用了Data字段的8个字节作为LLC和SNAP字段。
- Length字段定义了Data字段包含的字节数。
- 逻辑链路控制LLC(Logical Link Control)由目的服务访问点DSAP(Destination Service Access Point)、源服务访问点SSAP(Source Service Access Point)和Control字段组成。
- SNAP(Sub-network Access Protocol)由机构代码(Org Code)和类型(Type)字段组成。Org Code三个字节都为0。Type字段的含义与Ethernet II帧中的Type字段相同。IEEE802.3帧根据DSAP和SSAP字段的取值又可分为以下几类:
1)当DSAP和SSAP都取特定值0xff(255)时,802.3帧就变成了Netware-ETHERNET帧,用来承载NetWare类型的数据。
2)当DSAP和SSAP都取特定值0xaa(170)时,802.3帧就变成了ETHERNET_SNAP帧。ETHERNET_SNAP帧可以用于传输多种协议。
3)DSAP和SSAP其他的取值均为纯IEEE802.3帧。
3.如何区分这两种以太网帧
- Ethernet II 帧类型值大于等于1536 (0x0600),数据帧的长度在64-1518字节之间。
- IEEE802.3帧长度字段值小于等于1500 (0x05DC),数据帧的长度在64-1518字节之间。
所以可以得出: