1、高通MTP PING 2000Bytes超时问题分析一、 关键词:MTU、高通MTP、PING二、 案例分类1. 问题分类:用户感知、网络性能2. 手段分类:终端参数调整三、 优化背景使用高通MTP执行控制面时延Case PING 2000Bytes超时。四、 问题现象使用高通MTP执行控制面时延Case PING 2000Bytes超时。无法PING通,PING 32Bytes时可以PING通。五、 原因分析 终端PING小包可以PING通,PING大包无法PING通,首先怀疑MTU设置问题。通过不断增加PING包的大小,发现最大可以PING 通1436Byte的包。建议修改终端MTU小于1
2、436。 MTU,是最大传输单元(Maximum Transmission Unit)的缩写,指一个接口无需分片所能发送的数据包的最大字节数 。 PING业务使用的是ICMP协议。它是TCP/IP协议簇的一个子协议,电脑是TCP客户端,被访问的地址是TCP服务器端。当发起PING业务时,电脑主动发起TCP连接,此时电脑和网站服务器间会协商MSS值。 但是,服务器发给电脑的IP包,要经过各种网络设备,防火墙、交换机、路由器 如果服务器发送的数据包不允许分片(IP头的DF位置1),在经过MTU过小的设备上时会被丢弃。 由于各个网元的MTU值并不一定全网一致。有些网络设备的MTU值可能设置得比服务器
3、的MTU小。如果服务器发送的数据包不允许分片(IP头的DF位置1),在经过MTU过小的设备上时会被丢弃。 如下图所示,从现场终端的PING业务的wireshark信令也同样可以看出, TCP包是不允许分片的。六、 解决方案通过使用adb命令修改终端MTU值,修改方法为:C:adb shell$ susu# ifconfig如下所示,找到对应终端的网卡,使用命令:ip link set dev rmnet_data1 mtu 1400(rmnet_data1为终端对应网卡的名称)七、 效果评估 通过adb命令修改高通MTP的MTU值为1400之后,UE可以PING 通2000bytes包。八、 基于案例提炼的方法、流程及评估标准建议当出现PING不通大包、能进行UDP、FTP业务,无法进行HTTP业务等问题时,首先怀疑MTP问题,中间某网元对MTU进行了限制,这时候可以通过修改终端的MTU来解决问题。已获得授权通信资料:白先生客栈