TCP傳輸中序號與確認序號的交互


本實驗通過SSH遠程登錄server,然后使用Wireshark抓包分析。

開頭的三次握手已經省略。關於序號的交互過程。須要記住一點:TCP首部中的確認序號表示已成功收到字節,但還不包括確認序號所指的字節。希望下一次能收到確認序號所指的字節。


當在遠程登錄軟件上鍵入命令時,client便開始了數據的發送。TCP頭例如以下:



初始化序列號ISN = 1,這個序列號是client對發送數據的一個標記,以1作為起始值。依據SSH包長度計算下一次將會發送的起始序號為65。確認序號為1表示我希望下次收到起始序號為1的TCP包。

server端返回的TCP頭例如以下:


client想要序號1,那server就發送序號1。所以server發送的TCP包起始序號為1。同一時候。server又希望下一次收到起始序號為65的包,這和client下一次會發送起始序號為65的包全然吻合。


client發送的TCP頭例如以下:


server要序號65,那我client這邊就發送65。

同一時候我希望下一次收到序號65。


server的TCP頭例如以下:


server果然又滿足client的要求返回65。

同一時候希望獲得序號129。


client和server兩端重復進行這種過程直至連接中斷(見文章“四次握手終止連接”)。每個TCP包頭都在滿足對方的需求同一時候希望對方會滿足自己的需求...

參考:
《TCP/IP具體解釋》 P172、P175.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM