计算机网络_数据链路层_第1页
计算机网络_数据链路层_第2页
计算机网络_数据链路层_第3页
计算机网络_数据链路层_第4页
计算机网络_数据链路层_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机网络第 4 章 数据链路层第 4 章 数据链路层4.1 数据链路层概述 4.1.1数据链路层的必要性 4.1.2 数据链路层的功能4.1.3数据链路层所提供的基本服务4.2 帧与成帧4.2.1 帧的基本格式4.2.2成帧与拆帧4.2.3帧定界4.3 差错控制4.3.1差错控制的作用与机制4.3.2奇偶校验码4.3.3循环冗余校验码(CRC)4.3.4反馈重发机制4.4 流量控制4.4.1流量控制作用4.4.2 滑动窗口协议4.5 数据链路层协议示例4.5.1 HDLC高级数据链路控制4.5.2 PPP协议4.1.1数据链路层的必要性n链路是一条无源的点到点的物理线路段,中间没有任何其他的

2、交换结点。n网络上两台计算机在通信时,所传送的数据往往要网络上两台计算机在通信时,所传送的数据往往要经过许多中间交换结点,因而一条从源结点到目标经过许多中间交换结点,因而一条从源结点到目标结点的通路往往是由许多链路串接而成的,也就是结点的通路往往是由许多链路串接而成的,也就是说,一条链路往往只是一条通路的一部分。一条链说,一条链路往往只是一条通路的一部分。一条链路往往只是一条通路的一部分。路往往只是一条通路的一部分。n数据链路是一条物理通路加上必要的数据传输规程或协议后所形成的逻辑连接。这种规程或协议控制着数据在链路上的传输。n数据链路层存在的必要性n解决数据传输过程中的损坏与丢失问题。物理层

3、只关心原始比特流的传送,不考虑也不可能考虑所传输信号的意义和信息的结构,所以物理层不可能识别或判断数据在传输过程中是否出现了损坏或丢失,从而也谈不上采取相应的机制或方法进行补救。n解决收发双方的接收和发送速率不匹配引发的数据丢失问题。当数据发送方的发送能力大于接收方的数据接收能力时,接收方会因为来不及处理而产生数据溢出并导致数据丢失。然而,物理层并不考虑当发送站点的发送速度过快而接收站点接收的速度过慢时,应采取何种策略来控制发送站点的发送速度,以避免接收站点来不及处理而丢失数据。 4.1.2 数据链路层的功能数据链路层最基本的服务:将源机网络层来的数据可靠的传输到相邻结点的目标将源机网络层来的

4、数据可靠的传输到相邻结点的目标机网络层。机网络层。数据链路层必须具备的功能:(1)(1)如何将数据组合成数据块,在数据链路层中将这种数如何将数据组合成数据块,在数据链路层中将这种数据块称为帧,帧是数据链路层的传送单位;据块称为帧,帧是数据链路层的传送单位; (2)(2)如何控制帧在物理信道上的传输,包括如何处理传输如何控制帧在物理信道上的传输,包括如何处理传输差错;差错;(3)(3)如何调节发送速率以使之与接收方相匹配;如何调节发送速率以使之与接收方相匹配;(4)(4)在两个网路实体之间提供数据链路通路的建立、维持在两个网路实体之间提供数据链路通路的建立、维持和释放管理和释放管理4.1.3数据

5、链路层所提供的基本服务数据链路层有3 种基本服务n无确认的无连接服务 两个相邻机器之间在发送数据帧之前,事先不建立连两个相邻机器之间在发送数据帧之前,事先不建立连接,事后也不存在释放连接。源机器向目标机器发送接,事后也不存在释放连接。源机器向目标机器发送独立的数据帧,而目标机器不对收到的帧作确认。由独立的数据帧,而目标机器不对收到的帧作确认。由于线路上的噪声而造成的帧丢失,数据链路层将不作于线路上的噪声而造成的帧丢失,数据链路层将不作努力去恢复,而是将该工作留给上层(通常为传输层)努力去恢复,而是将该工作留给上层(通常为传输层)去完成。去完成。 无确认无连接服务方式通常适用于误码率很低的信道,

