3.1 数据链路层功能概述
3.1.1 数据链路层基本概念
- 结点:主机、路由器
- 链路:网络中两个结点之间的物理通道,传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路两种
- 数据链路:网络中两个结点之间的逻辑通道,把视线控制数据传输协议的硬件和软件加到链路上就构成数据链路。
- 帧:链路层的协议数据单元,封装网络层数据报。
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻节点传送数据报。
3.1.2 数据链路层的主要功能
数据链路层在物理层的基础上向网络层提供服务,基本服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
- 为网络层提供服务:无确认无连接服务(通常用于实时通信即码率比较低的通信信道);有确认无连接服务(通常用于无线通信即码率比较高的通信信道);有确认面向连接服务(最安全最可靠,有连接一定有确认)。
- 链路管理:连接的建立、维持、释放(用于面向连接的服务)。
- 组帧
- 流量控制。控制发送方速度
-
3.2 封装成帧与透明传输
3.2.1 封装成帧
3.2.2 透明传输
1. 透明传输的含义
2. 透明传输在组帧方面的应用
字符计数法
帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。缺点:一旦一个部位出错后面的全出错了。
- 字符填充法

如果数据部分产生了与首尾标识符相同的字符,需要进行转义。
- 零比特填充法
首尾的标识符一样
- 违规编码法

- 全局性:由于线路本身电气特性所产生的随机噪声,是信道固有的,随机存在的。(解决办法:提高信噪比来减少或避免干扰,对传感器下手)
局部性:外加特定的短暂原因所造成的的冲击噪声,是产生差错的主要原因。解决办法:通常利用编码技术来解决。
<br />数据链路层的差错控制针对的问题是比特错。检错编码只能判断出有错,纠错编码能判断出错的位置。<br /><br />数据链路层的编码与物理层的编码区别:
- 物理层的编码针对的是单个比特,解决传输问题中比特的同步等问题,如曼彻斯特编码。
数据链路层的编码针对的是一组比特,它通过冗余码的技术实现一组二进制比特串在传输过程中是否出现了差错。
3.3.2 纠错编码——奇偶校验码

特点:-
3.3.3 纠错编码——CRC循环冗余码
3.3.4 检错编码——海明码
发现双比特错,纠正单比特错。
工作原理:动一发而牵全身。
- 确定校验码位数

- 确定校验码和数据的位置

- 求出校验码的值

- 检错并纠错
3.4 流量控制与可靠传输机制
3.4.1 数据链路层的流量控制
较高的发送速度和较低的接受能力不匹配,会造成传输出错。
链路层的流量控制是点对点的,传输层的流量控制是端到端的。
链路层的流量控制手段:接收方收不下就不回复确认(确认帧);传输层流量控制手段:接收端给发送端一个窗口公告。
3.4.2 流量控制方法
3.4.3 停止-等待协议
应用情况:
- 无差错情况

- 有差错情况

等到发送端收到确认帧之后副本才会清除。
出错与丢失是一样的,出错之后确认端发现错误并不返回确认帧,发送端在等待一个超时计时器后重新发送该帧。

停止-等待协议的性能分析:
信道利用率与信道吞吐率:
3.4.4 后退N帧协议(GBN)
GBN过程:
GBN发送方必须响应的三件事:

