目录
https://blog.csdn.net/weixin_45792450/article/details/109218801
数据帧的传输协议
认识了数据链路层,解决数据帧的组帧方式和差错控制后,现在我们来看看数据帧是如何来传输的,即学习数据帧的传输协议。
数据帧的传输协议主要用来解决数据帧收发双方如何协同进行数据帧的传输,基本的协议有:停止-等待协议,选择重传ARQ协议,后退N帧GBN协议;高级的协议有:滑动窗口协议,PPP协议
本节介绍基本的传输协议,下一节介绍高级的传输协议
理想传输协议
但实际中不存在这种信道,一部分数据帧可能在传输过程中出错或者遗失,接收方无法接收正确的数据帧;接收方处理帧的速度不及发送方,则帧可能丢失
停止-等待协议
接收方每收到一帧,都向发送方返回一个应答帧
发送方每发送一帧,都等待来自接收方的应答帧,之后才发送下一帧
相对理想传输协议增加了流量控制和确认帧
应用条件:理想信道,对非理想信道存在诸多问题,比如帧丢失,那么发送与接收双方可能会无限等待下去
选择重传ARQ协议
ARQ(Automatic Repeat reQuest)
相对停止等待协议多了超时重传的功能,避免了确认帧丢失导致无限等待的缺点
缺点:传输链路存在时延,而ARQ协议在同一时刻仅有一个帧在链路上传输(数据帧或确认帧),其对信道的利用率较低
后退N帧GBN协议
GBN(Go Back N)
发送方发送多个连续的数据帧
接收方按顺序接收数据帧,每收到一帧,应答一个确认帧
发送方如果接收到的确认帧为当前发送的倒退第N个,放弃当前的发送,后退N帧后继续连续发送多个帧
GBN协议相对ARQ协议多了连续发送的功能,解决了信道利用率低的问题
但是也存在问题:比如,可能GNB协议会连续一直发送下去(想想为什么),由此有了高级数据链路协议的滑动窗口协议,见下一节。滑动窗口协议就是相对GBN协议,多了收发双方的数据帧序号处理范围。