SYN疑难问题,200分求解,顶者有分。本人有6250分,解决问题想要多少都可以。
sniffer抓包显示:
192.168.1.81 -> 61.188.39.199 TCP: D=80 S=1944 SYN SEQ=373691515 LEN=0 WIN=40960 62 0:00:00.000
192.168.1.81 -> 61.188.39.199 TCP: D=80 S=1944 SYN SEQ=373764808 LEN=0 WIN=40960 62 0:00:00.200
注意这里同一个端口在200毫秒内连发两次SYN握手包,而且SEQ号变化了。结果导致对方服务器认为这是SYN攻击而忽略了包。
我用的是异步套接字,EVENT模型,设置了收发缓冲区为40K。本人试过使用系统默认缓冲区,结果一样。只不过对方服务器对两个SYN请求都进行正确了回应,而本地对其中一个SEQ发送了RST关闭。
这不是系统的问题,用IE连接服务器则不会出现该问题。
我对所有socket的函数设置了断点,只在一开始connect了一次。
谁遇到过这个问题?