TCP數據段格式


傳輸控制協議(TCP)通常從應用程序中得到大段的信息數據,然后將它分割成若干個數據段。TCP會為這些數據段編號並排序,這樣,在目的方的TCP協議棧才可以將這些數據段再重新組成原來應用數據的結構。由於TCP采用的是虛電路連接方式,這些數據段在被發送出去后,發送方的TCP會等待接收方TCP給出一個確認性應答,那些沒有收到確認應答的數據段將被重新發送。

當發送方主機開始沿分層模型向下發送數據段時,發送方的TCP協議會通知目的方的TCP協議去建立一個連接,也就是所謂的虛電路。這種通信方式被稱為是面向連接
的。在這個初始化的握手協商期間,雙方的TCP層需要對接收方在返回確認應答之前,可以連續發送多少數量的信息達成一致。隨着協商過程的深人,用於可靠傳輸的信道就被建立起來。

TCP是一個全雙工的、面向連接的、可靠的並且是精確控制的協議,但是要建立所有這些條件和環境並附加差錯控制,並不是一件簡單的事情。所以,毫無疑問,TCP是復雜的,並在網絡開銷方面是昂貴的。然而,由於如今的網絡傳輸同以往的網絡相比,已經可以提供更高的可靠性,因此,TCP所附加的可靠性就顯得不那么必要了。

TCP報頭一共24字節:

 

源端口號(16bit) 目的端口號(16bit)
序列號(32bit)
確認應答號(32bit)
頭長度(4) 保留(6) 代碼位(6) 窗口(16)
校驗和(16) 緊急(16)
選項(0或32,若有的話)

數據(可變)

目的端口號 在目的主機上請求應用程序的端口號。
序列號 一個由TCP用於將數據編排回原來正確s的順序或用於對丟失或損壞的數據進行重傳的編號,這樣的處理過程稱為順序控制(排序)。
確認應答號 用於說明下一個所期望接收的TCP八位組數據。
頭長度 在TCP頭中包含的32位字的數量。用來指明數據的起始位置。TCP頭的長度(即使包含有選項)是一個32位的整數倍。
保留 總是被設置為零。
代碼位 用於建立及結束會話的控制功能。
窗口 是發送方將被允許的發送窗口尺寸,用八進制形式表示。
校驗和 循環冗余校驗(CRC),山於TCP不相信它的低層,因此會檢驗所有的數據。此CRC用於檢驗報頭和數據字段。
緊急 當緊急指針代碼位被設置時為有效字段,如果有效,這個值指明了當前序列號的八位組的偏移值,即第一個非緊急數據的起始位置。
選項 在需要時,可以是0或32位的倍數。也就是說,沒有選項存在時,選項的大小為0。然而,如果所使用的選項所占用的字段不是32位的整倍數,則需要填充若干個0來確保數據始於32位的邊界上。
數據 指被傳送到傳輸層的TCP協議的數據,它包含有上層數據的報頭。


免責聲明!

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



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