6、如大多数局域网使用这种无确认的无连接服务方式。n有确认的无连接服务 不需要建立连接,源机器向目标机器发送独立的数据不需要建立连接,源机器向目标机器发送独立的数据帧,但是接收站点要对收到的每一帧作确认。即在收帧,但是接收站点要对收到的每一帧作确认。即在收到数据帧之后回送一个确认帧,而发送站点在收到确到数据帧之后回送一个确认帧,而发送站点在收到确认帧之后才会发送下一帧。当在一个确定的时间段内认帧之后才会发送下一帧。当在一个确定的时间段内没有收到确认帧时,发送方就认为所发送的数据帧丢没有收到确认帧时,发送方就认为所发送的数据帧丢失并自动重发此帧。自动重发可能会产生接收站点收失并自动重发此帧。自动重发

7、可能会产生接收站点收到重复的数据帧的问题。到重复的数据帧的问题。 有确认的无连接服务方式适用于像无线网之类的不可靠信道。n有确认的面向连接服务 发送数据之前,需要首先建立连接,然后才会启动帧的发送数据之前,需要首先建立连接,然后才会启动帧的传输。在发送数据阶段,为所传输的每一帧都要编上传输。在发送数据阶段,为所传输的每一帧都要编上号,数据链路层提供相应的确认和流量控制机制来保号,数据链路层提供相应的确认和流量控制机制来保证每一帧都只被正确接收一次,并保证所有帧都按正证每一帧都只被正确接收一次,并保证所有帧都按正确的顺序被接收。当数据传输完成之后,还需要拆除确的顺序被接收。当数据传输完成之后,还

8、需要拆除或释放所建立的连接。或释放所建立的连接。 即面向连接的服务方式分即面向连接的服务方式分3 3 个阶段:个阶段:链路建立阶段、数链路建立阶段、数据传输阶段和链路拆除阶段。据传输阶段和链路拆除阶段。 这类服务实现复杂度及代价很高,通常适用于误码率较高的不可靠信道,如某些广域网链路。4.2 帧与成帧n数据链路层除了要传送的用户数据外,还要提供关于寻址、差错控制和流量控制所必需的信息,而不再是物理层所谓的原始比特流。n数据链路层将从网络层接收的分组(Packet)组成帧后传送给物理层,通过物理层传送到对方的数据链路层。n帧:数据链路层的数据传送逻辑单元数据链路层的数据传送逻辑单元n不同的数据链

9、路层协议的核心任务:根据它所要实现的数据链路层功能来规定帧的格式。根据它所要实现的数据链路层功能来规定帧的格式。4.2.1 帧的基本格式n帧定界(开始与结束) n地址字段(用于寻址) n帧类型(或长度/控制)字段n数据n帧校验字段(差错控制)n帧开始:用以指示一个帧的开始。n地址:用于设备或机器的物理寻址,使得能够在多个相邻结点之间确定一个接收目标。n帧的长度/类型/控制:这个字段在不同的数据链路层协议中可以有不同的规定。或给出帧的长度信息,或给出帧的类型信息,或表明该帧为控制帧。长度通常以字节为单位;帧的类型主要包括提供数据传输的数据帧和提供链路控制与传输管理功能的控制帧。帧开始 地址长度/

10、类型/控制 数据FCS帧结束n数据:承载的来自高层(网络层)的数据分组(packet)。nFCS :表示帧检验序列(Frame Check Sequence),该字段提供与差错检测有关的信息。n帧结束:用以指示一个帧的结束。该字段与帧开始字段一起提供了数据流的定界,使得接收方可以正确识别数据流的开始与结束。通常,通常,“数据数据”字段之前的那些字段被统称为帧头(字段之前的那些字段被统称为帧头(headhead)部分,而)部分,而“数据数据”字段之后的所有字段被称为字段之后的所有字段被称为帧尾(帧尾(trailertrailer)部分。)部分。4.2.2成帧与拆帧n引入帧机制不仅可以实现相邻结点

11、之间的可靠传输,还有助于提高数据传输的效率。n若发现接收到的某一个(或几个)若发现接收到的某一个(或几个)比特出错或丢失时,出错或丢失时,可以只对相应的帧进行特殊处理(如请求重发等),而可以只对相应的帧进行特殊处理(如请求重发等),而不需要对其他帧进行这种处理;不需要对其他帧进行这种处理;n成帧为来自网络层的分组加上必要的帧头和帧尾部分。n拆帧去掉发送端数据链路层所加的帧头和帧尾部分,从中分离出网络层所需的分组。n在成帧过程中,如果上层的分组大小超出下层帧的大小限制,则上层的分组还要被划分成若干个帧才能被传输。发送端和接收端数据链路层帧发送和接收过程:发送端:数据链路层接收到网络层的发送请求之

