日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前置知識:mac地址

在說到ARP協議之前,需要了解MAC地址,在OSI七層模型中,第三層是網絡層,要解決的是下一跳機制確定的設備位置,具體來說就是網卡地址,MAC地址用于在網絡中唯一標示一個 網卡 ,一臺設備若有一或多個網卡,則每個網卡都需要并有一個唯一的MAC地址。

MAC地址格式

MAC地址共48位(6個字節),以十六進制表示。第1Bit為廣播地址(0)/群播地址(1),第2Bit為廣域地址(0)/區域地址(1)。前3~24位由IEEE決定如何分配給每一家制造商,且不重復,后24位由實際生產該網絡設備的廠商自行指定且不重復。

ff:ff:ff:ff:ff:ff則作為廣播地址。

01:xx:xx:xx:xx:xx是多播地址,01:00:5e:xx:xx:xx是IPv4多播地址。

ARP協議簡介

地址解析協議(英語:Address Resolution Protocol,縮寫:ARP)是一個 通過解析網絡層地址來找尋數據鏈路層地址的網絡傳輸協議 ,它在IPv4中極其重要。

ARP是通過 網絡地址 來定位MAC地址。ARP已經在很多 網路層 和 數據鏈接層 之間得以實現,包括IPv4,Chao.NET, DECnet和Xerox PARC Universal Packet(PUP)使用IEEE 802標準, 光纖分布式數據接口, X.25, 幀中繼和異步傳輸模式(ATM),IEEE 802.3和IEEE 802.11標準上IPv4占了多數流量。

在IPv6中, 鄰居發現協議 (NDP)用于代替 地址解析協議 (ARP)。

ARP功能

在以太網協議中規定,同一局域網中的一臺主機要和另一臺主機進行直接通信,必須要知道目標主機的 MAC地址 。而在TCP/IP協議中,網絡層和傳輸層只關心目標主機的IP地址。這就導致在以太網中使用IP協議時, 數據鏈路層 的以太網協議接到上層IP協議提供的數據中,只包含目的主機的IP地址。于是需要一種方法, 根據目的主機的IP地址,獲得其MAC地址。這就是ARP協議要做的事情。所謂地址解析(address resolution)就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程 。

另外,當發送主機和目的主機不在同一個局域網中時,即便知道對方的MAC地址,兩者也不能直接通信,必須經過 路由轉發 才可以。所以此時,發送主機通過ARP協議獲得的將不是目的主機的真實MAC地址,而是一臺可以通往局域網外的 路由器的MAC地址 。于是此后發送主機發往目的主機的所有幀,都將發往該路由器,通過它向外發送。這種情況稱為 委托ARP或ARP代理 (ARP Proxy)。

在點對點鏈路中不使用ARP,實際上在點對點網絡中也不使用MAC地址,因為在此類網絡中分別已經獲取了對端的IP地址。

圖解ARP協議

根據OSI數據封裝順序,發送方會自頂向下(從應用層到物理層)封裝數據,然后發送出去,如果P1 ping P2,那么發生下圖所示過程:

由于MAC是確定物理設備(網卡)唯一標識,那么這個包在數據鏈路層就會失敗,因為沒法找到對應的主機,于是有了ARP協議,說得簡單點就是根據在發送數據之前,通過IP2獲取MAC2的過程:

這時候,有了 [IP1=>IP2, MAC1=>MAC2] ,這兩個信息就可以確定主機,并且建立通訊,這時候有個問題,我們圖上是一對一的,如果這兩個主機不在一個局域網呢?離得很遠很遠,那怎么辦?

解決辦法是廣播:

當arp協議數據包進行廣播時,非目的主機接受到這個包會直接丟棄,接收到這個包的目的主機PC2會直接將信息發送給PC1,注意,由于這時候PC2接收到的包中已經有了PC1的IP地址以及MAC地址,所以不需要廣播,直接進行發送進行了。

經過上面的處理,PC1獲取了PC2的MAC2地址,就可以把數據包發送出去,之后便可以進行正常的通信。ARP的功能和實現過程是如此的簡單:它在發送方需要目標MAC地址的時及時出手,通過"一問一答"的方式獲取到特定IP對應的MAC地址,然后存儲到本地【ARP緩存表】,后續需要的話,就到這里查找。

