第三次课数据链路层3.5_第1页
第三次课数据链路层3.5_第2页
第三次课数据链路层3.5_第3页
第三次课数据链路层3.5_第4页
第三次课数据链路层3.5_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机网络第 3 章 数据链路层第 3 章 数据链路层*3.1 数据链路层的基本概念*3.2 停止等待协议3.2.1 完全理想化的数据传输3.2.2 具有最简单流量控制的数据链路层协议3.2.3 实用的停止等待协议3.2.4 循环冗余检验的原理3.2.5 停止等待协议的算法3.2.6 停止等待协议的定量分析第 3 章 数据链路层(续)*3.3 连续 ARQ 协议3.3.1 连续 ARQ 协议的工作原理3.3.2 连续 ARQ 协议的吞吐量3.3.3 滑动窗口的概念3.3.4 信道利用率与最佳帧长3.4 选择重传 ARQ 协议第 3 章 数据链路层(续)*3.5 面向比特的链路层协议 HDLC3

2、.5.1 HDLC 协议概述3.5.2 HDLC 的帧结构*3.6 因特网的点对点协议 PPP 3.6.1 PPP 协议的工作原理 3.6.2 PPP 协议的帧格式 3.6.3 PPP 协议的工作状态3.1 数据链路层的基本概念 v链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。v数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层

3、的功能。 数据链路层像个数字管道 v常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。v早期的数据通信协议曾叫作通信规程(procedure)。因此在数据链路层,规程和协议是同义语。 结点结点帧帧数据链路层的主要功能(1) 帧同步 (2)差错控制(3) 流量控制(4) 链路管理(5)寻址功能(6) 区分数据信息与控制信息(7) 透明传输3.2 停止等待协议v先研究一下数据链路层的模型。数据链路层的简化模型局域网广域网主机 H1主机 H2路由器 R1路由器 R2路由器 R3电话网局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输

4、层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2从层次上来看数据的流动数据链路层的简化模( 续)局域网广域网主机 H1主机 H2路由器 R1路由器 R2路由器 R3电话网局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2仅从数据链路层观察帧的流动3.2.1 完全理想化的数据传输数据链路层主机 A缓存主机 B数据链路AP2AP1缓存发送方接收方帧高层帧完全理想化的数据传输所基于的两个假定 v假定 1: 链路是理想的传输信道,所传送的任何数

5、据既不会出差错也不会丢失。v假定 2: 不管发方以多快的速率发送数据,收方总是来得及收下,并及时上交主机。这个假定就相当于认为:接收端向主机交付数据的速率永远不会低于发送端发送数据的速率。 3.2.2 具有最简单流量控制的数据链路层协议v现在去掉上述的第二个假定。但是,仍然保留第一个假定,即主机 A 向主机 B传输数据的信道仍然是无差错的理想信道。然而现在不能保证接收端向主机交付数据的速率永远不低于发送端发送数据的速率。v由收方控制发方的数据流,乃是计算机网络中流量控制的一个基本方法。 具有最简单流量控制的数据链路层协议算法在发送结点: (1) 从主机取一个数据帧。 (2) 将数据帧送到数据链

6、路层的发送缓存。 (3) 将发送缓存中的数据帧发送出去。 (4) 等待。 (5) 若收到由接收结点发过来的信息(此信息 的格式与内容可由双方事先商定好),则 从主机取一个新的数据帧,然后转到(2)。具有最简单流量控制的数据链路层协议算法(续)在接收结点: (1) 等待。 (2) 若收到由发送结点发过来的数据帧, 则将其放入数据链路层的接收缓存。 (3) 将接收缓存中的数据帧上交主机。 (4) 向发送结点发一信息,表示数据帧已 经上交给主机。 (5) 转到(1)。两种情况的对比(传输均无差错)ABDATADATADATADATA送主机 B送主机 B送主机 B送主机 BABDATA送主机 BDAT