12、后,便从网络层与数据链路层之间的接口处取下待发送的分组,并封装成帧,然后经过其下层物理层送入传输信道;这样不断地将帧送入传输信道就形成了连续的比特流;接收端:数据链路层从来自其物理层的比特流中识别出一个一个的独立帧,然后利用帧中的FCS字段对每一个帧进行校验,判断是否有错误。如果有错误,就采取收发双方约定的差错控制方法进行处理;如果没有错误,就对帧实施拆封,并将其中的数据部分即分组通过数据链路层与网络层之间的接口上交给网络层,从而完成了相邻结点的数据链路层关于该帧的传输任务。4.2.3帧定界n定界就是标识帧的开始与结束n常用的帧定界方法:字节计数法字节计数法使用使用字符填充的首尾定界符法字符填

13、充的首尾定界符法用用比特填充的首尾定界符法比特填充的首尾定界符法违法编码法违法编码法字节计数法n以一个特殊字符表征一帧的起始,并以一个专门字段来标明帧内的字节数n接收方可以通过对该特殊字符的识别从比特流中区分出帧的起始,并从专门字段中获知该帧中随后跟随的数据字节数,从而可确定出帧的终止位置。 帧格式如图所示:SOHCountFlagACKSegAddrCRC1DataCRC228148816-131064816(位)16格式中控制字符SOH标志数据帧的起始。Count字段用以指示帧中数据段中数据的字节数,数据段最大长度为8(214-1)=131064位,长度必须为字节(即8位)的整倍数,DDC

14、MP协议就是靠这个字节计数来确定帧的终止位置的。DDCMP帧格式中的Ask、Seg、Addr及Flag中的第2位。它们的功能分别类似于HDLC中的N(S)、N(R)、Addr字段及P/F位。(稍后介绍)CRC1、CRC2分别对标题部分和数据部分进行双重校验,强调标题部分单独校验的原因是,一旦标题部分中的Count字段出错,即失却了帧边界划分的依据,将造成灾难性的后果。使用字符填充的首尾定界符法n每一帧以ASCII字符序列DLE STX开始,以DLE ETX结束。n为了不使数据信息位中出现的与特定字符相同的字符被误判为帧的首尾定界符,可以在这种数据字符前填充转义控制字符以示区别,从而达到数据的透

15、明性。DLE Data DLESTXETX使用字符填充的首尾定界符法(续)n在首尾界符法中,由于数据中可能会出现DLE STX或DLE ETX,从而干扰帧的正常定界。n字符填充法可用于解决上述问题。即发送端在数据中所遇到的DLE前再插入一个附加的DLE,而接收方,若遇到两个连续的DLE,则认为是数据部分,并删除一个DLE。DataDLE STX DLE ETXDLE DLE ETXDLEDLE STX DLE用比特填充的首尾定界符法n每一帧使用一个特殊的比特模式“01111110”标识一帧的开始与终止。n为了不使信息位中出现的与该特定模式相似的比特串被误判为帧的首尾标志,可以采用比特填充的方法

16、。 Data 0111111001111110用比特填充的首尾定界符法(续)n比特填充法。发送方在数据中若遇到5个连续的“1”时,则自动在其后插入一个“0”。而接收方则做该过程的逆操作,即每收到连续5个“1”,则自动删去其后所跟的“0”,以此恢复原始信息,实现数据传输的透明性。Data01111110 01111110111111111110 01111110 0111111011111011111100 违法编码法n该法在物理层采用特定的比特编码方法时采用。n例如,曼彻斯特编码方法,是将数据比特例如,曼彻斯特编码方法,是将数据比特“1”1”编码成编码成“高高- -低低”电平对,将数据比特电平

17、对,将数据比特“0”0”编码成编码成“低低- -高高”电电平对。而平对。而“高高- -高高”电平对和电平对和“低低- -低低”电平对在数据比电平对在数据比特中是违法的。可以借用这些违法编码序列来定界帧的特中是违法的。可以借用这些违法编码序列来定界帧的起始与终止。局域网起始与终止。局域网IEEE 802IEEE 802标准中就采用了这种方法。标准中就采用了这种方法。n违法编码法不需要任何填充技术,便能实现数据的透明性,但它只适用采用冗余编码的特殊编码环境。n由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)以及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填

