软路由与硬路由延迟对比分析关于OpenWrt软路由延迟问题
最近偶尔玩一点在线对战游戏,发现延迟在 100-110 ms 左右,感觉操作总慢半拍,很是不爽。我一直用的是 x86 软路由拨号,于是抱着试试看的心态,换用了硬路由直接拨号,延迟竟然降到了 30ms-50ms!这才是我玩的游戏应有的正常水平嘛。这一下就让我开始认真思考:软路由,是否真的适合作为我的主路由?希望和大家探讨研究一下,帮我指出我的问题。
我用的系统是 esir 编译的 2020 版。

延迟产生的原因
首先是对延迟产生原因的思考。硬路由之所以快,我猜是因为它有专门的硬件加速芯片,数据包转发速度非常快。而软路由呢,它没有专门用于转发的硬件,只能通过操作系统在软件层面来实现转发。
我借用 OSI 参考模型想了想,硬路由的转发可能主要在网络层就通过硬件完成了。而软路由,虽然理论上目标也是在网络层处理,但由于数据包要经过操作系统的层层判断、分流等操作,我从某种角度上认为它实际上已经“触碰到”了应用层,然后再层层封装回去,这个过程自然产生了大量的时间消耗。
软路由的定位:主路由还是旁路由?
然后,我开始想,我们是否真的有必要将软路由作为主路由?
玩软路由的目的主要应该是:
加速部分网络(比如加速游戏,访问部分特定网站等)。
连接 NAS、搭建内网服务器。
实现内网穿透。
进行一些路由层面的过滤(如广告屏蔽)。
我认为大概这些就是最常用的场景了吧。而这些功能,似乎都可以通过旁路网关(旁路由)的方式来实现。
如果作为旁路由,最大的好处就是不怕配置出错等问题导致断网,从而避免被家人讨伐。(上个月我就因为软路由配置问题断网一周,白天上班,晚上回家修网,那叫一个惨(悲)。)
当然,做旁路由在配置上会繁琐一点,而且在某些情况下可能会多一层 NAT,这也是旁路由一个比较大的缺点。
小包转发效率问题
再就是软路由小包转发效率低的问题。这也是没有硬件加速的硬伤。不过,大概也没多少普通家庭用户有那么高的转发需求吧?除了像打游戏这样对延迟极其敏感的上网行为,平时上个网站、看个视频之类的,应该对延迟和转发效率没有那么高的要求。
至于用软路由来“跑宽带上行”这类操作,这里就不讨论了,毕竟不算正常的网络使用场景。我个人还是更倾向于网络稳定,不折腾那些。
总结一下我的看法
综上,我认为:
如果对网络延迟要求不高,只是用来加速部分网络访问、做一些过滤的话,软路由做旁路由可能是更好的选择。这样更稳定,也更安全,出了问题不影响全家上网。
如果对延迟要求不高,并且也不希望因为多一层 NAT 而导致 NAT 类型变差(可能影响某些游戏联机),那么将软路由作为主路由也是一个可以接受的方案。
不过这只是我目前的一些思考,肯定有很多考虑不周的地方。希望大家可以一起讨论,帮我指出问题所在。
点击链接加入群聊四群:722808830
点击链接加入群聊三群:751529538(已满)
点击链接加入群聊二群:376877156(已满)
点击链接加入群聊一群:622891808(已满)
饿了么红包
本站附件分享,如果附件失效,可以去找找看