精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的以太網ARP通信測試(一)

CHANBAEK ? 來源: FPGA Zone ? 作者: FPGA Zone ? 2023-11-06 18:20 ? 次閱讀

主機與目的主機進行以太網通信,需要知道目的主機的MAC地址(物理地址),以太網ARP通信協議就是用來獲取目的主機MAC地址的。

ARP協議

ARP(Address Resolution Protocol),即地址解析協議,是根據IP地址(邏輯地址)獲取MAC地址的一種TCP/IP協議。

MAC地址在網絡中表示網卡的ID,每個網卡都需要并有且僅有一個MAC地址。源主機知道目的主機的IP地址,卻不知道目的主機的MAC地址。而目的主機的MAC地址直接被網卡接收和解析,當解析到目的MAC地址非本地MAC地址時,則直接丟棄該包數據,因此在通信前需要先獲得目的的MAC地址。

ARP協議的基本功能就是通過目的設備的IP地址,查詢目的設備的MAC地址,以保證通信的順利進行。

在獲取到目的MAC地址之后,將目的MAC地址更新至ARP緩存表中,下次通信時,可以直接從ARP緩存表中獲取,而不用重新獲取。但ARP緩存表會有過期時間,過期后需要重新通過ARP協議進行獲取。

協議格式

ARP協議屬于TCP/IP協議簇的一種,位于以太網MAC幀格式的數據段,ARP數據包格式如下圖所示。

圖片

硬件類型 (Hardware type):硬件地址的類型,1表示以太網;

協議類型 (Protocol type):要映射的協議地址類型,ARP協議的上層協議為IP協議,因此該協議類型為IP協議,其值為0x0800;

硬件地址長度 (Hardware size):硬件地址(MAC地址)的長度,以字節為單位。對于以太網上IP地址的ARP請求或者應答來說,該值為6;

協議地址長度 (Protocol size):IP地址的長度,以字節為單位。對于以太網上IP地址的ARP請求或者應答來說,該值為4;

OP (Opcode):操作碼,用于表示該數據包為ARP請求或者ARP應答。1表示ARP請求,2表示ARP應答;

源MAC地址 :發送端的硬件地址;

源IP地址 :發送端的協議(IP)地址;

目的MAC地址 :接收端的硬件地址,在ARP請求時由于不知道接收端MAC地址,因此該字段為廣播地址,即48’hff_ff_ff_ff_ff_ff;

目的IP地址 :接收端的協議(IP)地址。

ARP協議分為ARP請求和ARP應答,源主機發起查詢目的MAC地址的報文稱為ARP請求,目的主機響應源主機并發送包含本地MAC地址的報文稱為ARP應答。

ARP請求

當源主機A需要獲取目的主機B物理地址時,可以發送一個ARP請求報文,這個報文包含了主機A的MAC地址和IP地址以及主機B的IP地址。

因為主機A不知道主機B的物理地址,所以這個查詢分組會在網絡層中進行廣播,即ARP請求時發送的接收方物理地址為廣播地址,用48hff_ff_ff_ff_ff_ff表示。

主機A發起ARP請求,由于發送的目的MAC地址為廣播地址,所以此時局域網中的所有主機都會進行接收并處理這個ARP請求報文,然后進行驗證,查看接收方的IP地址是不是自己的地址。是則返回ARP應答報文,不是則不響應。

只有驗證成功的主機B才會返回一個ARP應答報文,這個應答報文包含主機B的IP地址和物理地址。

ARP應答

主機B利用收到的ARP請求報文中的請求方物理地址,以單播的方式直接發送給主機A,主機A將收到的ARP應答報文中的目的MAC地址解析出來,將目的MAC地址和目的IP地址更新至ARP緩存表中。

當再次和主機A通信時,可以直接從ARP緩存表中獲取,而不用重新發起ARP請求報文。

但是ARP緩存表中的表項有過期時間(一般為20分鐘),過期之后,需要重新發起ARP請求以獲取目的MAC地址。

以太網協議

ARP協議通過以太網進行傳輸,因此需要滿足以太網通信協議所規定的格式。如下圖所示,以太網的數據包就是通過對協議的封裝來實現數據的傳輸,即ARP數據位于以太網幀格式的數據段。

圖片

28字節的ARP數據位于以太網幀格式的數據段。由于以太網數據段最少為46個字節,而ARP數據包總長度為28個字節,因此在ARP數據段后面需要填充18個字節的數據,以滿足以太網傳輸格式的要求。這個填充的過程稱為Padding,填充的數據可以為任意值,但一般為0。

圖片

以太網協議具體內容如上圖所示,其中:

前導碼 (Preamble):為了實現底層數據的正確闡述,物理層使用7個字節同步碼(0和1交替(55-55-55-55-55-55-55))實現數據的同步;

幀起始界定符 (SFD,Start Frame Delimiter):使用1個字節的SFD(固定值為0xd5)來表示一幀的開始,即后面緊跟著傳輸的就是以太網的幀頭;

目的MAC地址 :即接收端物理MAC地址,占用6個字節;

源MAC地址 :即發送端物理MAC地址,占用6個字節;

長度/類型 :上圖中的長度/類型具有兩個意義,當這兩個字節的值小于1536(十六進制為 0x0600)時,代表該以太網中數據段的長度;如果這兩個字節的值大于1536,則表示該以太網中的數據屬于哪個上層協議;

數據 :以太網中的數據段長度最小46個字節,最大1500個字節;

