在局域網(wǎng)上運行ping程序的結(jié)果輸出一般有如下格式: 當返回ICMP回顯應(yīng)答時,要打印出序列號和TTL,并計算往返時間(TTL位于IP首部中的生存時間字段。當前的BSD系統(tǒng)中的ping程序每次收到回顯應(yīng)答時都打印出收到的TTL—有些系統(tǒng)并不這樣做。我們將在第8章中通過traceroute
在局域網(wǎng)上運行ping程序的結(jié)果輸出一般有如下格式:
當返回ICMP回顯應(yīng)答時,要打印出序列號和TTL,并計算往返時間(TTL位于IP首部中的生存時間字段。當前的BSD系統(tǒng)中的ping程序每次收到回顯應(yīng)答時都打印出收到的TTL—有些系統(tǒng)并不這樣做。我們將在第8章中通過traceroute程序來介紹TTL的用法)。從上面的輸出中可以看出,回顯應(yīng)答是以發(fā)送的次序返回的(0,1,2等)。ping程序通過在ICMP報文數(shù)據(jù)中存放發(fā)送請求的時間值來計算往返時間。當應(yīng)答返回時,用當前時間減去存放在ICMP報文中的時間值,即是往返時間。注意,在發(fā)送端bsdi上,往返時間的計算結(jié)果都為0ms。這是因為程序使用的計時器分辨率低的原因。BSD/386版本0.9.4系統(tǒng)只能提供10ms級的計時器)。查看tcpdump輸出時會發(fā)現(xiàn),ICMP回顯請求和回顯應(yīng)答的時間差在4ms以下。<br>
<br>
輸出的第一行包括目的主機的IP地址,盡管指定的是它的名字(svr4)。這說明名字已經(jīng)經(jīng)過解析器被轉(zhuǎn)換成IP地址了。我們將在第14章介紹解析器和DNS?,F(xiàn)在,我們發(fā)現(xiàn),如果敲入ping命令,幾秒鐘過后會在第1行打印出IP地址,DNS就是利用這段時間來確定主機名所對應(yīng)的IP地址。<br>
本例中的tcpdump輸出如圖7-2所示。從發(fā)送回顯請求到收到回顯應(yīng)答,時間間隔始終為3.7ms。還可以看到,回顯請求大約每隔1秒鐘發(fā)送一次。通常,第1個往返時間值要比其他的大。這是由于目的端的硬件地址不在ARP高速緩存中
的緣故。正如我們在第4章中看到的那樣,在發(fā)送第一個回顯請求之前要發(fā)送一個ARP請求并接收ARP應(yīng)答,這需要花費幾毫秒的時間。下面的例子說明了這一點:
第1個RTT中多出的3ms很可能就是因為發(fā)送ARP請求和接收ARP應(yīng)答所花費的時間。<br>
這個例子運行在sun主機上,它提供的是具有微秒級分辨率的計時器,但是ping程序只能打印出毫秒級的往返時間。在前面運行于BSD/3860.9.4版上的例子中,打印出來的往返時間值為0ms,這是因為計時器只能提供10ms的誤差。下面的例子是BSD/3861.0版的輸出,它提供的計時器也具有微秒級的分辨率,因此,ping程序的輸出結(jié)果也具有較高的分辨率。
眾信咨詢:互聯(lián)網(wǎng)資質(zhì)代理誠信品牌