文章目录
- 数据链路层
- 主要功能
- 基本概念
- 链路
- 数据链路
- 帧
数据链路层
在计算机网络中,链路层(Data Link Layer)是网络协议栈中的一层,负责管理和控制链路的建立、维护和释放,以及处理链路层的数据帧传输和错误控制等功能。各种协议和技术(如以太网、PPP 点对点协议等)都在链路层进行操作,以实现可靠的数据传输和链路的有效利用。
主要功能
-
帧同步:数据链路层负责将来自网络层的数据分割成合适大小的数据帧,并在接收端重新组装这些帧。帧同步确保每个帧的开始和结束可以被正确识别。
-
差错检测与控制:使用校验和(checksum)或循环冗余校验(CRC, Cyclic Redundancy Check)等技术来检测传输过程中的错误。如果检测到错误,则数据链路层会要求重发受影响的数据帧。
-
流量控制:避免发送方发送数据的速度超过接收方处理的能力,通常采用滑动窗口(sliding window)等机制来控制数据流。
-
拥塞控制:当网络中的数据量过大时,数据链路层会采取措施减少数据发送量,防止网络拥塞。
-
介质访问控制(MAC):确定何时以及如何访问共享介质(如以太网中的电缆)。常用的访问控制方法有
CSMA/CD
(载波监听多址/碰撞检测)和CSMA/CA
(载波监听多址/冲突避免)。 -
地址分配:分配唯一的硬件地址(如MAC地址)给网络上的每个设备,以便正确地寻址和转发数据帧。
-
链路管理:建立、维护和终止数据链路连接,确保链路的有效性和可靠性。
基本概念
链路
链路(Link)是指用来连接两个节点(例如计算机、路由器等)的物理或逻辑路径。它提供了节点之间的通信通路。即从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点。
链路的可靠性和带宽是网络连接的重要指标。可靠性指链路传输数据的稳定性和抗干扰能力,带宽则表示链路能够承载的数据传输速率。链路的性能和限制会根据具体的物理介质和网络设备而有所不同。
数据链路
数据链路(Data Link)是基于链路的。当在一条链路上传送数据时,除需要链路本身,还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。
数据链路负责将原始的比特流转化为有结构的数据帧,并管理数据的传输和错误控制。数据链路层的主要作用是提供可靠的点对点数据传输,并检测和纠正数据传输中出现的错误。
计算机中的网络适配器(俗称网卡)和其相应的软件驱动程序就实现了这些协议。一般的网络适配器都包含了物理层和数据链路层这两层的功能。
帧
帧(Frame)是数据链路层中的基本传输单位。它是由数据链路层定义的,存储了一个或多个数据字段,包括数据和控制信息。即,数据链路层对等实体之间在水平方向进行逻辑通信的协议数据单元PDU。每个帧通常包含了帧头(Frame Header)和帧尾(Frame Trailer)等控制字段,用于标识帧的开始和结束,并提供错误检测和纠正的机制。
在数据链路层的传输过程中,发送节点将数据进行分帧,并添加帧头和帧尾,形成完整的帧。接收节点通过接收到的帧进行帧解析,提取出数据和控制信息,并进行错误检测、纠正和确认。
帧在数据链路层的传输中起着重要的作用,它通过将数据划分为较小的块,并添加控制信息,实现了数据链路层的功能,如流量控制、差错检测和处理等。帧的具体结构和字段的定义会根据不同的数据链路协议而有所不同,例如以太网、PPP 协议(Point-to-Point Protocol)等。