CN102299971A - 基于fpga的快速地址查找算法 - Google Patents
基于fpga的快速地址查找算法 Download PDFInfo
- Publication number
- CN102299971A CN102299971A CN201010211617XA CN201010211617A CN102299971A CN 102299971 A CN102299971 A CN 102299971A CN 201010211617X A CN201010211617X A CN 201010211617XA CN 201010211617 A CN201010211617 A CN 201010211617A CN 102299971 A CN102299971 A CN 102299971A
- Authority
- CN
- China
- Prior art keywords
- address
- algorithm
- fpga
- module
- keyword
- 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.)
- Pending
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明旨在提供一种基于FPGA的快速地址查找算法,可以内嵌在任何以太网交换网或传输系统中,适用于点到点、点到多点链接来传送多协议数据报文的通信方式,适用于局域网、广域网等以太网技术领域。算法基于FPGA硬件平台,包括:地址表、地址老化模块、地址学习模块、地址查找模块和配置接口。采用动态存储结构,将任意长度的二进制值映射为固定长度的较小关键字,并以关键字为地址区间中的偏移地址,作为记录在表中的存储位置。算法不需要其它外部软件或处理器的干预,程序加载后自动完成地址的学习/查找过程,可以支持单播、组播、广播多种通信方式。
Description
技术领域
本发明涉及局域网、广域网等以太网技术领域,可以内嵌在任何以太网交换网或传输系统中,适用于点到点、点到多点链接来传送多协议数据报文的通信方式,也涉及其它数据格式完成源端到目的端建立信息交换的应用模式。
背景技术
以太网技术是当今现有局域网最通用的通信协议标准,以IP为代表的数据业务的迅速发展,都给网络传输提出了更高的容量和功能要求,为了减少数据交换和查找表带来的延迟,必须建立有效而且快速的地址查找算法。
FLA算法采用动态存储结构,将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为关键字,关键字是一段数据唯一且极其紧凑的数值表示形式。如果输入数据中有变化,则关键字也会发生变化。而且把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间,代价仅仅是消耗比较多的存储空间,然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的特点之一。因此作为线性数据结构,与逐条的比较算法相比,FLA算法无疑是查找速度比较快、经济实用的一种算法。
但按照关键字为每一个输入值″分类″,然后将这个元素存储在相应″类″所对应的地方,因此不能保证每个关键字与输入值是一一对应的,极有可能出现对于不同的输入值,却计算出了相同的关键字,这样就产生了″冲突″。可以采用重新FLA算法来解决该问题,简单的说就是每次产生碰撞,都会根据关键字用另一个FLA函数重新算一个关键字,直到探寻到一个不冲突的关键字。
发明内容
根据设定的FLA函数(使用好的函数公式,在输入数据中所做的更改就可以更改结果关键字中的所有位)和处理冲突方法将网络地址映射到一个有限的地址区间上,并以关键字为地址区间中的偏移地址,作为记录在表中的存储位置。本算法基于FPGA的硬件逻辑开发,不需要其它外部软件或处理器的干预,程序加载后自动完成地址的学习/查找过程,可以支持单播、组播、广播多种通信方式。
本发明的技术方案如下:
模块组件包括:
1.地址表,用来存储地址信息及接收数据的端口号;
2.地址学习模块,学习IP数据流中源地址信息,通过计算得到源地址的关键字,并把地址信息写入地址表中;
3.地址查找模块,查找IP数据流中目的地址,得到目的地址的关键字(也就是对应其它IP数据流中源地址信息),查找地址表,由此知道IP数据流的输出端口;
4.地址老化模块,可由外置的处理器模块来配置老化的参数(使能、老化时间等级、老化时间周期等)和静态地址。
5.配置接口,提供标准的通信总线,连接外置的处理器芯片。
注1:为了满足其它的以太网通信协议,地址表中可以增加其它信息来实现,如增加VLANID实现虚拟局域网技术。
注2:地址表的空间大小由FPGA芯片内嵌或外扩的RAM来决定。
注3:静态地址不受老化时间的影响。
任何一个端口的接收到IP数据流通过FLA算法,对新发现的地址信息加入到地址表中,最终形成整个交换网或传输系统的地址表项,一旦源端口需发送数据,可以快速从地址表中查找到目的地址信息和输出端口,再由交换网或传输系统建立源端口到目的端口的传送路径,完成数据的可靠传输。
为了节省地址空间,实现地址表的重复利用,开启地址老化模块,删除地址表中超时不再使用的地址信息。
附图说明
图1所示为FLA算法在系统中的模型图
具体实施方式
下面根据附图和实例对本发明做进一步详细说明:
实例系统简化模型如图1所示,以二个端口间单播数据为例,主机A(连接端口1,IP地址192.168.1.1,MAC地址00-aa-00-62-c6-01)向主机B(端口2,IP地址192.168.1.2,MAC地址00-aa-00-62-c6-02)发送数据。
1.当发送数据时,主机A会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址,直接把目标MAC地址写入帧里面发送就可以了;如果在ARP缓存表中没有找到目标IP地址,主机A就会在网络上发送一个广播,A主机MAC地址是“主机A的MAC地址”,这表示向同一网段内的所有主机发出这样的询问:“我是192.168.1.1,我的硬件地址是″主机A的MAC地址″.请问IP地址为192.168.1.2的MAC地址是什么?”,这时FLA算法就从端口1学到了00-aa-00-62-c6-01,写入地址表中。
2.网络上其他主机并不响应ARP询问,只有主机B接收到这个帧时,才向主机A做出这样的回应:“192.168.1.2的MAC地址是00-aa-00-62-c6-02”,从端口2同样学到了00-aa-00-62-c6-02,写入地址表中。
3.主机A知道了主机B的MAC地址,而且地址表中也存储了二条地址信息,主机A向主机B发送数据时,交换网或传输系统立即查到了主机A的输入端口1,发送到主机B输出端口2,建立硬件逻辑通路,主机B就接收到了主机A的数据。
以上所述,仅为本发明典型的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (3)
1.基于FPGA的快速地址查找算法,包括:地址表、地址老化模块、地址学习模块、地址查找模块和配置接口。本发明涉及的系统,其特征是:算法由FPGA逻辑程序自动完成,不需要其它外部软件或处理器的干预。
2.根据权利要求1所述的算法,其特征在于,作为地址提取和查找模块,地址信息的多少不影响地址查找的时间,可以认为是恒定的时间周期内。
3.根据权利要求1所述的算法,其特征在于,作为快速查找算法,运算过程不影响数据流的信号,不会产生数据交换的时延。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010211617XA CN102299971A (zh) | 2010-06-25 | 2010-06-25 | 基于fpga的快速地址查找算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010211617XA CN102299971A (zh) | 2010-06-25 | 2010-06-25 | 基于fpga的快速地址查找算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102299971A true CN102299971A (zh) | 2011-12-28 |
Family
ID=45360141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010211617XA Pending CN102299971A (zh) | 2010-06-25 | 2010-06-25 | 基于fpga的快速地址查找算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102299971A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020657A (zh) * | 2021-11-03 | 2022-02-08 | 无锡沐创集成电路设计有限公司 | 报文查找方法、系统、存储介质及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1404591A (zh) * | 2000-12-22 | 2003-03-19 | 三星电子株式会社 | 执行高速互联网协议路由查找和管理路由选择/转发表的装置和方法 |
-
2010
- 2010-06-25 CN CN201010211617XA patent/CN102299971A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1404591A (zh) * | 2000-12-22 | 2003-03-19 | 三星电子株式会社 | 执行高速互联网协议路由查找和管理路由选择/转发表的装置和方法 |
Non-Patent Citations (2)
Title |
---|
ZHENG H Y 等: "On f ast address-lookup algorithms", 《IEEE JOURNALS ON SELECT ED AREAS IN COMMUNICAT ION》 * |
佘晓轩: "高速路由器中快速地址查找方案及其实现方法研究", 《通信学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114020657A (zh) * | 2021-11-03 | 2022-02-08 | 无锡沐创集成电路设计有限公司 | 报文查找方法、系统、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101719877B (zh) | 一种报文转发装置、网络设备及方法 | |
US8681661B2 (en) | Limiting MAC address learning on access network switches | |
US9853897B2 (en) | Forward packet with edge device | |
EP3490197B1 (en) | Message forwarding | |
US10333845B2 (en) | Forwarding data packets | |
KR101502263B1 (ko) | 하이브리드 통신 네트워크들에 대한 어드레싱 방식 | |
CN101877671B (zh) | 镜像报文的发送方法、交换芯片及以太网路由器 | |
US20170237655A1 (en) | Forwarding Data Packets In Software Defined Networks | |
CN108173691B (zh) | 一种跨设备聚合的方法及装置 | |
CN102769869B (zh) | 无线接入点的控制和配置报文快速转发系统 | |
CN105791072A (zh) | 以太虚拟网络的接入方法及装置 | |
CN101577722A (zh) | 实现强制mac转发功能的方法和装置 | |
CN105812264B (zh) | 多路并行的mac地址学习和地址查找的装置及方法 | |
US20140226666A1 (en) | Limiting mac address learning on access network switches | |
JP2012161044A (ja) | 通信処理装置、アドレス学習プログラムおよびアドレス学習方法 | |
CN103763750B (zh) | 在tdma协议的无线自组网中实现快速分组转发的方法 | |
WO2008101423A1 (fr) | Système et procédé de montage en pont | |
US10430364B2 (en) | Packet forwarding | |
CN103581022A (zh) | Mac地址的查找转发方法和装置 | |
CN105187311A (zh) | 一种报文转发方法及装置 | |
CN101980488B (zh) | Arp表项的管理方法和三层交换机 | |
CN105812495A (zh) | 报文转发方法及设备 | |
CN103457855A (zh) | 无类域间路由表建立、以及报文转发的方法和装置 | |
CN107666445B (zh) | 一种分布式系统mac地址处理方法和装置 | |
CN115865844B (zh) | 基于sdn与ndn的虚实结合动态流量调度方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111228 |