兩種以太網封裝格式


以太網數據格式與封裝解封

      我們在上一文中介紹了以太網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地址。

 

 
來自:https://www.cnblogs.com/qishui/p/5437301.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM