一种基于FPGA实现的双向多链接数据发送方法及装置与流程

文档序号:15296704发布日期:2018-08-31 19:27阅读:179来源:国知局

本发明涉及网络测试领域,尤其涉及一种基于fpga实现的双向多链接数据发送方法及装置。



背景技术:

目前,在网络测试中,tcp(transmissioncontrolprotocol,传输控制协议)数据包的传输方式有两种:第一,根据窗口大小控制发送tcp数据包,例如《tcp/ip协议详解》中提到;第二,通过解析tcp链路历史和当前网络状态以及待发送包的情况,通过调整速率发送tcp包。

然而,以上两种方法进行tcp数据包的发送过程较复杂并且吞吐量不高,特别是在有丢包情况时发送过程更慢。

因此,需要一种克服上述问题或者至少部分地解决上述问题的基于fpga实现的双向多链接数据发送方法及装置。



技术实现要素:

本发明的目的在于提供一种基于fpga实现的双向多链接数据发送方法及装置,该方法及装置在本端和远端同时要求发送数据时做优先级处理,本端优先发送丢的数据包,有利于快速调整发送缓冲区的大小,提高tcp数据包传输的吞吐量。

本发明的一个方面,提供了一种基于fpga实现的双向多链接数据发送方法,包括以下步骤:

利用本端向远端发送本端数据包发送信号;利用本端接收远端发送的远端数据包发送信号;利用本端判断是否需要同时对本端数据包发送信号和远端数据包发送信号作请求应答,当需要同时作请求应答时,判断是否对远端数据包发送信号作优先应答;当需要作优先应答时,利用本端对远端数据包发送信号作优先请求应答并发送至远端,再对本端数据包发送信号作请求应答并发送至远端;当不需要作优先应答时,对本端数据包发送信号和远端数据包发送信号作请求应答一并发送至远端,其中,优先应答包括重传包、重复包和超时请求应答包。

进一步地,所述基于fpga实现的双向多链接数据发送方法,还包括:当不需要同时对本端数据包发送信号和远端数据包发送信号作请求应答时,将对本端数据包发送信号和远端数据包发送信号分别作请求应答并发送至远端。

进一步地,所述基于fpga实现的双向多链接数据发送方法,在所述利用本端向远端发送本端数据包发送信号之前,还包括:按照预定顺序并根据发送缓冲区大小确定本端向远端发送本端数据包发送信号的链接;针对该链接产生本端数据包发送信号。

进一步地,所述基于fpga实现的双向多链接数据发送方法,还包括:确定本端和远端之间建立的链接;从该链接中确定远端向本端发送远端数据包发送信号的链接。

进一步地,当发送缓冲区大小为0时,如果在收到本端数据包发送信号之前收到远端发送的确认包,则启用发送缓冲区发送数据包。

本发明的另一方面,提供了一种基于fpga实现的双向多链接数据发送装置,包括:

本端,用于向远端发送本端数据包发送信号,接收远端数据包发送信号,判断是否需要同时对本端数据包发送信号和远端数据包发送信号作请求应答,当需要同时作请求应答时,判断是否对远端数据包发送信号作优先应答,当需要作优先应答时,对远端数据包发送信号作优先请求应答并发送至远端,再对本端数据包发送信号作请求应答并发送至远端;当不需要作优先应答时,对本端数据包发送信号和远端数据包发送信号作请求应答一并发送至远端;远端,用于发送远端数据包发送信号,接收对本端数据包发送信号和对远端数据包发送信号作的请求应答,其中,优先应答包括重传包、重复包和超时请求应答包。

进一步地,本端包括:第一数据接收模块,用于接收远端数据包发送信号;数据包发送控制模块,用于判断是否需要同时对本端数据包发送信号和远端数据包发送信号作请求应答,当需要同时作请求应答时,判断是否对远端数据包发送信号作优先应答,当需要作优先应答时,对远端数据包发送信号作优先请求应答并发送至远端,再对本端数据包发送信号作请求应答并发送至远端;当不需要作优先应答时,对本端数据包发送信号和远端数据包发送信号作请求应答一并发送至远端;第一数据发送模块,用于向远端发送本端数据包发送信号,远端包括:第二数据发送模块,用于发送远端数据包发送信号;第二数据接收模块,用于接收对本端数据包发送信号和对远端数据包发送信号作的请求应答。

进一步地,本端还包括:本端多链接控制模块,用于按照预定顺序并根据发送缓冲区大小确定向远端发送本端数据包发送信号的链接;本端发数据包控制模块,用于针对向远端发送本端数据包发送信号的链接产生本端数据包发送信号。

进一步地,本端还包括:远端多链接控制模块,用于确定与远端之间建立的链接;发远端包控制模块,用于从该链接中确定远端发送远端数据包发送信号的链接。

进一步地,在所述本端多链接控制模块中,当发送缓冲区大小为0时,如果在收到本端数据包发送信号之前收到远端发送的确认包,则启用发送缓冲区发送数据包。

本发明与现有技术相比,具有以下优点:

