今天在臉書上看到一個有意思的案例,讓我重新思考了「如何正確解讀網路診斷結果」這件事。
起因:一道看似簡單的題目
臉書上有人貼了一張 traceroute google.com 的截圖,問:「這個網站的伺服器在台灣還是海外?」
我看了一眼終端機畫面,最後一跳顯示:
hkg07s38-in-f14.1e100.net [142.250.204.46]
「hkg」?那不就是 Hong Kong(香港)嗎?我第一個直覺就是:「在香港。」
等等,好像哪裡不對?
但當我準備給出答案時,突然覺得有點怪。我重新盯著那張截圖看——整個路由從第 1 跳到第 12 跳,延遲全部在 1-7ms 之間。
如果真的從台灣連到香港,延遲怎麼可能這麼低?台灣到香港的海底光纖,來回理論最低也要 15-20ms 起跳,加上路由器處理時間,實際測試通常在 25-35ms。
我完全被主機名稱誤導了。
延遲才是真相
讓我們冷靜分析一下路由路徑:
Hop 1-4: 中正大學內網 (140.123.x.x) → 1-2ms
Hop 5-8: TANet 學術網路 (192.192.61.x) → 3-7ms
Hop 9-11: Google 骨幹網路 → 仍在 7ms 內
Hop 12: hkg07s38... → 最終 6-7ms
如果封包真的出海到香港,延遲曲線應該是這樣:
- 台灣內部:1-10ms
- 出海瞬間:跳升到 20-30ms
- 香港本地:維持在 25-35ms
但實際上整條路由的延遲完全沒有「突然跳升」的現象。這表示什麼?
伺服器就在台灣境內。
Google 的 CDN 魔術
那為什麼主機名稱會顯示「hkg」呢?這就要從 Google 的內容傳遞網路架構說起。
GGC:隱藏在 ISP 機房裡的快取節點
Google 在全球部署了大量的 GGC (Google Global Cache) 節點,這些設備放在各國的 ISP 機房內,專門快取熱門內容,像是 YouTube 影片、搜尋結果、靜態資源等。
在台灣,中華電信、台灣大哥大等業者的機房裡都有 GGC 設備。當你看 YouTube 時,影片很可能直接從台北某個機房傳出來,而不是從美國或新加坡。
Anycast:同一個 IP,不同的實體位置
Google 使用 Anycast 技術,同一個 IP 位址(比如 142.250.204.46)在全球多個地點同時存在。當你發送封包時,BGP 路由協定會自動選擇「網路距離最近」的那台伺服器。
從台灣發出的封包,會被導向台灣本地的 GGC 節點。從香港發出的封包,會被導向香港的節點。同一個 IP,卻是不同的實體機器。
命名系統的管理邏輯
那為什麼台灣的節點會用「hkg」這個香港代碼?
我的推測是:
hkg07s38代表「香港管理區第 07 組第 38 號伺服器」- 這是 Google 內部的管理架構代碼
- 台灣的邊緣節點在行政上可能隸屬於香港 PoP(Point of Presence)
- 命名系統基於管理需求,而非實體地理位置
就像公司的組織架構,台北辦公室可能隸屬於「亞太區香港總部」,但員工實際坐在台北。
為什麼要這樣設計?
對 Google 的好處
- 降低國際頻寬成本:不用每次都從海外傳輸資料
- 提升使用者體驗:台灣使用者存取更快
- 減輕核心機房負載:熱門內容由邊緣節點分擔
對 ISP 的好處
- 節省國際頻寬費用:YouTube 等大流量服務不用經過海底光纜
- 改善網內速度:使用者體驗好,客訴少
對使用者的影響
- 搜尋和影片載入更快
- 但實體位置變得不透明(資料主權議題)
其他類似案例
這種「DNS 指向海外,實際在台灣」的情況其實很常見:
- Netflix:Open Connect 設備放在台灣 ISP 機房
- Cloudflare:台北有多個 PoP,但可能顯示新加坡或香港的主機名稱
- Akamai:全球最大的 CDN 業者,在台灣也有大量節點
- Facebook/Meta:邊緣快取節點遍布各地
現代網際網路的架構,早就不是「一個網址對應一台伺服器」這麼單純了。
CDN 與 ISP 的愛恨情仇
不過,並不是所有 CDN 業者都能順利在台灣 ISP 機房部署設備。
Cloudflare 與中華電信的爭議
Cloudflare 和中華電信之間曾有一段時間關係緊張。核心爭議在於 peering(對等互連)政策:
- Cloudflare 的立場:希望與中華電信免費 peering,認為雙方流量互惠
- 中華電信的立場:要求 Cloudflare 付費,因為 Cloudflare 產生的流量遠大於中華電信使用者上傳的流量
- 實際影響:雙方未達成協議期間,中華電信使用者連接 Cloudflare 的網站速度明顯較慢,封包可能繞道國外再回來
爭議的後續發展
這個問題到現在都沒有真正解決,雙方維持著各自的立場:
Cloudflare 的解法:分級服務
- 只有付費的 Enterprise Plan(月費 20 萬台幣起跳)使用者才能走台北/高雄節點
- 免費、Pro、Business 方案的使用者,中華電信連線仍然被導向日本成田(NRT)或美國洛杉磯(LAX)
- 非中華電信的 ISP(如台灣大哥大、遠傳)連 Cloudflare 比較不會繞路,因為他們與 Cloudflare 有免費 peering
中華電信的堅持
- 要求付費才能在台灣互連,每 Mbps 收費約 30 元台幣
- 雖然設定了免費互連門檻,但標準高到幾乎沒有業者能達標
- 即使是 Cloudflare、Google 等國際大廠也不符合免費互連條件
對台灣網路生態的影響
- 台灣 64% 的網路使用者(中華電信客戶)連 Cloudflare 網站延遲較高
- 國際 ISP 不願意在台灣設點,因為「只有 36% 的效益」
- 台灣很難成為「亞太網路中心」,大部分國際路由都經過香港而非台灣
- 台灣的網路頻寬成本比美國貴約 10 倍以上
這個案例凸顯了一個現實:CDN 業者和 ISP 之間的商業談判,會直接影響使用者體驗。
Google、Netflix 等大廠願意在 ISP 機房放置設備,部分原因也是為了避免類似爭議。對 ISP 來說,這些設備幫他們省下國際頻寬成本;對 CDN 業者來說,這能確保服務品質。雙贏的局面,自然談判容易。
學到的教訓
這次經驗讓我重新認識到:
- 延遲是最誠實的指標:光速和物理距離不會騙人
- 不要只看單一資訊:主機名稱、IP、路由路徑、延遲要綜合判斷
- 理解現代網路架構:CDN、Anycast 讓「伺服器在哪裡」變成複雜問題
- 保持懷疑精神:直覺可能是錯的,數據才是真相
下次做網路診斷時,記得多看幾個指標。traceroute 的延遲數字,往往比主機名稱更接近真相。
附註:如果想更精確驗證,可以用 mtr 做長時間測試,或是查詢 AS (Autonomous System) 資訊。不過對於日常使用來說,看延遲就夠了。