ETHERNET資料包格式( IP & UDP & ICMP & ARP )

來源:互聯網
上載者:User

標籤:

ETHERNET資料包格式( IP & UDP & ICMP & ARP )ETHERNET資料包格式一、ETHERNET 資料包的協議類型 TYPE 的值為 0x0800:IP協議,即:ETHERTYPE_IP,
    該值在 /usr/include/net/ethernet.h中有定義。ETHERNET 資料包的格式又細分
    為如下幾種情況:

(1) IP 前序中的協議號碼為 IPPROTO_TCP,其值為 6 。ETHERNET 資料包的格式如下:

    |<------------ Ethernet Header ---------->|
    -------------------------------------------------------------------------
    |DST MAC ADDR |SRC MAC ADDR |    TYPE     |   IP PACKET  |  TCP PACKET  |
    -------------------------------------------------------------------------
    |<- 6 bytes ->|<- 6 bytes ->|<- 2 bytes ->|<- 20 bytes ->|<- 20 bytes ->|

    如下例所示:

    00 00 21 cd a8 48 00 0a 98 1f 0a 8a 08 00 45 00
    -- -- -- -- -- -- -- -- -- -- -- -- -- --

    00 28 38 13 40 00 7e 06 85 48 a6 6f e5 87 a6 6f
                         --       -- -- -- -- -- --

    e5 0d 04 3a 01 95 bc 5d 5a 8b 25 69 20 82 50 11
    -- -- -- -- -- --

    41 87 cc 34 00 00 00 00 00 00 00 00 00 00 00 00
    -- --

    其中作如下說明:

    00 00 --- 08 00         : ETHERNET PACKET,共 14 個位元組

          00 00 21 cd a8 48 : 接收方的 MAC 位址,6 個位元組
          00 0a 98 1f 0a 8a : 發送方的 MAC 位址,6 個位元組
          08 00             : 協議類型,2 個位元組,
                              0x0800:IP協議,該值在/usr/include/net/ethernet.h
                                              中有定義,其值為:ETHERTYPE_IP

    45 00 --- e5 0d         : IP PACKET ,共 20 個位元組

          06                : 協議類型,1 是 ICMP,6 是 TCP,17 是 UDP
          a6 6f e5 87       : 發送方 IP 位址,4 個位元組,十進位:166.111.229.135
          a6 6f e5 0d       : 接收方 IP 位址,4 個位元組,十進位:166.111.229.13

    04 3a --- 00 00         : TCP PACKET,共 20 個位元組

          04 3a             : 發送方的連接埠號碼,2 個位元組,其十進位表示為:1082
          01 95             : 接收方的連接埠號碼,2 個位元組,其十進位表示為:405
          41 87             : TCP PACKET 的視窗大小

(2) IP 前序中的協議號碼為 IPPROTO_UDP,其值為 17 。ETHERNET 資料包的格式如下:

    |<------------ Ethernet Header ---------->|
    ------------------------------------------------------------------------
    |DST MAC ADDR |SRC MAC ADDR |    TYPE     |   IP PACKET  | UDP PACKET  |
    ------------------------------------------------------------------------
    |<- 6 bytes ->|<- 6 bytes ->|<- 2 bytes ->|<- 20 bytes ->|<- 8 bytes ->|

    如下例所示:

    ff ff ff ff ff ff 00 80 c8 f7 0b 99 08 00 45 00
    -- -- -- -- -- -- -- -- -- -- -- -- -- --

    00 4e 0b 46 00 00 80 11 24 ff c0 a8 44 0a c0 a8
                         --

    44 ff 00 89 00 89 00 3a fa 63 80 37 01 10 00 01
          -- -- -- -- -- -- -- --

    00 00 00 00 00 00 20 45 4e 46 44 45 49 45 50 45

    4e 45 46 43 41 43 41 43 41 43 41 43 41 43 41 43

    41 43 41 43 41 42 4c 00 00 20 00 01

    其中作如下說明:

    ETHERNET PACKET、IP PACKET 的前序格式同 (1) ,
                        其中:第二行的 11 表示 IPPROTO_UDP 協議。

    00 89 --- fa 63         : UDP PACKET,共 8 個位元組

          00 89             : 發送方的連接埠號碼,2 個位元組,其十進位表示為:137
          00 89             : 接收方的連接埠號碼,2 個位元組,其十進位表示為:137
          00 3a             : UDP 包長度,其十進位表示為:58
          fa 63             : UDP 檢查和

