小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
前言
计算机网络知识梳理 这个系列是为了巩固在计算机网络方面的相关理论基础,日常开发虽然用不到,但是真要是有啥问题还得靠平常积累的知识点
停等协议是什么
网路传输中会有各种各样的问题导致数据包的丢失,那么如果做到最大程度的可靠传输呢。。
最基本策略就是综合利用各种实现可靠数据传输的措施,当发送方向接收方发送一一个报 文段后,就停下来等待接收方的确认,如果收到ACK,则可以发送新的报文段;
如果收到NAK或者超时,则重发刚发送的报文段,直到收到ACK为止。接收方在正确接收到报文段时,利用ACK进行确认;如果接收方收到的报文段存在差错,则利用NAK进行确认,请求发送方重发出错的报文段。
这样,接收方通过使用肯定确认ACK与否定确认NAK,可以让发送方知道哪些内容己被正确接收,哪些内容未被正确接收而需要重传。
基于这种重传机制的可靠数据传输协议称为自动重传请求( Automatic Repeat reQuest,ARQ)协议。最简单的ARQ协议就是停等协议。
也就是说发送方向接收方发送数据后,接受方会给发送方发送一个信号,告诉发送方我已经正确收到,你可以继续发送剩下的报文。。
滑动窗口
停等窗口确实能保证数据的可靠传输,但是呢性能却很差
发送方在发送一个数据报后需要接收方反馈,这性能肯定不好
于是在此基础上改进了下,就是发送方连续的发送指定数量的包,然后在等接受方反馈,哪个包没有收到,哪个包就重发
有两种典型的协议
gbn
特点:接收端的窗口大小=1