动态 MTU:解决 VPN 浏览问题
动态MTU:我们如何解决了常见的浏览问题
ExpressVPN新闻4分钟
2024年1月31日你可能遇到过在连接VPN的情况下浏览网页时,无法访问某个网站的情况,但并没有明显的错误提示。关闭VPN后问题解决,这说明VPN可能是导致问题的原因。
那么,导致这种浏览问题的原因是什么呢?通过我们的应用程序,我们发现一个常见的问题与最大传输单元MTU有关,因此我们着手进行修复。
最大传输单元如何影响您的互联网体验
MTU是指在网络上单个数据包可以传输的最大字节数。
当你与某个网站或应用交互时,数据包通常要经过你的家庭路由器、互联网服务提供商、ExpressVPN服务器以及各种其他交换机、路由器和服务器,才能到达目的地。数据包到达你喜欢的网站的路径可能会遍历全球,且这条路径会根据日期而变化。在这个过程中,每一条链路都有自己的最大传输单元,有些更大,有些更小。如果数据包对某个链路而言过大,传输就会失败。
可以把它想象成一条有着不同宽度道路的驾驶路线。如果你的车宽超过了沿途某条道路的宽度,你就无法完成这次行程。
因此,你的浏览速度受到最小链路的制约,即“路径MTU”的限制,而在数据包启程之前,你无法预知任何一条路径的MTU。当使用VPN时,VPN决定数据包的大小这使得VPN提供商的角色是帮助数据包穿过能适应不同大小的链路。
过去,我们在我们的Lightway协议中采用固定的包大小进行传输,确保大小足够高效以支持快速速度,但又不会太大,以至于经常超过路径中的MTU,从而导致传输失败。
这种方法在性能和兼容性之间提供了一定的平衡,但仍然不尽理想。用户偶尔会碰到更小的MTU,导致无法访问目标网站。例如,如果你在一家wifi路由器配置有异常低的MTU的咖啡店,你在连接VPN时可能根本无法使用WiFi。与此同时,如果没有考虑到MTU问题,某些传输也可能会更大。
开发动态MTU
为了解决这个问题,我们采取了互联网工程任务组IETF推荐的做法,该组织制定了技术标准。在我们的Lightway VPN协议中,我们内置了检测特定路径上可以传输的最大数据包大小的能力。
当Lightway封装你的流量并发送出去时,它也会发送不同大小的测试探头,以找出路径的MTU。这一过程被称为路径MTU发现。可以把它想象成一次试驾,通过逐渐增大的汽车来寻找哪条道路无法通行。
因此,Lightway会不断增大数据包的大小,直到某个数据包无法成功到达目的地。然后,你的数据包会被调整到与路径MTU兼容且性能最佳的大小。这可以通过数据包分片来实现,即将一个过大的数据包拆分,以使它可以适应路径的MTU。
一些VPN提供商可能会选择在应用程序中让用户自行设置MTU大小例如通过开关。虽然这确实有用,但我们的动态MTU解决方案更进一步,通过自动化该过程消除了猜测,让数据能够自我适应,而无需用户进行任何操作。
使用功能标志进行分割测试
我们对这一方法进行了分割测试A/B测试,也就是说,我们将解决方案部署给一组随机用户,然后将其影响与未使用该方案的对照组进行比较。
分割测试提供了科学、可测量的验证,确保这一技术确实解决了问题。在这次及其他类似的分割测试中,我们依赖功能标志,使开发人员能够在不公开发布的情况下打开或关闭某一功能。
袋鼠加速器下载官网对于我们的动态MTU分割测试,与对照组相比,使用VPN时无法连接互联网的情况减少了一半。我们的技术奏效了。
利用功能标志,我们能够以安全可控的方式,将动态MTU技术推广给原本在对照组的用户。目前这一功能已在我们的Android、iOS、Mac、Linux及Aircove路由器的应用中开始推广。接下来还会推出Windows应用及非Aircove路由器的软件版本。
用户只需确保他们正在使用Lightway协议,在大多数情况下,应用程序会默认选择该协议。如果使用自动更新,用户无需进行任何操作且费用没有增加。我们对Lightway进行的动态MTU实现的所有代码变更都可以在Github上公开查看。
这是我们如何改善ExpressVPN用户体验的又一个例子在很大程度上这一过程对用户来说是不可见的。我们背后添加了量子后保护措施、升级到DTLS 13,以及为我们的桌面应用引入安全自动更新功能。
用最好的VPN保护你的隐私获取ExpressVPN
30天退款保证
我们非常重视您的隐私。体验ExpressVPN,毫无风险。获取ExpressVPN
什么是VPN?
TAGS开发者博客Andre Lo PEng
Andre Lo是ExpressVPN的软件工程经理,自2018年以来一直在公司工作,参与了ExpressVPN客户端应用的各类跨平台开发。目前,他领导着一个工程师团队,专注于Lightway协议和核心VPN技术。Andre也是安大略省的注册专业工程师。
觉得阅读内容不错?为这篇文章点赞。或者分享你的想法!