18、充法和违法编码法。4.3 差错控制n差错是指接收端收到的数据与发送端实际发出的数据出现不一致的现象。n产生差错主要是因为在通信线路上噪声干扰的结果。n根据噪声类型不同,可将差错分为随机错和突发错。根据噪声类型不同,可将差错分为随机错和突发错。热噪声所产生的差错称为随机错,冲击噪声(如电热噪声所产生的差错称为随机错,冲击噪声(如电磁干扰、无线电干扰等)所产生的错误称为突发错。磁干扰、无线电干扰等)所产生的错误称为突发错。n差错的严重程度由误码率来衡量,误码率Pe 等于错误接收的码元数与所接收的码元总数之比。显然,误码率越低,信道的传输质量越高。n由于信道中的噪声是客观存在的,所以不管信道质量多高

19、,都要进行差错控制。4.3.1差错控制的作用与机制n差错控制的主要作用是通过发现数据传输中的错误,采取相应的措施减少数据传输错误。n差错控制的核心是对传输的数据信息加上与其满足一定关系的冗余码,形成一个加强的、符合一定规律的发送序列。n校验码按功能分类: 纠错码 检错码n纠错码不仅能发现传输中的错误,还能利用纠错码中的信息自动纠正错误,其对应的差错控制措施为自动前向纠错。汉明码(汉明码(Hamming codeHamming code)为典型的纠错码,具有很高)为典型的纠错码,具有很高的纠错能力。的纠错能力。n检错码只能用来发现传输中的错误,但不能自动纠正所发现的错误,需要通过反馈重发来纠错。

