ping命令整个过程详解
轉自:http://wanicy.blog.51cto.com/509018/335207/
如果你想了解ping命令的原理,看了這篇文章,你會從對網絡一竅不通,到豁然開朗。?
先看拓樸圖:?
在這里講ping的兩情況:一種是同一網段內,一種是跨網段的ping。
一、同一網段內
首先,如果主機A,要去ping主機B,那么主機A,就要封裝二層報文,他會先查自己的MAC地址表,如果沒有B的MAC地址,就會向外發送一個ARP廣播包,如圖:?
其中ARP報文格式如下:
其中OP?
1:表示ARP請求?
2:表示ARP應答?
3:表示RARP請求?
4:表示RARP應答?
首先,交換機會收到這個報文后,交換機有學習MAC地址的功能,所以他會檢索自己有沒有保存主機B的MAC地址,如果有,就返回給主機A,如果沒有,就會向所有端口發送ARP廣播,其它主機收到后,發現不是在找自己,就紛紛丟棄了該報文,不去理會。直到主機B收到了報文后,就立即響應,我的MAC地址是多少,同時學到主機A的MAC地址,并按同樣的ARP報文格式返回給主機A。如圖:
ARP報文格式為:
這時候主機A學到了主機B的MAC地址,就把這個MAC地址封裝到ICMP協議的二層報文中向主機B發送,報文格式如下:?
當主機B收到了這個報文后,發現是主機A 的ICPM回顯請求,就按同樣的格式,返回一個值給主機A,這樣就完成了同一網段內的ping過程。
在這里,講了這么久的局域網內的PING,實際過程的發生不到1毫秒。
如果主機A要ping主機C,那么主機A發現主機C的IP和自己不是同一網段,他就去找網關轉發,但是他也不知道網關的MAC地址情況下呢?他就會向之前那個步驟一樣先發送一個ARP廣播,學到網關的MAC地址,再發封裝ICMP報文給網關路由器.。報文格式如下:
當路由器收到主機A發過來的ICMP報文,發現自己的目的地址是其本身MAC地址,根據目的的IP2.1.1.1,查路由表,發現2.1.1.1/24的路由表項,得到一個出口指針,去掉原來的MAC頭部,加上自己的MAC地址向主機C轉發。(如果網關也沒有主機C的MAC地址,還是要向前面一個步驟一樣,ARP廣播一下即可相互學到。路由器2端口能學到主機D的MAC地址,主機D也能學到路由器2端口的MAC地址。)報文格式如下:
最后,在主機C已學到路由器2端口MAC地址,路由器2端口轉發給路由器1端口,路由1端口學到主機A的MAC地址的情況下,他們就不需要再做ARP解析,就將ICMP的回顯請求回復過來。報文格式大致如下:?
總結
以上是生活随笔為你收集整理的ping命令整个过程详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mac如何格式化硬盘
- 下一篇: Photoshop如何用选择并遮住抠图