徐州东至合肥南:第四章 数据链路层

来源:百度文库 编辑:偶看新闻 时间:2024/05/11 14:16:15
第四章          数据链路层
重点与难点:
重点: 数据链路的基本概念、链路层三个基本问题、差错检测技术、字符填充法、比特填充法、PPP协议
难点:PPP协议。
4.1数据链路层的基本概念
4.1.1 数据链路层的简单模型

数据链路层的协议数据单元——帧。
数据链路层的任务就是把网络层交下来的数据发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。在因特网中,网络层协议数据单元就是IP数据报(或简称为数据报、分组或包)。
数据链路层最主要的功能可归结为以下几点。
(1)结点A的数据链路层把网络层交下来的IP数据报封装成帧。
(2)结点A把封装好的帧发送给结点B的数据链路层。
(3)若结点B的数据链路层收到的帧无差错,则从收到的帧中提取出IP数据报上交给上面的网络层;否则丢弃这个帧。

4.1.2链路与数字链路
1.链路:一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
在进行数据通信时,两个计算机之间的通路往往是由许多的链路串接而成的。
所以一条链路只是一条通路的一个组成部分。
2.数据链路(data link):当需要在一条线路上传送数据时,除了必须要有一条物理线路外,还必须有一些必要的通信协议来控制这些数据的传输。
这样把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
现在常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。它包括了数据链路层和物理层这两层的功能。
3.链路和数据链路,有时也称物理链路和逻辑链路。
在两个对等的数据链路层之间的数字管道中,传输的数据单位是帧。在物理层之间传送的是比特流。而在物理传输媒体上传送的是信号(电信号或光信号)。
4.2 三个基本问题
数据链路层协议有许多种,但有三个基本问题则是共同的。以下是这三个基本问题。
1.数据链路层的发送方应当让接收方的数据链路层知道,所发送的帧是从什么地方开始到从什么地方结束。这就是帧定界问题。
2.数据链路层传送的数据的比特组合必须是不受限制的。数据链路层协议不能禁止传送某种特殊的比特组合。这就是透明传输问题。
3.数据链路层必须有差错检测功能。
4.2.1帧定界
帧定界 (framing) 就是确定帧的界限。每一种链路层协议都规定了帧的数据部分的长度上限——最大传送单元MTU (Maximum Transfer Unit)。

 

 
4.2.2 透明传输

数据部分恰好出现与EOT一样的代码
为了解决透明传输问题,就必须设法使数据中可能出现的控制字符“SOH”和“EOT”在接收方不被解释为控制字符。具体的方法是每当在数据中出现字符“SOH”或“EOT”时就将其转换为另一个字符,而这个字符是不会被错误解释为控制字符的。这种方法称为字节插入 (byte stuffing)。
字节插入法
转义字符
数据中出现的控制字符
经字节插入后发送时的字符
SOH
ESC x
EOT
ESC y
ESC
ESC z

 
4.2.3差错检测
在一定的时间内,传输错误的比特占所传输的比特总数的比率称为误码率BER (Bit Error Rate)。在数据链路层广泛使用了循环冗余检验CRC (Cyclic Redundancy Check) 的检错技术。
为了进行检错而添加的冗余码常称为帧检验序列FCS  (Frame Check Sequence)。

