ch33讲数据链路层讲解打印版.docx

上传人:b****6 文档编号:8061234 上传时间:2023-01-28 格式:DOCX 页数:20 大小:304.79KB
下载 相关 举报
ch33讲数据链路层讲解打印版.docx_第1页
第1页 / 共20页
ch33讲数据链路层讲解打印版.docx_第2页
第2页 / 共20页
ch33讲数据链路层讲解打印版.docx_第3页
第3页 / 共20页
ch33讲数据链路层讲解打印版.docx_第4页
第4页 / 共20页
ch33讲数据链路层讲解打印版.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

ch33讲数据链路层讲解打印版.docx

《ch33讲数据链路层讲解打印版.docx》由会员分享,可在线阅读,更多相关《ch33讲数据链路层讲解打印版.docx(20页珍藏版)》请在冰豆网上搜索。

ch33讲数据链路层讲解打印版.docx

ch33讲数据链路层讲解打印版

第三章数据链路层(6学时)

本章概述:

数据链路层主要内容为:

两台相邻机器之间实现可靠、有效的通信而涉及到的一些算法。

所谓相邻,意思是指两台机器通过一条通信信道连接起来,这里的通信信道在概念上就像一条线(比如同轴电缆、电话线或者点到点的无线信道)。

一条信道像一条线,这也暗示了它的一个本质特性,即在一条信道上递交的数据位的顺序与发送的顺序完全相同。

相邻机器的通信并不简单,影响因素有:

 通信线路的偶尔错误,通信线路的数据传输率有限,传输延迟等.所以协议必须考虑这些因素的影响.

数据链路层的任务是将物理层提供的原始位流转换成可供网络层使用的帧流。

数据链路层用到了各种成帧的方法,包括字符计数法、字节填充法和位填充法。

数据链路协议可以提供错误控制能力,以便重传损环的或者丢失的帧。

为了避免快速的发送方淹没一个慢速的接收方,数据链路协议还要提供流控制功能。

滑动窗口机制是—种被广泛使用的技术,它可以方便地将错误控制和流控制结合在一起来考虑。

滑动窗口协议可以按照发送方的窗口大小和接收方的窗口大小来进行分类。

当两个窗口的大小都是l的时候,滑动窗口协议变成了停—等协议。

当发送方的窗口大于1(例如,为了避免发送方由于长的传输延迟而阻塞线路)的时候,接收方可以有两种实现办法:

除了下一个顺序帧以外其他的帧都丢弃;或者将所有乱序的帧都缓存起来,一直到需要这些帧的时候。

3.1数据链路层设计要点

数链层基本功能:

向网络层提供一个定义良好的服务接口;处理传输错误;调节数据流,防止淹死接收方.

图3.1分组和帧之间的关系

●3.1.1为网络层提供服务

图3.2(a)虚拟通信过程;(b)实际通信过程

图3.3数据链路层协议的位置

●3.1.2成帧

1.字符计数法

在帧头中用一个域来表示整个帧的字符个数

缺点:

若计数出错,对本帧和后面的帧有影响

图3.4一个字符流(a)无差错(b)有一个差错

2.带字符填充的首尾字符定界法

缺点:

局限于8位字符和ASCII字符传送。

图3.5(a)有标志字节作为分界的帧;(b)字节填充前后的4个字节序列例子

3.带位填充的首尾标记定界法

-帧的起始和结束都用一个特殊的位串“01111110”,称为标记(flag)

-“0”比特插入删除技术

图3.6位填充(a)原始数据;(b)线路上的数据;(c)删除填充之后存储在接收方存储器中的数据

4.物理层编码违例法

802LAN:

曼彻斯特编码或差分曼彻斯特编码用high-lowpair/low-highpair表示1/0,high-high/low-low不表示数据,可以用来做定界符。

注意:

在很多数据链路协议中,使用字符计数法和一种其它方法的组合。

●3.1.3错误控制

帧完全丢失

一般方法:

接收方给发送方一个反馈(响应)。

接收方反馈接收情况信息→确认:

肯定性确认否定性确认

出错情况

-帧(包括发送帧和响应帧)出错;

-帧(包括发送帧和响应帧)丢失→计数器(计时用)

-收到重复帧→帧编号

通过计时器和序号保证每帧最终交给目的网络层仅一次是数据链路层的一个主要功能。

●3.1.4流控制

淹没问题,两种流控制策略:

基于反馈的流控制和基于速率的流控制(第5章讲)

3.2错误检测和纠正

▪差错出现的特点(错误分为两种):

随机的,单个位,孤立的错误,

连续突发(burst)一次连续许多位错误更难以纠正

▪处理差错的两种基本策略

-使用纠错码:

发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,并能纠正错误。

-使用检错码:

发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,但不能判断哪里有错。

