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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

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

ARP協(xié)議原理是什么

汽車(chē)電子技術(shù) ? 來(lái)源:物聯(lián)網(wǎng)IoT開(kāi)發(fā) ? 作者: 杰杰 ? 2023-02-14 10:10 ? 次閱讀

引言

從前一篇“網(wǎng)絡(luò)底層知識(shí)講解”文章中,我們知道計(jì)算機(jī)中會(huì)維護(hù)一個(gè)ARP緩存表,這個(gè)表記錄著IP地址與MAC地址的映射關(guān)系,我們可以通過(guò)在電腦的控制臺(tái)通過(guò)arp -a指令查看一下我們自己計(jì)算機(jī)的ARP緩存表:

圖片

ARP緩存表

那么什么是ARP協(xié)議呢?

初識(shí)ARP

ARP協(xié)議是地址解析協(xié)議(Address Resolution Protocol)是通過(guò)解析IP地址得到MAC地址的,是一個(gè)在網(wǎng)絡(luò)協(xié)議包中極其重要的網(wǎng)絡(luò)傳輸協(xié)議,它與網(wǎng)卡有著極其密切的關(guān)系,在TCP/IP分層結(jié)構(gòu)中,把ARP劃分為網(wǎng)絡(luò)層,為什么呢,因?yàn)樵?code>網(wǎng)絡(luò)層看來(lái),源主機(jī)與目標(biāo)主機(jī)是通過(guò)IP地址進(jìn)行識(shí)別的,而所有的數(shù)據(jù)傳輸又依賴(lài)網(wǎng)卡底層硬件,即鏈路層,那么就需要將這些IP地址轉(zhuǎn)換為鏈路層可以識(shí)別的東西,在所有的鏈路中都有著自己的一套尋址機(jī)制,如在以太網(wǎng)中使用MAC地址進(jìn)行尋址,以標(biāo)識(shí)不同的主機(jī),那么就需要有一個(gè)協(xié)議將IP地址轉(zhuǎn)換為MAC地址,由此就出現(xiàn)了ARP協(xié)議,所有ARP協(xié)議在網(wǎng)絡(luò)層被應(yīng)用,它是網(wǎng)絡(luò)層與鏈路層連接的重要樞紐,每當(dāng)有一個(gè)數(shù)據(jù)要發(fā)送的時(shí)候都需要在通過(guò)ARP協(xié)議IP地址轉(zhuǎn)換成MAC地址,在IP層及其以上的層次看來(lái),他們只標(biāo)識(shí)IP地址,從不跟硬件打交道,就像我一樣,我做應(yīng)用層的工作,而不會(huì)去寫(xiě)底層驅(qū)動(dòng),得專(zhuān)門(mén)有個(gè)同事將驅(qū)動(dòng)寫(xiě)完給我,我只需要知道他提供的API接口就行了,而我就專(zhuān)心處理我的工作,我相信他能把驅(qū)動(dòng)寫(xiě)好,我只需要直接調(diào)用即可。

ARP緩存表

既然已經(jīng)解釋了ARP協(xié)議的用途及重要性,那么它是如何工作的?為了實(shí)現(xiàn)IP地址MAC地址查詢(xún)與轉(zhuǎn)換ARP協(xié)議引入了ARP緩存表的概念,每臺(tái)主機(jī)或路由器在維護(hù)著一個(gè)ARP緩存表(ARP table),這個(gè)表包含IP地址到MAC地址的映射關(guān)系,表中記錄了對(duì),我稱(chēng)之為ARP表項(xiàng),如我們前面那張所展示的一樣,他們是主機(jī)最近運(yùn)行時(shí)獲得關(guān)于其他主機(jī)的IP地址MAC地址的映射,當(dāng)需要發(fā)送數(shù)據(jù)的時(shí)候,主機(jī)就會(huì)根據(jù)數(shù)據(jù)報(bào)中的目標(biāo)IP地址信息,然后在ARP緩存表中進(jìn)行查找對(duì)應(yīng)的MAC地址,最后通過(guò)網(wǎng)卡將數(shù)據(jù)發(fā)送出去。ARP緩存表包含一個(gè)壽命值(TTL,也稱(chēng)作生存時(shí)間),它將記錄每個(gè)ARP表項(xiàng)的生存時(shí)間,生存時(shí)間到了就會(huì)從緩存表中刪除。從一個(gè)表項(xiàng)放置到ARP緩存表中開(kāi)始,一個(gè)表項(xiàng)通常的生存時(shí)間一般是10分鐘嗎,當(dāng)然,這些生存時(shí)間是可以任意設(shè)置的,我們一般使用默認(rèn)即可。

