实现可靠传输的机制不局限于哪一层中,可以应用到计算机网络体系结构的各层协议中。
1.停止-等待协议SW
SW中的机制:超时计时器,ACK和NAK,分组编号
【注意事项】
-
接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传。但对于误码率较高的点对点链路,为使发送方尽早重传,也可给发送方发送NAK分组。
-
为了让接收方能够判断所收到的数据分组是否是重复的,需要给数据分组编号。由于停止-等待协议的停等特性,只需1个比特编号就够了,即编号0和1。
-
为了让发送方能够判断所收到的ACK分组是否是重复的,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样。数据链路层一般不会出现
-
ACK分组迟到的情况*因此在数据链路层实现停止-等待协议可以不用给ACK分组编号。
-
超时计时器设置的重传时间应仔细选择。一般可将重传时间选为略大于“从发送方到接收方的平均往返时间”。
在数据链路层点对点的往返时间比较确定,重传时间比较好设定。
然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易。
2.回退N帧协议GBN
GBN中的机制:超时计时器,累积确认,分组编号,发送窗口(一般大于1),接受窗口(一般为1)
3. 选择重传协议SR
GBN中的机制:超时计时器,分组编号,逐一确认,发送窗口(一般大于1),接受窗口(一般大于 1),接收缓存