现代通信网第三章总结
作者:沈自在
1 帧定界方法
主要分为三种:
- 基于字符
- 基于比特
- CRC
1.1 基于字符
其实基于字符这样不好理解(可以用首尾界符法来解释这个方法)
帧是字节或字符的集合。每帧的开始和结束位置使用一个专用字符标识一帧的边界,称为Flag.接收端如果收到两个连续的Flag字符则指示一帧的结束和下一帧的开始
1.2 基于比特(零比特填充法)
帧看成一个比特序列的集合。每一帧开始和结束用一个特殊的比特序列标识。(这种方法的本质是要解决8位编码到任意编码的问题)
举个例子:
上面有谈到解决编码位长度变化的问题,那么它的方案就是在**任意编码情况下发送端只要有连着的5个1后面就自动追加一个0**,而在接收端只要有连着的5个1,就把后面的0去掉,如此这般就可以满足发送任意长度的数据。
1.3 基于 CRC 方式
这个就是冗余码计算,太难了,就不看了。
接收端对接收比特流进行逐比特检查,寻找正确的CRC字段,如果多次正确定位了CRC字段的位置,接收端就认为正确实现了帧定界。
2 流量控制
所谓流量控制,见明知义,就是要控制传输的数据,进而去平衡发送端和接收端,防止出现发的数据太多,接收端来不及处理的情况(或者超过信道的承载能力)。
流量控制主要有俩类方法,其区分依据在于**会不会动态调整发送速度**
- 开环:不会(发送端和接收端之间没有反馈信息,流量控制时需预先分配资源;电路交换与虚电路技术)
- 闭环:会(这是重点)
闭环的流量控制方法中有俩个主要的思路:
2.1 停等式协议
简单概括就是:发了必须知道发送成功了才发下一条,比如发送了一条Hello,接收端必须回复确认,才会发吓一跳,性能很低的啦。
2.2 滑动窗口
所谓滑动窗口其实分为**发送端滑动窗口**和接收端滑动窗口
2.2.1 发送端滑动窗口
假设啊~,将所有要发送的数据穿成一条链,然后把这条链分为四个区域:
- 已经发送并且接收端确认成功
- 已经发送但是还没确认
- 可以发送
- 不能发送
分成这样四个部分之后,窗口就约束在第二块和第三块区域
类似这样一个逻辑,比如现在窗口的左边界是在32-51,那么发送一条数据后就会移动位33-52,这样看起来就像是一个窗口在向右滑动,因此叫滑动窗口算法
2.2.2 接收端滑动窗口
接收端逻辑较为相似,暂时不谈了
2.3 链路比特计算
假设:
R:链路速率
d:链路长度
V:信号在链路上的传播速率
那么:Q=R×(d/V)
Q为某一时刻,整个链路中包含的比特数、一条链路的比特长度
⚠️注意:
别看这个公式抽象,但其实很好理解,d/V不就是单个信号走完整个链路所需要的时间嘛,与链路速率相乘不就是这段时间内发出的所有信号,换句话不就是当前链路的所有比特信号。
3 差错控制
3.1 差错检测
3.1.1 循环冗余校验码
⚠️注意:下面有一个模二除法,就是把数位摆齐,上下一样就是0,上下不一样就是1
这个做法的名字叫做循环冗余校验码(CRC),它的流程分为三步:
- 发送方和接收方在通信前,约定好一个预设整数作为除数。(这就是G(X))
- 发送方在发送前根据原始数据和约定好的除数进行模二除法运算生成余数(即CRC码),然后将其附加到原始数据后面一起发送给接收方。(通过G(X)求出余数)
- 接收方收到后将其模二除以约定好的除数,当且仅当余数为0时接收方认为没有差错。
3.1.2 互联网检验和
这种方法的本质在于:
**发送端:**将码每16位对应加起来,对最终结果去反,拼接到原始信息最后。
**接收端:**将所有码分别加起来,最终结果没有0,则没有差错
3.2 差错纠正
PPT没有这方面内容
3.3 重发纠错
3.3.1 ARQ:GBN(回退N帧)
这个其实很好理解,前面有说过发一条消息需要接收端确认一下然后发下一条,这样会使得整个过程效率很低,所以呢就有了现在这个方案——回退N帧
意思就是按顺序发了一堆消息(比如:12345678),假设现在收到了2的确认,但没收到345678的确认,而且现在已经超时了,那么就345678全部重发。这里的回退其实就是重发的意思。
3.3.2 ARQ:SR(选择重发)
这个协议虽然很复杂,但是核心思想很简单。
还是那个逻辑:发送一条数据需要一个ack,但是现在ack的是某一条数句,比如发送了2、3、4、5四条数据,现在收到了2、3的确认,那么超过一定时间后只需要要重发4、5。
4 路由选择
没必要,看一下D算法即可。
5 课后题与作业题
5.1 课后题
1、帧定界在分层结构中哪一层完成?(数据链路层)
2、要发送的数据10010011,对应的多项式为:M(x)=x7+x4+x1+1,其中G(x)=x3+x1+1,求余项R(x)。
解这道题要把握俩个点:
- R(x) 是 M(x) 与 G(x) 模2除之后的余数
- 模2除法怎么除
3、待发送比特为11001010(包含两个4比特的整数),说明互联网校验和算法实现过程。
5.2 作业题
1、帧定界的方法有哪几种?(三种,基于字符边界、基于比特填充、基于CRC)
2、系统采用带位填充的帧界标记法,收方从网络接收到一个字符串是 11101111100。那么,发送方发送的原始字符串是什么?(B)只要连续5个1就补一个0
A. 1110111110
B. 111011111000
C. 111111110
D. 1.11011111E10
3、采用比特填充的比特标记法,对0111 1100 0111 1110 组帧后,对应的比特串是多少?(A,同上一题)
A. 01111100 00111110 10
B. 01111100 01111101 01111110
C. 01111100 01111101 0
D. 01111100 01111110 01111101
4、下列关于停-等ARQ协议,正确的描述是? (A)
A. 仅当当前帧的 ACK 落入 *sent *(发送窗口),发送方发送下一帧
B. 超时可防止丢帧和丢失ACKs
C. 帧和 ACKs没有必要携带序列号
D. 仅当当前帧的 ACK 落入 * received *(接收窗口),发送方发送下一帧
5、在一个有 100 ms (单程) 延迟(用D表示)的 1 Mbps 卫星链路上的发送 10,000 位的消息ARQ(自动重传请求)的最高吞吐量是多少?
A. 50kbps
B. 45 kbps
C. 48kbps
D. 91 kbps
解:
6、若数据链路层的发送窗口尺寸W=4,在发送3号帧、并收到2号帧的确认帧后,发送方还可以连续发送多少个帧?(采用累计确认)(C)
A. 4
B. 2
C. 3
D. 1
7、假设使用Internet校验和(4位字)来发送一个消息1001110010100011.试问校验和的值是什么?
A. 1011
B. 0010
C. 0011
D. 0100
解析: 按照4位1行进行排列,按列相加,低位开始相加(模2加);产生进位,向高位进,最高位产生进位,向最低位循环进位。所得结果再取反码,作为校验和。(A)
8、在选择性重传协议中,当帧序号为4比特,并且发送窗口和接收窗口尺寸相同时,发送窗口的最大尺寸是多少?(B)
A. 4
B. 8
C. 6
D. 15
解:
选择性重传协议中,发送窗口的尺寸不能大过接收窗口的尺寸,而接收窗口的尺寸范围在0到(最大帧序号+1)/2。帧序号为4比特,那最大帧序号=1111(2)=15,接收窗口的最大尺寸=(15+1)/2=8.
9、在回退n帧协议中,当帧序号为5比特,发送窗口的最大尺寸是多少? (C)
A. 29
B. 30
C. 31
D. 32
10、数据链路层采用选择重传协议(SR)传输数据,发送方已发送了0~3号数据帧,现已收到1号帧的确认,而0、2号帧依次超时,则此时需要重传的帧数是多少?(D)
A. 4
B. 1
C. 3
D. 2
11、设待校验的数据为。D8~D1 = 10101011,若采用CRC,且生成多项式为 10011,则其 CRC 码为?(1010)
12、用D算法求A点到其它各点的最短距离。