由于累积确认机制,接收方可以隔一段确认一次,不用每个帧都确认,确认的帧包括该帧以及之前的所有帧,所以一般看最大的确认帧即可。
GBN接收方要做的事:
运行中的GBN的一个例子:
假设发送窗口的尺寸为4
窗口为4,所以0、1、2、3帧可以按顺序都发了,接收端接收0帧并发送确认帧ack0、接收1帧并发送确认帧ack1,发送端收到ack0就滑动窗口发送4帧,接收到ack1就滑动窗口发送5帧;2帧在发送过程中丢失,接收端维护了一个expectedseqnum(值为2)一直在等这个值,然而收到的3、4、5帧全都不是2,所以全部丢弃发送目前的最大值ack1;发送端发现一直没有收到2帧的确认,即2帧超时,就将2、3、4、5帧重传。
滑动窗口的长度:
GBN总结:
- 累积确认(偶尔稍待确认,即接收方会同时给发送方发送一些数据捎带着确认信息一块发送)
- 接收方只按序接收帧,不按序无情丢弃
- 确认序列号最大的、按序到达的帧
-
GBN协议性能分析:
优点:因连续发送数据帧而提高了信道利用率
- 缺点:在重传时必须把原来已经正确传送的数据帧重传(批量重传),使得传送效率降低。
3.4.5 选择重传协议(SR)
SR中的滑动窗口
SR中发送方必须响应的三件事:

SR中接收方要做的事:
运行中的SR:
假设发送窗口和接收窗口尺寸都为4
发送端发送0,1,2,3帧,接收端接收0帧发送ack0并右移,接收1帧发送ack1并右移,发送端收到ack0与ack1并右移发送4帧和5帧;由于2帧在路上丢失,接收端接收3、4、5帧需要缓存(没有收到2帧不能右移)并发送ack3、ack4、ack5,发送方发现2帧超时并重传2帧,接收方接收2帧发送ack2,此时2-5帧都收到了确认然后右移窗口。
滑动窗口的长度
SR总结:
- 对数据帧逐一确认,收一个确认一个
- 只重传出错帧
-
3.5 介质访问控制技术
传输数据使用的两种链路:
点对点链路:两个相邻节点通过一个链路相连,没有第三者。PPP协议,广域网。
广播式链路:所有主机共享通信介质。早期的总线以太网、无线局域网。拓扑结构:总线型、星型(逻辑总线型)介质访问控制分类
3.5.1 信道划分介质访问控制
1. 频分多路复用FDM

2. 时分多路复用TDM

3. 波分多路复用WDM
波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
4. 码分多路复用CDM
3.5.2 随机访问介质访问控制
1. ALOHA协议
分为纯ALOHA协议和时隙ALOHA协议
纯ALOHA协议

- 时隙ALOHA协议

对比:
- 纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
- 纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发
2. CSMA协议

1-坚持CSMA
非坚持CSMA
p-坚持CSMA(忙则持续监听到下一个时隙)
比较:
| 1-坚持CSMA | 非坚持CSMA | p-坚持CSMA | |
|---|---|---|---|
| 信道空闲 | 马上发 | 马上发 | p概率马上发,1-p概率等到下一个时隙再发送 |
| 信道忙 | 继续坚持监听 | 放弃监听,等一个随机时间再监听 | 继续持续监听到下一个时隙 |
3. CSMA-CD协议
3.6 点对点协议PPP与HDLC协议
3.6.1 点对点协议PPP
1. PPP协议特点
PPP是目前使用最广泛的数据链路层协议,用户使用拨号电话接入因特网时一般都是用PPP协议。只支持全双工链路。
2. 满足的要求
3. 组成部分
4. 状态图

5. 帧格式
3.6.2 HDLC协议
1. HDLC特点
2. HDLC的三种站
3. HDLC帧格式
3.6.3 PPP协议与HDLC协议的异同
3.7 MAC地址
3.7.1 MAC地址的含义
使用点对点信道的数据链路层不需要使用地址(就两个主机),使用广播信道的数据链路层必须使用地址来区分主机(有很多个主机)
3.7.2 IEEE 802局域网的MAC地址格式


以太网接口、wifi接口、蓝牙接口都分配有全球单播的MAC地址
3.7.3 MAC地址发送顺序
字节发送顺序:第一字节至第六字节
字节内的比特发送顺序:b0至b7
3.7.4 单播MAC地址:
3.7.5 广播MAC地址:
3.7.6 多播MAC地址:
3.7.7 数据包转发过程







此案例中窗口应为2(3会出现二义性)编号数量的一半