●纠错码(error-correctingcode),技术上又称为前向纠错(forwarderrorcorrection)(适用于低可靠性信道—无线链路,在数据块中加入足够冗余信息,减少重传,因重传也可能是错误的)

-码字(codeword):

一个帧包括m个数据位,r个校验位,n=m+r,则此n比特单元称为n位码字。

-海明距离(Hammingdistance):

两个码字之间不同的比特位数目。

例:

0000000000与0000011111的海明距离为5

如果两个码字的海明距离为d,则需要d个单比特错就可以把一个码字转换成另一个码字;

为了检查出d个错(单比特错),需要使用海明距离为d+1的编码;

为了纠正d个错,需要使用海明距离为2d+1的编码。

▪最简单的例子是奇偶校验,在数据后填加一个奇偶位

-例:

使用偶校验(“1”的个数为偶数)

10110101——>101101011

10110001——>101100010

-奇偶校验可以用来检查奇数个错误。

▪设计纠错码

-要求:

m个报文位,r个校验位,纠正单比特错;

-对2m个合法报文中任何一个,有n=m+r个与其距离为1的非法码字,因此每个合法的报文都要求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

▪海明码工作过程

-每个码字到来前,接收方计数器清零;

-接收方检查每个校验位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位的报文.请问,需要多少个检查位才能确保接收方可以检测并纠正单个位错误?

对于报文1101,0011,0011,0101,请给出所传输的位模式.假设在海明码中使用了偶数位.

解:

m=16,根据公式(m+r+1)≤2r得r≥5,即至少需要5个检查位.(1,2,4,8,16)

1101,0011,0011,0101

1=13=1+2

2=25=1+4

4=47=1+2+4

7=1+2+411=1+2+8

8=812=4+8

11=1+2+815=1+2+4+8

12=4+817=1+16

14=2+4+819=1+2+16

16=1621=1+4+16

0110,1011,0011,0011,1010,1(答案错误)

0111,1011,0011,0011,1010,1(正确)

●检错码(error-detectingcode)(适用于高可靠性信道—光纤)

▪使用纠错码传数据,效率低,适用于不可能重传的场合;大多数情况采用检错码加重传。

▪循环冗余码(CRC码,多项式编码)

循环冗余校验码CyclicRedundancyCheck

-110001,表示成多项式x5+x4+1

▪生成多项式G(x)GeneratorPolynomial

-发方、收方事前商定;

-生成多项式的高位和低位必须为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的检错能力

-发送:

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整除,那么能够发现两个比特错的充分条件是:

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))=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+1

IEEE802使用CRC-32

▪硬件实现CRC校验

-网卡NIC(NetworkInterfaceCard)

练习:

3-14

3.3基本数据链路层协议

●一个无限制的单工协议

▪工作在理想情况,几个前提:

-单工传输

-发送方无休止工作(要发送的信息无限多)

-接收方无休止工作(缓冲区无限大)

-通信线路(信道)不损坏或丢失信息帧

▪工作过程

-发送程序:

取数据,构成帧,发送帧;

-接收程序:

等待,接收帧,送数据给高层

●一个单工的停-等协议

▪增加约束条件:

接收方不能无休止接收。

▪解决办法:

接收方每收到一个帧后,给发送方回送一个响应。

▪工作过程

-发送程序:

取数据,成帧,发送帧,等待响应帧

-接收程序:

等待,接收帧,送数据给高层,回送响应帧。

●有噪声信道的单工协议

▪增加约束条件:

信道(线路)有差错,信息帧可能损坏或丢失。

▪解决办法:

出错重传。

▪带来的问题:

-什么时候重传——定时

-响应帧损坏怎么办(重复帧)——发送帧头中放入序号

-为了使帧头精简,序号取多少位——1位

▪发方在发下一个帧之前等待一个肯定确认的协议叫做PAR(PositiveAcknowledgementwithRetransmission)或ARQ(AutomaticRepeatreQuest)

▪工作过程

3.4滑动窗口协议

▪单工——>全双工

▪捎带/载答(piggybacking):

暂时延迟待发确认,以便附加在下一个待发数据帧的技术。

-优点:

充分利用信道带宽,减少帧的数目意味着减少“帧到达”中断;

-带来的问题:

复杂。

▪本节的三个协议统称滑动窗口协议,都能在实际(非理想)环境下正常工作,区别仅在于效率、复杂性和对缓冲区的要求。

▪滑动窗口协议(SlidingWindowProtocol)工作原理

-发送的信息帧都有一个序号,从0到某个最大值,0~2n-1,一般用n个二进制位表示;

-发送端始终保持一个已发送但尚未确认的帧的序号表,称为发送窗口。

发送窗口的上界表示要发送的下一个帧的序号,下界表示未得到确认的帧的最小编号。

