常見協議頭部

2021-06-14 11:16:29 字數 2442 閱讀 9473

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...