计算机网络——重传机制

超时重传:

        超时重传顾名思义就是当发送数据一定时间后没有收到回应,那么就会触发超时重传,那么超时重传的时间限制是多少呢。在计网基础学习中我们接触了时延RTT,RTT表示一次发送一次回应的总时间,RTT的时长是不确定的。而RTO是超时重传的时间,RTO的时间会略大于RTT的时间。有人会问RTT时间不是不确定的吗,怎么每次都确定RTO比RTT大一点呢?这个问题应该问学概率统计的哈哈哈。

        但是所有丢失的信息都进行超时重传效率会很低,因为要等待一段时间。

快速重传:

        当发送的连续的数据包中有一个包丢失了,那么后续包的期望值Ack就会定位到那个包,例如一组包的序号分别为1,11,21,31,41,其中11丢失了,那么21,31,41的ack期望号Ack都会设置为11的期望接收号Ack。这样就可以快速重传信息。但是有个大问题,就是如果1包11包同时丢了,那么21,31,41都会提示1包的Ack,那么发送方就不知道是补上1包还是补上1包和11包。

SACK:

        这种⽅式需要在 TCP 头部「选项」字段⾥加⼀个SACK的东⻄,它可以将缓存接收信息的地图发送给发送方,这样发送方就可以知道哪些数据收到了,哪些数据没收到,知道了这些信息,就可以只重传丢失的数据。

D-SACK:

        触发重发机制有两种情况,一个是发送的数据包丢失了,还有一种是接收到数据了,但是应答包丢失了。前面三种都是针对发送包丢失了,而D-SACK则是针对应答包丢失的情况。当应答包丢失后,发送方触发重传机制,此时接收方已有这部分数据,所以就会接祖SACK回复这部分我有了。还有一种情况是数据包发送延迟了,发送发触发快速重传,接收方接收后原先的超时数据包到达了,此时就可以用SACK表示我有数据包了。

使用D-SACK的优点

1.可以让发送方知道,是发送的包丢失了,还是回应的ACK丢失了

2.可以知道是不是发送方的数据包被网络延迟了

3.可以知道网络中是不是把发送方的数据包复制了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aristocrat l

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值