1. 可靠传输的基本概念
接收端给发送端,发送一个通知帧,告诉发送端之前发送的帧有误码,需要重新发送,并不是这么简单的。设想,若帧头也出现误码,则无法实现一下功能。该节只说概念。
注意,此时的帧改为了分组,则说明传输差错不仅仅局限于数据链路层的比特差错。
分组丢失:路由器缓存满了,丢弃分组。
分组失序:传送路径不同,分组在发送端和接收端的顺序不一致。
分组重复:分组因为某些原因,在网络中滞留了,没有及时到达H2,超时发送,发送端补发,最后两个相同的分组一起到了接收端。
2. 可靠传输的实现机制
2.1 停止等待协议 SW
ACK:确认分组
NAK:否认分组
该数据只有在接收到确认分组才能从缓存中删除,否则要重新发送。
情况1:如果出现数据丢失则不会出现ACK NAK,则采用超时计时器,若超时则重新传输。
情况2:ACK和NAK发生丢失。导致重传,让接收端如何判断是否是重复分组。
为了避免上述情况,给每个分组编号。发送端与接收端的编号不同就可以解决这个问题。
情况3:数据分组需要编号,那么确认分组是否也需要编号?
加入Data0的确认分组ACK0停留,那么引发超时重传,再传一个Data0,接收端丢弃,并再次发送了一个确认分组ACK1,但是发送端此时接收到了延时的ACK0,那么ACK0和ACK1就会是对0号数据的重复确认,发送端则会认为是对1号数据的确认。则对确认分组标号解决了确认迟到导致重复确认的问题。
小结
利用率