NankaiUniversity计算机网络技术教程—自顶向下的分析与设计方法吴功宜吴英编著1NankaiUniversity第7章数据链路层协议及编程方法2NankaiUniversity3主要内容本章主要回答以下几个问题:·数据链路层协议的主要功能是什么?·数据链路层协议分为哪几种类型?·数据链路层采取了哪些差错控制技术?·HDLC协议包括哪些基本内容?·PPP协议包括哪些基本内容?·Ethernet网MAC层协议包括哪些基本内容?NankaiUniversity7.1数据链路层的基本概念7.1.1物理线路与数据链路•物理线路与数据链路的关系4电话交换网调制解调器计算机计算机物理线路数据链路调制解调器NankaiUniversity7.1.2数据链路层的主要功能•链路管理•帧同步•流量控制•差错控制•透明传输•寻址5NankaiUniversity7.1.3数据链路层向网络层提供的服务•设立数据链路层的主要目的是将存在数据传输差错的物理线路变为对于网络层来说是无差错的数据链路;•数据链路层提供:链路管理、帧传输、流量控制、差错控制等功能;数据链路层为网络层提供的服务表现在:•正确传输网络层的用户数据;•向网络层屏蔽物理层采用传输技术的差异性。6NankaiUniversity7.2差错产生与差错控制方法7.2.1设计数据链路层的原因7.2.2差错产生的原因与类型7信源通信信道信宿数据噪声数据+噪声(a)001100111100011111000011000100010110011001010传输数据噪声数据信号与噪声信号叠加后的波形采样时间接收数据原始数据出错的位(b)时间NankaiUniversity7.2.3误码率的定义•误码率是指二进制比特序列在数据传输系统中被传错的概率;•在数值上近似等于:Pe=Ne/N;•其中:N为传输的二进制比特总数,Ne为被传错的比特数。8NankaiUniversity理解误码率的定义应该注意的几个问题:•误码率是衡量数据传输系统正常工作状态下传输可靠性的参数;•对于一个实际的数据传输系统,不能笼统地说误码率越低就越好,要根据实际传输要求提出误码率要求;•对于实际数据传输系统,如果传输的不是二进制位,需要折合成二进制位来计算;•差错的出现具有随机性,在实际测量一个数据传输系统时,只有被测量的传输二进制位数越大,才会越接近真正的误码率值。9NankaiUniversity7.2.4检错码与纠错码差错控制—在通信过程中能够自动检测出错误并进行纠正的方法;差错控制有两种基本的方案:•纠错码:为每个分组加上足够多的冗余信息,接收方能发现并自动纠正传输差错;•检错码:为每个分组加上一定的冗余信息,接收方能发现传输差错,但是自己不能纠正,必须通过重发机制来解决。10NankaiUniversity7.2.5循环冗余编码工作原理•CRC检错方法的工作原理是:在发送方,将发送数据作为一个多项式f(x)的系数,用双方预先约定的生产多项式G(x)去除,求得一个余数多项式。将余数多项式加到数据多项式后发送到接收方。在接收方,用同样的生成多项式G(x)去除接收数据多项式f’(x),得到计算的余数多项式。如果计算的余数多项式与接收的余数多项式相同,表示传输无差错;否则,表示传输有错,由发送方重发数据,直至正确为止。11NankaiUniversity7.2.5循环冗余编码工作原理12发送数据f(x)生成多项式G(x)f(x)xk.G(x)=Q(x)+R(x)G(x)实际发送:f(x)xk.+R(x)f(x)xk.R(x)发送数据f'(x)生成多项式G(x)R'(x)=R(x)接收正确R'(x)≠R(x)接收错误发送f'(x)xk.G(x)=Q(x)+R'(x)G(x)+数据字段校验字段发送方接收方计算机网络NankaiUniversity标准的CRC生成多项式:•CRC-12G(x)=x12+x11+x3+x2+x+1•CRC-16G(x)=x16+x15+x2+1•CRC-CCITTG(x)=x16+x12+x5+1•CRC-32G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+113NankaiUniversityCRC校验的工作过程•发送方生成数据多项式f(x)·xK,其中K为生成多项式的最高幂N值减1;•将f(x)·xK除以生成多项式G(x),得f(x)·xK/G(x)=Q(x)+R(x)/G(x)。其中,式中R(x)为余数多项式;•将f(x)·xK+R(x)作为整体,从发送方通过通信信道传送到接收方;•接收方对多项式f′(x)采用同样的运算,f′(x)·xK/G(x)=Q(x)+R′(x)/G(x),求得余数多项式R′(x);•根据计算余数多项式R′(x)是否等于接收余数多项式R(x)判断是否出现错误。14NankaiUniversityCRC检错方法的特点CRC校验码的检错能力很强,它除了能检查出离散错,还能检查出突发错;CRC校验码具有以下检错能力:•CRC校验码能检查出全部单个错;•CRC校验码能检查出全部离散的二位错;•CRC校验码能检查出全部奇数个错;•CRC校验码能检查出全部长度小于或等于K位突发错;•CRC校验码能以[1-(1/2)K-1]的概率检查出长度为K+1位的突发错。15NankaiUniversity7.2.6差错控制机制•反馈重发(ARQ)纠错:收发双方在发现传输错误时,采用反馈和重发的方法来纠正错误;•反馈重发纠错的实现机制:16发送方信源校验码编码器存储器发送装置反馈信号控制器接收装置校验码译码器信宿反馈信号控制器接收方传输信道NankaiUniversity7.3面向字符型数据链路层协议7.3.1数据链路层协议的分类•面向字符型•面向比特型7.3.2面向字符型数据链路层协议•利用已定义好的一种标准字编码(如ACSII码)的一个子集来执行通信控制功能;•典型的面向字符型数据链路层协议是二进制同步通信(BSC)协议。17NankaiUniversity面向字符型协议的两个明显的缺点:•一是使用不同字符集的计算机很难利用面向字符型协议来通信;•二是控制字符的编码不能在用户数据字段中出现。•数据不能“透明”传输可以采用转义字符解决。18NankaiUniversity面向字符型协议实例—BSC协议•BSC协议中使用的控制字符19控制字符功能SOH(StartofHead)报头开始STX(StartofText)正文开始ETX(EndofText)正文结束EOT(EndofTransmission)传输结束ENQ(Enquiry)询问对方,并要求回答ACK(Acknowledge)肯定应答NAK(NegativeAcknowledge)否定应答DLE(DatalinkEscape)转义字符SYN(Synchronous)同步ETB(EndofTransmissionBlock)正文信息组结束NankaiUniversity数据报文格式20SYNSYNSOH报头STX正文ETB/ETXBCC报文开始同步字符用户定义报头结束分组结束报文结束校验字段正文字段NankaiUniversity面向字符型协议执行过程21发送ENQ接收数据,EOT接收ACKACK/NAK?ENQ?发送数据接收数据重发结束?发送EOT结束接收ENQ发送ACKEOT?BCC正确?发送ACK发送NAK结束NYNAKACKNYNYNYNYACK?发送方接收方NankaiUniversity7.4面向比特型数据链路层协议实例—HDLC协议7.4.1HDLC协议产生的背景面向字符型链路控制协议的缺点:•控制报文与数据报文的格式不一致;•通信双方只能交替工作,协议效率低,通信线路的利用率低;•协议只对数据部分进行差错控制,如果控制字符出错无法控制,系统可靠性较差。•系统每增加一种新的功能,需要设定一个新的控制字符,因此功能扩展困难。22NankaiUniversity7.4.2数据链路的配置方式和数据传送方式数据链路有两种基本配置方式:非平衡方式与平衡方式非平衡配置方式:•主站:主站发出命令•从站:从站接受命令,发出相应,配合主站工作。非平衡配置两种类型:•点对点方式•多点方式23NankaiUniversity7.4.2数据链路的配置方式和数据传送方式非平衡配置两种数据传送方式:•正常响应模式(NRM):主站可以随时向从站传输数据帧。从站只有在主站向它发送命令帧探询,从站响应后才可以向主站发送数据帧。•异步响应模式(ARM):主站和从站可以随时相互传输数据帧。平衡配置方式:•特点是:链路两端的两个站都是复合站。复合站同时具有主站与从站的功能,每个复合站都可以发出命令与响应。24NankaiUniversity数据链路的非平衡配置方式NankaiUniversity数据链路的平衡配置方式NankaiUniversity7.4.3HDLC的帧结构标志字段F•帧同步是指如何从接收到的比特流中正确判断一个帧开始和结束的位置;•HDLC规定标志字段F(flag)就是帧的开始与结束的标记;•标志字段F为“011111110”特定的比特序列。27标志字段F(8位)地址字段A(8/16位)控制字段C(8位)信息字段I(长度可变)帧校验字段FCS(16/32位)标志字段F(8位)NankaiUniversityHDLC帧数据传输的透明性保证措施•0比特插入/删除方法2801111110F10011011101111101001111111001001111110IF100110111011111010011111110010000111111001111110100110111011111001001111101100100111111001111110连续5个110011011101111100100111110110010011111100111111010011011101111101001111111001001111110011111100111111010011011101111101001111111001001111110发送数据0比特插入实际发送实际接收0比特删除接收数据发送端00接收端NankaiUniversity地址字段A•当使用非平衡方式传送数据时,地址字段总是填入从站地址;•当使用平衡方式传送数据时,地址字段填入应答站地址;•如果地址字段为全1时,表示为广播地址,则要求网中所有站都要接收该帧。29NankaiUniversityHDLC控制字段结构HDLC帧分为:•信息帧:I(information)帧•监控帧:S(supervisory)帧•无编号帧:U(unnumbered)帧300N(S)P/FN(R)10监控P/FN(R)11未分配P/F未分配信息帧I监控帧S无编号帧Ub0b4b7b1b2b3b5b6标志字段F(8位)地址字段A(8/16位)控制字段C(8位)信息字段I(长度可变)帧校验字段FCS(16/32位)标志字段F(8位)NankaiUniversity信息字段I•由于采用了0比特插入/删除方法,信息字段允许任意的二进制比特序列的组合;•信息字段仅出现在信息帧(I帧)与无编号帧(U帧)中,它是网络层的用户数据。帧校验字段FCS•HDLC采用CRC校验方式,生成多项式采用CRC-CCITT(即X16+X12+X5+1);•CRC校验的范围是A、C、I字段。31NankaiUniversity信息帧发送序号N(S)与接收序号N(R)的意义•N(S)表示当前发送的信息帧的序号;•N(R)表示该站已正确接收序号为[N(R)-1]的帧及以前各帧,通知发送站应发送序号为N(R)的帧;•N(R)带有捎带确认的意义;•全双工通信中,通信双方各有自己的N(S)和N(R)序列值。32NankaiUniversity探询/终止位的意义•控制字段C的b4为探询/终止(poll/final)位,简称为P/F位;•对于正常响应模式NRM,只有主站向从站