tcp_syncookie的坑

解Bug之路

共 461字,需浏览 1分钟

 · 2021-07-07

最近笔者阅读资料的时候,发现竟然会有这种坑。如下图所示:

这个坑触发需要以下几个条件:

1.开启tcp\_syncookie
2.client端的三次握手的第三次ACK没有发送到对端
3.client端的第一个packet是小于3字节,也没有发送到对端
4.在client任何重传发生之前,client又发送了一个数据包,这次送达了。

在这种情况下,Server竟然会认为没有收到的第一个packet是确认了的,导致客户端认为第一个”dog”收到了,实际Server应用端完全没有感知!
如果第一个包>3bytes的时候,在上面的情况下,由于check_tcp_syn_cookie不过,会被Reset。好歹保证了TCP的可靠性:)

笔者的3.10内核就是如此,不知道新版本有没有变化!


浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报