数据链路层是OSI参考模型中的第二层,主要负责通过一条链路从一个节点向另一个物理链路直接相连的相邻节点传送数据报。
一、基本概念
结点:主机、路由器等网络设备。
链路:网络中两个结点之间的物理通道,如双绞线、光纤和微波等,分为有线链路和无线链路。
数据链路:网络中两个结点之间的逻辑通道,通过在链路上添加实现控制数据传输协议的硬件和软件构成。
帧:链路层的协议数据单元,用于封装网络层数据报。
二、主要功能
为网络层提供服务:提供无确认无连接服务、有确认无连接服务、有确认面向连接服务。其中,有连接服务一定有确认。
链路管理:负责数据链路的建立、维持和释放,主要用于面向连接的服务。
组帧:封装数据报构成数据帧,并添加首部和尾部以实现帧定界和帧同步。组帧的方法包括字符计数法、字符(节)填充法、零比特填充法、违规编码法等。
流量控制:通过控制发送速率,使接收方有足够的缓冲空间来接收每一个帧,避免数据丢失。常用的流量控制方法有停止-等待协议、后退N帧协议(GBN)、选择重传协议(SR)等。
差错控制:通过冗余码的技术实现一组二进制比特串在传输过程中是否出现了差错,并进行检错和纠错。常用的差错控制编码有奇偶校验码、循环冗余码(CRC)、海明码等。其中,CRC能够通过异或运算实现无比特差错的传输,但要实现可靠传输还需加上帧编号、确认和重传等机制。
三、透明传输与帧定界
透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。为实现透明传输,需要采取适当的措施,如字符填充法、零比特填充法等,以避免数据被误认为是控制信息。帧定界则是通过添加首部和尾部来确定帧的界限,从而正确识别帧的开始和结束。