一句話(huà)總結(jié)ARP協(xié)議的工作

ARP協(xié)議的主要工作就是建立、查詢(xún)、更新、刪除ARP表項(xiàng)。

ARP表項(xiàng)的建立

當(dāng)主機(jī)開(kāi)機(jī)的時(shí)候,ARP緩存表肯定是空的,那么怎么一步步建立 ARP表項(xiàng)呢?如果此時(shí)想發(fā)送數(shù)據(jù)怎么辦呢?因?yàn)闆](méi)有ARP表項(xiàng),說(shuō)明就找不到IP地址MAC地址映射關(guān)系,這樣子也就無(wú)法發(fā)送數(shù)據(jù)了。

其實(shí)協(xié)議棧的實(shí)現(xiàn)還是很強(qiáng)大的,如果沒(méi)有ARP表項(xiàng),那么主機(jī)就會(huì)去建立ARP表項(xiàng)

以我們的電腦為例,在開(kāi)機(jī)的時(shí)候,我們的電腦肯定是沒(méi)有ARP表項(xiàng)的(或者應(yīng)該說(shuō)只有路由器的ARP表項(xiàng),因?yàn)榭赡苁莿?dòng)態(tài)獲取IP地址):

圖片

7

對(duì)于局域網(wǎng)

如果我想向局域網(wǎng)中的某個(gè)電腦發(fā)送一個(gè)數(shù)據(jù),那么我的電腦就會(huì)從已有的ARP緩存表中尋找這個(gè)IP地址對(duì)應(yīng)的物理地址的ARP表項(xiàng),然后直接將數(shù)據(jù)寫(xiě)入以太網(wǎng)數(shù)據(jù)幀中讓網(wǎng)卡進(jìn)行發(fā)送即可,而如果沒(méi)有找到這個(gè)IP地址,那么這個(gè)數(shù)據(jù)就沒(méi)法立即發(fā)送,電腦會(huì)先在局域網(wǎng)上廣播一個(gè)ARP請(qǐng)求(目標(biāo)MAC地址為FF-FF-FF-FF-FF-FF),廣播的ARP請(qǐng)求發(fā)出后,處于同一局域網(wǎng)內(nèi)的所有主機(jī)都會(huì)接收到這個(gè)請(qǐng)求,如果目標(biāo)IP地址與接收到ARP請(qǐng)求的主機(jī)自身IP地址吻合就會(huì)返回一個(gè)ARP應(yīng)答,告訴請(qǐng)求者(即我的電腦)自身的MAC地址,當(dāng)我的電腦收到這個(gè)ARP應(yīng)答后,就去建立一個(gè)ARP表項(xiàng),并且重新將數(shù)據(jù)發(fā)送出去。

ARP協(xié)議的核心就是對(duì)緩存表的操作,發(fā)送數(shù)據(jù)包的時(shí)候,查找ARP緩存表以得到對(duì)應(yīng)的MAC地址,在ARP緩存表中的TTL即將過(guò)期的時(shí)候更新緩存表以保證ARP表項(xiàng)有效,此外ARP協(xié)議還需要不斷處理來(lái)自局域網(wǎng)中其他主機(jī)的ARP請(qǐng)求

對(duì)于公網(wǎng)

比如我的電腦向訪問(wèn)我的博客:https://jiejietop.cn

因?yàn)槲业牟┛椭鳈C(jī)是處于外網(wǎng)的,那么我的電腦在訪問(wèn)的時(shí)候,也是找不到緩存表的,那它只能通過(guò)網(wǎng)關(guān),讓網(wǎng)關(guān)將數(shù)據(jù)轉(zhuǎn)發(fā)到我的博客主機(jī)上,即:

圖片

8