(3) IP 前序中的協議號碼為 IPPROTO_ICMP,其值為 1 。ETHERNET資料包的格式如下:

    |<------------ Ethernet Header ---------->|
    -------------------------------------------------------------------------
    |DST MAC ADDR |SRC MAC ADDR |    TYPE     |   IP PACKET  | ICMP PACKET |
    -------------------------------------------------------------------------
    |<- 6 bytes ->|<- 6 bytes ->|<- 2 bytes ->|<- 20 bytes ->|<- 8 bytes ->|

    如下例所示:

    00 0a 98 1f 0a 8a 00 00 21 cd a8 48 08 00 45 00

    00 54 00 00 40 00 40 01 d0 97 a6 6f f9 0d ca 70
                         --

    00 24 08 00 bc 04 1b 21 00 01 c3 e6 2b 41 3b ae
          -- -- -- -- -- -- -- --

    0b 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15

    16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25

    26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35

    36 37

    其中作如下說明:

    ETHERNET PACKET、IP PACKET 的前序格式同 (1) ,
                        其中:第二行的 01 表示 IPPROTO_ICMP 協議。

    08 00 --- 00 01         : ICMP PACKET,共 8 個位元組

          08                : ICMP_TYPE,1 個位元組。
          00                : ICMP_CODE,1 個位元組。
          bc 04             : ICMP 檢查和
          1b 21             : ICMP 標識
          00 01             : ICMP 資料包序號

二、ETHERNET 資料包的協議類型 TYPE 的值為 0x0806:ARP協議,即:ETHERTYPE_ARP,
    該值在 /usr/include/net/ethernet.h中有定義。ETHERNET 資料包的格式如下:

    |<------------ Ethernet Header ---------->|
    ------------------------------------------------------------
    |DST MAC ADDR |SRC MAC ADDR |    TYPE     | ARP 協議資料包 |
    ------------------------------------------------------------
    |<- 6 bytes ->|<- 6 bytes ->|<- 2 bytes ->|<-- 28 bytes -->|

    如下例所示:

    ff ff ff ff ff ff 00 0a 98 1f 0a 8a 08 06 00 01
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    08 00 06 04 00 01 00 0a 98 1f 0a 8a a6 6f e5 01
    -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

    00 00 00 00 00 00 a6 6f e5 58 00 00 00 00 00 00
    -- -- -- -- -- -- -- -- -- --

    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    其中作如下說明:

    ff ff --- 08 06         : ETHERNET PACKET,共 14 個位元組

          ff ff ff ff ff ff : 接收方的 MAC 位址,6 個位元組
          00 0a 98 1f 0a 8a : 發送方的 MAC 位址,6 個位元組
          08 06             : 協議類型,2 個位元組,
                              0x0806:ARP協議,在/usr/include/net/ethernet.h
                                             中有定義,其值為:ETHERTYPE_ARP

    00 01 --- f9 58         : ARP PACKET ,共 28 個位元組

          00 01             : 硬體地址格式,2 個位元組
          08 00             : 協議地址格式,2 個位元組
          06                : 硬體地址長度,1 個位元組
          04                : 協議地址長度,1 個位元組
          00 01             : 可選項,2 個位元組,0x0001:ARPOP_REQUEST,
                                              0x0002:ARPOP_REPLY
                              該值在 /usr/include/net/if_arp.h中有定義
          00 0a 98 1f 0a 8a : 發送方的 MAC 位址,6 個位元組
          a6 6f e5 01       : 發送方的 IP 位址, 4 個位元組,十進位:166.111.229.1
          00 00 00 00 00 00 : 接收方的 MAC 位址,6 個位元組
          a6 6f e5 58       : 接收方的 IP 位址, 4 個位元組,十進制:166.111.229.88 

ETHERNET資料包格式( IP & UDP & ICMP & ARP )

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.