数据链路层中定义的协议有以太网协议(Ethernet)、高级数据链路控制(HDLC)、点对点协议(PPP) 、帧中继(FR)协议等。常见的是以太网协议。
MAC地址 #
MAC地址共48位(6个字节),以十六进制表示。前24位由IEEE决定如何分配,后24位由实际生产该网络设备的厂商自行指定。
MAC地址又可以分为单播MAC地址、广播MAC地址、多播MAC地址。单播MAC地址唯一地标识以太网上的一个终端;
广播MAC地址用来表示网络上的所有终端设备,全为1,表示为ff:ff:ff:ff:ff:ff
;多播MAC地址用于代表网络上的一组终端,第8位位1,
例如lacp、流控等协议报文mac为01:80:C2:xx:xx:xx
。
以太网帧 #
Ethernet II, IEEE 802.Q.
DA | SA | Type | PayLoad | FCS |
---|---|---|---|---|
6 Bytes | 6 Bytes | 2 Bytes | 46~1500 Bytes | 4 Bytes |
DA
(Desstination Address): 目标节点的MAC
地址SA
(Source Address): 源节点的MAC
地址Type
: <=1500为length
,>=1536为Ethertype
PayLoad
: 上层协议有效载荷FCS
: 4字节的校验和
以太网中,最小帧长为64字节,这是由最大传输距离和冲突检测机制共同决定的。
常见以太网类型:
0x8100
: VLAN
0x88A8
: QINQ
0x0800
: IP协议
0x0806
: ARP协议
0x0835
: RARP协议
报文有多层头时,例如QINQ、IP-IN-IP,将靠近以太头的称为外层,靠近PayLoad的称为内层。
前导码 #
每个以太网帧发送时都是以8个字节的前导码开始。
Preamble
是1和0交替(1 0 1 0 1 0 …)的7个字节数据, 该部分的作用是通知接收方有数据帧到来, 使其与输入的时钟保持同步,
56bit 模式容许站点在帧的开始可以丢弃一些bit。
SFD
是一个字节10101011, 最后使用11, 来通知接收方下一字段就是目的主机的地址了.
实际上前导码都是在物理层加进去的, 并不是帧的一部分.
帧间隙 #
以太网传送数据时, 每两个帧之间存在帧间隙IFG
(Inter Frame Gap),帧间隙的作用是使介质中的信号处于稳定状态,
同时让帧接收者对接收的帧作必要的处理(如调整缓存取的指针、更新计数、发中断让主机对报文进行处理), 通常为12字节.
交换模式 #
交换机的交换模式有Cut-Through、Store-and-Forward两种。
在Cut-Through模式下,交换机在接受到目的地址后即开始转发过去,交换机不检测错误,直接转发数据帧,延迟小。
在Store-and-Forward模式下,交换机接受到玩家的数据帧后才开始转发过程,交换机检测错误,一旦发现错误,将丢弃数据包,延迟较大。