悲剧的TCP三次握手 原创:wildlee
今天我朋友突然发来一个问题,说是一个搭建好的PPTP服务器,用windows7可以拔入,用windowsXP不行,我靠有这事,之前我也做过不少这种测试没有发现有这种情况,便帮忙排除。在了解了对方的初步网络环境情况下,我在本地开始测试,发现果然如此!究竟是何原因?通过我几次下来的对连接情况抓包分析,发现了让人蛋疼的情况。请大家注意观察,开开眼界。
以下143为PPTP服务器,192.168.1.2[7]与192.168.1.20[xp]分别做PPTP客户端对PPTP服务器连接测试。
Windows7
Windows xp
仔细看大家应该看到怪异的一幕,从服务端过来的SYN/ACK,它的TCP窗口大小为0,这预示着客户将不能对它在发送任何数据分组,但在WINDOWS7中还是对服务器回复了SYN/ACK.不过随后你可以看到服务端对客户机随即更新了一个报文,是一个TCP窗口大小更新报文,这个里面的SYN/ACK与服务端首次握手的SYN/ACK相同。在XP中它可不吃这一套,服务端过来的TCP窗口大小为0的报文,它直接警告服务端TCP窗口大小为0.
后来我尝试将服务端的TCP窗口初始大小改变,发现就算注册表中增加了TcpWindowSize值,改是无法让它生效,也不知道这是不是系统BUG,郁闷!不管怎么说,这种情况很少见,我也没有遇到过,记下来留个纪念吧。如果有天你也遇到了,恭喜你悲剧了。嘿嘿
转载请注明:爱开源 » 悲剧的TCP三次握手