因?yàn)槲业碾娔X與博客主機(jī)不在一個(gè)網(wǎng)段,電腦查詢(xún)自己的路由表,知道如果想和博客主機(jī)通信則必須通過(guò)網(wǎng)關(guān)(gateway)來(lái)中轉(zhuǎn),所以會(huì)在與網(wǎng)關(guān)直連的網(wǎng)卡上請(qǐng)求網(wǎng)關(guān)的MAC地址,因?yàn)殡娔X要把發(fā)給博客主機(jī)的數(shù)據(jù)先發(fā)給網(wǎng)關(guān),當(dāng)合法以太幀到達(dá)網(wǎng)關(guān)并且順利接收,網(wǎng)關(guān)會(huì)將數(shù)據(jù)遞交給IP層,IP層查詢(xún)路由表,找到與博客主機(jī)直連的接口(假設(shè)是直連的,實(shí)際上肯定不是直連的),網(wǎng)關(guān)會(huì)發(fā)一個(gè)ARP請(qǐng)求到博客主機(jī)上,請(qǐng)求它的MAC地址,網(wǎng)關(guān)收到應(yīng)答后將建立新的ARP表項(xiàng)并將開(kāi)始維護(hù)ARP緩存表,然后完成最終的通信。

ARP緩存表的超時(shí)處理

ARP是動(dòng)態(tài)處理的,現(xiàn)在總結(jié)一下:ARP表項(xiàng)的生存時(shí)間是一般為5-10分鐘(LwIP中默認(rèn)是5分鐘),而ARP請(qǐng)求的等待時(shí)間是5秒鐘,當(dāng)這些時(shí)間到達(dá)后,就會(huì)更新ARP表項(xiàng),如果在物理鏈路層無(wú)法連通則會(huì)刪除表項(xiàng)。

因此每個(gè)協(xié)議棧的實(shí)現(xiàn)都必須維護(hù)著一個(gè)定時(shí)器(超時(shí)機(jī)制)來(lái)管理ARP緩存表,在必要的時(shí)候更新及刪除ARP表項(xiàng),關(guān)于怎么處理的我們就不多追究,有興趣的可以看LwIP的etharp_tmr()源碼。

說(shuō)點(diǎn)題外話(huà):因?yàn)?code>ARP協(xié)議是一個(gè)動(dòng)態(tài)的協(xié)議,很多網(wǎng)絡(luò)攻擊都是利用ARP協(xié)議進(jìn)行的,如ARP欺騙,ARP洪水攻擊等等,而且這種攻擊是很難防御的,當(dāng)然也有辦法,直接將動(dòng)態(tài)的ARP緩存表設(shè)置為靜態(tài)就行了,但是這就違背了ARP協(xié)議動(dòng)態(tài)地址解析特性。

ARP報(bào)文

ARP的請(qǐng)求與應(yīng)答都是依賴(lài)ARP報(bào)文結(jié)構(gòu)進(jìn)行的,ARP報(bào)文是放在以太網(wǎng)數(shù)據(jù)幀中進(jìn)行發(fā)送的,下面是ARP報(bào)文的格式:

圖片

9

當(dāng)它封裝在以太網(wǎng)幀中的格式:

圖片

10

在ARP表建立前,主機(jī)并不知道目標(biāo)MAC地址,所以在一開(kāi)始的時(shí)候只能通過(guò)廣播的方式將ARP請(qǐng)求包發(fā)送出去,處于同一局域網(wǎng)的主機(jī)都能接收到廣播的數(shù)據(jù)包。所以一開(kāi)始目標(biāo)MAC地址FF-FF-FF-FF-FF-FF,而以太網(wǎng)首部的幀類(lèi)型是有多種,對(duì)于ARP數(shù)據(jù)包來(lái)說(shuō),其值為0x0806,對(duì)于IP數(shù)據(jù)報(bào)來(lái)說(shuō),其值為0x0800

