您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第4章:点对点数据链路层
计算机网络原理信电工程学院鲍蓉第4章点对点信道的数据链路层本章学习要求:掌握:数据链路层的概念、功能与提供的服务循环冗余检验(CRC)技术点对点协议PPP理解:数据链路层要解决的3个基本问题4.1数据链路层的基本概念链路(link):是一条点到点的物理线路,中间没有任何其他的交换结点。数据链路(datalink):除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。为什么要设计数据链路层在原始物理传输线路上传输数据信号是有差错的;OSI设计数据链路层的主要目的:将有差错的物理线路改进成无差错的数据链路;方法—差错检测差错控制流量控制作用:改善数据传输质量,向网络层提供高质量的服务。数据链路层协议为实现数据链路控制功能而制定的规程或协议。数据链路层的基本功能数据链路层的协议数据单元——帧结点A的数据链路层把网络层交下来的IP数据报封装成帧。结点A把封装好的帧发送给结点B的数据链路层。结点B的数据链路层将收到的无差错帧的IP数据报上交给上面的网络层数据链路层的简单模型局域网广域网主机H1主机H2路由器R1路由器R2路由器R3电话网局域网主机H1向H2发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2从层次上来看数据的流动局域网广域网主机H1主机H2路由器R1路由器R2路由器R3电话网局域网主机H1向H2发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2仅从数据链路层观察帧的流动4.2数据链路层要解决的基本问题帧定界(帧同步):接收方能从收到的比特流中准确地区分出一帧的开始和结束。透明传输问题:允许数据中包含任意的比特组合,能够区分出数据信息和控制信息。差错检测功能4.2.1帧定界的实现方法确定帧的界限帧首部帧尾部帧结束帧首部帧首部IP数据报IP数据报帧的数据部分帧的数据部分帧尾部帧尾部≤MTU数据链路层的帧长从这里开始发送帧开始4.2.2透明传输实现方法所谓“透明传输”,就是使数据中可能出现的控制字符(如帧的起始标识)在接收方不被解释为控制字符实现透明传输的两种方法:字符插入当在数据中出现控制字符时就将其转换为另一个字符(转义字符),而这个字符是不会被错误解释为控制字符的。比特插入在帧的数据部分插入特殊的比特位4.2.3差错检测方法在数据链路层传送的帧中,广泛使用了循环冗余检验CRC技术。假设待传送的数据M=1010001101(共kbit)。我们在M的后面再添加供差错检测用的nbit冗余码一起发送。发送方冗余码的计算用M和2n作二进制乘运算,这相当于在M后面添加n个0。得到的(k+n)bit的数除以事先选定好的长度为(n+1)bit的数P,得出商是Q而余数是R,R就是跟在M后发送的冗余码。例如:M=1010001101,P=110101(n=5)在M后加5位0,除以P,作模2运算1101010110←Q商除数P→110101101000110100000←2nM被除数11010111101111010111101011010111111011010110110011010111001011010101110←R余数将余数R作为冗余码添加在数据M的后面发送出去,即发送的数据是101000110101110帧检验序列FCS在数据后面添加上的冗余码称为帧检验序列FCS(FrameCheckSequence)。循环冗余检验CRC和帧检验序列FCS并不等同。CRC是一种常用的检错方法,而FCS是添加在数据后面的冗余码。FCS可以用CRC这种方法得出,也可以用其它的方法获得。接收方的CRC检验接收方收到帧后采用同样的模2除以P运算得出的余数R不为0,就表示检测到了差错。一旦检测出差错,就丢弃这个出现差错的帧。研究表明,只要经过严格的挑选,并使用位数足够多的除数P,就可以检测几乎所有可能的差错生成多项式P(x)标准的生成多项式CRC-12:G(x)=x12+x11+x3+x2+x+1CRC-16:G(x)=x16+x15+x2+1CRC-CCITT:G(x)=x16+x12+x5+1CRC-32:G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1注意:仅用循环冗余检验CRC差错检测技术只能做到无差错接收(accept)。“无差错接收”是指:凡是接受的帧在传输过程中没有产生差错(有差错的帧就丢弃而不接受)。要做到“可靠传输”(即发送什么就收到什么)还必须再加上确认和重传机制。OSI模型把数据链路层设计为可靠传输的。在CRC检错的基础上,增加了确认和重传机制。TCP/IP模型将可靠传输的功能放在传输层,由TCP协议来完成4.3因特网的点对点协议PPP目前使用最多的数据链路层协议是点对点协议PPP(Point-to-PointProtocol)。用户使用拨号电话线接入因特网时,一般都是使用PPP协议。局域网主机通过点对点链路接入因特网时,使用PPPoE协议。4.3.1PPP协议的基本功能帧定界:规定特殊字符作为帧定界符保证透明传输差错检测:丢弃有差错的帧支持多种网络层协议支持多种链路:面向比特的同步链路或面向字符的异步链路,全双工链路4.3.2PPP协议的三个组成部分一个将IP数据报封装到串行链路的方法。链路控制协议LCP(LinkControlProtocol)用来建立、配置和测试数据链路连接网络控制协议NCP(NetworkControlProtocol)其中的每一个协议支持不同的网络层协议4.3.3PPP协议的帧格式标志字段F:表示一个帧的开始或结束,是帧的定界符规定值为0x7E(01111110)。当连续传输两个帧时,前一个帧的结束标志字段F可以兼作后一帧的起始标志字段。IP数据报1211字节12不超过1500字节PPP帧先发送7EFF03FACFCSF7E协议信息部分首部尾部地址字段A:规定值为0xFF。实际上并不起作用。控制字段C:规定值为0x03。实际上并不起作用。协议字段:2个字节,说明PPP帧的信息字段内容当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制数据。若为0x8021,则表示信息字段是网络控制数据。帧较验序列FCS:16位,采用CRC-CCITT生成多项式4.3.4透明传输的实现方法当信息字段中出现和标志字段一样的比特组合(0x7E)时,要采取某种措施使之不被解释为帧的定界符PPP用于异步传输链路时,采用字节填充方法PPP用于同步传输链路时,采用零比特填充方法(1)字节填充法定义转义字符0x7D将信息字段中出现的每一个0x7E字节转变成为2字节序列(0x7D,0x5E)若信息字段中出现一个0x7D的字节,则将其转变成为2字节序列(0x7D,0x5D)。若信息字段中出现ASCII码的控制字符(即数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时将该字符的编码加以改变。(2)零比特填充法使一帧的信息字段中不会出现6个连续1。在发送端,当信息字段的一串比特流中有5个连续1时,就立即填入一个0。在接收端,对信息字段的比特流进行扫描。每当发现5个连续1时,就将其后的一个0删除,从而还原信息。零比特的填充与删除数据中某一段比特组合恰好出现和F字段一样的情况01001111110001010会被误认为是F字段发送端在5个连1之后填入0比特再发送出去填入0比特010011111010001010在接收端将5个连1之后的0比特删除,恢复原样在此位置删除填入的0比特0100111110100010104.4PPP协议的工作状态当用户拨号接入ISP时,建立一条物理连接。PC机发送一系列的LCP分组(封装成多个PPP帧)。这些分组及其响应选择一些PPP参数。进行网络层配置,NCP给新接入的PC机分配一个临时的IP地址,使PC机成为因特网上的一个主机。通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP释放数据链路层连接。最后释放的是物理层的连接。PPP协议的状态图建立失败失败NCP配置鉴别成功通信结束载波停止检测到载波双方协商一些选项鉴别网络打开终止静止
本文标题:第4章:点对点数据链路层
链接地址:https://www.777doc.com/doc-3155860 .html