0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么在控制器啟動(dòng)階段會(huì)有ARP報(bào)文呢?ARP報(bào)文扮演什么角色?

jf_EksNQtU6 ? 來源:開心果 Need Car ? 2023-11-22 09:29 ? 次閱讀

開發(fā)以太網(wǎng)的小伙伴,對(duì)ARP(Address Resolution Protocol,地址解析協(xié)議)已經(jīng)見怪不怪。在控制器剛啟動(dòng)階段,總線上會(huì)看到一些ARP報(bào)文。那么,問題來了,為什么在控制器啟動(dòng)階段,會(huì)有ARP報(bào)文呢?ARP報(bào)文到底扮演著什么樣的角色呢?本文,聊一聊ARP。

1、以太網(wǎng)通信基礎(chǔ)

我們知道,以太網(wǎng)是點(diǎn)對(duì)點(diǎn)(Point-to-Point)的通信方式。如果兩個(gè)以太網(wǎng)節(jié)點(diǎn)建立通信,發(fā)送節(jié)點(diǎn)首先需要知道和誰通信。發(fā)送節(jié)點(diǎn)如何知道和誰通信呢?

答:MAC地址(Media Access Control Address)。MAC地址也稱為網(wǎng)卡,每一個(gè)網(wǎng)卡分配唯一MAC地址(長(zhǎng)度為6 Bytes)。所以,知道目標(biāo)節(jié)點(diǎn)MAC地址,才能知道信息要發(fā)給誰。而在整車的網(wǎng)絡(luò)拓?fù)渲校?jié)點(diǎn)之間的數(shù)據(jù)交互由交換機(jī)(Switch)進(jìn)行二層轉(zhuǎn)發(fā),示意如下:

cdcb68f6-886b-11ee-939d-92fbcf53809c.png

(一)ARP幀格式

不管何種總線,為了確保信息有效交互,會(huì)根據(jù)軟、硬件層級(jí),設(shè)計(jì)不同的通信協(xié)議。本文關(guān)注鏈路層的以太網(wǎng)幀和網(wǎng)絡(luò)層的ARP協(xié)議,ARP報(bào)文封裝在以太網(wǎng)幀的數(shù)據(jù)段傳輸,如下所示:

cde6d2c6-886b-11ee-939d-92fbcf53809c.png

硬件類型(2 Byte):表示硬件地址類型,eg:以太網(wǎng)為1

協(xié)議類型(2 Byte):表示上層協(xié)議類型,eg:IPv4為0x0800

硬件地址長(zhǎng)度(1Byte):表示硬件地址長(zhǎng)度,eg:以太網(wǎng)為6

協(xié)議地址長(zhǎng)度(1Byte):表示協(xié)議地址長(zhǎng)度,eg:IPv4為4

操作碼(Option,2 Byte):表示ARP請(qǐng)求或響應(yīng)的操作類型,eg:請(qǐng)求(Request)為1,響應(yīng)(Replay)為2

源MAC地址(6 Byte):發(fā)送ARP請(qǐng)求的主機(jī)的MAC地址

源IP地址(4Byte):發(fā)送ARP請(qǐng)求的主機(jī)的IP地址

目標(biāo)MAC地址(6Byte):目標(biāo)主機(jī)的MAC地址(在ARP請(qǐng)求中通常為空,即:全0x00)

目標(biāo)IP地址(4Byte):目標(biāo)主機(jī)的IP地址

通過ARP報(bào)文格式可以看出,ARP記錄著IP與MAC的對(duì)應(yīng)關(guān)系,即:通過IP關(guān)聯(lián)的MAC地址,最終找到通信的目標(biāo)節(jié)點(diǎn)。

而在TCP/IP的分層結(jié)構(gòu)中,ARP屬于網(wǎng)絡(luò)層,因此,網(wǎng)絡(luò)層的源節(jié)點(diǎn)實(shí)體、目標(biāo)節(jié)點(diǎn)實(shí)體之間通過IP地址識(shí)別彼此。但是,ARP報(bào)文封裝在以太網(wǎng)幀中,依賴以太網(wǎng)鏈路層傳輸,而以太網(wǎng)鏈路層的尋址方式為MAC地址,因此,需要把IP地址轉(zhuǎn)換成MAC地址才能將上層待發(fā)送的信息發(fā)送給目標(biāo)節(jié)點(diǎn),所以,這就是ARP出現(xiàn)的意義。