1.本发明的方法及装置在本端和远端同时要求发送数据时做优先级处理,本端优先发送丢的数据包,有利于快速调整发送缓冲区的大小,提高tcp数据包传输的吞吐量。

2.本发明的方法及装置根据本端产生的数据包发送信号和判断确认包是否收到确认包来动态调整数据包发送信号的发送,以在发送缓冲区较小时有效提高tcp传输的带宽利用率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明实施例的基于fpga实现的双向多链接数据发送方法步骤图;

图2为本发明实施例的数据包发送控制方法流程图;

图3为本发明实施例的基于fpga实现的双向多链接数据发送装置的连接框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。

实施例一

图1为本发明实施例的基于fpga实现的双向多链接数据发送方法步骤图,参见图1,本发明提供的基于fpga实现的双向多链接数据发送方法,包括以下步骤:

利用本端向远端发送本端数据包发送信号;利用本端接收远端发送的远端数据包发送信号;利用本端判断是否需要同时对本端数据包发送信号和远端数据包发送信号作请求应答,当需要同时作请求应答时,判断是否对远端数据包发送信号作优先应答;当需要作优先应答时,利用本端对远端数据包发送信号作优先请求应答并发送至远端,再对本端数据包发送信号作请求应答并发送至远端;当不需要作优先应答时,对本端数据包发送信号和远端数据包发送信号作请求应答一并发送至远端,其中,优先应答包括重传包、重复包和超时请求应答包。

在本实施例中,利用本端判断是否需要同时对本端数据包发送信号和远端数据包发送信号作请求应答,换句话说,就是利用本端判断本端数据包发送信号和远端数据包发送信号是否在同一条链接上。

在本实施例中,当不需要优先应答时,也就是说,对远端数据包发送信号作的请求应答为纯确认包或可带数据的确认包。

本发明的方法在本端和远端同时要求发送数据时做优先级处理,本端优先发送丢的数据包,有利于快速调整发送缓冲区的大小,提高tcp数据包传输的吞吐量。

实施例二

本实施例是在实施例一基础上的改进,实施例一中公开的技术内容不重复描述,实施例一公开的内容也属于本实施例公开的内容。

所述基于fpga实现的双向多链接数据发送方法,还包括:当不需要同时对本端数据包发送信号和远端数据包发送信号作请求应答时,将对本端数据包发送信号和远端数据包发送信号分别作请求应答并发送至远端。

实施例三

本实施例是在实施例二基础上的改进,实施例二中公开的技术内容不重复描述,实施例二公开的内容也属于本实施例公开的内容。

所述基于fpga实现的双向多链接数据发送方法,在所述利用本端向远端发送本端数据包发送信号之前,还包括:按照预定顺序并根据发送缓冲区大小确定本端向远端发送本端数据包发送信号的链接;针对该链接产生本端数据包发送信号。

具体地,在按照预定顺序并根据发送缓冲区大小确定本端向远端发送本端数据包发送信号的链接中,本端按照一定的编码顺序依次向发送缓冲区分配发送任务,当一个发送缓冲区大小为0时,则跳过该发送缓冲区,向下一个发送缓冲区分配发送任务。

实施例四

本实施例是在实施例三基础上的改进,实施例三中公开的技术内容不重复描述,实施例三公开的内容也属于本实施例公开的内容。

所述基于fpga实现的双向多链接数据发送方法,还包括:确定本端和远端之间建立的链接;从该链接中确定远端向本端发送远端数据包发送信号的链接。

实施例五

本实施例是在实施例四基础上的改进,实施例四中公开的技术内容不重复描述,实施例四公开的内容也属于本实施例公开的内容。

当发送缓冲区大小为0时,如果在收到本端数据包发送信号之前收到远端发送的确认包,则启用发送缓冲区发送数据包。

本发明的方法根据本端产生的数据包发送信号和判断确认包是否收到确认包来动态调整数据包发送信号的发送,以在发送缓冲区较小时有效提高tcp传输的带宽利用率。

实施例六

本实施例是在实施例五基础上的改进,实施例五中公开的技术内容不重复描述,实施例五公开的内容也属于本实施例公开的内容。

图2为本发明实施例的数据包发送控制方法流程图,参见图2,首先,判断是否对本端数据包发送信号和远端数据包发送信号同时作请求应答,也就是说,判断本端数据包发送信号和远端数据包发送信号是否在同一条链接上,若不在同一条链接上,则对本端数据包发送信号和远端数据包发送信号分别进行处理,若在同一条链接上,则继续判断是否对远端数据包发送信号作优先应答,也就是说,对远端数据包发送信号作的请求应答是否是重传包、重复包和超时请求应答包中任一种,若对远端数据包发送信号作的请求应答为重传包、重复包和超时请求应答包中任一种,即对远端数据包发送信号作的请求应答为优先请求应答,则将该优先请求应答先发送至远端,然后再将对本端数据包发送信号作的请求应答发送至远端,若对远端数据包发送信号作的请求应答为纯确认包或可带数据的确认包中任一种,则将该纯确认包或可带数据的确认包与对本端数据包发送信号作的请求应答一起发送至远端。