7、A送主机 B时间不需要流量控制需要流量控制3.2.3 实用的停止等待协议时间ABDATA0送主机ACKDATA1送主机ACK(a) 正常情况ABDATA0DATA0送主机ACK(c) 数据帧丢失重传tout丢失 !ABDATA0送主机ACKDATA0丢弃ACK(d) 确认帧丢失重传tout丢失 !ABDATA0NAKDATA0送主机ACK(b) 数据帧出错重传出错四种情况超时计时器的作用v结点A发送完一个数据帧时,就启动一个超时计时器(timeout timer)。计时器又称为定时器。v若到了超时计时器所设置的重传时间 tout而仍收不到结点 B 的任何确认帧,则结点 A 就重传前面所发送的这

8、一数据帧。v一般可将重传时间选为略大于“从发完数据帧到收到确认帧所需的平均时间”。 解决重复帧的问题 v使每一个数据帧带上不同的发送序号。每发送一个新的数据帧就把它的发送序号加 1。 v若结点 B 收到发送序号相同的数据帧,就表明出现了重复帧。这时应丢弃重复帧,因为已经收到过同样的数据帧并且也交给了主机 B。v但此时结点 B 还必须向 A 发送确认帧 ACK,因为 B 已经知道 A 还没有收到上一次发过去的确认帧 ACK。 帧的编号问题 v任何一个编号系统的序号所占用的比特数一定是有限的。因此,经过一段时间后,发送序号就会重复。 v序号占用的比特数越少,数据传输的额外开销就越小。 v对于停止等

9、待协议,由于每发送一个数据帧就停止等待,因此用一个比特来编号就够了。一个比特可表示 0 和 1 两种不同的序号。 帧的发送序号 v数据帧中的发送序号 N(S) 以 0 和 1 交替的方式出现在数据帧中。v每发一个新的数据帧,发送序号就和上次发送的不一样。用这样的方法就可以使收方能够区分开新的数据帧和重传的数据帧了。 可靠传输 v虽然物理层在传输比特时会出现差错,但由于数据链路层的停止等待协议采用了有效的检错重传机制,数据链路层对上面的网络层就可以提供可靠传输的服务。 3.2.4 循环冗余检验的原理 v在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术。帧检验序列 FCS v在数

10、据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。v循环冗余检验 CRC 和帧检验序列 FCS并不等同。CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的惟一方法。 检测出差错 v只要得出的余数 R 不为 0,就表示检测到了差错。v但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。v一旦检测出差错,就丢弃这个出现差错的帧。v只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。 使用多项式表示vP=110101,用多项式

11、表示为v在接收端进行的运算可以写为:v广泛使用的P(X)有:1)(245XXXXP)()()(XPXRXMXn11621516XXXCRC151216XXXCCITTCRC132245781011121622232632XXXXXXXXXXXXXXCRC应当注意 v仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept)。v“无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。v也就是说:“凡是接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。v要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认

12、和重传机制。 3.2.5 停止等待协议的算法v这里不使用否认帧(实用的数据链路层协议大都是这样的),而且确认帧带有序号 n。v按照习惯的表示法,ACKn 表示“第 n 1 号帧已经收到,现在期望接收第 n 号帧”。ACK1 表示“0 号帧已收到,现在期望接收的下一帧是 1 号帧”;ACK0 表示“1 号帧已收到,现在期望接收的下一帧是 0 号帧”。 在发送结点 (1) 从主机取一个数据帧,送交发送缓存。(2) V(S)0。 发送状态变量V(S)初始化(3) N(S)V(S)。将发送状态变量值写入数据帧中的发送序号N(S)(4) 将发送缓存中的数据帧发送出去。 (5) 设置超时计时器。(6) 等

13、待。 等待以下(7)和(8)这两个事件中最先出现的一个(7) 收到确认帧 ACKn, 若 n = 1 V(S),则: 从主机取一个新的数据帧,放入发送缓存; V(S)1 V(S),转到 (3)。 否则,丢弃这个确认帧,转到(6)。已发送的数据帧没有被收方确认 8) 若超时计时器时间到,则转到(4)。已发送的数据帧丢失,重传!在接收结点 (1) V(R)0。初始化,数值等于欲接收的数据帧的发送序号(2) 等待。(3) 收到一个数据帧; 若 N(S) = V(R),则执行(4);收到正确序号的数据帧 否则丢弃此数据帧,然后转到(6)。序号不正确,丢弃重复帧(4) 将收到的数据帧中的数据部分送交上层

