目录
一、链路层的术语
① 节点 (nodes):主机和路由器
② 链路 (links):沿着通信路径连接相邻节点的通信信道
- 有线链路 (wired links)
- 无线链路 (wireless links)
③ 数据帧 (frame):是指第二层的分组,它是封装了的数据报
- MTU 最大传输单元:是指帧能封装的最大数据量
数据链路层的职责是将数据报从一个节点传送到与该节点直接有物理链路相连的另一个节点。
- 数据报可以在不同的链路上,通过不同的链路层协议发送
- 每个链路层协议提供不同的服务
链路层实现同一子网内部不同主机之间的通信,因此不需要路由。
二、链路层的类比
从学校到洛桑的旅程:
- 小汽车:电子科大——双流机场
- 飞机:双流机场——日内瓦
- 火车:日内瓦——洛桑
一个游客好比一个数据报,每个运输区段好比一条链路,每种运输方式好比一种链路层协议,而该旅行社好比一个路由选择协议。
三、链路层提供的服务
① 封装成帧,链路接入
- 封装数据报为数据帧,增加头部、尾部信息
- 如果是共享链路,接入链路
- 在数据帧头部中,用 MAC 地址来标识源目的 MAC 地址
不同于IP地址
② 在相邻节点之间可靠传输数据帧
我们在第 3 章已经学习了如何在运输层实现数据的可靠传输
- 在比特错误率很低的链路 (光纤、双绞线) 很少使用
- 无线链路:高比特错误率
问题:为什么要在链路层和端到端都实现可靠传输?
③ 流量控制:用于控制发送节点向直接相连的接收节点发送数据帧的频率
④ 差错检查
- 差错可能由信号衰减、噪声引入
- 接收方检测是否出现错误:通知发送方重传或丢弃数据帧
⑤ 错误纠正:接收方标识和纠正比特错误,而不需要请求重传
⑥ 半双工和全双工:在半双工模式,链路的两个节点都可以发送数据,但是不能同时发送
四、链路层实现的位置
- 在主机和网络设备 (路由器) 上实现
- 在主机上,链路层的主体部分是在网络适配器上实现的
- 网络适配器实现了链路层和物理层的功能
- 硬件、软件、固件的组合
用硬件实现的差错检测,之前讲的都用的是软件来实现的。
1、网络适配器
在大多数情况下,链路层是在称为网络适配器的芯片上实现的,有时也称为网络接口控制器 (NIC),同时也是我们常说的网卡。
网络适配器实现了许多链路层服务,包括成帧、链路访问、错误检测等。
2、网络适配器工作过程
发送方:
- 封装数据报为数据帧
- 增加差错检测比特、可靠数据传输、流量控制等机制
接收方:
- 执行检查错误、可靠数据传输、流量控制等机制
- 抽取数据报,将其递交给上层
如果链路层执行差错检测,则需要发送控制器在该帧的首部设置差错检测比特,由接收控制器执行差错检测。