链路层概述
链路层提供的服务
任一链路层的基本服务是将数据报通过单一通信链路从一个结点移动到相邻结点,但不同链路层协议能提供不同服务细节:
- 成帧 几乎所有的链路层协议都要讲网络层数据报用链路层帧封装起来。
- 链路接入 媒体访问控制(MAC)协议规定了帧在链路上传输的规则。
- 可靠交付 保证无差错的经链路层移动每个网络层数据报。链路层的可靠交付服务时通过确认和重传取得的
- 差错检测和纠正 通过让发送结点在震中包括差错检测比特,让接受结点进行差错检查,以此完成这项工作
链路层的实现
在网络中,链路层是实现在路由器的线路卡中。主机的链路层主体部分是在网络适配器(网络接口卡)中实现的,但也有一些高层链路层功能是在链路层软件组建中实现的。所以链路层是硬件和软件的结合体,是协议栈中软件与硬件交接的地方。
差错检测和纠正技术
奇偶校验
差错检测最简单的方式就是用单个奇偶校验位。如下图所示
只需要在发送数据后面添加一个附加比特,选择它的值使得这d+1个比特中1的总数为偶数个则为偶校验(奇数个则为奇校验)。接收方只需要数一数接收的d+1个比特中1的数目即可。 偶校验方案中出现了奇数个值为1的比特,则出现差错,反之亦然。但如果发生两个比特差错,则会有未检出的差错。
对单个奇偶校验的一种简单改进是使用二维奇偶校验。<