发送窗口大小=上界-下界,大小可变;

-发送端每发送一个帧,序号取上界值,上界加1;每接收到一个正确响应帧,下界加1;

-接收端有一个接收窗口,大小固定,但不一定与发送窗口相同。

接收窗口的上界表示允许接收的序号最大的帧,下界表示希望接收的帧;

-接收窗口容纳允许接收的信息帧,落在窗口外的帧均被丢弃。

序号等于下界的帧被正确接收,并产生一个响应帧,上界、下界都加1。

接收窗口大小不变。

●1位滑动窗口协议

▪协议特点

-窗口大小:

N=1,发送序号和接收序号的取值范围:

0,1;

-可进行数据双向传输,信息帧中可含有确认信息(piggybacking技术);

-信息帧中包括两个序号域:

发送序号和接收序号(已经正确收到的帧的序号)

▪存在问题

-能保证无差错传输,但是基于停等方式;

-若双方同时开始发送,则会有一半重复帧;

-效率低,传输时间长。

●使用退回n帧技术的协议

▪为提高传输效率而设计

-例:

✓卫星信道传输速率50kbps,往返传输延迟500ms,若传1000bit的帧,使用协议4,则传输一个帧所需时间为:

发送时间+信息信道延迟+确认信道延迟(确认帧很短,忽略发送时间)=1000bit/50kbps+250ms+250ms=520ms

✓信道利用率=20/520≈4%

-结论

✓传输延迟大,信道带宽高,帧短时,信道利用率低。

-解决办法

✓连续发送多帧后再等待确认,称为流水线技术(pipelining)。

-带来的问题

✓信道误码率高时,对损坏帧和非损坏帧的重传非常多

▪两种基本方法

-退后n帧(gobackn)

✓接收方从出错帧起丢弃所有后继帧;

✓接收窗口为1;

✓对于出错率较高的信道,浪费带宽。

-选择重传(selectiverepeat)

✓接收窗口大于1,先暂存出错帧的后继帧;

✓只重传坏帧;

✓对最高序号的帧进行确认;

✓接收窗口较大时,需较大缓冲区。

●使用选择性重传的协议

对于选择重传ARQ协议,若用n比特进行编号,则接收窗口的最大值受下式的约束

WR≤2n/2发送窗口大小:

WT≤2n-1

假定接收窗口等于7的情况WR=7,seq域为3bit

问题的本质是:

当接收方向前移动了它的窗口之后,新的有效序列号范围与老的范围之间有重叠.

3.5协议验证(del)

3.6数据链路层协议示例

●HDLC—高级数据链路控制

面向比特的链路控制规程HDLC

HDLC概述

✓1974年,IBM公司推出了面向比特的规程SDLC(SynchronousDataLinkControl)。

✓后来ISO把SDLC修改后称为HDLC(High-levelDataLinkControl),译为高级数据链路控制,作为国际标准ISO3309。

✓CCITT则将HDLC再修改后称为链路接入规程LAP(LinkAccessProcedure)。

不久,HDLC的新版本又把LAP修改为LAPB,“B”表示平衡型(Balanced),所以LAPB叫做链路接入规程(平衡型)。

HDLC帧结构

位填充法(0比特填充法)

✓标志域(字段)F(Flag)为6个连续1加上两边各一个0共8bit。

在接收端只要找到标志字段就可确定一个帧的位置。

✓HDLC采用零比特填充法使一帧中两个F字段之间不会出现6个连续1。

✓在发送端,当一串比特流数据中有5个连续1时,就立即填入一个0。

✓在接收帧时,先找到F字段以确定帧的边界。

接着再对比特流进行扫描。

每当发现5个连续1时,就将其后的一个0删除,以还原成原来的比特流。

✓采用零比特填充法就可传送任意组合的比特流,或者说,就可实现数据链路层的透明传输。

✓当连续传输两个帧时,前一个帧的结束标志字段F可以兼作后一帧的起始标志字段。

✓当暂时没有信息传送时,可以连续发送标志字段,使收端可以一直和发端保持同步。

其它域(字段)

✓地址域(字段)A是8bit。

多终端线路,用来区分终端;

点到点线路,有时用来区分命令和响应。

若帧中的地址是接收该帧的站的地址,则该帧是命令帧;

若帧中的地址是发送该帧的站的地址,则该帧是响应帧。

✓帧检验序列FCS域(字段)共16bit。

所检验的范围是从地址字段的第一个比特起,到信息字段的最末一个比特为止。

✓控制域(字段)C共8bit,是最复杂的字段。

HDLC的许多重要功能都靠控制字段来实现。

帧类型

-信息帧(Information)(a)

-监控帧(Supervisory)(b)

-无序号帧(Unnumbered)(c)

-序号(Seq)

