ch33讲数据链路层讲义(打印版)_第1页
ch33讲数据链路层讲义(打印版)_第2页
ch33讲数据链路层讲义(打印版)_第3页
ch33讲数据链路层讲义(打印版)_第4页
ch33讲数据链路层讲义(打印版)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章 数据链路层(6学时)本章概述: 数据链路层主要内容为: 两台相邻机器之间实现可靠、有效的通信而涉及到的一些算法。所谓相邻,意思是指两台机器通过一条通信信道连接起来,这里的通信信道在概念上就像一条线(比如同轴电缆、电话线或者点到点的无线信道)。一条信道像一条线, 这也暗示了它的一个本质特性, 即在一条信道上递交的数据位的顺序与发送的顺序完全相同。相邻机器的通信并不简单, 影响因素有:通信线路的偶尔错误, 通信线路的数据传输率有限, 传输延迟等. 所以协议必须考虑这些因素的影响. 数据链路层的任务是将物理层提供的原始位流转换成可供网络层使用的帧流。数据链路层用到了各种成帧的方法,包括字符计

2、数法、字节填充法和位填充法。数据链路协议可以提供错误控制能力,以便重传损环的或者丢失的帧。为了避免快速的发送方淹没一个慢速的接收方, 数据链路协议还要提供流控制功能。滑动窗口机制是种被广泛使用的技术,它可以方便地将错误控制和流控制结合在一起来考虑。滑动窗口协议可以按照发送方的窗口大小和接收方的窗口大小来进行分类。当两个窗口的大小都是l的时候,滑动窗口协议变成了停等协议。当发送方的窗口大于1(例如,为了避免发送方由于长的传输延迟而阻塞线路)的时候,接收方可以有两种实现办法:除了下一个顺序帧以外其他的帧都丢弃;或者将所有乱序的帧都缓存起来,一直到需要这些帧的时候。3.1 数据链路层设计要点数链层基

3、本功能: 向网络层提供一个定义良好的服务接口; 处理传输错误; 调节数据流, 防止淹死接收方.图3.1 分组和帧之间的关系l 3.1.1为网络层提供服务图3.2 (a)虚拟通信过程; (b)实际通信过程图3.3 数据链路层协议的位置l 3.1.2成帧1字符计数法在帧头中用一个域来表示整个帧的字符个数缺点:若计数出错,对本帧和后面的帧有影响图3.4 一个字符流 (a) 无差错 (b) 有一个差错2带字符填充的首尾字符定界法缺点:局限于8位字符和ASCII字符传送。图3.5 (a) 有标志字节作为分界的帧; (b) 字节填充前后的4个字节序列例子3带位填充的首尾标记定界法- 帧的起始和结束都用一个

4、特殊的位串“01111110”,称为标记(flag)- “0”比特插入删除技术图3.6 位填充 (a) 原始数据; (b) 线路上的数据; (c) 删除填充之后存储在接收方存储器中的数据4物理层编码违例法802 LAN:曼彻斯特编码或差分曼彻斯特编码用high-low pair/low-high pair表示1/0,high-high/low-low不表示数据,可以用来做定界符。注意:在很多数据链路协议中,使用字符计数法和一种其它方法的组合。l 3.1.3 错误控制 帧完全丢失一般方法:接收方给发送方一个反馈(响应)。接收方反馈接收情况信息à确认: 肯定性确认 否定性确认出错情况-

5、帧(包括发送帧和响应帧)出错;- 帧(包括发送帧和响应帧)丢失 à计数器(计时用) - 收到重复帧à帧编号通过计时器和序号保证每帧最终交给目的网络层仅一次是数据链路层的一个主要功能。l 3.1.4流控制 淹没问题, 两种流控制策略: 基于反馈的流控制 和 基于速率的流控制(第5章讲)3.2 错误检测和纠正§ 差错出现的特点(错误分为两种):随机的, 单个位, 孤立的错误,连续突发(burst) 一次连续许多位错误 更难以纠正§ 处理差错的两种基本策略- 使用纠错码:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,并能纠正错