ARP緩存表

如果我想向局域網中的某個電腦再發送一個數據,那么我的電腦就會從已有的 ARP緩存表 中尋找這個IP地址對應的物理地址的ARP表項,然后直接將數據寫入以太網數據幀中讓網卡進行發送即可,而如果沒有找到這個IP地址,那么這個數據就沒法立即發送,電腦會先在局域網上廣播一個 ARP請求 (目標MAC地址為 FF-FF-FF-FF-FF-FF ),廣播的ARP請求發出后,處于同一局域網內的所有主機都會接收到這個請求,如果目標IP地址與接收到ARP請求的主機自身IP地址吻合就會返回一個ARP應答,告訴請求者(即我的電腦)自身的MAC地址,當我的電腦收到這個ARP應答后,就去建立一個ARP表項,并且重新將數據發送出去。

ARP協議的核心就是對緩存表的操作,發送數據包的時候,查找ARP緩存表以得到對應的MAC地址,在ARP緩存表中的TTL即將過期的時候更新緩存表以保證ARP表項有效,此外ARP協議還需要不斷處理來自局域網中其他主機的ARP請求。

如果兩臺電腦不在一個網段,電腦查詢自己的路由表,知道如果想和博客主機通信則必須通過網關(gateway)來中轉, 所以會在與網關直連的網卡上請求網關的MAC地址,因為電腦要把發給PC2主機的數據先發給網關,當合法以太幀到達網關并且順利接收,網關會將數據遞交給IP層,IP層查詢路由表,找到與博客主機直連的接口 (假設是直連的,實際上肯定不是直連的),網關會發一個ARP請求到博客主機上,請求它的MAC地址,網關收到應答后將建立新的ARP表項并將開始維護ARP緩存表,然后完成最終的通信。

APR緩存表有一定的時限性,因為ARP是動態處理的,ARP表項的生存時間是一般為5-10分鐘(LwIP中默認是5分鐘),而ARP請求的等待時間是5秒鐘,當這些時間到達后,就會更新ARP表項,如果在物理鏈路層無法連通則會刪除表項, 另外電腦重啟的話ARP緩存表會被清空 。因此每個協議棧的實現都必須維護著一個定時器(超時機制)來管理ARP緩存表,在必要的時候更新及刪除ARP表項,關于怎么處理的就不多追究,有興趣的可以看LwIP的etharp_tmr源碼。

ARP報文

ARP報文格式如下:

當ARP報文封裝在以太網幀中,格式:

在ARP首部一開始的 2個字節 存儲的是硬件類型,表示要知道目標網卡的硬件類型,其中,值為 1 表示以太網地址;接下來還有 2字節 的協議類型,其中, 0x0800 表示IP協議,其他還可能是 ICMP/IGMP協議 等;接下來有 1個字節 表示硬件地址長度,指出該報文中硬件地址的長度,對于以太網硬件類型,它的值為6;還有 1字節 的協議地址長度,如果是ARP協議、IP協議等,該值為4;ARP首部最后的op字段用于記錄ARP操作的類型,分別是:

  • ARP請求,其值為1。

  • ARP應答,其值為2。

  • RARP請求,其值為3。

  • RARP應答,其值為4。

ARP協議總結
  • ARP(Address Resolution Protocol)即地址解析協議, 用于實現從 IP 地址到 MAC 地址的映射,即詢問目標IP對應的MAC地址。

  • 在網絡通信中,主機和主機通信的數據包需要依據OSI模型從上到下進行數據封裝,當數據封裝完整后,再向外發出。所以在局域網的通信中,不僅需要源目IP地址的封裝,也需要源目MAC的封裝。

  • 一般情況下,上層應用程序更多關心IP地址而不關心MAC地址,所以需要通過ARP協議來獲知目的主機的MAC地址,完成數據封裝。

來源:https://www.cnblogs.com/Courage129/p/14322842.html

分享到:
標簽:ARP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定