SYN疑难问题,200分求解,顶者有分。本人有6250分,解决问题想要多少都可以。

softrain 2006-05-26 01:38:31
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了一次。
谁遇到过这个问题?
...全文
713 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiaodong 2006-06-05
  • 打赏
  • 举报
回复
金钱的力量~~~~~真是大哦
qrlvls 2006-06-05
  • 打赏
  • 举报
回复
除了Sniffer本身的NDIS驱动以外
qrlvls 2006-06-05
  • 打赏
  • 举报
回复
是不是还装了什么其它网络设备相关的驱动程序?
MuseIn 2006-06-05
  • 打赏
  • 举报
回复
是你的发式有问题吧。
fronm 2006-05-29
  • 打赏
  • 举报
回复
tanshy 2006-05-27
  • 打赏
  • 举报
回复
印象中,连接不能建立的情况,TCP连接发起端需要发送三次SYN分节,在发送第一次SYN分节后,需要等待6秒,如果没有确认,才发送第二次,200毫秒似乎太少了。在TCP/IP详解中有解释,你看看吧。个人感觉你需要找到为什么间隔这么短就发送第二次SYN,看你的情况是200ms内没有收到Peer的ACK。
chmsky 2006-05-27
  • 打赏
  • 举报
回复
帮顶,高手解决
tdtdtdtdtd123 2006-05-27
  • 打赏
  • 举报
回复
没碰到过

帮你顶一下

关注中.......................................................

nuaawenlin 2006-05-27
  • 打赏
  • 举报
回复
如果你不是使用tcp的原始套接字来发送syn的话,你是不能通过设置断点来控制底层tcp协议栈的
syn发送的

如果第一个connect成功了,再一次connect服务器当然要拒绝了
kingofworl 2006-05-27
  • 打赏
  • 举报
回复
up
lisypro 2006-05-27
  • 打赏
  • 举报
回复
UP
zjyeling 2006-05-27
  • 打赏
  • 举报
回复
关注!
independently 2006-05-27
  • 打赏
  • 举报
回复
帮顶
laoliu666 2006-05-27
  • 打赏
  • 举报
回复
帮顶
laoliu666 2006-05-27
  • 打赏
  • 举报
回复
帮顶
vandy1983 2006-05-26
  • 打赏
  • 举报
回复
我也想知道答案!!!
期待中
hlidea 2006-05-26
  • 打赏
  • 举报
回复
应该是不可能会这样的,会不会是断点的原因?不解。。。
King_of_WOW 2006-05-26
  • 打赏
  • 举报
回复
帮顶
化外之民 2006-05-26
  • 打赏
  • 举报
回复
帮你顶
DeadWolf 2006-05-26
  • 打赏
  • 举报
回复
改了设置也不应该发两个连续的SYN阿

不明白
加载更多回复(14)

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