数据链路层
功能
为网络层提供的服务
有连接就一定要确认
- 无确认 无连接服务
- 有确认 无连接服务
- 有确认 面向连接服务
组帧
4种方法
3.4较为常用
-
- 字节计数法
Byte Count
很少使用
第一个byte表示紧跟着(包括它自己)有多少个byte
51234 51234 80123456 87890123 -
- 字符填充的首尾定界符法
标志字节 flag byte
界定一帧的开始和结束。特殊字符FLAG填充
转义字符ESC !not 'ESC'!
放在特殊字符之前
例 A FLAG B ... A ESC FLAG B
填充后 A ESC FLAG B ... A ESC ESC ESC FLAG B较复杂
-
- 比特填充的标志比特法
USB常用
改进,在byte = 8 bits基础上改进,从而帧可以不再是8b的倍数长。
性能better than 字符填充
01111110标志一帧的开始and结束(中间是连续6个1)
∴发送方 在这一帧中间连续5个1后自动插入一个零
接收方遇到连续5个1减掉后面那个0 -
- 物理层编码违禁法
曼彻斯特编码 高低——码元1,低高——码元0
so, 高高or低低都是违禁的,可以用来标志帧的开始和终止
差错控制
detect检错 correct纠错
-
ARQ 自动重传请求 3种
ARQ Automatic Repeat reQuest 自动重传请求
使用检错码ARQ控制方法:
发送方将要发送的数据帧附加CRC 冗余校验码一起发送;
接收方根据这部分CRC码进行校验;
发现错误——丢弃-->发送方超时重传。-
- 停止-等待 ARQ
-
- Go-Back-N 后退N帧 ARQ
-
- 选择性重传 ARQ
-
-
FEC 前向纠错
使用纠错码的技术
-
检错编码
-
奇偶校验码
只能发现奇数个 位错误,看1的个数
偶校验:加上最后一位校验位,有偶数个1
奇校验:加上最后一位校验位,有奇数个1 -
CRC循环冗余校验
also. 多项式编码、Cyclic Redundancy Check
除法皆为模2除法,不同为1相同为0
几个量:
G(x) :CRC的生成多项式,接收方与发送方的约定,已经规定好了。传输过程中,始终保持不变。最高位、最低位都是1
C(x):发送的原始数据,原始多项式
R(x):CRC多项式,即余数
T(x) = C(x) << R + R(x)
K:C(x) 的位数,or 最高幂次 +1
R:CRC码位数 = G(x) 位数 - 1
原理:
发送端、接收端预先商定一个生成多项式 G(x)
K位的原始数据帧C(x),比G(x)长
在C(x)尾部附加校验和,生成T(x),能够被G(x)除尽
计算过程
r位的G(x),发送K位的原始帧C(x)
1. C(x) 尾部加 R 位0
2. C(x) 除以 G(x),得到余数,即CRC校验码R(x)
3. 余数替换末尾的 R 个0,得到T(x),余数位数不够在前面补0
4. 接收端收到T(x) + E(x)
错误分析 接收端收到T(x) + E(x)
奇数个位发生错误——E(x) 有x奇次项
只有1位错误——E(x) = xi
两个独立的1位错误,E(x) = xi + xj举例 G(x) = x4 + x + 1 计算帧1101011111校验和
解:
G(x) = x4 + x + 1 即:10011
G(x)5位,M(x)补上4个0--M(x)帧11010111110000,再除G(x)10011
余10
发出帧T(x) = 1101011110010,T(x)能被G(x)整除
-
-
纠错编码
-
海明码
海明距离
多对数据取最小值海明距离(d + 1) 最多检测detect d个错误
海明距离(2d + 1) 最多纠正correct d个错误
m+r+1≤2r
海明码默认一串数据 只错一位,so只能检查一个错误位。
原data = 1001101 r = 4;
r1、r2、r4、r8 插入
r1画一隔一、r2画二隔二、r4画4隔4、r8画8隔8
偶校验,使得画出来的部分是偶数个1
得到code
检查code
不要改变code,依次检查r1、r2、r4、r8 ,错误位记为1,正确记为0
写成r8 r4 r2 r1,转换成十进制,即为错误位 -
二进制卷积码
-
流量控制
点对点
限制发送方的数据流量,不超过接收方的接收能力。只看两端,不看中间
传输层的流量控制是端到端
-
停等
发送方发一帧,等待接收方应答信号,等到之后才能发下一帧
没收到就一直等效率低
-
滑动窗口
-
单帧 停等
发送窗口 size = 1
接收窗口 size = 1
源收到ACK才可以发下一帧,缓冲区才可以删除备份文件 -
Go-Back-N
对ACK进行 n bit 编号:0 ~ 2n - 1 号码
发送窗口 1 ≤ size ≤ 2n - 1
接收窗口 size = 1 按顺序接收
源可连发,对ACK进行 n bit 编号,每帧都有超时计时器;
ACKn 表示前n帧都已经正确接收 -
SR 选择性重传
对ACK进行 n bit 编号,否定帧NAK,
发送窗口 1 ≤ size ≤ 2n-1
接收窗口 size > 1收发双方窗口大小相同
-
-
信道利用率
针对发送方而言,一个发送周期内,有效发送数据时间/整个发送周期
T发送周期,C 数据传输速率,L 共发送了L bits数据,( L/C) / T
信道吞吐率 = 信道利用率 * 发送方发送速率
协议
HDLC
面向比特
使用序号、确认机制,提供可靠传输
SONET
PPP
面向字节
不使用序号、确认机制,只保证无差错接收CRC校验
ADSL 拨号上网
用户可以边打电话边上网,一条电话线可同时接听,拨打电话并进行数据传输,两者互不影响。
ADSL传输的数据并不通过电话交换机,所以adsl上网
不需要缴付额外的电话费,节省了费用。