抓包发现tcp会话中老是出现重复的ack和大量的tcp重传——SACK(Selective Acknowledgment, 选择性确认)技术

最近在学习wireshark  看到一个挺有用的一个知识点,我的云服务器到我的客户机哪里总是出现tcp重传的问题,而且数量还挺大,又有带宽足够大所以业务上面看起来并没有感到什么异常情况,但是随着业务流量的逐渐增大,渐渐的这个问题见开始明显了,出现了卡慢的情况,通过wireshark抓包的时候发现,一个传输文件的会话中数据包的顺序有点乱,一般情况下客户端连续发送1,2,3,4,5,6,7,8个数据包的时候到达服务器的顺序也是1,2,3,4,5,6,7,8。但是由于公网的不可确定可能会有网络拥塞等等的情况, 因此会导致数据包乱序从而服务器收到的数据包顺序可能为1,3,2,4,5,7,6,8 这样的话数据包就会错乱,如果数据包的顺序在连续3个以上(例如:1,6,4,8,2,3,7,5)这样的话服务器就会告诉客户端我没有正常收到2号包服务器返回的ack就会有多次的发送,客户端一看受到这么多的ack都在催促我发送2好包就会以为这个包丢了,之后客户端就会产生tcp的重传机制。但实际上服务器在多等一会就可以确认数据包都已经收到了,这样就不用让客户机在重传了。这种情况在流量小的情况下还好问题并不明显,但是当有好几个人或者传送一个数据非常大的数据包的时候,情况就不这么乐观了,大量的tcp重传会导致白白占用你的网络资源。。。。

     那么这个问题该怎么解决呢?

      答案:SACK(Selective Acknowledgment, 选择性确认)技术

 

TCP_sack开启

#vim /etc/sysctl.conf
net.ipv4.tcp_sack = 1
#sysctl -p

SACK(Selective Acknowledgment, 选择性确认)技术,使TCP只重新发送丢失的包,不用发送后续所有的包,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据重发了,哪些数 据已经提前收到等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

时光凉春衫薄

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

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

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

打赏作者

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

抵扣说明:

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

余额充值