夏杰
摘要:數据链路层是相邻结点层次,主要功能是通过校验、确认和反馈重发等手段,将不 可靠的物理链路改造成对网络层来说无差错的数据链路,为网络层在相邻结点间无差错的传送以帧为单位的数据。数据链路层还要协调收发双方的数据传输速率,即进行流量控制,以防止接收方因来不及处理发送方发来的高速数据而导致缓冲器溢出丢失。
关键词:链路;差错;流量控制;帧
数据链路层的主要功能是在相邻节点(如计算机与计算机、路由器与 路由器等)之间无差错的传输数据帧。首先,连接两个节点的信道是采用点对点信道还是广播信道,如果是广播信道,还需要使用专用的共享信道协议来协调广播域内不同主机之间的通信。其次,比特流在信道中传输时肯定要受到外界噪声的干扰,这将产生部分比特的错误,对于这些错误如何发现,发现错误的帧后是自动纠错还是让发送端重传,物理层提供的是与具体信息无关 的透明比特流的传输,对于一个个由0和1组成的比特流,在数据链路层必须生成本层的协 议数据单元(PDU)数据帧,如何将比特流转换成数据帧,需要由数据链路层的相关协议来完成等。本文将主要围绕这些问题进行浅谈,差错控制和流量控制方法同样适用于传输层(如传输层中TCP报文段的流量控制"不管出现在哪一层,这些技术的原理是相同的。
数据链路层要完成相邻节点之间比特流的传输控制,处理出现的传输错误,在两个节点 之间提供以数据帧为单位的传输服务。
以两台计算机之间的通信为例,当两台计算机之间要实现通信时,需要在每台计算机上安装一块网卡(也称为“网络适配器”),两块网卡之间通过一条“链路”连接,这条链路即一段物理线路,也称为“物理链路”。为了能够在这条链路上传输数据,还必须有相应的通信控制协议的协调,通信控制协议具体由一组硬件和软件共同来完 成,在局域网中这些功能集中在网卡上。增加了通信控制协议的链路称为“逻辑链路”或“数据链路”。
帧即数据帧,是数据链路层的协议数据单元,是在节点中对网络层的PDU(分组或包)添加了数据链路层的通信控制协议后构成的数据单元。假 设“计算机A”与“计算机B”之间通过TCP/IP协议进行通信,而且数据从“计算机A”发送 到“计算机B”。其中,“计算机A”的数据链路层在接收到网络层传下来的分组(IP数据报) 后,在其前后分别加上头部和尾部,从而形成数据帧。所以,成帧(framing)就是在分组的前后分别加上代表数据链路层特征的头部和尾部的过程。帧到达物理层后,根据所使用的信道特性,将编码后的比特流发送到“计算机B”在接收到比特流后,根据发送端 成帧时所使用的规程协议,再根据隐含的定界信息从连续的比特流中提取一个个帧。如果接收到的帧经检测后无差错,便去掉头部和尾部校验码,将得到的信息交给高层,如果出错将要求发送端重传该出错的帧。
头部和尾部是一个帧的重要标志(即帧的定界)。一个完整的帧从头部开始到尾部结束,物理层只负责比特流的接收和发送,而不考虑信息本身的意义,同时物理层也不能解决数据传输的 。真正有效和可靠的数据传输,就需要对传输操作严格地控制,这就是数据链路传输控制规程需要解决的,也就是数据链路层协议需要解决的 。
数据链路层的主要功能是通过一些数据链路层协议或链路规程"在不太可靠的物理链路上实现可靠的数据传输。数据链路层的主要功能包括:
1.链路管理
链路就是数据链路的建立、维护和释放操作。当网络中的两个节点间要进行通信时,数据的发送方知道接收方是否准备接收的状态。为此,在传输数据之前,通信双方事先交换信息,让通信双方做好数据发送和接收的准备。即在通信之前,必须在发送方与接收方之间建立一条数据链路。
保证数据传输的可靠性,在传输数据的过程中也要维护链路。同样,在通信结束 后,需要释放数据链路,以供其他用户使用。
2.帧同步
在数据链路层中,数据的传输单位是帧。数据就是一帧一帧地发送方传输到接收方的。帧同步是指接收方到的比特流中准确地区分帧的开始与结束(即成帧),并让发送方将在传输中出错的帧重新发送(重传"这样可避免重新传输所有的数据。
3.流量控制
在数据传输过程中,为了让数据高效、可靠地传输到接收方,防止出现数据传输中的过载和阻塞现象,就需要对数据流量进行控制。
流量控制功能用发送方发送数据的速率,保证接收方能够来得及接收。当接收方来不及接收时,就会出现数据溢出或信息丢失。概括地讲,流量控制就是使发送方和接收方的数据保持一致。
4.差错控制
由于信道本身和外界的干扰,不可能所有的帧都能够准确无误地传输到对方,其中有一 些帧在传输中会丢失或出错。在计算机网络中,对比特流传输的差错率有一定的限制,当差错大于限定值时,将会导致接收方收到的数据与发送方实际发送的数据的不一致。差错现象包括数据的丢失,发出的数据与接收到的数据不一致。
5.透明传输
传输包括两个功能:一是不管所传数据是什么样的比特组合,都应该能够在链路上传输;二是当所传数据中的比特正好与某一信息完全相同时,必须能够采取适当的方式,使接收方能辨别其是数据还是某种控制信息,此功能的典型实现方法0比特填充法,当同时实现这两个功能时,才能够保证数据链路层的传输是透明的。
6.寻址
寻址是指在数据交换中,发送方能够知道将每一帧发送到什么地方。同时,在接收方收 到每一个帧时,也应该知道该帧是从什么地方发来的,而且是不是发给自己的。
在OSI参考模型中,将整个通信功能划分为七个层次,每一层的目的是向相邻的上一层提供服务,并且屏蔽服务实现的细节。模型被设计成多层,像是在与另一台计算机对等层通信。实际上,通信是在同一计算机的相邻层之间进行的。每一层都按照一组协议来实现某些网络的功能。
数据链路层的主要功能是在物理层提供比特流传输服务的基础上,从网络层接收数据,加上有意义的比特位形成报文头部和尾部(用来携带地址和其他控制信息),负责在通信的实体之间建立、维持和拆除数据链路的连接,在两个相邻节点间的线路上,无差错地传送以帧为单位的数据。因此,每一帧必须带有同步、地址、差错控制以及流量控制等控制信息。数据链路层协议用于在不太可靠的物理链路上实现可靠的数据传输。最终,通信子网的实现为资源子网的实现奠定了基础。