Jasonmel Online

Enter 過後:網路封包的旅程

步驟 1/487模擬總耗時 0.0 ms / 521 ms
① 找出下一跳:路由表與 ARP
1/23

1/487 · ① 找出下一跳:路由表與 ARP · 查自己的路由表:下一跳是誰?

家用區網 · 192.168.1.0/24機房區網 · 104.27.53.0/24你的裝置192.168.1.42 ▶家用 Wi-FiAP / 交換器無 IP(僅第二層)家用路由器(NAT)◀ 192.168.1.1111.250.205.190 ▶ISP邊緣路由器◀ 168.95.8.1168.95.254.30 ▶骨幹 / IXP路由器◀ 168.95.254.31203.75.19.1 ▶資料中心路由器/ 防火牆◀ 203.75.19.2104.27.53.1 ▶Web 伺服器jasonmel.one◀ 104.27.53.6遞迴解析器DNS Resolver8.8.8.8根名稱伺服器Root NS198.41.0.4TLD名稱伺服器192.0.2.30權威名稱伺服器198.51.100.28
① 找出下一跳:路由表與 ARP1/23

查自己的路由表:下一跳是誰?

第一個要送出去的封包,目的地是 8.8.8.8。你的機器先查自己的路由表——沒錯,主機也有路由表,不是只有路由器才有——用的是跟後面每一台路由器一模一樣的最長前綴比對:8.8.8.8 不在 192.168.1.0/24 裡,只符合預設路由,所以下一跳是 192.168.1.1。知道下一跳之後,才輪到 ARP 去問它的 MAC。 想看自己機器的這張表:Windows 用 route print、Linux 用 ip route、macOS 用 netstat -rn。

  • 這一步跟骨幹路由器做的事完全相同,只是表小得多:你的電腦在這一刻也是一台路由器。
  • 如果目的地落在 192.168.1.0/24 裡(例如印表機),命中的就會是第一列,下一跳就是對方自己,封包根本不會經過路由器。
你的裝置的路由表
目的網段下一跳出口介面
 192.168.1.0/24直接連接乙太網路介面
0.0.0.0/0192.168.1.1乙太網路介面

「0.0.0.0/0 走 192.168.1.1」這一列就是所謂的預設閘道。它多半不是你設的,而是接上這個網路時 DHCP 一起給的:DHCPACK 裡同時帶了 IP 位址、子網路遮罩、預設閘道(option 3)與 DNS 伺服器(option 6),作業系統收下就寫進這張表。IPv6 則多半來自路由器的 RA。

空白鍵播放/暫停,← → 逐步。這裡不會真的送出任何封包:所有位址都是依你輸入的主機名稱推導出來的,同一個網址每次看到的數字都一樣,但它們只是「看起來像真的」,並不是那些網段實際擁有者的設備。