一、数据链路层的定义与其主要完成的功能
1、为什么要设计数据链路层?
有了物理层进行二进制位流的透明传输,为什么还要设计数据链路层呢?在物理层进行二进制传输 时,有些问题是其难以解决的。比如,在传输过程中由于信号干扰,必然会导致二进制位流出现差错 (有一定的误码率)。物理层也没有办法恢复这些差错,所以,需要一个机制来加强物理层的功能, 来保证物理层可以向上层呈现一条无差错的、满足一定服务要求的点到点传输,为接下来的层次提供 更可靠的保证。对于上层(比如网络层来说),数据链路层可以解决点到点传输的诸多问题,比如差 错检测、寻址、对物理链路的访问控制问题(在广播式通讯中,如何解决信道使用权的问题)。
简单来说,数据链路层是为了发现并解决物理层中数据差错的问题,在有差错的链路上保证 无差 错的传输。
2、数据链路层如何保证数据能够无差错的传输?
数据链路层为了保证数据能够无差错的传输,其基本工作就是增加额外的信息(协议控制信息)
3、数据链路层协议制定的内容是什么?
为了无差错的传输而制定的控制方式的本质就是数据链路层的协议(在早期,其也叫做数据链路控 制规程)。
协议提供的最基本的功能为:
(1)数据在数据链路上的正常传输(建立、维护和释放)
(2)寻址:一个节点要知道数据是否发送给自己。
(3)流量控制:发送方按照接受方的处理能力来发送数据
(4)帧定界(帧同步)
(5)差错控制
由于前两个问题在不同的数据链路层中其实现方式不同,所以不做重点介绍。
4、实际网络传输的数据流向(通信节点转发数据的过程)
对于任何一个路由器来说,每一个端口都对应的时物理层与数据链路层.
通信节点转发数据的过程:
(1) A端口接收到一组二进制位流
(2)将二进制位流送到数据链路层的实体(软件的进程或者物理的硬件单元)
(3)帧的同步(划分帧的边界,以帧为单位处理。划分了帧就知道了,目的地址,决定是发 送这个帧还是丢弃这个帧)
(4) 差错检测(出错则丢弃,没出错则继续传输)
(5) 从帧中提取有效数据(分组)并送到网络层的进程
(6)根据分组所携带的ip地址进行路由选择(确定数据的出口)
5、数据链路层给高层提供的服务
任何一层给其高层提供的服务有面向连接的和无连接的两种服务方式。
·无连接服务:
(1)无确认无连接服务:在数据发送之前不需要建立连接,且发送方发送数据后,接收方不需要回应。这种方式由于不需应答,其传输效率高,但是可靠性差。适用于误码率比较低、实时性高的场合,如大部分有线局域网。
(2)有确认无连接服务:在数据发送之前不需要建立连接,但是发送方发送数据后,接收方需要确认数据已经正确接收并回应,在接收方确认数据正确接收之前,这个过程不会停止。其传输效率较低,适用于可靠性不高的网络环境,比如无线局域网
·面向连接服务:
在发送前需要建立连接,保证数据能够正常传输(依然需要确认),适用于对连接质量要求高的 场合,如广域网。
6、确认(应答)机制是如何工作的?
在有确认无连接服务和面向连接的服务中,数据的接收都需要确认,他们是如何实现的呢?在 数据发送的过程中,会出现数据正确到达、数据错误到达,数据没有到达三种情况,对于发送方 而言,一旦确认数据正确送达,则数据发送过程停止,若数据没有正确送达, 则需要重发数据。数据的应答方式有三种:
正向应答:只应答正确的信息
负向应答:只应答错误的信息(邮件系统收到退信)
双向应答:正确错误的信息都应答
思考:在数据链路层中,最常采用的是哪种应答方式?
小知识:
Iso(开放系统互联参考模型)关于数据链路层的定义:数据链路层的目的是为了提供功能上和 规程上的方法,以便建立、维护和释放网络实体之间的数据链路。
数据链路:从数据发送点到数据接受点(点到点point to point)所经过的传输途径。
参考资料: [1]韩立刚,计算机网络原理创新教程[M],水利水电出版社,2017.1
[2]陈妍,计算机网络原理[M].西安交通大学,2012.6
转载于:https://blog.51cto.com/xuan97916/1910357