Mtu

移動數據網路上的 MTU

  • June 14, 2015

我找到了不同連結的各種 MTU 列表,但它們從不包含 UMTS、LTE、EDGE、HSPA、GPRS。

上述技術的 MTU 是多少?

簡短的回答是:這取決於。

來自移動使用者的數據被封裝在 GRPS 隧道協議(簡稱 GTP-U)中,它基本上是一個 UDP 流,其 GTP 頭包含隧道端點(GGSN/PGW 和無線電)的 IP 地址站,簡單地說)和隧道標識符(TEID)。

標頭長度可變,最多可達 12 個八位字節。

所以,回到這個問題,這取決於移動回程網路 (Gn) 上使用的本地 MTU,從無線電設備到隧道解封裝 (Gi) 的 GGSN。如果回程 MTU 至少為 1512 字節,則 MTU 可以是正常的 1500 字節。

但是,我看到有客戶故意將向移動設備宣布的 MTU 降低到 1488 甚至更低(想想 VLAN 或 MPLS 標籤),這樣就不需要更改回程的 MTU(當計劃一開始就沒有考慮到這一點)。

一般來說,這不是什麼大問題,因為移動設備已經使用了“正確的”MTU,但如果手機充當路由器而沒有正確實施 PMTU 箝位,則可能會導致問題。此外,如果 MTU 太小,則實際可用頻寬無法真正用於 TCP 連接;這是“長肥管和頻寬延遲積問題”的經典範例。我所說的“太小”是指“比 1488 小得多”。

如果您想了解目前連接的本機 MTU,您可以使用各種工具進行 PMTU 發現。最簡單的方法可能是通過連續提高 MTU 來“ping”,直到收到錯誤消息“需要分段,但 DF 已設置”。最後一個工作的 MTU 是手機的原生 MTU,回程的原生 MTU 是 MTU 加上 GTP-U 報頭成本。在 Linux 中,您甚至可以使用提示選項,這會更容易。例子:

alex@xila:~$ ping -c 1 -M do -s 2000 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 2000(2028) bytes of data.
From 93.203.x.y icmp_seq=1 Frag needed and DF set (mtu = 1492)

(PPPoE封裝的經典例子)

參考:

引用自:https://serverfault.com/questions/597082