数据链路层
-
链路:从1个节点到相邻节点的一段物理线路(有线或无线),中间没有其他交换节点
-
数据链路:在一条链路上传输数据时,需要有对应的通信协议来控制数据的传输
- 不同类型的数据链路,所用的通信协议可能是不同的
- 广播信道:CSMA/CD协议(比如同轴电缆、集线器等组成的网络)
- 点对点信道:PPP协议(比如2个路由器之间的信道)
- 不同类型的数据链路,所用的通信协议可能是不同的
-
数据链路层的3个基本问题:
-
封装成帧:从网络层传来的数据包(帧的数据部分)经过添加帧的首尾部来实现封装
- 最大传输单元MTU(maximum transfer unit),规定帧的数据部分长度不能超过MTU,每一种数据链路层协议都规定了所能够传送的帧的数据长度上限
- 以太网的MTU为1500字节
-
透明传输:
帧开始符:SOH
帧结束符:EOT
帧开始符和帧结束符用于标志一个帧,但如果中间的数据部分出现EOT、SOH就要对其进行转义
通过进行字节填充进行转义,来实现透明传输
-
-
差错检验:
fcs是通过数据部分+数据链路层首部计算得出的
通过比较传输前后的FCS值来进行差错检验
-
CSMA/CD协议(载波监听多点接入/碰撞检测)
-
使用了CSMA/CD协议的网络可以称为以太网,他传输的是以太网帧
-
用交换机组建的网络,支持全双工通信(不会产生冲突),不需要再使用CSMA/CD,但他传输的帧依然是以太网帧。所以,用交换机组建的网络依然可以叫做以太网
-
为了能够检测接收到的帧是 因冲突返回的帧还是正常传输接收到的帧,以太网的帧至少要64字节。
Ethernet V2帧的格式
首部:目标MAC+源MAC+网络类型
以太网帧:首部+数据+FCS
数据的长度至少是:64-6-6-2-4=46字节
- 当数据部分的长度小于46字节时,数据链路层会在数据的后面加入一些字节填充,接收端会将添加的字节去掉
- 长度总结:
- 以太网帧的数据长度:46-1500字节
- 以太网帧的长度(目标MAC+源MAC+网络类型+数据+FCS):64-1518字节
-