Mtu
移動數據網路上的 MTU
我找到了不同連結的各種 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封裝的經典例子)
參考:
- 對於 GTPv0 (2G):“數字蜂窩電信系統(第 2 階段+);通用分組無線電服務 (GPRS);通過 Gn 和 Gp 介面的 GPRS 隧道協議 (GTP)(3GPP TS 09.60 版本 7.10.0 1998 年發布)。URL (PDF):http ://www.etsi.org/deliver/etsi_TS/101300_101399/101347/07.10.00_60/ts_101347v071000p.pdf
- 對於 GTPv1 (2.5G+):“數字蜂窩電信系統 (Phase 2+);通用移動電信系統 (UMTS);通用分組無線業務 (GPRS);通過 Gn 和 Gp 介面的 GPRS 隧道協議 (GTP) (3GPP TS 29.060)版本 6.9.0 版本 6)"。網址(PDF):http ://www.etsi.org/deliver/etsi_TS/129000_129099/129060/06.09.00_60/ts_129060v060900p.pdf
- GTPv2 協議沒有對使用者平面部分進行更改,即隧道,僅對控制平面進行更改。(GTP-C,不影響隧道)