CN109327407A - 数据交换装置、数据交换方法、计算机设备及存储介质 - Google Patents

数据交换装置、数据交换方法、计算机设备及存储介质 Download PDF

Info

Publication number
CN109327407A
CN109327407A CN201810898395.XA CN201810898395A CN109327407A CN 109327407 A CN109327407 A CN 109327407A CN 201810898395 A CN201810898395 A CN 201810898395A CN 109327407 A CN109327407 A CN 109327407A
Authority
CN
China
Prior art keywords
fpga chip
ethernet
address
data
ethernet data
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.)
Granted
Application number
CN201810898395.XA
Other languages
English (en)
Other versions
CN109327407B (zh
Inventor
葛庆国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong High Cloud Semiconductor Technologies Ltd Co
Gowin Semiconductor Corp
Original Assignee
Guangdong High Cloud Semiconductor Technologies Ltd Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong High Cloud Semiconductor Technologies Ltd Co filed Critical Guangdong High Cloud Semiconductor Technologies Ltd Co
Priority to CN201810898395.XA priority Critical patent/CN109327407B/zh
Publication of CN109327407A publication Critical patent/CN109327407A/zh
Application granted granted Critical
Publication of CN109327407B publication Critical patent/CN109327407B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供一种数据交换装置、数据交换方法、计算机设备及存储介质,数据交换装置包括第一FPGA芯片、第二FPGA芯片以及MCU控制器,第一FPGA芯片分别连接以太网接口以及MCU控制器,第一FPGA芯片通过节点端口连接所述第二FPGA芯片,第二FPGA芯片分别连接MCU控制器和无线信道接口,本技术方案在无线网状网与以太网进行数据交换时采用两块FPGA作为核心硬件交换处理平台,发挥了两块FPGA芯片并行处理速度快、端口易扩展、电路实现灵活和代码易移植的优势,提高了系统传输带宽利用率和实时业务的传输质量。

Description

数据交换装置、数据交换方法、计算机设备及存储介质
技术领域
本发明涉及无线网状网通信技术领域,尤其涉及一种数据交换装置、数据交换方法、计算机设备及存储介质。
背景技术
微波通信系统是在视距范围或经中继转接,以微波波段电磁波为介质进行信息传输的一种通信系统。随着通信技术的快速发展,网络拓扑形式从点对点发展到网状网,从静止通信发展到动中通信。系统承载的业务从传统的低速数据、语音业务发展到以太网数据,基于以太网数据的传输体制,可更好地实现平台间接口对接和业务传输,因此,逐渐成为主流。
当以太网与无线网进行数据交换时,由于无线网状网存在结构为拓扑结构、带宽资源有限、业务实时性强、拓扑动态变化快这些因素,采用通用的单块以太网交换芯片进行数据交换时,在进行数据交换时由于ARP包、组播包及广播包进入网络后,会引起短时泛洪,影响实时业务的传输质量。
发明内容
本发明为解决上述技术问题,提供一种数据交换装置、数据交换方法、计算机设备及存储介质,可以提高系统传输带宽利用率和实时业务的传输质量。
本发明第一方面提供一种数据交换方法,数据交换装置包括第一FPGA芯片、第二FPGA芯片以及MCU控制器,所述第一FPGA芯片分别连接以太网接口以及所述MCU控制器,所述第一FPGA芯片通过节点端口连接所述第二FPGA芯片,所述第二FPGA芯片分别连接所述MCU控制器和无线信道接口;
所述数据交换方法包括:
所述第一FPGA芯片从某一以太网接口接收以太网数据,根据所述以太网数据获取源MAC地址以及目的MAC地址,根据所述目的MAC地址检测地址类型;
当所述第一FPGA芯片检测到所述目的MAC地址是单播地址时,遍历其他以太网接口的MAC地址表,判断所述其他以太网接口的MAC地址表是否包括与所述目的MAC地址对应的以太网接口;
当判断结果为是时,则将所述以太网数据发送至所检测到的以太网接口的缓冲区等待发送;
当判断结果为否时,则继续遍历网络节点端口的MAC地址表,判断所述网络节点端口的MAC地址表是否包括与所述目的MAC地址对应的网络节点端口;
当判断结果为是时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,并通过所检测到的所述网络节点端口对应的节点端口将处理后的以太网数据发送至所述第二FPGA芯片,以使所述第二FPGA芯片进行无线发送;
当判断结果为否时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播;
当所述第一FPGA芯片检测到所述目的MAC地址是组播地址或广播地址时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播。
本发明第二方面提供一种数据交换装置,所述数据交换装置包括第一FPGA芯片、第二FPGA芯片以及MCU控制器,所述第一FPGA芯片分别连接以太网接口以及所述MCU控制器,所述第一FPGA芯片通过节点端口连接所述第二FPGA芯片,所述第二FPGA芯片分别连接所述MCU控制器和无线信道接口;
所述第一FPGA芯片从某一以太网接口接收以太网数据,根据所述以太网数据获取源MAC地址以及目的MAC地址,并根据所述目的MAC地址检测地址类型;
当所述第一FPGA芯片检测到所述目的MAC地址是单播地址时,遍历其他以太网接口的MAC地址表,判断所述其他以太网接口的MAC地址表是否包括与所述目的MAC地址对应的以太网接口;
当判断结果为是时,则将所述以太网数据发送至所检测到的以太网接口的缓冲区等待发送;
当判断结果为否时,则继续遍历网络节点端口的MAC地址表,判断所述网络节点端口的MAC地址表是否包括与所述目的MAC地址对应的网络节点端口;
当判断结果为是时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,并通过所检测到的所述网络节点端口对应的节点端口将处理后的以太网数据发送至所述第二FPGA芯片,以使所述第二FPGA芯片进行无线发送;
当判断结果为否时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播;
当所述第一FPGA芯片检测到所述目的MAC地址是组播地址或广播地址时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播。
本发明第三方面提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明第一方面所述方法的步骤。
本发明第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述方法的步骤。
本发明实施例提供一种数据交换装置,包括第一FPGA芯片、第二FPGA芯片以及MCU控制器,第一FPGA芯片分别连接以太网接口以及MCU控制器,第一FPGA芯片通过节点端口连接所述第二FPGA芯片,第二FPGA芯片分别连接MCU控制器和无线信道接口,本技术方案在无线网状网与以太网进行数据交换时采用两块FPGA作为核心硬件交换处理平台,发挥了两块FPGA芯片并行处理速度快、端口易扩展、电路实现灵活和代码易移植的优势,提高了系统传输带宽利用率和实时业务的传输质量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据交换装置的结构示意图;
图2是本发明实施例提供的数据交换方法的流程图;
图3是本发明实施例提供的由网络节点组成的拓扑网络图;
图4是本发明实施例提供的链路层路由表;
图5是本发明实施例提供的获取最短路径的步骤图;
图6是本发明实施例提供的另一数据交换方法的流程图;
图7是本发明实施例提供的另一数据交换方法的流程图;
图8是本发明实施例提供的另一数据交换方法的流程图;
图9是本发明实施例提供的另一数据交换方法的流程图;
图10是本发明实施例提供的另一数据交换装置的结构示意图;
图11是本申请另一种实施例提供的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供一种数据交换方法,通过数据交换装置执行该数据交换方法,如图1所示,数据交换装置包括:第一FPGA芯片10、第二FPGA芯片20以及MCU控制器30,所述第一FPGA芯片10分别连接以太网接口40以及所述MCU控制器30,所述第一FPGA芯片10通过节点端口连接所述第二FPGA芯片20,所述第二FPGA芯片20分别连接所述MCU控制器30和无线信道接口50。
其中,以太网接口40可包括多个端口,LAN端口1至LAN端口M,M为自然数,可优选为4个,LAN端口用于实现以太网数据物理层处理。第一FPGA芯片用于实现以太网数据的MAC地址学习以及以太网数据交换;第二FPGA芯片用于实现信道适配、数据打包和解包、以太网数据中继控制;节点端口包括多个端口节点端口1-1至节点端口N-N,N为自然数,节点端口的数量与网络节点端口数量相等,本实施例中网络节点数可优选为32个;MCU控制器用于实现整个网络的各网络节点的出入网管理、带宽和业务管理、全网连通表维护和路由管理;无线信道接口用于实现链路层数据帧的无线收发。
数据交换方法包括以下步骤:
步骤S10.所述第一FPGA芯片10从某一以太网接口40接收以太网数据,根据所述以太网数据获取源MAC地址以及目的MAC地址,根据所述目的MAC地址检测地址类型。
在步骤S10中,以太网外接设备通过LAN(Local Area Network)端口发送以太网数据给本地的第一FPGA(Field-Programmable Gate Array)芯片10,第一FPGA芯片10从以太网数据中提取源MAC(Media Access Control)地址和目的MAC地址。
具体的,以太网数据中的帧格式包括:前导字符、目的MAC地址、源MAC地址、类型、IP头部、TCP头部、数据以及帧校验,以太网数据的帧格式前导字符都是10101011作为帧开始的信号,表示一帧的开始,最后两位是11,表示下面的字段是目的地址,当目的地址出现多址时,表示该帧被一组站同时接收,称为“组播”(Multicast)。目的地址出现全地址时,表示该帧被局域网上所有站同时接收,称为“广播”(Broadcast),通常以DA的最高位来判断地址的类型,若第一字节最低位为“0”则表示单址,第一字节最低位为“1”则表示组播,以太网帧格式“类型”用来说明后续数据的类型。
步骤S20.当所述第一FPGA芯片10检测到所述目的MAC地址是单播地址时,遍历其他以太网接口的MAC地址表,判断所述其他以太网接口的MAC地址表是否包括与所述目的MAC地址对应的以太网接口。
在步骤S20中,第一FPGA芯片10先进行MAC地址学习,MAC地址学习包括LAN端口MAC地址学习和全网节点MAC地址学习,LAN端口MAC地址学习是指从LAN 1~LAN M端口收到以太网数据包后,第一FPGA芯片10会提取该数据包的源MAC地址,并把以太网帧的源MAC地址与接收端口对应关系写入MAC地址表中,如果MAC地址表中已经有相同表项,则刷新该表项的老化时间;全网节点MAC地址学习是指从节点端口1-1至节点端口N-N收到以太网数据包后,第一FPGA芯片10会提取该数据包的源MAC地址,并把以太网帧的源MAC地址与接收节点端口号码对应关系写入MAC地址表中,如果MAC地址表中已经有相同表项,则刷新该表项的老化时间,考虑网状网动中通信环境下,拓扑变化快,老化时间可在30秒~2分钟范围内取值。
即每个以太网接口和网络节点端口均对应一个MAC地址表,MAC地址表中包括MAC地址项,以及与MAC地址项对应的以太网LAN端口号码项或网络节点端口号码项;第一FPGA芯片10进行MAC地址学习时,将以太网数据源MAC地址写入MAC地址表中;如果所述MAC地址表中已有所述MAC地址项,则刷新对应MAC地址项的老化时间,第一FPGA芯片10接收到以太网数据后根据LAN端口MAC地址学习内容遍历其他以太网接口的MAC地址表,判断所述其他以太网接口的MAC地址表是否包括与所述目的MAC地址对应的以太网接口,判断结果为是时,执行步骤S30,判断结果为否时,执行步骤S40。
步骤S30.当判断结果为是时,则将所述以太网数据发送至所检测到的以太网接口的缓冲区等待发送。
如果在步骤S20中,检测到以太网接口的MAC地址表中与目的MAC地址对应的以太网LAN端口号码项为3;则在步骤S30中,第一FPGA芯片10将以太网数据发送到3号以太网LAN端口对应的缓冲区等待发送。
步骤S40.当判断结果为否时,则继续遍历网络节点端口的MAC地址表,判断所述网络节点端口的MAC地址表是否包括与所述目的MAC地址对应的网络节点端口;判断结果为是时,执行步骤S50,判断结果为否时,执行步骤S60。
步骤S50.当判断结果为是时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,并通过所检测到的所述网络节点端口对应的节点端口将处理后的以太网数据发送至所述第二FPGA芯片20,以使所述第二FPGA芯片20进行无线发送。
节点端口1-1至节点端口N-N的数量与网络节点端口数量相等,且一个网络节点端口均对应一个节点端口;当第一FPGA芯片10向第二FPGA芯片20发送处理后的以太网数据时,通过与网络节点端口对应的节点端口进行发送;例如当步骤S50.检测的目的MAC地址对应的网络节点端口号码为5时,通过节点端口5-5进行发送;这样便于后续第二FPGA芯片20接收数据后将数据缓存到第二FPGA芯片20中对应网络节点端口5的缓存区中,等待通过无线信道接口50发送到下一跳节点端口。
在步骤S50中,根据所述MCU控制器30发送的链路层路由表对所述以太网数据进行处理,包括:
根据所述MCU控制器30发送的链路层路由表在所述以太网数据前加上目的节点端口编号、下一跳节点端口编号以及源节点端口编号。
其中,目的节点端口编号为与所述目的MAC地址对应的网络节点端口;下一跳节点端口编号是根据链路层路由表选择的最佳下一跳节点端口编号;源节点端口编号是所述源MAC地址对应的网络节点端口编号,即第一FPGA芯片10所在的网络节点的编号。
具体的,链路层路由表是指MCU发送的一张路由信息表,该表中存有每个网络节点到达其他所有网络节点的最佳路径,作为下一跳节点端口选择的依据。例如,如图3所示的由网络节点A、B、C、D、E以及F组成的拓扑网络,其两个网络节点之间的数值表示度量两个网络节点之间路径的权值,两节点间有线连接代表是连通关系,链路层路由表如图4所示,表中仅包含通过路径算法选择的数据发送的最佳路径。考虑无线网状网通信环境下,拓扑变化快,链路层路由表计算频率可在5秒~30秒范围内取值。
进一步的,如图6所示,根据所述MCU控制器30发送的链路层路由表对所述以太网数据进行处理,之前还包括:
步骤S101.所述MCU控制器30计算各网络节点之间的权值。
在步骤S101中,MCU控制器30根据网络系统的运行情况,例如,综合考虑当前带宽使用情况、无线信道通信质量、信道拥塞度等相关因素,根据相关因素对网络系统的运行情况的影响关系将其建立公式或建立评价参考模型进行量化,从而计算出各网络节点之间的综合权值。
具体地,所述MCU控制器30计算各网络节点之间的权值,包括:
所述MCU控制器30根据以下公式计算各网络节点之间的权值:
权值=(信道误码率/节点带宽占有率)*信道拥塞度。
其中,信道误码率表示当前两个网络节点端口之间无线信道通信质量,以1x10-6为基准误码率值;节点端口带宽占有率,表示当前两个网络节点端口之间分配带宽在系统总带宽中占有的比例,即网络节点端口带宽除系统总带宽,取值范围在0~1之间的,不为0或1;信道拥塞度表示两个网络节点端口之间带宽使用情况,即占用的带宽除以网络节点端口分配带宽,取值范围在0~1之间。
步骤S102.所述MCU控制器30根据所述权值和Dijkstra算法获取每个网络节点到其他网络节点之间的最短路径,并生成链路层路由表。
在步骤S102中,Dijkstra算法是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题,算法步骤如下:
1、定义集合,遍历过的节点集合为S,集合U为其余节点(即未遍历)。初始时,S只包含源点v,即S={v},v的距离为0。U包含除v外的其他顶点,即:U={其余顶点}。若v与U中顶点u有边,则正常有权值,若u不是v的出边邻接点,则权值为∞。其中,这里集合S、U,是为了判断哪些节点已经遍历过,如果U为空了,就不继续执行。
2、从集合U中选取一个距离v最小的顶点k,把k加入到S中。
3、以k为新考虑的中间点,修改v到U中各顶点的距离;若从源点v到顶点w的距离(经过顶点k)比原来距离(不经过顶点k)短时,则修改v到w的距离值。
找出图3中以A为起点的其他各所有一一顶点(B、C、D、E、F)的最短路径,线上所标注为相邻顶点之间的距离,用Dijkstra算法的计算步骤如图5所示;可按照此步骤计算出从每个顶点为起点的到其余各顶点的最短路径。
MCU控制器30用获取的权值对应替换Dijkstra算法中的路径距离来进行Dijkstra算法,计算出每个网络节点到其他网络节点之间的最佳路径,并生成如图4所示的每个顶点到其余各顶点的最佳路径链路层路由表。
本发明实施例提供数据交换装置的数据交换方法,在上述实施例的基础上,MCU根据上述公式计算各网络节点之间的权值,并生成链路层路由表,为各网络节点之间最佳路径的选择提供了依据。
步骤S60.当判断结果为否时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播。
在步骤S60中,如图7所示,根据所述MCU控制器30发送的链路层路由表对所述以太网数据进行处理,将所述以太网数据向所有以太网接口和网络节点端口进行广播,包括:
步骤S201.将所述以太网数据复制后发送到所有以太网接口的发送缓冲区等待发送。
步骤S202.根据所述MCU控制器30发送的链路层路由表在所述以太网数据前加上目的节点端口编号、下一跳节点端口编号以及源节点端口编号。
步骤S203.将处理后的以太网数据通过每个网络节点端口发送至所述第二FPGA芯片20,以使所述第二FPGA芯片20进行无线发送。
在上述步骤中,当第一FPGA判断所有以太网接口40和所有网络节点端口的MAC地址表中都没有目的MAC地址时,将以太网数据向所有以太网接口和网络节点端口进行广播。对于向所有以太网接口进行广播的数据进行复制后发送到所有以太网接口的发送缓冲区等待发送;对于向所有网络节点端口进行广播的数据则需要根据MCU控制器30发送的链路层路由表在所述以太网数据前加上目的节点端口编号、下一跳节点端口编号以及源节点端口编号;将处理后的以太网数据通过每个节点端口发送至所述第二FPGA芯片20,以使所述第二FPGA芯片20进行无线发送。
步骤S70.当所述第一FPGA芯片10检测到所述目的MAC地址是组播地址或广播地址时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播。
本步骤的具体实现方式与步骤S201至步骤S203相同,在此不再赘述。
本发明提供一种数据交换方法,执行该数据方法的数据交换装置包括第一FPGA芯片、第二FPGA芯片以及MCU控制器,第一FPGA芯片分别连接以太网接口以及MCU控制器,第一FPGA芯片通过节点端口连接所述第二FPGA芯片,第二FPGA芯片分别连接所述MCU控制器和无线信道接口,本技术方案设置两块FPGA芯片,第一FPGA芯片根据以太网数据中的目的MAC地址检测地址类型,根据地址类型获取与目的MAC地址对应的接口类型,根据接口类型执行相应的操作以发送以太网数据,本技术方案在无线网状网与以太网进行数据交换时采用两块FPGA作为核心硬件交换处理平台,发挥了两块FPGA芯片并行处理速度快、端口易扩展、电路实现灵活和代码易移植的优势;结合无线网状网带宽资源有限、业务实时性强、拓扑动态变化的特点,通过链路层路由表计算,实现各网络节点和以太网数据交换,有效防止组播/广播数据泛洪,提高了系统传输带宽利用率和实时业务的传输质量。
进一步地,如图8所示,所述数据交换方法还包括:
步骤S601.所述第二FPGA芯片20从相邻网络节点接收以太网数据,提取目的节点编号并判断所述目的节点编号是否为本网络节点编号。
其中,当前节点是指相邻节点计算得到的处于最佳路径的下一节点,相邻网络节点是指本节点所接收发送以太网数据的上一节点,目的节点编号是指前述步骤中提取目的MAC地址在MAC地址表查找得到目的节点编号后加入到以太网数据中的。
步骤S602.若所述目的节点编号为本网络节点编号,根据所述以太网数据中的源节点端口编号获取相应节点端口,并将所述以太网数据通过所述相应节点端口发送至所述第一FPGA芯片10。
其中,若所述目的节点编号为本网络节点编号时,说明第二FPGA芯片20不需要再查找其他节点端口,通过本网络节点的LAN端口即可将以太网数据发送到目的MAC地址,则第二FPGA芯片直接根据源节点端口编号获取对应的节点端口进行发送至第一FPGA芯片10,第一FPGA芯片10后续将通过本地的LAN端口将数据发送到目的MAC地址;例如当源节点端口编号为9时,则第二FPGA芯片20通过节点端口9-9将以太网数据发送到第一FPGA芯片10;后续第一FPGA芯片10接收数据后将数据缓存到第一FPGA芯片10中对应LAN端口的缓存区中等待发送到目的MAC地址。
步骤S603.若所述目的节点编号为非本网络节点编号,判断所述链路层路由表中是否包括到达目的节点编号的路径。
步骤S604.当判断结果为是时,则获取到达目的节点编号的最佳下一跳节点编号,修改所述以太网数据中的下一跳节点编号后进行无线发送。
其中,最佳下一跳节点编号是指链路层路由表中最佳路径对应的下一节点。
步骤S605.当判断结果为否时,则丢弃所述以太网数据。
进一步地,如图9所示,将所述以太网数据通过所述相应节点端口发送至所述第一FPGA芯片10,之后还包括:
步骤S606.所述第一FPGA芯片10根据所述以太网数据获取源MAC地址以及目的MAC地址,根据所述目的MAC地址检测地址类型。
步骤S607.当所述第一FPGA芯片10检测到所述目的MAC地址是单播地址时,遍历其他以太网接口的MAC地址表,判断所述其他以太网接口的MAC地址表是否包括与所述目的MAC地址对应的以太网接口。
步骤S608.当判断结果为是时,则将所述以太网数据发送至所检测到的以太网接口的缓冲区等待发送。
步骤S609.当判断结果为否时,则复制所述以太网数据并向所有以太网接口进行广播。
步骤S610.当所述第一FPGA芯片10检测到所述目的MAC地址是组播地址或广播地址时,则复制所述以太网数据并向所有以太网接口进行广播。
本发明实施例提供数据交换装置的数据交换方法,在上述实施例的基础上,第二FPGA芯片从相邻网络节点接收以太网数据,提取目的节点编号并判断目的节点编号是否为本网络节点编号;若目的节点编号为本网络节点编号,根据以太网数据中的源节点端口编号获取相应节点端口,并将以太网数据通过相应节点端口发送至第一FPGA芯片;若目的节点编号为非本网络节点编号,判断链路层路由表中是否包括到达目的节点编号的路径;当判断结果为是时,则获取到达目的节点编号的最佳下一跳节点编号,修改以太网数据中的下一跳节点编号后进行无线发送;当判断结果为否时,则丢弃所述以太网数据;实现了从相邻网络节点转发以太网数据,可有效提高中继网络节点传输效率,避免中继以太网数据接收后增加本地交换和存储处理负担,该方法简洁、高效、可靠。
本申请另一实施例提供一种数据交换装置,如图1所示,所述数据交换装置包括:第一FPGA芯片10、第二FPGA芯片20以及MCU控制器30,所述第一FPGA10芯片分别连接以太网接口40以及所述MCU控制器,所述第一FPGA芯片10通过节点端口连接所述第二FPGA芯片20,所述第二FPGA芯片20分别连接所述MCU控制器30和无线信道接口50;
所述第一FPGA芯片10从某一以太网接口40接收以太网数据,根据所述以太网数据获取源MAC地址以及目的MAC地址;
当所述第一FPGA芯片10检测到所述目的MAC地址是单播地址时,遍历其他以太网接口的MAC地址表,判断所述其他以太网接口的MAC地址表是否包括与所述目的MAC地址对应的以太网接口;
当判断结果为是时,则将所述以太网数据发送至所检测到的以太网接口的缓冲区等待发送;
当判断结果为否时,则继续遍历网络节点端口的MAC地址表,判断所述网络节点端口的MAC地址表是否包括与所述目的MAC地址对应的网络节点端口;
当判断结果为是时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,并通过所检测到的所述网络节点端口对应的节点端口将处理后的以太网数据发送至所述第二FPGA芯片20,以使所述第二FPGA芯片20进行无线发送;
当判断结果为否时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播;
当所述第一FPGA芯片10检测到所述目的MAC地址是组播地址或广播地址时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播。
进一步的,所述第二FPGA芯片20从相邻网络节点接收以太网数据,提取目的节点编号并判断所述目的节点编号是否为本网络节点编号;
若所述目的节点编号为本网络节点编号,根据所述以太网数据中的源节点端口编号获取相应节点端口,并将所述以太网数据通过所述相应节点端口发送至所述第一FPGA芯片10;
若所述目的节点编号为非本网络节点编号,判断所述链路层路由表中是否包括到达目的节点编号的路径;
当判断结果为是时,则获取到达目的节点编号的最佳下一跳节点编号,修改所述以太网数据中的下一跳节点编号后进行无线发送;
当判断结果为否时,则丢弃所述以太网数据。
进一步的,如图10所示,所述数据交换装置包括第一存储器60、第二存储器70以及第三存储器80,第一存储器60与第一FPGA芯片10连接,用于存储FPGA1发送的所述以太网数据;第二存储器70与第一FPGA芯片10连接,用于存储所述MAC地址表;第三存储器80与第二FPGA芯片20连接,用于存储FPGA2发送的所述以太网数据。
此外每个网络节点均应包括本数据交换装置,以便完成相应功能,第一FPGA芯片10和第二FPGA芯片20的具体功能,请参见上述实施例的具体说明,在此不再赘述。
本申请另一种实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的推送数据方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述实施例中推送数据的装置中各模块/单元的功能,为避免重复,这里不再赘述。
图11是本实施例中计算机设备的示意图。如图11所示,计算机设备6包括处理器60、存储器61以及存储在存储器61中并可在处理器60上运行的计算机程序62。处理器60执行计算机程序62时实现上述实施例中推送数据的方法的各个步骤,例如图2所示的步骤S10、S20、S30、S40、S50、S60和S70。或者,处理器60执行计算机程序62时实现上述实施例中推送数据的装置各模块/单元的功能。
示例性的,计算机程序62可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器61中,并由处理器60执行,以完成本申请的数据处理过程。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序段,该程序段用于描述计算机程序62在终端设备6中的执行过程。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据交换方法,其特征在于,数据交换装置包括第一FPGA芯片、第二FPGA芯片以及MCU控制器,所述第一FPGA芯片分别连接以太网接口以及所述MCU控制器,所述第一FPGA芯片通过节点端口连接所述第二FPGA芯片,所述第二FPGA芯片分别连接所述MCU控制器和无线信道接口;
所述数据交换方法包括:
所述第一FPGA芯片从某一以太网接口接收以太网数据,根据所述以太网数据获取源MAC地址以及目的MAC地址,并根据所述目的MAC地址检测地址类型;
当所述第一FPGA芯片检测到所述目的MAC地址是单播地址时,遍历其他以太网接口的MAC地址表,判断所述其他以太网接口的MAC地址表是否包括与所述目的MAC地址对应的以太网接口;
当判断结果为是时,则将所述以太网数据发送至所检测到的以太网接口的缓冲区等待发送;
当判断结果为否时,则继续遍历网络节点端口的MAC地址表,判断所述网络节点端口的MAC地址表是否包括与所述目的MAC地址对应的网络节点端口;
当判断结果为是时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,并通过所检测到的所述网络节点端口对应的节点端口将处理后的以太网数据发送至所述第二FPGA芯片,以使所述第二FPGA芯片进行无线发送;
当判断结果为否时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播;
当所述第一FPGA芯片检测到所述目的MAC地址是组播地址或广播地址时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播。
2.如权利要求1所述的数据交换方法,其特征在于,根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,包括:
根据所述MCU控制器发送的链路层路由表在所述以太网数据前加上目的节点端口编号、下一跳节点端口编号以及源节点端口编号。
3.如权利要求1所述的数据交换方法,其特征在于,根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将所述以太网数据向所有以太网接口和网络节点端口进行广播,包括:
将所述以太网数据复制后发送到所有以太网接口的发送缓冲区等待发送;
根据所述MCU控制器发送的链路层路由表在所述以太网数据前加上目的节点端口编号、下一跳节点端口编号以及源节点端口编号;
将处理后的以太网数据通过每个节点端口发送至所述第二FPGA芯片,以使所述第二FPGA芯片进行无线发送。
4.如权利要求1所述的数据交换方法,其特征在于,根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,之前还包括:
所述MCU控制器计算各网络节点之间的权值;
所述MCU控制器根据所述权值和Dijkstra算法获取每个网络节点到其他网络节点之间的最短路径,并生成链路层路由表。
5.如权利要求1所述的数据交换方法,其特征在于,所述数据交换方法还包括:
所述第二FPGA芯片从相邻网络节点接收以太网数据,提取目的节点编号并判断所述目的节点编号是否为本网络节点编号;
若所述目的节点编号为本网络节点编号,根据所述以太网数据中的源节点端口编号获取相应节点端口,并将所述以太网数据通过所述相应节点端口发送至所述第一FPGA芯片;
若所述目的节点编号为非本网络节点编号,判断所述链路层路由表中是否包括到达目的节点编号的路径;
当判断结果为是时,则获取到达目的节点编号的最佳下一跳节点编号,修改所述以太网数据中的下一跳节点编号后进行无线发送;
当判断结果为否时,则丢弃所述以太网数据。
6.如权利要求5所述的数据交换方法,其特征在于,将所述以太网数据通过所述相应节点端口发送至所述第一FPGA芯片,之后还包括:
所述第一FPGA芯片根据所述以太网数据获取源MAC地址以及目的MAC地址;
当所述第一FPGA芯片检测到所述目的MAC地址是单播地址时,遍历其他以太网接口的MAC地址表,判断所述其他以太网接口的MAC地址表是否包括与所述目的MAC地址对应的以太网接口;
当判断结果为是时,则将所述以太网数据发送至所检测到的以太网接口的缓冲区等待发送;
当判断结果为否时,则复制所述以太网数据并向所有以太网接口进行广播;
当所述第一FPGA芯片检测到所述目的MAC地址是组播地址或广播地址时,则复制所述以太网数据并向所有以太网接口进行广播。
7.一种数据交换装置,其特征在于,所述数据交换装置包括第一FPGA芯片、第二FPGA芯片以及MCU控制器,所述第一FPGA芯片分别连接以太网接口以及所述MCU控制器,所述第一FPGA芯片通过节点端口连接所述第二FPGA芯片,所述第二FPGA芯片分别连接所述MCU控制器和无线信道接口;
所述第一FPGA芯片从某一以太网接口接收以太网数据,根据所述以太网数据获取源MAC地址以及目的MAC地址,并根据所述目的MAC地址检测地址类型;
当所述第一FPGA芯片检测到所述目的MAC地址是单播地址时,遍历其他以太网接口的MAC地址表,判断所述其他以太网接口的MAC地址表是否包括与所述目的MAC地址对应的以太网接口;
当判断结果为是时,则将所述以太网数据发送至所检测到的以太网接口的缓冲区等待发送;
当判断结果为否时,则继续遍历网络节点端口的MAC地址表,判断所述网络节点端口的MAC地址表是否包括与所述目的MAC地址对应的网络节点端口;
当判断结果为是时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,并通过所检测到的所述网络节点端口对应的节点端口将处理后的以太网数据发送至所述第二FPGA芯片,以使所述第二FPGA芯片进行无线发送;
当判断结果为否时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播;
当所述第一FPGA芯片检测到所述目的MAC地址是组播地址或广播地址时,则根据所述MCU控制器发送的链路层路由表对所述以太网数据进行处理,将处理后的所述以太网数据向所有以太网接口和网络节点端口进行广播。
8.如权利要求7所述的数据交换装置,其特征在于,所述数据交换装置还包括:
所述第二FPGA芯片从相邻网络节点接收以太网数据,提取目的节点编号并判断所述目的节点编号是否为本网络节点编号;
若所述目的节点编号为本网络节点编号,根据所述以太网数据中的源节点端口编号获取相应节点端口,并将所述以太网数据通过所述相应节点端口发送至所述第一FPGA芯片;
若所述目的节点编号为非本网络节点编号,判断所述链路层路由表中是否包括到达目的节点编号的路径;
当判断结果为是时,则获取到达目的节点编号的最佳下一跳节点编号,修改所述以太网数据中的下一跳节点编号后进行无线发送;
当判断结果为否时,则丢弃所述以太网数据。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述方法的步骤。
CN201810898395.XA 2018-08-08 2018-08-08 数据交换装置、数据交换方法、计算机设备及存储介质 Active CN109327407B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810898395.XA CN109327407B (zh) 2018-08-08 2018-08-08 数据交换装置、数据交换方法、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810898395.XA CN109327407B (zh) 2018-08-08 2018-08-08 数据交换装置、数据交换方法、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN109327407A true CN109327407A (zh) 2019-02-12
CN109327407B CN109327407B (zh) 2019-12-06

Family

ID=65263692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810898395.XA Active CN109327407B (zh) 2018-08-08 2018-08-08 数据交换装置、数据交换方法、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN109327407B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124968A (zh) * 2019-12-05 2020-05-08 山东浪潮人工智能研究院有限公司 一种基于fpga与risc-v的互联交换方法
CN115190187A (zh) * 2021-02-19 2022-10-14 北京物芯科技有限责任公司 数据转换方法及数据处理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2211509A2 (en) * 2009-01-27 2010-07-28 Hitachi, Ltd. Network communication node
CN102006231A (zh) * 2010-11-23 2011-04-06 北京华环电子股份有限公司 建立数据业务网元智能路由的方法、装置及数据业务传输设备
WO2015192483A1 (zh) * 2014-06-18 2015-12-23 深圳市中兴微电子技术有限公司 一种路由节点、路由交换方法、系统及计算机存储介质
CN107707476A (zh) * 2017-08-20 2018-02-16 中国人民解放军理工大学 基于fpga的高效无线转发装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2211509A2 (en) * 2009-01-27 2010-07-28 Hitachi, Ltd. Network communication node
CN102006231A (zh) * 2010-11-23 2011-04-06 北京华环电子股份有限公司 建立数据业务网元智能路由的方法、装置及数据业务传输设备
WO2015192483A1 (zh) * 2014-06-18 2015-12-23 深圳市中兴微电子技术有限公司 一种路由节点、路由交换方法、系统及计算机存储介质
CN107707476A (zh) * 2017-08-20 2018-02-16 中国人民解放军理工大学 基于fpga的高效无线转发装置及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
韩建: "基于标签交换的无线多跳网络MAC层快速转发机制研究", 《中国优秀硕士学位论文全文数据库》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124968A (zh) * 2019-12-05 2020-05-08 山东浪潮人工智能研究院有限公司 一种基于fpga与risc-v的互联交换方法
CN115190187A (zh) * 2021-02-19 2022-10-14 北京物芯科技有限责任公司 数据转换方法及数据处理方法

Also Published As

Publication number Publication date
CN109327407B (zh) 2019-12-06

Similar Documents

Publication Publication Date Title
CN102474454B (zh) 节点间链路聚合系统和方法
KR102123035B1 (ko) 802.1aq에 대한 3 스테이지 폴딩된 clos 최적화
CN104283791B (zh) 一种sdn网络中的三层拓扑确定方法和设备
CN104468351B (zh) 基于sdn辅助ccn路由的管理方法、ccn转发装置及网络控制器
CN103188165B (zh) 一种路由器多径输出智能负载均衡的方法及路由器
CN111049752B (zh) 多传输线路的负载均衡方法及装置
CN103703727A (zh) 用于分体式架构系统中控制业务的弹性路由的方法和设备
CN105556916B (zh) 网络流的信息统计方法和装置
CN105791169A (zh) 软件定义网络中交换机转发控制、转发方法及相关设备
CN107431968A (zh) 一种建立路由表的方法、电子设备及网络
CN108322391B (zh) 基于流表的数据传送方法
CN103746925A (zh) 一种FiWi融合网络以及基于FiWi融合网络的通信方法
CN106209615A (zh) 一种基于spfa算法计算转发路径的动态路由控制方法
CN102326370B (zh) 一种报文处理方法、设备和系统
CN103746886A (zh) 一种FiWi节点和一种FiWi融合组网方法
CN101330411B (zh) 一种模拟大规模网络拓扑的方法和系统
CN109327407A (zh) 数据交换装置、数据交换方法、计算机设备及存储介质
CN109889444A (zh) 一种规划路径的方法、装置和系统
CN106034071A (zh) 数据报文传输方法及边缘路由网桥设备
CN107872385A (zh) 一种sdn网络路由计算与控制方法
CN103152265B (zh) 一种spb网络中的报文转发方法和设备
CN102833161B (zh) 隧道负荷分担方法及装置
CN108600106A (zh) 一种低时延的数据交换装置及方法
CN109842503A (zh) 链路质量测试方法和系统
CN104917677A (zh) 数据流转发的控制方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190212

Assignee: Science City (Guangzhou) Finance Leasing Co., Ltd

Assignor: Guangdong high cloud semiconductor technologies limited company

Contract record no.: X2019990000270

Denomination of invention: Data exchange device, data exchange method, computer equipment and storage medium

Granted publication date: 20191206

License type: Exclusive License

Record date: 20191225

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Data exchange device, data exchange method, computer equipment and storage medium

Effective date of registration: 20191225

Granted publication date: 20191206

Pledgee: Science City (Guangzhou) Finance Leasing Co., Ltd

Pledgor: Guangdong high cloud semiconductor technologies limited company

Registration number: Y2019990000800

EC01 Cancellation of recordation of patent licensing contract
EC01 Cancellation of recordation of patent licensing contract

Assignee: Science City (Guangzhou) Finance Leasing Co.,Ltd.

Assignor: Gowin Semiconductor Corp.,Ltd.

Contract record no.: X2019990000270

Date of cancellation: 20210412

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20210412

Granted publication date: 20191206

Pledgee: Science City (Guangzhou) Finance Leasing Co.,Ltd.

Pledgor: Gowin Semiconductor Corp.,Ltd.

Registration number: Y2019990000800