概述
- 数据链路层负责将 bit 分成若干帧
封装成帧 + 透明传输
- 只有链路层加帧首和帧尾。因为只有这层用于定界,其他首部只是附带信息
-
MTU: 最大传送单元
-
定界符 + 字节填充法
- 指定帧开始符和帧结束符 SOH 和 EOT。帧内数据的 SOH, EOT 和 ESC 前面都加 ESC
- 0 比特填充:定界符不限长度 #qm
- 也可以在物理层特殊编码(0 1 以外)表示帧定界。
差错控制
- 纠错码:海明码等,找到错误位置,用于频繁出错处(如无线链路)
- 检错码:奇偶校验 / CRC 校验,错了就丢弃 + arq 重发 (arq: 确认+重传机制确保可靠),用于光纤等
- 奇偶校验:奇偶校验核心就是
补充校验位后让1的数量是
奇/偶数个 比如奇校验,00101变成001011
- 无差错和无错误:无差错是以接近 1 的概率无误
PPP 协议
- 用于两个节点之间建立点对点协议,适用于远程访问等场景
- PPP 子协议:LCP 链路控制协议 身份验证 链路管理 + NCP 网络控制协议 与网络层协议配合
-
PPP 协议:
-
同步传输: 面向比特传输,定界符为 bit 序列。例如定界符是
01111110
,则一旦发现五个连续 1,就插入一个 0,接收端遇到 5 个连续 1 就忽略后面的 0 - 异步传输:以字节为单位,用字节填充法保证透明传输 (防止传输的内容对帧定界造成干扰)
-
跳过
广播信道链路层
- 一般称局域网 = 以太网。其实还有令牌环网和 FDDI。以太网适合多点接入的局域网
- 本质上所有机器共享一条总线信道,一定会发生碰撞
- 静态分配:适用于用户少的场景
- 频分复用,时分复用 ...
- 动态分配:bandwidth 会动态分配
- 随机接入
- 受控接入
- 静态分配:适用于用户少的场景
- 以太网为什么快:
- 直接发帧,不建立逻辑连接和确认身份
- 功能精简,消除比特差错,忽略传输差错
- 曼彻斯特编码,自带同步信息便于广播
- 只需要广播的时候附带目标 mac,只有 mac 地址匹配的才会做出响应
网卡
- 功能:
- 向上在操作系统中安装驱动,向下实现以太网协议
- CSMA / CD 协议 #在后面
- 集线器和总线没啥区别,用 CDMA / CD 协议,半双工,在物理层工作;交换机摒弃 CSMA / CD,全双工,工作在链路层
利用率分析
MAC 层
- IP 地址随着局域网变化而变化而 MAC 物理地址固化在适配器的 ROM (read-only) 上全球 48 位标准
-
mac 帧是链路层帧的一种实现方式
- 46 - 1500 字节的 MTU,总长度 64-1518B
- 除了数据以外,有目标地址和原地址各占 6 字节
- 2 字节表示上一层协议
- 4 字节 FCS 校验码(比如使用 CRC)
- 没有界定符,采用物理层前导码,尾部则是以太网强制两个帧之间有间隔
- mac 帧有以太网 V2 格式和 IEEE 的 802.3 格式,前者常用
收发逻辑
适配器收到一个帧检查目标 MAC 地址与自己是否匹配。如果不匹配,或出现 FCS 校验错误或者帧长度错误,就丢弃。 - 单播帧 unicast:一对一 - 广播帧 broadcast: 给局域网所有机器返送 - 多播真 multicast 组播
介质访问控制 MAC
为了避免信道冲突,需要使用 Mac -
### CDMA 协议