【网络基础】数据链路层

数据链路层基本概念

数据链路层(Data Link Layer,DLL)是OSI七层参考模型的第二层,属于低三层中的中间一层。数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及连接。

功能

数据链路层最基本的服务是将源计算机网络层传来的数据可靠地传输到相邻节点的目标计算机的网络层。为达到这一目的,数据链路层必须具备一系列相应的功能,主要有:如何将数据组合成数据块(在数据链路层中将这种数据块称为帧,帧是数据链路层的传送单位);如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使之与接收方相匹配;在两个网络实体之间提供数据链路通路的建立、维持和释放管理。

  1. 帧同步
    为了向网络层提供服务,数据链路层必须使用物理层提供的服务。而物理层是以比特流进行传输的,这种比特流传输并不保证在数据传输过程中没有错误,接收到的位数量可能少于、等于或者多于发送的位数量。而且它们还可能有不同的值,这时数据链路层为了能实现数据有效的差错控制,就采用了一种“帧”的数据块进行传输。而要采帧格式传输,就必须有相应的帧同步技术,这就是数据链路层的“成帧”(也称为“帧同步”)功能。
  2. 差错控制
    在数据通信过程中可能会因物理链路性能和网络通信环境等因素,难免会出现一些传送错误,但为了确保数据通信的准确,又必须使得这些错误发生的几率尽可能低。这一功能也是在数据链路层实现的,就是它的“差错控制”功能。
  3. 流量控制
    在双方的数据通信中,如何控制数据通信的流量同样非常重要。它既可以确保数据通信的有序进行,还可避免通信过程中出现因为接收方来不及接收而造成的数据丢失。这就是数据链路层的“流量控制”功能。数据的发送与接收必须遵循一定的传送速率规则,可以使得接收方能及时地接收发送方发送的数据。并且当接收方来不及接收时,就必须及时控制发送方数据的发送速率,使两方面的速率基本匹配。
  4. 链路管理
    数据链路层的“链路管理”功能包括数据链路的建立、维持和释放三个主要方面。当网络中的两个节点要进行通信时,数据的发送方必须确知接收方是否已处在准备接收的状态。为此通信双方必须先要交换一些必要的信息,以建立一条基本的数据链路。在传输数据时要维持数据链路,而在通信完毕时要释放数据链路。
  5. MAC寻址
    这是数据链路层中的MAC子层主要功能。这里所说的“寻址”与 “IP地址寻址”是完全不一样的,因为此处所寻找的地址是计算机网卡的MAC地址,也称“物理地址”、“硬件地址”,而不是IP地址。在以太网中,采用媒体访问控制(Media Access Control, MAC)地址进行寻址,MAC地址被烧入每个以太网网卡中。这在多点连接的情况下非常必需,因为在这种多点连接的网络通信中,必须保证每一帧都能准确地送到正确的地址,接收方也应当知道发送方是哪一个站。
  6. 区分数据与控制信息
    由于数据和控制信息都是在同一信道中传输,在许多情况下,数据和控制信息处于同一帧中,因此一定要有相应的措施使接收方能够将它们区分开来,以便向上传送仅是真正需要的数据信息。
  7. 透明传输
    这里所说的“透明传输”是指可以让无论是哪种比特组合的数据,都可以在数据链路上进行有效传输。这就需要在所传数据中的比特组合恰巧与某一个控制信息完全一样时,能采取相应的技术措施,使接收方不会将这样的数据误认为是某种控制信息。只有这样,才能保证数据链路层的传输是透明的。

帧同步功能

在数据链路层之所以要把物理层上的比特流组合成以帧为单位进行传送,其目的就是为了在出错时,可只将有错的帧重发,而不必将全部数据重新发送,从而提高了效率。通常通过为每个帧计算“校验和”来实现差错检测。当一帧到达目的地时,“校验和”将再被计算一遍,若与原“校验和”不同,就可能发现差错了。

接收方要检查“校验和”就必须能从物理层收到的比特流中明确区分出一帧的开始和结束在什么地方。这个问题就是数据链路层的成帧方法,也称之为“帧同步”功能。

1.字符计数法

这种帧同步方法是一种面向字节的同步规程,是利用帧头部中的一个域来指定该帧中的字符数,以一个特殊字符表征一帧的起始,并以一个专门字段来标明帧内的字符数。

同步原理:接收方可以通过对该特殊字符的识别从比特流中区分出帧的起始,并从专门字段中获知该帧中随后跟随的数据字符数,从而可以确定出帧的终止位置。

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

