源端口號以及目的端口號:
各占2個字節,端口是傳輸層和應用層的服務接口,用於尋找發送端和接收端的進程,通過這兩個端口號和IP頭部的ip發送和接收號,可以唯一的確定一個連接。
一般來講,通過端口號和IP地址,可以唯一確定一個TCP連接,在網絡編程中,通常被稱為一個socket接口。
序號:
占4字節,用來標識從TCP發送端向TCP接收端發送的數據字節流。
確認序號:
占4字節,包含發送確認的一端所期望收到的下一個序號,因此,確認序號應該是上次已經成功收到另一端數據字節序號加1。
數據偏移:
占4位,最大為1111即15個數字,一個代表4個字節,用於指出TCP首部長度,若不存在選項,則這個值為20字節,數據偏移的最大值為60字節。
保留字段:
占6位,值是確定的,暫時可忽略,值全為0
標志位:
URG(緊急): 為1時表明緊急指針字段有效
ACK(確認):為1時表明確認號字段有效
PSH(推送):為1時接收方應盡快將這個報文段交給應用層
RST(復位):為1時表明TCP連接出現故障必須重建連接
SYN(同步):在連接建立時用來同步序號
FIN (終止): 為1時表明發送端數據發送完畢要求釋放連接
接收窗口:
占2個字節,用於流量控制和擁塞控制,表示當前接收緩沖區的大小。在計算機網絡中,通常是用接收方的接收能力的大小來控制發送方的數據發送量,這樣可以避免快主機致使較慢主機的緩沖區溢出。TCP連接的一端根據緩沖區大小確定自己的接收窗口值,告訴對方,使對方可以確定發送數據的字節數。
校驗和:
占2個字節,范圍包括首部和數據兩部分。檢查當前的TCP包是否有問題,有沒有損壞丟失
選項
選項是可選的,默認情況是不選
UDP的頭部大小只有8字節
16位源端口號和16位目的端口號:
代表出發端口和目的地端口,這個可以類比TCP的源端口和目的端口。
16位UDP長度:
代表整個UDP的長度,包括UDP數據,最小的UDP長度就是8字節。
16位UDP校驗和:
用於檢驗UDP數據包
IPv4中,校驗和可以為0,意味着不使用校驗和。IPv6要求必須進行校驗