「计算机网络」课程笔记 —— 数据链路层
数据链路层
处理两个相邻节点之间的通信
成帧
成帧:数据链路最基本的功能
将网络层传下来的分组添加首部和尾部,用于标记帧的开始和结束。
透明传输的实现:
-
字节填充法:
数据部分出现首部尾部相同的内容前面插入转义字符,如果出现转义字符,那么就在转义字符前面再加个转义字符,在接收端进行处理之后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在。
-
位填充法
比特位填充是每五连1时,插入一个比特0的 过程,以便接收方不会误认为是帧的标记。
差错控制
差错的类型
- 单个位差错
- 突发性差错
块编码
- 每块有 k 位,称为数据字
- 增加 r 位冗余位,其长度变为 $n=k+r$ ,形成的 n 位块称为 码字
检错的方法
若出现差错后,有效的码字变成了无效的码字,就检测出了差错
纠错的方法
汉明距离
两个字的汉明距离是对应位不同的数量,接受到的码字和发送的码字之间的汉明距离是传输中破坏的位数
检错的最小汉明距离
$$
d_{min} = s+1
$$
其中,$s$ 为最多差错位数
纠错的最小汉明距离
$$
d_{min} = 2t+1
$$
其中,$t$ 为最多差错位数
线性块编码
在线性块编码中,任意两个有效码字的异或,是另一个有效码字
线性块编码的最小汉明距离是具有最小 1 的个数的非 0 码字中 1 的个数。
-
简单奇偶校验码
-
$d_{min} = 3$ 的 汉明编码
-
循环编码
码字循环移位的结果是另一个码字
-
循环冗余校验 CRC
循环编码的性能分析
- 生成多项式至少有两项且 $x^0$ 的系数为 1 ,能捕捉到所有的单个位差错
- 若在第 $i$ 位和第 $j$ 位出现差错,则生成多项式不能是 $x^{j-i}+1$
- $x+1$ 和其他多项式相乘得到的生成多项式可以捕捉到所有奇数个错误
- 突发性差错
- 长度 $L$ 小于等于校验位数 $r$ 的差错都会被检测到
- 长度 $L$ 等于校验位数 $r+1$ 的差错有 $1-\frac{1}{2}^{r-1}$ 的概率被检测到
- 长度 $L$ 大于校验位数 $r+1$ 的差错有 $1-\frac{1}{2}^{r}$ 的概率被检测到
-
校验和
可靠传输
-
流量控制就是一系列过程,用来限制发送方在 等到确认之前发送的数据数量。
-
差错控制
差错检测和重传的办法,数据链路层的差错控制基于自动重复请求(ARQ), 即重传数据。检测到一个差错,就要重传这个出错的帧
协议
无噪声通道
1. 最简协议
无流量控制的协议
2. 停等协议
增加ACK确认,用 canSend = true/false 调节
有噪声通道
1. 停止等待自动重复请求 (停等 ARQ)
- 序列号:0、1
- 确认号:期待接受的下一帧
- 增加定时器 StartTimer(),超时发送方重发
2. 回退 n 帧自动重发
- 序列号:模$2^m $
- 特性:定时器,ACK
- 发送窗口大小 $maxsize = 2^m-1$
- 接收窗口大小 = 1
选择重发 ARQ
- 发送窗口大小 $maxsize = 2^{(m-1)}$
- 接收窗口大小 = 发送窗口大小
- 特性:ACK、NAK、定时器
真实协议
HDLC 高级数据链路控制协议
-
配置和传输方式
- 正常响应模式
- 异步平衡模式 (普遍应用的模式)
-
帧结构
三种帧结构:信息帧、管理帧、无编号帧
字段:
-
标记字段:01111110
-
地址字段:如果主站产生帧,它包含着 一个"去往"地址。如果从站产生帧,它则包含一个"来自"地址。 。如果地址字段多于一个字节,所有的宇节除了最后一个字节外都以0结束,只有最后一个宇节以1结束。中间的字节都以 结束是为了提示接收方会有 更多的地址字节到来。
-
信息字段:包含网络层的信息
-
帧校验字段:CRC校验
-
控制字段:
-
信息帧:是一位是0,通过捎带方式,包含流量控制和差错控制信息
-
管理帧:前两位是10,没有信息字段,用来进行流量控制和差错控制
- 无编号帧:包含一个信息字段,用作系统管理
-
点到点 PPP 协议
PPP 是一个面向字节的协议
-
帧格式
- 标记:面向字节的 01111110
- 地址:11111111(广播)通常省略
- 控制:11000000 (HDLC的无编号帧)省略
- 协议:指明承载了用户数据还是其他信息 2字节或1字节
- 有效载荷:,最大数量的默认值是 1500字节
- 帧校验序列:2到4字节的标准 CRC
-
传输建立
-
多路复用
- 链路控制协议 LCP:建立维系确认并终止链路
协议字段:C021;载荷格式:编码、ID、长度、信息
-
鉴别协议
-
PAP 口令鉴别协议
-
CHAP 查询握手协议
- 网络控制协议
使用不同的网络协议,承载网络层数据分组,如 IPCP 协议,承载 IP 数据分组
_(:3 」∠)_