首先,同一局域網(wǎng)內(nèi)的每個(gè)以太網(wǎng)節(jié)點(diǎn),網(wǎng)絡(luò)層會(huì)分配一個(gè)或者多個(gè)IP,數(shù)據(jù)鏈路層固化一個(gè)唯一MAC地址,由標(biāo)識(shí)發(fā)送節(jié)點(diǎn),如下所示:

cdfca826-886b-11ee-939d-92fbcf53809c.png

其次,通過ARP報(bào)文獲取目標(biāo)節(jié)點(diǎn)的MAC,形成目標(biāo)節(jié)點(diǎn)的對(duì),進(jìn)而,每個(gè)以太網(wǎng)節(jié)點(diǎn)形成一個(gè)ARP Table。有了ARP Table以后,發(fā)送方在發(fā)送數(shù)據(jù)之前,就可以通過目標(biāo)節(jié)點(diǎn)的IP地址,查找目標(biāo)節(jié)點(diǎn)的MAC地址,進(jìn)而發(fā)送數(shù)據(jù)。每個(gè)節(jié)點(diǎn)的ARP Table示意如下:

ce10138e-886b-11ee-939d-92fbcf53809c.png

(二)交換機(jī)如何轉(zhuǎn)發(fā)

ARP Table形成以后,解決了發(fā)送節(jié)點(diǎn)知道發(fā)送給誰的問題,但是,還有一個(gè)問題需要解決:交換機(jī)(Switch)如何知道信息轉(zhuǎn)發(fā)給誰呢?

:路由表(Route Table),示意如下:

ce405e4a-886b-11ee-939d-92fbcf53809c.png

