




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机网络数据链路层计算机网络数据链路层1本章内容掌握链路、数据数据链路的概念,理解数据链路层的功能理解停止等待协议的工作原理与过程理解数据链路层差错控制原理理解数据链路层流量控制的意义与方法掌握面向比特数据链路层协议HDLC的帧结构与帧分类理解PPP链路协议的工作过程本章内容掌握链路、数据数据链路的概念,理解数据链路层的功能难点与重点数据链路层基本概念与功能ARQ协议原理链路层差错控制原理HDLC协议与帧结构难点与重点数据链路层基本概念与功能4.1数据链路层功能链路概念(Link):是一条无源的点到点的物理线段,中间没有任何其他节点,进行通信的两台计算机的通路往往由许多链路组成。数据链路(DataLink):在不可靠的物理链路上添加一些由硬件及软件实现的控制规程,构成数据链路,以保证准确传输数据帧。4.1数据链路层功能链路概念(Link):是一条无源的点数据链路层功能链路管理
链路的建立、维持与释放。帧同步
保证接收方能从比特流中分离出数据帧流量控制
协调发送方与接收方同步工作差错控制
接收方能检验出有错误的帧,并采取相应措施。数据链路层功能链路管理数据链路层功能透明传输
数据链路层并不关心所传数据内容,按一定规则能从帧中区分数据与控制信息。寻址
在多点连接时保证帧被准确送达目的节点。数据链路层功能透明传输4.2停止等待协议理想的链路:链路很可靠,数据帧不会出错与丢失;不管发送方以多快的速率发送,接收方都能来得及接收而保证不丢失数据帧。此时不需要链路层协议。主机链路层主机链路层节点A节点B帧帧4.2停止等待协议理想的链路:主机链路层主机链路层节点A节停止等待协议不可靠的链路导致可能出现的情况:数据帧出错(噪声干扰)数据帧不能到达(链路错误)接收溢出(结点差异)数据帧重复(链路阻塞)停止等待协议不可靠的链路导致可能出现的情况:数据链路层差错控制解决“数据帧出错”方法:可对欲发送的帧进行差错编码,接收方通过差错校验,可判断出接收的数据帧是否发生错误。如果接收错误,就向发送方发送一出错标识帧,称为否认帧NAK,通知发送方重新传送原数据帧。
数据链路层差错控制解决“数据帧出错”方法:数据链路层差错控制示意图DATA0校验出错NAKDATA0确认出错重新传送节点A节点B校验正确提交主机数据链路层差错控制示意图DATA0校验出错NAKDATA0确数据链路层简单流量控制解决“接收溢出”方法:可以采用发送方每发送一帧,就停止发送,等待接收方的确认信息。接收方每收到一个正确的数据帧就向发送方发送一确认标识帧,称为确认帧ACK。发送方接收到确认帧,则继续发送下一帧。数据链路层简单流量控制解决“接收溢出”方法:数据链路层简单流量控制示意图节点A节点BDATA0校验正确提交主机发确认帧ACKDATA1收到确认发送新帧停止发送等待确认ACKDATA2数据链路层简单流量控制示意图节点A节点BDATA0校验正确提超时自动重新传送解决“数据帧丢失”方法:可在发送方每发送完一个数据帧就启动一个超时计时器,其时间可设为略大于“从发完数据帧到收到确认帧所需的平均时间”。如果超时,发送方还没有收到ACK,则认为帧丢失,自动将数据帧重新发送。超时自动重新传送解决“数据帧丢失”方法:超时重新传送示意图节点A节点BACKDATA0DATA1DATA0数据帧丢失超时确认丢失重新传送校验正确发送确认帧收到确认发送新帧超时重新传送示意图节点A节点BACKDATA0DATA1DA重复帧处理当接收方正确接收数据帧并发出确认帧,但确认帧丢失。发送方在规定时限内没有接收到确认信息,认为数据帧丢失,自动重新传送原数据帧。这样接收方又收到一个同样的数据帧,称为重复帧。可通过对数据帧编号的方法解决。发送方将欲发送的数据帧编好序号,如接收方收到序号相同的帧,则将重复帧丢弃,并向发送方重新发送确认帧。重复帧处理当接收方正确接收数据帧并发出确认帧,但确认帧丢失。重复帧处理示意图节点A节点BACKDATA100确认帧丢失超时DATA100ACKDATA101接收正确保留副本发送确认收到重复帧,丢弃发送确认认为丢失重新传送收到确认发送新帧重复帧处理示意图节点A节点BACKDATA100确认帧丢失超停止等待协议发送方每发送完一帧就要等待接收方的确认信息。如果出错可由发送方自动重传。因此称为自动请求重传,即ARQ(AutomaticRepeatreQuest)。因为每次只发送一帧,可用1个比特为帧序号编码,来区分重复帧。停止等待协议发送方每发送完一帧就要等待接收方的确认信息。如果停止等待协议数据帧出错或丢失(发送确认与否认帧)确认帧出错或丢失(超时重传)否认帧出错或丢失(超时重传)溢出(停止等待)重复数据(帧编号)上层数据检错序号标志地址数据帧接收序号检错标志地址确认帧停止等待协议数据帧出错或丢失(发送确认与否认帧)上层数据检错停止等待协议发送算法⑴vs←0{发送序号初始化}
⑵data←get_host(){从主机取数据}⑶data_s←(data,vs,CRC){数据帧编码}⑷send(data_s){{发送数据帧}⑸time_out(){启动超时计时器}
⑹data_r←recive(){接收数据帧}⑺if(data_r=null)and(time_out()=0)goto⑹⑻if(data_r=ACK)vs=1-vs,goto⑵{正确}
⑼if(data_r=NAK)goto⑷{出错重传}
⑽if(time_out()=1)goto⑷{超时重传}
停止等待协议发送算法⑴vs←0{发送序号初始化}停止等待协议接收算法⑴vr←0{接收序号初始化}⑵data_r=recive()⑶if(data_r=null)goto⑵{等待接收}⑷ifCRC(data_r)send(NAK),data_r=null,goto⑵{帧错误,发送否认帧}⑸if(ns!=vs)data_r=null,goto⑻{丢弃重复}⑹if(data_r!=null)send_host(data_r)⑺vr=1-vr{变接收序号,准备接收下一帧}⑻send(ACK),goto⑵停止等待协议接收算法⑴vr←0{接收序号初始ARQ算法总结在发送方只有收到ACK后,才改变发送序号;接收方只有接收到无误的且与发送序号相同的帧,才改变接收序号,如果序号不同,则丢弃帧并发送ACK。数据000AC数据000AC01ACC11A1AC1C数据110AC数据1101AC0A上层数据检错序号标志地址ARQ算法总结在发送方只有收到ACK后,才改变发送序号;接收差错控制方法在所发送的数据块上附加一定的冗余位,使接收方能够推导出已发送数据应该是什么,如果发现错误,可以自动纠正错误。附加的冗余位,称为自动纠错编码。在数据块上附加冗余位,使接收方能检测出是否有差错,但并不知道差错在哪里,也不会自动纠正错误,而是请求发送方重新传送数据,以消除错误。差错控制方法在所发送的数据块上附加一定的冗余位,使接收方能够CRC校验技术计算机网络数据链路层广泛采用循环冗余码作为差错编码,有较强的检错能力。要求双方事先约定一个生成多项式G(X),其高位与低位必须是1。编码时将检验和附加在传输帧后,形成特定的数据帧,使其能被G(X)除尽。当接收方收到此帧后,用G(X)去除它,若有余数,则有传输错误,请求发送方重传该帧。CRC校验技术计算机网络数据链路层广泛采用循环冗余码作为差错常用的国际标准生成多项式CRC-12
G(X)=X12+X11+X3+X2+X+1CRC-16G(X)=X16+X15+X2+1CRC-CCITTG(X)=X16+X15+X5+1CRC-32
=X23+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1常用的国际标准生成多项式CRC-124.3连续ARQ协议
ARQ协议是一个实用的链路层协议。每发送完一帧都要等待确认帧,通信双方不需要太多的帧缓存,且算法简单易实现。但信道利用率并不高。可采用连续自动请求重传方案,即连续ARQ协议。不用等待前一帧被确认便可发送下一帧。这就需要在发送方设置一个较大的缓冲存储空间,用以存放若干待确认的信息帧。当发送方收到对某信息帧的确认帧后便可从帧缓存中将该信息帧删除,并继续发送数据帧。所以,连续ARQ协议使得信道利用率大大提高。4.3连续ARQ协议ARQ协议是一个实用的链路层协议。每连续ARQ协议原理123465发送完第一帧后并不等待,继续发送后续几帧每个确认帧都要有编号,说明对相应的帧确认节点A节点B连续ARQ协议原理123465发送完第一帧后并不等待,继续发Go-BACK-N超时重传发送方接收方01XDDD2345023452345出错丢弃1012345Go-BACK-N超时重传发送方接收方01XDDD2345连续ARQ协议发送方将待发送的帧编好序号。发送完第0号帧后,不是停止等待确认帧,而是继续发送第1号帧、第2号帧等。由于连续发送了很多帧,所以接收方应对确认帧或否认帧编号,以通知发送方是对哪一帧进行的确认或否认。由此可见连续ARQ协议可大大提高信道的利用率,但重传时造成数据重复传送,又会降低通信效率。
连续ARQ协议发送方将待发送的帧编好序号。发送完第0号帧后,选择重传为了进一步提高信道的利用率,接收方只将出错的帧丢弃,接收正确的帧保存在接收缓存中,设法要求发送方只传送出现差错的那一帧,一旦收到重新传来的帧后,就可以将原已存于缓冲区中的其余帧一并按正确的顺序上交主机。这种方法称为选择重传(SelectRepeat),显然,选择重传减少了浪费,但要求接收方有足够大的缓冲区空间。选择重传为了进一步提高信道的利用率,接收方只将出错的帧丢弃,4.4流量控制链路层的流量控制是通信双方能协调工作的保障,如果没有合理的流量控制手段,可能造成数据丢失。增加缓冲存储空间在某种程度上可以缓解收、发双方在传输速率上的差异,但并不能完全解决这一矛盾。经常使用的流量控制方法有XON/XOFF与窗口机制。4.4流量控制链路层的流量控制是通信双方能协调工作的保障,如XON/XOFFXON/XOFF主要应用于面向字符通信中,使用一对控制字符来实现流量控制。其中XON采用ASCII字符集中的控制字符DC1,XOFF采用ASCII字符集中的控制字符DC3。当通信路上的接收方发生过载时,便向发送方发送一个XOFF字符,发送方接收XOFF字XON/XOFFXON/XOFF主要应用于面向字符通信中,使XON/XOFF工作原理节点A节点BXOFFXON连续发送字符继续发送字符接收缓存将满接收完毕XON/XOFF工作原理节点A节点BXOFFXON连续发送字窗口机制在ARQ协议中,因为每发送完一帧都要停止等待确认信息,流量控制简单。只要求通信双方拥有一帧的缓存空间,只要超时时限选择合理,不需要额外的流量控制机制。对于连续ARQ协议如果发送方没有收到任何来自收方的确认信息,发送方是不能无限制地发送数据帧的。窗口机制在ARQ协议中,因为每发送完一帧都要停止等待确认信息窗口机制发送方缓存中需保留未被确认的帧副本,以备重传。计算机的硬件资源是有限的,缓存容量不能无限制增加。发送数据帧过多,一旦有一帧出现错误,可能有很多帧需要重传,造成很大的浪费,增加了很多不必要的开销。为了对连续发送的大量数据帧进行编号,每帧的发送序号也要占用较多的比特,又增加了一定的开销。窗口机制发送方缓存中需保留未被确认的帧副本,以备重传。计算机滑动窗口的概念需要对连续ARQ协议中连续发送的未被确认的帧数做一定的限制。在发送方设置发送窗口,用来对发送方进行流量控制,其大小WT代表在发送方还没有收到对方确认信息情况下最多可以连续发送的数据帧数。在接收方设置接收窗口。接收窗口用来控制接收方应该接收哪些帧,只有收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。滑动窗口的概念需要对连续ARQ协议中连续发送的未被确认的帧数1042375601已收到0号帧,准备接收1号帧ab接收方0142375601接收窗口Wr=1,准备接收0号帧接收方0142375601发送窗口Wt=5,允许发送0号到4号帧发送方0142375601已收到确认,允许发送1号到4号帧发送方1042375601已收到0号帧,准备接收1号帧ab接收方01042375601已收到0-3号帧,准备接收4号帧接收方0123457601已收到确认,允许发送4号到0号帧发送方0123456701230123456701231042375601已收到0-3号帧,准备接收4号帧接收方0不难看出,只有接收窗口向前滑动时,发送窗口才能移动。收发两端的窗口按以上规律不断向前滑动,称为滑动窗口协议。显然ARQ协议发送与接收窗口均为1。另外,接收方并不需要对每一个数据帧都发回确认信息,可以在接收若干正确数据帧后,才对最后一个数据帧发送确认信息。不难看出,只有接收窗口向前滑动时,发送窗口才能移动。收发两端窗口总结综上所述,对于三种不同的ARQ协议的窗口大小的设置是不同的。ARQ协议(停止等待):发送窗口=1,接受窗口=1。连续ARQ协议(后退N步法):发送窗口>1,接收窗口=1。选择重传ARQ:发送窗口>1,接收窗口>1窗口总结综上所述,对于三种不同的ARQ协议的窗口大小的设置是4.5面向比特的链路控制规程比较通用的协议可分为两类,这就是面向字符的链路控制协议与面向比特的链路控制协议。所谓面向字符就是说在链路上所传送的数据必须是由规定字符集(例如ASCII码)中的字符所组成。同时在链路上传送的控制信息也必须由同一个字符集中的若干规定的控制字符构成。4.5面向比特的链路控制规程比较通用的协议可分为两类,这就是面向字符与面向比特协议面向字符的控制协议有许多弱点,例如,通信线路利用率低,可靠性差,通用性不强,扩展能力弱等。面向比特的链路控制规程,是采用带填充位的首尾标志将一组比特封装成帧,通过定义不同类型的帧格式,实现链路层的功能。它成为链路层的主要协议,是世界上广泛采用的协议。面向字符与面向比特协议面向字符的控制协议有许多弱点,例如,通HDLC基本配置复合站复合站命令/响应命令/响应主站从站从站HDLC基本配置复合站复合站命令/响应命令/响应主站从站从站HDLC基本配置非平衡配置的特点是由一个主站控制整个链路的工作。主站发出的帧叫做命令。受控的各站叫做次站或从站()。次站发出的帧叫做响应(response)。平衡配置的特点是链路两端的两个站都是复合站(combinedstation)。复合站同时具有主站与次站的功能。因此每个复合站都可以发出命令和响应。HDLC基本配置非平衡配置的特点是由一个主站控制整个链路的工HDLC帧结构HDLC帧由标志字段、地址字段、控制字段、信息字段和帧校验字段组成。HDLC定义了三种类型的帧,即信息帧、监控帧与无编号帧。每类帧又包含若干命令与响应,常习惯上称为命令帧与响应帧。HDLC帧结构HDLC帧由标志字段、地址字段、控制字段、信息HDLC帧结构标志字段F地址字段A控制字段C信息字段infoFCS校验标志字段F校验区间透明区间HDLC帧结构标志地址控制信息FCS标志校验区间透明区间标志字段数据链路层要解决帧同步的问题,即要从收到的比特流中正确地区分出一个帧的开始比特与结束比特。为此HDLC规定了在一个帧的开头和结尾各放入一个特殊的标记,作为一个帧的边界。这个标志称为标志字段F(Flag)。标志字段为6个连续的1加上两边各一个0共8位(7EH)。在接收端,只要找到标志字段F,就可以很容易地确定一个帧的位置。标志字段数据链路层要解决帧同步的问题,即要从收到的比特流中正零比特填充法在发送端,当一串比特流尚未加上标志字段时,先用硬件扫描全部比特(用软件也能实现,但要慢些)。只要发现有5个连续1,则立即填入一个0。经过这种零比特填充后的数据,就可以保证不会出现6个连续1。在接收一个帧时,先找到标志字段以确定帧的边界。接着再用硬件对其中的比特流进行扫描。每当发现5个连续1时,就将这5个连续1后的一个0删除,以还原成原来的比特流。零比特填充法在发送端,当一串比特流尚未加上标志字段时,先用硬零比特填充法
010011111010001010填人0比特
01001111110001010会误认为是F字段数据中某一段比特组合恰好出现和F字段一样的情况发送端在5个连1之后填入0比特在接收端将5个连1后的0比特删除,恢复原样
01001111110001010删除0比特零比特填充法0100111110100010100100零比特填充法举例传送数据为7C7D7E7F011111000111110101111110011111117C7D7E7F011111000011111001011111010011110111填充原始数据填充后数据01111100,00111110,01011111,01001111,01117C3E5F4F70零比特填充法举例传送数据为7C7D7E7F01111100地址字段地址字段A也是8个比特。在使用非平衡方式传送数据时,地址字段总是写入次站的地址。但在平衡方式时,地址字段总是填入应答站的地址。全1地址是广播方式,而全0地址是无效地址。因此,有效的地址共有254个之多。地址字段可以扩充地址字段地址字段A也是8个比特。在使用非平衡方式传送数据时,信息字段与校验序列从网络层交下来的分组,变成为数据链路层的数据。信息字段的长度没有具体规定。帧校验序列FCS字段共占16bit。它采用的生成多项式是CRC-CCITT。所校验的范围是从地址字段的第1个比特起,到信息字段的最末1个比特为止。信息字段与校验序列从网络层交下来的分组,变成为数据链路层的数控制字段控制字段C共8bit,是最复杂的字段。HDLC的许多重要功能都要靠控制字段来实现。根据其最前面两个比特的取值,可将HDLC帧划分为三大类,即信息帧、监督帧和无编号帧,它们的简称分别是I(Information),S(Supervisory)和U(Unnumbered)控制字段控制字段C共8bit,是最复杂的字段。HDLC的许控制字段格式P/F:询问/终止(Poll/Final)比特比特序号01234567信息帧0N(S)P/FN(R)监督帧10SP/FN(R)无编号帧11MP/FM控制字段格式P/F:询问/终止(Poll/Final)比特比信息帧N(S)表示当前发送的信息帧的序号,而N(R)表示该站所期望收到的帧的发送序号。即在该帧发送之前,接收方已正确接收到N(R)之前的所有帧。N(R)带有确认的意思,不必专门为收到的信息帧发送确认应答帧。可以在本站有信息帧发送时,将确认信息放在其接收序号N(R)中让本站发送信息帧时将确认信息捎带走。信息帧N(S)表示当前发送的信息帧的序号,而N(R)表示该站监督帧格式2-3位帧名功能00RR接收准备好准备接收下一帧确认N(R)以前的帧01RNR接收未准备好暂停接收下一帧确认N(R)以前的帧10REJ拒绝从N(R)起的所有帧都被否认11SREJ选择拒绝只否认序号为N(R)的帧监督帧格式2-3位帧名功能00RR接收准备好准备接收下一帧0监督帧所有的监督帧都不包含要传送的数据信息,因此它只有48bit长。四种监督帧中,前三种用在连续ARQ协议中,而最后一种只用于选择重传ARQ协议中。011111100000001010010111011111100000011100000111标志标志地址CRC控制暂停接收,确认7号以前的帧(期望接收7号帧)监督帧所有的监督帧都不包含要传送的数据信息,因此它只有48b无编号帧无编号帧本身不带编号,即无N(S)和N(R)字段,而是用5bit来表示不同功能的无编号帧。虽然总共可以有32个不同组合,但实际上目前只定义了15种无编号帧。无编号帧主要起控制作用,可在需要时随时发出。无编号帧无编号帧本身不带编号,即无N(S)和N(R)字段,而无编号帧举例命令名称MN编码功能SNRM00001置正常响应模式SABM
11100置异步平衡模式DISC/RD00010拆除链路/请求拆除RESET11001复位FRMR10001收到非定义帧1100X010DISC/RD无编号帧举例命令名称MN编码功能SNRM00001置正常响应无编号帧举例SNRM等帧:用于链路的建立,为链路选择不同的工作模式,并把所有计数器的初始状态置为零。DISC帧:此命令用来终止以前建立的操作模式,通知对方停止通信,并拆除链路。RD帧:当双方通信结束,由一方提出通信结束要求,请求拆除链路。FRMR(帧拒绝响应)帧:当收到一个错误的帧,并且无法通过重传此帧恢复错误时,则发出FRMR帧,由主站或复合站负责处理这种情况。无编号帧举例SNRM等帧:用于链路的建立,为链路选择不同的工PPP协议全世界范围内使用最多的拨号接入Internet协议为非常简单的点对点协议PPP(Point-to-PointProtocol)。用户要拨号上网,首先到因特网服务提供者ISP处注册。ISP拥有高速链路与Internet相连。用户可使用调制解调器,通过电话线拨号到ISP。ISP在接到用户的呼入后,进行身份验证。如果是合法用户,将一个临时的IP地址分配给用户,使用户的计算机成为接入Internet的主机,可使用Internet所提供的各种服务PPP协议全世界范围内使用最多的拨号接入Internet协议PC机拨号接入Internet
高速链路用户PC用户调制解调器ISP调制解调器ISP路由器因特网用户电话线使用TCP/IP的PPP链路TCP/IP客户进程路由进程PC机拨号接入Internet高速链路用户用户ISP调制解PPP协议PPP由三部分组成:将IP数据报封装到串行链路的方法。PPP既支持异步链路,也支持面向比特的同步链路。链路控制协议LCP主要完成数据链路的建立、配置和测试等任务。通信的双方可协商一些选项。一套网络控制协议NCP,可支持不同网络层的协议。PPP协议PPP由三部分组成:PPP协议帧格式信息字段infoFCS校验标志字段F小于1500字节标志字段7E地址字段FF控制字段03协议字段PPP协议帧格式信息FCS标志小于1500字节标志地址控制协PPP协议帧格式标志字段为0x7E,地址字段为0xFF,控制字段为0x03。这三各字段是固定不变的,所有PPP帧都应以07EFF03开始。协议字段占两个字节,当协议字段为0x0021时,PPP帧的信息就是IP数据报。若为0xC021,则信息字段是PPP链路控制数据。而0x8021表示这是网络控制数据。帧校验序列FCS与HDLC的相同。PPP协议帧格式标志字段为0x7E,地址字段为0xFF,控制PPP的透明传输当PPP工作在同步传输链路中时,使用零比特填充法(与HDLC相同),保证透明传输。当PPP工作于异步传输链路时,使用一种特殊的字符填充方法。PPP的透明传输当PPP工作在同步传输链路中时,使用零比特填字符填充法将信息字段中出现的每一个0x7E字节转变成2个字节序列0x7D与0x5E。若信息字段中出现0x7D字节,则将其转换为2字节序列0x7D与0x5D。若信息字段中出现ASCII控制字符(小于0x20的字符),则在该字符前要加入一个0x7D字节。字符填充法将信息字段中出现的每一个0x7E字节转变成2个字节字符填充法举例原始数据填充数据6E7D5E7D5D507D196E7E7D5019在恢复数据时如果0x7D后的数据为0x5E,则恢复为0x7E。若为0x5D,则保留0x7D,去掉0x5D。若为小于0x20的字节则去掉0x7D。这样可保证PPP帧能透明传输。字符填充法举例原始数据填充数据6E7D5E7D5D507D1PPP协议工作过程当用户拨号呼叫ISP时,由ISP的调制解调器对呼叫作出确认,并建立一条物理连接。这时用户PC机向ISP路由器发送一系列的LCP分组(封装成多个PPP帧),双方协商一些PPP参数。接着进行网络层配置,由NCP给新接入的PC机分配一个临时IP地址。这样,用户的PC机成为了Internet上的一台主机。当用户通信结束时,NCP释放网络层连接,回收原来分配的IP地址。接着LCP释放链路层连接。最后释放物理层连接。PPP协议工作过程当用户拨号呼叫ISP时,由ISP的调制解调PPP链路工作状态静止建立鉴别网络通信终止检测到载波失败通信结束载波停止协商选项失败鉴别成功NCP配置PPP链路工作状态静止建立鉴别网络通信终止检测到载波失败通信作业绘制停止等待协议发送与接收算法流程图。HDLC帧如何组成?是如何保证透明传输的?何为PPP协议?画图说明其工作过程。作业绘制停止等待协议发送与接收算法流程图。计算机网络数据链路层计算机网络数据链路层71本章内容掌握链路、数据数据链路的概念,理解数据链路层的功能理解停止等待协议的工作原理与过程理解数据链路层差错控制原理理解数据链路层流量控制的意义与方法掌握面向比特数据链路层协议HDLC的帧结构与帧分类理解PPP链路协议的工作过程本章内容掌握链路、数据数据链路的概念,理解数据链路层的功能难点与重点数据链路层基本概念与功能ARQ协议原理链路层差错控制原理HDLC协议与帧结构难点与重点数据链路层基本概念与功能4.1数据链路层功能链路概念(Link):是一条无源的点到点的物理线段,中间没有任何其他节点,进行通信的两台计算机的通路往往由许多链路组成。数据链路(DataLink):在不可靠的物理链路上添加一些由硬件及软件实现的控制规程,构成数据链路,以保证准确传输数据帧。4.1数据链路层功能链路概念(Link):是一条无源的点数据链路层功能链路管理
链路的建立、维持与释放。帧同步
保证接收方能从比特流中分离出数据帧流量控制
协调发送方与接收方同步工作差错控制
接收方能检验出有错误的帧,并采取相应措施。数据链路层功能链路管理数据链路层功能透明传输
数据链路层并不关心所传数据内容,按一定规则能从帧中区分数据与控制信息。寻址
在多点连接时保证帧被准确送达目的节点。数据链路层功能透明传输4.2停止等待协议理想的链路:链路很可靠,数据帧不会出错与丢失;不管发送方以多快的速率发送,接收方都能来得及接收而保证不丢失数据帧。此时不需要链路层协议。主机链路层主机链路层节点A节点B帧帧4.2停止等待协议理想的链路:主机链路层主机链路层节点A节停止等待协议不可靠的链路导致可能出现的情况:数据帧出错(噪声干扰)数据帧不能到达(链路错误)接收溢出(结点差异)数据帧重复(链路阻塞)停止等待协议不可靠的链路导致可能出现的情况:数据链路层差错控制解决“数据帧出错”方法:可对欲发送的帧进行差错编码,接收方通过差错校验,可判断出接收的数据帧是否发生错误。如果接收错误,就向发送方发送一出错标识帧,称为否认帧NAK,通知发送方重新传送原数据帧。
数据链路层差错控制解决“数据帧出错”方法:数据链路层差错控制示意图DATA0校验出错NAKDATA0确认出错重新传送节点A节点B校验正确提交主机数据链路层差错控制示意图DATA0校验出错NAKDATA0确数据链路层简单流量控制解决“接收溢出”方法:可以采用发送方每发送一帧,就停止发送,等待接收方的确认信息。接收方每收到一个正确的数据帧就向发送方发送一确认标识帧,称为确认帧ACK。发送方接收到确认帧,则继续发送下一帧。数据链路层简单流量控制解决“接收溢出”方法:数据链路层简单流量控制示意图节点A节点BDATA0校验正确提交主机发确认帧ACKDATA1收到确认发送新帧停止发送等待确认ACKDATA2数据链路层简单流量控制示意图节点A节点BDATA0校验正确提超时自动重新传送解决“数据帧丢失”方法:可在发送方每发送完一个数据帧就启动一个超时计时器,其时间可设为略大于“从发完数据帧到收到确认帧所需的平均时间”。如果超时,发送方还没有收到ACK,则认为帧丢失,自动将数据帧重新发送。超时自动重新传送解决“数据帧丢失”方法:超时重新传送示意图节点A节点BACKDATA0DATA1DATA0数据帧丢失超时确认丢失重新传送校验正确发送确认帧收到确认发送新帧超时重新传送示意图节点A节点BACKDATA0DATA1DA重复帧处理当接收方正确接收数据帧并发出确认帧,但确认帧丢失。发送方在规定时限内没有接收到确认信息,认为数据帧丢失,自动重新传送原数据帧。这样接收方又收到一个同样的数据帧,称为重复帧。可通过对数据帧编号的方法解决。发送方将欲发送的数据帧编好序号,如接收方收到序号相同的帧,则将重复帧丢弃,并向发送方重新发送确认帧。重复帧处理当接收方正确接收数据帧并发出确认帧,但确认帧丢失。重复帧处理示意图节点A节点BACKDATA100确认帧丢失超时DATA100ACKDATA101接收正确保留副本发送确认收到重复帧,丢弃发送确认认为丢失重新传送收到确认发送新帧重复帧处理示意图节点A节点BACKDATA100确认帧丢失超停止等待协议发送方每发送完一帧就要等待接收方的确认信息。如果出错可由发送方自动重传。因此称为自动请求重传,即ARQ(AutomaticRepeatreQuest)。因为每次只发送一帧,可用1个比特为帧序号编码,来区分重复帧。停止等待协议发送方每发送完一帧就要等待接收方的确认信息。如果停止等待协议数据帧出错或丢失(发送确认与否认帧)确认帧出错或丢失(超时重传)否认帧出错或丢失(超时重传)溢出(停止等待)重复数据(帧编号)上层数据检错序号标志地址数据帧接收序号检错标志地址确认帧停止等待协议数据帧出错或丢失(发送确认与否认帧)上层数据检错停止等待协议发送算法⑴vs←0{发送序号初始化}
⑵data←get_host(){从主机取数据}⑶data_s←(data,vs,CRC){数据帧编码}⑷send(data_s){{发送数据帧}⑸time_out(){启动超时计时器}
⑹data_r←recive(){接收数据帧}⑺if(data_r=null)and(time_out()=0)goto⑹⑻if(data_r=ACK)vs=1-vs,goto⑵{正确}
⑼if(data_r=NAK)goto⑷{出错重传}
⑽if(time_out()=1)goto⑷{超时重传}
停止等待协议发送算法⑴vs←0{发送序号初始化}停止等待协议接收算法⑴vr←0{接收序号初始化}⑵data_r=recive()⑶if(data_r=null)goto⑵{等待接收}⑷ifCRC(data_r)send(NAK),data_r=null,goto⑵{帧错误,发送否认帧}⑸if(ns!=vs)data_r=null,goto⑻{丢弃重复}⑹if(data_r!=null)send_host(data_r)⑺vr=1-vr{变接收序号,准备接收下一帧}⑻send(ACK),goto⑵停止等待协议接收算法⑴vr←0{接收序号初始ARQ算法总结在发送方只有收到ACK后,才改变发送序号;接收方只有接收到无误的且与发送序号相同的帧,才改变接收序号,如果序号不同,则丢弃帧并发送ACK。数据000AC数据000AC01ACC11A1AC1C数据110AC数据1101AC0A上层数据检错序号标志地址ARQ算法总结在发送方只有收到ACK后,才改变发送序号;接收差错控制方法在所发送的数据块上附加一定的冗余位,使接收方能够推导出已发送数据应该是什么,如果发现错误,可以自动纠正错误。附加的冗余位,称为自动纠错编码。在数据块上附加冗余位,使接收方能检测出是否有差错,但并不知道差错在哪里,也不会自动纠正错误,而是请求发送方重新传送数据,以消除错误。差错控制方法在所发送的数据块上附加一定的冗余位,使接收方能够CRC校验技术计算机网络数据链路层广泛采用循环冗余码作为差错编码,有较强的检错能力。要求双方事先约定一个生成多项式G(X),其高位与低位必须是1。编码时将检验和附加在传输帧后,形成特定的数据帧,使其能被G(X)除尽。当接收方收到此帧后,用G(X)去除它,若有余数,则有传输错误,请求发送方重传该帧。CRC校验技术计算机网络数据链路层广泛采用循环冗余码作为差错常用的国际标准生成多项式CRC-12
G(X)=X12+X11+X3+X2+X+1CRC-16G(X)=X16+X15+X2+1CRC-CCITTG(X)=X16+X15+X5+1CRC-32
=X23+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1常用的国际标准生成多项式CRC-124.3连续ARQ协议
ARQ协议是一个实用的链路层协议。每发送完一帧都要等待确认帧,通信双方不需要太多的帧缓存,且算法简单易实现。但信道利用率并不高。可采用连续自动请求重传方案,即连续ARQ协议。不用等待前一帧被确认便可发送下一帧。这就需要在发送方设置一个较大的缓冲存储空间,用以存放若干待确认的信息帧。当发送方收到对某信息帧的确认帧后便可从帧缓存中将该信息帧删除,并继续发送数据帧。所以,连续ARQ协议使得信道利用率大大提高。4.3连续ARQ协议ARQ协议是一个实用的链路层协议。每连续ARQ协议原理123465发送完第一帧后并不等待,继续发送后续几帧每个确认帧都要有编号,说明对相应的帧确认节点A节点B连续ARQ协议原理123465发送完第一帧后并不等待,继续发Go-BACK-N超时重传发送方接收方01XDDD2345023452345出错丢弃1012345Go-BACK-N超时重传发送方接收方01XDDD2345连续ARQ协议发送方将待发送的帧编好序号。发送完第0号帧后,不是停止等待确认帧,而是继续发送第1号帧、第2号帧等。由于连续发送了很多帧,所以接收方应对确认帧或否认帧编号,以通知发送方是对哪一帧进行的确认或否认。由此可见连续ARQ协议可大大提高信道的利用率,但重传时造成数据重复传送,又会降低通信效率。
连续ARQ协议发送方将待发送的帧编好序号。发送完第0号帧后,选择重传为了进一步提高信道的利用率,接收方只将出错的帧丢弃,接收正确的帧保存在接收缓存中,设法要求发送方只传送出现差错的那一帧,一旦收到重新传来的帧后,就可以将原已存于缓冲区中的其余帧一并按正确的顺序上交主机。这种方法称为选择重传(SelectRepeat),显然,选择重传减少了浪费,但要求接收方有足够大的缓冲区空间。选择重传为了进一步提高信道的利用率,接收方只将出错的帧丢弃,4.4流量控制链路层的流量控制是通信双方能协调工作的保障,如果没有合理的流量控制手段,可能造成数据丢失。增加缓冲存储空间在某种程度上可以缓解收、发双方在传输速率上的差异,但并不能完全解决这一矛盾。经常使用的流量控制方法有XON/XOFF与窗口机制。4.4流量控制链路层的流量控制是通信双方能协调工作的保障,如XON/XOFFXON/XOFF主要应用于面向字符通信中,使用一对控制字符来实现流量控制。其中XON采用ASCII字符集中的控制字符DC1,XOFF采用ASCII字符集中的控制字符DC3。当通信路上的接收方发生过载时,便向发送方发送一个XOFF字符,发送方接收XOFF字XON/XOFFXON/XOFF主要应用于面向字符通信中,使XON/XOFF工作原理节点A节点BXOFFXON连续发送字符继续发送字符接收缓存将满接收完毕XON/XOFF工作原理节点A节点BXOFFXON连续发送字窗口机制在ARQ协议中,因为每发送完一帧都要停止等待确认信息,流量控制简单。只要求通信双方拥有一帧的缓存空间,只要超时时限选择合理,不需要额外的流量控制机制。对于连续ARQ协议如果发送方没有收到任何来自收方的确认信息,发送方是不能无限制地发送数据帧的。窗口机制在ARQ协议中,因为每发送完一帧都要停止等待确认信息窗口机制发送方缓存中需保留未被确认的帧副本,以备重传。计算机的硬件资源是有限的,缓存容量不能无限制增加。发送数据帧过多,一旦有一帧出现错误,可能有很多帧需要重传,造成很大的浪费,增加了很多不必要的开销。为了对连续发送的大量数据帧进行编号,每帧的发送序号也要占用较多的比特,又增加了一定的开销。窗口机制发送方缓存中需保留未被确认的帧副本,以备重传。计算机滑动窗口的概念需要对连续ARQ协议中连续发送的未被确认的帧数做一定的限制。在发送方设置发送窗口,用来对发送方进行流量控制,其大小WT代表在发送方还没有收到对方确认信息情况下最多可以连续发送的数据帧数。在接收方设置接收窗口。接收窗口用来控制接收方应该接收哪些帧,只有收到的数据帧的发送序号落入接收窗口内才允许将该数据帧收下。滑动窗口的概念需要对连续ARQ协议中连续发送的未被确认的帧数1042375601已收到0号帧,准备接收1号帧ab接收方0142375601接收窗口Wr=1,准备接收0号帧接收方0142375601发送窗口Wt=5,允许发送0号到4号帧发送方0142375601已收到确认,允许发送1号到4号帧发送方1042375601已收到0号帧,准备接收1号帧ab接收方01042375601已收到0-3号帧,准备接收4号帧接收方0123457601已收到确认,允许发送4号到0号帧发送方0123456701230123456701231042375601已收到0-3号帧,准备接收4号帧接收方0不难看出,只有接收窗口向前滑动时,发送窗口才能移动。收发两端的窗口按以上规律不断向前滑动,称为滑动窗口协议。显然ARQ协议发送与接收窗口均为1。另外,接收方并不需要对每一个数据帧都发回确认信息,可以在接收若干正确数据帧后,才对最后一个数据帧发送确认信息。不难看出,只有接收窗口向前滑动时,发送窗口才能移动。收发两端窗口总结综上所述,对于三种不同的ARQ协议的窗口大小的设置是不同的。ARQ协议(停止等待):发送窗口=1,接受窗口=1。连续ARQ协议(后退N步法):发送窗口>1,接收窗口=1。选择重传ARQ:发送窗口>1,接收窗口>1窗口总结综上所述,对于三种不同的ARQ协议的窗口大小的设置是4.5面向比特的链路控制规程比较通用的协议可分为两类,这就是面向字符的链路控制协议与面向比特的链路控制协议。所谓面向字符就是说在链路上所传送的数据必须是由规定字符集(例如ASCII码)中的字符所组成。同时在链路上传送的控制信息也必须由同一个字符集中的若干规定的控制字符构成。4.5面向比特的链路控制规程比较通用的协议可分为两类,这就是面向字符与面向比特协议面向字符的控制协议有许多弱点,例如,通信线路利用率低,可靠性差,通用性不强,扩展能力弱等。面向比特的链路控制规程,是采用带填充位的首尾标志将一组比特封装成帧,通过定义不同类型的帧格式,实现链路层的功能。它成为链路层的主要协议,是世界上广泛采用的协议。面向字符与面向比特协议面向字符的控制协议有许多弱点,例如,通HDLC基本配置复合站复合站命令/响应命令/响应主站从站从站HDLC基本配置复合站复合站命令/响应命令/响应主站从站从站HDLC基本配置非平衡配置的特点是由一个主站控制整个链路的工作。主站发出的帧叫做命令。受控的各站叫做次站或从站()。次站发出的帧叫做响应(response)。平衡配置的特点是链路两端的两个站都是复合站(combinedstation)。复合站同时具有主站与次站的功能。因此每个复合站都可以发出命令和响应。HDLC基本配置非平衡配置的特点是由一个主站控制整个链路的工HDLC帧结构HDLC帧由标志字段、地址字段、控制字段、信息字段和帧校验字段组成。HDLC定义了三种类型的帧,即信息帧、监控帧与无编号帧。每类帧又包含若干命令与响应,常习惯上称为命令帧与响应帧。HDLC帧结构HDLC帧由标志字段、地址字段、控制字段、信息HDLC帧结构标志字段F地址字段A控制字段C信息字段infoFCS校验标志字段F校验区间透明区间HDLC帧结构标志地址控制信息FCS标志校验区间透明区间标志字段数据链路层要解决帧同步的问题,即要从收到的比特流中正确地区分出一个帧的开始比特与结束比特。为此HDLC规定了在一个帧的开头和结尾各放入一个特殊的标记,作为一个帧的边界。这个标志称为标志字段F(Flag)。标志字段为6个连续的1加上两边各一个0共8位(7EH)。在接收端,只要找到标志字段F,就可以很容易地确定一个帧的位置。标志字段数据链路层要解决帧同步的问题,即要从收到的比特流中正零比特填充法在发送端,当一串比特流尚未加上标志字段时,先用硬件扫描全部比特(用软件也能实现,但要慢些)。只要发现有5个连续1,则立即填入一个0。经过这种零比特填充后的数据,就可以保证不会出现6个连续1。在接收一个帧时,先找到标志字段以确定帧的边界。接着再用硬件对其中的比特流进行扫描。每当发现5个连续1时,就将这5个连续1后的一个0删除,以还原成原来的比特流。零比特填充法在发送端,当一串比特流尚未加上标志字段时,先用硬零比特填充法
010011111010001010填人0比特
01001111110001010会误认为是F字段数据中某一段比特组合恰好出现和F字段一样的情况发送端在5个连1之后填入0比特在接收端将5个连1后的0比特删除,恢复原样
01001111110001010删除0比特零比特填充法0100111110100010100100零比特填充法举例传送数据为7C7D7E7F011111000111110101111110011111117C7D7E7F011111000011111001011111010011110111填充原始数据填充后数据01111100,00111110,01011111,01001111,01117C3E5F4F70零比特填充法举例传送数据为7C7D7E7F01111100地址字段地址字段A也是8个比特。在使用非平衡方式传送数据时,地址字段总是写入次站的地址。但在平衡方式时,地址字段总是填入应答站的地址。全1地址是广播方式,而全0地址是无效地址。因此,有效的地址共有254个之多。地址字段可以扩充地址字段地址字段A也是8个比特。在使用非平衡方式传送数据时,信息字段与校验序列从网络层交下来的分组,变成为数据链路层的数据。信息字段的长度没有具体规定。帧校验序列FCS字段共占16bit。它采用的生成多项式是CRC-CCITT。所校验的范围是从地址字段的第1个比特起,到信息字段的最末1个比特为止。信息字段与校验序列从网络层交下来的分组,变成为数据链路层的数控制字段控制字段C共8bit,是最复杂的字段。HDLC的许多重要功能都要靠控制字段来实现。根据其最前面两个比特的取值,可将HDLC帧划分为三大类,即信息帧、监督帧和无编号帧,它们的简称分别是I(Information),S(Supervisory)和U(Unnumbered)控制字段控制字段C共8bit,是最复杂的字段。HDLC的许控制字段格式P/F:询问/终止(Poll/Final)比特比特序号01234567信息帧0N(S)P/FN(R)监督帧10SP/FN(R)无编号帧11MP/FM控制字段格式P/F:询问/终止(Poll/Final)比特比信息帧N(S)表示当前发送的信息帧的序号,而N(R)表示该站所期望收到的帧的发送序号。即在该帧发送之前,接收方已正确接收到N(R)之前的所有帧。N(R)带有确认的意思,不必专门为收到的信息帧发送确认应答帧。可以在本站有信息帧发送时,将确认信息放在其接收序号N(R)中让本站发送信息帧时将确认信息捎带走。信息帧N(S)表示当前发送的信息帧的序号,而N(R)表示该站监督帧格式2-3位帧名功能00RR接收准备好准备接收下一帧确认N(R)以前的帧01RNR接收未准备好暂停接收下一帧确认N(R)以前的帧10REJ拒绝从N(R)起的所有帧都被否认11SREJ选择拒绝只否认序号为N(R)的帧监督帧格式2-3位帧名功能00RR接收准备好准备接收下一帧0监督帧所有的监督帧都不包含要传送的数据信息,因此它只有48bit长。四种监督帧中,前三种用在连续ARQ协议中,而最后一种只用于选择重传ARQ协议中。011111100000001010010111011111100000011100000111标志标志地址CRC控制暂停接收,确认7号以前的帧(期望接收7号帧)监督帧所有的监督帧都不包含要传送的数据信息,因此它只有48b无编号帧无编号帧本身不带编号,即无N(S)和N(R)字段,而是用5bit来表示不同功能的无编号帧。虽然总共
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五纺织产品供货合同书
- 二零二五助学贷款借款合同书内容
- 二零二五版采矿权抵押合同书
- 2025浙江省采购合同范本版
- 2025深圳市家居设计合同
- 个人居住房产承租合同
- 网络系统工程项目合同范本
- 2025年北京购销合同的范本
- 2025年学校校内平安工作方案
- 2025年幼师个人新学期工作方案
- 微风发电项目可行报告
- 医院防雷电安全应急预案
- 2025年中小学生安全教育日知识竞赛考试题(附答案)
- 2025年4月自考00152组织行为学押题及答案
- 2025【英文合同】授权代理合同英文范本
- 北师大版2025二年级语文下册期中考试综合检测
- 湖南2025届新高考教学教研联盟(长郡二十校)高三第二次预热演练数学试题(含答案)
- 2025年矿区招聘考试试题及答案
- DBJ50T-220-2015 房屋建筑工程质量保修规程
- 8个事故案例13个警示视频文字完善篇(矿山局迎检资料)
- 黑龙江省齐齐哈尔市重点达标名校2025届中考一模生物试题含解析
评论
0/150
提交评论