我是靠谱客的博主 动人啤酒,最近开发中收集的这篇文章主要介绍【计算机网络】-- 流量控制与可靠传输机制(停止-等待协议、后退N帧协议GBN)一、流量控制二、流量控制的方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、流量控制

较高的发送速度和较低的接受能力的不匹配,会造成传输出错,因此流量控制是数据链路层的重要工作。

数据链路层的流量控制是点对点的,而传输层的流量控制是端到端的。

数据链路层流量控制手段:接收方收不下就不回复确认。

传输层流量控制手段:接收端给发送端一个窗口公告。

二、流量控制的方法

1、停止-等待协议

每发送完一个帧就停止发送,等待对方的确认,在收到确认后再发送下一帧。

发送窗口大小 = 1,接收窗口大小 = 1。

ACK:确认帧。

无差错情况:

有差错情况:

1、数据帧丢失或检测到帧出错

2、ACK丢失

 3、ACK迟到

 存在的问题

信道利用率低

信道利用率:发送方在一个发送周期内,有效地发送数据所需要的时间占整个发送周期的比率。

 信道利用率U = TD/TD+RTT+TA

U = (L/C)/T,其中L为T内发送L比特数据,C为发送发数据传输率,T为TD+RTT+TA。

例:

一个信道的数据传输率为4kb/s,单向传播时延为30ms,如果使停止-等待协议的信道最大利用率达到80%,要求的数据帧长度至少为多少?、

答:

80% = (L/4)/(L/4)+2×30ms

L = 960bit

2、滑动窗口协议:后退N帧协议(GBN、连续ARQ协议)

滑动窗口协议还有选择重传协议(SR),这里只讲GBN协议。

发送窗口大小 > 1,接收窗口大小 = 1。

位于发送窗口的分组都可连续发送出去,不需要等待对方的确认。

 优缺点:

优:连续发送数据帧提高了信道利用率。

缺:需要重传已经正确发送的数据帧,传送效率降低。

必须响应的三件事:

1、上层的调用

上层要发送数据时,发送方先检查发送窗口是否已满,如果未满,则产生一个帧并将其发送;如果窗口已满,发送发只需将数据返回给上层,暗示上层窗口已满。上层等会发送。(实际实现中,发送方可以缓存这些数据,窗口不满时再发送帧)

2、收到一个ACK

GBN协议中,对n号帧的确认采用累计确认的方式,表明接收方已收到n号帧和它之前的所有帧。

3、超时事件

定时器将再次用于恢复数据帧或确认帧的丢失,如果出现超时,发送方需要重传未发送的帧。

重点总结:

1、累计确认。

2、接收方只按顺序接收帧,不按序直接丢弃。

3、确认序列号最大的、按序到达的帧。

4、发送窗口最大为2^n-1,接收窗口大小为1。

例:

数据链路层采用了GBN协议,发送方已经发送了编号为0~7的帧,当计时器超时时,若发送方只收到0、2、3号帧的确认,则发送方需要重发的帧数是?

答:

已经确认的帧数最大为3,说明3之前的帧都已经确认。

4~7号帧需要重新发送。

故需要重发的帧数是4。

最后

以上就是动人啤酒为你收集整理的【计算机网络】-- 流量控制与可靠传输机制(停止-等待协议、后退N帧协议GBN)一、流量控制二、流量控制的方法的全部内容,希望文章能够帮你解决【计算机网络】-- 流量控制与可靠传输机制(停止-等待协议、后退N帧协议GBN)一、流量控制二、流量控制的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部