CN105263165A - 一种基于fpga的网络数据连包拆分方法 - Google Patents

一种基于fpga的网络数据连包拆分方法 Download PDF

Info

Publication number
CN105263165A
CN105263165A CN201510569398.5A CN201510569398A CN105263165A CN 105263165 A CN105263165 A CN 105263165A CN 201510569398 A CN201510569398 A CN 201510569398A CN 105263165 A CN105263165 A CN 105263165A
Authority
CN
China
Prior art keywords
data
fpga
network
splitting
data packet
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
CN201510569398.5A
Other languages
English (en)
Other versions
CN105263165B (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.)
Tianjin Photoelectric Gathered Energy Communication Co ltd
Original Assignee
TIANJIN TOEC JN SPECIAL COMMUNICATION EQUIPMENT CO Ltd
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 TIANJIN TOEC JN SPECIAL COMMUNICATION EQUIPMENT CO Ltd filed Critical TIANJIN TOEC JN SPECIAL COMMUNICATION EQUIPMENT CO Ltd
Priority to CN201510569398.5A priority Critical patent/CN105263165B/zh
Publication of CN105263165A publication Critical patent/CN105263165A/zh
Application granted granted Critical
Publication of CN105263165B publication Critical patent/CN105263165B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • H04W28/065Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets

Landscapes

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

Abstract

本发明公开了一种基于FPGA的网络数据连包拆分方法,涉及网络数据领域,方法包括:根据数据通信协议对上行的第一数据包进行组包,并通过通信接口发送至网络通信模块;网络通信模块封装成TCP数据包后输入至协议栈;无线路由器在第二FPGA控制下实现第一数据包的接收,并按照数据通信协议完成对第一数据包的拆包;网络通信模块接收无线路由器发送的根据数据通信协议组包的第二数据包,通过通信接口传输至第一FPGA;第一FPGA根据数据通信协议拆分第二数据包,识别第二数据包中MAC帧,解析成完整的MAC帧,对完整的MAC帧进行数据解析处理。本发明实现了对混杂数据MAC帧的拆分获取,为进一步的后续数据处理做好准备。

Description

