链路: 从1个节点到相邻节点的一段物理线路(有线或者无线),中间没有其他交换的节点。

数据链路: 在一条链路上传输数据时,需要有对应的通信协议来控制数据的传输
不同类型的数据链路,所用的通信协议是可能不同的
广播信道:CSMA/CD协议(比如同轴电缆、集线器等组成的网络)
点对点信道: PPP协议(比如2个路由器之间的信道)
数据链路层的三个基本问题:
封装成帧
透明传输
差错检验
封装成帧
帧(Frame)的数据部分
就是网络层传递下来的数据包(IP数据包,Packet)
最大传输单元MTU(Maximum Transfer Unti)
每一种的数据链路层协议都规定了所能够传送的帧的数据长度上限
以太网的MTU为1500个字节
透明传输
**
使用SOH(Start Of Header)作为帧开始符
使用EOT(End Of Transmission)作为帧结束符

如图所示,如果在数据部分出现了帧结束符号,则就会发生数据断层
所以在传输过程中有字节填充,到接受到后会自动去掉转义字符,中间的过程我们看不到,就叫透明传输
差错检验
**
FCS是由帧的数据部分+数据链路层首部计算得出
用来判断信号是否是我发出或者接收的正确信号
如果FCS和数据部分+首部的值不和,则就不是正确信号
CSMA/CD(Carrier Sense Multiple Access with Collision Detectio)协议
**
载波帧听多路访问/冲突检测
使用了CSMA/CD网络的可以称为是以太网(Ethernet),它传输的是以太网帧
以太网帧的格式有:Ethernet V2标准、IEEE的802.3标准
使用最多的是: Ethernet V2标准
为了能够检测正在发送的帧是否产生了冲突,以太网的帧至少需要64字节。
所以,用交换机组建的网络,依然可以叫做以太网
Ethernet V2帧的格式:
首部: 目标MAC + 源MAC+网络类型
以太网帧: 首部 + 数据 + FCS
数据的长度至少是: 64 - 6 - 6 - 2 - 4 = 46字节
Ethernet V2标准
**
当数据部分长度少于46字节时
数据链路层会在后面加入一些字节填充
接收端会将添加的字节去掉
长度总结
以太网帧的数据长度: 46~1500字节
以太网帧的长度: 64~1518字节(目标MAC+源MAC+网络类型+数据+FCS)
网卡
网卡接受到一个帧,首先会进行差错校验,如果校验通过则接受,否则丢弃
Wireshark抓到的帧没有FCS,因为它抓到的是差错校验通过的帧(帧尾的FCS会被硬件去掉)
Wireshark抓不到差错校验失败的帧
PPP协议(Point to Point Protocol)
Address字段: 图中的值是0xFF,形同虚设,点到点通信不需要源MAC、目标MAC地址
Control字段: 图中的0x03,目前没有什么用
Protocol字段: 内部用到的协议类型
帧开始符、帧结束符: 0x7E

