兩個不同網(wǎng)段的IP地址能ping通,但是為什么不能在ARP上找到另一個的MAC地址?
網(wǎng)友解答: 要理解這個問題的原因,首先要了解下OSI七層模型he TCP/IP協(xié)議族的對應(yīng)關(guān)系,請參考下表內(nèi)容:從上圖中可以看到,IP協(xié)議是工作在網(wǎng)絡(luò)層,而ARP協(xié)議(將網(wǎng)絡(luò)層的IP地址
要理解這個問題的原因,首先要了解下OSI七層模型he TCP/IP協(xié)議族的對應(yīng)關(guān)系,請參考下表內(nèi)容:
從上圖中可以看到,IP協(xié)議是工作在網(wǎng)絡(luò)層,而ARP協(xié)議(將網(wǎng)絡(luò)層的IP地址解析為數(shù)據(jù)鏈路層的MAC地址尋址)是工作在數(shù)據(jù)鏈路層的。
根據(jù)數(shù)據(jù)轉(zhuǎn)發(fā)原理,兩個不同網(wǎng)段的IP地址要進行通信,首先進行尋址,例如下圖中的PC1要和PC3通信,PC1上先查找ARP表沒有發(fā)現(xiàn)PC3的MAC地址,廣播后也沒有找到PC3,PC1首先要把自己的數(shù)據(jù)發(fā)往自己的網(wǎng)關(guān)設(shè)備R1,R1根據(jù)自己的路由表發(fā)現(xiàn)可以通過R2轉(zhuǎn)發(fā),于是數(shù)據(jù)到了R2。R2又根據(jù)自己的路由表發(fā)現(xiàn)目的IP可以通過R3轉(zhuǎn)發(fā),數(shù)據(jù)到達R3,最后R3根據(jù)自己的ARP表直接轉(zhuǎn)發(fā)到PC3,這就是一次簡單的IP路由。
通過上圖我們可以看到,不同網(wǎng)段的IP地址通信,需要用到路由的概念。而支持路由的設(shè)備一般是路由器或者三層交換機,這兩種設(shè)備是可以隔離廣播的(設(shè)備不同類型的接口下是不同的廣播域)。當PC1想要通過ARP協(xié)議來查找PC3的MAC地址的時候發(fā)送的廣播報文在R1處就被隔絕了,不會得到R1的響應(yīng)。而局域網(wǎng)傳輸是不通過IP地址尋址的,而是通過MAC地址,MAC地址的學(xué)習(xí)就是通過ARP協(xié)議來學(xué)習(xí)的,既然路由器都把ARP廣播報文隔絕了,那PC1自然就學(xué)習(xí)不到PC3的MAC地址了。
以上就是個人的分析,如有不當之處還請留言指正!
網(wǎng)友解答:只有在局域網(wǎng)中通訊才會發(fā)送arp
你所說的相同網(wǎng)段,實際上就是指同一個局域網(wǎng),所以在同一個局域網(wǎng)內(nèi)通訊,會有arp會得到對方的麥克地址
舉例說明,比如當你要和老王通訊,你發(fā)現(xiàn)你和老王是在一個公司的,就相當于在同一個網(wǎng)段,這個時候你并不知道老王在哪個工位上坐著,你就會發(fā)一個arp請求,聲這個過程就好像你在大喊道: 老王,你在哪里?而老王聽到之后就會給你個回復(fù),說im here
如果是跨網(wǎng)段通訊,那么靠的是路由這個功能
你所說的不同網(wǎng)段就是指通過了路由器。這個時候你是通過網(wǎng)關(guān),也就是路由器代理和對方通訊的,所以你只有網(wǎng)關(guān)的mac地址。
舉例說明,比如當你要和老劉同學(xué),你發(fā)現(xiàn)老劉和你不是同一個公司的,就相當于跨網(wǎng)段,這個時候你要通過路由器,也就是說你要通過公司的外聯(lián)給你捎個話給別人。這個時候你只會大聲喊道,網(wǎng)關(guān)路由器,你在哪里?幫我把這個話帶給老劉
也就是說,你并不知道老劉在他所在的公司的具體哪個座位上坐著,這個過程是由你的網(wǎng)關(guān)幫你完成的,所以你沒有老劉的物理地址。