日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

写给非网工的CCNA教程(4)聊聊ping命令后的原理(续)

發(fā)布時(shí)間:2023/12/10 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 写给非网工的CCNA教程(4)聊聊ping命令后的原理(续) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? 前文我們講解了ARP協(xié)議、IP協(xié)議、ICMP協(xié)議,有了這些基礎(chǔ),咱們再來講解ping命令后面的原理,就簡單多了。我們以一個(gè)例子來講解,如下圖所示,PC-A【10.74.97.116 /28】要去ping PC-B【10.74.97.125 /28】,看是否能ping通。A與B之間是通過網(wǎng)線直連,這也是把問題簡單話,現(xiàn)實(shí)中直連的場景還是畢竟少,不過本文是講解ping的原理,所以其他的簡化,突出重點(diǎn)。

1 前提

? ? 在分析之前,我們先得搞清楚幾點(diǎn):

(1)對A而言,自己的IP地址、子網(wǎng)掩碼、MAC地址這些信息都是已知的;

(2)對A而言,B的IP地址是知道的,A要去ping B,肯定會知道B的IP地址,要不然ping誰去;

(3)對A而言,B的子網(wǎng)掩碼、MAC地址這些都是不知道的,沒人告訴它。

? ? 對B而言,也是一樣。我們只分析A發(fā)送數(shù)據(jù)給B的過程,至于B回復(fù)數(shù)據(jù)給A的過程,道理是一樣的。讀者理解A到B的數(shù)據(jù)發(fā)送原理后,可以自己試著分析B回復(fù)數(shù)據(jù)給A的過程。

?

2?路由表簡單介紹

? ? 任何需要通過IP地址通信的設(shè)備,都會在本地維持這一個(gè)路由表。比如Windows可以通過命令【route print -4】查看路由表,Linux可以通過命令【ip route】查看。當(dāng)一個(gè)設(shè)備的接口配置了IP地址并且接口狀態(tài)是up的時(shí)候,會在本地路由表中,生成幾條路由表項(xiàng)。

? ? 例如本例中的PC-A(Windows),給網(wǎng)卡配置了IP地址【10.74.97.114 /24】后,會在路由表中生成以下表項(xiàng)。

C:\Users\wenca>route print -4Network Destination Netmask Gateway Interface Metric 10.74.97.112 255.255.255.240 On-link 10.74.97.116 291 10.74.97.116 255.255.255.255 On-link 10.74.97.116 291 10.74.97.127 255.255.255.255 On-link 10.74.97.116 291

? ? 可以發(fā)現(xiàn)A中路由表多了三條表項(xiàng),第一條是到此IP所在網(wǎng)段(子網(wǎng))的路由,第二條是到此IP自己的路由,第三條是到此IP對應(yīng)的網(wǎng)段廣播地址的路由。而且三條路由的Gateway都是On-link,表示這這三條都是直連路由。也就是去往這三個(gè)目的地,直接二層封包即可,不需要先把數(shù)據(jù)包給到Gateway,讓Gateway去轉(zhuǎn)發(fā)。

? ? 本例中的PC-B(Linux),網(wǎng)卡配置了IP地址【10.74.97.125 /24】,對應(yīng)的路由表如下所示。

root@wenca-dell:~$ ip route 10.74.97.112/28 dev eth0 proto kernel scope link src 10.74.97.116

?

3?原理分析

? ? 在A【ip地址為10.74.97.116 /28】的命令行下,敲入【ping 10.74.97.125】,如下所示。

C:\Users\wenca>ping 10.74.97.125

(1)A查找路由表:找去往B的路由

? ? A根據(jù)目的IP地址【10.74.97.125】,去查找自己的路由表。發(fā)現(xiàn)該地址【10.74.97.125】匹配了路由表知道第一條,而是找到對應(yīng)的Gateway【On-link】,表示A自己與B在同一個(gè)網(wǎng)段。

(2)A查找ARP表:找B的MAC地址

? ? A發(fā)現(xiàn)B與自己在同一個(gè)網(wǎng)段,于是用B的IP地址,去找ARP表,沒有找到B的IP地址對應(yīng)的MAC地址。? ? ? ??

? ? 然后A發(fā)送ARP廣播請求,詢問【10.74.97.125】對應(yīng)的MAC地址是多少,如下圖所示。

? ? B收到此廣播后回復(fù)此ARP廣播,告訴A自己(B)的MAC地址多少,如下圖所示。

? ? A收到B的回復(fù)后,把B的IP地址和MAC地址映射關(guān)系寫到ARP表中,方便將來的查詢,如下所示。

C:\Users\wenca>arp -aInterface: 10.74.97.116 --- 0x5Internet Address Physical Address Type10.74.97.125 00-50-56-89-0a-1b dynamic

(3)A發(fā)送ICMP請求給B,B回復(fù)

? ? 上面完成后,A已經(jīng)有了B的IP地址和MAC地址,發(fā)送ICMP請求包,如下圖所示。

? ? B收到此ICMP請求包以后,準(zhǔn)備回復(fù)此ICMP請求,但是沒有A的MAC,而是發(fā)送ARP廣播,請求A的MAC。

? ? A收到此ARP廣播后,回復(fù)此請求,如下圖所示(我的抓包過濾了A的MAC,因此不會看到B的ARP廣播)。

? ? B收到A的ARP響應(yīng)報(bào)文后,知道了A的IP地址和MAC地址,于是發(fā)送ICMP響應(yīng)報(bào)文,如下圖所示。

? ? 至于后面的NO.6--NO.11,是因?yàn)閃indwos上執(zhí)行ping命令,默認(rèn)會發(fā)送4此ICMP請求,如下圖所示。

? ? 可以看到在后面的3此ICMP交互期間,是沒有ARP包的,那是因?yàn)锳和B已經(jīng)知道了對方的IP和MAC,記錄在各自的ARP表中。

(4)在A的命令行界面下可以看到結(jié)果如下所示。

C:\Users\wenca>ping 10.74.97.125Pinging 10.74.97.125 with 32 bytes of data: Reply from 10.74.97.125: bytes=32 time=5ms TTL=128 Reply from 10.74.97.125: bytes=32 time=2ms TTL=128 Reply from 10.74.97.125: bytes=32 time=6ms TTL=128 Reply from 10.74.97.125: bytes=32 time=5ms TTL=128

總結(jié)

以上是生活随笔為你收集整理的写给非网工的CCNA教程(4)聊聊ping命令后的原理(续)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。