数据链路层
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2 数据链路层的服务与功能
作用: 对物理层传输原始比特流功能的加强,将 物理层提供的可能出错的物理连接改造成逻辑 上无差错的数据链路,即使之对网络层表现为 一条无差错的链路。 基本服务:将源机器的网络层数据传输到目的地 机器网络层。 服务类型:无确认、无连接服务;有确认、无连接 服务; 有确认面向连接服务。
3.5 差错控制
停止等待(stop-and停止等待(stop-and-wait)ARQ (stop
采用停-等ARQ的滑动窗口协议存在的问题就是: : 1)停-等方式信道利用率低,尤其在传输距离长 的情况下; 2)双方同时发送初始分组时的同步问题。
3.5 差错控制
如何改进停止-等待方式的效率问题呢? 如何改进停止-等待方式的效率问题呢?
3.3 成帧方法
字符计数法 带字符填充的首尾字符定界法 带位填充的首尾标记定界法 物理层编码违例法
3.3 成帧方法
字符计数法
3.3 成帧方法
以一个特殊字符表征一帧的起始,并以一个 专门字段来标明帧内的字节数。 典型实例是DEC公司的数字数据通信报协议 DDCMP(Digital Data Communications Message Protocol)。
3.4 流量控制与滑动窗口协议
滑动窗口机制( Mechanism) 滑动窗口机制(Sliding Window Mechanism)
• 捎带确认(piggybacking)——将确认暂时延迟以便可以合在 捎带确认(piggybacking) 下一个外发数据帧中一起传输 • 帧序号 0-2n-1 正好填入n位的域 停-等协议使用n=1,序 号是0或1 • 发送窗口:对应于发送方允许发送的帧 • 接收窗口:对应于接收方允许接受的帧 注意: 注意: 发送窗口和接收窗口不必有同样的上下界,不必有同样的大 小。 发送窗口中的序列号代表已经发送,而未被确认的帧,或者是 可以被发送的帧。 接收方窗口对应于可以接受的帧。
01111110 01111101101111100 01111110
填充位 “0”比特插入删除技术 比特插入删除技术
3.3 成帧方法
物理层编码违例法
借用一些违法编码序列来定界帧的起始与终止,局域网 IEEE 802标准中就采用了这种方法。违法编码法不需要任 何填充技术,便能实现数据的透明性。 数据0:低-高电平对 数据1:高-低电平对 曼彻斯特编码
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。
A方 方 B方 方
时 间
滑动窗口大小 发送窗口大小SWS 发送窗口大小SWS =1 接收窗口大小RWS 接收窗口大小RWS =1
ARQ
3.5 差错控制
停止等待(stop-and停止等待(stop-and-wait)ARQ (stop
(a)一方首先发送一个初始化分组时的一般情况 )
(b)双方同时发送一个初始化分组时的特殊情况 )
3.2 数据链路层的服务与功能
3.2 数据链路பைடு நூலகம்的服务与功能
无确认无连接—当错误率很低,恢复留给 高层,对实时通信很适合。绝大多数局域 网采用 有确认无连接—超时重发,使用于不可靠 — 信道,如无线系统 面向连接—为网络层进程提供了可靠的位 流。
3.2 数据链路层的服务与功能
主要功能
链路管理:即数据链路的建立、维护和释放; 成帧:帧的封装、拆装和同步;(透明传输 ) 流量控制 ; 差错控制 ;(顺序控制) 将数据和控制信息分开 ; 寻址
在发送过程还没有察觉已经出错之前, 大量的后继帧就会到达接收方。一个坏帧显然 应当丢弃,但是如何处理后续到来的正确的帧 呢???
3.5 差错控制
现在最常用的方法是使用适配器(即网卡)来实现 这些协议的硬件和软件。 一般的适配器都包括了数据链路层和物理层这两层 的功能。
数据链路层像个数字管道
常常在两个对等的数据链路层之间画出 一个数字管道,而在这条数字管道上传 输的数据单位是帧。
结点 帧 帧 结点
早期的数据通信协议曾叫作通信规程 (procedure)。因此在数据链路层,规程 和协议是同义语。
理想状态下
A B
单工停-等协议
A B
送主机 B 送主机 B 送主机 B 时 间 送主机 B
送主机 B
送主机 B
3.4 流量控制与滑动窗口协议
有噪声信道的单工协议
考虑一下会出错的信道的情况
一个简单的想法: 对上一协议稍作修改——增加一个计时器。发送过程 在发送一个帧后如果数据能够正确到达,接收过程才会 发出一个确认帧。如果受损帧到达,接收方则会丢弃。 一段时间后,发送方时间到,重新发送此帧。
仅从数据链路层观察帧的流动
3.4 流量控制与滑动窗口协议
完全理想化的数据传输
发送方 主 机 A AP1 接收方 AP2 主 机 B 高层
缓存
帧
帧 数据链路
缓存
数据链路层
完全理想化的数据传输 所基于的假定条件
假定 1: 数据采用单工传输; 假定 2:处理时间可以忽略,缓冲空间 无限大 ; 假定3:数据链路层之间的交互信道从 不损坏或丢失帧 。
允许发送方在阻塞之前发送多达w帧,而不 是1帧。这样,只要这个帧个数w选择恰当,使 发送过程在等于往返传输的时间内连续的传输w 帧,而不至于填满窗口。
管道化(pipelining) 管道化(pipelining)技术
3.5 差错控制
如果在不可靠的通信信道上,位于长长 如果在不可靠的通信信道上, 的发送帧流中间的一帧丢失或出错,会 的发送帧流中间的一帧丢失或出错, 出现什么情况呢? 出现什么情况呢?
3.5 差错控制
停止等待(stop-and停止等待(stop-and-wait)ARQ (stop
停止等待ARQ的基础是前面介绍过的停止等待流 量控制技术。源站点传输一个帧之后,必须等待 一个确认(ACK)。在目的站点的确认返回源站点之 前,源站点不能发送其他的数据帧。
3.5 差错控制
停止等待(stop-and停止等待(stop-and-wait)ARQ (stop
同步字符 帧首 数据 帧尾
传输帧 SYN SYN DLE STX A
DLE DLE B
DLE DLE C
DLE ETX
填充字符
3.3 成帧方法
带位填充的首尾标记定界法
帧的起始和结束都用一个特殊的位串“01111110”,称为 标 记(flag)。在面向二进制位的同步串型通信中常使用带 位填充的首尾标志格式,如HDLC 。 帧首 数据 帧尾 透明传输策略:“0”插入法
计算机网络
第 3 章 数据链路层
主要内容
数据链路层的基本概念 数据链路层的服务与功能 成帧方法 流量控制与滑动窗口协议 差错控制 数据链路层协议
3.1 数据链路层的基本概念
链路(link)是一条无源的点到点的物理线 路段,中间没有任何其他的交换结点。
一条链路只是一条通路的一个组成部分。
数据链路(data link) 除了物理线路外,还必须 有通信协议来控制这些数据的传输。若把实现 这些协议的硬件和软件加到链路上,就构成了 数据链路。
Q:帧序号用几位来表示?
确认帧丢失
3.4 流量控制与滑动窗口协议
滑动窗口机制( Mechanism) 滑动窗口机制(Sliding Window Mechanism)
站点B为n个帧分配了缓冲区,因此,B能够接收n个帧,且允 许A在不等待任何确认帧的情况下发送n个帧。 B通过发送一个确认帧来肯定某个帧已经被接收,在这个确 认帧中包含有下一个希望接收到的帧序号。这种机制也可用 于一次确认多个帧。 A维护了一张允许发送的序号列表,而B维护的是它准备接收 的序号的列表。这两张列表都可被认为是帧的窗口(window)。
3.3 成帧方法
带字符填充的首尾字符定界法
用特殊的字符作为帧头和帧尾,起始字符 DLE STX,结 束字符DLE ETX,接收方一旦丢失了帧信息,只要查找DLE STX就可重新确定帧边界。字符填充局限于8位字符和ASCII 字符传送。
3.3 成帧方法
带字符填充的首尾字符定界法
透明传输策略:当数据中含有DLE时,在DLE前 面加上DLE
这里既不需要差错控制也不需要流量控制 的限制 。
3.4 流量控制与滑动窗口协议
一个单工的停- 一个单工的停-等协议
假定 1: 数据采用单工传输; 假定 2:处理时间不可忽略,缓冲空间有限 ; 假定3:数据链路层之间的交互信道从不损坏 或丢失帧 。
我们要处理的问题主要是:如何防止发送过程发送数 据过快,使接收过程来不及处理。
主机 H1 电话网 H1 应用层 运输层 网络层 链路层 物理层 R1 网络层 链路层 物理层 R2 网络层 链路层 物理层 R3 网络层 链路层 物理层 路由器 R1 局域网 路由器 R2 广域网 路由器 R3 局域网 H2 应用层 运输层 网络层 链路层 物理层 主机 H2
从层次上来看数据的流动
数据链路层的简单模型 ( 续)
主机 H1 向 H2 发送数据
主机 H1 电话网 H1 应用层 运输层 网络层 链路层 物理层 R1 网络层 链路层 物理层 R2 网络层 链路层 物理层 R3 网络层 链路层 物理层 路由器 R1 局域网 路由器 R2 广域网 路由器 R3 局域网 H2 应用层 运输层 网络层 链路层 物理层 主机 H2
可行吗? 可行吗?
NO!!
为什么? 为什么?
3.4 流量控制与滑动窗口协议
有噪声信道的单工协议
A B
tout 重 传
丢 失 !
送 主 机 丢弃 还是 接收 ??
致命弱点——接收方 接收方 致命弱点 无法判断一个分组是 新的分组还是重复分 组。 解决方案——增加帧序 号字段以区分重复帧。 号字段以区分重复帧。
3.4 流量控制与滑动窗口协议
流量控制
基本方法: 基本方法:
基于反馈的流控制 接收方给发送方送回消息,告诉发送方它的状态 基于速率的流控制 限制了发送方传输数据的速率,无需利用接收方的反馈信息
3.4 流量控制与滑动窗口协议
完全理想化的数据传输
先研究一下数据链路层的模型。
数据链路层的简单模型
主机 H1 向 H2 发送数据
发送窗 口
接收窗 口
图4.8 一个一位的滑动窗口 后指针 发送窗口 前指针 后指针 接收窗口 前指针 图4.9 窗口尺寸>1时的滑动窗口协议运行
3.5 差错控制
自动重复请求(ARQ)是应用最广泛的一种差 错控制技术,包括: 肯定确认。目的站为成功接收到的、没有差错的帧 返回一个肯定确认。 超时后重传。在预定时间没有收到确认的情况下, 源站点会重新传输一个帧。 否认与重传。目的站点为检测到差错的帧返回一个 否认。源站点重新传输这些帧。
3.4 流量控制与滑动窗口协议
一个单工的停- 一个单工的停-等协议
在发送结点: (1) 从主机取一个数据帧。 (2) 将数据帧送到数据链路层的发送缓存。 (3) 将发送缓存中的数据帧发送出去。 (4) 等待。 (5) 若收到由接收结点发过来的信息(此信息 的格式与内容可由双方事先商定好),则 从主机取一个新的数据帧,然后转到(2)。
3.4 流量控制与滑动窗口协议
流量控制
流量控制(Flow Control)规定了对帧进行发送和跟踪 的方法,以及该站点如何进行错误控制。决定帧在什么时 候可以或不可以被发送,什么时候这些帧可以被第二次发 送。流量控制协议确保所有的相关帧能够精确和有序地到 达目的地。 典型情况下,流量控制是发送方、接收方某些连续层次 的多个实体交互作用的结果,例如OSI模型中数据链路层和 网络层的交互关系。流量控制也存在于较高层协议如TCP, 实际上流量控制存在于不同的模型以及不同的层之间。
3.4 流量控制与滑动窗口协议
一个单工的停- 一个单工的停-等协议
在接收结点: (1) 等待。 (2) 若收到由发送结点发过来的数据帧, 则将其放入数据链路层的接收缓存。 (3) 将接收缓存中的数据帧上交主机。 (4) 向发送结点发一信息,表示数据帧已 经上交给主机。 (5) 转到(1)。
两种情况的对比(传输均无差错)