Enter 過後:網路封包的旅程
步驟 1/487模擬總耗時 0.0 ms / 521 ms
① 找出下一跳:路由表與 ARP1/23
1/487 · ① 找出下一跳:路由表與 ARP · 查自己的路由表:下一跳是誰?
① 找出下一跳:路由表與 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/0 | 192.168.1.1 | 乙太網路介面 |
「0.0.0.0/0 走 192.168.1.1」這一列就是所謂的預設閘道。它多半不是你設的,而是接上這個網路時 DHCP 一起給的:DHCPACK 裡同時帶了 IP 位址、子網路遮罩、預設閘道(option 3)與 DNS 伺服器(option 6),作業系統收下就寫進這張表。IPv6 則多半來自路由器的 RA。
空白鍵播放/暫停,← → 逐步。這裡不會真的送出任何封包:所有位址都是依你輸入的主機名稱推導出來的,同一個網址每次看到的數字都一樣,但它們只是「看起來像真的」,並不是那些網段實際擁有者的設備。