对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

实施例七

图3为本发明实施例的基于fpga实现的双向多链接数据发送装置的连接框图,参见图3,本发明的基于fpga实现的双向多链接数据发送装置包括:

本端,用于向远端发送本端数据包发送信号,接收远端数据包发送信号,判断是否需要同时对本端数据包发送信号和远端数据包发送信号作请求应答,当需要同时作请求应答时,判断是否对远端数据包发送信号作优先应答,当需要作优先应答时,对远端数据包发送信号作优先请求应答并发送至远端,再对本端数据包发送信号作请求应答并发送至远端;当不需要作优先应答时,对本端数据包发送信号和远端数据包发送信号作请求应答一并发送至远端;远端,用于发送远端数据包发送信号,接收对本端数据包发送信号和对远端数据包发送信号作的请求应答,其中,优先应答包括重传包、重复包和超时请求应答包。

本发明的装置在本端和远端同时要求发送数据时做优先级处理,本端优先发送丢的数据包,有利于快速调整发送缓冲区的大小,提高tcp数据包传输的吞吐量。

在本实施例中,通过fpga(field-programmablegatearray,现场可编程门阵列)实现本端和远端之间数据包的传输,此时,客户端和服务器端的发送机制一样,都是本端发送数据包并且对远端做出回应,因此,不再区分客户端和服务器端,而是分为本端和远端。通过fpga(field-programmablegatearray,现场可编程门阵列)实现本端和远端之间数据包的传输,消耗时间短,使得在网络测试中,能够保证传输时间。

在本实施例中,链接的个数由本地cpu配置。

在本实施例中,本端与远端之间的数据传输可以互换,具体地,本端为客户端,远端为服务器端。此时,客户端向服务器端发送数据包,并分析从服务器端接收到的数据包,以对服务器端发送请求应答包。服务器端向客户端发送数据包,并分析从客户端接收到的数据包,以对客户端发送请求应答包。本端为服务器端,远端为客户端。此时,服务器端向客户端发送数据包,并分析从客户端接收到的数据包,以对客户端发送请求应答包。客户端向服务器端发送数据包,并分析从服务器端接收到的数据包,以对服务器端发送请求应答包。

实施例八

本实施例是在实施例七基础上的改进,实施例七中公开的技术内容不重复描述,实施例七公开的内容也属于本实施例公开的内容。

本端包括:第一数据接收模块,用于接收远端数据包发送信号;数据包发送控制模块,用于判断是否需要同时对本端数据包发送信号和远端数据包发送信号作请求应答,当需要同时作请求应答时,判断是否对远端数据包发送信号作优先应答,当需要作优先应答时,对远端数据包发送信号作优先请求应答并发送至远端,再对本端数据包发送信号作请求应答并发送至远端;当不需要作优先应答时,对本端数据包发送信号和远端数据包发送信号作请求应答一并发送至远端;第一数据发送模块,用于向远端发送本端数据包发送信号,远端包括:第二数据发送模块,用于发送远端数据包发送信号;第二数据接收模块,用于接收对本端数据包发送信号和对远端数据包发送信号作的请求应答。

实施例九

本实施例是在实施例七基础上的改进,实施例七中公开的技术内容不重复描述,实施例七公开的内容也属于本实施例公开的内容。

本端还包括:本端多链接控制模块,用于按照预定顺序并根据发送缓冲区大小确定向远端发送本端数据包发送信号的链接;本端发数据包控制模块,用于针对向远端发送本端数据包发送信号的链接产生本端数据包发送信号;远端多链接控制模块,用于确定与远端之间建立的链接;发远端包控制模块,用于从该链接中确定远端发送远端数据包发送信号的链接。

在本实施例中,本端还包括组包模块,用于对本端数据包发送信号作和对远端数据包发送信号的请求应答进行组包,从而将对本端数据包发送信号和对远端数据包发送信号的请求应答以数据包的方式发送至远端。

在本实施例中,本端和远端之间建立的链接个数由本地cpu配置,并在建立链接时确定。

实施例十

本实施例是在实施例八或九基础上的改进,实施例八或九中公开的技术内容不重复描述,实施例八或九公开的内容也属于本实施例公开的内容。

在所述本端多链接控制模块中,当发送缓冲区大小为0即滑动窗口大小为0时,如果在收到本端数据包发送信号之前收到远端发送的确认包,则启用发送缓冲区发送数据包。具体地,当发送缓冲区值较小,传输时间较长时,发送本端数据包的链接会出现发送缓冲区大小为0的情况,此时则等待接收确认包,当收到确认包时,发送缓冲区内可以发送数据包,如果本端数据包发送信号还未启动,此时,数据包的发送不依赖本端数据包发送信号,一旦收到确认包就产生组包信号。

本发明的装置根据本端产生的数据包发送信号和判断确认包是否收到确认包来动态调整数据包发送信号的发送,以在发送缓冲区较小时有效提高tcp传输的带宽利用率。

以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1