Menu Close

数据链路层(MAC)

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

IMG_256

图 1 链路层(MAC)示意图

1. 前导码( Preamble)及帧起始

  • 前导字及帧起始的组成

在MAC层之前附着前导码及帧起始是为了在发送MAC层数据前均衡信道的直流特性及MAC帧起始识别,前导字都是以1010…的方式发送,总共7个字节;而帧起始为1个字节,前面6个bits也是101010,最后两个bits为11,合起来为10101011 ,由此可以识别之后的数据为MAC帧数据。由于在发送时从低位(LSB)开始,因此在MAC帧前拼接前导字及帧起始可以表示为,

Preamble :          01010101_01010101_01010101_01010101_01010101_01010101_01010101---7个 8’h55

     在线路上的表现为: 10101010_10101010_10101010_10101010_10101010_10101010_10101010

SFD(start frame delimeter,帧起始分界)-----11010101 –8’hd5

    在线路上的表现为: 10100111

  • 前导字及帧起始在传输线路上的表现

    前导字在线路上的表现为: 10101010_10101010_10101010_10101010_10101010_10101010_10101010 这种形象的表示方法之表明了对于像10M/100M网或其它串行发送线路的表现.

帧起始在线路上的表现为: 10100111

 

  • 前导字及帧起始在媒介无关层的传输:

10/100M 网卡的MII接口以及千兆的RGMII接口一次传输4位(半字节)。因此前导符会成为7组0x5+0x5,而帧起始符成为0x5+0xD。1000M网卡(GMII)一次传输8位,而10Gbit/s(XGMII) PHY芯片一次传输32位。 注意当以octet描述时,先传输7个01010101然后传输11010101。由于8位数据的低4位先发送,所以先发送帧开始符的0101,之后发送1101

2. MAC地址

MAC地址是媒体访问存取控制地址(Media Access Control Address) ,也叫局域网地址(LAN Address),以太网地址(Ethernet Address) 或物理地址(Physical Address),硬件地址(Hardware Address)。MAC地址是全球惟一的,主要用来区分每一个独立的网卡。每个MAC地址由6个字节组成,分为源MAC地址与目的MAC地址。

  • 目的MAC地址

目的MAC地址 由6个字节(octets)组成,是 数据帧目的主机的硬件地址(MAC 地址)。主要由于在局域网内寻找目的主机。

  • 源MAC地址

源MAC地址 总计6个字节( octets),是数据包发送主机的硬件地址(MAC地址)。主要用于表示该数据包是由哪个主机发送的。

按照数据帧的用途又可以分为广播地址,多播地址和单播地址。

广播地址:FF-FF-FF-FF-FF-FF,即在局域网内,由该目的地址标识的数据包是广播的,局域网内的所有主机都需要接收。注意,广播包只能在局域网内生存,不能跨过网关或路由器。

多播地址:01:xx:xx:xx:xx:xx,广播地址是多播地址的特例,多播地址又称为组播地址,只有组内的主机才能接收数据包。

单播地址:对应的全球惟一的主机地址。标明该数据包的目的主机明确,只有对应的主机的MAC地址与数据包内的目的地址相同,该主机才会接收该数据包。

%title插图%num

图 2   MAC层及物理层层结构示意图

3. 802.1q tag

802.1q tag是用来标识VLAN的,而且是可选项,如果包含该项,必须以特殊字符标注,共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分组

%title插图%num

图 3 802.1Q tag

IMG_256

图4 数据链路层(MAC层)数据类型

4. 长度/类型:

长度/类型字段占用2bytes。对于这个字段EthernetII 与802.3的定义不同;Ethernet II定义上层协议类型标识,比如上层协议为IP协议,则该值为16’h0800,如上层协议为ARP,该值为16’h 0806,如为RARP ,则该值为16’h8035等。802.3协议 定义该字段为payload的数据长度,由于长度小于1500,而协议类型都是大于1500, 因此二者在使用上不会发生冲突。不过,目前的局域网中基本都遵循Ethernet II规定的方式使用。

5. 数据:

数据字段是指协议层中的上层数据,如IP层的数据等, MAC 层要求数据长度在46-1500byte之间,即不能太短,也不能太长。

6. 帧校验序列(FCS):

MAC要求在数据的尾部应附着帧校验序列,用于检查该数据帧的接收是否正确。这里采用4字节的CRC(循环冗余检验)。关于CRC部分的内容将会有专门的篇幅进行介绍。

 

Posted in FPGA, FPGA, 教材与教案, 文章

发表评论

相关链接