数据链路层
约 1959 字大约 7 分钟
2025-04-14
三个重要问题「点对点信道」
封装成帧
- 封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧「帧头和帧尾中包含重要的控制信息,作用之一就是帧定界」。
- 透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
- 面向字节的物理链路使用字节填充的方法实现透明传输
- 面向比特的物理链路使用比特填充的方法实现透明传输
image-20250306084912764
- 为了提高帧的传输效率,应当使帧的数据部分的长度尽能大些「Max:最大传送单元MTU/差错控制...」
差错检测
- 检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误。
- 要想纠正传输中的差错,可以使用冗余信息更多的纠错码进行前向纠错,但纠错码的开销比价大,在计算机网络中较少使用。
- 循环冗余校验CRC有很好的检错能力「漏检率非常低」,易于用硬件实现,因此被广泛应用于数据链路层。
可靠传输
发送端发送什么,接收端就收到什么,可靠传输的实现机制:
- 停止-等待协议SW:发送方每发送一个数据帧后,等待接收方的确认(ACK)才能发送下一帧「如果超时未收到ACK,发送方重传该帧」
- 回退N帧协议GBN:发送方可以连续发送多个数据帧,无需等待单个数据帧,接收方只按顺序确认,若某帧出错,丢弃该帧及后续所有帧,发送方需从出错帧开始重传。
- 选择性重传协议SR:发送发可以连续发送多个数据帧,接受方对每个帧单独确认,若某帧出错,发送方只需重传出错的帧,其余帧无需重传。
PPP协议
PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,主要有:对各种协议数据报的封装方法「封装成帧」、链路控制协议LCP「用于建立、配置以及测试数据链路的链接」、一套网络控制协议NCPs「其中的每一个协议支持不同的网络层协议」

PPP的帧格式:

- F字段为帧定界符「0x7E」
- A「0xFF」和C「0x03」字段为预留字段
- P字段是协议字段
- FCS字段是使用CRC的检验序列
媒体接入控制MAC
静态划分信道
- 频分复用FDM:频分复用的所有用户同时占用不用的频带资源进行通信。
- 时分复用TDM:时分复用的所有用户在不同的时间占用同样的频带宽度。
- 波分复用WDM:光的频分复用。
- 码分复用CDM:每个用户分配一个独特的码片序列(通常是正交的伪随机码),发送方将数据与码片序列相乘后发送,接收方用相同的码片序列解码,提取特定用户的数据。
image-20250310213139036
动态接入控制
- CSMA/CD「载波监听多址接入/碰撞检测-总线局域网」
- MA「多址接入」:多个站连接在一条总线上,竞争使用总线
- CS「载波监听」:每一个站在发送帧之前先要检测一下总线上是否有其他站点在发送帧(先听后说)
- CD「碰撞检测」:每一个正在发送帧的站边发送边检测碰撞(边说边听)
- 争用期「碰撞窗口」:主机最多经过2τ「τ:端到端传播时延」的时长就可检测到本次发送是否遭受了碰撞,经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
- 截断二进制指数退避算法:当发生碰撞时,站点要停止发送,等待一段时间再发送。这个时间采用截断二进制指数退避算法来确定。
image-20250312181223688
- CSMA/CA「载波监听多址接入/碰撞避免-无线局域网」-802.11
- 退避算法:当要发送帧的站点检测到新道从忙状态转为空闲时,都要执行退避算法。
- 所有的站在完成发送后,必须等待一段帧间间隔时间才能发送下一帧「帧间间隔的长短取决于该站要发送的帧的优先级」
- 无线局域网的MAC帧首部中有一个持续期字段,用来填入帧本帧结束后还要占用信道多久时间,其他站点通过该字段可实现虚拟载波监听。
- 允许要发送数据的站点对信道进行预约,即在发送数据帧之前先发送请求发送RTS帧,在收到响应允许发送CTS帧后,就可发送数据帧。
MAC地址
MAC地址是数据链路层地址,长度为6字节「48位」,唯一标识网络上各个接口,例如网卡,交换机和路由器有更多的网络接口,所以拥有更多的MAC地址。
集线器与交换机
以太网帧格式:
- 类型:标记上层使用的协议
- 数据:长度在46-1500之间,如果太小则需要填充。
- FCS:帧检验序列「CRC」


交换机具有自学习能力,学习的是交换表的内容,交换表中存储着 MAC 地址到接口的映射。
正是由于这种自学习能力,因此交换机是一种即插即用设备,不需要网络管理员手动配置交换表内容。
下图中,交换机有 4 个接口,主机 A 向主机 B 发送数据帧时,交换机把主机 A 到接口 1 的映射写入交换表中。为了发送数据帧到 B,先查交换表,此时没有主机 B 的表项,那么主机 A 就发送广播帧,主机 C 和主机 D 会丢弃该帧,主机 B 回应该帧向主机 A 发送数据包时,交换机查找交换表得到主机 A 映射的接口为 1,就发送数据帧到接口 1,同时交换机添加主机 B 到接口 2 的映射。

每条记录都有自己的有效时间,到期自动删除!因为MAC地址与交换机接口的对应关系并不是永久性的「换网卡,换电脑...」
以太网交换机的生成树协议STP:

虚拟局域网
虚拟局域网可以建立与物理位置无关的逻辑组,只有在同一个虚拟局域网中的成员才会收到链路层广播信息。
例如下图中 (A1, A2, A3, A4) 属于一个虚拟局域网,A1 发送的广播会被 A2、A3、A4 收到,而其它站点收不到。
使用 VLAN 干线连接来建立虚拟局域网,每台交换机上的一个特殊接口被设置为干线接口,以互连 VLAN 交换机。IEEE 定义了一种扩展的以太网帧格式 802.1Q,它在标准以太网帧上加进了 4 字节首部 VLAN 标签,用于表示该帧属于哪一个虚拟局域网。
