高级网络通信原理-数据链路层.ppt

上传人:丁** 文档编号:942537 上传时间:2019-09-30 格式:PPT 页数:97 大小:761KB
返回 下载 相关 举报
高级网络通信原理-数据链路层.ppt_第1页
第1页 / 共97页
高级网络通信原理-数据链路层.ppt_第2页
第2页 / 共97页
高级网络通信原理-数据链路层.ppt_第3页
第3页 / 共97页
点击查看更多>>
资源描述
高级网络通信原理 浙江工商大学 信电学院,第 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 面向比特的链路层协议 HDLC 3.5.1 HDLC 协议概述 3.5.2 HDLC 的帧结构 *3.6 因特网的点对点协议 PPP 3.6.1 PPP 协议的工作原理 3.6.2 PPP 协议的帧格式 3.6.3 PPP 协议的工作状态,3.1 数据链路层的基本概念,链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。 一条链路只是一条通路的一个组成部分。 数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。 现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。 一般的适配器都包括了数据链路层和物理层这两层的功能。,数据链路层像个数字管道,常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。 早期的数据通信协议曾叫作通信规程(procedure)。因此在数据链路层,规程和协议是同义语。,数据链路层的主要功能,(1) 链路管理 (2) 帧定界 (3) 流量控制 (4) 差错控制 (5) 将数据和控制信息区分开 (6) 透明传输 (7) 寻址,数据链路层所提供的服务,数据链路层可以提供多种不同类型的服务,实际提供的服务因系统不同而不同,但基本上有三种: 无确认、无连接服务; 有确认、无连接服务; 面向连接服务。,数据链路层所提供的服务,无确认、无连接服务指的是源机器向目的地机器发出独立的帧,而目的地机器对收到的帧不作确认。事先不必建立连接,因而也不存在事后的释放。如果某个帧由于线路噪声而丢失,数据链路层并不准备恢复它,恢复工作留给上层去完成。这类服务适用于误码率很低的情况。这类服务也适用于语音这样的实时信息源,这类信息流由时延引起的不良后果比数据损坏严重。许多局域网在数据链路层都提供无确认、无连接服务。 为了提高可靠性,引入了有确认、无连接服务。这种服务仍然不需要建立连接,但是对一个被发出去的帧要进行单独确认。用这种方式,发送方就可以知道一帧是否已安全到达目的地。如果在指定的时间一帧未能到达目的地,则可以重传误帧。,数据链路层所提供的服务,数据链路层为网络层提供的最复杂的服务是面向连接的服务。采用这种服务,源机器和目的地机器在传送任何数据之前,必须先建立一条连接。在这种连接上传送的每一个帧被编上号,数据链路层保证传送的帧被对方收到,且只收到一次,帧的先后顺序也不变。但采用无连接方式,如果确认信息丢失,将会引起一帧被多次发送,因而被多次接收。数据链路层的面向连接的服务为网络层协议实体之间的交互提供了可靠传送比特流的服务。,异步传输和同步传输,比特的传送和接收是通过采用定时时钟来完成的。发送计算机利用它的时钟来决定每个比特的起始和结束。在接收计算机那里,时钟被用来确定对信号进行采样取值的位置和间隔时间。一般情况下,使两个独立的时钟精确同步是不太可能的,它们都产生自己的漂移,引起两个连续采样之间的间隔比所希望的变长了或变短了。例如,对于一种产生100bps的数据流,应该每隔0.01秒有一个时钟信号;但由于时钟的漂移,偏差范围从0.01-到0.01+,的大小取决于时钟的产生方法 。,异步传输和同步传输,异步传输和同步传输,时钟漂移会引起接收方在确定一个比特的起始和结束位置时发生错误。由于接收时钟与发送时钟的差异,接收方可能对代表1位的信号采样两次,从而多产生一个比特,也可能跳过一位。例如图3-2所示,传送0010这样一串比特,因为时钟漂移,结果被接收方错误地认为是00110或010。 解决上述同步问题的方法有两种。第一种称为异步法,发送方和接收方独立地产生时钟,但定期地进行同步。第二种方法称为同步法,接收端时钟完全由发送方时钟控制,也就是说,接收方时钟与发送方时钟是严格同步的。,异步传输,异步传输是基于这样的事实:在一定的比特数目内,时钟漂移的程度是有限的。它让接收方在某一个时间点上跟一个发送方时钟信号同步,并由此开始自己独立的时钟信号序列。由于偏移相对于一个比特时间来说是比较小的,接收方可以在偏移积累到采样发生错误之前正确地接收若干个比特。 在异步传输中,数据以字符为单元发送;每个字符的长度根据所使用的编码方案可以是5到8个比特。作为例子,常用的ASCII编码每个字符7个比特;另一种在所有的IBM机器(个人计算机除外)上采用的EBCDIC(扩展的二进制编码的十进制交换码)编码是每个字符8个比特。值得注意的是,定时或同步仅仅在每个字符的范围内维持着,接收方在每个新字符的开头都被提供机会重新进行同步。,异步传输,异步传输,如图3-3所示,当没有字符发送时,在发送方和接收方之间的线路处于空闲状态。空闲的定义等效于二进制1的信令元素。因此,对于NRZ-L信令,空闲表示在线路上存在着负电压,也称标记(mark)状态。每个异步字符以1个开启位起始,该位的信号电压等同于二进制0的值,它告诉接收设备开始测量随后的数据位串,即判定1和0的位串。接下来的就是实际地组成该字符的5到8个比特,在我们的示例中是采用ASCII编码,因此有7个比特,通常在该字符后面还有一个奇偶位,该奇偶位的值由发送方设置。取决于所使用的规约,字符中1的总数目(包括奇偶位即8个比特)应该保持偶数(偶检验)或奇数(奇检验)的属性。接收方可以使用奇偶位检查在传输过程中是否有错误发生。最后一个元素是停止位,它的信号电平等同于二进制的1。停止位至少1位,流行的实用标准有1位、1.5位和2位最小长度规范。在发送一个稳定的字符流的情况下,两个字符之间的隔离长度保持一致,都等于停止位元素。,异步传输,启停位使得每个被发送的字节都组成1个帧。标记信号用逻辑“1”数据线电压表示,在1位的时间周期内,数据线电压变成0,所表示的这一位称为开启位。使用停止位的目的是允许接收方有足够的时间进行重置,准备接收信息中的下一个数据字节。 接收机的独立时钟与从标记状态到开启状态的转换同时发生,之后,在一个新的字节发送之前,让接收方时钟独立运行一个最大比特数的时间。异步传输的最大缺点是在线路上的额外开销(在ASCII编码的条件下至少20%),每发送8位至少要有两个附加位。这就使得它只能用于低速传送(110bps到19.2kbps)。,同步传输,在同步传输中,以一种稳定的流方式传送比特块,不使用开启和停止位编码。该数据块在长度上可以是许多个比特。为了防止在发送机和接收机之间的定时漂移,它们的时钟必须通过某种途径保持同步。一种可能性是在发送设备和接收设备之间提供单独的时钟线路。由一方(发送方或接收方)负责在线路上定期地加载脉冲,即每个比特周期发送一个短脉冲。另一方使用这些规则脉冲作为时钟。这种技术在短距离上工作得很好,但对于较长的距离,时钟脉冲会跟数据信号一样面临失真的问题,从而产生定时错误。另一种替代的方法是在数据信号中嵌入时钟信息;对于数字信号,这可以通过使用曼彻斯特或差分曼彻斯特编码得以实现。对于模拟信号,有多种技术可以使用;例如,可以使用载波频率本身基于载波的相位来使接收设备同步。,同步传输,对于同步传输,还需要进行另一个层次上的同步,使得接收设备能够确定一个数据块的开始和结束。为了取得这一目标,每个块以一个前缀比特串开始,并且一般地还用一个后缀比特串结尾。此外,还附加一些其它的比特传递在数据链路控制过程中要使用的控制信息。数据加上前缀、后缀和控制信息就形成了帧。准确的帧格式取决于所使用的数据链路控制过程。,同步传输,同步传输,图3-4以一般的术语示出了一种典型的同步传输的帧格式。一般说来,帧用一个称为标志的前缀起始。同样的标志也用作后缀。接收方查看标志图案确定一个帧的开始。跟在前缀标志后面的是一定数目的控制段,然后是数据段(对于大多数协议都是可变长度)。在数据段后面还可以有控制段,最后重复标志段。 对于可变大小的数据块,同步传输在效率上要比异步传输高得多。异步传输需要百分之二十或更多的开销。同步传输的控制信息、前缀和后缀加在一起一般情况下都小于100位。例如,广泛使用的HDLC帧包含48位的控制、前缀和后缀开销。因此,对于一个包含1000个字符的数据块,每个帧由48比特的开销和1000*8=8000比特的数据组成,开销所占的比例仅是48/8048*100%=0.6%。,3.2 停止等待协议,3.2.1 完全理想化的数据传输 先研究一下数据链路层的模型。,数据链路层的简单模型,局域网,广域网,主机 H1,主机 H2,路由器 R1,路由器 R2,路由器 R3,电话网,局域网,主机 H1 向 H2 发送数据,从层次上来看数据的流动,数据链路层的简单模型( 续),局域网,广域网,主机 H1,主机 H2,路由器 R1,路由器 R2,路由器 R3,电话网,局域网,主机 H1 向 H2 发送数据,链路层,应用层,运输层,网络层,物理层,链路层,应用层,运输层,网络层,物理层,链路层,网络层,物理层,链路层,网络层,物理层,链路层,网络层,物理层,R1,R2,R3,H1,H2,仅从数据链路层观察帧的流动,3.2 停止等待协议 3.2.1 完全理想化的数据传输,数据链路层,主 机 A,缓存,主 机 B,数据链路,AP2,AP1,缓存,发送方,接收方,帧,高层,帧,完全理想化的数据传输 所基于的两个假定,假定 1: 链路是理想的传输信道,所传送的任何数据既不会出差错也不会丢失。 假定 2: 不管发方以多快的速率发送数据,收方总是来得及收下,并及时上交主机。 这个假定就相当于认为:接收端向主机交付数据的速率永远不会低于发送端发送数据的速率。,3.2.2 具有最简单流量控制的数据链路层协议,现在去掉上述的第二个假定。但是,仍然保留第一个假定,即主机 A 向主机 B传输数据的信道仍然是无差错的理想信道。然而现在不能保证接收端向主机交付数据的速率永远不低于发送端发送数据的速率。 由收方控制发方的数据流,乃是计算机网络中流量控制的一个基本方法。,具有最简单流量控制的 数据链路层协议算法,在发送结点: (1) 从主机取一个数据帧。 (2) 将数据帧送到数据链路层的发送缓存。 (3) 将发送缓存中的数据帧发送出去。 (4) 等待。 (5) 若收到由接收结点发过来的信息(此信息 的格式与内容可由双方事先商定好),则 从主机取一个新的数据帧,然后转到(2)。,具有最简单流量控制的 数据链路层协议算法(续),在接收结点: (1) 等待。 (2) 若收到由发送结点发过来的数据帧, 则将其放入数据链路层的接收缓存。 (3) 将接收缓存中的数据帧上交主机。 (4) 向发送结点发一信息,表示数据帧已 经上交给主机。 (5) 转到(1)。,两种情况的对比(传输均无差错),A,B,DATA,DATA,DATA,DATA,送主机 B,送主机 B,送主机 B,送主机 B,A,B,DATA,送主机 B,DATA,送主机 B,时 间,不需要流量控制,需要流量控制,3.2.3 实用的停止等待协议,时 间,A,B,送 主 机,ACK,送 主 机,ACK,(a) 正常情况,四种情况,超时计时器的作用,结点A发送完一个数据帧时,就启动一个超时计时器(timeout timer)。 计时器又称为定时器。 若到了超时计时器所设置的重传时间 tout而仍收不到结点 B 的任何确认帧,则结点 A 就重传前面所发送的这一数据帧。 一般可将重传时间选为略大于“从发完数据帧到收到确认帧所需的平均时间”。,解决重复帧的问题,使每一个数据帧带上不同的发送序号。每发送一个新的数据帧就把它的发送序号加 1。 若结点 B 收到发送序号相同的数据帧,就表明出现了重复帧。这时应丢弃重复帧,因为已经收到过同样的数据帧并且也交给了主机 B。 但此时结点 B 还必须向 A 发送确认帧 ACK,因为 B 已经知道 A 还没有收到上一次发过去的确认帧 ACK。,帧的编号问题,任何一个编号系统的序号所占用的比特数一定是有限的。因此,经过一段时间后,发送序号就会重复。 序号占用的比特数越少,数据传输的额外开销就越小。 对于停止等待协议,由于每发送一个数据帧就停止等待,因此用一个比特来编号就够了。 一个比特可表示 0 和 1 两种不同的序号。,帧的发送序号,数据帧中的发送序号 N(S) 以 0 和 1 交替的方式出现在数据帧中。 每发一个新的数据帧,发送序号就和上次发送的不一样。用这样的方法就可以使收方能够区分开新的数据帧和重传的数据帧了。,可靠传输,虽然物理层在传输比特时会出现差错,但由于数据链路层的停止等待协议采用了有效的检错重传机制,数据链路层对上面的网络层就可以提供可靠传输的服务。,3.2.4 循环冗余检验的原理,在数据链路层传送的帧中,广泛使用了循环冗余检验 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 个比特。,冗余码的计算举例,设 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 余数,循环冗余检验的原理说明,CRC纠错,帧检验序列 FCS,在数据后面添加上的冗余码称为帧检验序列 FCS (Frame Check Sequence)。 循环冗余检验 CRC 和帧检验序列 FCS并不等同。 CRC 是一种常用的检错方法,而 FCS 是添加在数据后面的冗余码。 FCS 可以用 CRC 这种方法得出,但 CRC 并非用来获得 FCS 的惟一方法。,检测出差错,只要得出的余数 R 不为 0,就表示检测到了差错。 但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错。 一旦检测出差错,就丢弃这个出现差错的帧。 只要经过严格的挑选,并使用位数足够多的除数 P,那么出现检测不到的差错的概率就很小很小。,应当注意,仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept)。 “无差错接受”是指:“凡是接受的帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错”。 也就是说:“凡是接受的帧都没有传输差错”(有差错的帧就丢弃而不接受)。 要做到“可靠传输”(即发送什么就收到什么)就必须再加上确认和重传机制。,3.2.5 停止等待协议的算法,这里不使用否认帧(实用的数据链路层协议大都是这样的),而且确认帧带有序号 n。 按照习惯的表示法,ACKn 表示“第 n 1 号帧已经收到,现在期望接收第 n 号帧”。 ACK1 表示“0 号帧已收到,现在期望接收的下一帧是 1 号帧”; ACK0 表示“1 号帧已收到,现在期望接收的下一帧是 0 号帧”。,在发送结点,(1) 从主机取一个数据帧,送交发送缓存。 (2) V(S)0。 (3) N(S)V(S)。 (4) 将发送缓存中的数据帧发送出去。 (5) 设置超时计时器。 (6) 等待。 等待以下(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) 将收到的数据帧中的数据部分送交上层软件 (也就是数据链路层模型中的主机)。 (5) V(R)1 V(R)。 (6) nV(R); 发送确认帧 ACKn,转到(2)。,停止等待协议的要点,只有收到序号正确的确认帧 ACKn 后,才更新发送状态变量 V(S)一次,并发送新的数据帧。 接收端接收到数据帧时,就要将发送序号 N(S) 与本地的接收状态变量 V(R) 相比较。 若二者相等就表明是新的数据帧,就收下,并发送确认。 否则为重复帧,就必须丢弃。但这时仍须向发送端发送确认帧 ACKn,而接收状态变量 V(R) 和确认序号 n 都不变。,停止等待协议的要点(续),连续出现相同发送序号的数据帧,表明发送端进行了超时重传。连续出现相同序号的确认帧,表明接收端收到了重复帧。 发送端在发送完数据帧时,必须在其发送缓存中暂时保留这个数据帧的副本。这样才能在出差错时进行重传。只有确认对方已经收到这个数据帧时,才可以清除这个副本。,停止等待协议的要点(续),实用的 CRC 检验器都是用硬件完成的。 CRC 检验器能够自动丢弃检测到的出错帧。因此所谓的“丢弃出错帧”,对上层软件或用户来说都是感觉不到的。 发送端对出错的数据帧进行重传是自动进行的,因而这种差错控制体制常简称为 ARQ (Automatic Repeat reQuest),直译是自动重传请求,但意思是自动请求重传。,3.2.6 停止等待协议的定量分析,设 tf 是一个数据帧的发送时间,且数据帧的长度是固定不变的。显然,数据帧的发送时间 tf 是数据帧的长度 lf (bit)与数据的发送速率 C (bit/s)之比,即 tf = lf /C = lf /C (s) (3-1) 发送时间 tf 也就是数据帧的发送时延。 数据帧沿链路传到结点B还要经历一个传播时延 tp。 结点 B 收到数据帧要花费时间进行处理,此时间称为处理时间 tpr,发送确认帧 ACK 的发送时间为 ta。,停止等待协议中数据帧和确认帧的发送时间关系,A,B,DATA,DATA,ACK,传播时延 tp,处理时间 tpr,确认帧发送时间 ta,传播时延 tp,处理时间 tpr,时间,两个成功发送的 数据帧之间的 最小时间间隔,数据帧的 发送时间,tf,设置的 重传时间,tout,重传时间,重传时间的作用是:数据帧发送完毕后若经过了这样长的时间还没有收到确认帧,就重传这个数据帧。 为方便起见,我们设重传时间为 tout = tp + tpr+ ta + tp + tpr (3-2) 设上式右端的处理时间 tpr 和确认帧的发送时间 ta 都远小于传播时延 tp,因此可将重传时间取为两倍的传播时延,即 tout = 2tp (3-3),停止等待协议 ARQ 的优缺点,优点:比较简单 。 缺点:通信信道的利用率不高,也就是说,信道还远远没有被数据比特填满。 为了克服这一缺点,就产生了另外两种协议,即连续 ARQ 和选择重传 ARQ。这将在后面进一步讨论。,3.3连续 ARQ 协议 3.3.1 连续 ARQ 协议的工作原理,在发送完一个数据帧后,不是停下来等待确认帧,而是可以连续再发送若干个数据帧。 如果这时收到了接收端发来的确认帧,那么还可以接着发送数据帧。 由于减少了等待时间,整个通信的吞吐量就提高了。,连续 ARQ 协议的工作原理,ACK1 确认 DATA0,ACK2 确认 DATA1,DATA2 出错,丢弃,DATA3 不按序,丢弃,重传 ACK2,DATA4 不按序,丢弃,重传 ACK2,DATA5 不按序,丢弃,重传 ACK2,ACK3 确认 DATA2,ACK4 确认 DATA3,超 时 重 传 时 间,A,B,tout,送交主机,送交主机,?,需要注意:,(1) 接收端只按序接收数据帧。虽然在有差错的 2号帧之后接着又收到了正确的 3 个数据帧,但接收端都必须将这些帧丢弃,因为在这些帧前面有一个 2 号帧还没有收到。虽然丢弃了这些不按序的无差错帧,但应重复发送已发送过的最后一个确认帧(防止确认帧丢失)。 (2) ACK1 表示确认 0 号帧 DATA0,并期望下次收到 1 号帧;ACK2 表示确认 1 号帧 DATA1,并期望下次收到 2 号帧。依此类推。,需要注意:,(3) 结点 A 在每发送完一个数据帧时都要设置该帧的超时计时器。如果在所设置的超时时间内收到确认帧,就立即将超时计时器清零。但若在所设置的超时时间到了而未收到确认帧,就要重传相应的数据帧(仍需重新设置超时计时器)。 在等不到 2 号帧的确认而重传 2 号数据帧时,虽然结点 A 已经发完了 5 号帧,但仍必须向回走,将 2号帧及其以后的各帧全部进行重传。连续 ARQ 又称为Go-back-N ARQ,意思是当出现差错必须重传时,要向回走 N 个帧,然后再开始重传。,需要注意:,(4) 以上讲述的仅仅是连续 ARQ 协议的工作原理。协议在具体实现时还有许多的细节。例如,用一个计时器就可实现相当于 N 个独立的超时计时器的功能。,3.3.3 滑动窗口的概念,发送端和接收端分别设定发送窗口和接收窗口 。 发送窗口用来对发送端进行流量控制。 发送窗口的大小 WT 代表在还没有收到对方确认信息的情况下发送端最多可以发送多少个数据帧。,0,1,2,3,4,5,6,7,0,1,2,发送窗口,WT,不允许发送这些帧,允许发送 5 个帧,(a),接收端设置接收窗口,在接收端只有当收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。 若接收到的数据帧落在接收窗口之外,则一律将其丢弃。 在连续 ARQ 协议中,接收窗口的大小 WR = 1。 只有当收到的帧的序号与接收窗口一致时才能接收该帧。否则,就丢弃它。 每收到一个序号正确的帧,接收窗口就向前(即向右方)滑动一个帧的位置。同时发送对该帧的确认。,不允许接收这些帧,0,1,2,3,4,5,6,7,0,1,2,WR,准备接收 0 号帧,(a),滑动窗口的重要特性,只有在接收窗口向前滑动时(与此同时也发送了确认),发送窗口才有可能向前滑动。 收发两端的窗口按照以上规律不断地向前滑动,因此这种协议又称为滑动窗口协议。 当发送窗口和接收窗口的大小都等于 1时,就是停止等待协议。,发送窗口的最大值,当用 n 个比特进行编号时,若接收窗口的大小为 1,则只有在发送窗口的大小 WT 2n 1时,连续 ARQ 协议才能正确运行。 例如,当采用 3 bit 编码时,发送窗口的最大值是 7 而不是 8。,3.3.4 信道利用率,由于每个数据帧都必须包括一定的控制信息(如帧的序号、地址、同步信息以及其他的一些控制信息),所以即使连续不停地发送数据帧,信道利用率(即扣除全部的控制信息后的数据率与信道容量之比)也不可能达到 100 %。 当出现差错时(这是不可避免的),数据帧的不断重传将进一步使信道利用率降低。,最佳帧长,若数据帧的帧长取得很短,那么控制信息在每一帧中所占的比例就增大,因而额外开销增大,这就导致信道利用率的下降。 若帧长取得太长,则数据帧在传输过程中出错的概率就增大,于是重传次数将增大,这也会使信道利用率下降。 由此可见,存在一个最佳帧长,在此帧长下信道的利用率最高。,3.4 选择重传 ARQ 协议,可加大接收窗口,先收下发送序号不连续但仍处在接收窗口中的那些数据帧。等到所缺序号的数据帧收到后再一并送交主机。 选择重传 ARQ 协议可避免重复传送那些本来已经正确到达接收端的数据帧。 但我们付出的代价是在接收端要设置具有相当容量的缓存空间。 对于选择重传 ARQ 协议,若用 n 比特进行编号,则接收窗口的最大值受下式的约束 WR 2n/2 (3-18),选择重传 ARQ 协议,SWS=5,RWS=3, MaxSeqNum=8,SWS=5,RWS=3, MaxSeqNum=7,3.5 面向比特的链路控制规程 HDLC 3.5.1 HDLC 协议概述,1974年,IBM 公司推出了面向比特的规程SDLC (Synchronous Data Link Control)。 后来 ISO 把 SDLC 修改后称为 HDLC (High-level Data Link Control),译为高级数据链路控制,作为国际标准ISO 3309。 CCITT 则将 HDLC 再修改后称为链路接入规程 LAP (Link Access Procedure)。不久,HDLC 的新版本又把 LAP 修改为 LAPB,“B”表示平衡型(Balanced),所以 LAPB 叫做链路接入规程(平衡型)。,3.5.2 HDLC 的帧结构,标志字段 F (Flag) 为 6 个连续 1 加上两边各一个 0 共 8 bit。在接收端只要找到标志字段就可确定一个帧的位置。,比特,8,8,8,可变,16,8,信息 Info,标志 F,标志 F,地址 A,控制 C,帧检验序列 FCS,透明传输区间,FCS 检验区间,零比特填充法,HDLC 采用零比特填充法使一帧中两个 F 字段之间不会出现 6 个连续 1。 在发送端,当一串比特流数据中有 5 个连续 1 时,就立即填入一个 0。 在接收帧时,先找到 F 字段以确定帧的边界。接着再对比特流进行扫描。每当发现 5 个连续 1 时,就将其后的一个 0 删除,以还原成原来的比特流。,零比特的填充与删除,数据中某一段比特组合恰好 出现和 F 字段一样的情况,0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0,会被误认为是 F 字段,透明传输,采用零比特填充法就可传送任意组合的比特流,或者说,就可实现数据链路层的透明传输。 当连续传输两个帧时,前一个帧的结束标志字段 F 可以兼作后一帧的起始标志字段。 当暂时没有信息传送时,可以连续发送标志字段,使收端可以一直和发端保持同步。,其他字段,地址字段 A 是 8 bit。 帧检验序列 FCS 字段共 16 bit。所检验的范围是从地址字段的第一个比特起,到信息字段的最末一个比特为止。 控制字段 C 共 8 bit,是最复杂的字段。HDLC 的许多重要功能都靠控制字段来实现。,3.3.1 HDLC的帧格式,3.6 因特网的点对点协议 PPP 3.6.1 PPP 协议的工作原理,现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。 用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。,用户拨号入网的示意图,路由器,调制解调器,调制解调器,因特网服务提供者(ISP),用户家庭,拨号电话线,使用 TCP/IP 的 PPP 连接,路由选择 进程,至 因 特 网,PC 机,PPP 协议,1992 年制订了 PPP 协议。经过 1993 年和 1994 年的修订,现在的 PPP 协议已成为因特网的正式标准RFC 1661。 PPP协议有三个组成部分 一个将 IP 数据报封装到串行链路的方法。 链路控制协议 LCP (Link Control Protocol)。 网络控制协议 NCP (Network Control Protocol)。,3.6.2 PPP 协议的帧格式,PPP 的帧格式和 HDLC 的相似。 标志字段 F 仍为 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。 地址字段 A 只置为 0xFF。地址字段实际上并不起作用。 控制字段 C 通常置为 0x03。 PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。,PPP 协议的帧格式,PPP 有一个 2 个字节的协议字段。 当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报。 若为 0xC021, 则信息字段是 PPP 链路控制数据。 若为 0x8021,则表示这是网络控制数据。,IP 数据报,1,2,1,1,字节,1,2,不超过 1500 字节,PPP 帧,先发送,7E,FF,03,F,A,C,FCS,F,7E,协议,信 息 部 分,首部,尾部,透明传输问题,当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。 当 PPP 用在异步传输时,就使用一种特殊的字符填充法。,字符填充法,将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。,不提供使用序号和确认 的可靠传输,PPP 协议之所以不使用序号和确认机制是出于以下的考虑: 在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。 在因特网环境下,PPP 的信息字段放入的数据是 IP 数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。 帧检验序列 FCS 字段可保证无差错接受。,PPP 协议的状态图,建立,失败,失败,NCP 配置,鉴别成功,通信 结束,载波 停止,检测到 载波,双方协商 一些选项,鉴别,网络,打开,终止,静止,差错检测 前向纠错编码,在数据通信的过程中,解决差错问题的一种方法是在每个要发送的数据块上附加足够的冗余信息,使接收方能够推导出发送方实际送出的应该是什么样的比特串。 通常,一帧是由m个数据位(即报文)和r个冗余位(或称校验位)组成。设总长度为n,则n=m+r,此长度为n位的单元常常被称作n位码字。假设有任意两个码字,比如说,10001001和10110001,可以确定有多少个不同的对应位。在我们的例子中有3个不同位。为了确定有多少位不同,只需对两个码字进行异或运算。然后计算结果中的1的位数。两个码字中不同的位的数目称作海明距离(1950年由Hamming提出)。这种海明距离的重要性在于如果两个码字的海明距离为d,那么只有出现d个单位差错才能将其中一个码字转换成另一个码字。,差错检测 前向纠错编码,在绝大多数传输应用中,所有2m个可能的数据信息都是有效的,但是由于加了检测位,就不会使用所有的2n个码字。已知计算检测位的算法,就可构造出完全有效码字表。从这个表中找出具有最小海明距离的两个码字,这个距离便是全部码字的海明距离。 一种编码的检错和纠错能力取决于它的海明距离。为检测出d个比特错,需要使用距离为d+1的编码,因为使用这种编码,d个单比特错决不可能将一个有效的码字改变为另一个有效的码字。当接收方看见无效码字时,它就能明白发生了传输差错。同样地,为了纠正d比特错,必须用距离为2d+1的编码,这是因为,有效码字的距离远到即使发生d个变化,这个发生了变化的码字仍然比任何其它码字都更接近原始码字。因此就能唯一地确定出原始码字。数据后面加上1个奇偶位的编码是检错码的一个简单例子。奇偶位的选取原则是使码字内的1的数目为偶数(或奇数)。这种编码的距离是2,因为任何单比特错都会产生奇偶位不正确的码字,故可以用来检测单比特错。,差错检测 前向纠错编码,下面再举一个纠错码的简单例子。考虑只有4个有效码字的编码。这些码字是:0000000000,0000011111,1111100000,1111111111。这组码的距离是5,这意味着可以校正两位错。如果有一个码字0000000111到达,接受方便知道原来的码字一定是0000011111,但是如果有3位错,0000000000变成0000000111,则错误将得不到纠正。 如果我们要设计一种编码,它有m个信息位和r个检验位,并且能纠正所有单比特错。对2m个有效信息中的任一个而言,有n个与该码字距离为1的无效码字,它们就是依次将该码字中n个比特变反所得到的n个码字。2m个有效信息中的每一个都对应(n+1)种各别的位图案(包括有效信息形成的一种位图案和n种无效信息位图案)。,差错检测 前向纠错编码,差错检测 前向纠错编码,实际上,纠正单比特错的编码可以通过海明1950年提出的方法加以实现。海明编码是将码字内的位从最左边开始按顺序依次编号,第1位是1号,第2位是2号,第n位是n号,编号为2的幂的位(1号位,2号位,4号位,8号位等)是校验位,其余的位填入m位数据。每个校验位的取值应使得包括自己在内的一些位的集合服从规定的奇偶性(例如偶性要求这些位的集合中1的个数是偶数)。为了知道编号为k的数据位对哪些检测位有影响,将编号k改写成2的幂的和,例如11=1+2+8,29=1+4+8+16。1个位只由扩展式中所示编号的位检测。例中编号为11的位只由编号为1、2和8的检测位检测。,差错检测 前向纠错编码,为了说明如何为每个校验位取值,我们举一个7位ASCII字符使用海明编码形成11位码字的例子。这里,m=7,r=4,n=11,显然2r11+1=12,而且编号1=1,2=2,3=1+2,4=4,5=1+4,6=2+4,7=1+2+4,8=8,9=1+8,10=2+8,11=1+2+8,于是有: (1) (1)+(3)+(5)+(7)+(9)+(11) (2) (2)+(3)+(6)+(7)+(10)+(11) (4) (4)+(5)+(6)+(7) (8) (8)+(9)+(10)+(11),差错检测 前向纠错编码,注意,在每个校验位的形成表达式中,除自身的编号外,其余都是信息位的编号,因此只要信息位是确定的,校验位也可以唯一地确定。图B-1列出了11个7位ASCII字符使用海明编码形成的11位码字,其中数据位在3、5、6、7、9、10和11位,编号为1、2、4、8的位是校验位。如图B-1所示。,差错检测 前向纠错编码,差错检测 前向纠错编码,当一码字到达时,接收方将计数器清0。然后接收方检查每个校验位D,看是否具有正确的奇偶性,这里的D是校验位的编号。如果第D位奇偶性不对,则计数值加D,若所有校验位被检查过后,计数器值仍为0,这个码字就作为有效码字接受。假如计数器值不为0,则该值就是出错位的编号。例如,若检测位1、2和8错误,则第11位就变反,因为它是唯一被第1、2和8位检测的位。,差错检测 前向纠错编码,海明码只能纠正单比特错。然而,有一个技巧可用来使海明码能纠正突发性非单比特错。将k个码字组织成一个矩阵,每行1个码字。一般情况下,每次发1个码字,码字按位从左到右发送。 为了纠正非单比特错,数据应该从最左边的1列开始发送,每次发1列,发完1列的k比特后,再发下1列,依次下去。当帧到达接收方时,每列k位重新组成矩阵,如果有k比特连续错发生,k个码字中的每一个最多只有一位受影响,而海明码能够纠正码字中的单比特错。因此,整个块都可以被恢复。这种方法使用kr个检测位,使km个数据的块能恢复长度最多为k的突发性非单比特错。,差错检测 前向纠错编码,可以看出,海明编码的信息余量很大,因而编码效率低。比如7位ASCII码字要增加4个冗余位才行。这就大大增加了数据通信的开销。正因为如此,海明码的使用不如ARQ普遍,一般只限于哪些不能有反馈信道或由于某种原因不宜重传的通信系统中,例如卫星和空间通信的一些特定环境下。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文书 > 各类标准


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!