乙太網資料格式與封裝解封 乙太網資料格式與封裝解封
乙太網資料格式與封裝解封
我們在上一文中介紹了乙太網5層模型,這一節我想學習一下乙太網資料封裝與解封的知識,瞭解乙太網資料是如何傳輸的。 一、資料封裝當我們應用程式用TCP傳輸資料的時候,資料被送入協議棧中,然後逐個通過每一層,知道最後到物理層資料轉換成位元流,送入網路。而再這個過程中,每一層都會對要傳送的資料加一些首部資訊。整個過程如下圖。 如圖可以看出,每一層資料是由上一層資料+本層首部資訊組成的,其中每一層的資料 ,稱為本層的協議資料單元 ,即PDU. 應用層資料在傳輸層新增TCP報頭後得到的PDU被稱為 Segment(資料段 ),圖示為TCP段 傳輸層的資料(TCP段)傳給網路層,網路層新增IP報頭得到的PDU被稱為Packet(資料包); 圖示為IP資料包 網路層資料報(IP資料包)被傳遞到資料鏈路層,封裝資料鏈路層報頭得到的PDU被稱為Frame(資料幀),圖示為乙太網幀。 最後,幀被轉換為位元,通過網路介質傳輸。這種協議棧逐層向下傳遞資料,並新增報頭和報尾的過程稱為封裝。 二、資料格式 需要注意的是,這裡所說的乙太網幀,與我們常說的乙太網是不一樣的。下面我們就來介紹每一層資料的 首部資訊 內容。 首先我們知道世界上有個協會叫作IEEE,即電子工程師協會,裡面有個分會,叫作IEEE802委員會,是專門來制定區域網各種標準的。而802下面還有個分部,叫作802.3.就是我們經常提到的 IEEE802.3,這個部門制定的規範叫乙太網規範, 這個乙太網規範中就定義了上面提到的“乙太網首部”,這個乙太網規範,實際只定義了資料鏈路層中的MAC層和物理層規範。(注意資料鏈路層包括MAC子層和LLC子層兩個子層,而LLC子層是在IEEE802.2中規範的)。
(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地址。
我們在上一文中介紹了乙太網5層模型,這一節我想學習一下乙太網資料封裝與解封的知識,瞭解乙太網資料是如何傳輸的。 一、資料封裝
當我們應用程式用TCP傳輸資料的時候,資料被送入協議棧中,然後逐個通過每一層,知道最後到物理層資料轉換成位元流,送入網路。而再這個過程中,每一層都會對要傳送的資料加一些首部資訊。整個過程如下圖。 如圖可以看出,每一層資料是由上一層資料+本層首部資訊組成的,其中每一層的資料 ,稱為本層的協議資料單元 ,即PDU. 應用層資料在傳輸層新增TCP報頭後得到的PDU被稱為 Segment(資料段 ),圖示為TCP段 傳輸層的資料(TCP段)傳給網路層,網路層新增IP報頭得到的PDU被稱為Packet(資料包); 圖示為IP資料包 網路層資料報(IP資料包)被傳遞到資料鏈路層,封裝資料鏈路層報頭得到的PDU被稱為Frame(資料幀),圖示為乙太網幀。 最後,幀被轉換為位元,通過網路介質傳輸。這種協議棧逐層向下傳遞資料,並新增報頭和報尾的過程稱為封裝。 二、資料格式 需要注意的是,這裡所說的乙太網幀,與我們常說的乙太網是不一樣的。下面我們就來介紹每一層資料的 首部資訊 內容。 首先我們知道世界上有個協會叫作IEEE,即電子工程師協會,裡面有個分會,叫作IEEE802委員會,是專門來制定區域網各種標準的。而802下面還有個分部,叫作802.3.就是我們經常提到的 IEEE802.3,這個部門制定的規範叫乙太網規範, 這個乙太網規範中就定義了上面提到的“乙太網首部”,這個乙太網規範,實際只定義了資料鏈路層中的MAC層和物理層規範。(注意資料鏈路層包括MAC子層和LLC子層兩個子層,而LLC子層是在IEEE802.2中規範的)。 1、乙太網幀格式 乙太網常用幀格式有兩種,一種是Ethernet II,另一種是IEEE 802.3 格式。這兩種格式區別是:Ethernet II中包含一個Type字 段,。而IEEE 802.3格式中,此位置是長度欄位。 其中Type欄位描述了,乙太網首部 後面所跟資料包的型別,例如Type為0x8000時為IP協議包,Type為8060時,後面為ARP協議包。乙太網中多數資料幀使用的是Ethernet II幀格式。 a、 Ethernet II幀格式 b、IEEE 802.3 幀格式 前導碼:Ethernet II是由8個8‘b10101010構成,IEEE802.3由7個8‘b10101010+1個位元組SFD.. 目的地址:目的裝置的MAC實體地址。 源 地址 :傳送裝置的MAC實體地址。 型別(Ethernet II):乙太網首部 後面所跟資料包的型別,例如Type為0x8000時為IP協議包,Type為8060時,後面為ARP協議包。 長度(IEEE802.3):當長度小於1500時,說明該幀為IEEE802.3幀格式,大於1500時,說明該幀為Ethernet II幀格式。 資料:資料長度最小為46位元組,不足46位元組時,填充至46位元組。因為最小幀長度是64位元組,所以,46+6+6+2+4=64。(不算前導碼) FCS: 就是CRC校驗值 乙太網首部就是: 2、IP資料包格式 IP資料包格式如下圖。IP首部,如圖也表示出來了。 3、TCP資料段格式 如圖所示為TCP首部和TCP資料段格式 下面我們再介紹幾個常見的資料格式 4、UDP資料段格式--傳輸層的 其中UDP首部如上圖所示。 5、ARP資料包格式(摘自:來源: http://blog.sina.com.cn/s/blog_9c5d29f70101dwgk.html)
(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地址。