第3章 数据链路层

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



tout

重 传
送 主 机
(b) 数据帧出错
重 传
送 主 机
(c) 数据帧丢失
A
B
tout 丢



重!




(d) 确认帧丢失
超时计时器的作用
结点A发送完一个数据帧时,就启动一个 超时计时器(timeout timer)。
计时器又称为定时器。
若到了超时计时器所设置的重传时间 tout 而仍收不到结点 B 的任何确认帧,则结 点 A 就重传前面所发送的这一数据帧。
tf = lf /C = lf /C (s)
(3-1)
发送时间 tf 也就是数据帧的发送时延。
数据帧沿链路传到结点B还要经历一个传播时延 tp。
结点 B 收到数据帧要花费时间进行处理,此时间称为
处理时间 tpr,发送确认帧 ACK 的发送时间为 ta。
停止等待协议中数据帧和确认帧 的发送时间关系
数据链路层在相邻结点的物理连接上为网络层建立、维 持、释放链路连接,并在链路连接上可靠地、正确地传 送链路层协议数据单元(通常称为帧-Frame)
数据链路层的简单模型
主机 H1 向 H2 发送数据
主机 H1
路由器 R1
电话网
局域网
路由器 R2
广域网
路由器 R3
主机 H2
局域网
H1
应用层 运输层 网络层 链路层 物理层
数据链路(data link) 除了物理线路外,还必须 有通信协议来控制这些数据的传输。若把实现 这些协议的硬件和软件加到链路上,就构成了 数据链路。
现在最常用的方法是使用适配器(即网卡)来实现 这些协议的硬件和软件。
一般的适配器都包括了数据链路层和物理层这两层 的功能。
数据链路层传送的是帧
直到收到ACK 才发送下一帧
ACK DATA2
上交主机; 发送应答信息; 转到第一步
ACK
两种情况的对比(传输均无差错)
不需要流量控制
A
B
需要流量控制
A
B
送主机 B
送主机 B
送主机 B


送主机 B
送主机 B 送主机 B
实用的停止等待协议
A
B
送 主 机





