路由器理论上能跑满多大接入带宽

2018-09-07 21:13:29 +08:00
 cwbsw
家用路由器一般都是接在千兆交换机的一个端口上,这种设计理论上只能跑满双向共计 1Gbps 的带宽,如果是千兆对等网络就不能胜任了。

另外,所谓的单臂路由无论是通过 VLAN 实现或者直接在光猫的 LAN 上拨号,与这种只有交换芯片的路由器设计,理论上能达到的最大带宽是相同的。

以上理解是否正确?
11494 次点击
所在节点    宽带症候群
53 条回复
zwy100e72
2018-09-07 21:32:26 +08:00
上限的话,就是你的物理接口连接速度
比如网口是 1Gbps 全双工,不考虑 NAT 的话就能跑满双向各 1Gbps 速度
单臂路由器如果也是通过一个 1Gbps 全双工的网口连接的,那么可以跑满双向加起来共计 1Gbps 速度
不过常见的单臂路由器应该是通过内部总线直接连到内部交换芯片的,这个就要看内部总线的速度了
237176253
2018-09-07 21:39:24 +08:00
k2p 能跑上下行 1000m
cwbsw
2018-09-07 22:01:55 +08:00
@zwy100e72
CPU 只接交换芯片的一个端口,就相当于只有一张网卡,就算 1Gbps 全双工,只能跑满外网的 1Gbps 下行,同时跑满 1Gbps 的上下行应该需要 2 张 1Gbps 全双工的网卡。
rio
2018-09-07 22:23:23 +08:00
你对「全双工」是不是有什么误解😂
cwbsw
2018-09-07 22:31:09 +08:00
@rio
全双工就是双向 1Gbps。但是路由器是一收一发,如果局域网内一台设备以 1Gbps 速率下载,那么路由器就需要在 WAN 口以 1Gbps 收包,同时在 LAN 口以 1Gbps 发包,合计就需要 2Gbps 带宽,如果要跑满双向 1Gbps 的宽带,路由器就需要两张千兆网卡,合计 4Gbps 的带宽。
billlee
2018-09-07 23:07:57 +08:00
背板带宽了解一下?
LGA1150
2018-09-08 04:37:16 +08:00
@zwy100e72 “内部总线”也只是 GMII/RGMII/SGMII,也是 1Gbps
xenme
2018-09-08 06:47:20 +08:00
单臂模式只是路由结构,变成了旁路并不是真的新的三层网段。

如果是单接口,如你所说,转发 500Mbps 的 uplink 需要收 500mbps,再发 500mbps,等于一次占掉双向 500,全双工转发 500Mbps,路由带宽就跑满双向 1Gbps 了

解决方案也很简单,类似双臂加一个网口,数据在路由内部交换就行了,还是单臂,只是多占用一个 IP 而已
wwqgtxx
2018-09-08 08:53:21 +08:00
@LGA1150 但是大部分路由器 soc 和交换机硬盘之间的连接接口直接走的是 pci-e 接口,并不只是 gmii 系列
wwqgtxx
2018-09-08 09:09:05 +08:00
比如这篇文章中有常见的千兆路由器 SOC BCM4708 的结构图
https://www.anandtech.com/show/5925/broadcom-announces-bcm4708x-and-bcm5301x-socs-for-80211ac-routers
明确了是 SOC 直接对外提供 5 口 GbE,而它和内部 CPU 的通讯完全是走内部总线
然后它和无线模块的芯片是通过 pci-e 进行连接的
The obvious high-end platform configuration for a Broadcom-based 802.11ac router thus becomes a BCM4708x with two BCM4360s (one transceiver for 2.4 GHz 802.11n, another for 5 GHz 802.11ac) connected over PCIe 1x.
所以他们之间的通讯完全不受普通千兆网口的带宽限制
cwbsw
2018-09-08 09:12:42 +08:00
@billlee
背板带宽是交换机端口速率的总和,但是只有一个端口连接到路由器。
@xenme
没太懂,数据在路由内部交换是指?
@wwqgtxx
问题是 CPU 只连接了交换机的一个端口,这种结构事实上等效于单网卡机器连接交换机通过划分 VLAN 作单臂路由这种形式。
billlee
2018-09-08 09:28:21 +08:00
@cwbsw #11 路由器的芯片是 SoC, 交换模块和 CPU 都在一块芯片上,几个以太网口是直接从片上引出的。一般情况被路由的数据包也不需要经过 CPU.
wwqgtxx
2018-09-08 09:34:27 +08:00
@cwbsw 你可以理解成 CPU 只连接了交换机的一个端口,但是 CPU 连接的是一个“超级端口”,这个端口的带宽并不是只有双向千兆,而是根据内部交换机芯片和内部 IO 总线之间的带宽决定的
cwbsw
2018-09-08 09:41:31 +08:00
@billlee
绕过 CPU 快速转发是可能的。
但是就算在同一块芯片,CPU 和 Switch 之间速率也只能是 1Gbps 全双工,因为数据交换的中心是 Switch,端口速率是由 Switch 的交换效率决定而不是连接 Switch 的总线速率。
cwbsw
2018-09-08 09:46:12 +08:00
@wwqgtxx
难道把千兆 Switch 接到 100000G 的外部总线上,就能跑满 100000G ?用逻辑想想……
wwqgtxx
2018-09-08 10:04:06 +08:00
@cwbsw 你的理解逻辑是有问题的,千兆 switch 只是说它提供的每个网口之间的带宽是双向 1000mbps,但是并不是整个交换矩阵的带宽就只有 1000mbps,假设外部总线的带宽是 10gbps 那么 CPU 就可以同时同该 switch 的 5 个端口进行双向 1000mbps 的通讯。这个情况就类似于你有一个千兆交换机,上面连接了 4 个百兆设备,一个千兆设备,在这种情况下,你的百兆设备之间的通讯还是最大只有 100mbps 但是该千兆设备却可以同时以 100mbps 的速度和其他四个百兆设备通讯而不会遇到瓶颈
xenme
2018-09-08 10:08:30 +08:00
wwqgtxx
2018-09-08 10:09:51 +08:00
任何 hub 也没说他的上级级联端口和下级端口的带宽必须一致,就好比主板上常用的 usb 3.x 芯片,他的上级接口是 pci-e 4x,下级端口是 usb3.x,按照你的逻辑难道这个芯片下面接了多个 usb3.x 设备只有一个设备能跑满带宽么,那样级联端口用 pci-e 4x 设计者的脑子进水了么,用个 1x 的端口不就够了
hjc4869
2018-09-08 10:13:22 +08:00
@LGA1150 可以用内部 SerDes,GbE 交换机跟 SoC 之间常见的带宽可以达到 2.5Gbps 或更高。
cwbsw
2018-09-08 10:20:48 +08:00
@wwqgtxx
switch dev switch0 show

pvid: 0
link: port:6 link:up speed:1000baseT full-duplex

port 6 就是 CPU 端口,你解释下这个 1000baseT 是什么意思吧。
设计者脑子当然很精明,因为这本来就是家用路由器缩减成本的做法,难道还会给你弄一个端口速率 10Gbps 的 Switch。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/487237

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX