IP包頭結構定義以及結構體iphdr分析

2021-08-06 04:31:17 字數 1412 閱讀 8777

linux, linux

可以使用 中的例程來實踐通訊過程;

來看一下ip包, ip頭結構的定義

包格式解析如圖

資料對應

對應的結構體在 /usr/src/linux-2.6.19/include/linux/ip.h(或 /usr/src/linux-headers-3.5.0-18/include/linux/ip.h)

struct iphdr ;
看包情況

45(0100,0101) 第乙個8位表示4位版本號+4位首部長度, 0100=version為4, 0101=5*4=20(個位元組長度)

00 (0000,0000)第二個8位表示服務型別

00 3c 第三四個, 16位標識

60 df 表示16位識別符號

40 00 表示3位標誌+13位片偏移 (000=位標識, 1000000000000=位偏移)

40 表示8位生存時間

06 表示8位協議,這裡表示tcp

62 1c 表示16位首部校驗和

c0 a8 fb 2c 表示32位源ip位址

c0 a8 fb 42 表示32位目的ip位址

無選項

無資料這個包tcp協議裡面的第一次握手的情況,tcp握手基本就是無選項無資料,所以目的位址之後就沒有資料了;

還有關於tcp頭部和udp頭部的結構情況,放個圖,分析情況基本一致,不做詳細分析

//tcp報頭結構體   

//udp報頭結構體*/   

typedef

struct udphdr

udp_header;

參考

IP包頭結構詳解

這篇講得比較詳細 清楚,轉了 ip包頭結構如下圖所示 下面具體分析ip包頭中各部分的作用。版本號 version 長度4位元。標識目前採用的ip協議的版本號。一般的值為0100 ipv4 0110 ipv6 ip包頭長度 header length 長度4位元。這個欄位的作用是為了描述ip包頭的長度...

ip包頭結構詳解

空間管理您的位置 51testing軟體測試網 seventest 日誌 檢視 1195 評分 0 0 版本號 version 長度4位元。標識目前採用的ip協議的版本號。一般的值為0100 ipv4 0110 ipv6 ip包頭長度 header length 長度4位元。這個欄位的作用是為了描述...

IP包頭結構詳解

1,ip包頭結構如下圖所示 img 2,下面具體分析ip包頭中各部分的作用。b 版本號 version b 長度4位元。標識目前採用的ip協議的版本號。一般的值為0100 ipv4 0110 ipv6 b ip包頭長度 header length b 長度4位元。這個欄位的作用是為了描述ip包頭的長...