作者 主題: 有關arp 協定問題  (閱讀 7187 次)

0 會員 與 1 訪客 正在閱讀本文。

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
有關arp 協定問題
« 於: 2001-12-12 22:22 »
看書不太懂課本所言,上網找資料看到網頁上所提的亦看不懂,求救一下了.
1.某一部機器是如何知道的ip 的
2.arp 是屬於那一層的通訊協定
3.每一層的協定head的內涵都不一樣,為什麼廣播出去對方機器能夠判讀呢(在實體層接到的是一串資料串而已,怎麼知道要以arp 的格式來判讀

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
有關arp 協定問題
« 回覆 #1 於: 2001-12-13 00:07 »
您好:
     
     比如在一個ethernet的網路下,兩台主機需要溝通,當然得知道對方的IP,如何知道對方的IP呢?就是通過ARP協定,怎麼說呢:在傳輸資料時,其實是以48byte的乙太網路位址決定的(不是IP),而如何在ip位址及乙太網路中轉換呢?就是利用ARP。ARP應該是屬於實體層,在廣播時,乙太網路封包中,會用掉一些位置來指出資料的類型(如arp),所以接收端就可以知道該封包的是要求。
     小弟記的  netman兄有寫過這個協定的簡介文章,或陰z應開看看那裡,因為小弟不敢保證完全正確。

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
有關arp 協定問題
« 回覆 #2 於: 2001-12-13 09:52 »
1.某一部機器是如何知道的ip 的
A1.在同一個碰撞領域的ethernet中,一部機器與另一部機器通訊,如:1.2.3.4 ping 1.2.3.5時,1.2.3.4會先廣播一個帶有自己的MAC地址與IP地址加上目的地的IP地址(1.2.3.5)的封包去尋找1.2.3.5,此時所有的機器皆會接到此封包,因為此封包的MAC目的地位址為"任何人",但因目的地的IP位址不是自己而不理睬此封包,唯獨1.2.3.5發現IP目的地為只是自己而將此封包接收並發出回應,回應時封包的目的地MAC則指定為1.2.3.4的MAC位址而IP即為1.2.3.4,當然仍然有自己(來源地)的MAC與IP,從此這兩機器就可溝通了

2.arp 是屬於那一層的通訊協定
2~3之間吧,我猜
3.每一層的協定head的內涵都不一樣,為什麼廣播出去對方機器能夠判讀呢(在實體層接到的是一串資料串而已,怎麼知道要以arp 的格式來判讀
看不太懂題目,一個封包都包括了各層的內容,某個機制或協定需要哪一層的header,就會去讀取該層的內容並不會有什麼判讀的問題,所謂protocol協定,就是格式一定,放諸天下皆準的

Anonymous

  • 訪客
有關arp 協定問題
« 回覆 #3 於: 2001-12-13 13:08 »

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
有關arp 協定問題
« 回覆 #4 於: 2001-12-13 21:20 »
關於 ARP 封包傳送問題我在網路上找到了接近的答案了,不夠也感謝各位先進的解答,雖沒有解答我的疑惑。大意係以乙太網路封包中乙太型態(ethertype)所存放的內容判別其上一層要交由那一個網路協定的解封包程式判讀,其值為0X0806時表示為arp封包,據此丟給arp 協定的程式判讀就知其所要玩的把戲為何了。另第一個問題可能語意上有些問題吧,至目前為此尚不知道答案,即某一部機器自己的MAC(實體位址)與其IP 是如何binding 的,在回答arp封包請求時,不是要把自己的實體位址填入嗎?自己本身如何知道自己的IP呢?不管是動態或靜態IP都可在WINIPCFG 找到對應,我的問題即是它們是怎麼配對起來的。

Anonymous

  • 訪客
有關arp 協定問題
« 回覆 #5 於: 2001-12-13 22:39 »
機器必須有一套機制知道自己的 IP 的﹐否則它根本不知道給自己的封包是否需要接收﹐也沒辦法在 IP 封包中寫入自己的 IP 位址。

如何配對沒必要是硬性的﹐
一個 MAC 上面可以綁上多個 IP (所謂的 IP Alias 或 Proxy ARP)﹔
而一個 IP 也可以綁在多個 MAC (多張網路卡) 上面﹐但這樣的話﹐會造成 IP 位址衝突﹐而且在路由判斷上會有問題而已~~

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
有關arp 協定問題
« 回覆 #6 於: 2001-12-23 14:21 »
會有任何一種作業系統裝了網卡卻不知道自己的ip是什麼的嗎?


若您設靜態的ip,就是固定那一個,
若您打開dhcp,且區網內有dhcp伺服器,還是會獲得一動態,
若您什麼都不設,且裝了網卡也不連上線,若是windows作業系統,也會自己給它一個ip:169.254.xx.xx

Anonymous

  • 訪客
有關arp 協定問題
« 回覆 #7 於: 2001-12-23 17:43 »
有的﹐例如 diskless 的網路卡﹐就不知道自己的 IP 是多少﹐必須透過 RARP 來獲得。

ARP 是一種底層的協定﹐各 OS 在上層如何實作﹐甚至完全採用另一套協定來實作﹐都是可以的。尤其是 MS 的系統﹐釵h東西都是‘獨門秘方’~~
您要知道﹐TCP/IP 是在 UNIX 系統上面開發出來的﹐而 ARP 正是 TCP/IP 家族中的成員之一。而 MS 的系統﹐不用 TCP/IP 也能溝通啦。


p.s.

可以請問一下﹕閣下有設定過 diskless 系統嗎﹖

如果您手邊有 linux 系統(最好是 RH7.1)﹐也有 bootrom 的網路卡﹐不妨參考如下網頁做做看﹕
http://www.study-area.org/linux/servers/linux_dhcp.htm

然後在 server 那邊抓抓封包﹐看看 RARP 是怎麼一個運作過程的。