循环冗余检验CRC差错检测技术只能做到无差错接受,即:“凡是接收方数据链路层接受的帧,我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错,“凡是接收方数据链路层接受的帧均无传输差错”。
采用CRC差错检测技术后,我们并没有使数据链路层变成具有“可靠传输”的功能。
以前OSI的观点是必须把数据链路层做成是可靠传输的。因此,他们在有CRC检错的基础上,增加了确认和重传机制。因特网广泛使用的数据链路层协议都不使用确认和重传机制,即不把数据链路层做成具有可靠传输的功能(因为这要付出相当大的代价)。如果在数据链路层传输数据时出现了差错,并且需要进行改正的话,那么,改正差错的任务就由运输层的TCP协议来完成。实践证明,这样做可以使整个通信效率大大提高。
4.3点对点协议PPP
4.3.1 点对点协议的特点
PPP是目前使用的最广泛的协议
1、PPP协议应满足的要求:
(1)简单
(2)封装成帧
PPP协议必须规定特殊的字符作为帧定界符(即标志一个帧的开始和结束的字符)。帧定界是指接收方从收到的比特流中应当能准确地找出一帧的开始和结束在什么地方。
(3)透明性
(4)多种网络层协议
PPP协议必须能够在在同一条物理链路上同时支持多种网络层协议(如IP和IPX等)的运行。
(5)多种类型链路
(6)差错检测 (error detection)
PPP协议必须能够对接收方收到的帧进行检测,并立即丢弃有差错的帧。
(7)连接的活跃度
PPP协议必须具有一种机制来自动检测出链路上连接的活跃度(liveness),也就是说,必须能够及时(不超过几分钟)检测出一条链路是处于正常工作状态,还是已经出了故障。
(8)最大传送单元
PPP协议必须对每一种类型的点对点链路设置最大传送单元MTU的标准默认值。
(9)网络层地址协商
(10)数据压缩协商
2、PPP协议不需要的功能
(1)纠错 (error correction) :PPP协议是不可靠传输协议。
(2)流量控制
(3)序号
(4)多点线路
(5)半双工或单工链路
3、PPP协议的组成
(1)一个将IP数据报封装到串行链路的方法。
(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP(Link Control Protocol)。
(3)一套网络控制协议NCP (Network Control Protocol) ,其中的每一个协议支持不同的网络层协议。
4.3.2 PPP协议的帧格式
1、各字段意义

 
标志字段 F 仍为 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。
地址字段 A 只置为 0xFF。地址字段实际上并不起作用。
控制字段 C 通常置为 0x03。
PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
PPP协议字段:指明信息部分所对应的数据类型,即当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报;若为 0xC021, 则信息字段是 PPP 链路控制数据;若为 0x8021,则表示这是网络控制数据。
2、字节填充
透明传输:当信息字段和标志字段一样的比特(OX7E)组合时,就必须采取一些措施使这种如同标志字段一样的比特组合不出现在信息字段中,具体做法为:
当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。
当 PPP 用在异步传输时,就使用一种特殊的字符填充法。
字符填充法
将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。
若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。
若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
3、零比特填充
PPP协议使用SONET/SDH链路时,使用同步传输(一连串的比特连续传送),在这种情况下采用零比特填充方法。

 
4.3.3 PPP协议的工作状态
PPP链路的起始和终止状态永远是图4-12中的“静止状态”,当检测到调制解调器的载波信号,并建立物理层连接后,PPP就进入链路的“建立状态”。这时LCP开始协商一些配置选项,即发送LCP的配置请求帧 (configure-request)。

 
链路的另一端可以发送以下几种响应。
(1)配置确认帧 (configure-ack):所有选项都接受。
(2)配置否认帧 (configure-nac):所有选项都理解但不能接受。
(3)配置拒绝帧 (configure-reject):选项有的无法识别或不能接受,需要协商。
LCP配置选项包括链路上的最大帧长、所使用的鉴别协议 (authentication protocol) 的规约(如果有的话),以及不使用PPP帧中的地址和控制字段 。
协商结束后就进入“鉴别状态”。若通信的双方鉴别身份成功,则进入“网络状态”。
如果在PPP链路上运行的是IP,则使用IP控制协议IPCP (IP Control Protocol) 来对PPP链路的每一端配置IP模块(如分配IP地址)。
当网络层配置完毕后,链路就进入可进行数据通信的“打开状态”。两个PPP端点还可发送回送请求LCP分组 (echo-request) 和回送回答LCP分组 (echo-reply) 以检查链路的状态。
数据传输结束后,链路的一端发出终止请求LCP分组 (terminate-request) 请求终止链路连接,而当收到对方发来的终止确认LCP分组 (terminate-ack) 后,就转到“终止状态”。当载波停止后则回到“静止状态”。
4.5 面向比特的链路控制规程 HDLC
HDLC (High-level Data Link Control),译为高级数据链路控制,链路接入规程LAP (Link Access Procedure),LAPB叫做链路接入规程(平衡型)

 
HDLC采用零比特填充法实现透明传输。地址字段是8位,控制字段共8位 , HDLC帧划分为3大类,即信息帧、监督帧和无编号帧。
以太网的帧格式和数据链路层有关吗? 如何捕获无线局域网数据链路层数据包 计算机网络的数据链路层,物理层各自作用是? 能用于数据链路层的网络设备有什么设备? 数据链路层的封装和解封装的原理 数据链路层的封装和解封装的原理 数据链路层传输效率的问题,如何才能达到100%? 高手进~关于物理层和数据链路层~ 传输层的流控和数据链路层的流控区别在哪 比较一下数据链路层和传输层的滑动窗口协议 局域网参考模型中数据链路层的LLC子层,MAC子层各是什末含义 网络层、数据链路层和物理层传输的数据相关内容 OSI模型的数据链路层在流控制上有哪几种技术啊 局域网的体系结构中___和_____相当于数据链路层. 有谁知道计算机网络原理中在数据链路层的连续ARQ协议的算法?谢谢! 【网络试题 选择题】_______是数据链路层的通信设备之一.(选项在里边) 【网络试题 选择题】_______是数据链路层的通信设备之一.(选项在里边) 【网络试题 选择题】_______是数据链路层的通信设备之一.(选项在里边) 有关计算机网络 数据链路层的帧封装协议 的程序 0数据链路层的功能与物理层实现的功能有何不同? 在数据链路层设备用来提高网络性能的是什么? 求:实验:数据链路层-计算机网络:ARQ协议实验结果 数据链路层主要把传送的数据封装成() 下面( )设备工作在OSI参考模型的数据链路层