我根據教程建設自己的網絡服務器。 我發現了一個簡單的方法來發起一個TCP連接併發送一段http數據(網絡服務器將運行在微控制器上,所以它會很小)建立一個Web服務器,客戶端不承認HTTP 200 OK框架
無論如何,以下是我需要去的順序通過:
接收SYN
發送SYN,ACK
接收ACK(連接現在確定)
收到ACK與HTTP GET命令
發送ACK
發送FIN,ACK與HTTP數據(例如200 OK)
收到FIN,ACK < - 我不收到此包!直到我把我的確認和HTTP 200 OK消息
發送ACK
,一切工作正常。 客戶端將無法發送確認那兩個包,因此 正在顯示任何網頁。 我已經添加了一個序列的pcap文件,我如何用wireshark記錄它。
PCAP文件:http://cl.ly/5f5/httpdump2.pcap
所有的序列號和確認號是正確的,校驗都OK。旗子也是對的。 我不知道發生了什麼問題。
發生了什麼事在PCAP文件上面不匹配說明:捕獲顯示SYN握手以後,GET,然後一堆HTTP數據(65.208.228.233 - > 145.254.160.237)。許多數據包被髮送(17,940字節),全部由客戶端確認。 '200 ok'是通過一個數據包本身發送,得到ACK,然後每個FIN + ACK發送一次,連接完成。 錯誤的捕獲數據? – 2010-04-07 12:15:52
Jep,這是錯誤的數據。對不起。 這裏是正確的:http://cl.ly/5f5 – Evert 2010-04-07 12:27:35
的HTTP協議,你在服務器inplementing,1.0或1.1,並支持你持久連接? – 2010-04-08 09:58:08