希赛考试网
首页 > 软考 > 网络工程师

改进的停止等待协议的流程

希赛网 2024-01-07 09:24:29

停止等待协议是计算机网络中常用的一种协议,用于数据传输的可靠性控制。在传输数据时,发送端发送一个数据包,然后等待接收端的确认消息。如果没有收到确认消息,发送端会重新发送数据包。这种协议虽然比较简单,但它存在一些问题,例如低效率,容易发生死锁等。因此,研究工作者提出了许多基于停止等待协议的改进方案。本文将从多个角度分析改进的停止等待协议的流程。

改进1:选择重传协议

选择重传协议是基于停止等待协议的一种协议改进方案。其流程如下:

1.发送方将数据分成固定长度的数据块,并对每个数据块进行编码。

2.发送方向接收方发送一个ACK请求,要求接收方在一定时间内发送一个确认消息。

3.接收方接收到请求后,对数据进行解码,并检查其中是否有错误。如果有错误,则发送一个NAK请求,要求发送方重新发送数据。

4.发送方在一定时间内收到NAK请求后,会重新发送数据包,再次发送数据。

这种协议可以有效地避免因数据损坏而导致的死锁问题,从而提高网络传输的可靠性。

改进2:快速重传

快速重传是另一种基于停止等待协议的改进方案。其流程如下:

1.发送方向接收方发送一个数据包,并开始计时。

2.接收方接收到数据包后,将ACK消息发送给发送方。

3.发送方在一定时间内收到ACK消息后,将收到ACK之前发送的数据包的ACK消息发送给接收方。

4.如果接收方在一定时间内未收到发送方的ACK消息,则会发送一个重复ACK消息,表示它已经收到了多个数据包。

5.如果发送方收到多个重复ACK消息,它会认为数据包已经丢失,并重传丢失的数据包。

与选择重传协议相比,快速重传可以更快地检测到数据包的丢失,并使用更少的带宽进行重传。因此,它可以提高网络性能。

改进3:延迟确认

延迟确认是一种改进停止等待协议的协议方案。其流程如下:

1.接收方会等待一段时间,以收集接收到的所有数据包。

2.接收方向发送方发送一个ACK消息,指示它已经收到了所有数据包。

3.如果发送方在没有收到ACK消息的情况下持续发送数据包,则接收方会使用前面提到的快速重传协议来检测丢失的数据包。

延迟确认可以减少网络传输的ACK数量,从而提高网络性能。但它也会增加网络延迟,因为接收方要等待一段时间才能发送ACK消息。

扫码咨询 领取资料


软考.png


网络工程师 资料下载
备考资料包大放送!涵盖报考指南、考情深度解析、知识点全面梳理、思维导图等,免费领取,助你备考无忧!
立即下载
网络工程师 历年真题
汇聚经典真题,展现考试脉络。精准覆盖考点,助您深入备考。细致解析,助您查漏补缺。
立即做题

软考资格查询系统

扫一扫,自助查询报考条件