iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
1

traceroute也是第三層-IP層著名的應用之一,利用traceroute可以知道封包從你的電腦到另一端電腦走了什麼路徑,雖然每次走的路徑可能會不一樣,但是大部分時候走的路由是相同的。

還記得ping的ttl嗎?它代表Time_To_Live(生存時間),每過一個路由器,生存時間就會-1,直到等於0都還沒走到目的地地址則代表 TTL 已經到期,接著就會傳送錯誤訊息給原本發送的電腦,TTL的值越大越好,代表經過的路由器越少,也代表越快。

那麼 TTL值一開始是多少呢?不同的作業系统默認下 TTL是不同的。
所以 TTL值可以用來識別作業系統的類型

  • UNIX 、 Sun Solaris 及 OpenBSD 作業系統的 TTL值為 255
  • Compaq Tru64 5.0 及 LINUX 作業系統的 TTL值為 64
  • MS Windows NT/2K 作業系統的 TTL值為 128
  • MS Windows 95/98/ME 作業系統的 TTL值為 32

traceroute怎麼知道經過了哪些路由器呢?就是透過ttl的設定,電腦先發送一個TTL=1的ICMP封包,在遇到第一個路由器就返回一個超時封包,並得到第一個路由器的地址
第二次,再發送一個TTL=2的ICMP封包,在遇到第二個路由器就返回一個超時封包,並得到第二個路由器的地址,以此類推,知道等到達目的地地址。

系列的成果將會放在這:https://github.com/kaichiachen/pytcpdump
文章配合著程式碼有助於學習 :)


上一篇
Day08 聊聊ICMP的應用 - ping
下一篇
Day10 聊聊ARP
系列文
那些年還給老師的TCP/IP五層結構 - 用Python進行網路封包分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言