14、软件 (也就是数据链路层模型中的主机)。(5) V(R)1 V(R)。更新接收状态,准备接受下一个数据帧(6) nV(R); 发送确认帧 ACKn,转到(2)。 停止等待协议的要点v只有收到序号正确的确认帧 ACKn 后,才更新发送状态变量 V(S)一次,并发送新的数据帧。v接收端接收到数据帧时,就要将发送序号 N(S) 与本地的接收状态变量 V(R) 相比较。若二者相等就表明是新的数据帧,就收下,并发送确认。否则为重复帧,就必须丢弃。但这时仍须向发送端发送确认帧 ACKn,而接收状态变量 V(R) 和确认序号 n 都不变。 停止等待协议的要点(续)v连续出现相同发送序号的数据帧,表明发送端进

15、行了超时重传。连续出现相同序号的确认帧,表明接收端收到了重复帧。 v发送端在发送完数据帧时,必须在其发送缓存中暂时保留这个数据帧的副本。这样才能在出差错时进行重传。只有确认对方已经收到这个数据帧时,才可以清除这个副本。 停止等待协议的要点(续)v实用的 CRC 检验器都是用硬件完成的。vCRC 检验器能够自动丢弃检测到的出错帧。因此所谓的“丢弃出错帧”,对上层软件或用户来说都是感觉不到的。v发送端对出错的数据帧进行重传是自动进行的,因而这种差错控制体制常简称为 ARQ (Automatic Repeat reQuest),直译是自动重传请求,但意思是自动请求重传。 3.2.6 停止等待协议的定

16、量分析v设 tf 是一个数据帧的发送时间,且数据帧的长度是固定不变的。显然,数据帧的发送时间 tf 是数据帧的长度 lf (bit)与数据的发送速率 C (bit/s)之比,即 tf = lf /C = lf /C (s) (3-1) v发送时间 tf 也就是数据帧的发送时延。v数据帧沿链路传到结点B还要经历一个传播时延 tp。v结点 B 收到数据帧要花费时间进行处理,此时间称为处理时间 tpr,发送确认帧 ACK 的发送时间为 ta。 停止等待协议中数据帧和确认帧的发送时间关系 ABDATADATAACK传播时延 tp处理时间 tpr确认帧发送时间 ta传播时延 tp处理时间 tprtT时间

17、两个成功发送的数据帧之间的最小时间间隔数据帧的发送时间tf设置的重传时间tout重传时间 v重传时间的作用是:数据帧发送完毕后若经过了这样长的时间还没有收到确认帧,就重传这个数据帧。 v为方便起见,我们设重传时间为 tout = tp + tpr+ ta + tp + tpr (3-2) v设上式右端的处理时间 tpr 和确认帧的发送时间 ta 都远小于传播时延 tp,因此可将重传时间取为两倍的传播时延,即 tout = 2tp (3-3)停止等待协议 ARQ 的优缺点 v优点:比较简单 。v缺点:通信信道的利用率不高,也就是说,信道还远远没有被数据比特填满。v为了克服这一缺点,就产生了另外两

18、种协议,即连续 ARQ 和选择重传 ARQ。这将在后面进一步讨论。 3.3 连续 ARQ 协议3.3.1 连续 ARQ 协议的工作原理 v在发送完一个数据帧后,不是停下来等待确认帧,而是可以连续再发送若干个数据帧。v如果这时收到了接收端发来的确认帧,那么还可以接着发送数据帧。v由于减少了等待时间,整个通信的吞吐量就提高了。 连续 ARQ 协议的工作原理 参见问题311DATA0DATA1DATA2DATA3DATA4DATA5重传 DATA2重传 DATA3ACK1ACK2ACK1 确认 DATA0ACK2 确认 DATA1DATA2 出错,丢弃DATA3 不按序,丢弃,重传 ACK2DATA

