您的位置:首页 > 其它

解决一个错误封禁的问题的过程和思路

2015-09-10 10:40 190 查看
遇到一个问题:

网关有应用封禁功能,在测试的时候,发现某个封禁使正常的功能受到了影响,需要找到是哪个包躺枪了。

wireshark抓包之后,面对一堆包很头疼,不知道如何下手。而且异常显示的包也很多,黑底的很多。

后来,同事找到了,给我看,我才发现了规律,由于其中有包被丢掉了,会导致接收端接收tcp的时候有hole,这样导致的现象就是,会不断的有 Dup Ack发出去,提醒对方重发这个包。以这个为特征,就找到了源头的发。提示是:TCP Previous segment not captured.

我们来分析一下前后的序列号特征:

前一个包:seq 83371 ack 1945 len 1460 收到的回复包: seq 1945 ack 85231

然后到了hole的下一个包:seq 86691 ack 1945 len 1460

明显的,中间缺了一个 seq 是 85231的包。

后面的就不断的有Dup Ack的包发出来:seq 1945 ack 85231

也就是说,一直没有收到这个包。





现在知道有个包没有收到,但是不知道具体是哪个包。所以就抓了一个正常的包,把 seq是83371的包里面的应用数据找了十个字节,ctrl+F 搜索hex在正常的包里面。

找到了这个包,下一个包就是出事的那个包,就可以分析到底是哪个特征导致的包被drop掉了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: