先講問題
1.由 IP a 到 IP b 所走的路徑,是否永遠固定?
2.若 a,b 間有多條路徑,以何種規則決定走那一條路徑?
以下是我的想法
有錯誤還請不吝指正
1.先來個 tracert,看看宏碁雲到底在那裡(起點是 HiNet)
在上限 30 個躍點上
追蹤 www.jody-ticket.com.tw [210.241.131.111] 的路由:
1 1 ms <1 ms <1 ms 192.168.0.1
2 3 ms 3 ms 3 ms h222.s222.ts.hinet.net [168.222.222.222]
3 2 ms 2 ms 2 ms tpn2-2222.hinet.net [168.222.222.222]
4 14 ms 11 ms 11 ms TPDT-2222.hinet.net [220.222.222.222]
5 5 ms 3 ms 3 ms r2222-s222.hinet.net [220.222.222.222]
6 3 ms 3 ms 3 ms 210-222-222-222.HINET-IP.hinet.net [210.222.222.222]
7 * 3 ms 3 ms 60-199-18-221.static.tfn.net.tw [60.199.18.221]
8 3 ms 3 ms 2 ms 60-199-3-162.static.tfn.net.tw [60.199.3.162]
9 3 ms 3 ms 2 ms 60-199-17-114.static.tfn.net.tw [60.199.17.114]
10 4 ms 4 ms 4 ms 219-80-114-86.static.tfn.net.tw [219.80.114.86]
11 4 ms 4 ms 4 ms n042.n211-79-200.accsi.net [211.79.200.42]
12 4 ms 4 ms 4 ms 210.241.131.111
13 5 ms 4 ms 4 ms 210.241.131.111
追蹤完成。
2.由tracert 得知,宏碁雲在自家的 eDC (如下圖)
對外連線有三條路:和宇、速博、TFN
3.HiNet
HiNet 有連至 速博 及 TFN
由 tracert 看來
我走的是 HiNet -> TFN -> eDC
4.FETNet
問題來了
為什麼我不會走 HiNet -> 速博 -> eDC?是最短路徑嗎?
如果我上網是走 FETNet
那麼我到底是會走
FETNet -> 和宇 -> eDC
還是
FETNet -> 速博 -> eDC
又或者
事情不是我這個憨人想得這麼簡單
還請各位大師不吝指教
您上面那個圖裡面的業者, 中間的路由大多是走動態路由協定 (Dynamic Routing, 例如: BGP), 這個協定是在路由器上面, 主動根據線路狀況, 以及事先設定的成本政策, 挑選當下最適合的路由.
End User 以為的「最短路徑」, 其實並不一定是用 Hop (中間跳躍點) 來計算, 也有可能是用 Latency (潛在時間) 計算. 所以, 中間經過 3 個 Hop 的路由, 不一定會比只經過 2 個 Hop 要慢.
除了 Hop 和 Latency 之外, 也可以指定線路的成本 (Cost), 業者可以優先挑選線路費用較低的優先傳輸 (即使它可能比較慢), 直到用滿頻寬後才切換到其他路由.
這一切的 Policy, 全都控制在 ISP 業者手裡, 不是 End User 可以改變的. 同時, 路由的優化選擇, 也是業者很大的利潤或成本來源, 這裡面會優先以商業利潤為考量, 並不是以終端用戶的最佳用途為考量.
iT邦幫忙MVPraytracy提到:
這個協定是在路由器上面, 主動根據線路狀況, 以及事先設定的成本政策, 挑選當下最適合的路由
請教大師
所以答案是
1.不一定每次都相同
2.依據好幾項條件設定, 動態決定
antijava提到:
1.不一定每次都相同
2.依據好幾項條件設定, 動態決定
是的, 每一個 ISP 的 Core Router 上面都存有全球將近 50 幾萬條路由 (使用IPv4, 請參考BGP Table Data的統計), 路由器隨時都在計算最佳的路徑, 也隨時都在根據事先設定好的政策切換路由.
今天又學到一點新知識
賺到了賺到了
以前學TCP/IP的時候,一直強調一個觀念,最短路徑不等於最佳路徑