上個月跟老婆看了一部很棒的電影In Time,中文翻成"鐘點戰",描述每個人的生命在過了25歲之後,就開始跟手上的數字拔河,數字歸零時就是生命的終點!!
就像在網路我們透過Ping,去追查一個端點的TTL(Time to Live)值一樣,每經過一個網路節點(通常是Ruoter),其TTL值就會扣掉"1",一直到扣到TTL值為零時,該封包就像鐘點戰裡的人類一樣,代表生命的結束。
雖說透過TTL的大小可以判斷經過的節點,但…數值大就代表經過的節點少、數值小就代表經過的節點多嗎???
以下圖來說,從內部網路Ping到中華電信DNS主機的TTL值為: 247
這是錯誤的判斷!!
原因是因為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值來判斷網路節點!!
5 則留言:
這個真的厲害了
可能對很多網管來說
很基本
可是對剛入行的
真的是長知識了!!
很基本…我也是入行多年才發現@@
共勉…
感謝專家糾正小弟錯誤的知識
感謝專家糾正小弟錯誤的知識
請教一下,網路上有網友說ping可搭配tracert來查看中間的節點,我也試著同時對google 進行ping和tracert數次。ping指令總是顯示ttl=115;而tracert中的數量也總是11。依照那位網友說的應該節點數會等於128-115=13,也會等於tracert的數量-1(不算終點本身),而我tracert中的11-1=10,不等於前者的13。 請問是哪邊理解錯誤了呢 謝謝!
參考來源:https://pccicblog.wordpress.com/2021/12/12/ping%E6%8C%87%E4%BB%A4%E4%B8%AD%E7%9A%84ttl%E7%9A%84%E4%BB%80%E9%BA%BC%E6%84%8F%E6%80%9D%E5%91%A2/
張貼留言