為什麼需要路由#
Ethernet 要求所有節點都直接連上同一個區域網路。對於一個真正全球化的網路而言,這是重大限制——把每個節點都實體連到其他每個節點並不切實際。
解法是:不要求所有節點直接相連,而是利用來源與目的位址,讓資料在不同網路之間被路由(routed),一路轉送直到抵達目的節點。

圖表 1-6:連接兩個 Ethernet 網路的路由網路範例
跨網路的傳送流程#
以兩個各自擁有不同 IP 位址範圍的 Ethernet 網路為例,節點 A(網路 1,IP 192.1.1.101)要把資料送到節點 B(網路 2,IP 200.0.1.50):
- 節點 A 的網路堆疊封裝應用層與傳輸層資料,建立 IP 封包,來源位址
192.1.1.101、目的位址200.0.1.50。 - 網路堆疊要送出 Ethernet 訊框,但目的 IP 不在本機直連的任何 Ethernet 網路上,於是它查詢作業系統的路由表(routing table)。表中有一筆對應
200.0.1.50的項目,指出 IP192.1.1.1上的一台路由器(router) 知道怎麼抵達該目的位址。 - 作業系統用 ARP 查出路由器
192.1.1.1的 MAC 位址,把原始 IP 封包封裝進帶有該 MAC 位址的 Ethernet 訊框。 - 路由器收到訊框、拆出 IP 封包,檢查目的 IP 後判定這個封包不是給自己、而是給另一個相連網路上的節點。於是它查出
200.0.1.50的 MAC 位址,把原始 IP 封包重新封裝進新的 Ethernet 訊框,送往網路 2。 - 目的節點收到訊框、拆出 IP 封包並處理其內容。
路由的關鍵在於:IP 封包本身在整段旅程中不變,變的是每一跳(hop)外層包覆的 Ethernet 訊框與其 MAC 位址。 每經過一台路由器,就是一次「拆外層訊框、依目的 IP 決定下一跳、重新封裝」的循環。
多跳與預設閘道#
上述路由過程可能重複多次。如果路由器並未直接連到含有 200.0.1.50 的網路,它會查自己的路由表,決定下一台該轉送給哪個路由器。
顯然,要求網路上每個節點都知道如何抵達網際網路上其他每個節點並不實際。因此,當某個目的位址沒有明確的路由項目時,作業系統會提供一筆預設路由項目,稱為預設閘道(default gateway),其中記錄了一台能把 IP 封包轉送到目的地的路由器 IP 位址。
分析時若發現流量最終都導向同一個 IP,那多半就是預設閘道。它是「沒有更明確路由時的兜底出口」。