0

我的代码尝试手动建立TCP握手,然后通过HTTP GET.

我正在使用原始套接字来制作标头并发送数据包,并使用 libpcap 来检查接收到的数据包标头。

SYN成功发送给接收者,然后接收者回复我一个SYNACK. 到目前为止,它可以工作,但是当我收到它时SYNACK,我会尝试ACK它,然后发送HTTP GET下一个,这看起来不起作用。我可以在wireshark中看到标题没问题。

所以我的问题是:我可以ACK通过SYNACK原始套接字使用我用来发送的同一个套接字接收它SYN吗?为了实现这一点,是否需要OPTIONS与标题一起使用?

我正在确认这一点SYNACK,然后我发送一个设置了ACKPSH标志的段,以便通过HTTP. 我可以在wireshark上看到它们,但我没有得到服务器的响应。

4

1 回答 1

0

你没有理由不能ACK使用原始套接字,但是你的操作系统的内核堆栈也会看到SYNACK它不期望的接收并发送一个RST. 您是否正在采取措施防止这种情况发生?否则,您可能没有发送正确的 SEQ/ACK 编号。

于 2010-12-20T14:35:13.823 回答