20、n常见的检错码有:奇偶校验码奇偶校验码 循环冗余校验码(循环冗余校验码(CRCCRC)4.3.2 奇偶校验码n 规则:在原数据位后附加一个校验位,将其值置为“0”或“1”,使附加该位后的整个数据码中“1”的个数成为奇数或偶数。使用奇数个使用奇数个“1 1”进行校验的方案被称为奇校验;进行校验的方案被称为奇校验;对应于偶数个对应于偶数个“1 1”的校验方案被称为偶校验。的校验方案被称为偶校验。nEg: 求 1100001的水平奇校验和水平偶校验 水平奇校验 1100001 水平偶校验 1100001注:水平奇/偶校验只能发现字符传输中的奇数位错,而不能发现偶数位错。01n垂直奇/偶校验:将所发送

21、的若干个字符组成字符组或字符块,形式将所发送的若干个字符组成字符组或字符块,形式上相当于是一个矩阵,每行为一个字符,每列为所有字上相当于是一个矩阵,每行为一个字符,每列为所有字符对应的相同位。在这一组字符的末尾即最后一行附加符对应的相同位。在这一组字符的末尾即最后一行附加一个校验字符,该校验字符中的第一个校验字符,该校验字符中的第i i 位分别对应组中所位分别对应组中所有字符第有字符第i i 位的校验位。位的校验位。n水平垂直奇/偶校验对每个字符作水平校验,同时也对整个字符块作垂对每个字符作水平校验,同时也对整个字符块作垂直校验直校验从总体上讲,奇偶校验方法的检错能力仍较差,虽然其实现方法简单

22、。故这种校验一般只用于通信质量要求较低的环境。垂直奇偶校验垂直奇偶校验水平奇偶校验水平奇偶校验4.3.3循环冗余校验码(CRC)n循环冗余校验码是一种被广泛采用的多项式编码,又称多项式码。是一种被广泛采用的多项式编码,又称多项式码。nCRC的组成由两部分组成,前一部分是由两部分组成,前一部分是k+1 k+1 个比特的待发送信息,后个比特的待发送信息,后一部分是一部分是r r 个比特的冗余码。个比特的冗余码。n主要用到两个多项式: f(x)和G(x) 。 其中,其中,f(x)f(x) 是一个是一个k k 阶多项式,其系数是待发送的阶多项式,其系数是待发送的k+1 k+1 个个比特序列;比特序列;

23、G(x)G(x)是一个是一个r r 阶的生成多项式,由发收双方预阶的生成多项式,由发收双方预先约定。先约定。 CRC的工作原理n生成r 个比特的冗余码:用模2 除法进行xrf(x)/G(x)运算,得余式 ,其系数即是冗余码。x xr rf(x) f(x) 即即信息序列向左移动信息序列向左移动r r位,低位补位,低位补0 0。n得到带CRC 校验的发送序列:用模2 减法进行x5 - 运算得到带CRC 校验的发送序列.从形式上看,也就是简单地在原信息序列后面附加上冗从形式上看,也就是简单地在原信息序列后面附加上冗余码。余码。n在接收方,用同样的生成多项式G(x)除所收到的序列。若余数为0,则表示传

24、输无差错,否则说明传输过程出现差错。n常见的标准生成多项式如下:CRC-12:G(x)=x12+x11+x3+ x2+1CRC-16:G(x)=x16+x15+x2+1CRC-32:G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1nCRC能够检验出下列差错:全部的奇数个错;全部的奇数个错;全部的二位错;全部的二位错; 全部长度小于或等于全部长度小于或等于r r位的突发错。其中,位的突发错。其中,r r是冗余码的是冗余码的长度。长度。CRC的例子n例1:若要传输的比特序列为110011010,生成多项式 x4x31,求CRC码的校验序

25、列码以及实际发送的比特序列是什么?解析:发送数据对应的比特序列为110011010; 生成多项式对应的比特序列为11001(k4); F(x)xk对应的比特序列为1100110100000; 将F(x)xk对应的比特序列用生成多项式对应的比 特序列11001去除,计算过程如下:CRC的例子(续)求得余数比特序列为1100(4位),就是CRC码的校验序列码;实际发送的比特序列为1100110101100。n例2:若要传送的信息序列为1000100101,生成多项式为 x5x4x21,求CRC码的校验序列码,若收到的数据比特序列为100010010100011,验证其正确性。 解析:发送数据对应的

26、比特序列为1000100101; 生成多项式对应的比特序列为110101(k5); F(x)xk对应的比特序列为100010010100000; 将F(x)xk对应的比特序列用生成多项式对应的比特序列110101去除,计算过程如图所示。按二进制模2算法结果如下:求得余数比特序列为00011(5位),就是CRC码的校验序列码;将收到的比特序列用生成多项式对应的比特序列110101去除,若能够被整除,数据传输正确,否则传输错误,计算过程按二进制模2算法与前面相同,由读者自己完成。传输结果应是正确的。4.3.4反馈重发机制n含义: 由于检错码本身不提供自动的错误纠正能由于检错码本身不提供自动的错误纠

27、正能力,所以需要提供一种与之相配套的错误纠正力,所以需要提供一种与之相配套的错误纠正机制,即反馈重发。通常当接收方检出错误的机制,即反馈重发。通常当接收方检出错误的帧时,首先将该帧丢弃,然后给发送方反馈信帧时,首先将该帧丢弃,然后给发送方反馈信息请求发送方重发相应的帧。反馈重发又被称息请求发送方重发相应的帧。反馈重发又被称为自动请求重传(为自动请求重传(ARQARQ,Automatic Repeat Automatic Repeat RequestRequest)。)。n常见的实现方法:停止等待方式停止等待方式 连续连续ARQ ARQ 方式方式停止-等待方式n发送端在发出一帧之后必须停下来等待

28、接收端的对发送帧的确认。若确认提示对方已经正确收到,则发送方继续发送下一个帧;否则,发送方就重发该帧。n对帧的确认有肯定和否定之分,表示正确接收的被称为确认帧(acknowledgement,ACK),表示错误接收的被称为否认帧(negative acknowledgement,NAK)。 n在理想情况下,帧在线路上不会损坏,也不会丢失。下图表明了发送方和接收方在正常情况下的一次帧传送。发送方发送一个帧,接收方在正确接收后,反馈一个确认帧。正常情况下的停止等待停止等待协议的算法n在理想的情况下,发送站点的动作如下: n将从网络层下来的分组装配成帧; n将帧送到数据链路层的发送缓冲区; n将发送

29、缓冲区中的帧发送出去; n等待对方的确认; n收到接收站点的ACK帧,转到。n接收站点的动作如下:n等待; n若收到由发送站点发过来的帧,将其放入数据链路层的接收缓冲区;n将接收缓冲区中的帧进行拆封处理,将其中的分组交给网络层; n发送一个确认帧ACK给发送站点,表示帧已正确接收; n转到。 使用停止等待协议四种情况时间ABDATA0送主机ACKDATA1送主机ACK(a) 正常情况ABDATA0DATA0送主机ACK(c) 数据帧丢失重传tout丢失 !ABDATA0送主机ACKDATA0丢弃ACK(d) 确认帧丢失重传tout丢失 !ABDATA0NAKDATA0送主机ACK(b) 数据帧

30、出错重传出错超时重发机制n超时重发机制的提出在数据帧出错的情况下,接收方会发送一个否认帧,发送方在收到该否认帧后将会重传这个被损坏的帧。其他两种情况则可能造成发送方无限制地等待下去。在数据帧丢失的情况下,由于接收方没有收到相应的帧,因此也就不会发送一个ACK。在确认帧丢失的情况下,尽管接收方正确收到一个帧且为此发送了一个确认帧,但是该确认帧在传输过程中被丢失。所以,这两种情况都会造成发送方因收不到确认帧而无限等下去。 解决上述无限等待的有效方法是引入超时重发机制。在发送方设置一个计时器,当发送一个帧之后,就开始计时;如果在规定的时间内确认帧还未到达,就默认为帧在传输过程中被丢失,于是重新启动帧

31、的发送。n简单的超时重发会引发帧被重复接收的问题。例如,在确认帧丢失的情况下,数据帧已经被接收端正确接收,但接收端反馈的确认帧却在传输过程中丢失了,发送端因此启动了超时重发机制,从而造成接收端收到重复的帧。n解决帧重复接收问题的一个简单方法就是对待发送的帧进行编号。接收端一旦在某段时间内收到两个序列号相同的帧,就可以判断出是它们是重复帧,然后丢弃重复的帧。n停止等待方式实现简单,但是这种发送一帧等待一个确认的方式使得通信效率很低。 连续 ARQ 协议的工作原理 n连续重发请求方案是指发送方可以连续发送一系列信息帧,即不用等前一帧被确认便可发送下一帧。n需要在发送方设置一个较大的缓冲存储空间(称

32、为重发表),用以存放若干待确认的信息帧。当发送方到对某信息帧的确认帧后便可从重发表中将该信息帧删除。n连续ARQ方案的链路传输效率大大提高,但相应地需要更大的缓冲存储空间。nARQ方案的实现过程如下:n发送方连续发送信息帧而不必等待确认帧的返回;n发送方在重发表中保存所发送的每个帧的备份;n重发表按先进先出(FIFO)队列规则操作;n接收方对每一个正确收到的信息帧返回一个确认帧;n每一个确认帧包含一个唯一的序号,随相应的确认帧返回;n接收方保存一个接收次序表,它包含最后正确收到的信息帧的序号;n当发送方收到相应信息帧的确认后,从重发表中删除该信息帧的备份;n当发送方检测出失序的确认帧(即第N号

33、信息帧和第N+2号信息帧的确认帧已返回,而N+1号的确认帧未返回)后,便重发未被确认的信息帧。GO-DACK-N策略n上面连续ARQ过程是假定在不发生传输差错的情况下描述的,如果差错出现,如何进一步处理还可以有两种策略,即GO-DACK-N策略和选择重发策略。nGO-DACK-N策略的基本原理当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧之后的所有未被确认的帧;或者当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。GO-DACK-N策略GO-DACK-N法操作过程如图所示。

34、图中假定发送完8号帧后,发现2号帧的确认返回在计时器超时后还未收到,则发送方只能退回从2号帧开始重发。选择重发机制n当接收方发现某帧出错后,其后继续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。n其工作过程如图所示。图中2号帧的否认返回信息NAK2要求发送方选择重发2号帧。显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。选择重发机制举例4.4流量控制4.4.1流量控制作用n由于系统性能的不同,如硬件能力(包括CPU,存储器等)和

35、软件功能的差异,会导致发送方与接收方处理数据的能力有所不同。n若一个发送能力较强的发送方给一个接收能力相对较弱的接收方发送数据,则接收方会因无能力处理所有收到的帧而不得不丢弃一些帧。如果发送方持续高速地发送,则接收方最终还会被“淹没”。也就是说,在数据链路层只有差错控制机制还是不够的,其不能解决因发送方和接收方速率不匹配所造成的帧丢失。n流量控制并不是数据链路层特有的功能,许多高层协议中也提供流量控制功能,只不过流量控制的对象不同而已。比如,对于数据链路层来说,控制的是相邻两结点这间数据链路上的流量,而对于运输层来说,控制的则是从源到最终目的之间端对端的流量。n流量控制的作用是为了平衡双方的数

36、据吞吐量,使发送方所发出的数据流量不要超过接收方所能接收的速率。n流量控制的关键是需要有一种信息反馈机制,使发送方能了解接收方是否具备足够的接收及处理能力。n存在各种不同的流量控制机制。如简单的停等协议,而滑动窗口协议可以将流量控制机制与帧确认机制巧妙地结合在一起。4.4.2 滑动窗口协议n发送方存放待确认帧的重发表中,应设置待确认帧数目的最大限度,这一限度被称为链路的发送窗口。n重发表是一个连续序号的列表,对应发送方已发送但尚未确认的那些帧。这些帧的序号有一个最大值,这个最大值即发送窗口的限度。n所谓发送窗口就是指示发送方已发送但尚未确认的帧序号队列的界,其上、下界分别称为发送窗口的上、下沿

37、,上、下沿的部距称为窗口尺寸。接收方类似地也有接收窗口,它批示允许接收和帧的序号。n发送方每次发送一帧后,待确认帧的数目便增1,每收到一个确认信息后,待确认帧的数目便减1。当重发表长度计数值,即待确认帧的数目等于发送窗口尺寸时,便停止发送新的帧。n一般帧号只取有限位二进制数,到一定时间后就又反复循环。若帧号配3位二进制数,则帧号在07间循环。01234567012发送窗口WT不允许发送这些帧允许发送 5 个帧(a)01234567012不允许发送这些帧还允许发送 4 个帧WT已发送(b)01234567012不允许发送这些帧WT已发送(c)01234567012不允许发送这些帧还允许发送 3

38、个帧WT已发送 已发送并已收到确认(d)n滑动窗口变化过程可叙述如下(假设发送窗口尺寸为2,接收窗口尺寸为1):n初始态,发送方没有帧发出,发送窗口前后沿相重合。接收方0号窗口打开,表示等待接收0号帧;n发送方已发送0号帧,此时发送方打开0号窗口,表示已发出0帧但尚确认返回信息。此时接收窗口状态同前,仍等待接收0号帧;n 发送方在未收到0号帧的确认返器信息前,继续发送1号帧。此时,1号窗口打开,表示1号帧也属等待确认之列。至昆,发送方打开的窗口数已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧。接收窗口此时状态仍未变;n接收方已收到0号帧,0号窗口关闭,1号窗口打开,表示准

39、备接收1号帧。此时发送窗口状态不变; n发送方收到接收方发来的0号帧确认返回信息,关闭0号窗口,表示从重发表中删除0号帧。此时接收窗口状态仍不变;n 发送方继续发送2号帧,2号窗口打开,表示2号帧也纳入待确认之列。至此,发送方打开的窗口又已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧,此时接收窗口状态仍不变;n接收方已收到1号帧,1号窗口关闭,2号窗口打开,表示准备接收2号帧。此时发送窗口状态不变;n发送方收到接收方发来的1号帧收毕的确认信息,关闭1号窗口,表示从重发表中删除1号帧。此时接收窗口状态仍不变。n凡是在一定范围内到达的帧,即使它们不按顺序,接收方也要接收下来。

40、若把这个范围看成是接收窗口的话,由接收窗口的大小也应该是大于1的。n停等-协议、Go-back-N及选择重发的区别:停等停等- -协议:发送窗口协议:发送窗口=1=1,接收窗口,接收窗口=1=1;Go-back-NGo-back-N: 发窗口发窗口11,接收窗口,接收窗口=1=1;选择重发:发送窗口选择重发:发送窗口11,接收窗口,接收窗口114.5 数据链路层协议示例 4.5.1 HDLC高级数据链路控制n高级数据链路控制(规程)(High Level Data Link Control,HDLC)是一个在同步网上传输数据、面向位的数据链路层协议,它是由国际标准化组织(ISO)制定的。HDL

41、C是IBM 的同步数据链路控制规程(SDLC)的一个超集。nHDLC 是面向比特的协议,支持全双工通信,采用位填充的成帧技术,以滑动窗口协议进行流量控制。HDLC的帧格式标识标识F地址地址A控制控制C8帧校验序列帧校验序列FCS标识标识F数据数据Date88可变可变1680N(S)P/FN(R)10SP/FN(R)11MP/FN(R)信息帧监控帧无编号帧比特序号123 456 7 8n帧头和帧尾的位模式串“01111110”为帧的开始和结束标记(Flag)。可以看出,HDLC 协议在帧定界上采用的是带位填充技术首尾界符法。n A是地址字段(Address),由8 位组成。对于命令帧,存放接收站

42、的地址;对于响应帧,存放发送响应帧的站点地址。nC 是控制字段(Control),由8 位组成,该字段是HDLC 协议的关键部分。它标志了HDLC 的3 种类型帧:信息(Information)帧、监控(Supervisory)帧和无序号(Unnumbered)帧。n监控帧中不包含Data(数据)部分,若帧的第1 和第2 比特为“11”,则代表用于数据链路控制的无序号帧,其第3、 4、6、7 和8 比特用M(Modifier)表示,M的取值不同表示不同功能的无序号帧。无序号帧可用于建立连接和拆除连接。在所有3 种情况下,第5 比特是轮询终止(Poll/Final)比特,简称P/F,用于询问对方

43、是否有数据要发送或告诉对方数据传输结束。nData 是数据字段,可以包含任意信息且可以是任意长的,但实际上受多种条件的制约,如帧校验效率就会随着数据长度的增加而下降。n FCS 是校验序列字段,采用16 位的CRC 校验,其生成多项式为CRC16: G(x)=x16+x12+x5+1,校验的内容包括A 字段、C 字段和Data 字段。nHDLC提供了三种类型的帧,包括信息帧、监控帧和无符号帧。n信息帧简称I帧,其控制字段的第1比特为“0”。I帧用于发送数据。在I帧中,第2至第4比特N(S)代表当前发送的信息帧的序号。第6至第8比特N(R)则代表接收序号,它给出下一个期望接收的帧序号。接收方不必

44、专门为正确收到的信息帧发送确认,它可以在自己当前所要发送的信息帧中通过N(R)捎带上对已经正确接收帧的确认。由于通信是全双工的,所以参与通信的每一方各有一个N(S)和一个N(R)。对于I帧中的P/F位,若P/F=0,表示该位没有意义;若P/F=1,则对不同的情况有不同的含义。对于正常响应模式NRM,若主站置P/F=1,则表示它向从站发出探询,只有从站有数据要发送,才可以向主站发送信息。当从站发送最后一帧时,它要置P/F=1,表示从站数据发送已经结束。n监控(supervision)帧简称S帧,其控制字段的第1位为“1”、第2比特为“0”。S帧用于协调双方通信状态。根据S帧中控制字段的第3至4比

45、特取值,S帧又进一步分成四种类型,这四种S帧的名称及作用如表所示。所有S帧都不包含要传送的数据信息,所以它不需要有发送序号N(S)。但是,S帧中的接收序号N(R)却仍然非常重要。在RR帧和RNR帧中,N(R)都相当于是对前面已经正确接收的各帧的确认,N(R)表示下一个期望接收的帧;在REJ监控帧中,N(R)表示否认的信息帧号,同时也是对N(R)-1及其以前的各帧均已正确接收的一种确认。对于S帧,当P/F位的取值为“0”时也是没有意义的。P/F位取“1”才有意义。在非平衡配置的正常响应方式中,从站不能主动向主站发送信息,只有收到主站发来的P/F=1的S帧(或I帧)之后才能发送响应帧。若从站有数据

46、要发送,则在最后一个数据帧中将P/F位置1。若无数据发送,则在回答的S帧中将P/F位置1。n无序号帧简称U帧,其控制字段的第1和第2比特为“11”。无序号帧本身不带编号,即无N(S)和N(R)字段,其第3、4、6、7和8比特用M表示,M的取值不同表示不同功能的无序号帧。虽然共有32个不同的编号,但目前只定义了15种无编号帧。无序号帧主要用于数据链路控制,如用于链路连接的建立和拆除。下表给出了6种U帧控制字段(C字段)的第3比特至第8比特的格式与链路控制功能。在这6种U帧中,前4种是命令,后2种是从站的响应。六种用于链路控制的U帧格式与功能HDLC 用于实现面向连接的可靠传输n下图为正常传输,其中将无序号帧用于链路连接的建立、维护与拆除,而信息帧用于发送数据并实现捎带的帧确认。n下图则表示出现差错后的处理过程,但省略了关于连接建立的过程。 由于B 方没有数据帧要发送给A 方,所以不能利用信息帧的捎带来反馈帧出错信息,只有专门发送一个监控帧用于告诉A 方数据帧传输出错并同时给出建议的差错控制方式,显然在该例子中差错控制采用了选择重发方式。有确认的面向连接HDLC 差错控制的实现连接建立、数据传输和连接拆除4.5.2 PPP协议nPPP 是点对点协议(Point-to-Point Pro

温馨提示

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

最新文档

评论

0/150

提交评论