當(dāng)交換機(jī)某個(gè)端口(Port #n)收到以太網(wǎng)幀以后,會(huì)通過目標(biāo)節(jié)點(diǎn)的MAC地址查找Route Table,如果找到目標(biāo)節(jié)點(diǎn)端口號(hào),則將信息轉(zhuǎn)發(fā)出去,實(shí)現(xiàn)路由的目的。同時(shí),也會(huì)檢查發(fā)送節(jié)點(diǎn)的MAC地址是否已經(jīng)緩存,如果Route Table中沒有緩存發(fā)送節(jié)點(diǎn)的MAC,則將發(fā)送節(jié)點(diǎn)的MAC地址和入口Port緩存到Route Table。

2、ARP通信原理

(一)

控制器初始啟動(dòng)階段,ARP緩存表為空,即:ARP Table沒有目標(biāo)節(jié)點(diǎn)的信息。此時(shí),發(fā)送節(jié)點(diǎn)發(fā)送ARP報(bào)文,請(qǐng)求目標(biāo)節(jié)點(diǎn)的MAC地址。注意:目標(biāo)節(jié)點(diǎn)的IP地址已知。請(qǐng)求示意如下:

ce449e1a-886b-11ee-939d-92fbcf53809c.png

發(fā)送節(jié)點(diǎn)(MCU2)發(fā)送的ARP報(bào)文信息如下所示:

ce5c1cca-886b-11ee-939d-92fbcf53809c.png

解析:

發(fā)送節(jié)點(diǎn)發(fā)送ARP報(bào)文時(shí),會(huì)包含發(fā)送節(jié)點(diǎn)的IP(192.168.0.2)、發(fā)送節(jié)點(diǎn)MAC(020000:02)、目標(biāo)節(jié)點(diǎn)的IP(192.168.0.1);

由于不知道目標(biāo)節(jié)點(diǎn)的MAC,所以,在ARP報(bào)文中,目標(biāo)節(jié)點(diǎn)的MAC地址(上圖中的Target Protocol Address)用全0x00表示;

由于發(fā)送節(jié)點(diǎn)不知道目標(biāo)節(jié)點(diǎn)在哪個(gè)位置,所以,發(fā)送節(jié)點(diǎn)發(fā)送ARP請(qǐng)求時(shí),使用廣播的方式發(fā)送,即:Destination為全0xFF。

(二)

當(dāng)交換機(jī)收到MCU2的ARP請(qǐng)求報(bào)文以后,發(fā)現(xiàn):路由表中找不到目標(biāo)節(jié)點(diǎn)的Port(初始階段為空),于是,交換機(jī)向所有端口廣播ARP報(bào)文(不包含接收端口),同時(shí),緩存MCU2的MAC2和Port2,如下所示:

ce6acab8-886b-11ee-939d-92fbcf53809c.png

(三)

當(dāng)目標(biāo)節(jié)點(diǎn)(MCU1)收到ARP請(qǐng)求報(bào)文以后,發(fā)現(xiàn)MAC地址與自身匹配,則接收該ARP報(bào)文,同時(shí)將發(fā)送節(jié)點(diǎn)的MAC2緩存下來。MCU1之后給出ARP響應(yīng),由于知道了發(fā)送節(jié)點(diǎn)的MAC地址,所以,MCU1響應(yīng)ARP報(bào)文時(shí),單播發(fā)送ARP報(bào)文。當(dāng)交換機(jī)收到MCU1的ARP響應(yīng)以后,發(fā)現(xiàn)目標(biāo)節(jié)點(diǎn)是MCU2,而且MCU2的MAC2已經(jīng)關(guān)聯(lián)Port2,則直接將ARP報(bào)文發(fā)送給MCU2,同時(shí),交換機(jī)緩存。當(dāng)MCU1接收到MCU2的ARP響應(yīng)以后,也會(huì)緩存。之后,MCU1和MCU2即可正常通信,示意如下:

ce823338-886b-11ee-939d-92fbcf53809c.png

提示:非目標(biāo)節(jié)點(diǎn)收到ARP報(bào)文以后,直接丟棄。

響應(yīng)節(jié)點(diǎn)(MCU1)發(fā)送的ARP報(bào)文信息如下所示:

cea3901e-886b-11ee-939d-92fbcf53809c.png

解析: ARP響應(yīng)報(bào)文屬于單播。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    16993

    瀏覽量

    183104
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5590

    瀏覽量

    174934
  • 交換機(jī)
    +關(guān)注

    關(guān)注

    21

    文章

    2726

    瀏覽量

    101439
  • ARP
    ARP
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    14952
收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    以太網(wǎng)通信基礎(chǔ)知識(shí)

    開發(fā)以太網(wǎng)的小伙伴,對(duì)ARP(Address Resolution Protocol,地址解析協(xié)議)已經(jīng)見怪不怪。控制器啟動(dòng)階段,總線上
    的頭像 發(fā)表于 11-22 09:29 ?2188次閱讀
    以太網(wǎng)通信基礎(chǔ)知識(shí)

    ARP地址解析協(xié)議簡(jiǎn)介和基本原理

    我們平時(shí)發(fā)現(xiàn)上不了網(wǎng)的時(shí)候,或者剛剛配置好一臺(tái)電腦的時(shí)候,有一個(gè)習(xí)慣就是ping,對(duì)于ping相信讀者都比較熟悉,就是給你要ping的地址發(fā)送ICMP探測(cè)報(bào)文,看看這個(gè)目的地是否可達(dá)。對(duì)于網(wǎng)絡(luò)
    的頭像 發(fā)表于 12-18 09:49 ?3525次閱讀
    <b class='flag-5'>ARP</b>地址解析協(xié)議簡(jiǎn)介和基本原理

    STM32F429能否通過設(shè)置源地址濾過將非業(yè)務(wù)主機(jī)的arp廣播報(bào)文濾掉?

    控制器掛在了交換機(jī)上,交換機(jī)上有極高密度的arp報(bào)文造成以太網(wǎng)接收中斷無法及時(shí)處理。 看手冊(cè)中有廣播幀濾過和單播幀濾過,能否通過設(shè)置源地址濾過將非業(yè)務(wù)主機(jī)的arp廣播
    發(fā)表于 03-19 07:58

    淺談如何防治ARP病毒

    淺談如何防治ARP病毒近期, 現(xiàn)一種新的“ARP欺騙”木馬病毒互聯(lián)網(wǎng)上迅速擴(kuò)散.主要表現(xiàn)為用戶頻繁斷網(wǎng)、IE瀏覽頻繁出錯(cuò)以及一些常用軟件出現(xiàn)故障等問題。
    發(fā)表于 10-10 15:24

    【AC620 FPGA試用體驗(yàn)】以太網(wǎng)ARP幀發(fā)包實(shí)例(手動(dòng)CRC)

    名稱為arp_send.qareth_send.v為以太網(wǎng)MAC幀組包邏輯,完成以太網(wǎng)MAC幀的建立和發(fā)送。Eth_send_test.v為ARP包組包工具,并調(diào)用eth_send完成完整的ARP
    發(fā)表于 08-26 12:56

    掌握LwIP中ARP的實(shí)現(xiàn)原理與作用

    設(shè)備的存在,這些極大擴(kuò)展了可用的 IP 地址數(shù)量,設(shè)備的 MAC 地址與 IP 地址的共同作用下使得更多的設(shè)備能連接到網(wǎng)絡(luò)中。ipv6 擁有極大數(shù)量的 IP 地址,同時(shí)就沒有 ARP 報(bào)文,但是
    發(fā)表于 06-21 11:44

    ARP報(bào)文及其Lwip的實(shí)現(xiàn)

    報(bào)文,但是會(huì)有一個(gè)其他類似的功能?! ?b class='flag-5'>在實(shí)際使用中,ARP (Address Resolution Protocol)地址解析協(xié)議 就起到了溝通 IP 地址與 MAC 地址的作用。 
    發(fā)表于 10-19 11:55

    STM32F429能否通過設(shè)置源地址濾過將非業(yè)務(wù)主機(jī)的arp廣播報(bào)文濾掉?

    控制器掛在了交換機(jī)上,交換機(jī)上有極高密度的arp報(bào)文造成以太網(wǎng)接收中斷無法及時(shí)處理。 看手冊(cè)中有廣播幀濾過和單播幀濾過,能否通過設(shè)置源地址濾過將非業(yè)務(wù)主機(jī)的arp廣播
    發(fā)表于 08-07 06:46

    ARP協(xié)議攻擊及其解決方案

    由于ARP協(xié)議的設(shè)計(jì)缺陷,使得ARP協(xié)議使用的過程中存在著盜用IP地址和ARP欺騙等嚴(yán)重的安全問題。本文分析ARP攻擊的基本原理,并提出相
    發(fā)表于 06-11 10:17 ?16次下載

    地址解析協(xié)議ARP

    地址解析協(xié)議ARP 地址解析協(xié)議 ARP 是一種廣播協(xié)議,主機(jī)通過它可以動(dòng)態(tài)地
    發(fā)表于 06-09 21:53 ?1191次閱讀
    地址解析協(xié)議<b class='flag-5'>ARP</b>

    地址解析協(xié)議(ARP),地址解析協(xié)議(ARP)是什么意思

    地址解析協(xié)議(ARP),地址解析協(xié)議(ARP)是什么意思 地址解析協(xié)議 (ARP) “地址解析協(xié)議 (ARP)”是所需的 TCP/IP 標(biāo)準(zhǔn),
    發(fā)表于 04-06 09:07 ?2192次閱讀

    arp協(xié)議的作用是什么?arp協(xié)議的工作原理介紹

    地址解析協(xié)議,即ARP(Address Resolution Protocol),是根據(jù)IP地址獲取物理地址的一個(gè)TCP/IP協(xié)議。那么ARP協(xié)議有什么作用且工作原理如何
    發(fā)表于 11-02 16:14 ?6.4w次閱讀
    <b class='flag-5'>arp</b>協(xié)議的作用是什么?<b class='flag-5'>arp</b>協(xié)議的工作原理介紹

    ARP是什么意思?ARP是什么協(xié)議?ARP協(xié)議用于什么地方

    ARP是什么意思?ARP是什么協(xié)議?ARP協(xié)議用于什么地方 ARP是什么意思?ARP是什么協(xié)議?ARP
    發(fā)表于 11-10 18:00 ?2w次閱讀

    arp攻擊原理_arp攻擊怎么解決

    相信絕大數(shù)的用戶對(duì)ARP病毒都不會(huì)陌生,如果本機(jī)遭受到ARP攻擊,電腦數(shù)據(jù)就會(huì)向指定地址傳送,一般最為明顯的現(xiàn)象就是電腦無故出現(xiàn)斷網(wǎng)的情況,并且網(wǎng)絡(luò)時(shí)連時(shí)斷,會(huì)成為擾亂局域網(wǎng)中其它電腦上網(wǎng)的罪魁禍?zhǔn)住D敲?b class='flag-5'>ARP攻擊怎么解決?下面
    的頭像 發(fā)表于 01-11 16:12 ?3.1w次閱讀
    <b class='flag-5'>arp</b>攻擊原理_<b class='flag-5'>arp</b>攻擊怎么解決

    靜態(tài) ARP 表項(xiàng)的潛在問題

    計(jì)算機(jī)網(wǎng)絡(luò)中,地址解析協(xié)議(ARP)將 IP 地址轉(zhuǎn)換為物理地址(MAC 地址),以便在局域網(wǎng)中實(shí)現(xiàn)數(shù)據(jù)的傳輸。靜態(tài) ARP 表項(xiàng)的設(shè)置為網(wǎng)絡(luò)管理員提供了一種手動(dòng)控制地址映射的方式,
    的頭像 發(fā)表于 07-29 11:51 ?683次閱讀
    靜態(tài) <b class='flag-5'>ARP</b> 表項(xiàng)的潛在問題

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品