移动数据networking上的MTU

我发现了不同链路的MTU列表,但它们从来不包含UMTS,LTE,EDGE,HSPA,GPRS。

上述技术的MTU是多less?

简短的答案是:这取决于。

来自移动用户的数据封装在GRPS隧道协议(简称GTP-U)中,该协议基本上是一个带有GTP头的UDPstream,隧道端点的IP地址(GGSN / PGW和无线电站,简单的说)和一个隧道标识符(TEID)。

头部长度可变,可以达到12个八位字节。

那么,回到这个问题上,这取决于移动回程networking(Gn)上使用什么原生MTU,从无线电设备到解封装(Gi)隧道的GGSN。 如果回程MTU至less为1512字节,则MTU可以是常规的1500字节。

但是,我看到有意将MTU宣布到移动设备的客户降低到1488甚至更低(考虑VLAN或MPLS标签),以便回程的MTU不需要更改(这是很多工作时计划并没有考虑到这一点)。

一般来说,这并不是什么大问题,因为移动设备已经使用了“正确的”MTU,但是如果手机作为没有正确实现PMTU钳位的路由器,会导致问题。 而且,如果MTU太小,实际的可用带宽不能真正用于TCP连接; 这是“长输pipe道和带宽延迟产品问题”的典型例子。 “太小”的意思是“小于1488”。

如果您想知道当前连接的本地MTU,则可以使用各种工具进行PMTU发现。 最简单的方法可能是通过连续提高MTU来“ping”,直到出现错误消息“需要分片,但是DF设置”。 最后一个工作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.xy icmp_seq=1 Frag needed and DF set (mtu = 1492) 

(PPPoE封装的典型例子)

参考文献:

  • 对于GTPv0(2G):“数字蜂窝通信系统(阶段2+);通用分组无线业务(GPRS); GPRS隧道协议(GTP)跨Gn和Gp接口(3GPP TS 09.60版本7.10.0版本1998)。 (PDF): http : //www.etsi.org/deliver/etsi_TS/101300_101399/101347/07.10.00_60/ts_101347v071000p.pdf
  • 对于GTPv1(2.5G +):“数字蜂窝通信系统(2+阶段)”,通用移动电信系统(UMTS),通用分组无线业务(GPRS),GPRS隧道协议(GTP),Gn和Gp接口(3GPP TS 29.060版本6.9.0版本6)“。 url(PDF): http : //www.etsi.org/deliver/etsi_TS/129000_129099/129060/06.09.00_60/ts_129060v060900p.pdf
  • GTPv2协议没有改变到用户平面部分,意味着隧道,只有控制平面。 (GTP-C,不影响隧道)