网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
数据链路层在物理层提供服务的基础上向网络层提供服务,其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造为逻辑上无差错的数据链路,使之对网络层表现为一条无差错的链路。
1.为网络层提供服务
对网络层而言,数据链路层的基本任务是将源机器中来自网络层的数据传输到目标机器的网络层。
- 无确认的无连接服务。源机器发送数据帧时不需先建立链路连接,目的机器收到数据帧时不需发回确认。对丢失的帧,数据链路层不负责重发而交给上层处理。
适用于实时通信或误码率较低的通信信道,如以太网。
2. 有确认的无连接服务。源机器发送数据帧时不需先建立链路连接,但目的机器收到数据帧时必须发回确认。源机器在所规定的时间内未收到确定信号时,就重传丢失的帧,以提高传输的可靠性。
该服务适用于误码率较高的通信信道,如无线通信。
3. 有确认的面向连接服务。帧传输过程分为三个阶段:建立数据链路、传输帧、释放数据链路。
目的机器对收到的每帧都要给出确认,源机器收到确认后才能发送下一帧,因而该服务的可靠性最高。该服务适用于通信要求(可靠性、实时性)较高的场合。
注意:有连接就一定要有确认,不存在无确认的面向连接的服务。
2.链路管理
数据链路层连接的建立、维持和释放过程称为链路管理,它主要用于面向连接的服务。
链路两端的结点要进行通信,必须首先确认对方已处于就绪状态,并交换一些必要的信息以对帧序号初始化,然后才能建立连接,传输过程中维持连接,传输完毕后释放连接。
在多个站点共享同一物理信道的情况下(如在局域网中)如何在要求通信的站点间分配和管理信道也属于数据链路层管理的范畴。
3.帧定界、帧同步与透明传输
两台主机之间传输信息时,必须将网络层的分组封装成帧,以帧的格式进行传送。将一段数据的前后分别添加首部和尾部,就构成了帧。
帧长=数据部分的长度+首部长度+尾部长度。
首部和尾部中控制信息的一个重要作用是确定帧的界限,即帧定界。
**帧同步指的是接收方应能从接收到的二进制比特流中区分出帧的起始与终止。**如在 HDLC协议中,用标识位F(O1111110)来标识帧的开始和结束。通信过程中,检测到帧标识位F即认为是帧的开始,然后一旦检测到帧标识位F即表示帧的结束。
为了提高帧的传输效率,应当使帧的数据部分的长度尽可能地大于首部和尾部的长度,但每种数据链路层协议都规定了帧的数据部分的长度上限——最大传送单元(MTU)。
透明传输就是不管所传数据是什么样的比特组合,都应当能在链路上传送,因为可能会有数据组合与帧定界符相同。
4.流量控制
由于收发双方各自的工作速率和缓存空间的差异,可能出现发送方的发送能力大于接收方的接收能力的现象,如若此时不适当限制发送方的发送速率(即链路上的信息流量),前面来不及接收的帧将会被后面不断发送来的帧“淹没",造成帧的丢失而出错。
流量控制:限制发送方的数据流量,使其发送速率不超过接收方的接收能力。
对于数据链路层来说,控制的是相邻两结点之间数据链路上的流量,而对于运输层来说,控制的则是从源端到目的端之间的流量。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**