(a) 正常情况
四种情况
A
B
A
B
出错
帧的组织结构必须设计成使接收方能够明确的从物理 层收到的比特流中区分出帧的起始与终止,这就是帧 同步要解决的问题。
同步的方法
字符填充的首尾定界符法 比特填充的首尾定界符法
1. 封装成帧
封装成帧(framing)就是在一段数据的前后分别 添加首部和尾部,然后就构成了一个帧。确定 帧的界限。
停止等待协议 ARQ 的优缺点
优点:比较简单 。
缺点:通信信道的利用率不高,也就是说,信 道还远远没有被数据比特填满。
为了克服这一缺点,就产生了另外两种协议, 即连续 ARQ 和选择重传 ARQ。这将在后面 进一步讨论。
例:信道的数据传输速率为4Kbps,传播 延迟时间20ms(未注明往返则指单程)
限制发送方在等待确认前能够发送的数据量
保证发送实体发送的数据不超出接收实 体接收数据的能力
防止缓冲溢出
数据链路层功能 在数据链路层上传输数据帧
?发送方: 以多快的速度发送数据帧,即每帧之间相隔多长时间? 如何确认对方是否收到数据?
?接收方:
是否接收到正确的数据帧?如何告诉发送方? 能及时处理接收到的数据帧吗?
一般可将重传时间选为略大于“从发完 数据帧到收到确认帧所需的平均时间” 。
解决重复帧的问题
使每一个数据帧带上不同的发送序号。每发送 一个新的数据帧就把它的发送序号加 1。
若结点 B 收到发送序号相同的数据帧,就表明 出现了重复帧。这时应丢弃重复帧,因为已经 收到过同样的数据帧并且也交给了主机 B。
ESC SOH
EOT
经过字节填充后发送的数据
3.2.2 比特填充的首尾定界符法
在前面介绍的字符分界法中存在一个大的不足,那就是 它仅依靠8位模式。而事实上,并不是所有的字符编码都 使用8位模式,如UNICODE编码就使用了16位编码方式。
“比特填充的首尾界定符法”是以一组特定的比特模式 (如01111110)来标志一帧的起始与终止,它允许任意 长度的位码,也允许任意每个字符有任意长度的位。
计算机网络
第 3 章 数据链路层
第3章 数据链路层
3.1 数据链路层概述 3.2 帧同步功能 3.3 流量控制功能 3.4 差错检测(重点)
3.1 数据链路层概述
数据链路层是OSI参考模型中的第二层,介乎于物理层和 网络层之间,在物理层所提供的服务的基础上向网络层 提供服务。数据链路层的作用是对物理层传输原始比特 流的功能的加强,将物理层提供的可能出错的物理连接 改造成为逻辑上无差错的数据链路,即使之对网络层表 现为一条无差错的链路。
被接收端当作无效帧而丢弃
解决透明传输问题
发送端的数据链路层在数据中出现控制字符 “SOH”或“EOT”的前面插入一个转义字符 “ESC”(其十六进制编码是 1B)。
字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在将数据送往网 络层之前删除插入的转义字符。
如果转义字符也出现数据当中,那么应在转义字 符前面插入一个转义字符。当接收端收到连续的 两个转义字符时,就删除其中前面的一个。
用字节填充法解决透明传输的问题
帧开始符
SOH
EOT
原始数据
SOH
ESC
帧结束符
SOH
EOT
字节填充
字节填充
字节填充
Hale Waihona Puke Baidu
字节填充
SOH
发送 在前
ESC EOT
ESC SOH
ESC ESC
若接收端收到的PPP帧的数据部分是 0001110111110111110110,问删除发送端加入的零比 特后变成怎样的比特串?
答案:(1) 011011111011111000 (2) 000111011111-11111-110
3.3 流量控制功能(传输层TCP来讲)
流量控制是指一组过程
发送端对出错的数据帧进行重传是自动 进行的,因而这种差错控制体制常简称 为 ARQ (Automatic Repeat reQuest), 直译是自动重传请求,但意思是自动请 求重传。
停止等待协议的定量分析
设 tf 是一个数据帧的发送时间,且数据帧的长度是固 定不变的。显然,数据帧的发送时间 tf 是数据帧的长 度 lf (bit)与数据的发送速率 C (bit/s)之比,即
透明传输
发送端:
若发现要发送的数据中有 5 个连续 1,则立即填入 一个 0。
接收端:
对帧中的数据比特流进行扫描。每当发现 5 个连续 1时,就把这 5 个连续 1 后的一个 0 删除。
零比特填充
信息字段中出现了和 标志字段 F 完全一样
的 8 比特组合
01001111110001010 会被误认为是标志字段 F
发送端在 5 个连续 1 之后 填入 0 比特再发送出去
010011111010001010 发送端填入 0 比特
在接收端把 5 个连 续1 之后的 0 比特删除
010011111010001010 接收端删除填入的 0 比特
例题:
PPP协议使用同步传输技术传送比特串 0110111111111100。试问经过零比特填充后变成怎样 的比特串?
A 数据帧的
发送时间
tf
两个成功发送的
数据帧之间的 tT
最小时间间隔
tout
设置的
重传时间
DATA
DATA
B 传播时延 tp
ACK
处理时间 tpr 确认帧发送时间 ta 传播时延 tp 处理时间 tpr
时间
重传时间
重传时间的作用是:数据帧发送完毕后若经过了这样长的时 间还没有收到确认帧,就重传这个数据帧。
发送端在发送完数据帧时,必须在其发 送缓存中暂时保留这个数据帧的副本。 这样才能在出差错时进行重传。只有确 认对方已经收到这个数据帧时,才可以 清除这个副本。
停止等待协议的要点
实用的 CRC 检验器都是用硬件完成的。 CRC 检验器能够自动丢弃检测到的出错
帧。因此所谓的“丢弃出错帧”,对上 层软件或用户来说都是感觉不到的。
?传输过程: 会出错吗?会丢失数据帧吗?
!解决这些问题,是链路层的主要任务。
!针对这些问题所制定的通信规程就是数据链路层的通信协议。
3.3.1 完全理想化的数据传输
发送方 主 机 AP1 A
缓存