一种基于FPGA的网络数据连包拆分方法
技术领域
本发明涉及网络数据领域,尤其涉及一种基于FPGA的网络数据连包拆分方法。
背景技术
当下,随着对信息化应用要求程度的不断深入,网络传输速度大幅提高,瞬时传输速率可达10,000Mbps,对于如此快的速度,如此大的数据量,协议栈必定会有数据积压的时刻,而对于较小的数据包,协议栈会将很多个这样的小数据包连到一起组成一个大包发送出去。在接收端的协议栈再将数据解析还原。于是,接收端上位机操作系统就收到了所有的数据。
但是,随着网络环境越来越复杂,网络中越来越多的问题涌现出来,迫切的需要得到解决。网络窃听就是众多问题之一,特别是在无线网络领域更显重要。问题的解决就是将数据加密传输,而加密对象就是MAC帧。这就需要从网络数据中提取出完整的MAC帧,然后在对MAC帧进一步处理。
MAC帧是数据帧的一种。而所谓数据帧,就是数据链路层的协议数据单元,它包括三部分:帧头、数据部分和帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如:同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如ARP数据包。如果帧长小于64字节,则要求“填充”,以使这个帧的长度达到64字节。
实际应用中,会议系统为提高WiFi芯片的数据传输速率和吞吐量,需要采用连续传输方式。但是连续传输方式会产生一个问题:经过上位机的网络协议栈传过来的连续数据常常不是一个完整的MAC帧,而会议系统后续的处理需要完整的MAC帧。
发明内容
本发明提供了一种基于FPGA的网络数据连包拆分方法,本发明通过网络数据的连包拆分,实现了对混杂数据MAC帧的拆分获取,为进一步的后续数据处理做好准备,详见下文描述:
一种基于FPGA的网络数据连包拆分方法,所述网络数据连包拆分方法包括以下步骤:
通过通信接口配置网络通信模块,并控制网络通信模块通过TCP协议与无线路由器建立socket链接;
根据数据通信协议对上行的第一数据包进行组包,将组包后的第一数据包通过通信接口发送至网络通信模块;
网络通信模块将组包后的第一数据包封装成TCP数据包后输入至协议栈;
无线路由器在第二FPGA控制下实现第一数据包的接收,并按照数据通信协议完成对第一数据包的拆包,将拆包后的第一数据包中继发送出去;
无线路由器接收下行的第二数据包,并在第二FPGA控制下按照数据通信协议完成对第二数据包的组包,将组包后的第二数据包中继发送出去;
网络通信模块接收无线路由器发送的根据数据通信协议组包的第二数据包,通过通信接口传输至第一FPGA;
第一FPGA根据数据通信协议拆分第二数据包,识别第二数据包中MAC帧,解析成完整的MAC帧,对完整的MAC帧进行数据解析处理。
所述网络数据连包拆分方法还包括:网络通信模块将TCP数据包传输至无线路由器。
所述网络通信模块具体为:WiFi芯片、3G无线网卡、4G无线网卡或100M无线网卡。
所述通信接口具体为:SPI接口、UART接口或USB接口。
其中,所述网络数据连包拆分方法还包括:
统一编址寄存器,用于进行与外部芯片的通信,统一编址先进先出队列用于传输不同时域或不同单位长度的数据包;
其中,所述数据通信协议具体为:
在数据发起单元,将每个MAC帧加头部,头部定义为6个字节,前4个字节是头标志,后两个字节是MAC帧长度;
收到头标志,启动MAC帧接收过程,接收完长度字节后建立一个长度计数器;
每接收一个字节长度计数器减一,在长度计数器未等于零之前不去判断4个字节头标志。
本发明提供的技术方案的有益效果是:
1、在网络高速传输过程中实现了对混杂模式数据的整理,使数据做进一步解析或其他处理成为可能。
2、在不改变原有数据通信方式的基础上,未增加任何外部接口信号,实现了对外部芯片发来数据的明确划分。
3、协议数据字段短小,对数据传输吞吐量的影响可以忽略。
4、可移植性强,经过较少改动就可以应用在其他系统,甚至可以是基于别的协议的系统。
附图说明
图1为一种基于FPGA的网络数据连包拆分方法的流程图;
图2为数据通信协议头部示例图;
图3为一个MAC帧被两数据包传输的示意图;
图4为协议字段被分到两个包传输的示意图;
图5为实验效果图;
图6为另一实验效果图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本发明实施例提供的一种基于FPGA的网络数据连包拆分方法中包括以下步骤:
101:第一FPGA通过通信接口配置网络通信模块,并控制网络通信模块通过TCP协议与无线路由器建立socket链接;
例如:设置IP、连接无线路由以及链接TCPserver等。
102:第一FPGA根据数据通信协议对上行的第一数据包进行组包,将组包后的第一数据包通过通信接口发送至网络通信模块;
定义数据通信协议,即:在数据发起单元,将每个MAC帧加头部,以便遇到数据包解析时,能够找到MAC帧的头和尾。头部的定义为6个字节,前4个字节是头标志,后两个字节是MAC帧长度。当收到头标志,则启动MAC帧接收过程,接收完长度字节后建立一个长度计数器。每接收一个字节计数器减一,在长度计数器未等于零之前不去判断协议的4个字节头标志。参见图2,为数据通信协议头部示例图,20140930是一个32位、连续,16进制的标识符,该标识符标示每一帧的开始,在实际数据中不易出现这样的16进制连字;003C是16位的帧长度表示;6个字节结合起来共同完成数据传输完整性的任务。
本发明实施例对头标志、帧长度的具体表示字符不做限制,例如:在图2中003C表示帧长度,在后续的图3和图4中,也可以采用0140、05E6、043C表示帧长度。
数据包中MAC帧有如下组合情况:
1)一包数据只含有一个完整MAC帧;
2)一包数据含有一个或几个完整MAC帧,以及一个不完整MAC帧;
3)一包数据含有一个或几个完整MAC帧,以及一个不完整协议头;
4)一包数据含有上一个包的一个不完整MAC帧,以及0个完整或几个完整的MAC帧。
5)一包数据只含有一个不完整MAC帧。
参见图3和图4,在网络数据传输时,系统要传输一个数据包,会将此数据包先打入协议栈,协议栈会根据其算法、网路的忙闲程度等因素,决定是将数据包马上发出去,还是暂存一会。在这段暂存时间内,可能还会有数据进入协议栈。当条件满足可以将数据发送出去时,协议栈会将当时栈内的数据组成一个个大包,最大1520个字节,发送出去。
图3中,协议栈先收到了320字节,之后又收到了1340字节,又收到了60字节的数据,协议栈可以发送数据时,会将数据组成一个1520字节的大包。这个大包包含了如图3所示的一个完整的320字节的帧,和一个有1188字节的半帧数据。经过网络协议间歇期,协议栈会将剩下的数据组成一个数据包发送出去,此数据包包含上一包剩下的152字节,和完整的60字节的数据帧。
图4中,协议栈先收到了1510字节,之后又收到了1340字节的数据,协议栈可以发送数据时,会将数据组成一个1520字节的大包。这个大包包含了如图4所示的一个完整的1510字节的帧,和一个只有4字节自定义协议头的数据。经过网络协议间歇期,协议栈会将剩下的数据组成一个数据包发送出去,此数据包包含上一包剩下的2字节自定义协议头,和完整的1340字节的数据帧。
103:网络通信模块将组包后的第一数据包封装成TCP数据包后输入至协议栈;
104:无线路由器在第二FPGA控制下实现第一数据包的接收,并按照数据通信协议完成对第一数据包的拆包,将拆包后的第一数据包中继发送出去;
105:无线路由器接收下行的第二数据包,并在第二FPGA控制下按照数据通信协议完成对第二数据包的组包,将组包后的第二数据包中继发送出去;
106:网络通信模块接收无线路由器发送的根据数据通信协议组包的第二数据包,通过通信接口传输至第一FPGA;
107:第一FPGA根据数据通信协议拆分第二数据包,识别第二数据包中MAC帧,解析成完整的MAC帧,对完整的MAC帧进行数据解析处理。
即,通过通信接口进行数据通信,然后按照数据通信协议拆分数据包。最后将整理好的数据进行传输。
其中,该网络数据连包拆分方法还包括:由全局复位信号统一控制,为数据包发送和接收提供时序约束;统一编址寄存器用于与FPGA进行外部芯片通信,统一编址fifo(先进先出队列)用于传输不同时域或不同单位长度的数据包;
其中,网络通信模块具体为:WiFi芯片、3G无线网卡、4G无线网卡或100M无线网卡。通信接口具体为:SPI接口、UART接口或USB接口。
本发明实施例通过上述步骤101-步骤107实现了对网络数据连包拆分,满足了实际应用中的需要。
实施例2
本发明实施例通过XILINX公司自带的CHIPSCOPE逻辑分析仪,对使用本发明的系统进行采样监视。图5是驱动一个专用WiFi芯片的应用,数据宽度8位,SPI接口时钟10M。小包传输时连包的情况,数据长度为74H,116字节,也出现了连包。此包结束时,只传输了MAC帧的2个字节“FFFF”,“1B45”是WiFi芯片的结束标志。在复杂协议背景下,本发明也可以保证数据解析,处理之后的正确传输。
图5中,TRIG0[5]为SPI的CS信号;TRIG0[6]为SPI的时钟;DATAPORT[14]为SPI_dataout;DATAPORT[15]为SPI_datain;TRIG3_1为SPI数据经串并转换生成的8位并行数据。
采样图形显示,本发明实施例覆盖了数据所有连包情况,接收连包后拆包准确,不影响数据速率,性能优秀,且在快速数据传输和慢速数据传输系统中均可应用。
实施例3
本发明实施例通过XILINX公司自带的CHIPSCOPE逻辑分析仪,对使用本发明的系统进行采样监视。图6是在普通千兆网络链路系统中的应用,总线宽度16位,总线时钟10ns。此图抓取的是正在传输大包数据的情况,数据包中包含MAC帧的前半部分数据。图6中20140530是协议头的标示字段,05EA是数据长度,表示1514字节。
图6中,TRIG3[2]为数据输出使能;TRIG2为输出数据;TRIG12[10]为数据转换使能;TRIG11为转换后的数据;TRIG12[9]为error位。
本发明可以无缝隙的传输,中转,变换数据,在保证数据正确性的同时,不影响数据传输的速度性能。
本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于FPGA的网络数据连包拆分方法,其特征在于,所述网络数据连包拆分方法包括以下步骤:
通过通信接口配置网络通信模块,并控制网络通信模块通过TCP协议与无线路由器建立socket链接;
根据数据通信协议对上行的第一数据包进行组包,将组包后的第一数据包通过通信接口发送至网络通信模块;
网络通信模块将组包后的第一数据包封装成TCP数据包后输入至协议栈;
无线路由器在第二FPGA控制下实现第一数据包的接收,并按照数据通信协议完成对第一数据包的拆包,将拆包后的第一数据包中继发送出去;
无线路由器接收下行的第二数据包,并在第二FPGA控制下按照数据通信协议完成对第二数据包的组包,将组包后的第二数据包中继发送出去;
网络通信模块接收无线路由器发送的根据数据通信协议组包的第二数据包,通过通信接口传输至第一FPGA;
第一FPGA根据数据通信协议拆分第二数据包,识别第二数据包中MAC帧,解析成完整的MAC帧,对完整的MAC帧进行数据解析处理。
2.根据权利要求1所述的一种基于FPGA的网络数据连包拆分方法,其特征在于,所述网络数据连包拆分方法还包括:网络通信模块将TCP数据包传输至无线路由器。
3.根据权利要求1所述的一种基于FPGA的网络数据连包拆分方法,其特征在于,
所述网络通信模块具体为:WiFi芯片、3G无线网卡、4G无线网卡或100M无线网卡。
4.根据权利要求1所述的一种基于FPGA的网络数据连包拆分方法,其特征在于,
所述通信接口具体为:SPI接口、UART接口或USB接口。
5.根据权利要求1所述的一种基于FPGA的网络数据连包拆分方法,其特征在于,所述网络数据连包拆分方法还包括:
统一编址寄存器,用于进行与外部芯片的通信,统一编址先进先出队列用于传输不同时域或不同单位长度的数据包。
6.根据权利要求1所述的一种基于FPGA的网络数据连包拆分方法,其特征在于,所述数据通信协议具体为:
在数据发起单元,将每个MAC帧加头部,头部定义为6个字节,前4个字节是头标志,后两个字节是MAC帧长度;
收到头标志,启动MAC帧接收过程,接收完长度字节后建立一个长度计数器;
每接收一个字节长度计数器减一,在长度计数器未等于零之前不去判断4个字节头标志。
CN201510569398.5A 2015-09-08 2015-09-08 一种基于fpga的网络数据连包拆分方法 Active CN105263165B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510569398.5A CN105263165B (zh) 2015-09-08 2015-09-08 一种基于fpga的网络数据连包拆分方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510569398.5A CN105263165B (zh) 2015-09-08 2015-09-08 一种基于fpga的网络数据连包拆分方法

