偽首部(pseudo header),通常有TCP偽首部和UDP偽首部。在UDP偽首部中,包含32位源IP位址,32位目的IP位址,8位協定,16位UDP長度。通過偽首部的校驗,UDP可以確定該數據報是不是發給本機的,通過首部協定欄位,UDP可以確認有沒有誤傳。
Tcp偽首部:
typedef struct
{
unsigned long saddr; //源IP位址
unsigned long daddr; //目的IP位址
char mbz;
// mbz = must be zero, 用於填充對齊
char protocal; //8位協定號
unsigned short tcpl; // TCP包長度
}psdheader_t;
TCP頭校驗和計算算法詳解 我就不管是按“位”(bit)取反相加,還是按“1的補碼”相加了,總之就是把需要進行校驗的“字串”加(+)起來,把這相加的結果取反當做“校驗和” (Checksum),比如,相加的結果是0101,那么“校驗和”就是1010,驗證的時候呢,就是 0101+1010 = 1111 ,取反後,就是0——如果驗證得“零”(0),就是正確的!
基本介紹
- 中文名:偽首部
- 外文名:pseudo header
- 類型:TCP偽首部和UDP偽首部
- 屬於:一個虛擬的數據結構
命令簡介,命令套用,
命令簡介
Tcp偽首部:
typedef struct
命令套用
偽首部並非TCP&UDP數據報中實際的有效成分。偽首部是一個虛擬的數據結構,其中的信息是從數據報所在IP分組頭的分組頭中提取的,既不向下傳送也不向上遞交,而僅僅是為計算校驗和。這樣的校驗和,既校驗了TCP&UDP用戶數據的源連線埠號和目的連線埠號以及TCP&UDP用戶數據報的數據部分,又檢驗了IP數據報的源IP位址和目的地址。偽報頭保證TCP&UDP數據單元到達正確的目的地址。因此,偽報頭中包含IP位址並且作為計算校驗和需要考慮的一部分。最終目的端根據偽報頭和數據單元計算校驗和以驗證通信數據在傳輸過程中沒有改變而且到達了正確的目的地址。