幀檢驗序列 (FCS,Frame Check Sequence):為了確保數據的正確傳輸,在數據的尾部加入了4個字節的循環冗余校驗碼(CRC校驗)來檢測數據是否傳輸錯誤。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1626

    文章

    21665

    瀏覽量

    601809
  • 以太網
    +關注

    關注

    40

    文章

    5374

    瀏覽量

    171097
  • 通信協議
    +關注

    關注

    28

    文章

    857

    瀏覽量

    40255
  • Mac
    Mac
    +關注

    關注

    0

    文章

    1099

    瀏覽量

    51368
  • ARP
    ARP
    +關注

    關注

    0

    文章

    50

    瀏覽量

    14735
收藏 人收藏

    評論

    相關推薦

    基于FPGA以太網ARP通信測試(二)

    本文繼續簡單介紹下基于FPGA以太網ARP通信,該項目主要用于實現FPGA
    的頭像 發表于 11-06 18:26 ?1222次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>以太網</b><b class='flag-5'>ARP</b><b class='flag-5'>通信</b><b class='flag-5'>測試</b>(二)

    【小梅哥2017力作】詳細的FPGA以太網設計教程,76頁精華PDF

    ... 3第1章 基于RTL8201的以太網UDP通信測試... 4第2章 以太網MAC層基本原理... 12MII 接口介紹:... 12以太網
    發表于 07-29 23:20

    【AC620 FPGA試用體驗】以太網ARP幀發包實例(手動CRC)

    基于AC620開發板上的以太網接口,設計個能夠發送ARP幀的FPGA系統。其中以太網包和ARP
    發表于 08-26 12:56

    【正點原子FPGA連載】第二十五章以太網ARP測試實驗-領航者ZYNQ之FPGA開發指南

    原子公眾號,獲取最新資料第二十五章以太網ARP測試實驗在以太網中,個主機和另個主機進行
    發表于 09-29 18:15

    基于BL706 emac實現通過以太網發送ARP裸數據包的例程

    本 demo 基于 BL706 emac 實現通過以太網發送ARP 裸數據包的例程,通過本例程可以確認 emac 以及 PHY 芯片的配置是否正確。以太網 PHY 芯片這里
    發表于 06-17 17:40

    種基于FPGA以太網高速傳輸平臺

    種基于FPGA以太網高速傳輸平臺,采用DM9000和FPGA芯片,實現100M以太網數據傳輸
    發表于 02-25 14:45 ?17次下載

    基于FPGA的萬兆以太網接口的設計與實現

    基于FPGA的萬兆以太網接口的設計與實現。
    發表于 05-11 09:46 ?39次下載

    以太網測試專題

    以太網測試專題
    發表于 01-21 12:07 ?14次下載

    基于FPGA的實時以太網(PowerLink)星載通信技術

    在衛星中使用以太網的目的是為了在獲得靈活的通信接入的同時得到高速的通信速率,并且能滿足安全關鍵場合通信對實時性和確定性的要求.、針對國內在空間應用上還未大規模使用
    發表于 01-09 14:20 ?6次下載
    基于<b class='flag-5'>FPGA</b>的實時<b class='flag-5'>以太網</b>(PowerLink)星載<b class='flag-5'>通信</b>技術

    在工業以太網領域采用FPGA的好處

    您的工廠或者工藝自動化系統需要采用多種工業以太網協議嗎?請觀看這10分鐘的視頻,了解怎樣采用FPGA來輕松開發工業以太網設計。您將能夠:   觀看在單片
    的頭像 發表于 06-20 14:00 ?4446次閱讀

    以太網 Ping的方式對 MAX10 FPGA 開發套件進行測試

    對MAX10 FPGA 開發套件進行以太網 Ping 測試
    的頭像 發表于 06-20 01:00 ?4851次閱讀
    用<b class='flag-5'>以太網</b> Ping的方式對  MAX10 <b class='flag-5'>FPGA</b> 開發套件進行<b class='flag-5'>測試</b>

    FPGA如何為以太網和千兆以太網解決低功耗問題

    探索新的中檔 FPGA 如何為以太網和千兆以太網 (GbE) 鏈路執行橋接功能,同時解決低功耗問題。
    的頭像 發表于 05-07 16:54 ?3994次閱讀
    <b class='flag-5'>FPGA</b>如何為<b class='flag-5'>以太網</b>和千兆<b class='flag-5'>以太網</b>解決低功耗問題

    基于FPGA的千兆以太網ARP和UDP的實現

    其他協議報頭的數據包(例如IP協議、ARP協議)。以太幀由個32位冗余校驗碼結尾。它用于檢驗數據傳輸是否出現損壞。以太網幀格式如下圖所示。 1.前導碼和幀開始符是固定的,為7個0x5
    的頭像 發表于 02-16 16:35 ?2447次閱讀

    基于FPGA的UDP千兆以太網通信

    本文介紹FPGA開源項目:UDP千兆以太網通信。利用SFP接口,可以通過使用SFP轉RJ45模塊或者直接使用光纖進行以太網通信。
    的頭像 發表于 08-31 11:26 ?4349次閱讀
    基于<b class='flag-5'>FPGA</b>的UDP千兆<b class='flag-5'>以太網</b>光<b class='flag-5'>通信</b>

    基于FPGA的UDP RGMII千兆以太網通信方案

    本文介紹FPGA開源項目:UDP RGMII千兆以太網通信。該項目在我之前的工作中主要是用于FPGA和電腦端之間進行圖像數據傳輸。本文簡要介紹
    的頭像 發表于 09-04 16:49 ?1518次閱讀
    基于<b class='flag-5'>FPGA</b>的UDP RGMII千兆<b class='flag-5'>以太網通信</b>方案