Publications (2)

Publication Number Publication Date
CN105263165A true CN105263165A (zh) 2016-01-20
CN105263165B CN105263165B (zh) 2019-01-29

Family

ID=55102627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510569398.5A Active CN105263165B (zh) 2015-09-08 2015-09-08 一种基于fpga的网络数据连包拆分方法

Country Status (1)

Country Link
CN (1) CN105263165B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254034A (zh) * 2016-08-08 2016-12-21 山东大学 一种基于arm的参数识别系统的网络协议的工作方法
CN108664441A (zh) * 2018-07-13 2018-10-16 重庆爱思网安信息技术有限公司 Usb只读控制系统及方法
CN115242762A (zh) * 2022-06-27 2022-10-25 北京连山科技股份有限公司 一种结合数据粒子化算法实现的网络通信的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1347220A (zh) * 2001-10-22 2002-05-01 信息产业部电信传输研究所 用fpga实现atm适配层中拆分和重组子层的方法
CN101325539A (zh) * 2007-06-15 2008-12-17 中兴通讯股份有限公司 一种局域网内可靠通信的方法
CN104243103A (zh) * 2014-10-13 2014-12-24 福州瑞芯微电子有限公司 一种无连接的WiFi发送数据的方法、系统、发送端和接收端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1347220A (zh) * 2001-10-22 2002-05-01 信息产业部电信传输研究所 用fpga实现atm适配层中拆分和重组子层的方法
CN101325539A (zh) * 2007-06-15 2008-12-17 中兴通讯股份有限公司 一种局域网内可靠通信的方法
CN104243103A (zh) * 2014-10-13 2014-12-24 福州瑞芯微电子有限公司 一种无连接的WiFi发送数据的方法、系统、发送端和接收端

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254034A (zh) * 2016-08-08 2016-12-21 山东大学 一种基于arm的参数识别系统的网络协议的工作方法
CN108664441A (zh) * 2018-07-13 2018-10-16 重庆爱思网安信息技术有限公司 Usb只读控制系统及方法
CN108664441B (zh) * 2018-07-13 2020-03-31 重庆爱思网安信息技术有限公司 Usb只读控制系统及方法
CN115242762A (zh) * 2022-06-27 2022-10-25 北京连山科技股份有限公司 一种结合数据粒子化算法实现的网络通信的方法
CN115242762B (zh) * 2022-06-27 2023-03-10 北京连山科技股份有限公司 一种结合数据粒子化算法实现的网络通信的方法

