iphone连接vpn就没网络连接
阿汤博主在下班以后或者节假日偶尔要连接一下公司VPN处理一些工作上的事情,部署使用了一年多,VPN一直也没出过什么异常问题。
一开始以为是DNS的问题,通过ping和路由跟踪测试,发现也能正常解析并达到域名解析的服务器。
然后又测试了微信、微博客户端,连接VPN的情况下都能正常使用,内网的服务器和网站都可以正常访问。
为了进一步确认问题,到公司以后借了两个安卓和一个苹果手机,连接VPN测试,发现都无法正常打开百度、腾讯、360这些网站。
经过断断续续的一段时间查找问题原因,基本确认造成连接VPN以后无法打开网站的罪魁祸首就是MTU和MMS。
最大传输单元(Maximum Transmission Unit,MTU)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。
是包或帧的最大长度,一般以字节记。如果MTU过大,在碰到路由器时会被拒绝转发,因为它不能处理过大的包。如果太小,因为协议一定要在包(或帧)上加上包头,那实际传送的数据量就会过小,这样也划不来。大部分操作系统会提供给用户一个默认值,该值一般对用户是比较合适的。
以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500字节和1492字节。链路层的这个特性称为MTU,即最大传输单元。不同类型网络的数帧长度大多数都有一个上限。如果IP层有一个数据报要传,而且数据帧的长度比链路层的MTU还大,那么IP层就需要进行分片( fragmentation),即把数据报分成干片,这样每一片就都小于MTU。
MSS(最大分段大小)是TCP里面的一个概念,它是TCP数据包每次能够传输的最大数据分段iphone连接vpn就没网络连接,不包含包头部分,它与IP MTU满足如下关系:
通过对概念的了解,知道主要原因就是手机连接VPN后的MTU协商值不太合适。比如Windows电脑手动设置MTU ping测试: