首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TCP: SYN请求收到SYN响应,而不是SYN-ACK

TCP: SYN请求收到SYN响应,而不是SYN-ACK
EN

Stack Overflow用户
提问于 2016-01-07 13:30:34
回答 1查看 1.3K关注 0票数 1

在数据包捕获文件(Pcap)中,在TCP握手期间观察以下内容

客户端向服务器发送SYN请求,服务器以SYN包代替SYN+ACK包响应,客户端以乱序包消息响应,服务器端使用RST包终止握手

这是随机发生的,并不总是如此。TCP连接确实会建立,但有时在上述观察到的模式下连接建立会失败。

客户端托管在AWS中,而服务器是CDN网络

EN

回答 1

Stack Overflow用户

发布于 2016-02-20 01:22:38

如果套接字在TIME_WAIT上,并且附加了新的syn,则内核将检查SYN的序列号是否大于或小于为此正在使用的套接字接收的最后一个序列号。

你可以查看这篇文章/答案:https://serverfault.com/questions/297134/server-not-sending-a-syn-ack-packet-in-response-to-a-syn-packet

通常,如果发送了一个SYN,接收到另一个没有ACK的SYN,则通常只是丢失了线路上的ACK (特别是在您的情况下)。当您从A(客户端)到B(服务器)的路由很短,而您的数据包从服务器到客户端的路径特别长,并且穿过的网络可能无法保证数据包在更远的距离上可靠传输时,这种情况就很普遍。如果您在线路上丢失了ACK,您将倾向于从客户端找到一条RST消息,本质上是要求服务器重新启动。

另一种可能性是某种类型的请求。通常,其中客户端将推送具有len: xx的PSH、ACK信号,其中x是所请求长度的数字。服务器通常会以ACK响应,告诉客户端它已收到请求,服务器正在处理(此ACK通常为空)。然后,它会将一个PSH,ACK - len: xx数据包推送到客户端,让客户端知道它已经接受了它的请求,并且这个数据包中将包含信息。

使用wireshark监视这些信息(非恶意的)通常有助于传播一些关于您的情况的信息,只要确保学习(如果您还不知道)如何过滤您的数据包,否则您将有大量的信息要挖掘(通常)。

我还会尝试向有问题的服务器发送一个数据包,您可以跟踪该数据包,以查看它是否偏离了常规路径。如果您的数据包正在通过循环跳转以到达目的地,那么它极有可能在返回的过程中做同样的事情。如果您愿意,可以尝试使用tcpdump(linux)或tracert(windows)。

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34647956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档