ZNDS智能电视网 推荐当贝市场

TV应用下载 / 资源分享区

软件下载 | 游戏 | 讨论 | 电视计算器

综合交流 / 评测 / 活动区

交流区 | 测硬件 | 网站活动 | Z币中心

新手入门 / 进阶 / 社区互助

新手 | 你问我答 | 免费刷机救砖 | ROM固件

查看: 15906|回复: 3
上一主题 下一主题
[交流]

TPlink无线路由器研发负责人谈常见路由器问题

[复制链接]
跳转到指定楼层
楼主
发表于 2014-1-17 08:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
经常使用无线路由器的同学会发现有时候家里的路由器长时间运行后上网速度会越来越慢,尤其是使用BT等软件下载东东会发现路由器非常慢,有时候发现小米盒子上的无线信号满格,但网络却不通?而上述问题出现后一般重启路由器就可以解决?这到底是为啥原因呢?
张先生是TPLink无线路由器的前研发负责人,他下面的回答会让大家清楚这些现象背后的原因。 我们具体的疑问如下:
Q1. 为啥长时间使用低端路由后,路由器上网速度会变慢,为啥建议经常重启低端路由器?
Q2,为啥有的路由器无线上不转发ip组播但有线会转发
Q3,有的路由器完全不转发ip组播包,导致基于IP组播的米联有时候不能工作
Q4,多线程同时启动下载有时候会把无线路由器打死,必须重启才能恢复


答:问题1与问题4原因相同。这个问题与路由器的演进历程有关,当前路由器的市场,以TP为首挑国内品牌挑了价格战,在几年时间内,让进口路由器市场份额缩到30%以内,如D-LINK,Netgear,Linksys,甚至有些国外品牌已经退出了中国市场。原因就是国人买东西只看价格不看品质。而这些国内品牌看中了国人的这种价值观,于是对于路由器一再的降低成本,原则是先从无技术难度的降,比如一些替代料,用上后性能略有影响,但价格便宜很多;然后再从有技术难度上的降,比如DDR。你们现在看到的这个问题,就与DDR有关,现在跑在路由器上的操作系统最多的是两个:vxWorks与Linux,Linux的体积比较大,很难裁剪,但有些厂商为了低成本,还是会去裁剪;vxWorks操作系统容易裁剪,就成为一些厂家的首选(如TP),所以,用了vxWorks的操作系统后,厂商对操作系统进行了裁剪,DDR的大小可以用的很小,比如8MB(64Mbit),成本相对于16MB的可以省2-3元人民币;而vxWorks的操作系统最大的特点是内存地址空间不分内核态和用户态,所有的代码运行在同一地址空间,当进行系统开发时,如果编程人员的水平不足,很容易出现用户态的程序直接访问内核态的数据(如网络协议),这种情况下很容易出现冲突和异常,同时,又因为网络数据包在一个余量很小(比如剩余1-2MB)的DDR中,长时间跑大的网络流量,很容易出现缓冲数据包,重传数据包,PS数据包(Power Save)等等,以至于让可本来就很小余量的DDR,变的更小,从而产生了分配时失败,需要等待,再分配的恶性循环,因此,系统会变慢;如果分配时失败没有做处理,那么会死机。这就是问题1与问题4的两个不同结果;问题1是会变慢,问题4会死机。
对于采用Linux操作系统作为路由器OS的厂商,如果也去做Cost down,用小内存跑系统,更容易出现不稳定的问题,因为vxWorks操作系统可以有内存池的概念,可以预分配,OOM的概率降低很多;而linux操作系统在进行网络数据包的处理时,很难做内存池,因为它区分用户态与内核态,数据包收到时存在内核态,内容到用户态处理完才可以释放,因此,数据包的传递有malloc与free的操作,并且是大量的。在这个过程中,很容易出现异步,即上层还未处理完数据包,下层又来大量的数据,导致系统运作失控,很容易变慢或者死机。之所以变慢是因为当free状态的memory不足时,操作系统会从cached中要回memory,如果这个操作还不能满足需求,则会随机的kill优先级低的进程,来保证系统不死机,但,这个就是饮鸩止渴,最后,系统还是会死机,因为谁也不知道它会kill哪个进程,我们看到过很多这种案例。最好的作法就是不让它oom去触发kill进程的操作,即留足够的内存余量。


问题2与问题3原因相同,这个问题有两种可能。你们的组播数据肯定是从Internet上的Server到路由器,然后路由器到小米盒子,这样的通路。在这样的链路建立的过程是小米盒子发起组播请求,给Internet上的server,在经过路由器WAN口时,由IGMP Proxy协议把局域网地址转成Internet地址,server收到后把组播响应发回路由器WAN口,由IGMP Proxy将组播响应传回内网,这样,就实现了组播可以NAT的效果。接下来,已此原理看你们看到的问题:问题2,有的路由器无线不行有线行,说明这个路由器是支持IGMP Proxy的,只不过实现的时候无线没有考虑,只实现了有线;问题3,有的路由器完全不行,原因是这个路由器不支持IGMP Proxy,所以,不能进行组播NAT。你们可以做个实验,对于那些不能转发IP组播包的路由器,你们把server路由器接在同一个交换机下,看看路由器是否能够转发组播包就知道答案了。
对于问题2的还有一种可能是,它的无线也可以转组播,只不过无线驱动里面没有去做组播转单播的设计,无线驱动对于组播包的传输,是以1Mbps或者11Mbps的速率在发送,这个速率下很容易出现收不到的情况。一般的作法是当组播包到无线驱动后,会将他转成单播包,以11N的速率发出来。所以,对于问题2,你们可以抓包,看看是否从路由器的无线中,有发出组播包,就知道是驱动没有做IGMP Proxy的处理还是没有做组播转单播的处理。

via 张先生,TPlink路由器 研发负责人。

上一篇:小米路由器公测版硬件配置说明与简单解析
下一篇:大家介绍几款路由器吧
沙发
发表于 2014-1-28 22:42 | 只看该作者
回复 支持 反对

使用道具 举报

板凳
发表于 2014-8-11 16:52 | 只看该作者
学习学习!
回复 支持 反对

使用道具 举报

地板
发表于 2014-10-30 14:20 | 只看该作者

学习学习!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|新帖|标签|软件|Sitemap|ZNDS智能电视网 ( 苏ICP备2023012627号 )

网络信息服务信用承诺书 | 增值电信业务经营许可证:苏B2-20221768 丨 苏公网安备 32011402011373号

GMT+8, 2024-4-28 14:12 , Processed in 0.055416 second(s), 13 queries , Redis On.

Powered by Discuz!

监督举报:report#znds.com (请将#替换为@)

© 2007-2024 ZNDS.Com

快速回复 返回顶部 返回列表