❶ IP協議中的TTL
TTL 是IP協議包中的一個值,指定數據報被路由器丟棄之前允許通過的網段數量。(IP數據包在計算機網路中可以轉發的最大跳數)
在很多情況下數據包在一定時間內不能被傳遞到目的地。解決方法就是在一段時間後丟棄這個包,然後給發送者一個報文,由發送者決定是否要重發。
TTL 是由發送主機設置的,以防止數據包不斷在 IP 互聯網路上永不終止地循環。轉發 IP 數據包時,每經過一個路由器,路由器會修改TTL值, 即將改值減小1。當記數到0時,路由器決定丟棄該包,並發送一個 ICMP Type 11 and Code 0 message(Time to live exceeded) 報文給最初的發送者,由發送者決定是否要重發。
TTL值在文件 /proc/sys/net/ipv4/ip_default_ttl 中定義,可通過執行 echo 128 > /proc/sys/net/ipv4/ip_default_ttl 命令修改
(這是短暫性的)若要永久生效可修改 /etc/sysctl.conf 配置文件,添加 net.ipv4.ip_default_ttl=128 ,接著執行 sysctl -p 即可。
在本機(windows 10)ping本地的VMware虛擬主機(操作系統為CentOS release 6.8),其IP為192.168.10.128,可見TTL為64:
綜上可知,這里的發送主機指的是ping後面IP對應的主機。
❷ 請教:如何修改數據包的TTL值
1.打開「記事本」程序,編寫批處理命令:
@echo REGEDIT4>>ChangeTTL.reg
@echo.>>ChangeTTL.reg
@echo [HKEY_LOCAL_MACHlNE\System\CurrentControlSet\Services\T cpip\Parameters]>>ChangeTTL.reg
@echo "DefaultTTL"=dword:000000">>ChangeTTL.reg
@REGEDIT /S/C ChangeTTL.reg
2.把編好的程序另存為以.bat為擴展名的批處理文件, 點擊這個文件,你的操作系統的預設TTL值就會被修改為ff,即 10進制的255,也就是說把你的操作系統人為地改為UNIX系統了 。同時,在該文件所在的文件夾下會生成一個名為 ChangeTTL.reg 的注冊表文件。如果你想運行完這個批處理文件而不產生 ChangeTTL.reg文件,可以在此批處理文件的最後一行加上 deltree/Y ChangeTTL.reg,就可以無須確認自動刪除ChangeTTL.reg文件 。
說明:在上面的命令中,echo是DOS下的回顯命令,如 果想看到程序執行過程,請將「@」去掉。「> >」產生的內容將追加到它後面的文件即ChangeTTL.reg中。 而「DefaultTTL"=dword�000000ff」則是用來設置系統預設TTL 值的,如果你想將自己的操作系統的TTL值改為其他操作系統的 ICMP回顯應答值,請改變「"DefaultTTL"」的鍵值,要注意將 對應操作系統的TTL值改為十六進制才可以。
❸ 怎麼用ping命令改變ttl值
TTL即生存時間(time-to-live),指定數據包被路由器丟棄之前允許通過的網段數量。它是IP(中文全稱:網路協議)協議包中的一個值,它告訴網路,數據包在網路中的時間是否太長而應被丟棄。在使用ping命令ping某個ip地址時,會顯一個TTL值,TTL是生存時間的意思,就是說這個ping的數據包能在網路上存在多少時間。一般Linux系統的TTL值為64或255,Windows
NT/2000/XP系統的默認TTL值為128,Win7系統的TTL值是64,Windows
98系統的TTL值為32,UNIX主機的TTL值為255。
❹ 怎麼用ping命令取得TTL值TTL值的作用是什麼
簡單來說,TTL全程TimetoLive,意思就是生存周期。ping命令是使用的網路層協議ICMP,所以TTL指的是一個網路層的網路數據包(package)的生存周期,這句話不懂的先回去復習OSI7層協議去。