数据链路
接收方
主 AP2 机
B
高层
缓存 数据链路层
完全理想化的数据传输 所基于的两个前提
1: 链路是理想的传输信道,所传送的 任何数据既不会出差错也不会丢失。
,求帧长在什么范围内才使停等协议的信 道利用率达到50%以上。(注:信道利用 率:指信道用于发送数据帧的时间在所有 信道占用时间中的百分比)
解析:已知信道的数据传输速率B=4kbps=4000bps,信道的 单向传播时延R=20ms=0.02s,一帧的帧长为L。在停止等待 协议中,协议忙的时间为数据发送的时间=L/B,协议空闲的 时间为数据发送后等待确认帧返回的时间=2R。则要使停止等 待协议的效率至少为50%,即要求信道利用率μ至少为50%。 因为信道利用率=数据发送时延/(传播时延+数据发送时 延),则有:μ=L/B/(L/B+2R)≥50%可得, L≥2BR=2×4000×0.02=160(b)因此,当帧长大于等于160比 特时,停止等待协议的效率至少为50%。
一个比特可表示 0 和 1 两种不同的序号。
帧的发送序号
数据帧中的发送序号 N(S) 以 0 和 1 交替 的方式出现在数据帧中。
每发一个新的数据帧,发送序号就和上 次发送的不一样。用这样的方法就可以 使收方能够区分开新的数据帧和重传的 数据帧了。
停止等待协议的算法
这里不使用否认帧(实用的数据链路层协议大 都是这样的),而且确认帧带有序号 n。
从层次上来看数据的流动
R1 网络层 链路层 物理层
R2 网络层 链路层 物理层
R3 网络层 链路层 物理层
H2
应用层 运输层 网络层 链路层 物理层
数据链路层的简单模型( 续)
主机 H1 向 H2 发送数据
主机 H1
路由器 R1
电话网
局域网
路由器 R2
广域网
路由器 R3
主机 H2
局域网
H1
应用层 运输层 网络层 链路层 物理层
按照习惯的表示法,ACKn 表示“第 n – 1 号帧 已经收到,现在期望接收第 n 号帧”。
ACK1 表示“0 号帧已收到,现在期望接收的下一 帧是 1 号帧”;
ACK0 表示“1 号帧已收到,现在期望接收的下一 帧是 0 号帧”。
停止等待协议的要点
连续出现相同发送序号的数据帧,表明 发送端进行了超时重传。连续出现相同 序号的确认帧,表明接收端收到了重复 帧。
但此时结点 B 还必须向 A 发送确认帧 ACK, 因为 B 已经知道 A 还没有收到上一次发过去 的确认帧 ACK。
帧的编号问题
任何一个编号系统的序号所占用的比特数一定 是有限的。因此,经过一段时间后,发送序号 就会重复。
序号占用的比特数越少,数据传输的额外开销 就越小。
对于停止等待协议,由于每发送一个数据帧就 停止等待,因此用一个比特来编号就够了。
2: 不管发方以多快的速率发送数据, 收方总是来得及收下,并及时上交主机 。
2 停止等待协议 具有简单的流量控制
假设:链路是理想化的,所传输的数据不会出错也不会丢失。 协议思想:协调、控制接收方、发送方的速度。
发送方
接收方

DATA0


ACK

发出一帧; 等待;
DATA1
等待; 将收到的数据帧
首部和尾部的一个重要作用就是进行帧定界。
帧开始
IP 数据报
帧结束
开始 发送 帧首部
帧的数据部分
MTU 数据链路层的帧长
帧尾部
用控制字符进行帧定界的方法举例
帧开始符
帧结束符
SOH
装在帧中的数据部分
EOT
帧 发送在前
2. 透明传输
出现了“EOT” 完整的帧
发送
数据部分
在前
SOH
EOT
EOT
被接收端 误认为是一个帧
为方便起见,我们设重传时间为 tout = tp + tpr+ ta + tp + tpr
设上式右端的处理时间 tpr 和确认帧的发送时间 ta 都远小于 传播时延 tp,因此可将重传时间取为两倍的传播时延,即 tout = 2tp
两个发送成功的数据帧之间的最小时间间隔是 tT = tf + tout = tf + 2tp
仅从数据链路层观察帧的流动
R1 网络层 链路层 物理层
R2 网络层 链路层 物理层
R3 网络层 链路层 物理层
H2
应用层 运输层 网络层 链路层 物理层
3.1 使用点对点信道的数据链路层
3.1.1 数据链路和帧
链路(link)是一条无源的点到点的物理线 路段,中间没有任何其他的交换结点。
一条链路只是一条通路的一个组成部分。
网络层
数据 链路层
结点 A
IP 数据报 装入

物理层
1010… …0110
结点 B IP 数据报
取出 帧
1010… …0110
数据 链路层
结点 A
发送 帧
链路 (a)
链路 (b)
接收 帧
结点 B
3.1.2 三个基本问题
(1) 封装成帧 (2) 透明传输 (3) 差错控制
3.2 帧同步功能
为了使传输中发生差错后只将出错的有限数据进行重 发,数据链路层将比特流组织成以帧为单位传送。
相关文档
最新文档