在网络的通信中,数据链路层又称为MAC(Media Access Control)层。下面按照数据链路层 (2层)的结构进行介绍。

图1 MAC层
1.前导码( Preamble)及帧起始
10101010 10101010 10101010 10101010 10101010 10101010 10101010---7个 8h55
SFD(start frame delimeter,帧起始分界)-----10101011 –8’hd5

图 2 链路层(MAC)示意图
2. MAC地址
目的MAC地址 (6 octets),数据帧目的主机的硬件地址
源MAC地址 (6 octets),数据包发送主机的硬件地址。
MAC地址:媒体访问存取控制地址(Media Access Control Address),也叫局域网地址(LAN Address),以太网地址(Ethernet Address) 或物理地址(Physical Address)。MAC地址是全球惟一的,主要用来确定一个网卡。每个MAC地址由6个字节组成。
广播地址:FF-FF-FF-FF-FF-FF
多播地址:01:xx:xx:xx:xx:xx,广播地址是多播地址的特例。

图 3 2层及1层结构示意图
3. 802.1q tag
802.1q tag是用来标识VLAN(Virtual LAN)的,而且是可选项,如果包含该项,必须以特殊字符标注,共32bits。前16bits为 TPID(Tag protocol identifier) 标签协议标识,
TPID = 0x8100。后16-bit为TCI,TCI为(Tag control information)标签控制信息,TCI又分为PCP,DEI,VID等。其中
PCP优先级控制点(见802.1p)
DEI(drop eligible indicator)在网络拥挤时可丢包指符
VID VLAN ID VID = 000常规,没有VLAN
VID = 001 保留,用于网络管理,VID = FFF 保留,其它用于VLAN分组

图 4 802.1Q tag
图5 数据链路层(MAC层)数据类型
4. 长度/类型:

图6
占用2bytes, 这里EthernetII 与802.3的定义不同,Ethernet定义上层协议,比如IP协议为0800,ARP协议 0806,RARP 8035等. IEEE 802.3 定义为数据长度,由于长度小于1500,而协议类型都是大于1500, 因此不会冲突。

图7
5. 数据:
一般是上层数据,如IP层的数据, MAC 层要求数据长度在46-1500byte之间,即不能太短,也不能太长。
6. 帧校验序列(FCS):
MAC要求在数据的尾部应附着帧检查序列,用于检查该数据帧的接收是否正确。这里采用4字节的CRC(循环冗余检验)。
关于CRC部分的内容将会有专门的篇幅进行介绍。