数据链路层要解决的问题(或为什么要设计数据链路层):如何在有差错的线路上,进行无差错的传输。
有差错的意思是指在数据链路上传输数据时可能会出现帧出错、帧超时的情况,无差错的是指发现这些帧出错、帧超时的帧后由发送端重新传送,保证在数据链路上把发送端的帧都正确地发到接收端上。还有一种情况就是重复帧的出现把它丢掉。
ISO关于数据链路层的定义:数据链路层的目的是为了提供功能上和规程上的方法,以便建立、维护和释放网络实体间的数据链路。
链路
:指一条无源的点到点或点到多点的物理线路段,中间没有任何其他的交换节点,但可以包含线路信号放大器之类的线物理设备。
数据链路
:当需要在一条链路上可靠、高效地传送数据时,除了物理线路外,还必须使用一些通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。也就是说,从数据发送点到数据接收点(点到点point to point)所经过的传输途径。
现在最学用的方法是使用适配器来实现这些协议的硬件和软件功能,一般的适配器都包括数据链路层和物理层这两层的功能。
数据链路层要求的主要功能如下:
-
链路管理
当网络中的两个节点要进行通信时,数据的发送方必须确认接收方是否已经处在准备接收 的状态。为此,通信的双方必须先要交换一些必要的信息,即必须建立数据链路。同样在传输数据时要维持数据链路,并在通信结束时释放数据链路。数据链路建立、维持和释放就称为链路管理。 -
帧定界
在数据链路层,数据的传送单位是帧。上层的业务数据拆分成一帧一帧地传送,也就是说,当出现差错时,只要将有差错的帧重传一次即可,避免了将全部数据都进行重传。帧定界是指接收方应当能从收到的比特流中准确地区分出一帧的开始和结束在什么地方。帧定界也可称为帧同步。 -
流量控制
发送方发送数据的速率必须让接收方能来得及接收,当接收方来不及接收时,就必须及时控制发送方发送数据的速率,这种功能称为流量控制(flow control) -
差错控制
在计算机网络通信中,为了处理出现差错的数据帧,广泛地采用了差错编码技术,包括两大类:- 一类是前向纠错,即接收方收到有差错的数据帧时,能够自动将差错修正过来,这种方法开销较大,不太适合于计算机通信。
- 另一类是差错检测,即接收方可以检测出收到的帧有差错,但不知道错了多少个比特,更不知道错误比特的准确位置。
当检测到有差错的帧时,通常是立即将它丢弃,但接下去有两种选择:
- 一种是数据链路层不进行任何额外处理
- 另一种则是直接由数据链路层负责重传的帧。
这两种方法在实际的链路协议中都是很常用的。
-
区分数据和控制信息
在大多数情况下,为了提高链路传输效率,数据和控制信息都是捎带于同一帧中进行传送。因此,一定要有相应的区分措施让接收方能够将它们正确地区分开来。 -
透明传输
不管所传业务数据是什么样的比特组合,都应当能够在链路上传送。当所传业务数据中的比特组合恰巧出现了与某一控制信息完全一样时,必须采取可靠的措施,让接收方不会将这种比特组合的数据误认为是某种管制信息。 -
寻址
数据链路层必须保证每一帧都能送到正确的接收方,接收方也应知道发送方是哪个站点。寻址功能要求同一网络上的站点必须拥有唯一的地址标识。
以上这些功能并不是绝对的,实际的链路层协议可以根据个具体的通信需求进行必须的添加和删除处理。
网友评论