数据链路层使用的信道主要有以下两种类型:
- 一条链路只是一条通路的一个组成部分。
数据链路层传送的是帧
字节填充
在数据中可能存在帧开始字符或帧结束字符,这时为了透明传输就需要转义,类似于编程语言中的\
如\n
在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率 BER (Bit Error Rate)
在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术 模2除即为非进位除法或异或
帧检验序列 FCS
校验:
用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。
- 当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报。
- 若为 0xC021, 则信息字段是 PPP 链路控制数据。
- 若为 0x8021,则表示这是网络控制数据。
透明传输
1. 将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。
2. 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。
3. 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
- 在发送端,只要发现有 5 个连续 1,则立即填入一个 0。
- 接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除
媒体共享技术
为了使数据链路层能更好地适应多种局域网标准,802 委员会就将局域网的数据链路层拆成两个子层:
载波监听多点接入/碰撞检测
- 当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞
- 碰撞的结果是两个帧都变得无用
使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)
争用期
最先发送数据帧的站,在发送数据帧后至多经过时间 2t (两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。 以太网的端到端往返时延 2t 称为争用期,或碰撞窗口
二进制指数类型退避算法
- 确定基本退避时间,一般是取为争用期 2_t_。
- 定义重传次数 _k_ ,_k_ £ 10,即
- 从整数集合[0,1,…, (2_k_ -1)]中随机地取出一个数,记为 _r_。重传所需的时延就是 _r_ 倍的基本退避时间。
- 当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突
以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧
强化碰撞
- 立即停止发送数据;
- 再继续发送若干比特的人为干扰信号(jamming signal),以便让所有用户都知道现在已经发生了碰撞
这种以太网采用星形拓扑,在星形的中心则增加了一种可靠性非常高的设备,叫做集线器(hub)
使用集线器的以太网在逻辑上仍是一个总线网,各工作站使用的还是 CSMA/CD 协议,并共享逻辑上的总线
集线器很像一个多接口的转发器,工作在物理层(没有处理能力,收到什么发什么)
集线器示意图
帧长为 L (bit),数据发送速率为 C (b/s),因而帧的发送时间为 L/C = _T_0 (s)。
的值会太小,使 a 值太大
适配器检查MAC地址
收到帧之后进行检测,如果是发往本站就接受,否则就丢弃。
发往本站的帧:
MAC帧格式
在数据链路层扩展局域网是使用网桥
网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴
集线器和网桥的不同
交换式集线器常称为以太网交换机(switch)或第二层交换机(表明此交换机工作在数据链路层)
虚拟局域网协议允许在以太网的帧格式中插入一个 4 字节的标识符,称为 VLAN 标记(tag)
帧格式: