
大家好,很高兴又和大家见面啦!!!
在前面的内容中,我们共同完成了网络体系结构基础——物理层的学习。
从今天开始,我们的探索之旅将更进一步,正式踏入数据链路层的世界。
数据链路层如同一位可靠的交通指挥员,它在物理层提供的比特流传输服务之上,建立起一条条有秩序、可控制的数据通道,确保信息能够高效、准确地在相邻节点间传输。理解这一层,是掌握网络通信核心原理的关键一步。
现在,就让我们开始这段新的学习旅程,一起揭开数据链路层工作原理的神秘面纱。
在教学五层模型中,数据链路层位于物理层的上一层:
flowchart TB
a[应用层]
b[传输层]
c[网络层]
d[数据链路层]
e[物理层]
a--->b--->c--->d--->e
e--->d--->c--->b--->a数据链路层的主要任务是让 帧 在一段链路上或一个网络中传输。数据链路层协议有多种,但有三个基本问题则是共同的,即 封装成帧、透明传输 和 差错控制。
数据链路层使用的信道主要有两种:
在 点对点信道 中,我们需要先了解以下概念:
链路管理 指的是 数据链路层连接的建立、维持和释放过程。其 主要用于面向连接的服务。
链路两端的节点要进行通信,首先必须确认对方已处于就绪状态,并交换一些必要的信息以对帧序号初始化,然后才能建立连接,在传输过程中要能维持连接,而在传输完毕后要释放该连接。
数据链路层的功能主要有5个:
接下来我们将简单的介绍一下各个功能;
封装成帧 是指在一段数据的前后分别添加首部和尾部构成帧,帧是数据链路层的传送单元。
flowchart LR
subgraph 帧
direction LR
a[首部]--->b[数据]--->c[尾部]
end帧长 等于 帧 的数据部分长度加上首部和尾部的长度。
flowchart LR
subgraph 帧长
direction LR
a[首部长度]---|+|b[数据长度]---|+|c[尾部长度]
end首部和尾部中含有许多控制信息,它们的一个重要作用时确定帧的界限,即 帧定界。
为了提高帧的传输效率,应当使帧的数据部分长度尽可能地大于首部和尾部的长度。
但随着帧长的增加,传输差错发生的概率也随之提高,发生差错时重传的代价也越大,因此每种链路层协议都规定了帧的数据部分的长度上限,即 最大传送单元 。
透明 是一个重要的计算机术语,它表示某个实际存在的事物看起来不存在一样。
若在数据中恰好出现于帧定界符相同的比特组合,这时若不进行干涉,则会被误认为传输结束而丢弃后面的数据,因此需要采取有效措施来解决这个问题,即 透明传输。
透明传输 是指不论什么样的比特组合的数据,都能够按照原样无差错地在这个数据链路上传输。
这里的 透明 指的是在传输的过程中,看不见数据链路层有什么妨碍数据传输的东西。也就是说,数据链路层对这些数据来说是 透明 的。
数据在传输的过程中,因为信道中的噪声等原因,帧在传输过程中可能会出现错误,这些错误分为 位错 和 帧错:
差错控制 指的是发现并解决一个帧内部出现的 位错。
通常有两种解决方式:
流量控制 指的是控制发送方发送帧的速率,让接收方能够及时完成接收。
可靠传输 指的是接收方能够发现并解决 帧错。
帧错 包括三种:
在 广播信道 中,由于该信道上连接的主机有很多,其在逻辑上时总线型拓扑,多个结点需要争抢传输介质的使用权,为了更好的管理介质的使用权分配,就需要通过相关协议来决定介质的使用权的先后顺序。
在 点对点信道 中,由于两个结点之间有专属的传输介质,不需要像 广播信道 一样争抢信道,因此点对点信道中就不需要实现此功能。
至此,我们对数据链路层的探索就暂告一段落了。
通过今天的学习,我们揭开了这位网络通信“幕后指挥员”的神秘面纱。我们了解到,数据链路层的核心使命,正是在物理层提供的原始比特流传输能力之上,构建起一条条可靠、有序的数据通道。
从最基本的封装成帧、透明传输,到确保数据完整性的差错控制与可靠传输,再到协调收发节奏的流量控制,以及管理共享信道的介质访问控制,这五大功能环环相扣,共同确保了数据能够高效、准确地在相邻节点间传输。
理解数据链路层的工作原理,是构建扎实网络知识体系的基石。它让我们明白,看似简单的“数据包发送”背后,实则有一套精密的机制在保驾护航。