Also Published As

Publication number Publication date
CN105263165B (zh) 2019-01-29

Similar Documents

Publication Publication Date Title
CN107426246B (zh) 基于FPGA的万兆以太网和RapidIO协议间高速数据交换系统
CN104410541B (zh) Vxlan内层虚拟机流量在中间交换机上进行统计的方法及装置
CN110300081B (zh) 一种数据传输的方法和设备
US11689501B2 (en) Data transfer method and virtual switch
WO2004010311A3 (en) Method and apparatus for zero-copy receive buffer management
US20140297785A1 (en) Offload Operations for Overlay Networks
CN105162674A (zh) 一种物理机访问虚拟网络的方法及网卡
EP2099169A1 (en) A method, equipment and system for transmitting data
EP2777217A1 (en) Protocol for layer two multiple network links tunnelling
CN105263165A (zh) 一种基于fpga的网络数据连包拆分方法
CN103188042A (zh) 一种ip数据包的匹配方法和匹配加速器
CN102143185B (zh) 数据传输方法和数据传输装置
EP4057576A1 (en) Packet encapsulating method and apparatus, and packet decapsulating method and apparatus
CN101645895B (zh) 一种实现隧道安全的方法和设备
CN102388594B (zh) 数据传输的方法、设备及系统
WO2016123975A1 (zh) 数据传输方法及装置
CN110912841B (zh) 面向128bit位宽的SRIO协议控制字符与数据包分离系统
EP2600569B1 (en) Method, apparatus and system for processing a tunnel packet
CN112637075A (zh) 一种基于fpga的udp/ip协议栈实现方法及fpga芯片
CN115550104B (zh) Axi总线扩展方法、装置、电子设备及存储介质
US20240007367A1 (en) NETWORK INTERFACE SUPPORTING TIME SENSITIVE NETWORKS AND MACsec PROTECTION
CN101252526B (zh) 流量控制方法以及vpws网络系统
CN104348821A (zh) 管理IPv4/IPv6业务的方法、设备和系统
CN209805842U (zh) 一种基于zynq的网络发包机
CN104066204B (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
CP03 Change of name, title or address

Address after: Room 4, Floor 1, No. 139, Shenzhou Avenue, Binhai High-tech Zone, Binhai New Area, Tianjin, 300392

Patentee after: Tianjin Photoelectric Gathered Energy Communication Co.,Ltd.

Address before: 300211 No. 6, Taishan Road, Tianjin, Hexi District

Patentee before: JUNENG SPECIAL COMMUNICATION EQUIPMENT CO.,LTD., TOEC GROUP CO.,LTD.

CP03 Change of name, title or address
CP02 Change in the address of a patent holder

Address after: Building 4, 1st floor, No. 139 Shenzhou Avenue, Binhai New Area, Tianjin, 300392

Patentee after: Tianjin Photoelectric Gathered Energy Communication Co.,Ltd.

Address before: Room 4, Floor 1, No. 139, Shenzhou Avenue, Binhai High-tech Zone, Binhai New Area, Tianjin, 300392

Patentee before: Tianjin Photoelectric Gathered Energy Communication Co.,Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: Plant 4, Floor 1, No. 139, Shenzhou Avenue, Binhai Hi tech Zone, Binhai, Tianjin, 300000

Patentee after: Tianjin Photoelectric Gathered Energy Communication Co.,Ltd.

Address before: Building 4, 1st floor, No. 139 Shenzhou Avenue, Binhai New Area, Tianjin, 300392

Patentee before: Tianjin Photoelectric Gathered Energy Communication Co.,Ltd.

CP02 Change in the address of a patent holder