我的代码尝试手动建立TCP
握手,然后通过HTTP GET
发送请求资源的数据段。
我正在使用原始套接字来制作标头并发送数据包,并使用libpcap来检查收到的数据包标头。
SYN
已成功发送给接收方,然后接收方以SYNACK
回复我。到目前为止,它可以正常工作,但是当我收到SYNACK
时,我会尝试ACK
,然后再发送HTTP GET
,这看起来不起作用。我可以看到wireshark中的标题是好的。
所以我的问题是:我可以ACK
通过原始套接字SYNACK
,就像我使用我用来发送SYN
的套接字一样接收它吗?为了实现这一点,是否需要OPTIONS
与标题一起使用?
我正在确认SYNACK
,之后我发送了一个设置了ACK
和PSH
标记的段,以便通过HTTP
请求资源。我可以在wireshark上看到它们,但我没有得到服务器的响应。
答案 0 :(得分:0)
没有理由你不能ACK
使用原始套接字,但是你的操作系统的内核堆栈也会看到它不期望的收到的SYNACK
并发送RST
。你在做什么来防止这种情况发生吗?否则,您可能没有发送正确的SEQ / ACK号码。