计算机网络——数据链路层
功能概述
数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务是将源自网络层的数据可靠地传输到相邻节点的目标机网络层。
其主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造曾为逻辑上无差错的数据链路,使之对网络层表现为一条
功能
- 为网络层提供服务。无确认无连接服务,有确认无连接服务,有确认面向连接服务
- 链路管理,即连接的建立、维持、释放
- 组帧
- 流量控制 限制发送方
- 差错控制
封装成帧合透明传输
封装成帧
在一段数据的前后部分添加首部合尾部,构成一个帧
接收端在收到物理层上交的比特流后,能够根据首部尾部标记,识别帧的开始及结束
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始合终止\
帧长:帧首部+数据部分+帧尾部
数据部分 $\leq$ 最大传送单元MTU
组帧的四种方法
字符计数法
帧首部使用一个计数字段来标明帧内字符数
字符填充法
只用 SOH 和 EOT 作为开头和结尾进行传输
当传送的帧为非ASCII码的文本组成时,需要采取字符填充实现透明传输
零比特填充法
透明传输
透明传输是指不管传输的数据是什么样的比特组合,都应当能够在链路上传送
操作
- 在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0
- 在接收端收到一个帧时,先找到标志字段确定便捷,再用硬件对比特流进行扫描。发现连续5个1时就把后面的0删除
违规编码法
使用无定义的曼彻斯特编码“高-高”和“低-低”来定帧的起始和终止
差错控制
检错编码
奇偶校验码
有n-1位信息元和1位校验元,在数据的最前面加入校验码
- 奇校验码:使得1的个数为奇数
- 偶检验码:使得1的个数为偶数
奇偶校验码智能检查出奇数个比特错误,检错能力为50%
循环冗余码CRC
纠错编码
海明码
工作流程:确定校验码位数r -> 确定校验码和数据的位置 -> 求出校验码的值 -> 检错并纠错
海明距离
两个合法编码(码字)的对应比特取值不同的比特数称为这两个码字的海明距离(码距),一个有效编码集中,任意两个合法编码(码字)的海明距离的最小值称为该编码集的海明距离(码距)
要检测出 n 位错误,则码距为 n+1、
要纠正 d 位错误,则码距位2d+1
确定校验码位数r
数据/信息有m位,冗余码/校验码有r位
则校验码一共有$2^r$种取值
则需要满足 $2^r\geq m+r+1$ (海明不等式)
流量控制余可靠传输机制
流量控制方法
停止-等待协议
每发送完一个帧就停止发送,等待对方的确认,在确认收到后再发送下一个帧
发送窗口大小=1,接收窗口大小=1
在发送一位数据后进行停止等待,待接收到接收方的ACK应答后在开始发下一帧,或当超时计时器到时间,自动重传
滑动窗口协议
后退N帧协议(GBN)
发送窗口大小>1,接收窗口大小=1
发送窗口:发送方位置一组连续的允许发送的帧的序号
接收窗口:接收方维持一组连续的允许接收帧的序号
缺陷:会出现批量重传问题
选择重传协议(SR)
发送窗口大小=>1,接收窗口大小>1
对于接收窗口内的数据“来者不拒”
接收方将确认一个在窗口内的正确接收的帧而不管其是否按序i,失序的帧将被缓存并返回给发送方一个该帧的确认帧
信道划分介质访问控制
- Title: 计算机网络——数据链路层
- Author: CGC
- Created at: 2023-10-13 17:12:42
- Updated at: 2023-11-02 16:07:12
- Link: https://redefine.ohevan.com/2023/10/13/计算机网络——数据链路层/
- License: This work is licensed under CC BY-NC-SA 4.0.