IP頭格式:
版本號 (4位)
IP頭長度 (4位)
服務類型 (8位)
數據包長度 (16位)
標識段 (16位)
標誌段 (16位)
生存時間 (8位)
傳輸協議 (8位)
頭校驗和 (16位)
發送地址 (16位)
目標地址 (16位)
選項
填充
簡單說明
============
1. IP頭長度計算所用單位爲32位字, 常用來計算數據開始偏移量
2. 數據包長度用字節表示, 包括頭的長度, 因此最大長度爲65535字節
3. 生存時間表示數據被丟失前保存在網絡上的時間, 以秒計.
4. 頭校驗和的算法爲取所有16位字的16位和的補碼.
5. 選項長度是可變的, 填充區域隨選項長度變化, 用於確保長度爲整字節的倍數.
描述
============
struct iphdr {
BYTE versionihl;
BYTE tos;
WORD tot_len;
WORD id;
WORD frag_off;
BYTE ttl;
BYTE protocol;
WORD check;
DWORD saddr;
DWORD daddr;
/* Put options here. */
};
二、TCP頭格式
TCP頭格式:
源端口 (16位)
目的端口 (16位)
序號 (32位)
確認號 (32位)
數據偏移 (4位)
保留 (6位)
標誌 (6位)
窗口 (16位)
校驗和 (16位)
緊急指針 (16位)
選項
填充
簡單說明
============
1. 數據偏移用於標識數據段的開始
2. 保留段6位必須爲0
3. 標誌包括緊急標誌、確認標誌、入棧標誌、重置標誌、同步標誌等。
4. 校驗和計算方式爲將頭與16位二進制反碼和中的16位二進制反碼加在一起。
5. 選項長度是可變的, 填充區域隨選項長度變化, 用於確保長度爲整字節的倍數.
6. 更詳細的說明請參閱有關資料。
描述
============
struct tcphdr {
WORD SourPort;
WORD DestPort;
DWORD SeqNo;
DWORD AckNo;
BYTE HLen;
BYTE Flag;
WORD Window;
WORD ChkSum;
WORD UrgPtr;
/* Put options here. */
};