无
某局点反馈客户无线网络中分别有各种款型的安卓终端、PC 终端、各种款型的苹果终端,只有几台新款的iPhone 8终端连接无线网络时会出现微信可以聊天,但是无法发送图片,无法发送视频的现象,其他老款的苹果终端、安卓终端、PC 机都无此问题,上网刷图片看视频一切正常。而这几台问题终端连接某款家用路由器测试发送图片和视频也都正常。
首先从客户现场反馈的测试现象来看,可以有以下初步分析:
问题现象不是一个普遍现象,属于个别特殊款型的终端才有的特殊现象,猜测应该是新款苹果终端的某种特殊机制导致的。
问题终端并非完全不能上网,可以微信聊天,但是不可以发送图片、播放视频,初步判断出现问题时终端和外网是保持连通性的,故障现象应该和部分具体的应用有关。
问题终端连接某款家用路由器测试一切正常,说明我司的设备相比于该款家用路由器在某些报文的处理上是有差别的。
问题的突破点就在于问题终端可以微信聊天却无法发送图片视频上,我们需要分析一下这几种具体应用有什么区别。首先图片视频类流量相对比较大,一般都是以TCP 大包的形式传输,而微信聊天文字因为流量小,应该是以TCP 小包的形式传输的。所以猜测问题点可能出在中间网络的TCP 大包传输上。
基于猜想,我们尝试在AC 全局下配置了[ac]wlan tcp mss 1300命令,配置命令后之前的问题终端测试发送图片视频一切恢复正常,问题得到解决。
查看无线控制器命令手册有这样一段描述:
TCP最大报文段长度(Max Segment Size,MSS)表示TCP连接的对端发往本端的最大TCP报文段的长度,目前作为TCP连接建立时的一个选项来协商:当一个TCP连接建立时,连接的双方要将MSS作为TCP报文的一个选项通告给对端,对端会记录下这个MSS值,后续在发送TCP报文时,会限制TCP报文的大小不超过该MSS值。当对端发送的TCP报文的长度小于本端的TCP最大报文段长度时,TCP报文不需要分段;否则,对端需要对TCP报文按照最大报文段长度进行分段处理后再发给本端。
需要注意的是:
·该配置仅对新建的TCP连接生效,对于配置前已建立的TCP连接不生效。
·该配置仅对IP报文生效。
终端在和TCP 服务器建立TCP 三次握手连接的过程中会协商彼此认为合适的TCP MSS值,对于一些大流量的应用一般都是协商为1500字节的大包。加上隧道封装的包头,AC转发时必然会进行IP 分片。而问题就出中间传输网络中的设备可能分片转发有问题,将部分分片丢弃了,导致一直传输失败。而AC 配置了wlan tcp mss 1300(默认值是1500)命令后,AC 就会仿冒无线终端和TCP 服务器协商TCP MSS的值。双方协商到1300字节大小时,即使加上隧道报文的包头,也达不到分片的阈值,AC 就不会进行分片转发,中间传输网络就不会出现转发分片报文失败的情况。而某款家用路由器测试一切正常,猜测家用路由器默认的TCP MSS阈值要比我司的小(我司默认的是1500字节,可以手动改小),所以就没出现分片的情况。而之所以只有iPhone8出现这种情况,猜测是新款iPhone8升级了ios12以上系统后,终端修改了自己的某些TCP 协商机制,才导致了这样的问题。
V7 AC 可以在全局下配置[v7_ac]wlan tcp mss 1300 解决,此配置只针对无线终端生效。
AC 做网关,也可以在interface vlan接口下配置[ac-Vlan-interfacex]tcp mss1300,此配置针对无线终端和有线终端都有效。
V5 AC同样功能对应的命令为 [v5_ac]mac-forwarding tcp mss 1300。
如果是本地转发模式,只能在网关设备上修改TCP MSS才有用。只有流量经过AC 时,在AC 上配置的命令才有用。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作