如果数据部分存在与帧定界标识符相同的字节该怎么办?很显然这样不能实现透明传输。所以数据链路层针对不同的链路(同步,异步)采用不同的方式来解决这个问题。2、差错检测
- 面向字节的链路:字节填充法,添加转义字符,表示后面的并不是帧定界标识符
- 面向比特的链路:比特填充法,每 5 个1后面添加一个0,不允许他出现 “01111110”
- 循环冗余校验 CRC
注:
- 这里的除法在计算时需要做异或运算。和普通除法不一样。
- 最后检查余数:余数位数与生成多项式最高次数相同,如果位数不够,则在余数前补0凑够。
差错检测的特点:3、可靠传输
- 3.1停止-等待协议(Stop-and-Wait)(自动请求重传协议)
注:
- 为使接收方判断收到分组是否重复,给分组编号,由于停等协议的特性,只需一个比特编号
- 为使发送方判断收到ACK是否重复,给ACK编号
- 数据链路层一般不会有ACK迟到现象,故可不用给ACK编号
- 数据链路层点对点往返时间好确定,故重传时间好设,但是运输层往返时间就不好确定了
- 停止-等待协议信道利用率:
这种协议一般信道利用率很低
- 3.2 回退N帧协议 GBN(Go-Back-N)
- GBN是一种连续ARQ协议,他也称为滑动窗口协议。
- 当网络质量不好时,信道利用率不如停止等待协议。
- 累积确认:当接收到一个分组时,不必发送该分组的确认信号,可以直接发送接收到的最后一个分组的确认信号,可以表示前面的分组也正确接收。
- 滑动窗口大小>=2^n - 1时,接收方无法分辨新旧数据分组。
- 3.3 选择重传协议 SR(Selective Request)
- 不使用累积确认,否则无法实现选择重传
- 接收到确认分组后,要给相应的分组标上 收到确认 ,防止其超时重发。
- 滑动窗口大小不能超过2^(n-1),否则无法区分新旧分组。
4、点对点协议 PPP(Point-to-Point Protocol)
- 是目前使用最广泛的点对点数据链路层协议
- 4.1 概述:
- 4.2 帧格式:
- 4.3 实现透明传输
-
- 4.3.1 字节填充法
- 4.3.1 字节填充法
把特殊字节转变成2字节序列:
- ①:特殊字节后面插入0x7D
- ②:特殊字节自身 加(或减) 0x20
-
- 4.3.2 比特填充法
只要有连续的5个1,就立即填充一个0.
- 4.3.2 比特填充法
- 4.4 PPP的差错检测
- 帧尾部有2字节大小的校验位 FCS,改值通过循环冗余校验(CRC)计算。
- 接收方利用FCS判断每个帧是否正确,正确就收下;错误,就丢弃该帧,不请求重发。
- 所以使用PPP的数据链路层向上提供不可靠传输服务。
- 4.5 PPP的工作流程
- 5.1 基本概念 和 框架
- 目前,点对点链路和链路层交换机的交换式局域网在有线领域完全取代共享式局域网,由于无线信道的广播天性,无线局域网仍使用共享媒体技术。
- 5.2 静态划分信道
复用:把单一媒体的频带资划分为多个子信道,子信道相互独立,互不干扰,每个子信道占用该媒体资源的一部分独立传输信息。
-
- 5.2.1 频分复用 FDM(Frequency Division Multiple)
-
- 5.2.2 时分复用 TDM(Time Division Multiple)
-
- 5.2.3 波分复用 WDM
-
- 5.2.4 码分复用 CDM(Code Division Multiple)
多址:动态分配信道给用户,用户暂时占用信道。
特点:同时使用同样的频带进行通信。
原理:
规格化内积: 两个序列对应项相乘再相加,再÷分量的数量。 有如下结论:实际应用举例:
例题:
- 5.3 动态接入控制——随机接入
- 采用CSMA/CD协议即可解决下图中出现的问题。
-
- 5.3.1 多址接入 载波监听 碰撞检测 都是什么意思?
- 96比特时间:发送96比特所耗费的时间(发送时延+传播时延),是帧间最小时间,可以理解为“见缝插帧”,只要发现总线上没传输数据了,就开始发送。所以通过这个策略并不能知道总线是否空闲,可能总线正在被占用,只是数据还没传到这。
- 强化碰撞:发送帧的站点检测到碰撞后,立即停止发送当前帧,但是要继续发送32比特或48比特的人为干扰信号,以便有足够长的信号 能使所有站点检测到碰撞。
-
- 5.3.2 争用期(碰撞窗口)
- 极端情况:主机A的信号即将传到D,此时D的监听时间刚好够96比特时间,D认为主线空闲也开始发送数据,D一发就产生碰撞,A辛辛苦苦把数据传到这么远,耗费了最长的时间(2τ),白费力气。
- 争用期:先占用总线的主机和其他主机争抢总线的时间。在2τ的时间都没发生碰撞说明抢赢了,能顺利发送。反之你抢输了。
-
- 5.3.3 最小帧长
- 情景描述:A发的帧太短了,发完之后就不管了(也没法管,毕竟传完了,不用监听总线了),然后C监听到了96比特时间以后也开始发,然后就发生碰撞了,D收到了发生碰撞的数据丢掉,但是A也不知道发生了碰撞,不会重发,这不是出问题了吗。
- 很显然,以太网的帧长不能太短。
- 这里给出最小帧长的计算公式:
- 理解这个公式:争用期2τ是两主机之间传播时延的二倍,乘以数据传输速率就是这段时间能发送的比特数量。只要在传输这么多比特的期间都不发生碰撞,那么之后就再不会碰撞了,这就是最小帧长。
-
- 5.3.4 最大帧长
- 帧太长的话,一来别的主机发送不了,二来接收方可能接收不下。所以也会规定最大帧长。
-
- 5.3.5 计算退避时间——截断二进制指数退避算法
- 老发生碰撞,你可能离目的主机太远了,人家有离得近的,就多等会吧,先让别人先传。
-
- 5.3.6 信道利用率
- T0:这段是从开始到最后一个比特从发送方发出所需的时间。
- τ:τ则是最后一个比特从发送方到接收方所花的时间。
-
- 5.3.7 CSMA/CD协议流程总结
发送流程
接收流程
-
- 5.3.8 习题
学方法:写公式,求出最小数据帧与站点之间距离的关系式



