目錄
ICMP
1.PING
發(fā)送接收過(guò)程
ping命令詳解???????
使用技巧
2.TRACEROUTE
作用1工作原理
作用2工作原理
traceroute命令詳解
ICMP
在學(xué)習(xí)這兩個(gè)命令之前,需要先簡(jiǎn)單的了解一下ICMP網(wǎng)絡(luò)協(xié)議
ICMP 全稱(chēng)是?Internet Control Message Protocol,也就是互聯(lián)網(wǎng)控制報(bào)文協(xié)議
ICMP 主要的功能包括:確認(rèn) IP 包是否成功送達(dá)目標(biāo)地址、報(bào)告發(fā)送過(guò)程中 IP 包被廢棄的原因和改善網(wǎng)絡(luò)設(shè)置等。??????????????
在 IP 通信中如果某個(gè) IP 包因?yàn)槟撤N原因未能達(dá)到目標(biāo)地址,那么這個(gè)具體的原因?qū)?strong>由 ICMP 負(fù)責(zé)通知。
???????
對(duì)于差錯(cuò)報(bào)文類(lèi)型 3(目標(biāo)不可達(dá))還可以繼續(xù)進(jìn)行細(xì)分?
1.PING
PING (Packet Internet Groper), 因特網(wǎng)包探索器,用于測(cè)試網(wǎng)絡(luò)連接量的程序?。Ping是工作在TCP/IP網(wǎng)絡(luò)體系結(jié)構(gòu)中 應(yīng)用層的一個(gè)服務(wù)命令, 主要是向特定的目的主機(jī)發(fā)送 ICMP(Internet Control Message Protocol 因特網(wǎng)報(bào)文控制協(xié)議) Echo 請(qǐng)求報(bào)文,測(cè)試目的站是否可達(dá)及了解其有關(guān)狀態(tài) 。
在網(wǎng)絡(luò)中ping是一個(gè)十分強(qiáng)大的TCP/IP工具。它的作用主要為:
(1)用來(lái)檢測(cè)網(wǎng)絡(luò)的連通情況和分析網(wǎng)絡(luò)速度;
(2)根據(jù)域名得到服務(wù)器IP;
(3)根據(jù)ping返回的TTL值來(lái)判斷對(duì)方所使用的操作系統(tǒng)及數(shù)據(jù)包經(jīng)過(guò)路由器數(shù)量。
發(fā)送接收過(guò)程
我們模擬一下發(fā)送和接收的過(guò)程
發(fā)送方A
ping 命令執(zhí)行的時(shí)候,源主機(jī)A首先會(huì)構(gòu)建一個(gè) ICMP 回送請(qǐng)求消息數(shù)據(jù)包。
ICMP 數(shù)據(jù)包內(nèi)包含多個(gè)字段,最重要的是兩個(gè):
- 第一個(gè)是類(lèi)型,對(duì)于回送請(qǐng)求消息而言該字段為 8;
- 另外一個(gè)是序號(hào),主要用于區(qū)分連續(xù) ping 的時(shí)候發(fā)出的多個(gè)數(shù)據(jù)包。
每發(fā)出一個(gè)請(qǐng)求數(shù)據(jù)包,序號(hào)會(huì)自動(dòng)加 1。為了能夠計(jì)算往返時(shí)間 RTT,它會(huì)在報(bào)文的數(shù)據(jù)部分插入發(fā)送時(shí)間。
然后,由 ICMP 協(xié)議將這個(gè)數(shù)據(jù)包連同地址A(被ping主機(jī)IP地址)一起交給 IP 層。IP 層將以 A作為目的地址,本機(jī) IP 地址作為源地址,協(xié)議字段設(shè)置為 1 表示是 ICMP 協(xié)議,再加上一些其他控制信息,構(gòu)建一個(gè) IP 數(shù)據(jù)包。
接下來(lái),需要加入 MAC 頭。如果在本地 ARP 映射表中查找出 IP 地址A所對(duì)應(yīng)的 MAC 地址,則可以直接使用;如果沒(méi)有,則需要發(fā)送 ARP 協(xié)議查詢(xún) MAC 地址,獲得 MAC 地址后,由數(shù)據(jù)鏈路層構(gòu)建一個(gè)數(shù)據(jù)幀,目的地址是 IP 層傳過(guò)來(lái)的 MAC 地址,源地址則是本機(jī)的 MAC 地址;還要附加上一些控制信息,依據(jù)以太網(wǎng)的介質(zhì)訪問(wèn)規(guī)則,將它們傳送出去。
接收方B
主機(jī) B 收到這個(gè)數(shù)據(jù)幀后,先檢查它的目的 MAC 地址,并和本機(jī)的 MAC 地址對(duì)比,如符合,則接收,否則就丟棄。
接收后檢查該數(shù)據(jù)幀,將 IP 數(shù)據(jù)包從幀中提取出來(lái),交給本機(jī)的 IP 層。同樣,IP 層檢查后,將有用的信息提取后交給 ICMP 協(xié)議。
主機(jī) B 會(huì)構(gòu)建一個(gè) ICMP 回送響應(yīng)消息數(shù)據(jù)包,回送響應(yīng)數(shù)據(jù)包的類(lèi)型字段為 0,序號(hào)為接收到的請(qǐng)求數(shù)據(jù)包中的序號(hào),然后再發(fā)送出去給主機(jī) A。
在規(guī)定的時(shí)候間內(nèi),源主機(jī)如果沒(méi)有接到 ICMP 的應(yīng)答包,則說(shuō)明目標(biāo)主機(jī)不可達(dá);如果接收到了 ICMP 回送響應(yīng)消息,則說(shuō)明目標(biāo)主機(jī)可達(dá)。
此時(shí),源主機(jī)會(huì)檢查,用當(dāng)前時(shí)刻減去該數(shù)據(jù)包最初從源主機(jī)上發(fā)出的時(shí)刻,就是 ICMP 數(shù)據(jù)包的時(shí)間延遲。
綜上所述,ping 這個(gè)程序是使用了 ICMP 里面的 ECHO REQUEST(類(lèi)型為 8 ) 和 ECHO REPLY (類(lèi)型為 0)。
ping命令詳解
以下是MAC OS操作系統(tǒng)下ping命令的詳細(xì)應(yīng)用,不同操作系統(tǒng)間的操作和可選字段略有不同
ping [-AaDdfnoQqRrv] [-c count] [-G sweepmaxsize] [-g sweepminsize] [-h sweepincrsize]
? ? [-i wait] [-l preload] [-M mask | time] [-m ttl] [-P policy] [-p pattern]
? ? [-S src_addr] [-s packetsize] [-t timeout] [-W waittime] [-z tos] host
ping [-AaDdfLnoQqRrv] [-c count] [-I iface] [-i wait] [-l preload] [-M mask | time] [-m ttl]
? ? [-P policy] [-p pattern] [-S src_addr] [-s packetsize] [-T ttl]
? ? [-t timeout] [-W waittime] [-z tos] mcast-group
如果單獨(dú)的ping一個(gè)地址的話會(huì)不間斷地ping指定計(jì)算機(jī),直到管理員中斷。
1. ping-c的使用
通過(guò)這個(gè)命令可以自己定義發(fā)送的個(gè)數(shù),對(duì)衡量網(wǎng)絡(luò)速度都很有幫助,比如我想測(cè)試發(fā)送10個(gè)數(shù)據(jù)包的返回的平均時(shí)間為多少,最快時(shí)間為多少,最慢時(shí)間為多少
2. ping-s的使用
發(fā)送s(size)指定大小的到目標(biāo)主機(jī)的數(shù)據(jù)包。
3. ping-t的使用
不間斷地ping指定計(jì)算機(jī),直到t(timeout)。
???????其他字段的實(shí)用性并不大,一般在工作中不會(huì)用到,想了解的大佬可以自行研究
使用技巧
當(dāng)你的網(wǎng)絡(luò)出現(xiàn)故障不能訪問(wèn)某計(jì)算機(jī)如 14.215.177.39 (百度的 IP 地址之一 ) 時(shí),我們一般可采用由近及遠(yuǎn)的連通性測(cè)試來(lái)確定問(wèn)題所在。現(xiàn)假設(shè)你的 IP 是 192.168.1.2,你旁邊計(jì)算機(jī)的 IP 是 192.168.1.3,網(wǎng)關(guān)的 IP 是 192.168.1.1 ,那么過(guò)程如下:
ping 192.168.1.2?,測(cè)試自己計(jì)算機(jī)的狀態(tài),如果 OK,那么說(shuō)明本機(jī)網(wǎng)絡(luò)軟件硬件工作正常,否則,問(wèn)題在本機(jī),檢查本機(jī) TCP/IP 配置即網(wǎng)卡狀態(tài)等
ping 192.168.1.3?,測(cè)試到旁邊計(jì)算機(jī)的連通性,如果OK,那么說(shuō)明本子網(wǎng)內(nèi)部工作正常,否則,問(wèn)題在本機(jī)網(wǎng)絡(luò)出口到交換機(jī)之間,檢查本機(jī)網(wǎng)卡到交換機(jī)的連線等
ping 192.168.1.1,測(cè)試到網(wǎng)關(guān)的連通性,如果 OK,那么說(shuō)明本子網(wǎng)出口工作正常,否則,問(wèn)題在網(wǎng)關(guān),這是你無(wú)能為力的事情,報(bào)告給網(wǎng)管
ping 14.215.177.39,測(cè)試到百度的連通性,如果 OK,那就 OK,否則,問(wèn)題在網(wǎng)關(guān)以外,這也是你無(wú)能為力的事情,報(bào)告給網(wǎng)管或者李彥宏?
2.TRACEROUTE
traceroute (Windows?系統(tǒng)下是tracert) 命令利用ICMP?協(xié)議定位您的計(jì)算機(jī)和目標(biāo)計(jì)算機(jī)之間的所有路由器。TTL 值可以反映數(shù)據(jù)包經(jīng)過(guò)的路由器或網(wǎng)關(guān)的數(shù)量,通過(guò)操縱獨(dú)立ICMP 呼叫報(bào)文的TTL 值和觀察該報(bào)文被拋棄的返回信息,traceroute命令能夠遍歷到數(shù)據(jù)包傳輸路徑上的所有路由器。
traceroute 的第一個(gè)作用就是故意設(shè)置特殊的 TTL,來(lái)追蹤去往目的地時(shí)沿途經(jīng)過(guò)的路由器。
???????互聯(lián)網(wǎng)是由網(wǎng)關(guān)連接在一起的大型復(fù)雜的網(wǎng)絡(luò)硬件集合。跟蹤某人的數(shù)據(jù)包遵循的路由(或找到丟棄該數(shù)據(jù)包的錯(cuò)誤網(wǎng)關(guān))可能很困難。 Traceroute利用IP協(xié)議的“生存時(shí)間”字段,并嘗試從每個(gè)網(wǎng)關(guān)到某個(gè)主機(jī)的路徑中引發(fā)ICMP TIME_EXCEEDED響應(yīng)。
唯一必需的參數(shù)是目標(biāo)主機(jī)名或IP地址。默認(rèn)的探測(cè)數(shù)據(jù)報(bào)長(zhǎng)度為40字節(jié),但是可以通過(guò)在目標(biāo)主機(jī)名之后指定一個(gè)數(shù)據(jù)包長(zhǎng)度(以字節(jié)為單位)來(lái)增加。
獲得IP之后可通過(guò)網(wǎng)站 http://ip.cn 查看這些節(jié)點(diǎn)位于何處,是哪個(gè)公司的,大致清楚本機(jī)到百度服務(wù)器之間的路徑。
作用1工作原理
它的原理就是利用 IP 包的生存期限 從 1 開(kāi)始按照順序遞增的同時(shí)發(fā)送 UDP 包,強(qiáng)制接收 ICMP 超時(shí)消息的一種方法。
比如,將 TTL 設(shè)置 為 1,則遇到第一個(gè)路由器,就犧牲了,接著返回 ICMP 差錯(cuò)報(bào)文網(wǎng)絡(luò)包,類(lèi)型是時(shí)間超時(shí)。
接下來(lái)將 TTL 設(shè)置為 2,第一個(gè)路由器過(guò)了,遇到第二個(gè)路由器也犧牲了,也同時(shí)返回了 ICMP 差錯(cuò)報(bào)文數(shù)據(jù)包,如此往復(fù),直到到達(dá)目的主機(jī)。
這樣的過(guò)程,traceroute 就可以拿到了所有的路由器 IP。
當(dāng)然有的路由器根本就不會(huì)返回這個(gè) ICMP,所以對(duì)于有的公網(wǎng)地址,是看不到中間經(jīng)過(guò)的路由的。
traceroute 還有一個(gè)作用是故意設(shè)置不分片,從而確定路徑的 MTU。
因?yàn)橛械臅r(shí)候我們并不知道路由器的?MTU
?大小,以太網(wǎng)的數(shù)據(jù)鏈路上的?MTU
?通常是?1500
?字節(jié),但是非以外網(wǎng)的?MTU
?值就不一樣了,所以我們要知道?MTU
?的大小,從而控制發(fā)送的包大小。
作用2工作原理
首先在發(fā)送端主機(jī)發(fā)送?IP
?數(shù)據(jù)報(bào)時(shí),將?IP
?包首部的分片禁止標(biāo)志位設(shè)置為 1。根據(jù)這個(gè)標(biāo)志位,途中的路由器不會(huì)對(duì)大數(shù)據(jù)包進(jìn)行分片,而是將包丟棄。
隨后,通過(guò)一個(gè) ICMP 的不可達(dá)消息將數(shù)據(jù)鏈路上 MTU 的值一起給發(fā)送主機(jī),不可達(dá)消息的類(lèi)型為「需要進(jìn)行分片但設(shè)置了不分片位」。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-449216.html
發(fā)送主機(jī)端每次收到 ICMP 差錯(cuò)報(bào)文時(shí)就減少包的大小,以此來(lái)定位一個(gè)合適的?MTU
?值,以便能到達(dá)目標(biāo)主機(jī)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-449216.html
traceroute命令詳解
traceroute [ -adDeFISnrvx ] [ -f first_ttl ] [ -g gateway ]
[ -i iface ] [ -M first_ttl ]
[ -m max_ttl ] [ -P proto ] [ -p port ]
[ -q nqueries ] [ -s src_addr ] [ -t tos ]
[ -w waittime ] [ -A as_server ] [ -z pausemsecs ]
host [ packetlen ]
到了這里,關(guān)于MAC 網(wǎng)絡(luò)命令(PING + TRACEROUTE)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!