轉(zhuǎn)載自:ping命令整個(gè)過(guò)程詳解 略有增刪改。 在這里講ping的兩情況:一種是同一網(wǎng)段內(nèi),一種是跨網(wǎng)段的ping。
一、同一網(wǎng)段內(nèi)
二、不同網(wǎng)段內(nèi) 如果主機(jī)A要ping主機(jī)C,那么主機(jī)A發(fā)現(xiàn)主機(jī)C的IP和自己不是同一網(wǎng)段,他就去找網(wǎng)關(guān)轉(zhuǎn)發(fā),但是他也不知道網(wǎng)關(guān)的MAC地址情況下呢?他就會(huì)向之前那個(gè)步驟一樣先發(fā)送一個(gè)ARP廣播,學(xué)到網(wǎng)關(guān)的MAC地址,再發(fā)封裝ICMP報(bào)文給網(wǎng)關(guān)路由器.。ICMP報(bào)文格式如下(目的MAC是路由器的網(wǎng)卡地址,目的IP還是主機(jī)C的ip。這也進(jìn)一步反應(yīng)了鏈路層只管一跳,而網(wǎng)絡(luò)層管host-to-host): 當(dāng)路由器收到主機(jī)A發(fā)過(guò)來(lái)的ICMP報(bào)文,發(fā)現(xiàn)其目的地址是本身MAC地址,根據(jù)目的的IP2.1.1.1,查路由表,發(fā)現(xiàn)2.1.1.1/24的路由表項(xiàng),得到一個(gè)出端口,去掉原來(lái)的MAC頭部,加上自己的MAC地址向主機(jī)C轉(zhuǎn)發(fā)。(如果網(wǎng)關(guān)也沒(méi)有主機(jī)C的MAC地址,還是要向前面一個(gè)步驟一樣,ARP廣播一下即可相互學(xué)到。路由器2端口能學(xué)到主機(jī)D的MAC地址,主機(jī)D也能學(xué)到路由器2端口的MAC地址。)報(bào)文格式如下(源MAC是路由器網(wǎng)卡地址,目的MAC是主機(jī)C的地址): 最后,在主機(jī)C已學(xué)到路由器2端口MAC地址,路由器2端口轉(zhuǎn)發(fā)給路由器1端口,路由1端口學(xué)到主機(jī)A的MAC地址的情況下,他們就不需要再做ARP解析,就將ICMP的回顯請(qǐng)求回復(fù)過(guò)來(lái)。報(bào)文格式大致如下: 路由器收到ICMP響應(yīng)后,修改ICMP包的目的MAC為00-50-56-C0-00-01,源MAC為00-50-56-C0-00-02,源IP和目的IP保持不變。 |
|
來(lái)自: leexingyuan5 > 《路由學(xué)習(xí)》