6、误。- 使用检错码:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,但不能判断哪里有错。l 纠错码(error-correcting code), 技术上又称为前向纠错(forward error correction)(适用于低可靠性信道无线链路, 在数据块中加入足够冗余信息, 减少重传, 因重传也可能是错误的)- 码字(codeword):一个帧包括m个数据位,r个校验位,n = m + r,则此n比特单元称为n位码字。- 海明距离(Hamming distance):两个码字之间不同的比特位数目。l 例:0000000000 与0000011111的海明距

7、离为5l 如果两个码字的海明距离为d,则需要d个单比特错就可以把一个码字转换成另一个码字;l 为了检查出d个错(单比特错),需要使用海明距离为 d + 1 的编码;l 为了纠正d个错,需要使用海明距离为 2d + 1 的编码。§ 最简单的例子是奇偶校验,在数据后填加一个奇偶位- 例:使用偶校验(“1”的个数为偶数)10110101>10110101110110001>101100010- 奇偶校验可以用来检查奇数个错误。§ 设计纠错码- 要求:m个报文位,r个校验位,纠正单比特错;- 对2m个合法报文中任何一个,有n=m+r个与其距离为1的非法码字,因此每个合法

8、的报文都要求n+1个位模式, 专门供它使用. 由于总共只有2n个位模式, 所以有:(n + 1) 2m £ 2n- 利用 n = m + r,得到 (m + r + 1) £ 2r。给定m,利用该式可以得出校正单比特误码的校验位数目的下界. 例如, m=8, 则r>=4.§ 海明码- 码位从左边开始编号,从“1”开始;- 位号为2的幂的位是校验位,其余是信息位;- 每个校验位使得包括自己在内的一些位的奇偶值为偶数(或奇数)。- 为看清数据位k对哪些校验位有影响,将k写成2的幂的和。例:11 = 1 + 2 + 8§ 海明码工作过程- 每个码字到来前

9、,接收方计数器清零;- 接收方检查每个校验位k (k = 1, 2, 4 )的奇偶值是否正确;- 若第 k 位奇偶值不对,计数器加 k;- 所有校验位检查完后,若计数器值为0,则码字有效;若计数器值为m,则第m位出错。例:若校验位1、2、8出错,则第11位变反。§ 使用海明码纠正突发错误- 可采用k个码字(n = m + r)组成 k ´ n 矩阵,按列发送,接收方恢复成 k ´ n 矩阵- kr个校验位,km个数据位,可纠正最多为k个的突发性连续比特错。图3.7 利用海明码来纠正突发性错误例题: 习题3-9 练习: 3-10, 3-11假设使用海明码来传输16位

10、的报文. 请问, 需要多少个检查位才能确保接收方可以检测并纠正单个位错误? 对于报文 1101, 0011, 0011, 0101, 请给出所传输的位模式. 假设在海明码中使用了偶数位.解: m=16, 根据公式(m+r+1) £ 2r得 r³5, 即至少需要5个检查位. (1,2,4,8,16)1101, 0011, 0011, 01011=1 3=1+22=2 5=1+44=4 7=1+2+47=1+2+4 11=1+2+88=8 12=4+811=1+2+8 15=1+2+4+812=4+8 17=1+1614=2+4+8 19=1+2+1616=16 21=1+4+

11、160110, 1011, 0011, 0011, 1010, 1(答案错误)0111, 1011, 0011, 0011, 1010, 1(正确)l 检错码(error-detecting code) (适用于高可靠性信道光纤)§ 使用纠错码传数据,效率低,适用于不可能重传的场合;大多数情况采用检错码加重传。§ 循环冗余码(CRC码,多项式编码)循环冗余校验码 Cyclic Redundancy Check- 110001,表示成多项式 x5 + x4 + 1§ 生成多项式G(x) Generator Polynomial- 发方、收方事前商定;- 生成多项式的

