我在C/Obj-C中實現了TCP。
我注意到不同的服務器在某些場合增加了序列號,而另一些則沒有。 即在服務器發送FIN/ACK的拆卸過程中,有些服務器將ACK號碼加1,而其他服務器則不加。不一致的TCP實現
爲了闡明該問題:
服務器1:的ACK數目已增加至2
服務器2:的ACK數目仍爲1 ACK number not increased http://img853.imageshack.us/img853/1248/zf70.png
我的程序關於第二臺服務器的輸出:
FIN(/ACK)# was 18238 but should have been 18239
我應該如何處理這些類型的服務器端實現在我的代碼中的變化?
你的目的是什麼?你正在實現* TCP/IP協議棧*(通常是操作系統的一部分),還是你正在編寫一個* TCP客戶端*或一個* TCP服務器*(一個應用程序)? – kol
我正在實施TCP/IP協議棧,從創建IP頭到解析TCP數據包。 – 0xfee1dead
如果您對ACK編號不滿意,那麼您應該使用RST中止。如圖所示。 –