我正在根据教程构建自己的网络服务器。我找到了一种简单的方法来启动 TCP 连接并发送一段 http 数据(网络服务器将在微控制器上运行,因此它会非常小)
无论如何,以下是我需要经历的顺序:
接收 SYN
发送 SYN,ACK
接收 ACK(连接已建立)
使用 HTTP GET 命令接收 ACK
发送 ACK
发送带有 HTTP 数据的 FIN、ACK(例如 200 OK)
接收 FIN,ACK <- 我没有收到这个数据包!
发送 ACK
在我发送确认和 HTTP 200 OK 消息之前,一切正常。客户端不会向这两个包发送确认,因此不会显示任何网页。我添加了一个 pcap 文件,其中包含我如何使用wireshark 记录它的序列。
Pcap 文件:http ://cl.ly/5f5/httpdump2.pcap
所有序列号和确认号都正确,校验和正常。旗帜也是正确的。我不知道出了什么问题。