我們?cè)跍y(cè)試網(wǎng)絡(luò)ping是icmp報(bào)文的一種應(yīng)用。用來(lái)測(cè)試網(wǎng)絡(luò)中各設(shè)備的連通性。在這幾天的實(shí)驗(yàn)課上,網(wǎng)際電腦又用到了這個(gè)非常常用的命令,但是這次我發(fā)現(xiàn)了一些以前沒(méi)有太注意的地方,那就是我在Ping不同的地址時(shí)所返回的TTL值是不同的。如下:
C:\Documents and Settings\Administrator>ping 118.123.116.163
Pinging 118.123.116.163 with 32 bytes of data:
Ping statistics for 118.123.116.163:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 79ms, Maximum = 81ms, Average = 80ms
.C:\Documents and Settings\Administrator>ping 171.92.208.179
Pinging 171.92.208.179 with 32 bytes of data:
Ping statistics for 171.92.208.179:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 74ms, Maximum = 77ms, Average = 75ms
在這里我要說(shuō)明的是不同的Rpely消息中的不同的TTL值的由來(lái)。TTL 是數(shù)據(jù)包為了防止數(shù)據(jù)包在網(wǎng)絡(luò)中無(wú)限制的循環(huán),而設(shè)定的網(wǎng)絡(luò)數(shù)據(jù)包在網(wǎng)絡(luò)傳輸中最大的轉(zhuǎn)發(fā)次數(shù)。因?yàn)槊哭D(zhuǎn)發(fā)一次在路由器,就會(huì)轉(zhuǎn)向下一跳,所以,又通常稱(chēng)為最大跳數(shù)。具體的含義是這樣的。我們本地機(jī)器會(huì)發(fā)出一個(gè)數(shù)據(jù)包,數(shù)據(jù)包經(jīng)過(guò)一定數(shù)量的路由器傳送到目的主機(jī),但是由于很多的原因,一些數(shù)據(jù)包不能正常傳送到目的主機(jī),那如果不給這些數(shù)據(jù)包一個(gè)生存時(shí)間的話,這些數(shù)據(jù)包會(huì)一直在網(wǎng)絡(luò)上傳送,導(dǎo)致網(wǎng)絡(luò)開(kāi)銷(xiāo)的增大。當(dāng)數(shù)據(jù)包傳送到一個(gè)路由器之后,TTL就自動(dòng)減1,如果減到0了還是沒(méi)有傳送到目的主機(jī),那么就自動(dòng)丟失。例如:你定義了數(shù)據(jù)包的TTL為64.那么在你的數(shù)據(jù)包被轉(zhuǎn)發(fā)了64次,也就是經(jīng)過(guò)了63個(gè)中間路由器后,還沒(méi)有到達(dá)目的網(wǎng)絡(luò),那么,你的電腦就會(huì)顯示Requet time out (請(qǐng)求超時(shí))了。例如:你定義了數(shù)據(jù)包的TTL為64.那么在你的數(shù)據(jù)包被轉(zhuǎn)發(fā)了64次,也就是經(jīng)過(guò)了63個(gè)中間路由器后,還沒(méi)有到達(dá)目的網(wǎng)絡(luò),那么,你的電腦就會(huì)顯示Requet time out (請(qǐng)求超時(shí))了。這就是TTL的意思了
在此補(bǔ)充一點(diǎn),由于不同的操作系統(tǒng)所定義的TTL是不同的,一般有如下規(guī)則:默認(rèn)情況下,Linux系統(tǒng)的TTL值為64或255,Windows NT/2000/XP系統(tǒng)的TTL值為128,Windows 98系統(tǒng)的TTL值為32,UNIX主機(jī)的TTL值為255。