当前位置:网站首页>网络设备硬核技术内幕 路由器篇 21 可重构的路由器
网络设备硬核技术内幕 路由器篇 21 可重构的路由器
2022-07-27 14:05:00 【用户8289326】
在前面20篇专题中,我们看到了,路由器可以通过这些方法实现:
- 家用路由器,一般使用Broadcom或MTK的SoC方案实现,如Broadcom 的BCM7218X,一颗芯片就可以实现集成了Wi-Fi6和IPTV功能的家用路由器盒子。
- 企业级别,1Gbps-200Gbps性能区间的路由器,可以使用Marvell (Cavium),Broadcom(RMI)的MIPS或ARM多核处理器实现。未来也可以利用x86+DPDK实现。
- 企业高端与运营商级别,200G-20T性能区间的路由器,目前一般使用NP实现。
我们发现,性能越高的路由器,使用的转发芯片灵活性越低。以NP为例,NP的报文处理流水线是有限制的。在实践中,出现过这样的案例:
互联网企业需要将城域线路分光出来的流量送到后端进行分析,由于单台分析设备的性能有限,需要按流(业务流的TCP五元组)进行负载均衡。
如下图所示:
其中,右边的数字指的是数据包各个头部字段开始的偏移量。
实际上,用户期望的是,根据内层IP/TCP将数据包分流到多个分析器上。但由于内层IP/TCP被封装在了70多字节以后,而一般的NP/ASIC内置的分析器只能提取报文头部64字节进行解析,因此难以实现这样的功能。对于多核处理器,虽然内部也有硬件解析加速器,同样地,对于这种深层次封装的隧道,处理起来也有困难。
这时候,我们就需要一种可编程的硬件加速单元实现这一功能。工程师们将眼光投向了一类可重构器件——FPGA。
FPGA是"Field Programmable Gate Array" (现场可编程门阵列)的缩写。这个绕口的中文名称实际上可以拆解为几部分:
可编程——它的处理逻辑是可以修改的,不像ASIC那样是相对固化的;
门阵列——它内部的最小编程分配单元是门电路和触发器,因此可以编程的程度很高,可以重构各种处理逻辑;
现场——FPGA内置SRAM存放编译后的代码,可以通过软件在运行时升级,甚至不重启就完成升级;
由于这些特点,FPGA经常用于网络中数据包处理的加速,最典型地就是用于路由器或防火墙的加速。
对于前面提到的城域网镜像流量分析的场景,就是FPGA的用武之地。工程师只需要对FPGA进行编程,让它从78字节处开始提取内层IP/UDP(真实业务地址/端口)的五元组,计算hash后,发送到对应的分析器,就可以完成NP和多核路由器有困难的任务了。
由于FPGA的可重构特性,它实现的可重构路由器更加开放,功能更加强大,也弥补了多核处理器在业务叠加时性能下降的弱点。
大家知道最经典的可重构FPGA路由器是哪款吗?
明天在揭晓答案时,也为大家讲一个路由器故事…
边栏推荐
- Toward Fast, Flexible, and Robust Low-Light Image Enhancement(实现快速、灵活和稳健的弱光图像增强)CVPR2022
- Printf function buffer problem
- 【ManageEngine】什么是SIEM
- Redis
- How to help enterprises optimize office management
- adb命令 (安装apk包格式:adb install 电脑上apk地址包名)
- Lecture 4: Longest ascending substring
- @Bean 与 @Component 用在同一个类上,会发生什么?
- Hdu4496 d-city [concurrent search]
- 2022年中国网络视频市场年度综合分析
猜你喜欢

Understand JS execution context in an article

一文搞懂 Redis 架构演化之路

在Oracle VirtualBox中导入Kali Linux官方制作的虚拟机

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

代码覆盖率统计神器-jacoco工具实战

DVWA full level customs clearance tutorial

What you want most is the most comprehensive summary of C language knowledge. Don't hurry to learn

CPU、GPU、NPU的区别
![[work] about technical architecture](/img/24/f3402c04157ce9a8846580f017f472.png)
[work] about technical architecture

Docker practical experience: deploy mysql8 master-slave replication on docker
随机推荐
Regular expressions: mailbox matching
Getting started for beginners: build your own blog with WordPress
Passive income: return to the original and safe two ways to earn
Is it safe for Guosen Securities to open a mobile account? Is Zhongshan securities reliable
这年头谁还不会抓包,WireShark 抓包及常用协议分析送给你!
STM32——电容触摸按键实验
【云享读书会第13期】视频文件的封装格式
南山区民政局关于开展2022年度南山区社会组织等级评估工作的通知
telnet远程登录aaa模式详解【华为eNSP】
图解 SQL,这也太形象了吧
[Yunxiang book club issue 13] multimedia processing tool ffmpeg tool set
终于有人把面试必考的动态规划、链表、二叉树、字符串全部撸完了
mysql保存数据提示:Out of range value for column错误
Summary of basic knowledge of C language
STM32F103C8T6在Arduino框架下驱动SH1106 1.3“ IIC OLED显示
The interviewer asked: how to judge whether an element is in the visible area?
Lesson 3: SPFA seeking the shortest path
Unity3d learning note 10 - texture array
【科普】精度和分辨率的区别与联系
Kubernetes CNI 分类/运行机制