19、4 不按序,丢弃,重传 ACK2DATA5 不按序,丢弃,重传 ACK2ACK3ACK3 确认 DATA2ACK4 确认 DATA3ACK4重传 DATA5重传 DATA4超时重传时间ABtout送交主机送交主机?ACK2ACK2ACK2需要注意: (1) 接收端只按序接收数据帧。虽然在有差错的 2号帧之后接着又收到了正确的 3 个数据帧,但接收端都必须将这些帧丢弃,因为在这些帧前面有一个 2 号帧还没有收到。虽然丢弃了这些不按序的无差错帧,但应重复发送已发送过的最后一个确认帧(防止确认帧丢失)。(2) ACK1 表示确认 0 号帧 DATA0,并期望下次收到 1 号帧;ACK2 表示确认 1

20、 号帧 DATA1,并期望下次收到 2 号帧。依此类推。 需要注意: (3) 结点 A 在每发送完一个数据帧时都要设置该帧的超时计时器。如果在所设置的超时时间内收到确认帧,就立即将超时计时器清零。但若在所设置的超时时间到了而未收到确认帧,就要重传相应的数据帧(仍需重新设置超时计时器)。 在等不到 2 号帧的确认而重传 2 号数据帧时,虽然结点 A 已经发完了 5 号帧,但仍必须向回走,将 2号帧及其以后的各帧全部进行重传。连续 ARQ 又称为Go-back-N ARQ,意思是当出现差错必须重传时,要向回走 N 个帧,然后再开始重传。 需要注意: (4) 以上讲述的仅仅是连续 ARQ 协议的工作

21、原理。协议在具体实现时还有许多的细节。例如,用一个计时器就可实现相当于 N 个独立的超时计时器的功能。 可以看出,连续ARQ协议一方面因连续发送数据帧而提高了信道的利用率,但在重传时又必须把原来已传送正确的数据帧进行重传。由此可见,若传输信道的传输质量很差因而误码率大时,连续ARQ协议不一定优于停止等待协议。 3.3.3 滑动窗口的概念v发送端和接收端分别设定发送窗口和接收窗口 。v发送窗口用来对发送端进行流量控制。v发送窗口的大小 WT 代表在还没有收到对方确认信息的情况下发送端最多可以发送多少个数据帧。 01234567012发送窗口WT不允许发送这些帧允许发送 5 个帧(a)012345

22、67012不允许发送这些帧还允许发送 4 个帧WT已发送(b)01234567012不允许发送这些帧WT已发送(c)01234567012不允许发送这些帧还允许发送 3 个帧WT已发送 已发送并已收到确认(d)接收端设置接收窗口 v在接收端只有当收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。 v若接收到的数据帧落在接收窗口之外,则一律将其丢弃。 v在连续 ARQ 协议中,接收窗口的大小 WR = 1。只有当收到的帧的序号与接收窗口一致时才能接收该帧。否则,就丢弃它。每收到一个序号正确的帧,接收窗口就向前(即向右方)滑动一个帧的位置。同时发送对该帧的确认。 不允许接收这些帧01234

23、567012WR准备接收 0 号帧(a)不允许接收这些帧01234567012WR准备接收 1 号帧已收到(b)不允许接收这些帧01234567012WR准备接收 4 号帧已收到(c)滑动窗口的重要特性v只有在接收窗口向前滑动时(与此同时也发送了确认),发送窗口才有可能向前滑动。v收发两端的窗口按照以上规律不断地向前滑动,因此这种协议又称为滑动窗口协议。v当发送窗口和接收窗口的大小都等于 1时,就是停止等待协议。 发送窗口的最大值 v当用 n 个比特进行编号时,若接收窗口的大小为 1,则只有在发送窗口的大小 WT 2n 1时,连续 ARQ 协议才能正确运行。v例如,当采用 3 bit 编码时,

24、发送窗口的最大值是 7 而不是 8。 3.3.4 信道利用率v由于每个数据帧都必须包括一定的控制信息(如帧的序号、地址、同步信息以及其他的一些控制信息),所以即使连续不停地发送数据帧,信道利用率(即扣除全部的控制信息后的数据率与信道容量之比)也不可能达到 100 %。 v当出现差错时(这是不可避免的),数据帧的不断重传将进一步使信道利用率降低。 最佳帧长 v若数据帧的帧长取得很短,那么控制信息在每一帧中所占的比例就增大,因而额外开销增大,这就导致信道利用率的下降。v若帧长取得太长,则数据帧在传输过程中出错的概率就增大,于是重传次数将增大,这也会使信道利用率下降。v由此可见,存在一个最佳帧长,在

