当前位置:网站首页>网络设备硬核技术内幕 路由器篇 15 从鹿由器到路由器 (下)
网络设备硬核技术内幕 路由器篇 15 从鹿由器到路由器 (下)
2022-07-27 14:05:00 【用户8289326】
在前两期专题中,我们分析了家庭宽带(PPPoE)和IPTV(IPoE)业务认证和数据转发平面的异同。
我们发现,IPoE和PPPoE的转发面对硬件的要求差别较大,IPoE只需要能够终结QinQ(剥离两层QinQ TAG)即可,而PPPoE则还需要处理PPP的状态机。那么,能不能用不同的转发面处理同一用户的这两类业务呢?
这种设想在SDN日趋成熟的今天,已经成为了现实。
SDN有一大流派,称之为NFV(Network Function Virtualization)。在局域网中,NFV主要用于虚拟化安全资源,来应对专用设备无法承载的超大业务量。而在运营商网络中,NFV则可以用于WLAN控制器(vAC)和宽带远程接入服务(vBRAS)。
vBRAS采用了所谓的转控分离技术。
vBRAS本身是一个运行于标准x86服务器上的软件,拥有终结QinQ,处理PPPoE、IPoE等能力。来自OLT的流量会进行不同的处理,如下表:
PPPoE信令 | vBRAS |
|---|---|
PPPoE数据转发 | vBRAS(x86)/SR(NP) |
IPoE认证 | vBRAS |
IPoE数据转发 | 交换机(ASIC) |
我们发现,流量最大的IPTV业务,在vBRAS方案中,从成本较高的NP承载变成了价廉物美的交换机ASIC承载。路由器NP则依然处理家庭宽带上网的PPPoE数据转发业务。vBRAS的x86 CPU处理认证过程,也就是控制平面的业务。
这就是所谓的转控分离的设计思想。x86 CPU擅长处理复杂的逻辑,如状态机等,因此用来进行网络控制平面的数据包处理。而NP可以处理较为复杂的PPP+QinQ业务,被用于处理PPPoE转发。最简单的IPoE交给交换机ASIC。
当然,对于VoIP这样的大会话小流量业务,是可以在vBRAS上直接处理的,这样可以充分利用x86低廉价格的RAM处理大量会话资源。
随着在x86上处理的网络业务越来越多,x86也遇到了一些麻烦。
我们知道,x86上运行的操作系统,无论是Linux,还是windows,实际上都是不适合处理网络密集型的任务的。这是因为,x86的网络适配器(网卡),每收发一个数据包都会触发一次处理器的中断。中断会消耗大量的CPU时间,并引起指令缓存的cacheline miss。
此外,传统的Linux内核在收到数据包时,会将数据包缓存(mbuf)从网卡驱动的地址空间(内核态)拷贝到应用程序的地址空间(用户态)。这更是在数据平面无法接受的。这也限制了x86在网络领域的应用。
为了提升x86在网络领域的份额,英特尔启动了DPDK(Data Plane Develop Kit)计划,帮助用户在x86上实现高速的数据转发。而其他非Intel的RISC多核处理器厂商也在持续发力,CISC和RISC多核在网络领域的竞争已经进入白热化。
明天,我们将从多核开始,介绍路由器的另一种实现方式。敬请期待。
边栏推荐
- The database uses PSQL and JDBC to connect remotely and disconnect automatically from time to time
- DVWA full level customs clearance tutorial
- Visual system design example (Halcon WinForm) -10. PLC communication
- NEFU118 n! How many zeros are there after [basic theorem of arithmetic]
- Import the virtual machine officially made by Kali Linux into Oracle VirtualBox
- Failed to connect to ResourceManager
- Skywalking distributed system application performance monitoring tool - medium
- 国信证券手机开户安全吗 中山证券靠谱吗
- @What happens when bean and @component are used on the same class?
- How to do well in enterprise system vulnerability assessment
猜你喜欢

User question understanding and answer content organization for epidemic disease Science Popularization

C语言基础知识梳理总结

对话框管理器第三章:创建控件

Passive income: return to the original and safe two ways to earn

STM32 - capacitive touch button experiment

idea打jar包与引入jar包

Automatically configure SSH password free login and cancel SSH password free configuration script

视觉系统设计实例(halcon-winform)-10.PLC通讯
![[work] about technical architecture](/img/24/f3402c04157ce9a8846580f017f472.png)
[work] about technical architecture

关于 CMS 垃圾回收器,你真的懂了吗?
随机推荐
HDU3117 Fibonacci Numbers【数学】
OBS 进阶之 DXGI 采集屏幕流程,并如何修改为自己的光标
JS 疫情宅在家,学习不能停,七千字长文助你彻底弄懂原型与原型链
DXGI 方式采集流程
Nefu117 number of prime numbers [prime number theorem]
【ManageEngine】什么是SIEM
Interprocess communication
Nefu119 combinatorial prime [basic theorem of arithmetic]
DXGI acquisition process
终于有人把面试必考的动态规划、链表、二叉树、字符串全部撸完了
电子制造行业的数字化转型突破点在哪?精益制造是关键
[intensive reading of papers] grounded language image pre training (glip)
internship:其他配置类的编写
How to deploy open source Siyuan privately
南山区民政局关于开展2022年度南山区社会组织等级评估工作的通知
Lesson 3: SPFA seeking the shortest path
Docker practical experience: deploy mysql8 master-slave replication on docker
STM32F103C8T6在Arduino框架下驱动ssd1306 0.96“ IIC OLED显示
DirectX 入门知识
What you want most is the most comprehensive summary of C language knowledge. Don't hurry to learn