2011年12月20日 星期二

TTL之大小與網路節點數量

上個月跟老婆看了一部很棒的電影In Time,中文翻成"鐘點戰",描述每個人的生命在過了25歲之後,就開始跟手上的數字拔河,數字歸零時就是生命的終點!!

就像在網路我們透過Ping,去追查一個端點的TTL(Time to Live)值一樣,每經過一個網路節點(通常是Ruoter),其TTL值就會扣掉"1",一直到扣到TTL值為零時,該封包就像鐘點戰裡的人類一樣,代表生命的結束。

雖說透過TTL的大小可以判斷經過的節點,但…數值大就代表經過的節點少、數值小就代表經過的節點多嗎???

以下圖來說,從內部網路Ping到中華電信DNS主機的TTL值為: 247

而下圖,是內部網路節點的Ping資訊,TTL值是:63

如果我們單純以TTL值來判斷,那上面到DNS的值為247 > 63,代表連線到中華電信所經過的節點比較少!!

這是錯誤的判斷!!

原因是因為TTL的初始值是由對點,即您的目的地所決定的。這個初始值可以是32,64,128,255等變化,依不同的系統與設備有不同的TTL初始值,這裡可以看到一些初始TTL值:

所以當我們在判斷經過多少節點時,公式應該是這樣:
網路節點數量 = 初始TTL值  - Ping所得到的TTL值

所以以上例來說,我們需先得知究竟對點的初始TTL值為多少?
到中華電信的TTL值是247,初始值一定是255^^
而到192.168.40.253這台是環境的CoreSwitch,其TTL初始值是64

所以兩點的節點數量套用上面的公式分別如下:
中華電信DNS主機:
節點數量 = 255 - 247 = 8
內部CoreSwitch:
節點數量 = 64 - 63 = 1

所以....雖然從Ping得到的TTL值較小,但,其所經過的節點數量是較少的!!

故,當我們在判斷網路節點時,應以初始TTL減去Ping得到的TTL值來判斷
而不是當以Ping得到的TTL值來判斷網路節點!!

4 則留言:

匿名 提到...

這個真的厲害了
可能對很多網管來說
很基本
可是對剛入行的
真的是長知識了!!

江湖一片葉 提到...

很基本…我也是入行多年才發現@@
共勉…

徐子欽 提到...

感謝專家糾正小弟錯誤的知識

徐子欽 提到...

感謝專家糾正小弟錯誤的知識