当前位置:文档之家› 数据链路层

数据链路层


3.5 差错控制
停止等待(stop-and停止等待(stop-and-wait)ARQ (stop
停止等待ARQ的基础是前面介绍过的停止等待流 量控制技术。源站点传输一个帧之后,必须等待 一个确认(ACK)。在目的站点的确认返回源站点之 前,源站点不能发送其他的数据帧。
3.5 差错控制
停止等待(stop-and停止等待(stop-and-wait)ARQ (stop
3.5 差错控制
ARQ所起的作用就是使不可靠的数据链路变得 可靠。有三种ARQ已经形成标准。 停止等待(stop-and-wait)ARQ。 停止等待(stop-and-wait)ARQ。 (stop 返回N (go-back-N)ARQ。 返回N帧(go-back-N)ARQ。 选择拒绝(selective repeat)ARQ。 选择拒绝(selective repeat)ARQ。
3.3 成帧方法
带字符填充的首尾字符定界法
用特殊的字符作为帧头和帧尾,起始字符 DLE STX,结 束字符DLE ETX,接收方一旦丢失了帧信息,只要查找DLE STX就可重新确定帧边界。字符填充局限于8位字符和ASCII 字符传送。
3.3 成帧方法
带字符填充的首尾字符定界法
透明传输策略:当数据中含有DLE时,在DLE前 面加上DLE
3.3 成帧方法
字符计数法 带字符填充的首尾字符定界法 带位填充的首尾标记定界法 物理层编码违例法
3.3 成帧方法
字符计数法
3.3 成帧方法
以一个特殊字符表征一帧的起始,并以一个 专门字段来标明帧内的字节数。 典型实例是DEC公司的数字数据通信报协议 DDCMP(Digital Data Communications Message Protocol)。
这里既不需要差错控制也不需要流量控制 的限制 。
3.4 流量控制与滑动窗口协议
一个单工的停- 一个单工的停-等协议
假定 1: 数据采用单工传输; 假定 2:处理时间不可忽略,缓冲空间有限 ; 假定3:数据链路层之间的交互信道从不损坏 或丢失帧 。
我们要处理的问题主要是:如何防止发送过程发送数 据过快,使接收过程来不及处理。
仅从数据链路层观察帧的流动
3.4 流量控制与滑动窗口协议
完全理想化的数据传输
发送方 主 机 A AP1 接收方 AP2 主 机 B 高层
缓存

帧 数据链路
缓存
数据链路层
完全理想化的数据传输 所基于的假定条件
假定 1: 数据采用单工传输; 假定 2:处理时间可以忽略,缓冲空间 无限大 ; 假定3:数据链路层之间的交互信道从 不损坏或丢失帧 。
3.4 流量控制与滑动窗口协议
滑动窗口机制( Mechanism) 滑动窗口机制(Sliding Window Mechanism)
• 捎带确认(piggybacking)——将确认暂时延迟以便可以合在 捎带确认(piggybacking) 下一个外发数据帧中一起传输 • 帧序号 0-2n-1 正好填入n位的域 停-等协议使用n=1,序 号是0或1 • 发送窗口:对应于发送方允许发送的帧 • 接收窗口:对应于接收方允许接受的帧 注意: 注意: 发送窗口和接收窗口不必有同样的上下界,不必有同样的大 小。 发送窗口中的序列号代表已经发送,而未被确认的帧,或者是 可以被发送的帧。 接收方窗口对应于可以接受的帧。
3.2 数据链路层的服务与功能
3.2 数据链路层的服务与功能
无确认无连接—当错误率很低,恢复留给 高层,对实时通信很适合。绝大多数局域 网采用 有确认无连接—超时重发,使用于不可靠 — 信道,如无线系统 面向连接—为网络层进程提供了可靠的位 流。
3.2 数据链路层的服务与功能
主要功能
链路管理:即数据链路的建立、维护和释放; 成帧:帧的封装、拆装和同步;(透明传输 ) 流量控制 ; 差错控制 ;(顺序控制) 将数据和控制信息分开 ; 寻址
3.4 流量控制与滑动窗口协议
流量控制
基本方法: 基本方法:
基于反馈的流控制 接收方给发送方送回消息,告诉发送方它的状态 基于速率的流控制 限制了发送方传输数据的速率,无需利用接收方的反馈信息
3.4 流量控制与滑动窗口协议
完全理想化的数据传输
先研究一下数据链路层的模型。
数据链路层的简单模型
主机 H1 向 H2 发送数据
A方 方 B方 方
时 间
滑动窗口大小 发送窗口大小SWS 发送窗口大小SWS =1 接收窗口大小RWS 接收窗口大小RWS =1
ARQ
3.5 差错控制
停止等待(stop-and停止等待(stop-and-wait)ARQ (stop
(a)一方首先发送一个初始化分组时的一般情况 )
(b)双方同时发送一个初始化分组时的特殊情况 )
3.4 流量控制与滑动窗口协议
流量控制
流量控制(Flow Control)规定了对帧进行发送和跟踪 的方法,以及该站点如何进行错误控制。决定帧在什么时 候可以或不可以被发送,什么时候这些帧可以被第二次发 送。流量控制协议确保所有的相关帧能够精确和有序地到 达目的地。 典型情况下,流量控制是发送方、接收方某些连续层次 的多个实体交互作用的结果,例如OSI模型中数据链路层和 网络层的交互关系。流量控制也存在于较高层协议如TCP, 实际上流量控制存在于不同的模型以及不同的层之间。
3.4 流量控制与滑动窗口协议
一个单工的停- 一个单工的停-等协议
在发送结点: (1) 从主机取一个数据帧。 (2) 将数据帧送到数据链路层的发送缓存。 (3) 将发送缓存中的数据帧发送出去。 (4) 等待。 (5) 若收到由接收结点发过来的信息(此信息 的格式与内容可由双方事先商定好),则 从主机取一个新的数据帧,然后转到(2)。
3.5 差错控制
停止等待(stop-and停止等待(stop-and-wait)ARQ (stop
采用停-等ARQ的滑动窗口协议存在的问题就是: : 1)停-等方式信道利用率低,尤其在传输距离长 的情况下; 2)双方同时发送初始分组时的同步问题。
3.5 差错控制
如何改进停止-等待方式的效率问题呢? 如何改进停止-等待方式的效率问题呢?
一个一位的滑动窗口 后指针 发送窗口 前指针 后指针 接收窗口 前指针 图4.9 窗口尺寸>1时的滑动窗口协议运行
3.5 差错控制
自动重复请求(ARQ)是应用最广泛的一种差 错控制技术,包括: 肯定确认。目的站为成功接收到的、没有差错的帧 返回一个肯定确认。 超时后重传。在预定时间没有收到确认的情况下, 源站点会重新传输一个帧。 否认与重传。目的站点为检测到差错的帧返回一个 否认。源站点重新传输这些帧。
3.4 流量控制与滑动窗口协议
一个单工的停- 一个单工的停-等协议
在接收结点: (1) 等待。 (2) 若收到由发送结点发过来的数据帧, 则将其放入数据链路层的接收缓存。 (3) 将接收缓存中的数据帧上交主机。 (4) 向发送结点发一信息,表示数据帧已 经上交给主机。 (5) 转到(1)。
两种情况的对比(传输均无差错)
可行吗? 可行吗?
NO!!
为什么? 为什么?
3.4 流量控制与滑动窗口协议
有噪声信道的单工协议
A B
tout 重 传
丢 失 !
送 主 机 丢弃 还是 接收 ??
致命弱点——接收方 接收方 致命弱点 无法判断一个分组是 新的分组还是重复分 组。 解决方案——增加帧序 号字段以区分重复帧。 号字段以区分重复帧。
3.2 数据链路层的服务与功能
作用: 对物理层传输原始比特流功能的加强,将 物理层提供的可能出错的物理连接改造成逻辑 上无差错的数据链路,即使之对网络层表现为 一条无差错的链路。 基本服务:将源机器的网络层数据传输到目的地 机器网络层。 服务类型:无确认、无连接服务;有确认、无连接 服务; 有确认面向连接服务。
允许发送方在阻塞之前发送多达w帧,而不 是1帧。这样,只要这个帧个数w选择恰当,使 发送过程在等于往返传输的时间内连续的传输w 帧,而不至于填满窗口。
管道化(pipelining) 管道化(pipelining)技术
3.5 差错控制
如果在不可靠的通信信道上,位于长长 如果在不可靠的通信信道上, 的发送帧流中间的一帧丢失或出错,会 的发送帧流中间的一帧丢失或出错, 出现什么情况呢? 出现什么情况呢?
在发送过程还没有察觉已经出错之前, 大量的后继帧就会到达接收方。一个坏帧显然 应当丢弃,但是如何处理后续到来的正确的帧 呢???
3.5 差错控制
理想状态下
A B
单工停-等协议
A B
送主机 B 送主机 B 送主机 B 时 间 送主机 B
送主机 B
送主机 B
3.4 流量控制与滑动窗口协议
有噪声信道的单工协议
考虑一下会出错的信道的情况
一个简单的想法: 对上一协议稍作修改——增加一个计时器。发送过程 在发送一个帧后如果数据能够正确到达,接收过程才会 发出一个确认帧。如果受损帧到达,接收方则会丢弃。 一段时间后,发送方时间到,重新发送此帧。
计算机网络
第 3 章 数据链路层
主要内容
数据链路层的基本概念 数据链路层的服务与功能 成帧方法 流量控制与滑动窗口协议 差错控制 数据链路层协议
3.1 数据链路层的基本概念
链路(link)是一条无源的点到点的物理线 路段,中间没有任何其他的交换结点。
一条链路只是一条通路的一个组成部分。
数据链路(data link) 除了物理线路外,还必须 有通信协议来控制这些数据的传输。若把实现 这些协议的硬件和软件加到链路上,就构成了 数据链路。
01111110 01111101101111100 01111110
填充位 “0”比特插入删除技术 比特插入删除技术
相关主题