CN103747068B - 一种基于fpga实现tap设备功能的系统 - Google Patents
一种基于fpga实现tap设备功能的系统 Download PDFInfo
- Publication number
- CN103747068B CN103747068B CN201310740739.1A CN201310740739A CN103747068B CN 103747068 B CN103747068 B CN 103747068B CN 201310740739 A CN201310740739 A CN 201310740739A CN 103747068 B CN103747068 B CN 103747068B
- Authority
- CN
- China
- Prior art keywords
- module
- data
- processing module
- network
- inner buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于FPGA实现TAP设备功能的系统,通过快速路径模块实现一对一或一对多复制,直接从输入端口直通到输出端口,实现快速的数据复制转发;内部缓存模块内嵌RAM分为多级实现,各级的读写控制不一,保证了传输随机包的情况下满流量不产生丢包;FPGA内部的交换功能模块能动态地根据监控侧端口忙或者空闲状态,及其速率模式,把网络侧端口数据通过其本身进行相应调度转发,从而实现数据汇聚及负载均衡功能,并解决了资源竞争和带宽不够的问题,增大了通道带宽的利用率。
Description
技术领域
本发明涉及网络设备领域,特别是一种基于FPGA实现TAP设备功能的系统。
背景技术
以太网分路器(TAP设备)是一种以太网流量复制设备,该设备能够在不中断网络正常流量的情况下,实时获取网络数据,对全线速的双向会话进行准确无误的监测,因此,TAP设备是运营商网络流量分析及增值业务系统、移动网络信令监测及内容监测系统、IDC内容审计检测、IP网络安全、IP入侵检测、IP内容审计等解决方案中获取IP流量和内容信息不可或缺的设备。
传统以太网分路器(TAP设备)一般有三种实现方式,一是采用以太网PHY芯片背靠背连接;二是通过内嵌交换机芯片实现;三是通过NPU(网络处理器)实现。
参照图1所示采用以太网PHY芯片背靠背连接的方式实现的TAP设备,原有链路的下行数据经过PHY1后复制一份输送到PHY2沿着原有链路正常传输,另一份传送到PHY3输出到监控侧链路。同理,上行数据也采用同样方法实现数据采集。从中可以发现,数据只能做到一对一复制,无法做到一对多复制或者多对一的汇聚;PHY1、PHY2、PHY3、PHY4 必须保持同样的工作速率,否则会导致监控侧链路无法采集到数据,功能比较单一。
参照图2所示采用内嵌交换机芯片方式实现的TAP设备,受限于SWITCH的数据存储转发机制,一般数据包在SWITCH内停留的时间较长,且不固定,导致转发延迟较大(微秒级别),特别是对延迟较为敏感的网络侧端口影响最为严重;受限于SWITCH的功能限制,大部分中低端SWITCH在负载均衡功能上,无法做到基于端口流量的均衡;受制于SWITCH的功能限制,SWITCH会丢弃一些MAC控制帧和错误包,不能实现全线速100%数据捕获,使得TAP设备无法呈现全部网络数据。
参照图3所示采用NPU实现的TAP设备,受限于NPU的软处理机制,转发延迟较大,对以太网数据的处理不能做到实时,特别是对延迟较为敏感的网络侧端口影响最为严重;NPU需要的外围配置电路多,增加了系统的复杂程度及成本;由于受限于NPU软处理的速度及软件算法的效率,无法做到实时大流量的数据处理。
鉴于以上三种方式的不利因素,寻找一种替代方案解决上述问题成为当前的一个技术难题。
发明内容
为解决上述问题,本发明的目的在于提供一种基于FPGA实现TAP设备功能的系统,在基于硬件实现以太网数据流的调度和传输的同时,实现TAP设备较低的数据转发时延、数据的一份或多份复制、满流量汇聚和负载均衡功能。
本发明解决其问题所采用的技术方案是:
一种基于FPGA实现TAP以太网分路器设备功能的系统,包括网络侧端口和监控侧端口,其特征在于,所述网络侧端口与监控侧端口之间通过FPGA连接,所述FPGA包括:
与网络侧端口连接的接收处理模块;
与监控侧端口连接的发送处理模块;
与接收处理模块连接的内部缓存模块;
与发送处理模块连接的输出控制模块;以及
连接在所述内部缓存模块与输出控制模块之间的快速路径模块和交换功能模块;其中,
所述接收处理模块用于接收网络侧端口发送的数据;
所述内部缓存模块用于存储接收处理模块收到的数据;
所述输出控制模块用于激活快速路径模块或者/和交换功能模块,并控制快速路径模块或者/和交换功能模块将处理后的数据传送至发送处理模块;
所述快速路径模块用于在被激活后,读取内部缓存模块中相应的数据并将其复制后传送至发送处理模块;
所述交换功能模块用于在被激活后,读取内部缓存模块中相应的数据并将其分流或汇聚处理后传送至发送处理模块;
所述发送处理模块用于将收到的数据传送至相应的监控侧端口;
所述交换功能模块包括负载均衡模块与汇聚模块,所述负载均衡模块用于将内部缓存模块中的相应数据动态分流后由发送处理模块传送至监控侧端口;所述汇聚模块用于将内部缓存模块中相应的数据汇聚后由发送处理模块传送至监控侧端口;
所述负载均衡模块通过对补码运算结果符号位的判断后由DeMux分离器模块实现数据包的动态分流;
所述汇聚模块通过对补码运算结果符号位的判断后由Mux数据选择器模块实现数据包的动态汇聚。
所述网络侧端口与所述监控侧端口均至少有一对。
所述内部缓存模块为内嵌式RAM,所述RAM分多级读写,且各级的读写控制进行分别设置。
所述接收处理模块与所述发送处理模块分别通过RGMII接口与所述网络侧端口、监控侧端口无缝连接。
所述快速路径模块从内部缓存模块中读取相应的数据后并将其复制时,根据输出控制模块的控制,一对一或者一对多复制数据。
所述负载均衡模块对补码运算结果符号位的判断具体为:
统计数据输入中当前发送包数据的包长;
根据上一次差异控制结果确定当前包长补码运算的符号位;
根据上一次差异控制结果确定当前差异值补码运算的符号位;
将两个补码运算后的结果相加获得当前差异值;
根据当前差异值的符号位确定下一个数据包的流向。
所述汇聚模块对补码运算结果符号位的判断具体为:
统计数据输入中当前发送包数据的包长;
根据上一次差异控制结果确定当前包长补码运算的符号位;
根据上一次差异控制结果确定当前差异值补码运算的符号位;
将两个补码运算后的结果相加获得当前差异值;
根据当前差异值的符号位选择输入的数据。
本发明通过快速路径模块实现一对一或一对多复制,直接从输入端口直通到输出端口,实现快速的数据复制转发。
内部缓存模块内嵌RAM分为多级实现,各级的读写控制不一,保证了传输随机包的情况下满流量不产生丢包。
FPGA内部的交换功能模块能动态地根据监控侧端口忙或者空闲状态,及其速率模式,把网络侧端口数据通过其本身进行相应调度转发,从而实现数据汇聚及负载均衡功能,并解决了资源竞争和带宽不够的问题,增大了通道带宽的利用率。
本发明的有益效果是:
本发明采用一种基于FPGA实现TAP设备功能的系统,通过快速路径模块实现一对一或一对多复制,直接从输入端口直通到输出端口,实现快速的数据复制转发;内部缓存模块内嵌RAM分为多级实现,各级的读写控制不一,保证了传输随机包的情况下满流量不产生丢包;FPGA内部的交换功能模块能动态地根据监控侧端口忙或者空闲状态,及其速率模式,把网络侧端口数据通过其本身进行相应调度转发,从而实现数据汇聚及负载均衡功能,并解决了资源竞争和带宽不够的问题,增大了通道带宽的利用率。
附图说明
下面结合附图和实例对本发明作进一步说明。
图1是以太网PHY芯片背靠背连接实现的TAP设备的工作原理示意图;
图2是内嵌交换机芯片方式实现的TAP设备的工作原理示意图;
图3是采用NPU实现的TAP设备的工作原理示意图;
图4是本发明所述FPGA内部结构组成框图;
图5是本发明采用FPGA实现的TAP设备的工作原理示意图;
图6是本发明所述接收处理模块与发送处理模块分别处理数据的内部流程图;
图7是本发明所述负载均衡模块工作的原理示意图;
图8是本发明所述汇聚模块工作的原理示意图;
图9是本发明的具体应用的示意图。
具体实施方式
参照图1、图2和图3所示的现有的技术方案,说明书背景技术中已经指出其中存在的缺陷,本发明针对以上缺陷,开发了一种基于FPGA实现TAP设备功能的系统,参照图4所示,包括网络侧端口和监控侧端口,所述网络侧端口与监控侧端口之间通过FPGA连接,所述FPGA包括:
与网络侧端口连接的接收处理模块;
与监控侧端口连接的发送处理模块;
与接收处理模块连接的内部缓存模块;
与发送处理模块连接的输出控制模块;以及
连接在所述内部缓存模块与输出控制模块之间的快速路径模块和交换功能模块;其中,
所述接收处理模块用于接收网络侧端口发送的数据;
所述内部缓存模块用于存储接收处理模块收到的数据;
所述输出控制模块用于激活快速路径模块或者/和交换功能模块,并控制快速路径模块或者/和交换功能模块将处理后的数据传送至发送处理模块;
所述快速路径模块用于在被激活后,读取内部缓存模块中相应的数据并将其复制后传送至发送处理模块;
所述交换功能模块用于在被激活后,读取内部缓存模块中相应的数据并将其分流或汇聚处理后传送至发送处理模块;
所述发送处理模块用于将收到的数据传送至相应的监控侧端口。
所述接收处理模块与所述发送处理模块分别通过RGMII接口与所述网络侧端口、监控侧端口无缝连接。
其中,所述网络侧端口与所述监控侧端口均至少有一对,在FPGA资源允许的情况下端口数量可灵活扩展。本发明在实现时,除PHY(物理层接口芯片)及FPGA之外,无需其他核心器件,简化了系统的复杂程度,降低了设备成本。
所述内部缓存模块为内嵌式RAM,所述RAM分多级读写,且各级的读写控制进行分别设置,保证了传输随机包的情况下满流量不产生丢包现象。
所述快速路径模块从内部缓存模块中读取相应的数据后并将其复制时,根据输出控制模块的控制,直接从输入端口直通到输出端口,实现快速的一对一或者一对多复制数据并转发。
参照图5所示的TAP设备工作原理的示意图,所述 FPGA内部将网络侧端口PHY的RGMII接口直接环回,数据包无需经过缓存直接进行转发,极大地降低了网络侧之间的延迟。
所述接收处理模块与所述发送处理模块在处理数据时,支持10/100/1000 M三速工作模式,支持最大16000字节巨帧,完成MAC层的数据处理。参照图6所示,接收处理模块在处理数据时,RGMII接口接收的数据通过double data rate I/O(简称DDIO)直连技术提升数据的处理方式,缩小数据的延迟时间,再经时钟域转换后,包解析为内部帧格式;发送处理模块则相反,内部帧格式数据经包封装,经时钟域转换后通过double data rate I/O(简称DDIO)直连从RGMII接口发出,同样降低延迟。
所述交换功能模块包括负载均衡模块与汇聚模块,所述负载均衡模块用于将内部缓存模块中的相应数据动态分流后由发送处理模块传送至监控侧端口;所述汇聚模块用于将内部缓存模块中相应的数据汇聚后由发送处理模块传送至监控侧端口。
参照图7所示,所述负载均衡模块通过对补码运算结果符号位的判断后由DeMux模块实现数据包的动态分流,DeMux为分离器,用于分离信号,其中,对补码运算结果符号位的判断具体如下:
统计数据输入中当前发送包数据的包长;
根据上一次差异控制结果确定当前包长补码运算的符号位;
根据上一次差异控制结果确定当前差异值补码运算的符号位;
将两个补码运算后的结果相加获得当前差异值;
根据当前差异值的符号位确定下一个数据包的流向。
参照图8所示,所述汇聚模块通过对补码运算结果符号位的判断后由Mux模块实现数据包的动态汇聚,Mux为数据选择器,为能够根据需要将其中任意一路选出来的电路,所述对补码运算结果符号位的判断具体为:
统计数据输入中当前发送包数据的包长;
根据上一次差异控制结果确定当前包长补码运算的符号位;
根据上一次差异控制结果确定当前差异值补码运算的符号位;
将两个补码运算后的结果相加获得当前差异值;
根据当前差异值的符号位选择输入的数据。
所述FPGA内部的交换功能模块能动态地根据监控侧端口忙或者空闲状态,及其速率模式,把网络侧端口数据通过其本身进行相应调度转发,从而实现数据汇聚及负载均衡功能,并解决了资源竞争和带宽不够的问题,增大了通道带宽的利用率。
参照图9所示,为发明的一个具体应用,以太网链路上的数据通过TAP设备,采集到4个端口输出到下一级的NP(网络处理器)进行分析。4个端口物理状态反馈到FPGA,作用于调度控制模块,使得FPGA输出接口与外部NP一致。同时,根据端口的物理连接状态动态的配置流量。TAP设备的各种功能可以通过网管或硬件拨码开关进行灵活配置,提供使用者全面可视的网络数据流,实现对全线速的双向会话进行准确无误的监测。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
Claims (7)
1.一种基于FPGA实现TAP以太网分路器设备功能的系统,包括网络侧端口和监控侧端口,其特征在于,所述网络侧端口与监控侧端口之间通过FPGA连接,所述FPGA包括:
与网络侧端口连接的接收处理模块;
与监控侧端口连接的发送处理模块;
与接收处理模块连接的内部缓存模块;
与发送处理模块连接的输出控制模块;以及
连接在所述内部缓存模块与输出控制模块之间的快速路径模块和交换功能模块;其中,
所述接收处理模块用于接收网络侧端口发送的数据;
所述内部缓存模块用于存储接收处理模块收到的数据;
所述输出控制模块用于激活快速路径模块或者/和交换功能模块,并控制快速路径模块或者/和交换功能模块将处理后的数据传送至发送处理模块;
所述快速路径模块用于在被激活后,读取内部缓存模块中相应的数据并将其复制后传送至发送处理模块;
所述交换功能模块用于在被激活后,读取内部缓存模块中相应的数据并将其分流或汇聚处理后传送至发送处理模块;
所述发送处理模块用于将收到的数据传送至相应的监控侧端口;
所述交换功能模块包括负载均衡模块与汇聚模块,所述负载均衡模块用于将内部缓存模块中的相应数据动态分流后由发送处理模块传送至监控侧端口;所述汇聚模块用于将内部缓存模块中相应的数据汇聚后由发送处理模块传送至监控侧端口;
所述负载均衡模块通过对补码运算结果符号位的判断后由DeMux分离器模块实现数据包的动态分流;
所述汇聚模块通过对补码运算结果符号位的判断后由Mux数据选择器模块实现数据包的动态汇聚。
2.根据权利要求1所述的系统,其特征在于,所述网络侧端口与所述监控侧端口均至少有一对。
3.根据权利要求1所述的系统,其特征在于,所述内部缓存模块为内嵌式RAM,所述RAM分多级读写,且各级的读写控制进行分别设置。
4.根据权利要求1所述的系统,其特征在于,所述接收处理模块与所述发送处理模块分别通过RGMII接口与所述网络侧端口、监控侧端口无缝连接。
5.根据权利要求1所述的系统,其特征在于,所述快速路径模块从内部缓存模块中读取相应的数据后并将其复制时,根据输出控制模块的控制,一对一或者一对多复制数据。
6.根据权利要求1 所述的系统,其特征在于,所述负载均衡模块对补码运算结果符号位的判断具体为:
统计数据输入中当前发送包数据的包长;
根据上一次差异控制结果确定当前包长补码运算的符号位;
根据上一次差异控制结果确定当前差异值补码运算的符号位;
将两个补码运算后的结果相加获得当前差异值;
根据当前差异值的符号位确定下一个数据包的流向。
7.根据权利要求1所述的系统,其特征在于,所述汇聚模块对补码运算结果符号位的判断具体为:
统计数据输入中当前发送包数据的包长;
根据上一次差异控制结果确定当前包长补码运算的符号位;
根据上一次差异控制结果确定当前差异值补码运算的符号位;
将两个补码运算后的结果相加获得当前差异值;
根据当前差异值的符号位选择输入的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740739.1A CN103747068B (zh) | 2013-12-27 | 2013-12-27 | 一种基于fpga实现tap设备功能的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740739.1A CN103747068B (zh) | 2013-12-27 | 2013-12-27 | 一种基于fpga实现tap设备功能的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103747068A CN103747068A (zh) | 2014-04-23 |
CN103747068B true CN103747068B (zh) | 2017-07-18 |
Family
ID=50504054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310740739.1A Expired - Fee Related CN103747068B (zh) | 2013-12-27 | 2013-12-27 | 一种基于fpga实现tap设备功能的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103747068B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656804B (zh) * | 2017-02-05 | 2019-11-19 | 北京中航通用科技有限公司 | 低延时的报文转发方法、装置及交换机 |
CN108234192A (zh) * | 2017-12-01 | 2018-06-29 | 深圳市显控科技股份有限公司 | 一种EtherCAT网络分析装置和方法 |
CN108809864B (zh) * | 2018-06-15 | 2020-09-01 | 中国电子科技集团公司第四十一研究所 | 一种基于fpga的多线卡高密度tap交换机 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741571A (zh) * | 2008-11-25 | 2010-06-16 | 北京大学深圳研究生院 | 一种以太网多路分路器及其实现方法 |
CN101986616A (zh) * | 2010-10-18 | 2011-03-16 | 上海电机学院 | 以太网分路器及其分路方法 |
CN202750101U (zh) * | 2012-08-30 | 2013-02-20 | 上海粱江通信系统股份有限公司 | 一种以太网消息处理机 |
-
2013
- 2013-12-27 CN CN201310740739.1A patent/CN103747068B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741571A (zh) * | 2008-11-25 | 2010-06-16 | 北京大学深圳研究生院 | 一种以太网多路分路器及其实现方法 |
CN101986616A (zh) * | 2010-10-18 | 2011-03-16 | 上海电机学院 | 以太网分路器及其分路方法 |
CN202750101U (zh) * | 2012-08-30 | 2013-02-20 | 上海粱江通信系统股份有限公司 | 一种以太网消息处理机 |
Non-Patent Citations (1)
Title |
---|
多用途以太网分路器的设计与实现;王瑞刚;《电视技术》;20110331;第35卷(第5期);第74-76、87页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103747068A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11032205B2 (en) | Flow control method and switching device | |
US20070053294A1 (en) | Network load balancing apparatus, systems, and methods | |
CN102263697B (zh) | 一种聚合链路流量分担方法和装置 | |
US7680039B2 (en) | Network load balancing | |
CN102299845B (zh) | 多链路透明互联多播帧传输方法和系统 | |
WO2020236300A1 (en) | Method and system for providing network ingress fairness between applications | |
CN102025617B (zh) | 以太网拥塞控制方法及装置 | |
US6851008B2 (en) | Adaptive flow control method and apparatus | |
CN100495985C (zh) | 快速检测以太网交换机环路故障的方法 | |
EP1729461A1 (en) | Dynamic port failover | |
WO2015090088A1 (zh) | 一种数据传输方法、核心转发设备以及端点转发设备 | |
CN1825836B (zh) | 避免网络设备拥塞的系统和方法 | |
CN106357547A (zh) | 一种基于流切片的软件定义网络拥塞控制算法 | |
CN103747068B (zh) | 一种基于fpga实现tap设备功能的系统 | |
CN101035050A (zh) | 一种虚拟局域网聚合的处理方法 | |
CN102098301A (zh) | 多链路自适应的数据传输方法与系统 | |
CN102611620A (zh) | 拥塞控制方法和报文处理设备 | |
CN107948103A (zh) | 一种基于预测的交换机pfc控制方法及控制系统 | |
CN103139093A (zh) | 基于fpga的高速网络数据流负载均衡调度方法 | |
US10728156B2 (en) | Scalable, low latency, deep buffered switch architecture | |
CN110061929A (zh) | 针对非对称网络的数据中心负载均衡方法 | |
CN105141538A (zh) | 一种跨网络堆叠系统及其对报文的处理方法 | |
CN105656776A (zh) | 一种伪线双归保护切换系统、方法和装置 | |
Hu et al. | Enabling load balancing for lossless datacenters | |
CN101626346B (zh) | 自适应时钟恢复方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170718 Termination date: 20201227 |