该同步方法是用一些特定的字符来定界一帧的起始与终止,充分解决了错误发生之后重新同步的问题。

同步原理:在这种帧同步方式中,为了不使数据信息位中与特定字符相同的字符被误判为帧的首尾定界符,可以在这种数据帧的帧头填充一个转义控制字符(DLE STX,Data Link Escape – Start of Text),在帧的结尾则以DLE ETX(Data Link Escape-End of Text)结束,以示区别,从而达到数据的透明性。

3.比特填充的首尾定界符法

“比特填充的首尾界定符法”是以一组特定的比特模式(如01111110)来标志一帧的起始与终止,它允许任意长度的位码,也允许任意每个字符有任意长度的位。它的工作原理是在每一帧的开始和结束位置都加上一个特殊的位模式,如01111110。当发送方的数据链路层传到数据中5个“1” (因为特定模式中是有5个连续“1”)时,自动在输出位流中填充一个“0”。在接收方,当收到连续5个“1”,并且后面位是“0”时,自动删除该“0”位。就好像字节填充过程对于双方计算机中的网络层是完全透明的一样。

4.违法编码

该法在物理层采用特定的比特编码方法时采用。例如,曼彻斯特编码方法,是将数据比特“1”编码成“高—低”电平对,将数据比特“0”编码成“低—高”电平对。而“高—高”电平对和“低—低”电平对在数据比特中是违法的。可以借用这些违法编码序列来界定帧的起始与终止。局域网IEEE 802标准中就采用了这种方法。

HDLC——高级数据链路控制协议

特点

  1. HDLC协议不依赖于任何一种字符编码集;
  2. 数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;
  3. 全双工通信,有较高的数据链路传输效率;
  4. 所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性高
  5. 传输控制功能与处理功能分离,具有较大灵活性。

帧类型

  1. 信息帧(I帧):信息帧用于传送有效信息或数据,通常简称I帧。I帧以控制字第一位为“0”来标志。
  2. 监控帧(S帧):监控帧用于监视和控制数据链路,完成信息帧的接收确认、重发请求、暂停发送等功能。
  3. 无编号帧(U帧):无编号帧用于数据链路的控制,它本身不带编号,可以在任何需要的时刻发出,不影响带编号的信息帧的交换顺序。

操作方式

  1. 正常响应方式
  2. 异步响应方式
  3. 异步平衡方式

帧格式

HDLC帧格式

差错控制功能

差错控制就是如何确保所有的数据帧最终在递交给目标计算机上的网络层时,能保证数据的完整性,并且保持正确的顺序

差错控制功能是数据链路层另一个非常重要的基本功能,也是确保数据通信正常进行的基本前提。数据通信系统必须具备发现并纠正差错的能力,使差错控制在所能允许的尽可能小的范围内,这就是数据链路层重要的“差错控制”功能。

通信信道的噪声分为两类:热噪声和冲击噪声

在差错控制功能中,主要采取纠错码、检错码、反馈检测(ARQ,使用检错码)、自动重发等重传技术。

流量控制功能

当接收到数据后,接收器往往要进行某些处理,还要把数据送给高层,所以产生数据的接收端往往比发送端速率低的现象。如此时不对发送方的发送速率(也即链路上的信息流量)做适当的限制,就可能出现接收端的数据帧“溢出”,前面来不及接收的帧将被后面不断发送来的帧“淹没”,从而造成帧的丢失而出错。所以,对发送端数据的发送速率适当的控制则是必需的,使发送速率不致超过接收方的速率。在数据链路层中,XON/XOFF方案、停止—等待协议、滑动窗口机制就是常用的流量控制方法。

实用的数据链路层协议应考虑到:传输数据的信道不是可靠的(即不能保证所传的数据不产生差错),并且还需要对数据的发送端进行流量控制。

  1. 停止-等待协议
    停止—等待协议的思想是:在传输过程中不出差错的情况下,接收方在收到一个正确的数据帧后即交付给主机B,同时向主机A发送一个确认帧ACK。当主机A收到确认帧ACK后才能发送一个新的数据帧,这样就实现了接收方对发送方的流量控制。
  2. 滑动窗口协议

误码率的定义

误码率是衡量数据传输系统正常工作状态下传输可靠性的参数。根据实际传输要求提出误码率要求,误码率并不是越低越好。

差错产生的原因及差错控制的方法

在原始物理传输线路上存在着各种噪声和干扰,传输数据信号可能有差错。
差错控制方法包括差错检测、差错控制和流量控制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值