在ARP首部一開(kāi)始的2個(gè)字節(jié)存儲(chǔ)的是硬件類(lèi)型,表示要知道目標(biāo)網(wǎng)卡的硬件類(lèi)型,其中,值為1表示以太網(wǎng)地址;接下來(lái)還有2字節(jié)的協(xié)議類(lèi)型,其中,0x0800表示IP協(xié)議,其他還可能是ICMP/IGMP協(xié)議等;接下來(lái)有1個(gè)字節(jié)表示硬件地址長(zhǎng)度,指出該報(bào)文中硬件地址的長(zhǎng)度,對(duì)于以太網(wǎng)硬件類(lèi)型,它的值為6;還有1字節(jié)的協(xié)議地址長(zhǎng)度,如果是ARP協(xié)議、IP協(xié)議等,該值為4;ARP首部最后的op字段用于記錄ARP操作的類(lèi)型,分別是:

  • ARP請(qǐng)求,其值為1。
  • ARP應(yīng)答,其值為2。
  • RARP請(qǐng)求,其值為3。
  • RARP應(yīng)答,其值為4。

我們只關(guān)心ARP的請(qǐng)求與應(yīng)答即可,RARP是逆地址解析協(xié)議,在這里我們就不用去了解,它在網(wǎng)絡(luò)中基本已經(jīng)被淘汰,用于主機(jī)在啟動(dòng)的時(shí)候獲得自己的IP地址。

對(duì)于ARP首部后面的四個(gè)字段分別是源MAC地址、源IP地址、目標(biāo)MAC地址、目標(biāo)IP地址,這些就是比較簡(jiǎn)單的了。

為了加深理解,我們使用wireshark網(wǎng)絡(luò)抓包工具形象地講解報(bào)文格式與內(nèi)容,關(guān)于wireshark網(wǎng)絡(luò)抓包工具的使用方式我就不做過(guò)多講解,網(wǎng)上教程一大把,打開(kāi)工具,然后抓取電腦網(wǎng)絡(luò)中的數(shù)據(jù)包。

圖片

11

