為什麼在ARP報文格式中會有重複字段?

時間 2021-06-06 22:35:01

1樓:

應用層協議(位址解析),不能依賴於鏈路層包頭資訊。乙個是鏈路層把訊息送到上層時可能不會把鏈路層資訊送過去,乙個是有可能鏈路層包頭是錯誤的。

而恰恰有人設計了這種可能錯誤的協議,那就是ARP Proxy

交換機可以替下級做ARP請求和應答。在傳送請求和應答時,交換機可以使用自己的MAC位址作為鏈路層包頭內容。而應用層不受影響。

2樓:雁南度

首先說下結論,這兩處並不能稱為冗餘。

這個可以從定義ARP協議的RFC文件來分析,RFC826定義了ARP協議:

RFC826中提到了在ARP協議出現之前的一些問題:

「世界就像是乙個雜亂叢林,而網路化的遊戲則更增加了這片叢林的雜亂。在網路架構的幾乎每乙個層上都存在著若干可用的協議。例如,在高層上存在著Telnet和SUPDUP協議用於遠端登入。

而為這一需求提供可信位元組流傳輸的協議,則有CHAOS協議,DOD TCP,Xerox BSP和DECnet協議。就算是較為接近硬體的邏輯傳輸層(網路層),都存在著CHAOS,DOD Internet,Xerox PUP和DECnet標準。通過乙太網資料報首部當中的乙個型別字段,10Mbit乙太網允許上述這些協議(以及其他的協議)在同一條電纜上共存。

然而,10Mbit乙太網要求相關於物理纜線的48位位址,而多數協議位址都不是48位的,也沒有與48位物理乙太網硬體位址建立什麼關聯。舉例來說,CHAOS位址僅有16位,DOD Internet位址有32位,而Xerox PUP位址則有8位。需要有乙個協議來動態發布協議-位址對和48位乙太網位址的相互對應關係。

請注意以上加粗文字。大意是:之前除了乙太網標準之外,還有CHAOS,DOD,Xerox,DEC等各種主流協議標準,這些協議都有著自己一套單獨的位址格式標準,有的位址是8位的,有的16位的,有的是32位的。

後來隨著乙太網協議的標準化,需要乙個協議能把其他所有的協議位址轉換為最主流的乙太網協議位址,於是,就有了ARP協議的出現。

再來看看RFC826定義的ARP資料報文格式:

以上說明有點難看懂,結合乙個ARP報文的抓包來看:

確實如題主所言,在乙太網幀頭(Ethernet II)裡面,已經有了Destination和Source MAC位址。

然後在乙太網幀頭裡面,封裝了ARP資料報文,在ARP資料報文中,又有了Sender和Target MAC位址。

接下來從兩個方面來解答題主的疑問:

1,乙太網二層幀頭中的Destination和Source MAC位址,與ARP報文中Sender和Target MAC位址含義並不相同,所以並不能說這兩個欄位是多餘的

當然,Source MAC位址和Sender MAC位址確實是相同的。

但是二層幀頭中的Destination MAC位址為全F,全F的MAC位址代表鏈路廣播位址。ARP報文中的Target MAC位址為全0,全0的MAC位址代表未知的位址,由於未知,只起到填充位元組段的作用。

由上可知,Destination和Target MAC位址含義完全不同。乙個具有實際的含義,代表整個廣播網路,乙個沒有實際含義,只起填充作用。

2,RFC文件的普適性決定了ARP協議報文格式的標準化和統一化。

眾所周知,RFC文件所定義的協議都是所有網路廠商所有網路協議都能夠識別都能夠相容的協議,是乙個普適的協議,ARP協議也屬於TCP/IP協議族裡面乙個協議。

那麼這種協議的一大特點就是能夠相容並識別其他協議,這就要求報文格式要標準化。不管是乙太網,還是Xerox網,還是DEC網,其進行位址解析的報文格式也要統一。乙太網使用48位的MAC位址對源目位址進行標識,也就是上面看到的Ethernet II的Destination和Source MAC address。

ARP協議的作用是把其他二層協議的位址轉換為三層IP位址。而傳送該ARP報文也可能是Xerox公司的一台裝置,使用的是Xerox公司定義的16位二層位址。這裡假設該二層位址為AA-BB,則在ARP報文中的Sender address欄位就會填充為AA-BB

之所以題主會覺得這個Sender address和Ethernet II頭部中的Source address是一樣的多餘的,是因為現在絕大部分網路介質都是乙太網,所以才會出現這種情況。

但是對於乙個標準協議來講,這種ARP報文格式除了要解析乙太網位址之外,在當時乙太網還沒成為主流時,還得兼顧其他協議的位址解析。

希望以上回答能夠解答題主的疑惑。

RFC826官網位址,供參考:http://www.

ietf.org/rfc/rfc826.txt

為什麼日語中 危 等等在口語中會變成 ?

Trocean 語音學中有種叫做 懶音 的現象。所謂懶音,就是泛指口語中為了說話快速或省力,簡化 合併一些音韻,從而偏離該詞彙的原有正確發音的現象。可以說幾乎所有語言都有不同程度的懶音現象。漢語中懶音情況比較多的大概有北京話 客家話 粵語 閩南話 吳語。以我比較熟悉的閩南話和福州話為例,比如說 電t...

為什麼在人群中會有孤獨感?

頭點自信 很正常,人生來就是孤單的,要學會接收孤單,並慢慢開始享受孤單,因為在享受孤單的同時,你能比平時更容易傾聽自己內心的聲音。 靜水流深 因為你覺得熱鬧都是別人的,而你一無所有。吃火鍋找不到一起的人,工作學習中找不到對手,或者人來人往的生活中永遠只有你乙個人。有時會覺得沒有人懂自己,其實人心深不...

你在遊戲中會因為什麼原因掛機?

之魚 玩的很菜,死了很多次,然後家長進來了不肯走,就掛機了,重新開啟遊戲時已經輸了,不知道掛機後又死了多少次,很對不起當時的隊友 折子Amanda 1.我母上大人喊吃飯或者幫她幹活嚶,不敢不聽話畢竟遊戲沒有家人重要。2.隊友素質太差噠,一般差沒事,就是那種特別特別差的那種,嚶,眼不見心不煩 3.斷網...