▪使用滑动窗口技术,3位序号,发送窗口大小为7

-捎带确认(Next)

▪捎带第一个未收到的帧序号,而不是最后一个已收到的帧序号

-探询/结束P/F位(Poll/Final)

▪命令帧置“P”,响应帧置“F”。

有些协议,P/F位用来强迫对方机器立刻发控制帧;

▪多终端系统中,计算机置“P”,允许终端发送数据;终端发向计算机的帧中,最后一个帧置为“F”,其它置为“P”。

-类型(Type)

▪“0”表示确认帧RR(RECEIVEREADY);

▪“1”表示否定性确认帧REJ(REJECT)。

(退回n帧重传)

▪“2”表示接收未准备好RNR(RECEIVENOTREADY)(要发方停)

•“3”表示选择拒绝SREJ(SELECTIVEREJECT)(选择性重传)

-无序号帧

-可以用来传控制信息,也可在不可靠无连接服务中传数据。

●Internet中的数据链路层

1.PPP协议的工作原理

✓现在全世界使用得最多的数据链路层协议是点对点协议PPP(Point-to-PointProtocol)。

✓用户使用拨号电话线接入因特网时,一般都是使用PPP协议。

用户拨号入网的示意图

✓1992年制订了PPP协议。

经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661]。

✓PPP协议有三个组成部分

一个将IP数据报封装到串行链路的方法。

链路控制协议LCP(LinkControlProtocol)。

网络控制协议NCP(NetworkControlProtocol)。

2.PPP协议的帧格式

✓PPP的帧格式和HDLC的相似。

✓标志域(字段)F仍为0x7E(符号“0x”表示后面的字符是用十六进制表示。

十六进制的7E的二进制表示是01111110)。

✓地址域(字段)A只置为0xFF。

地址域(字段)实际上并不起作用。

✓控制域(字段)C通常置为0x03。

✓PPP是面向字节的,所有的PPP帧的长度都是整数字节。

✓PPP提供差错校验、支持多种协议、允许动态分配IP地址、支持认证

✓PPP有一个2个字节的协议域(字段)。

⏹当协议域(字段)为0x0021时,PPP帧的信息域(字段)就是IP数据报。

⏹若为0xC021,则信息域(字段)是PPP链路控制数据。

⏹若为0x8021,则表示这是网络控制数据。

✓不提供使用序号和确认的可靠传输

PPP协议之所以不使用序号和确认机制是出于以下的考虑:

⏹在数据链路层出现差错的概率不大时,使用比较简单的PPP协议较为合理。

⏹在因特网环境下,PPP的信息字段放入的数据是IP数据报。

数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。

⏹帧检验序列FCS字段可保证无差错接受。

3.PPP协议的工作状态

✓当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。

✓PC机向路由器发送一系列的LCP分组(封装成多个PPP帧)。

✓这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP给新接入的PC机分配一个临时的IP地址,使PC机成为因特网上的一个主机。

✓通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。

接着,LCP释放数据链路层连接。

最后释放的是物理层的连接。

PPP协议的状态图

本章小结:

数据链路层的任务:

 把物理层的原始位流---→可供网络层使用的帧流.

各种成帧方法:

字符计数法,字节填充法,位填充法

数据链路层协议可以提供错误控制能力,以便重传损坏的或丢失的帧.

为了避免快速的发送方淹没慢速的接收方,数据链路层协议还要提供流控制功能.

滑动窗口机制是一种被广泛使用的技术,它可以方便地将错误控制和流控制结合在一起来考虑.

滑动窗口协议可以按照发送方和接收方的窗口大小来分类:

WT=1,WR=1停-等协议;WT>1,WR=1退后n帧重传协议,接收方把除下一个顺序帧以外的其它帧均丢弃;WT>1,WR>1选择性重传协议,接收方将在发送窗口之内的所有乱序帧均缓存起来,一直到需要这些帧的时候.

本章讨论了一系列协议.“乌托邦”协议—无错环境,收发双方可以处理任何发给它的流量;协议2仍假设无错环境,但引入流控制;协议3引入序列号,并使用停-等算法来处理错误.协议4允许双向通信,引入捎带确认的概念.协议5为退后n帧的滑窗协议;协议6为选择性重发滑窗协议,并引入NAK否定性确认技术.

协议建模分析----有限状态机和Petri网删减

有些网络的数据链路层采用某种面向位的协议,如SDLC,HDLC,ADCCP,LAPB.所有这些协议均----使用标志字节为帧边界,使用位填充技术来避免在数据中出现标志字节,使用一个滑动窗口来实现流控制.

Internet使用PPP作为点到点线路上的基本数据链路协议.面向字节,不提供使用序号和确认的可靠传输,不使用滑动窗口技术.

本章习题:

2,3,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1