《计算机网络 第三章数据链路层》由会员分享,可在线阅读,更多相关《计算机网络 第三章数据链路层(71页珍藏版)》请在金锄头文库上搜索。
1、第三章 数据链路层数据链路层的功能数据链路层的功能组帧组帧差错检测和纠正差错检测和纠正基本数据链路协议基本数据链路协议滑动窗口协议滑动窗口协议数据链路层协议实例数据链路层协议实例3.1 数据链路层的功能物理层只负责在通过传输介质相连的机器之间传输无结构物理层只负责在通过传输介质相连的机器之间传输无结构的原始比特流,是不可靠的。的原始比特流,是不可靠的。数据链路层将相邻节点间不可靠的物理连接的数据电路转数据链路层将相邻节点间不可靠的物理连接的数据电路转换成为可靠的数据链路,为网络层提供透明的服务。换成为可靠的数据链路,为网络层提供透明的服务。为实现转换:为实现转换:将物理层的无结构原始比特流划分
2、成一定长度的结构数将物理层的无结构原始比特流划分成一定长度的结构数据单元据单元帧(帧(frame),),即即组帧组帧(Framing)。)。对帧进行对帧进行差错控制差错控制(error control),),实现检错实现检错/纠错功纠错功能。能。通过合适的通过合适的流量控制流量控制(flow control)协议保证收发双方协议保证收发双方的传输同步。的传输同步。3.1 数据链路层的功能Relationship between packets and frames.3.1 数据链路层的功能虚拟通信和实际通信虚拟通信和实际通信数据链路协议的位置和作用数据链路协议的位置和作用数据链路层为网络层提供
3、的服务3种基本的服务:种基本的服务:l无确认的无连接服务:无确认的无连接服务:源机器向目的机器发送独立的帧,而目的机器不需作出确源机器向目的机器发送独立的帧,而目的机器不需作出确认。事先没有建立连接,事后也不存在释放。对于丢失和认。事先没有建立连接,事后也不存在释放。对于丢失和错误的帧也不试图去恢复。恢复工作留给上层完成。错误的帧也不试图去恢复。恢复工作留给上层完成。适用于误码率很低或音视频实时传输的情况,如适用于误码率很低或音视频实时传输的情况,如LAN。l有确认的无连接服务:有确认的无连接服务:仍然不建立连接,但每一个帧都单独确认。发送方会重发仍然不建立连接,但每一个帧都单独确认。发送方会
4、重发丢失和出错的帧。丢失和出错的帧。适用于无线系统(适用于无线系统(wireless systems)之类的不可靠信道。之类的不可靠信道。l有确认的面向连接服务:有确认的面向连接服务:传输分为建立、传输和拆除三个阶段,且每一个帧都单独传输分为建立、传输和拆除三个阶段,且每一个帧都单独确认。主要用于确认。主要用于WAN。3.2 组帧将物理层的比特流划分成帧的将物理层的比特流划分成帧的4种方法:种方法:字符计数法字符计数法(Character Count)带字符填充的首尾定界符法带字符填充的首尾定界符法(Starting and ending characters with character s
5、tuffing)带位填充的首尾标志法带位填充的首尾标志法(Starting and ending flags with bit stuffing)物理编码的违例码法物理编码的违例码法(Physical layer coding violations)字符计数法在帧头中使用一个字段来标明帧内的字符数。在帧头中使用一个字段来标明帧内的字符数。一旦计数值出错,将再也无法同步。一旦计数值出错,将再也无法同步。很少单独用,一般与其它方法结合使用。很少单独用,一般与其它方法结合使用。带字符填充的首位定界符法每一帧以每一帧以ASCII字符序列字符序列DLE STX(Data Link Escape Star
6、t of TeXt)开头,以开头,以DLE ETX(Data Link Escape End of TeXt )结束。结束。若帧的数据中出现若帧的数据中出现DLE字符,发送方则插入一个字符,发送方则插入一个DLE字符,接收方会删除这个字符,接收方会删除这个DLE字符。字符。只能用于已被淘汰的面向字符型协议。只能用于已被淘汰的面向字符型协议。STXDLE带位填充的首位标志法每一帧使用一个特殊的位模式(如每一帧使用一个特殊的位模式(如01111110)作为开)作为开始和结束的标志字节。始和结束的标志字节。当发送方在帧的数据中遇到当发送方在帧的数据中遇到5个连续的个连续的1时,自动在其时,自动在其后
7、插入一个后插入一个0,接收方会自动删除,接收方会自动删除5个连续的个连续的1后面跟着后面跟着的一个的一个0。用于流行的面向比特型协议,如用于流行的面向比特型协议,如HDLC。物理编码的违例码法只能用于当物理信号的编码具有冗余码字时,利用这只能用于当物理信号的编码具有冗余码字时,利用这些冗余的码字来作为帧的边界。些冗余的码字来作为帧的边界。例如采用曼彻斯特编码或差分曼彻斯特编码中例如采用曼彻斯特编码或差分曼彻斯特编码中1/2位周位周期处不跳变的违例码来标示帧边界。使用差分曼彻斯期处不跳变的违例码来标示帧边界。使用差分曼彻斯特编码的特编码的IEEE 802.5令牌环网中:令牌环网中:帧的起始符:帧
8、的起始符:JK0JK000帧的结束符:帧的结束符:JK1JK1IE其中其中J为为“1”的违例码;的违例码;K为为“0”的违例码;的违例码; I表示表示后继帧位;后继帧位; E为差错检测位为差错检测位。帧的其它地方绝对不会出现这样的边界码字。帧的其它地方绝对不会出现这样的边界码字。3.3 差错的检测和纠正涉及两方面理论与技术:涉及两方面理论与技术:差错检测差错检测差错控制编码差错控制编码差错纠正差错纠正前项纠错前项纠错重发出错帧(可与流量控制一起实现)重发出错帧(可与流量控制一起实现)差错控制编码发送端在发送的数据块中加入一定的冗余信息,使数发送端在发送的数据块中加入一定的冗余信息,使数据块与冗
9、余信息之间建立某种关联的关系,接收端通据块与冗余信息之间建立某种关联的关系,接收端通过验证这种关系是否存在,来判定数据在传输过程中过验证这种关系是否存在,来判定数据在传输过程中是否出错。是否出错。在数据块中加入冗余信息的过程叫差错编码,有两种在数据块中加入冗余信息的过程叫差错编码,有两种基本的差错编码策略:基本的差错编码策略:检错码检错码(error-detecting code):):只能检查是否有只能检查是否有错,但不知错在何处的编码。错,但不知错在何处的编码。纠错码纠错码(error-correcting code):):不但能检查出错不但能检查出错误,且能确定错误之处并予以纠正的编码。
10、误,且能确定错误之处并予以纠正的编码。任何一种差错编码都不能保证百分之百的准确。任何一种差错编码都不能保证百分之百的准确。检错与纠错能力的分析设一帧包含设一帧包含m个数据(报文)位和个数据(报文)位和r个冗余位,则总长度为个冗余位,则总长度为n = m + r。把长度为把长度为n位的单元称作位的单元称作n位码字(位码字(codeword)。)。在在n位码字的编码集中,有效码字数为位码字的编码集中,有效码字数为2m个,总码字数为个,总码字数为2n个,个,显然存在显然存在2n - 2m个码字是无效的码字。个码字是无效的码字。若一个有效码字由于差错变成一个无效码字,就能判断出有若一个有效码字由于差错
11、变成一个无效码字,就能判断出有错。错。若一个有效码字错成了另一个有效码字,则错误就检测不出若一个有效码字错成了另一个有效码字,则错误就检测不出来了。来了。两个码字中对应比特位取值不同的位的个数称作两个码字中对应比特位取值不同的位的个数称作海明距离海明距离(Hamming Distance)。如)。如10001001和和10110001的海明距离为的海明距离为3。在一个编码集中,任意两个有效码字的海明距离的最小值称作该在一个编码集中,任意两个有效码字的海明距离的最小值称作该编码集的海明距离编码集的海明距离。检错与纠错的能力取决于海明距离。检错与纠错的能力取决于海明距离。有关检错和纠错的两个重要结
12、论如果要检测出如果要检测出d个比特错误,则编码集的海明距离至少应为个比特错误,则编码集的海明距离至少应为d+1。说(证)明:若一个有效码字只出错说(证)明:若一个有效码字只出错 r+1。发送发送方在方在M(x)后面增加一个冗余多项式后面增加一个冗余多项式R(x)构成带校验信息构成带校验信息的传输帧多项式的传输帧多项式T(x),T(x)必须能被必须能被G(x)整除。当接收方整除。当接收方收到收到T(x)后,只要检查后,只要检查T(x)和和G(x)的整除关系是否存在即的整除关系是否存在即可判定传输是否出错。具体算法:可判定传输是否出错。具体算法:对对M(x)左移左移r位,得到多项式位,得到多项式x
13、rM(x),帧长为帧长为m+r位。位。按模按模2除法将除法将xrM(x)除以除以G(x)。按模按模2减法将减法将xrM(x)减去减去中所得余数,即得到多项式中所得余数,即得到多项式T(x)。CRC检错码举例帧为帧为1101011011,G(x)=x4+x+1(其位串为其位串为10011)xrM(x)的位串为的位串为11010110110000xrM(x)除以除以G(x)的余数位串为的余数位串为1110最终最终T(x)的位串为的位串为11010110111110三个国际标准的生成多项式CRC-12= x12+x11+x3+x2+x1+1CRC-16= x16+x15+x2+1CRC-CCITT=
14、 x16+x12+x5+1CRC-16和和CRC-CCITT这种这种16位校验码可检测位校验码可检测出所有的单位错、两位错、奇数位错、突发长出所有的单位错、两位错、奇数位错、突发长度小于或等于度小于或等于16的突发错、的突发错、17位突发错的位突发错的99.997%、18位或更长突发错的位或更长突发错的99.998%。差错控制策略检检/纠错码的检纠错码的检/纠错能力与编码集的海明距离有关,纠错能力与编码集的海明距离有关,海明距离越大,检海明距离越大,检/纠错能力就越强,但所需的冗余信纠错能力就越强,但所需的冗余信息就越多,编码效率就越低。息就越多,编码效率就越低。由于纠错码比检错码要求更大的海
15、明距离,且技术复由于纠错码比检错码要求更大的海明距离,且技术复杂,纠正可靠性不高,所以一般很少使用,只有在没杂,纠正可靠性不高,所以一般很少使用,只有在没有反馈信道的单工通信中,为了确保可靠才会采用。有反馈信道的单工通信中,为了确保可靠才会采用。在大多数通信中采用的是检错编码。在大多数通信中采用的是检错编码。接收方收到帧后,接收方收到帧后,对其进行校验检查,并发回相应的反馈信息。发送方对其进行校验检查,并发回相应的反馈信息。发送方根据反馈信息来决定是继续发送新帧(肯定应答),根据反馈信息来决定是继续发送新帧(肯定应答),还是重发出错的旧帧(否定应答)。还是重发出错的旧帧(否定应答)。3.4 基
16、本数据链路协议一种无限制的单工协议(一种无限制的单工协议(An Unrestricted Simplex Protocol)停停-等协议(等协议(Stop-and-Wait Protocol)有噪音信道的停有噪音信道的停-等协议(等协议(Stop-and-Wait Protocol for a Noisy Channel)协议1:一种无限制的单工协议(乌托邦)完全理想的条件:数据单向传输,收发双方的网络层一直处于就完全理想的条件:数据单向传输,收发双方的网络层一直处于就绪状态,处理时间可忽略不计,接收缓冲空间无限大,信道不会绪状态,处理时间可忽略不计,接收缓冲空间无限大,信道不会损坏或丢失帧。
17、损坏或丢失帧。发送端无限循环地重复三个动作:发送端无限循环地重复三个动作:从网络层取分组。从网络层取分组。构造帧。构造帧。发出帧。发出帧。无需任何差错控制和流量控制。无需任何差错控制和流量控制。接收端也是无限循环地重复三个动作:接收端也是无限循环地重复三个动作:等待事件(唯一的未损坏帧的到达)发生。等待事件(唯一的未损坏帧的到达)发生。帧到达后,从硬件缓冲中取出新到的帧。帧到达后,从硬件缓冲中取出新到的帧。将帧的数据部分传给网络层。将帧的数据部分传给网络层。无需做其它任何处理。无需做其它任何处理。协议2:停-等协议条件基本同协议条件基本同协议1,只是接收缓冲只能存放一个帧且接,只是接收缓冲只能
18、存放一个帧且接收端需要一定的接收处理时间。收端需要一定的接收处理时间。为了防止发送快于接收而造成数据丢失,发送端在发为了防止发送快于接收而造成数据丢失,发送端在发送一帧后必须停止发送,等待接收端发回的送一帧后必须停止发送,等待接收端发回的反馈确认反馈确认短帧;接收端在收到一个帧并传送网络层后,需向发短帧;接收端在收到一个帧并传送网络层后,需向发送端发一反馈确认短帧(不需包含任何信息,因为信送端发一反馈确认短帧(不需包含任何信息,因为信道是无差错的),表示可发新帧。道是无差错的),表示可发新帧。由于需要反馈,且帧的发送和反馈是严格交替进行的,由于需要反馈,且帧的发送和反馈是严格交替进行的,所以一
19、般采用半双工信道。所以一般采用半双工信道。有噪音信道的停-等协议所涉及的问题进一步考虑实际的会出错的信道,帧既可能损坏(接收进一步考虑实际的会出错的信道,帧既可能损坏(接收端可通过校验检查出错误),也可能完全丢失。端可通过校验检查出错误),也可能完全丢失。发送端仍通过接收端的反馈来决定怎么做。但由于帧会发送端仍通过接收端的反馈来决定怎么做。但由于帧会丢失,发送端可能收不到反馈的确认帧,因此发送端必丢失,发送端可能收不到反馈的确认帧,因此发送端必须引入须引入超时机制超时机制(time out),),即增加一个定时计数器,即增加一个定时计数器,在一定时间后对没有确认的帧进行重发,也称作在一定时间后
20、对没有确认的帧进行重发,也称作ARQ(Automatic Retransmit reQuest)。)。时间值应选择稍大于两倍端到端的信号传输时间和时间值应选择稍大于两倍端到端的信号传输时间和接收端的接收处理时间之和。接收端的接收处理时间之和。有噪音信道的停-等协议所涉及的问题当接收端的反馈确认帧丢失时,必须通过为帧编制当接收端的反馈确认帧丢失时,必须通过为帧编制序序号号来解决重复帧的问题。来解决重复帧的问题。帧的序号位数应尽量的短从而少占用帧头的空间,帧的序号位数应尽量的短从而少占用帧头的空间,这里只需这里只需1个比特位(个比特位(“0”“1”,“1”“0”)即可。这是由于在本协议中,发送)即
21、可。这是由于在本协议中,发送端每发送一个帧都是建立在此帧之前的所有帧都已端每发送一个帧都是建立在此帧之前的所有帧都已正确发送的基础上,只需区分相邻的两个连续帧即正确发送的基础上,只需区分相邻的两个连续帧即可避免重复的可能。可避免重复的可能。协议3:有噪音信道的停-等协议收发双方都需维护各自的帧序号(收发双方都需维护各自的帧序号(sequence number,初始都为初始都为0)。发送端维护的帧序号)。发送端维护的帧序号N(S)表示当前所发帧的序号,接收端表示当前所发帧的序号,接收端维护的帧序号维护的帧序号N(R)表示接收端当前所期待接收的帧序号。发送端表示接收端当前所期待接收的帧序号。发送端
22、从网络层取得第一个分组进行组帧,将从网络层取得第一个分组进行组帧,将N(S)=0的序号放入帧头中的序号放入帧头中作为第一个帧,通过物理层的发送缓存器发送出去,并启动定时作为第一个帧,通过物理层的发送缓存器发送出去,并启动定时计数器,然后停下来等待其响应帧。计数器,然后停下来等待其响应帧。接收端收到一个帧后,对其序号和接收端收到一个帧后,对其序号和N(R)进行比较:进行比较:若不等,则将其作为重复帧而丢弃;若不等,则将其作为重复帧而丢弃;若相等则对其接收,经校验正确并送交网络层后,将若相等则对其接收,经校验正确并送交网络层后,将N(R)加加1(模(模2运算)并放入确认帧中反馈回发送端;若校验出错
23、,运算)并放入确认帧中反馈回发送端;若校验出错,则丢弃出错的帧,保持则丢弃出错的帧,保持N(R)的值不变并放入确认帧中反馈回的值不变并放入确认帧中反馈回发送端。发送端。协议3:有噪音信道的停-等协议发送端若在规定的时间内没有收到接收端的反馈确认帧(超时),发送端若在规定的时间内没有收到接收端的反馈确认帧(超时),就认为数据帧丢失,在保持就认为数据帧丢失,在保持N(S)不变的情况下重新发送缓冲器中不变的情况下重新发送缓冲器中的(旧)帧;若接收到确认帧后,比较确认帧中的序号和的(旧)帧;若接收到确认帧后,比较确认帧中的序号和N(S):若相等,则保持若相等,则保持N(S)不变,重新发送缓冲器中的(旧
24、)帧;不变,重新发送缓冲器中的(旧)帧;若不等,则将确认帧中的序号赋予若不等,则将确认帧中的序号赋予N(S),从网络层获取新的从网络层获取新的分组并组成新帧(分组并组成新帧(N(S)作为序号放入帧头中)交由物理层发作为序号放入帧头中)交由物理层发送出去。送出去。发送端每发送一帧,都会重新启动定时计数器,然后停下来等待发送端每发送一帧,都会重新启动定时计数器,然后停下来等待其响应帧。其响应帧。停-等协议对信道利用率的影响在时延大的信道(如卫星通信)中,停在时延大的信道(如卫星通信)中,停-等协议的效率是很低的。等协议的效率是很低的。考虑两个地面站通过卫星通信,典型的传输时间约为考虑两个地面站通过
25、卫星通信,典型的传输时间约为270ms。假假设一个帧的发送时间为设一个帧的发送时间为20ms,则从发送站开始发送算起,经则从发送站开始发送算起,经20ms+ 270ms=290ms,数据帧才能到达目的站。假设不考虑目的数据帧才能到达目的站。假设不考虑目的站的处理时间,且认为确认帧非常短,其发送时间可忽略不计,站的处理时间,且认为确认帧非常短,其发送时间可忽略不计,则又需则又需270ms确认帧才能被发送站收到。因此信道的利用率为:确认帧才能被发送站收到。因此信道的利用率为:20ms/(290ms+270ms)=1/28,非常低。这是由于每发一个帧之前都非常低。这是由于每发一个帧之前都必须等待前一
26、个帧的确认帧所造成的。必须等待前一个帧的确认帧所造成的。停-等协议对信道利用率的影响为了提高传输效率,可以设想让发送站连续不断地发为了提高传输效率,可以设想让发送站连续不断地发送数据帧,当发完第送数据帧,当发完第28个帧数据后,恰好第个帧数据后,恰好第1帧的确认帧的确认帧到达,根据确认可紧接着发第帧到达,根据确认可紧接着发第29帧或重发第帧或重发第1帧。以帧。以后,每过后,每过20ms(发一个帧)就有一个确认帧到达,这发一个帧)就有一个确认帧到达,这样信道的利用率就大大地提高了。样信道的利用率就大大地提高了。允许发送站连续发送多个帧而不需等待确认的做法称允许发送站连续发送多个帧而不需等待确认的
27、做法称作作管道化管道化(pipelining),),属于一种属于一种窗口窗口(windows)机制。机制。3.5 滑动窗口协议滑动窗口(滑动窗口(Slide Windows)协议是一种非常可靠、适协议是一种非常可靠、适用于各种条件的通用流量控制协议,特别是在效率、用于各种条件的通用流量控制协议,特别是在效率、复杂性及对缓冲区的需求等方面可作灵活调配。复杂性及对缓冲区的需求等方面可作灵活调配。主要的滑动窗口协议有出错全部重发协议和选择重发主要的滑动窗口协议有出错全部重发协议和选择重发协议两种。协议两种。实际上,有噪音信道的停实际上,有噪音信道的停-等协议就是滑动窗口协议的等协议就是滑动窗口协议的
28、一个特例,将停一个特例,将停-等协议中的帧序号从等协议中的帧序号从1位扩展到位扩展到n位位(范围为(范围为02n-1),),收发双方维护的序号也变为一组收发双方维护的序号也变为一组序号表,分别称作序号表,分别称作发送窗口发送窗口(sending window)和和接接收窗口收窗口(receiving window)。)。发送窗口发送窗口就是发送端允许不等确认而连续发送的帧的序号发送窗口就是发送端允许不等确认而连续发送的帧的序号表。表。允许连续发送的帧的数量称为发送窗口尺寸,表示为允许连续发送的帧的数量称为发送窗口尺寸,表示为W。发送端必须有发送端必须有W个输出缓冲区来存放个输出缓冲区来存放W个
29、数据帧的副本以个数据帧的副本以备数据帧的重发。备数据帧的重发。发送端最早发送但还未收到确认的帧的序号称为发送窗口发送端最早发送但还未收到确认的帧的序号称为发送窗口的下沿,表示为的下沿,表示为LN(R) 。 而而 (LN(R)+W-1) 为发送窗口的上为发送窗口的上沿。沿。发送端将来自网络层的分组按顺序编号组帧,只有帧序号发送端将来自网络层的分组按顺序编号组帧,只有帧序号落在发送窗口内的帧才可不等确认直接通过输出缓冲区发落在发送窗口内的帧才可不等确认直接通过输出缓冲区发送出去。送出去。当发送端收到发送窗口下沿帧的肯定确认时,将发送窗口当发送端收到发送窗口下沿帧的肯定确认时,将发送窗口整体向前滑动
30、一个序号,并从输出缓冲区中将相应的数据整体向前滑动一个序号,并从输出缓冲区中将相应的数据帧副本删除。帧副本删除。接收窗口接收窗口是接收端允许接收的帧的序号表。接收窗口是接收端允许接收的帧的序号表。允许接收的帧的数量称为接收窗口尺寸。同样接收端允许接收的帧的数量称为接收窗口尺寸。同样接收端也必须设置相应数量的输入缓冲区来支持接收窗口。也必须设置相应数量的输入缓冲区来支持接收窗口。对接收端收到的帧的序号落在接收窗口外的帧被直接对接收端收到的帧的序号落在接收窗口外的帧被直接丢弃。只有落在接收窗口内的帧才会被接收端进行校丢弃。只有落在接收窗口内的帧才会被接收端进行校验处理,若校验正确:验处理,若校验正
31、确:当接收的帧不是接收窗口下沿帧时,必须暂存在输当接收的帧不是接收窗口下沿帧时,必须暂存在输入缓冲区,不能交给网络层。入缓冲区,不能交给网络层。当接收到接收窗口下沿帧时,会将其连同后面连续当接收到接收窗口下沿帧时,会将其连同后面连续的若干个检验过的正确帧按顺序交给网络层,在发的若干个检验过的正确帧按顺序交给网络层,在发回确认帧的同时将接收窗口向前滑动相应的数量。回确认帧的同时将接收窗口向前滑动相应的数量。滑动窗口示意图帧的序号由帧的序号由3位组成(位组成(07),发送窗口和接收窗口的),发送窗口和接收窗口的尺寸都为尺寸都为3。0123456701234567012345670123456701
32、23456701234567012345670123456701234567012345670123456701234567发送端发送端接收端接收端停-等协议的窗口机制帧的序号由帧的序号由1位组成(位组成(01),发送窗口和接收窗口的),发送窗口和接收窗口的尺寸都为尺寸都为1。010101010101010101010101发送端发送端接收端接收端数据的全双工传输在实际通信中,通常收发双方都相互发送数据。在实际通信中,通常收发双方都相互发送数据。为了提高效率,可以将确认信息放在数据帧中作为一个控制字段为了提高效率,可以将确认信息放在数据帧中作为一个控制字段连同数据一起发送给对方,这种方式称为捎
33、带应答连同数据一起发送给对方,这种方式称为捎带应答(piggybacking)。)。当一方收到对方的数据帧后:当一方收到对方的数据帧后:若正好也有数据需发给对方,则立即可使用捎带应答。若正好也有数据需发给对方,则立即可使用捎带应答。若暂时没有数据需发给对方或数据还未准备好,则等待一定若暂时没有数据需发给对方或数据还未准备好,则等待一定的时间,如果在该时间内准备好了数据,则可以使用捎带应的时间,如果在该时间内准备好了数据,则可以使用捎带应答。如果未准备好,为了防止对方等待时间过长而超时重发,答。如果未准备好,为了防止对方等待时间过长而超时重发,必须立即发送一个单独的确认帧。必须立即发送一个单独的
34、确认帧。使用捎带应答就不可能对每一个帧都作确认,可以用对某一个帧使用捎带应答就不可能对每一个帧都作确认,可以用对某一个帧的确认来代替对该帧之前的所有帧的确认。的确认来代替对该帧之前的所有帧的确认。协议4:出错全部重发协议(go-back-n)出错全部重发协议中,发送窗口的尺寸是大于出错全部重发协议中,发送窗口的尺寸是大于1,而接收窗口的,而接收窗口的尺寸则等于尺寸则等于1。由于接收窗口的尺寸为由于接收窗口的尺寸为1,接收端只能按顺序地接受数据帧,一,接收端只能按顺序地接受数据帧,一旦某个帧出错或丢失,只能简单地丢弃该帧及其所有的后续帧旦某个帧出错或丢失,只能简单地丢弃该帧及其所有的后续帧(因为
35、发送窗口的尺寸是大于(因为发送窗口的尺寸是大于1的),不作任何确认。发送端超的),不作任何确认。发送端超时后需重发出错或丢失的帧及其后续所有的帧。时后需重发出错或丢失的帧及其后续所有的帧。发送端需要为每个待确认的帧都各自设置一个定时计数器。发送端需要为每个待确认的帧都各自设置一个定时计数器。发送窗口的尺寸不能超过发送窗口的尺寸不能超过2n-1,否则会造成接收端无法分辨新、否则会造成接收端无法分辨新、旧数据帧。旧数据帧。出错全部重发协议只要求发送端保持一定数量的缓存来保存没有出错全部重发协议只要求发送端保持一定数量的缓存来保存没有确认的数据帧,对接收端没有缓存的要求。但在误码率高的情况确认的数据
36、帧,对接收端没有缓存的要求。但在误码率高的情况下,会大大降低信道的利用率。下,会大大降低信道的利用率。出错全部重发协议和选择重发协议协议5:选择重发协议(selective repeat)选择重发协议中,发送和接收窗口的尺寸都大于选择重发协议中,发送和接收窗口的尺寸都大于1。由于接收窗口的尺寸大于由于接收窗口的尺寸大于1,接收端可存储坏帧之后的其它数据,接收端可存储坏帧之后的其它数据帧(落在接收窗口),接收端对错帧发否定确认帧,因此发送端帧(落在接收窗口),接收端对错帧发否定确认帧,因此发送端只需重发出错的帧,而不需重发其后的所有后续帧。只需重发出错的帧,而不需重发其后的所有后续帧。接收端正确
37、收到重发的帧后,可对其后连续的已接收的正确帧作接收端正确收到重发的帧后,可对其后连续的已接收的正确帧作一次总体确认(最大序号的确认),并交送网络层。大大提高了一次总体确认(最大序号的确认),并交送网络层。大大提高了信道的利用率。信道的利用率。接收窗口的尺寸不能超过接收窗口的尺寸不能超过2n-1(即序号范围的即序号范围的1/2),否则可能造),否则可能造成帧的重叠。成帧的重叠。发送窗口的尺寸一般和接收窗口的尺寸相同,发送端为每一个输发送窗口的尺寸一般和接收窗口的尺寸相同,发送端为每一个输出缓存区设置一个定时计数器,定时器一旦超时,相应输出缓存出缓存区设置一个定时计数器,定时器一旦超时,相应输出缓
38、存区中的帧就被重发。区中的帧就被重发。接收窗口的尺寸超过2n-1造成帧的重叠3.5 数据链路层协议实例数据链路层协议实例数据链路层协议也称作链路控制规程,通常分为异步数据链路层协议也称作链路控制规程,通常分为异步和同步两大类协议:和同步两大类协议:异步协议以异步协议以字符字符为独立的传输单位,实现字符间的为独立的传输单位,实现字符间的异步和字符内的同步传输。简单,但效率低。异步和字符内的同步传输。简单,但效率低。同步协议以许多字符(同步协议以许多字符(面向字符型协议面向字符型协议)或比特)或比特(面向比特型协议面向比特型协议)组成的数据块(帧)为传输单)组成的数据块(帧)为传输单位,收发双方使
39、用相同的时钟实现复杂的长数据块位,收发双方使用相同的时钟实现复杂的长数据块的同步传输。速度快,效率高,但复杂且成本高。的同步传输。速度快,效率高,但复杂且成本高。面向字符的同步控制协议面向字符的同步控制协议面向字符的同步控制协议面向字符的同步控制协议面向字符的同步协议是最早提出的同步协议,其典面向字符的同步协议是最早提出的同步协议,其典型代表是型代表是IBM的二进制同步通信的二进制同步通信BSC(Binary Synchronous Communication)协议。随后协议。随后ANSI和和ISO都提出了类似的相应标准。都提出了类似的相应标准。用用ASCII和和EBCDIC字符集定义的传输控
40、制字符来字符集定义的传输控制字符来实现建链、拆链等链路管理以及同步等各种功能。实现建链、拆链等链路管理以及同步等各种功能。面向字符的同步控制协议面向字符的同步控制协议标记标记SOHSTXETXEOTENQACKDELNAKSYNETB名称名称序始序始文始文始文终文终送毕送毕询问询问确认确认转义转义否认否认同步同步块终块终ASCII码值码值01H02H03H04H05H06H10H15H16H17HEBCDIC码码值值01H02H03H37H2DH2EH10H3DH32H26H传输控制字符传输控制字符数据帧格式数据帧格式SYNSYNSTX报文报文ETXBCCSYNSYNSOH报头报头STX报文报
41、文ETXBCCSYNSYNSOH报头报头STX报文报文ETBBCCSYNSYNSTX报文报文ETBBCC不带报头的单块报文或分块传不带报头的单块报文或分块传输中的最后一块报文输中的最后一块报文带报头的单块报文带报头的单块报文分块传输中的第分块传输中的第一块报文一块报文分块传输中的中间报文分块传输中的中间报文监控帧格式监控帧格式SYNSYNACKSYNSYNNAKSYNSYN/S前前缀缀站地址站地址ENQSYNSYNEOT肯定确认和选择响应肯定确认和选择响应否定确认和选择响应否定确认和选择响应轮询轮询/选择请求选择请求拆链拆链高级数据链路控制规程高级数据链路控制规程HDLCHDLC(High-L
42、evel Data Link Control)是一个用于点到点连接是一个用于点到点连接的广泛使用的面向比特型的同步数据链路层协议。的广泛使用的面向比特型的同步数据链路层协议。20世纪世纪70年代,年代,IBM的的SNA中提出中提出SDLC(Synchronous Data Link Control)。)。随后,随后,ANSI和和ISO采纳并发展成各自的标准:采纳并发展成各自的标准:ANSI:ADCCP(Advanced Data Communication Control Procedure)ISO:HDLC之后,之后,CCITT采纳修改了采纳修改了HDLC,成为成为LAP(Link Acce
43、ss Procedure),),作为作为X.25网络接口标准的一部分。后来又修改成网络接口标准的一部分。后来又修改成LAPB(Link Access Procedure Balanced),),使之与后来的使之与后来的HDLC版本更加兼容。版本更加兼容。HDLC的工作模式三种站:三种站:主站(主站(primary station):):负责链路的控制。负责链路的控制。次站(次站(secondary station):):仅完成主站指示的工作。仅完成主站指示的工作。复合站(复合站(combined station):):主站和次站组合成的站。主站和次站组合成的站。四种工作模式:四种工作模式:正常
44、响应模式正常响应模式NRM(Normal Response Mode):):一种非平衡一种非平衡数据链路操作方式,适用于面向终端的点数据链路操作方式,适用于面向终端的点-点或点点或点-多点链路。多点链路。非平衡非平衡SSPSRCHDLC的工作模式异步平衡模式异步平衡模式ABM(Asynchronous Balanced Mode):):一种一种平衡的数据链路操作方式,通信双方都为复合站,具有相同平衡的数据链路操作方式,通信双方都为复合站,具有相同的功能且相互作用。的功能且相互作用。分别将上两种工作模式中的帧序号位从分别将上两种工作模式中的帧序号位从3位扩展到位扩展到7位就构成位就构成了两种扩展
45、的(了两种扩展的(extended)工作模式:工作模式:NRME和和ABME。平衡平衡CSCSC/RR/CHDLC的帧结构标志(标志(flag)字段:字段:比特模式为比特模式为01111110,用于标识一帧的开始和,用于标识一帧的开始和结束。采用比特结束。采用比特 “0” 填充技术。填充技术。地址(地址(address)字段字段:在点在点-多点线路中,用于指明通信的端址。地址的种类有单地多点线路中,用于指明通信的端址。地址的种类有单地址、组地址(高位为址、组地址(高位为“1”)、广播地址(全)、广播地址(全“1”)及用于)及用于测试的无站地址(全测试的无站地址(全“0”)四种。)四种。在点在点
46、-点线路中,有时用来区分命令帧点线路中,有时用来区分命令帧(C)和响应帧和响应帧(R)。控制(控制(control)字段字段:用于构成各种命令和响应,对链路监视和:用于构成各种命令和响应,对链路监视和控制。是控制。是HDLC的关键部分。的关键部分。数据(数据(data)字段字段:数据内容,长度不限,一般为:数据内容,长度不限,一般为10002000比特。比特。校验和(校验和(checksum)字段字段:使用:使用16位的位的CRC对两个标志间的内容对两个标志间的内容进行校验。进行校验。在空闲的线路上,不断传输标志序列。最小帧只有在空闲的线路上,不断传输标志序列。最小帧只有3个字段,共个字段,共
47、32比特。小于比特。小于32比特的帧是无效帧。比特的帧是无效帧。HDLC的帧类型HDLC使用具有使用具有3位序号(位序号(07)的滑动窗口协议。通过控制字段)的滑动窗口协议。通过控制字段中的第中的第1或或2位可将帧标识成三种类型:位可将帧标识成三种类型:信息(信息(Information)帧帧监控(监控(Supervisory)帧帧无序号(无序号(Unnumbered)帧帧标志标志01111110校验和校验和数据数据控制控制地址地址标志标志011111108160888比特数比特数M5M4M3P/FM2M111UnnumberedN(R)P/FS2S101SupervisoryN(R)P/FN
48、(S)0Information87654321控制字段比特控制字段比特HDLC的信息帧信息帧用于传输数据,简称信息帧用于传输数据,简称 I 帧。帧。N(S)是发送帧的序号。是发送帧的序号。N(R)用于捎带应答,表示下一个期待接收的帧。用于捎带应答,表示下一个期待接收的帧。P/F为探询为探询/终止(终止(Poll/Final)比特:比特:当主站轮询各个从站时,将其置为当主站轮询各个从站时,将其置为“P”,表示允许从站发送表示允许从站发送数据;从站可连续发送多帧数据,最后一帧该位必须为数据;从站可连续发送多帧数据,最后一帧该位必须为“F ”,表示数据传输结束。表示数据传输结束。在命令帧中将其置为在
49、命令帧中将其置为“P ”还表示向对方询问状态,收到该还表示向对方询问状态,收到该位为位为“P”的命令帧的站必须立即以置的命令帧的站必须立即以置“F”的响应帧进行响的响应帧进行响应。应。HDLC的监控帧监控帧用于差错和流量控制,简称监控帧用于差错和流量控制,简称 S 帧,不携带数据字段,帧长帧,不携带数据字段,帧长只有只有32比特。比特。S1和和S2是是S帧的类型编码,四种组合:帧的类型编码,四种组合:类型类型0(00):):肯定确认帧肯定确认帧RR(Receive Ready),),表示准备表示准备好接收序号为好接收序号为N(R)的帧。的帧。类型类型1(01):):否定确认帧否定确认帧REJ(
50、Reject),),表示检测到一个表示检测到一个传输错误,要求传输错误,要求重发从序号重发从序号N(R)开始的所有帧开始的所有帧。类型类型2(10):):RNR(Receive Not Ready),),表示小于序号表示小于序号N(R)的帧已全部正确收到,但还未准备好接收下一个帧(如的帧已全部正确收到,但还未准备好接收下一个帧(如缓存区不空),要求对方停止发送。缓存区不空),要求对方停止发送。类型类型3(11):):SREJ(Selective Reject),),表示表示只重发序号为只重发序号为N(R)的帧的帧。监控帧都可用作命令帧,通过将监控帧都可用作命令帧,通过将P/F置为置为“P”表示
51、向对方询问状表示向对方询问状态,态, P/F=F的的RR帧用来响应已收到的帧用来响应已收到的P/F=P的命令帧。的命令帧。HDLC的无序号帧无序号帧因其控制字段中不包含序号(无序号帧因其控制字段中不包含序号(N(S)和和N(R))而得名,简称而得名,简称U 帧。主要用于各种控制功能。帧。主要用于各种控制功能。各类面向比特型链路协议的差别主要就体现在各类面向比特型链路协议的差别主要就体现在U帧中。帧中。U帧的类型由帧的类型由M1M5(修正位)的不同编码来表示,主要的命令和修正位)的不同编码来表示,主要的命令和响应有:响应有:置模式命令置模式命令:SNRM:Set NRMSABM:Set ABMS
52、NRME:Set NRMESABME:Set ABMEDISC(DISConnect):):断开连接(命令)。断开连接(命令)。DM(Disconnect Mode):):已断开方式(响应)。已断开方式(响应)。UA(Unnumbered Acknowledgement):):对无序号命令的确认。对无序号命令的确认。HDLC扩展工作模式的控制字段000M5M4M3P/FM2M111UN(R)P/F0S2S101SN(R)P/FN(S)0I16151413121110987654321HDLC的链路访问规程的链路访问规程以以LAPB为例为例分为三个阶段。分为三个阶段。DCE连续发连续发FLAG表
53、示处表示处于正常状态。于正常状态。DM.F*表示表示F为为“0”的的DM主动响应帧。主动响应帧。I x.y表示表示N(S)=x,N(R)=y的的I帧。帧。RR .y及及REJ .y表示表示N(R)=y的肯定和否定确认帧。的肯定和否定确认帧。FLAGDM.F*SABM.PUA.FI 0.0I 0.0I 1.0I 2.1I 1.1RR .3I 3.2 I 4.2I 2.3REJ .3I 3.3I 4.3RR .5DISC.PUA.FDTEDCE建立建立链路链路数据数据传输传输断开断开链路链路Internet中的数据链路层一台家庭个人计算机接入一台家庭个人计算机接入InternetInternet
54、1984年年Rick Adams提出提出,目的目的使使SUN工作工作站站连接到因特网规连接到因特网规则则: 每一个每一个IP数据数据报报的的首尾首尾各各加上一个特加上一个特殊殊的标的标志志字节字节ND(0Xc0)封封装装成成SLIP帧帧 SLIP串行线路IP(Serial Line IP)SLIP串行线路IP(Serial Line IP)SLIP的问题:的问题:. . 没有差错控制功能没有差错控制功能. . 通信通信双方需双方需要事先要事先知知道对道对方方的的IP地址地址. . 只只支持支持IP协议协议,不不支持支持其它协议其它协议. . 未未成为成为Internet标标准准应用情况:应用情
55、况:. . 用用于于低速交低速交互业互业务务(19.2kb/s). . CSLIP(Compressed SLIP). . 对对TCP首部首部和和IP首部首部进行进行压缩压缩,减少减少数据传输量数据传输量, 提提高响高响应时间应时间PPP(point-to-point protocol)点到点协议IETF的一个的一个小组小组提出的对提出的对SLIP改改进的进的DL协议协议PPP协议的协议的组组成成部部分分组帧(封装组帧(封装IP数据数据报)报)的的方法,方法,将将IP包包前后加一些信息构成前后加一些信息构成LCP 链路控制规程,建立配链路控制规程,建立配置置和测和测试试数据链路的协议数据链路的
56、协议一种协商网络层选项的方法,一种协商网络层选项的方法,NCP 网络控制协议,如网络控制协议,如:为为IP协协议分配议分配临临时时IP地址,地址,支持支持多个网络层协议多个网络层协议PPP帧结构帧结构A和和C字段字段0XFF 0X03协议协议0021 IP C021为为LCP 8021 NCP解决解决透明问题透明问题0X7E变变成成0X7D 0X5E, 0X7D变变成成0X7D 0X5D用于无序号模式操作下的PPP完整帧格式标志01111110校验和有效载荷协议控制00000011地址11111111标志0111111012或41或2111字节数PPP工作工作过程过程. . 建立物理连接建立物理连接. . LCP 协协商商PPP参参数,数据链路连接数,数据链路连接. . NCP 网络配网络配置,置,网络连接网络连接. . 通信通信. . 使使用用NCP释释放网络连接放网络连接. . LCP释释放放DL连接连接. . 释释放物理连接放物理连接A simplified phase diagram for bring a line up and down.PPP(point-to-point protocol)点到点协议The LCP frame types.PPP(point-to-point protocol)点到点协议第三章习题2,5,9,15,17,29,32