12、高位和低位必须为1- 生成多项式必须比传输信息对应的多项式短。§ CRC码基本思想- 校验和(checksum)加在帧尾,使带校验和的帧的多项式能被G(x)除尽;收方接收时,用G(x)去除它,若有余数,则传输出错。§ 校验和计算算法- 设G(x)为 r 阶,在帧的末尾加 r 个0,使帧为m + r位,相应多项式为xrM(x);- 按模2除法用对应于G(x)的位串去除对应于xrM(x)的位串;- 按模2减法从对应于xrM(x)的位串中减去余数(等于或小于r位),结果就是要传送的带校验和的多项式T(x)。图3.8 多项式编码校验和的计算过程§ CRC的检错能力- 发送

13、:T(x);接收:T(x) + E(x), E(x) ¹ 0, E(x)中的每一个”1”位都对应于有一位变反了;- 余数(T(x) + E(x) / G(x) = 0 + 余数(E(x) / G(x)- 若余数(E(x) / G(x) = 0,则差错不能发现;否则,可以发现。§ CRC检错能力的几种情况分析- 如果只有单比特错,即E(x) = xi,而G(x)中至少有两项,余数(E(x) / G(x) ¹ 0,所以可以查出单比特错;- 如果发生两个孤立单比特错,即E(x) = xi + xj = xj (xi-j + 1),假定G(x)不能被x整除,那么能够发现两

14、个比特错的充分条件是:xk + 1不能被G(x)整除 (k £ i - j);- 如果有奇数个比特错,即E(x)包括奇数个项,因为在模2系统中, 没有一个奇数项多项式包含x+1作为因子, 所以G(x)选(x + 1)的倍数就能查出奇数个比特错;- 具有r个校验位的多项式能检查出所有长度 £ r 的突发性差错。长度为k的突发性连续差错可表示为 xi (xk-1 + + 1),若G(x)包括x0项,且 k - 1小于G(x)的阶,则 余数(E(x) / G(x) ¹ 0;- 如果突发差错长度为 r + 1,当且仅当突发差错和G(x)一样时, 余数(E(x) / G(x

15、) = 0,概率为1/2r-1;- 长度大于 r + 1的突发差错或几个较短的突发差错发生后,坏帧被接收的概率为 1/2r。§ 四个多项式已成为国际标准- CRC-12 = x12 + x11 + x3 + x2 + x + 1- CRC-16 = x16 + x15 + x2 + 1- CRC-CCITT = x16 + x12 + x5 + 1- CRC-32 =x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1 + 1IEEE 802 使用CRC-32§ 硬件实现CRC

16、校验- 网卡NIC(Network Interface Card)练习: 3-143.3 基本数据链路层协议l 一个无限制的单工协议§ 工作在理想情况,几个前提:- 单工传输- 发送方无休止工作(要发送的信息无限多)- 接收方无休止工作(缓冲区无限大)- 通信线路(信道)不损坏或丢失信息帧§ 工作过程- 发送程序:取数据,构成帧,发送帧;- 接收程序:等待,接收帧,送数据给高层物理层数据链路层网络层运输层应用层物理层网络层运输层应用层数据链路层Node 1Node 2l 一个单工的停-等协议§ 增加约束条件:接收方不能无休止接收。§ 解决办法:接收方每收

17、到一个帧后,给发送方回送一个响应。§ 工作过程- 发送程序:取数据,成帧,发送帧,等待响应帧- 接收程序:等待,接收帧,送数据给高层,回送响应帧。物理层数据链路层网络层运输层应用层物理层网络层运输层应用层数据链路层Node 1Node 2l 有噪声信道的单工协议§ 增加约束条件:信道(线路)有差错,信息帧可能损坏或丢失。§ 解决办法:出错重传。§ 带来的问题:- 什么时候重传 定时- 响应帧损坏怎么办(重复帧) 发送帧头中放入序号- 为了使帧头精简,序号取多少位 1位§ 发方在发下一个帧之前等待一个肯定确认的协议叫做PAR(Positive A

18、cknowledgement with Retransmission)或ARQ(Automatic Repeat reQuest)§ 工作过程0物理层数据链路层网络层运输层应用层物理层网络层运输层应用层数据链路层Node 1Node 200000000111111111111111111000000000000000LostTimeout3.4 滑动窗口协议§ 单工 > 全双工§ 捎带/载答(piggybacking):暂时延迟待发确认,以便附加在下一个待发数据帧的技术。- 优点:充分利用信道带宽,减少帧的数目意味着减少“帧到达”中断;- 带来的问题:复杂。

19、§ 本节的三个协议统称滑动窗口协议,都能在实际(非理想)环境下正常工作,区别仅在于效率、复杂性和对缓冲区的要求。§ 滑动窗口协议(Sliding Window Protocol)工作原理- 发送的信息帧都有一个序号,从0到某个最大值,0 2n - 1,一般用n个二进制位表示;- 发送端始终保持一个已发送但尚未确认的帧的序号表,称为发送窗口。发送窗口的上界表示要发送的下一个帧的序号,下界表示未得到确认的帧的最小编号。发送窗口大小 = 上界 - 下界,大小可变;- 发送端每发送一个帧,序号取上界值,上界加1;每接收到一个正确响应帧,下界加1;- 接收端有一个接收窗口,大小固定,

20、但不一定与发送窗口相同。接收窗口的上界表示允许接收的序号最大的帧,下界表示希望接收的帧;- 接收窗口容纳允许接收的信息帧,落在窗口外的帧均被丢弃。序号等于下界的帧被正确接收,并产生一个响应帧,上界、下界都加1。接收窗口大小不变。l 1位滑动窗口协议§ 协议特点- 窗口大小:N = 1,发送序号和接收序号的取值范围:0,1;- 可进行数据双向传输,信息帧中可含有确认信息(piggybacking技术);- 信息帧中包括两个序号域:发送序号和接收序号(已经正确收到的帧的序号)§ 存在问题- 能保证无差错传输,但是基于停等方式;- 若双方同时开始发送,则会有一半重复帧;- 效率低

21、,传输时间长。l 使用退回n帧技术的协议§ 为提高传输效率而设计- 例:ü 卫星信道传输速率50kbps,往返传输延迟500ms,若传1000bit的帧,使用协议4,则传输一个帧所需时间为: 发送时间 + 信息信道延迟 + 确认信道延迟(确认帧很短,忽略发送时间)= 1000bit / 50kbps + 250ms + 250ms = 520msü 信道利用率 = 20 / 520 » 4%- 结论ü 传输延迟大,信道带宽高,帧短时,信道利用率低。- 解决办法ü 连续发送多帧后再等待确认,称为流水线技术(pipelining)。- 带

22、来的问题ü 信道误码率高时,对损坏帧和非损坏帧的重传非常多§ 两种基本方法- 退后n帧(go back n)ü 接收方从出错帧起丢弃所有后继帧;ü 接收窗口为1;ü 对于出错率较高的信道,浪费带宽。- 选择重传(selective repeat)ü 接收窗口大于1,先暂存出错帧的后继帧;ü 只重传坏帧;ü 对最高序号的帧进行确认;ü 接收窗口较大时,需较大缓冲区。l 使用选择性重传的协议对于选择重传 ARQ 协议,若用 n 比特进行编号,则接收窗口的最大值受下式的约束WR £ 2n/2 发送窗口

23、大小:WT £ 2n-1 假定接收窗口等于7的情况WR=7, seq域为3bit 问题的本质是: 当接收方向前移动了它的窗口之后, 新的有效序列号范围与老的范围之间有重叠. 3.5 协议验证(del)3.6 数据链路层协议示例l HDLC高级数据链路控制面向比特的链路控制规程 HDLC HDLC概述ü 1974年,IBM 公司推出了面向比特的规程SDLC (Synchronous Data Link Control)。ü 后来 ISO 把 SDLC 修改后称为 HDLC (High-level Data Link Control),译为高级数据链路控制,作为国际标

24、准ISO 3309。ü CCITT 则将 HDLC 再修改后称为链路接入规程 LAP (Link Access Procedure)。不久,HDLC 的新版本又把 LAP 修改为 LAPB,“B”表示平衡型(Balanced),所以 LAPB 叫做链路接入规程(平衡型)。 HDLC帧结构 位填充法(0比特填充法)ü 标志域(字段) F (Flag) 为 6 个连续 1 加上两边各一个 0 共 8 bit。在接收端只要找到标志字段就可确定一个帧的位置。 ü HDLC 采用零比特填充法使一帧中两个 F 字段之间不会出现 6 个连续 1。ü 在发送端,当一串比

25、特流数据中有 5 个连续 1 时,就立即填入一个 0。ü 在接收帧时,先找到 F 字段以确定帧的边界。接着再对比特流进行扫描。每当发现 5 个连续 1 时,就将其后的一个 0 删除,以还原成原来的比特流。 ü 采用零比特填充法就可传送任意组合的比特流,或者说,就可实现数据链路层的透明传输。ü 当连续传输两个帧时,前一个帧的结束标志字段 F 可以兼作后一帧的起始标志字段。ü 当暂时没有信息传送时,可以连续发送标志字段,使收端可以一直和发端保持同步。 其它域(字段)ü 地址域(字段) A 是 8 bit。 多终端线路,用来区分终端;点到点线路,有时

26、用来区分命令和响应。若帧中的地址是接收该帧的站的地址,则该帧是命令帧;若帧中的地址是发送该帧的站的地址,则该帧是响应帧。ü 帧检验序列 FCS 域(字段)共 16 bit。所检验的范围是从地址字段的第一个比特起,到信息字段的最末一个比特为止。 ü 控制域(字段) C 共 8 bit,是最复杂的字段。HDLC 的许多重要功能都靠控制字段来实现。 帧类型- 信息帧(Information)(a)- 监控帧(Supervisory)(b)- 无序号帧(Unnumbered)(c)- 序号(Seq)§ 使用滑动窗口技术,3位序号,发送窗口大小为7- 捎带确认(Next)&

27、#167; 捎带第一个未收到的帧序号,而不是最后一个已收到的帧序号- 探询/结束 P/F位(Poll/Final)§ 命令帧置“P”,响应帧置“F”。有些协议,P/F位用来强迫对方机器立刻发控制帧;§ 多终端系统中,计算机置“P”,允许终端发送数据;终端发向计算机的帧中,最后一个帧置为“F”,其它置为“P”。- 类型(Type)§ “0”表示确认帧 RR(RECEIVE READY);§ “1”表示否定性确认帧 REJ(REJECT)。(退回n帧重传)§ “2”表示接收未准备好 RNR(RECEIVE NOT READY)(要发方停) “3”表

28、示选择拒绝 SREJ(SELECTIVE REJECT)(选择性重传)- 无序号帧- 可以用来传控制信息,也可在不可靠无连接服务中传数据。l Internet中的数据链路层1. PPP 协议的工作原理ü 现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。ü 用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。 用户拨号入网的示意图ü 1992 年制订了 PPP 协议。经过 1993 年和 1994 年的修订,现在的 PPP 协议已成为因特网的正式标准RFC 1661。 ü PPP协议有三

29、个组成部分 一个将 IP 数据报封装到串行链路的方法。链路控制协议 LCP (Link Control Protocol)。网络控制协议 NCP (Network Control Protocol)。 2. PPP 协议的帧格式ü PPP 的帧格式和 HDLC 的相似。 ü 标志域(字段) F 仍为 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。ü 地址域(字段) A 只置为 0xFF。地址域(字段)实际上并不起作用。ü 控制域(字段) C 通常置为 0x03。ü PPP 是面向字

30、节的,所有的 PPP 帧的长度都是整数字节。 ü PPP 提供差错校验、支持多种协议、允许动态分配IP地址、支持认证ü PPP 有一个 2 个字节的协议域(字段)。n 当协议域(字段)为 0x0021 时,PPP 帧的信息域(字段)就是IP 数据报。n 若为 0xC021, 则信息域(字段)是 PPP 链路控制数据。n 若为 0x8021,则表示这是网络控制数据。 ü 不提供使用序号和确认的可靠传输 PPP 协议之所以不使用序号和确认机制是出于以下的考虑:n 在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。n 在因特网环境下,PPP 的信息字段放入的数据是 IP 数据报。数据链路层的可靠传输并不

温馨提示

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

评论

0/150

提交评论