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包頭的長...