1. 程式人生 > >乙太網資料包TCP、IP、ICMP、UDP、ARP協議頭結構詳解

乙太網資料包TCP、IP、ICMP、UDP、ARP協議頭結構詳解

乙太網首部

目地MAC地址(8位元組)

源MAC地址(8位元組)

型別(2位元組)

1、IP頭的結構

版本(4位)

頭長度(4位)

服務型別(8位)

封包總長度(16位)

封包標識(16位)

標誌(3位)

片斷偏移地址(13位)

存活時間(8位)

協議(8位)

校驗和(16位)

來源IP地址(32位)

目的IP地址(32位)

選項(可選)

填充(可選)

資料

(1)位元組和數字的儲存順序是從右到左,依次是從低位到高位,而網路儲存順序是從左到右,依次從低位到高位。

(2)版本:佔第一個位元組的高四位。頭長度:佔第一個位元組的低四位。

(3)服務型別:前3位為優先欄位權,現在已經被忽略。接著4位用來表示最小延遲、最大吞吐量、最高可靠性和最小費用。

(4)封包總長度:整個IP報的長度,單位為位元組。

(5)存活時間:就是封包的生存時間。通常用通過的路由器的個數來衡量,比如初始值設定為32,則每通過一個路由器處理就會被減一,當這個值為0的時候就會丟掉這個包,並用ICMP訊息通知源主機。

(6)協議:定義了資料的協議,分別為:TCP、UDP、ICMP和IGMP。定義為:

#define PROTOCOL_TCP    0x06

#define PROTOCOL_UDP    0x11

#define PROTOCOL_ICMP   0x06

#define PROTOCOL_IGMP   0x06

(7)檢驗和:校驗的首先將該欄位設定為0,然後將IP頭的每16位進行二進位制取反求和,將結果儲存在校驗和欄位。

(8)來源IP地址:將IP地址看作是32位數值則需要將網路位元組順序轉化位主機位元組順序。轉化的方法是:將每4個位元組首尾互換,將2、3位元組互換。

(9)目的IP地址:轉換方法和來源IP地址一樣。

在網路協議中,IP是面向非連線的,所謂的非連線就是傳遞資料的時候,不檢測網路是否連通。所以是不可靠的資料報協議,IP協議主要負責在主機之間定址和選擇資料包路由。

2、ICMP協議的頭結構

型別(8位)

程式碼(8位)

校驗和(8位)

型別或者程式碼

(1)型別:一個8位型別欄位,表示ICMP資料包型別。

(2)程式碼:一個8位程式碼域,表示指定型別中的一個功能。如果一個型別中只有一種功能,程式碼域置為0。

(3)檢驗和:資料包中ICMP部分上的一個16位檢驗和。

3、TCP協議的頭結構

來源埠(2位元組)

目的埠(2位元組)

序號(4位元組)

確認序號(4位元組)

頭長度(4位)

保留(6位)

URG

ACK

PSH

RST

SYN

PIN

視窗大小(2位元組)

校驗和(16位)

緊急指標(16位)

選項(可選)

資料

(1)TCP源埠(Source Port):16位的源埠包含初始化通訊的埠號。源埠和IP地址的作用是標識報文的返回地址。

(2)TCP目的埠(Destination Port):16位的目的埠域定義傳輸的目的。這個埠指明報文接收計算機上的應用程式地址介面。

(3)序列號(Sequence Number):TCP連線傳送方向接收方的封包順序號。

(4)確認序號(Acknowledge Number):接收方回發的應答順序號。

(5)頭長度(Header Length):表示TCP頭的雙四位元組數,如果轉化為位元組個數需要乘以4。

(6)URG:是否使用緊急指標,0為不使用,1為使用。

(7)ACK:請求/應答狀態。0為請求,1為應答。

(8)PSH:以最快的速度傳輸資料。

(9)RST:連線復位,首先斷開連線,然後重建。

(10)SYN:同步連線序號,用來建立連線。

(11)FIN:結束連線。如果FIN為0是結束連線請求,FIN為1表示結束連線。

(12)視窗大小(Window):目的機使用16位的域告訴源主機,它想收到的每個TCP資料段大小。

(13)校驗和(Check Sum):這個校驗和和IP的校驗和有所不同,不僅對頭資料進行校驗還對封包內容校驗。

(14)緊急指標(Urgent Pointer):當URG為1的時候才有效。TCP的緊急方式是傳送緊急資料的一種方式。

4、UDP協議的頭結構

源埠(2位元組)

目的埠(2位元組)

封報長度(2位元組)

校驗和(2位元組)

資料

(1)源埠(Source Port):16位的源埠域包含初始化通訊的埠號。源埠和IP地址的作用是標識報文的返回地址。

(2)目的埠(Destination Port):6位的目的埠域定義傳輸的目的。這個埠指明報文接收計算機上的應用程式地址介面。

(3)封包長度(Length):UDP頭和資料的總長度。

(4)校驗和(Check Sum):和TCP和校驗和一樣,不僅對頭資料進行校驗,還對包的內容進行校驗。

