題 懷疑在默認生存時間(TTL)255?


我知道,默認生存時間值是255,每次ipv4數據包越過一個值減1的路由器。

但是,當我ping我的adsl路由器時,它顯示TTL為64

Pinging 192.168.0.1 with 32 bytes of data:
Reply from 192.168.0.1: bytes=32 time=1ms TTL=64
Reply from 192.168.0.1: bytes=32 time=2ms TTL=64
Reply from 192.168.0.1: bytes=32 time=2ms TTL=64
Reply from 192.168.0.1: bytes=32 time=2ms TTL=64

pc到路由器只有一個b / w跳,所以我的預期TTL是254,但為什麼這裡ping顯示TTL為64 ..

任何幫助都可以得到讚賞......


7
2018-02-26 06:29


起源




答案:


這是相關的引用 ping 手冊頁:

TTL細節       IP數據包的TTL值表示數據包在通過之前可以通過的最大IP路由器數       扔掉了。在當前的實踐中,您可以期望Internet中的每個路由器都準確地減少TTL字段       一。

TCP / IP規范建議將IP數據包的TTL字段設置為64,但許多系統使用較小的值       (4.3BSD使用30,4.2BSD使用15)。

引用 RFC 1700:

當前建議的Internet協議(IP)的默認生存時間(TTL)為64。


10
2018-02-26 06:34



如果64為默認值。如果它的交叉另一個跳躍它減少為63,62等..它是正確的還是它從254,253遞減...
TTL字段的初始值由發送分組的主機設置。如本回答所述,該值會有所不同,通常留給操作系統。如果初始值是64,那麼在它通過第一個路由器後,它會降低到63,如你所說。您在ping響應中看到的TTL是從網關路由器上的操作系統使用的默認值開始倒計時。 ICMP回應響應是一個新的數據包,並且將填入一個新的TTL,它不會從ICMP回應請求的TTL中剩下的數據開始倒計時。 - Russell Heilling
@Rusell但是我們在ipv4中使用TTL作為255的原因是什麼


最大TTL為255,但不是默認值。您可以看到,默認值取決於操作系統 這裡

例如,在Windows vs Linux中查看ping到127.0.0.1:

我的窗口7:

Windows ping

我的Linux機器:

Linux ping

因此,您似乎從默認為64的計算機獲得回复。


4
2018-02-26 08:43



那是不對的。那是返回數據包的TTL。向你展示你自己的數據包的TTL沒什麼意義。例如,如果從Windows機器ping 8.8.8.8,則TTL將低於64。 - Malt
啊,我明白你的意思了。你是對的。我會編輯。 - Malt


TTL值由遠程機器確定。例如,如果你ping一台Linux機器,它的原始TTL值是64.根據它通過多少網絡返回給你,TTL被減去值1.所以如果你ping 8.8.8.8,這是谷歌名稱服務器,它的原始值為128.當它返回給你時,它可能有一個值121(它對我來說)。這意味著它越過7個網絡來找我,這是一台Windows機器。

常見的TTL值 - 路由器 - 255 Windows - 128 Linux-Mac - 64


0
2017-07-30 13:26