發送 ICMP 回顯請求報文給目的主機,並等待返回 ICMP 回顯應答報文.以此來判斷目的主機是否可達.shell
Ping 程序將把 ICMP 回顯請求報文中的標識符字段置成發送進程的 PID 值.而序列號從 1 開始,每發送一次新的回顯請求就加 1. 網絡
Ping 程序經過在 ICMP 回顯請求報文數據中存放發送請求時的時間值來計算往返時間,Ping 程序在收到 ICMP 回顯應答時,會用當前時間減去存放在 ICMP 報文中的時間值,便是往返時間.spa
-n 僅使用數字形式的 IP 地址,即不試圖經過 DNS 來查詢 IP 地址對應的域名,此時能夠大大減小時間..net
設置 IP 數據包中的 Time Stamp 選項,code
語法爲: -T option,其中 option 用於指定 Time Stamp 選項標誌字段的值,可取: tsonly(標誌字段取 0),tsandaddr(標誌字段取 1),tsprespec host1 [host2 [host3 [host4]]](標誌字段取 3).接口
當取 tsonly 時,ping 會首先將 IP 數據包從本機發出時的 timestamp 複製到清單中,同時更新 ptr 字段的取值.進程
當取 tsandaddr 時,ping 會首先將 IP 數據包從本機發出時,本機出口 IP 地址與 timestamp 複製到清單中,同時更新 ptr 字段的值.路由
記錄路由,此時會在 IP 首部啓用 RR 選項.以下:域名
A$ ping -R E PING E 56 bytes of data. 64 bytes from E A2 B2 C2 D2 E1 D1 C1 B1 64 bytes from E 64 bytes from E
具體過程:io
A 構建 ICMP 回顯請求報文;構建 IP 數據包,啓用 RR 選項,而且首先將出口地址(A2)填充到 IP RR 選項中.
... 期間每個路由器都將出口地址(B2,C2,D2)填充到 IP RR 選項中;
到達 E 點(此時並未將 E 的入口地址填充 IP RR 選項中);構建 ICMP 回顯應答報文;構建 IP 數據包,啓用 RR 選項,而且將接收到的 ICMP 回顯請求中的 RR 選項清單(即 A2,B2,C2,D2)與自身出口地址(E1)複製到 IP RR 選項中.
... 期間每個路由器都將出口地址(D1,C1,B1)填充到 IP RR 選項中;
到達 A 點,Ok
能夠用來顯示數據包在 IP 網絡通過的路由器的 IP 地址.經過 TTL 與 ICMP 超時報文來實現,如:
$ traceroute www.oschina.net -n # -n 使用數字的 IP 地址. traceroute to www.oschina.net (121.9.213.124), 30 hops max(最大 TTL 值), 60 byte packets 1 10.201.1.254 2.020 ms 2.537 ms 3.361 ms # TTL 爲 1.到達路由器 10.201.1.254,RTT=(2.020+2.537+3.361)/3. # 即此時會發送三個 TTL 爲1的 UDP 報文.若此時路由選擇不一致,則會令起一行,一種可能的狀況爲: # 1 10.201.1.254 2.020 ms 2.537 ms # 1 10.201.1.28 3.361 ms 代表這次路由與前 2 次不一樣. 2 10.1.1.1 0.693 ms 0.670 ms 0.627 ms 3 112.2.23.145 0.860 ms 0.856 ms 0.834 ms 4 183.213.2.9 0.825 ms 0.810 ms 1.388 ms 5 221.181.246.9 4.865 ms 4.843 ms 4.798 ms 6 112.4.9.33 2.795 ms 3.231 ms 3.222 ms 7 221.183.14.33 4.981 ms 4.349 ms 4.334 ms 8 221.183.10.154 4.319 ms 22.678 ms 4.287 ms 9 221.176.15.1 28.006 ms 26.623 ms 27.019 ms 10 221.176.15.82 25.724 ms 28.535 ms 26.420 ms 11 221.176.23.54 25.484 ms 202.97.15.189 28.805 ms 221.176.23.54 29.289 ms 12 202.97.57.189 52.467 ms 52.411 ms 48.384 ms 13 202.97.56.18 52.100 ms 52.039 ms 55.144 ms 14 183.59.14.45 48.972 ms 49.577 ms 52.114 ms 15 * * * # TTL=15,在發送報文後,若必定時間內沒有收到 ICMP 超時報文/ICMP 端口不可達報文,則打印一個星號. 16 113.98.159.150 120.599 ms 118.905 ms 117.003 ms 17 61.145.72.154 51.843 ms 56.042 ms 55.834 ms 18 121.9.213.124 51.839 ms 51.581 ms 51.010 ms
用來顯示內核 IP 路由表.IP 層根據該路由表進行選路.
$ route -n 內核 IP 路由表 目標 網關 子網掩碼 標誌 躍點 引用 使用 接口 0.0.0.0 10.201.1.254 0.0.0.0 UG 0 0 0 eth0 10.201.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
標誌字段的意義.
U 表示該路由條目可使用.
G 表示該路由條目是一個間接路由,即目的主機/目的網絡與當前主機再也不同一個物理網絡,此時須要路由器進行轉發,路由器的地址由網關指定.若沒有 G 選項,則代表該路由條目是一個直接路由.即目的主機/網絡與當前主機在同一個物理網絡中.
H 表示目標是一個主機 IP,即該路由條目用於路由到主機;不然代表目標是一個網絡,該路由條目用於路由到網絡.
D 該路由條目是由重定向報文建立的
M 該路由已被重定向報文修改