首页 百科知识 数据链路层的功能

数据链路层的功能

时间:2022-10-01 百科知识 版权反馈
【摘要】:数据链路层主要是为网络层提供服务,为了向网络层提供服务,数据链路层必须使用物理层提供的服务。为了确保数据通信的准确,又必须使得这些错误发生的概率尽可能低,因此,数据链路层必须要具有差错控制的功能。在有确认无连接的服务中,在没有检测到确认时,数据链路层会认为接收方没收到该帧,于是会重发该帧。

数据链路层主要是为网络层提供服务,为了向网络层提供服务,数据链路层必须使用物理层提供的服务。而物理层仅负责比特流的传输,并不保证在比特流的传输过程中不发生差错,因此,接收方接收到的比特位数量可能少于、等于或者多于发送方发送的比特位数量,而且它们还可能存在值的错误,为此,为了为网络层提供可靠的数据传输服务,数据链路层必须具有以下功能:

(1)成帧与帧同步:由于物理层仅负责比特流的传输,并不保证比特流的传输正确性,为此,数据链路层需要将比特流组合成数据块(在数据链路层中将这种数据块称为帧)进行传输,从而可以在发现有数据传送错误时,只须将发生差错的数据块再次传送即可,而不需要将全部的比特流进行重传,这样就可大幅度提高数据传送的效率。而要采用帧格式进行比特流的传输,就必须在比特流中识别帧的开始与结束,而且在夹杂着重传的数据帧中,接收方要能正确地识别哪些是重传的数据帧,哪些是新的数据帧,因此,数据链路层除了必须要具有成帧的功能,还必须要有相应的帧同步的功能。

(2)差错控制:在数据通信过程,由于物理链路性能和网络通信环境等因素,难免会出现一些传送错误。为了确保数据通信的准确,又必须使得这些错误发生的概率尽可能低,因此,数据链路层必须要具有差错控制的功能。

(3)流量控制:在数据通信中,数据的发送方与接收方必须遵循一定的传送速率规则,使得接收方能及时地接收发送方发送的数据,并且当接收方来不及接收时,必须能够及时地控制发送方数据的发送速率,使双方的速率可以基本匹配,从而使通信双方可以避免在通信过程中出现由于接收方来不及接收而造成数据丢失的问题,为此,数据链路层必须要具有流量控制的功能。

(4)链路管理:数据链路层的“链路管理”功能包括数据链路的建立、链路的维持和释放三个主要方面。当网络中的两个结点要进行通信时,数据的发送方必须确知接收方是否已处在准备接收的状态。为此,通信双方必须先要交换一些必要的信息,以建立一条基本的数据链路。在传输数据时,要维持数据链路;而在通信完毕时,要释放数据链路。

(5)MAC寻址:这是数据链路层中的MAC子层的一项主要功能。在以太网中,MAC (Media Access Control,介质访问控制)地址被烧入每个以太网网卡中作为通信节点数据链路层的唯一标识,而在多点连接的网络通信中,数据链路层必须要保证让每一帧都能准确地送到正确的接收方,且接收方也应当知道发送方到底是哪一个节点,为此,数据链路层必须要能够通过采用MAC地址来进行寻址。

在实现上述功能的基础上,数据链路层通常可以为网络层提供以下三种可能的服务:

(1)无确认无连接的服务:是指源计算机向目标计算机发送独立的帧,目标计算机并不对这些帧进行确认。这种服务事先无须建立逻辑连接,事后也不用解释逻辑连接。正因如此,如果由于线路上的原因造成某一帧的数据丢失,则数据链路层并不会检测到这样的丢失帧,也不会恢复这些帧。出现这种情况的后果虽然严重,但在错误率很低,或者对数据的完整性要求不高的情况下(如话音数据),这样的服务还是非常有用的,因为这样简单的错误可以交给OSI上面的各层来恢复。例如:大多数局域网在数据链路层所采用的服务就是无确认的无连接服务。

(2)有确认无连接的服务:为了解决以上无确认的无连接服务的不足,提高数据传输的可靠性,引入了有确认的无连接服务。在这种服务中,源主机数据链路层必须对每个发送的数据帧进行编号,目的主机数据链路层也必须对每个接收的数据帧进行确认。如果源主机数据链路层在规定的时间内未接收到所发送的数据帧的确认,那么它将重发该帧,由此,发送方即可知道每一帧是否正确地到达了接收方。该类服务主要用于不可靠信道,如无线通信系统。

在有确认无连接的服务中,在没有检测到确认时,数据链路层会认为接收方没收到该帧,于是会重发该帧。但由于是无连接的,所以该帧可能会被重复发送多次,而接收方由于无法识别该帧到底是新的帧还是重复发送的帧,因此也可能重复接收该帧多次,从而造成数据错误。为此,采用有确认无连接的服务,可靠性低,不能防止报文的丢失、重复或失序,只适合于传送少量零星的报文。

(3)有确认面向连接的服务:在这种服务中,源计算机和目标计算机在传输数据前需要先建立一个连接,而且该连接上发送的每一帧也都要被编号,以确保帧传输的内容与顺序的正确性,为此,数据链路层除了可保证每一帧都会被接收方收到之外,还可保证每一帧都只会被按正常顺序接收到一次。这也是面向连接服务与前述有确认无连接服务的主要区别。有确认面向连接的服务存在数据链路建立、数据传输、数据链路释放阶段三个阶段,大多数广域网的通信子网的数据链路层均采用的是有确认面向连接的服务。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