计算机网络中可靠传输的3种机制
- 停止-等待协议SW
- 回退N帧协议GBN
- 选择重传协议SR
停止-等待协议SW
发送方给接收方发送数据分组,接收方收到后对其进行差错检测。若没有误码,则接收该数据分组,并给发送方发送确认分组,简称为ACK。发送方收到对所发送数据分组的确认分组后,才能发送下一个数据分组。若检测到误码,则丢弃该分组,并给发送方发送否认分组,简称为NAK,发送方收到对所发送数据分组的否认分组后,立刻重传该数据分组。发送方发送一个数据分组后,并不能立刻将该分组从缓存中删除,只有在收到针对该数据分组的确认分组后,才能将其从缓存中删除,并发送下一个分组。
若发送分组在传输的过程中丢失了,接收方收不到数据分组,就不会发送ACK或NAK,发送方就会一直处于等待接收方ACK或NAK的状态。
为解决该问题,可在发送方发送完一个数据分组时,启动一个超时计时器。若到了超时计时器所设置的重传时间而发送方仍收不到接收方的任何ACK或NAK,则重传原来的数据分组,即超时重传。
一般将重传时间设为略大于从发送方到接收方的平均往返时间。