一种基于fpga的以太网报文高速可靠传输的设计方法
技术领域
[0001]
本发明涉及网络通信技术,特别涉及一种基于fpga的以太网报文高速可靠传输的设计方法。
背景技术:[0002]
网络通信中,为了保证网络数据传输的安全性,通常需要对待传输的网络数据进行处理。由于数据处理模块性能的限制和要求,输入数据处理模块的网络数据包必须是可靠传输的。由于以太网传输安全机制不健全、逻辑中缓存资源有限等客观条件,在较大吞吐量、较大带宽的数据传输场合,不可避免会出现某些报文在传输过程中丢失,这就会造成数据处理出现紊乱,必须进行报文重传和重复报文处理等过程,导致报文处理速率低下。
技术实现要素:[0003]
本发明的目的在于提供一种基于fpga的以太网报文高速可靠传输的设计方法,用于解决报文处理速率低下的问题。
[0004]
本发明一种基于fpga的以太网报文高速可靠传输的设计方法,其中,包括:通过fpga对接收到的报文进行编号判断,并根据结果进行操作,包括:s1、查询第一分片报文的终端编号在fpga的编号索引内是否能检索到,如果能检索到,则返回错误报文,并丢弃报文,如果不能检索到,则执行s2;s2、查询报文编号对应的报文在fpga内是否有对应缓存,如果有缓存,则直接读取缓存内容,发送到终端,如果没有缓存,则执行s3;s3、对接收报文进行报文处理,处理完成后,将报文写入到循环缓存区,同时写入报文缓存索引,并同时发送处理后的报文到需要到达的终端。
[0005]
根据本发明所述的基于fpga的以太网报文高速可靠传输的设计方法的一实施例,其中,发送端报文编号方法包括:根据发送报文的三元组或五元组进行终端编号;根据发送多链接不同报文进行报文编号;根据发送单链接相同报文进行分片报文编号。
[0006]
根据本发明所述的基于fpga的以太网报文高速可靠传输的设计方法的一实施例,其中,接收端报文处理包括:对接收报文的第一分片报文的终端编号进行重复行检查;根据接收报文的编号进行处理后的报文检索;接收端处理报文并缓存报文。
[0007]
根据本发明所述的基于fpga的以太网报文高速可靠传输的设计方法的一实施例,其中,终端发送端根据发送报文的三元组或五元组进行终端编号,根据多链接并发报文进行报文编号,对单链接报文进行分片编号。
[0008]
根据本发明所述的基于fpga的以太网报文高速可靠传输的设计方法的一实施例,其中,s1如果能检索到报文的终端编号,还报告编号重复错误类型。
[0009]
本发明提出的技术方案通过构建“发送终端报文编号”、“接收终端编号重复性检查”、“接收终端报文编号检索”三大机制,通过保存多个处理后的报文现场,减少重复报文的处理时间,实现了网络的高速可靠传输,设计者采用此机制可以结合实际情况灵活配置,。
附图说明
[0010]
图1所示为报文编号格式示意图;
[0011]
图2为接收报文编号处理示意图;
[0012]
图3为fpga缓存处理后报文示意图;
具体实施方式
[0013]
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
[0014]
图1所示为发送终端报文编号示意图,报文编号方法包括:
[0015]
a1、终端编号:三元组或五元组到终端编号的映射,映射方法由使用者定制,映射后的序列号需满足条件:其他终端映射的序列号与当前终端映射的序列号必须是不相同的。
[0016]
a2、报文编号:根据不同的报文,设置不同的报文编号,需满足条件:正在传输的报文编号不能有重复的。
[0017]
a3、分片报文编号:第一个分片报文从0或1开始,其他分片报文依次累加编号。
[0018]
图2所示为接收端报文处理编号示意图,报文编号处理方法包括:
[0019]
b1、第一分片报文的终端编号进行重复性检查,确保正在接收的报文终端编号不能重复,报文编号和分片报文编号可以重复,执行b2。
[0020]
b2、报文编号的缓存索引,查询当前接收的报文是否有已经完成处理的缓存报文,如果有,则当前报文不需进行二次处理,可直接发送到终端;如果没有,则执行b3。
[0021]
b3、报文处理:报文按使用者进行处理,并将处理后的报文输出到发送终端,同时更新处理后的报文到本地缓存buffer,同时写入报文缓存索引。
[0022]
图3所示为报文缓存区
[0023]
c1、处理后的报文需缓存到循环buffer,并将报文编号同步缓存到索引buffer中,需要说明的是,索引buffer的内容为报文buffer的地址指针。
[0024]
c2、报文检索:根据接收的报文编号,检索索引buffer,查询接收的报文是否已经进行过处理;如果已经进行过处理,则直接读取缓存buffer,输出处理后的报文;如果没有检索到报文编号,则报文发送到报文处理模块,进行处理。
[0025]
本发明一种基于fpga的以太网报文高速可靠传输的设计方法,其中,包括:发送端报文编号方法,包括终端发送端根据发送报文的三元组或五元组进行终端编号,根据多链接并发报文进行报文编号,对单链接报文进行分片编号;fpga对接收到的报文进行判断,执行如下判断步骤:查询第一分片报文的终端编号在fpga的编号索引内是否能检索到,如果能检索到,则返回错误报文,报告编号重复错误类型,表示当前编号已经被应用,并丢弃报文,如果没有检索到,则执行s2;s2、查询编号对应报文在fpga内是否有对应缓存,如果有缓存,则直接读取缓存内容,发送到终端,如果没有缓存,则执行s3;s3、接收报文并进行报文处理,处理完成后,报文写入到循环buffer缓存区,同时写入报文缓存索引,并同时发送处理后的报文到需要到达的终端。终端发送端编号包括:终端发送端根据发送报文的三元组或五元组进行终端编号,保证各个终端编号不能重复,以区分不同终端;终端发送端根据发送多链接不同报文进行报文编号,以区分不同链接的报文;终端发送端根据发送单链接相
同报文进行分片报文编号,以区分相同链接报文的不同分片报文。
[0026]
与现有技术相比,本发明提出的技术方案通过构建“发送终端报文编号”、“接收终端编号重复性检查”、“接收终端报文编号检索”三大机制,通过保存多个处理后的报文现场,减少重复报文的处理时间,实现了网络的高速可靠传输,设计者采用此机制可以结合实际情况灵活配置,所以本发明具有一定的工程实用价值。
[0027]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。