对于常见的低端芯片switch实现中,WAN口虽然是只是switch中的一个port,物理上虽然和其它的口没有啥差别,但在软件上已经做了隔离处理,即不能在switch内部直接做端口转发。
隔离的最终效果是:不论LAN口或WAN口的收发数据,最总都要经过switch的CPU port进入 主核处理(如果有硬件加速器 && 满足硬件加速条件 则直接走硬件转发),数据流向如下:
LAN -> WAN方向: LAN rx -> CPU PORT rx -> (CPU or HWNAT handler) -> CPU PORT tx -> WAN tx
WAN -> LAN方向:WAN rx -> CPU PORT rx -> (CPU or HWNAT handler) -> CPU PORT tx -> LAN tx
上述数据流向显示,不论在从哪个方向打流,最终都会汇聚到CPU Port口 Rx方向,CPU Port一般的接入总线都是RGMII,虽然双向能各达到1G,但是注意这里的汇聚的是Rx单方向,所以,不论怎么打流,从数据流向已经决定了LAN WAN之间不论单向、双向同时跑,最大只能达到1G
对于中高端芯片的做法改善此问题的做法:
1)重新定义LAN、WAN数据流向设计,最终的目的是不需要经过一个被限制了速率的汇聚点
2)提高CPU Port总线规格,比如对于全千兆提高成XGMII等