一、术语
- 主机和路由器:结点(nodes)
- 连接相邻结点的通信信道:链路 (links)
- 有线链路(wired links)
- 无线链路(wireless links)
- 局域网(LANs)
- 链路层数据分组:帧,封装网络层数据报。
- 链路层负责通过一条链路从一个节点相另一个物理链路直接相连的相邻结点传送数据报。
二、链路层服务
-
组帧(framing)
- 封装数据报构成数据帧,加首部和尾部
- 帧同步
-
链路接入(ink access)
- 如果是共享介质, 需要解决信道接入(channel access)
- 帧首部中的“MAC”地址,用于标识帧的源和目的
- 不同于IP地址!
-
相邻结点间可靠交付
-
流量控制(flow control)
- 协调(pacing)相邻的发送结点和接收
-
差错检测(error detection)
- 信号衰减和噪声会引起差错.
- 接收端检测到差错:通知发送端重传或者直接丢弃帧
-
差错纠正(error correction)
- 接收端直接纠正比特差错
-
全双工和半双工通信控制
- 全双工:链路两端结点同时双向传输
- 半双工:链路两端结点交替双向传输
三、链路层的具体实现
- 每个主机或路由器接口
- 链路层在“适配器” (即网络接口卡-NIC) 中实现或者在一个芯片上实现
- 以太网网卡,802.11网卡;以太网芯片组
- 实现链路层和物理层
- 链接主机的系统总线
- 由硬件、软件与固件组成
四、差错编码
1. 奇偶检验码
- 奇校验:1的个数是奇数个;
- 偶校验:1的个数是偶数个。
2. Internet校验和(Checksum)
发送端
- 将“数据”(校验内容)划分为16位的二进制“整数”序列
- 求和(sum):补码求和(最高位进位的“1”,返回最低位继续加)
- 校验和(Checksum):sum的反码
- 放入分组(UDP、TCP、IP)的校验和字段
接收端:
- 与发送端相同算法计算
- 计算得到的"checksum"
- 为16位全0 (或sum为16位全1) :无错
- 否则:有错
3. 循环冗余校验码(CRC)
检错能力强大,广泛应用于实际网络(以太网,802.11 WIFI,ATM)。
- 将数据比特D视为一个二进制数
- 选择一个r+1位的比特模式(生成比特模式)G
- 目标:选择r位的CRC比特R,满足
正好可以被G整除 - 接收端检错:利用G除
,余式全0无错;否则有错。 - 可以检测所有突发长度小于r+1位差错。
五、多路访问控制(Multiple Access Control,MAC)协议
1. 两类“链路”
-
点对点链路
- 拨号接入的PPP
- 以太网交换机与主机间的点对点链路
-
广播链路(共享介质)
- 早期的总线以太网
- HFC的上行链路
- 802.11无线局域网
-
单一共享广播信道
-
两个或者两个以上结点同时传输:干扰(interference)
- 冲突(collision):结点同时接收到两个或者多个信号 ,则接收失败!
2. 多路访问控制协议(Multiple Access Control Protocol)
- 采用分布式算法决定结点如何共享信道,即决策结点何时可以传输数据。
- 必须基于信道本身,通信信道共享协调信息。
3. 理想MAC协议
- 给定:速率为R bps的广播信道
- 期望:
- 当只有一个结点希望传输数据时,它可以以速率R发送;
- 当有M个结点期望发送数据时,每个节点平均发送数据的平均速率是R/M;
- 完全分散控制:
- 无需特定结点协调
- 无需时钟、时隙同步
4. MAC协议分类
-
信道划分MAC协议
- 多路复用技术:TDMA/FDMA/CDMA/WDMA
-
随机访问MAC协议
- 信道不划分,允许冲突
- 采用冲突恢复机制
-
当结点要发送分组
- 利用信道全部数据速率R发送分组
- 没有事先的结点间协调
-
两个或多个结点同时传输: >“冲突
-
随机访问MAC协议需要定义:
- 如何检测冲突
- 如何从冲突中恢复(e.g. 通过延迟重传)
-
典型的随机访问MAC协议
- 时隙(sloted)ALOHA
- ALOHA
- 载波监听多路访问协议CSMA、CSMA/CD(以太网)、CSMA/CA(WIFI)
-
轮转MAC协议
- 结点轮流使用信道
- 轮询、令牌传递
5. 对比
-
信道划分MAC协议:
- 网络负载重时,共享信道效率高,且公平
- 网络负载轻时,共享信道效率低!
-
随机访问MAC协议:
- 网络负载轻时,共享信道效率高,单个结点可以利用信道的全部带宽
- 网络负载重时,产生冲突开销
-
轮转访问MAC协议:
- 综合两者的优点!