第4章数据链路层
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WR (a) 0 1 2 3 4 5 6 7 0 1 2
准备接收 0 号帧 WR (b) 0 已收到 1 2 3 4
不允许接收这些帧
5
6
7
0
1
2
准备接收 1 号帧 WR
不允许接收这些帧
(c)
0
1
2
3
4
5
6
7
0
1
2
已收到
准备接收 4 号帧
不允许接收这些帧
滑动窗口的重要特性
只有在接收窗口向前滑动时(与此同时 也发送了确认),发送窗口才有可能向 前滑动。 收发两端的窗口按照以上规律不断地向 前滑动,因此这种协议又称为滑动窗口 协议。 当发送窗口和接收窗口的大小都等于 1 时,就是停止等待协议。
串行线路IP协议(SLIP) 点到点协议(PPP) 现在全世界使用得最多的数据链路层协 议是点对点协议 PPP (Point-to-Point Protocol)。 用户使用拨号电话线接入因特网时,一 般都是使用 PPP 协议。
计算机网络
第 4 章 数据链路层
第 4 章 数据链路层
4.1 4.2 4.3 4.4 4.5 数据链路层的功能 差错控制 基本数据链路层协议 链路控制规程 因特网的数据链路层协议PPP
4.1 数据链路层的功能
链路(link)是一条无源的点到点的物理线路段,中间没 有任何其他的交换结点。 一条链路只是一条通路的一个组成部分。 数据链路(data link) 除了物理线路外,还必须有通信协 议来控制这些数据的传输。若把实现这些协议的硬件 和软件加到链路上,就构成了数据链路。 现在最常用的方法是使用适配器(即网卡)来实现 这些协议的硬件和软件。 一般的适配器都包括了数据链路层和物理层这两层 的功能。
ARQ
FEC
4.2.3 奇偶校验码和循环冗余码
奇偶校验(一个检错码例子)
奇偶位的选取原则是使码字内的1的数目是偶 数(或奇数)。 这种代码的距离为2,因为任何单比特错都会 产生奇偶位不正确的码字。
垂直奇偶校验 水平奇偶校验 水平垂直奇偶校验
4.2.3 奇偶校验码和循环冗余码
0
1
2
3
4
5
6
7
0
1
2
允许发送 5 个帧 WT
不允许发送这些帧
(b)
0
1
2
3
4
5
6
7
0
1
2
已发送
还允许发送 4 个帧
WT
不允许发送这些帧
(c)
0
1
2
3
4
5
6
7
0
1
2
已发送
WT (d) 0 1 2 3 4 5 6
不允许发送这些帧
7
0
1
2
已发送 并已收到确认
已发送
还允许发送 3 个帧
不允许发送这些帧
接收端设置接收窗口
010011111010001010
在此位置删除填入的 0 比特
透明传输
采用零比特填充法就可传送任意组 合的比特流,或者说,就可实现数 据链路层的透明传输。
当连续传输两个帧时,前一个帧的结束 标志字段 F 可以兼作后一帧的起始标志 字段。 当暂时没有信息传送时,可以连续发送 标志字段,使收端可以一直和发端保持 同步。
缓存
帧
帧 数据链路
缓存
数据链路层
停止等待协议 ARQ 的优缺点
优点:比较简单 。 缺点:通信信道的利用率不高,也就是说,信 道还远远没有被数据比特填满。
为了克服这一缺点,就产生了另外两种协议, 即连续 ARQ 和选择重传 ARQ。这将在后面 进一步讨论。
4.3.2 顺序接收管道协议
在接收端只有当收到的数据帧的发送序号落入接收 窗口内才允许将该数据帧收下。 若接收到的数据帧落在接收窗口之外,则一律将其 丢弃。 在连续 ARQ 协议中,接收窗口的大小 WR = 1。
只有当收到的帧的序号与接收窗口一致时才能接收该帧。 否则,就丢弃它。 每收到一个序号正确的帧,接收窗口就向前(即向右方) 滑动一个帧的位置。同时发送对该帧的确认。
4.4 链路控制规程
数据链路控制协议也称链路通信规程,可分为异 步协议和同步协议两大类 异步协议以字符为独立的信息传输单位 同步协议以许多字符或许多比特组织成的数据 块(帧)为传输单位
4.4.1 二进制同步通信协议
IBM公司的二进制同步通信协议BSC是典型的 面向字符的同步通信协议 为了实现链路的管理及同步等功能,除了正常的 传输数据,还需要一些控制字符 BSC协议将在链路上传输的信息分为数据报文 和监控报文两类 监控报文至少包含一个传输控制字符 数据报文由报头和文本组成
4.3.1 停止等待协议
在接收结点: (1) 等待。 (2) 若收到由发送节点发过来的数据帧, 则将其放入数据链路层的接收缓存。 (3) 将接收缓存中的数据帧上交主机。 (4) 向发送结点发一信息,表示数据帧已 经上交给主机。 (5) 转到(1)。
4.3.1 停止等待协议
发送方 主 机 A AP1 接收方 AP2 主 机 B 高层
其他字段
地址字段 A 是 8 bit。 帧检验序列 FCS 字段共 16 bit。所检验 的范围是从地址字段的第一个比特起, 到信息字段的最末一个比特为止。 控制字段 C 共 8 bit,是最复杂的字段。 HDLC 的许多重要功能都靠控制字段来 实现。
4.5 因特网的数据链路层协议
在数据链路层传送的帧中,广泛使用了循环冗 余检验 CRC 的检错技术。 假设待传送的数据 M = 1010001101(共k bit)。我们在M的后面再添加供差错检测用的 n bit 冗余码一起发送。
冗余码的计算
用二进制的模 2 运算进行 2n 乘 M 的运算,这 相当于在 M 后面添加 n 个 0。 得到的 (k + n) bit 的数除以事先选定好的长度 为 (n + 1) bit 的数 P,得出商是 Q 而余数是 R, 余数 R 比除数 P 至少要少1 个比特。
信道固有的随机热噪声 外界特定的冲击噪声 差错控制编码 差错校验
差错检测应包含两个任务
4.2.2 差错控制方法
差错控制方法主要有两类:
自动请求重发(ARQ) 前向纠错(FEC) 接收端进行差错检测,检测到差错就通知发送方重传 只使用检错码,需要双向通信信道,并设置重发缓冲区 接收端不仅检测错误,也纠正差错 使用纠错码,不需要重发缓冲区 编码复杂,实现起来比ARQ困难
连续重发请求方案就是指顺序接收管道协议 发送方可以连续发送数据帧而不必等待前一帧确认 某一帧出差错,则丢弃后续所有帧 发送端和接收端分别设定发送窗口和接收窗口 发送窗口用来对发送端进行流量控制。 发送窗口的大小 WT 代表在还没有收到对方确认信 息的情况下发送端最多可以发送多少个数据帧。
发送窗口 WT (a)
数据链路层的主要功能
(1) 帧同步 (2) 差错控制 (3) 流量控制 (4) 链路管理
帧同步功能
为了向网络层提供服务,数据链路层必须使用 物理层提供给它的服务。物理层所做的工作是 接收一个原始的比特流,并准备把它交给目的 端,物理层并不能进行完好的数据校验,一直 要到数据链路层才进行校验。 对于数据链路层,通常的方法是把比特流分成 离散的帧,并对每一帧计算出校验和,当帧到 达目的地后重新计算校验和,相符无差错,不 相符则有差错。 帧同步的方法:带字符填充的首尾定界符法, 带位填充的首尾标志法、违法编码法、字节计 数法
发送窗口的最大值
当用 n 个比特进行编号时,若接收窗口 的大小为 1,则只有在发送窗口的大小 WT 2n 1时,连续 ARQ 协议才能正确 运行。 例如,当采用 3 bit 编码时,发送窗口的 最大值是 7 而不是 8。
4.3.3 选择重传 ARQ 协议
可加大接收窗口,先收下发送序号不连续但仍处在接 收窗口中的那些数据帧。等到所缺序号的数据帧收到 后再一并送交主机。 选择重传 ARQ 协议可避免重复传送那些本来已经正确 到达接收端的数据帧。 但我们付出的代价是在接收端要设置具有相当容量的 缓存空间。 对于停等协议,发送窗口=1,接收窗口=1 对于连续重发请求,发送窗口>1,接收窗口=1 对于选择重传 ARQ 协议,发送窗口>1,接收窗口>1
4.4.2 高级数据链路控制协议
1974年,IBM 公司推出了面向比特的规程 SDLC (Synchronous Data Link Control)。 后来 ISO 把 SDLC 修改后称为 HDLC (Highlevel Data Link Control),译为高级数据链路 控制,作为国际标准ISO 3309 HDLC的优点:
不依赖于特定字符编码集 数据报文可透明传输 具有较高的传输效率 采用CRC校验
HDLC的操作方式
正常响应方式NRM
传输过程由主站启动,主站负责管理整个链路
传输过程由从站启动 允许任何节点启动传输
异步响应方式ARM
异步平衡方式ABM
HDLC 的帧结构
比特 8 标志 F 8 地址 A 8 控制 C 可变 信息 Info 16 帧检验序列 FCS 8 标志 F
检测出差错
只要得出的余数 R 不为 0,就表示检测到了差 错。 但这种检测方法并不能确定究竟是哪一个或哪 几个比特出现了差错。 一旦检测出差错,就丢弃这个出现差错的帧。 只要经过严格的挑选,并使用位数足够多的除 数 P,那么出现检测不到的差错的概率就很小 很小。
4.3 基本数据链路协议
Baidu Nhomakorabea
停止等待协议 顺序接收管道协议 选择重传协议
4.3.1 停止等待协议
在发送结点: (1) 从主机取一个数据帧。 (2) 将数据帧送到数据链路层的发送缓存。 (3) 将发送缓存中的数据帧发送出去。 (4) 等待确认,启动计时器。 (5) 若收到由接收节点发过来的信息(此信息 的格式与内容可由双方事先商定好),则 从主机取一个新的数据帧,然后转到(2)。
冗余码的计算举例
设 n = 5, P = 110101,模 2 运算的结果是:商 Q = 1101010110, 余数R = 01110。 将余数 R 作为冗余码添加在数据 M 的后面发 送出去,即发送的数据是101000110101110, 或 2nM + R。
循环冗余检验的原理说明
1101010110 ← Q 商 除数 P → 110101 101000110100000 ← 2nM 被除数 110101 111011 110101 111010 110101 111110 110101 101100 110101 110010 110101 01110 ← R 余数
FCS 检验区间 透明传输区间
标志字段 F (Flag) 为 6 个连续 1 加上两 边各一个 0 共 8 bit。在接收端只要找到 标志字段就可确定一个帧的位置。
零比特的填充与删除
数据中某一段比特组合恰好 出现和 F 字段一样的情况 发送端在 5 个连 1 之后 填入 0 比特再发送出去 01001111110001010 会被误认为是 F 字段 010011111010001010 填入 0 比特 在接收端将 5 个连 1 之后 的 0 比特删除,恢复原样
链路管理
链路管理主要用于面向连接的服务 数据链路层连接的建立、维持和释放称 作链路管理
4.2 差错控制
虽然物理层在传输比特时会出现差错,但由于 数据链路层采用了有效的差错控制机制,数据 链路层对上面的网络层就可以提供可靠传输的 服务。 差错检测 差错控制
4.2.1 差错检测
信号在物理信道中传输时,各种因素会造成信号 失真 传输中的差错由噪声引起,噪声有两大类
差错控制
接收方可通过校验帧的差错编码,判断接收到 的帧是否有差错。保证所有的帧最终都能按照 正确的顺序交付给目的机器的网络层 检查差错编码 引入计时器限定接收方发回反馈信息的时间 使用序号对数据帧编号
流量控制
为避免发送方和接收方处理数据的速度差异造 成的问题,引入流量控制功能 停止等待方案 滑动窗口机制
帧检验序列 FCS
在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。 循环冗余检验 CRC 和帧检验序列 FCS并不等 同。 CRC 是一种常用的检错方法,而 FCS 是添 加在数据后面的冗余码。 FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的惟一方法。