ip包頭:
版本頭部長度
服務型別
總長度識別符號
dfmf
分片偏移
ttl協議
頭部校驗
源位址目標位址
版本(4bit):標示了資料報的ip版本號(ipv4-0100,ipv6-0110);
頭部長度(4bit):標識了ip包頭的長度,最小長度為20個位元組,最大長度為60個位元組;
服務型別(8bit):用來指定特殊資料報的處理,分為2個字段:優先權和tos。
總長度(16bit):ip資料報的總長度,最大長度為65535個位元組;
識別符號(16bit):通常與標記欄位和分段偏移字段一起用於資料報的分段。如果資料報原始長度超過mtu,那麼必須將資料報進行分段處理,路由器在每片資料報的標識欄位打上相同的標記,以便接收裝置能夠識別出屬於同乙個資料報。
標誌字段(3bit):第一位保留;第二位為df位,df設定為1時表示該資料報不允許進行分段處理;第三位是mf位,mf位設定為0時表示為資料報的最後乙個分段;
分段偏移(13bit):用於指明分段起始點相對於ip包頭起始點的偏移量;
ttl(8bit):在最初建立資料報時ttl被設定一特定值(1-255),ttl值沿路由器逐跳減一,ttl為0 時丟棄該資料報;
頭部校驗(16bit):略
目標位址(32bit):略
ethernet 包頭:
目標位址
源位址型別
資料型別:(16bit):標識上層協議型別,例如:ip0x0800,arp0x0806
tcp 包頭:
源埠目標埠
序列號確認號
首部長度保留u
aprs
f視窗大小
校驗和緊急指標
選項 源埠(16bit):
目標埠(16bit):
序列號(32bit):確定了傳送方傳送的資料流中的資料所在的位置;
首部長度(4bit):tcp包頭的長度;
urg(1bit):urg置1,表明為緊急資料,將該資料插入到資料的最前面;
ack(1bit):
psh(1bit):
rst(1bit):釋放當前連線並重新建立連線;
syn(1bit):請求建立連線;
fin(1bit):終止連線;
視窗大小(16bit):視窗值作為接收方讓傳送方設定其傳送視窗的依據;
udp 包頭:
源埠目標埠
長度校驗和
arp 資料報格式:
硬體型別
協議型別
硬體位址長度
協議位址長度
操作傳送者硬體位址
傳送者硬體位址
傳送者ip位址
傳送者ip位址
目標硬體位址
目標硬體位址
目標ip位址
硬體型別(16bit):指定硬體型別,例如:1為乙太網;
協議型別(16bit):指定了傳送者對映到資料鏈路層識別符號的網路層協議的型別;ip對應0x0800;
操作(16bit):指明資料報時arp請求(1),還是arp響應(2),反向arp請求(3),反向arp 響應(4),反轉arp請求(8),反轉arp響應(9);
icmp 資料報格式:
型別**
校驗和可變字段取決於icmp的型別
型別(8bit):
**(8bit):
檢驗和(8bit):
icmp指定了多種訊息型別,這些訊息的共同目的就是管理網路。
icmp訊息可分為錯誤訊息,請求訊息,和響應訊息。
icmp報文提供針對網路層的錯誤診斷、擁塞控制、路徑控制和查詢服務四項大的功能。如,當乙個分組無法到達目的站點或ttl超時後,路由器就會丟棄此分組,並向源站點返回乙個目的站點不可到達的icmp報文
linux下各資料報頭部結構體定義:
#ifndef little_endian
#define little_endian (1) //byte order
#else
#error redefine little_order
#endif
//mac頭部,總長度14位元組
typedef struct _eth_hdr
eth_hdr;
//ip頭部,總長度20位元組
typedef struct _ip_hdr
ip_hdr;
//tcp頭部,總長度20位元組
typedef struct _tcp_hdr
tcp_hdr;
//udp頭部,總長度8位元組
typedef struct _udp_hdr
udp_hdr;
//icmp頭部,總長度4位元組
typedef struct _icmp_hdr
icmp_hdr;
常見網路協議頭部結構體定義 c c ,x86
一些網路協議的結構體 mac協議 typedef struct mac header mac header,pmac header arp協議 typedef struct arp header arp header,parp header rarp協議 typedef struct rarp he...
HTTP協議頭部字段釋義
1 accept 告訴web伺服器自己接受什麼介質型別,表示任何型別,type 表示該型別下的所有子型別,type sub type。2 accept charset 瀏覽器申明自己接收的字符集 accept encoding 瀏覽器申明自己接收的編碼方法,通常指定壓縮方法,是否支援壓縮,支援什麼壓...
http頭部 HTTP 2協議之頭部壓縮
為了報文傳輸更小 更快,在http 2中header頭是經過壓縮的,使用的壓縮演算法為hpack。本文先通過wireshark抓包截圖直觀感受下頭部壓縮效果,進而分析下這種壓縮演算法是如何工作的。以header中的user agent為例,在壓縮前的大小為63個位元組。header中的user ag...