圖片

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

    評(píng)論

    相關(guān)推薦

    關(guān)于ARP協(xié)議發(fā)送與接收, FPGA板子上面與PC端主機(jī)通信,出現(xiàn)以下情況怎么辦?

    關(guān)于ARP協(xié)議發(fā)送與接收:FPGA板子上面與PC端主機(jī)通信,出現(xiàn)以下情況:1:當(dāng)FPGA板子發(fā)送ARP請(qǐng)求時(shí)會(huì)與PC主機(jī)發(fā)送ARP請(qǐng)求發(fā)送線路沖突2:當(dāng)FPGA板子發(fā)送數(shù)據(jù)時(shí)與PC主機(jī)
    發(fā)表于 03-26 15:02

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

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

    基于ARP協(xié)議的非法入網(wǎng)檢測(cè)與阻止技術(shù)研究

    介紹ARP 協(xié)議、Windows 系統(tǒng)中ARP 實(shí)現(xiàn),設(shè)計(jì)了一個(gè)非法入網(wǎng)檢測(cè)及阻止系統(tǒng)。該系統(tǒng)通過(guò)ARP 掃描,實(shí)時(shí)檢測(cè)非法主機(jī)(未知主機(jī))接入內(nèi)部網(wǎng)絡(luò)的企圖,并通過(guò)發(fā)送沖突包和其
    發(fā)表于 06-11 16:28 ?15次下載

    基于ARP協(xié)議的攻擊及其防御方法分析

    ARP 協(xié)議欺騙是網(wǎng)絡(luò)欺騙的行為之一,它使得攻擊者可以重定向一個(gè)以太網(wǎng)上的IP 數(shù)據(jù)報(bào)以取得目標(biāo)主機(jī)的信任。文章在分析ARP 協(xié)議工作原理、安全缺陷、攻擊原理和攻擊方式的基
    發(fā)表于 09-01 16:11 ?10次下載

    高可用性群集系統(tǒng)ARP協(xié)議問(wèn)題研究

    群集系統(tǒng)常用作高可靠性服務(wù)器,應(yīng)用于關(guān)鍵網(wǎng)絡(luò)計(jì)算領(lǐng)域。但是,由某些型號(hào)的計(jì)算機(jī)構(gòu)成的群集系統(tǒng)在網(wǎng)絡(luò)通信方面存在ARP 協(xié)議缺陷,當(dāng)服務(wù)進(jìn)程從主用節(jié)點(diǎn)切換到冗余備份結(jié)
    發(fā)表于 01-27 13:35 ?5次下載

    ARP協(xié)議動(dòng)態(tài)交互仿真系統(tǒng)的設(shè)計(jì)

    該系統(tǒng)實(shí)現(xiàn)了ARP 協(xié)議的動(dòng)態(tài)交互仿真,完成了ARP協(xié)議整個(gè)工作過(guò)程的模擬實(shí)現(xiàn),通過(guò)動(dòng)態(tài)交互操作,能夠讓學(xué)習(xí)者更輕松地學(xué)習(xí)和掌握ARP
    發(fā)表于 03-31 11:07 ?2248次閱讀
    <b class='flag-5'>ARP</b><b class='flag-5'>協(xié)議</b>動(dòng)態(tài)交互仿真系統(tǒng)的設(shè)計(jì)

    ARP協(xié)議分析

    ARP,全稱(chēng)Address Resolution Protocol,中文名為地址解析協(xié)議,它工作在數(shù)據(jù)鏈路層,在本層和硬件接口聯(lián)系,同時(shí)對(duì)上層提供服務(wù)。IP數(shù)據(jù)包常通過(guò)以太網(wǎng)發(fā)送,以太網(wǎng)設(shè)備并不識(shí)別32位IP地
    發(fā)表于 05-14 15:37 ?0次下載

    51單片機(jī)網(wǎng)絡(luò)通信及ARP協(xié)議

    51單片機(jī)網(wǎng)絡(luò)通信及ARP協(xié)議
    發(fā)表于 08-31 09:07 ?18次下載
    51單片機(jī)網(wǎng)絡(luò)通信及<b class='flag-5'>ARP</b><b class='flag-5'>協(xié)議</b>

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

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

    arp協(xié)議的缺點(diǎn)介紹及防范

     地址解析協(xié)議,即ARP(Address Resolution Protocol),是根據(jù)IP地址獲取物理地址的一個(gè)TCP/IP協(xié)議。主機(jī)發(fā)送信息時(shí)將包含目標(biāo)IP地址的ARP請(qǐng)求廣播到
    發(fā)表于 11-02 16:28 ?6709次閱讀

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

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

    arp協(xié)議屬于哪一層_arp協(xié)議的主要功能

    arp協(xié)議在TCP/IP模型中屬于IP層(網(wǎng)絡(luò)層),在OSI模型中屬于鏈路層。arp協(xié)議即地址解析協(xié)議,是根據(jù)IP地址獲取物理地址的一個(gè)TC
    發(fā)表于 01-11 15:51 ?4.1w次閱讀

    ARP協(xié)議的工作原理_arp攻擊防御措施

    ARP是“address resolution protocol”的縮寫(xiě),全稱(chēng)“地址解析協(xié)議”。在網(wǎng)絡(luò)通信中,通信主機(jī)之間直接通過(guò)IP地址進(jìn)行相互識(shí)別,而數(shù)據(jù)傳輸必須要依靠網(wǎng)卡的物理地址進(jìn)行尋址。ARP的主要作用就是將IP地址轉(zhuǎn)
    的頭像 發(fā)表于 01-11 16:31 ?5431次閱讀

    FPGA以太網(wǎng)-ARP協(xié)議介紹

    ARP協(xié)議是地址解析協(xié)議,在網(wǎng)絡(luò)中有MAC地址和IP地址之分,IP地址可以隨著網(wǎng)絡(luò)拓?fù)涞母淖兌淖儯鳰AC地址是不會(huì)改變的。
    發(fā)表于 07-06 09:23 ?1051次閱讀
    FPGA以太網(wǎng)-<b class='flag-5'>ARP</b><b class='flag-5'>協(xié)議</b>介紹

    ARP協(xié)議的工作流程

    通過(guò)ARP協(xié)議知道對(duì)方的mac地址,已經(jīng)知道對(duì)方ip地址的情況下,不知道m(xù)ac地址。定義了一個(gè)ARP協(xié)議來(lái)解決這個(gè)問(wèn)題。
    的頭像 發(fā)表于 07-10 17:29 ?2447次閱讀
    <b class='flag-5'>ARP</b><b class='flag-5'>協(xié)議</b>的工作流程