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


      我們在上一文中介紹了以太網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)協議類型字段指明了發送方提供的高層協議類型,IP080016進制);

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

4)操作字段用來表示這個報文的類型,ARP請求為1ARP響應為2RARP請求為3RARP響應為4

5)發送方的硬件地址(0-3字節):源主機硬件地址的前3個字節;

6)發送方的硬件地址(4-5字節):源主機硬件地址的后3個字節;

7)發送方IP0-1字節):源主機硬件地址的前2個字節;

8)發送方IP2-3字節):源主機硬件地址的后2個字節;

9)目的硬件地址(0-1字節):目的主機硬件地址的前2個字節;

10)目的硬件地址(2-5字節):目的主機硬件地址的后4個字節;

11)目的IP0-3字節):目的主機的IP地址。








 



         






免責聲明!

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



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