5、ARP報頭結構

硬體型別

協議型別

硬體地址長度

協議長度

操作型別

傳送方的硬體地址(0-3位元組)

源實體地址(4-5位元組)

源IP地址(0-1位元組)

源IP地址(2-3位元組)

目標硬體地址(0-1位元組)

目標硬體地址(2-5位元組)

目標IP地址(0-3位元組)

(1)硬體型別欄位指明瞭傳送方想知道的硬體介面型別,乙太網的值為1;

(2)協議型別欄位指明瞭傳送方提供的高層協議型別,IP為0800(16進位制);

(3)硬體地址長度和協議長度指明瞭硬體地址和高層協議地址的長度,這樣ARP報文就可以在任意硬體和任意協議的網路中使用;

(4)操作欄位用來表示這個報文的型別,ARP請求為1,ARP響應為2,RARP請求為3,RARP響應為4;

(5)傳送方的硬體地址(0-3位元組):源主機硬體地址的前3個位元組;

(6)傳送方的硬體地址(4-5位元組):源主機硬體地址的後3個位元組;

(7)傳送方IP(0-1位元組):源主機硬體地址的前2個位元組;

(8)傳送方IP(2-3位元組):源主機硬體地址的後2個位元組;

(9)目的硬體地址(0-1位元組):目的主機硬體地址的前2個位元組;

(10)目的硬體地址(2-5位元組):目的主機硬體地址的後4個位元組;

(11)目的IP(0-3位元組):目的主機的IP地址。

ARP的工作原理如下:

1.   首先,每臺主機都會在自己的ARP緩衝區(ARP Cache)中建立一個 ARP列表,以表示IP地址和MAC地址的對應關係。

2.   當源主機需要將一個數據包要傳送到目的主機時,會首先檢查自己 ARP列表中是否存在該 IP地址對應的MAC地址,如果有﹐就直接將資料包傳送到這個MAC地址;如果沒有,就向本地網段發起一個ARP請求的廣播包,查詢此目的主機對應的MAC地址。此ARP請求資料包裡包括源主機的IP地址、硬體地址、以及目的主機的IP地址。

3.   網路中所有的主機收到這個ARP請求後,會檢查資料包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此資料包;如果相同,該主機首先將傳送端的MAC地址和IP地址新增到自己的ARP列表中,如果ARP表中已經存在該IP的資訊,則將其覆蓋,然後給源主機發送一個 ARP響應資料包,告訴對方自己是它需要查詢的MAC地址;

4.   源主機收到這個ARP響應資料包後,將得到的目的主機的IP地址和MAC地址新增到自己的ARP列表中,並利用此資訊開始資料的傳輸。如果源主機一直沒有收到ARP響應資料包,表示ARP查詢失敗。

相關推薦

乙太網資料TCPIPICMPUDPARP協議結構

乙太網首部目地MAC地址(8位元組)源MAC地址(8位元組)型別(2位元組)1、IP頭的結構版本(4位)頭長度(4位)服務型別(8位)封包總長度(16位)封包標識(16位)標誌(3位)片斷偏移地址(13位)存活時間(8位)協議(8位)校驗和(16位)來源IP地址(32位)目的

osi七層協議tcp/ip四層協議,五層協議體系結構

一:三種體系結構的比較osi七層體系結構tcp/ip四層協議結構五層協議的結構7:應用層4:應用層(各種應用層協議)5:應用層6:表示層5:會話層4:運輸層3:運輸層(tcp/ip)4:運輸層3:網路層:2:網際層ip3:網路層2:資料鏈路層:1:網路介面層2:資料鏈路層1:

乙太網資料IPTCP/UDP 結構

版本號(Version):長度4位元。標識目前採用的IP協議的版本號。一般的值為0100(IPv4),0110(IPv6)IP包頭長度(Header Length):長度4位元。這個欄位的作用是為了描述IP包頭的長度,因為在IP包頭中有變長的可選部分。該部分佔4個bit位,單位為32bit(4個位元組),

OSI七層協議模型TCP/IP四層模型和五層協議體系結構之間的關係

一、OSI七層模型 OSI七層協議模型主要是:應用層(Application)、表示層(Presentation)、會話層(Session)、傳輸層(Transport)、網路層(Network)、資料鏈路層(Data Link)、物理層(Physical)。

OSI七層協議模型TCP/IP四層模型和五層協議體系結構之間的關係(轉)

一、OSI七層模型 OSI七層協議模型主要是:應用層(Application)、表示層(Presentation)、會話層(Session)、傳輸層(Transport)、網路層(Network)、資料鏈路層(Data Link)、物理層(Physical)。 二、T

9網絡知識(路由交換和ARP協議)+配置單網卡多ip和配置默認路由

路由交換 ARP協議 網絡配置網絡知識詳解 提問:網絡到底是什麽?我們在電纜中傳輸的都是電信號(高電壓或者是低電壓),所以高電壓就是1,低電壓就是0,所以規定一定的時間傳輸固定的高低電壓來當做是接收的數據我們所謂的10Mbps:每秒中可以傳輸10M個bit所以別人說你的是4M的帶寬,指的就是4Mbps,要除

hashmap資料結構(五)之HashMapHashTableConcurrentHashMap 的區別

【hashmap 與 hashtable】   hashmap資料結構詳解(一)之基礎知識奠基 hashmap資料結構詳解(二)之走進JDK原始碼 hashmap資料結構詳解(三)之hashcode例項及大小是2的冪次方解釋 hashmap資料結構詳解(四)之has

原始套接字抓取所有乙太網資料與分析

If you have any idea, just send comments to me. 1.原始套接字介紹 關於socket使用客戶機/伺服器模型的 SOCK_STREAM 或者 SOCK_DGRAM 用於 TCP 和 UDP 連線的應用更為普遍

四種乙太網資料

1 Ethernet II 1.1 Ethernet II協議簡介   乙太網是當今現有區域網採用的最通用的通訊協議標準。該標準定義了在區域網中採用的電纜型別和訊號處理方法。EthernetII由DEC,Intel和Xerox在1982年公佈其標準,Etherent

HTTP協議報文工作原理及Java中的HTTP通信技術

tor 報文 buffered mod protoc 禁止 ans 請求報文 客戶端 博客園 首頁 新隨筆 聯系 管理 訂閱

19《每天5分鐘玩轉Docker容器技術》學習--Overlay Network內部結構

hostman cloudman cloud openstack docker 一、環境描述以容器方式運行 Consul:通過 http://192.168.56.129:8500 訪問 Consul修改 docker02 和 docker03 的 docker daemon 的配置文件,

IIS 6.0/7.0/7.5NginxApache 等Web Service解析漏洞總結 Apache解析漏洞

[+]IIS 6.0 目錄解析:/xx.asp/xx.jpg  xx.jpg可替換為任意文字檔案(e.g. xx.txt),文字內容為後門程式碼 IIS6.0 會將 xx.jpg 解析為 asp 檔案。 字尾解析:/xx.asp;.jpg     /xx

BITMAPFILEHEADERBITMAPINFOHEADER及BMP結構

BMP檔案總體上由4部分組成,分別是點陣圖檔案頭、點陣圖資訊頭、調色盤和影象資料,如表5-1所示。表5-1 BMP檔案的組成結構點陣圖檔案頭(bitmap-file header)點陣圖資訊頭(bitmap-information header)彩色表/調色盤(color table)點陣圖資料(bitmap

FastDFS的配置部署與API使用解讀(4)FastDFS配置之Client配置

一種方式是通過呼叫ClientGlobal類的初始化方法對配置檔案進行載入,另一種是通過呼叫API逐一設定配置引數。後一種方式對於使用Zookeeper等載入屬性的方式很方便。 1. 載入配置檔案: String configFileName = "conf/dfs-c

C語言——常量指標指標常量以及指向常量的指標常量三者區別

C語言——常量指標和指標常量的區別 常量指標、指標常量以及指向常量的指標常量概念簡要描述 常量指標:表示const修飾的為所申明的型別。 例如: //注意char const *p與const char *p效果相同。 void consttest(co

HTTP響應碼請求和響應

一、HTTP響應碼 響應碼由三位十進位制數字組成,它們出現在由HTTP伺服器傳送的響應的第一行。 響應碼分五種型別,由它們的第一位數字表示: 1xx:資訊,請求收到,繼續處理 2xx:成功,行為被成功地接受、理解和採納 3xx:重定向,為了完成請求,必須進一步執行的動作 4xx:客戶端錯誤,請求包含語法錯誤或

TCP/IP協議簇分層

 TCP/IP 和 ISO/OSI         ISO/OSI模型,即開放式通訊系統互聯參考模型(Open System Interconnection Reference Model),是國際標準化組織(ISO)提出的一個試圖使各種計算機在世界範圍內互連為網路

Servlet(10)Http協議HTTP請求和響應及其(檔案下載)

1 HTTP協議 HTTP協議是網際網路上應用最廣泛的一種網路協議。是工作在TCP/IP協議基礎上的,所有的www檔案都必須遵守這個標準。設計HTTP的最初目的是為了提供一種釋出和接受HTML頁面的方法。 HTTP是TCP/IP協議的一個應用層協議,也是we

TCP/IP協議族分層

1、TCP/IP的介紹 網際網路協議族(Internet Protocol Suite,縮寫IPS)是一個網路通訊模型,以及一整個網路傳輸協議家族, 為網際網路的基礎通訊架構。它常被通稱為TCP/IP協議族(TCP/IP Protocol Suite,或TC

Python中可迭代物件迭代器以及iter()函式的兩個用法

在Python中,有這兩個概念容易讓人混淆。第一個是可迭代物件(Iterable),第二個是迭代器(Iterator),第三個是生成器(Generator),這裡暫且不談生成器。 可迭代物件 列表、元組、字串、字典等都是可迭代物件,可以使用for迴圈遍歷出所有元素的都可以稱為可迭代物件(Iterable)。在