25、此帧长下信道的利用率最高。 3.4 选择重传 ARQ 协议 v可加大接收窗口,先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺序号的数据帧收到后再一并送交主机。 v选择重传 ARQ 协议可避免重复传送那些本来已经正确到达接收端的数据帧。v但我们付出的代价是在接收端要设置具有相当容量的缓存空间。v对于选择重传 ARQ 协议,若用 n 比特进行编号,则接收窗口的最大值受下式的约束WR 2n/2 (3-18) 3.5 面向比特的链路控制规程 HDLC3.5.1 HDLC 协议概述v1974年,IBM 公司推出了面向比特的规程SDLC (Synchronous Data Link Cont

26、rol)。v后来 ISO 把 SDLC 修改后称为 HDLC (High-level Data Link Control),译为高级数据链路控制,作为国际标准ISO 3309。vCCITT 则将 HDLC 再修改后称为链路接入规程 LAP (Link Access Procedure)。不久,HDLC 的新版本又把 LAP 修改为 LAPB,“B”表示平衡型(Balanced),所以 LAPB 叫做链路接入规程(平衡型)。 3.5.2 HDLC 的帧结构v标志字段 F (Flag) 为 6 个连续 1 加上两边各一个 0 共 8 bit。在接收端只要找到标志字段就可确定一个帧的位置。 比特88

27、8可变168信息 Info标志 F标志 F地址 A控制 C帧检验序列 FCS透明传输区间FCS 检验区间零比特填充法 vHDLC 采用零比特填充法使一帧中两个 F 字段之间不会出现 6 个连续 1。v在发送端,当一串比特流数据中有 5 个连续 1 时,就立即填入一个 0。v在接收帧时,先找到 F 字段以确定帧的边界。接着再对比特流进行扫描。每当发现 5 个连续 1 时,就将其后的一个 0 删除,以还原成原来的比特流。 零比特的填充与删除 数据中某一段比特组合恰好出现和 F 字段一样的情况0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0会被误认为是 F 字段发送端在 5 个连

28、1 之后填入 0 比特再发送出去填入 0 比特0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0在接收端将 5 个连 1 之后的 0 比特删除,恢复原样在此位置删除填入的 0 比特0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0透明传输 v采用零比特填充法就可传送任意组合的比特流,或者说,就可实现数据链路层的透明传输。v当连续传输两个帧时,前一个帧的结束标志字段 F 可以兼作后一帧的起始标志字段。v当暂时没有信息传送时,可以连续发送标志字段,使收端可以一直和发端保持同步。 其他字段 v地址字段 A 是 8 bit。 v帧检验序列 FCS 字段共 16

29、bit。所检验的范围是从地址字段的第一个比特起,到信息字段的最末一个比特为止。 v控制字段 C 共 8 bit,是最复杂的字段。HDLC 的许多重要功能都靠控制字段来实现。 3.6 因特网的点对点协议 PPP3.6.1 PPP 协议的工作原理v现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。v用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。 用户拨号入网的示意图 路由器调制解调器调制解调器因特网服务提供者(ISP)用户家庭拨号电话线 使用 TCP/IP 的 PPP 连接使用 TCP/IP 的 客户进程路由选择 进程至因特网PC 机PPP 协议 v1992 年制订了 PPP 协议。经过 1993 年和 1994 年的修订,现在的 PPP 协议已成为因特网的正式标准RFC 1661。 vPPP协议有三个组成部分 一个将 IP 数据报封装到串行链路的方法。链路控制协议 LCP (Link Control Protocol)。网络控制协议 NCP (Network Control Protocol)。 3.6.2 PPP 协议的帧格式vPPP 的帧格式和 HDLC 的相似。 v标志字段 F 仍为 0 x7E (符号“0 x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论