本文主要介绍了数据链路层中的滑动窗口概念以及数据链路层所面临的问题和解决方案。
滑动窗口的概念在数据链路层中用于实现有效的流量控制和错误检测。每个待发送的数据帧被赋予一个序列号seq,这个序列号的取值范围是从0到2^n-1,其中n是一个位字段的长度。为了确保数据的有序传输,系统会建立一个缓冲区,这个缓冲区分为两个部分:发送窗口和接收窗口。
发送窗口定义了允许发送的帧范围,它最多可以存储n个待确认的帧。当发送窗口达到最大值n时,必须等待接收方的确认才能继续发送新的帧,这有效地防止了数据的溢出。而接收窗口则规定了允许接收的帧范围,对进入窗口的帧进行顺序处理并提交给网络层,同时产生确认信息。如果帧不在接收窗口范围内,则会被丢弃,以确保接收的帧都是按序的。
数据链路层需要解决四个主要问题:
1)为网络层提供服务:数据链路层需要将源端网络层的数据正确地传输到宿端网络层,提供无确认的无连接服务、有确认的无连接服务和有确认的面向连接服务。这些服务分别适用于不同的通信环境,如低误码率环境、不可靠通信和需要高可靠性的通信。
2)成帧:数据链路层需要将物理层传输的比特流分割成可识别的帧,并通过帧的校验和进行错误检测。常见的成帧方法包括字符计数法、字符填充的首尾标识法、位填充的首尾标识法和物理层编码违例法。这些方法各有优缺点,例如字符计数法可能会因为控制字符错误导致同步问题,而字符填充的首尾标识法则需要处理数据中可能出现的标识符冲突。
3)差错控制:通过校验和或其他机制来检测传输过程中可能发生的错误,并采取重传等措施确保数据的准确性。
4)流量控制:滑动窗口机制就是一种流量控制策略,它限制了发送方的发送速率,以适应接收方的处理能力,防止数据拥塞。
此外,数据链路层还包括基本数据链路协议、数据链路的连接方式、点到点的数据链路访问和广播网络的介质访问控制等内容。例如,点到点的数据链路访问通常使用像PPP(Point-to-Point Protocol)这样的协议,而在广播网络中,如以太网,需要MAC(Media Access Control)子层来管理多个设备共享介质的访问。
滑动窗口的概念和数据链路层的各种功能是构建高效、可靠的数据传输网络的关键组成部分,它们确保了数据在网络中的有序、准确和控制流量的传输。