数据发送、接收方法及装置、数据传输方法及系统与流程

文档序号:13763169阅读:133来源:国知局
数据发送、接收方法及装置、数据传输方法及系统与流程

本发明涉及数据传输领域,尤其涉及数据发送、接收方法及装置、数据传输方法及系统。



背景技术:

在很多网络处理环境中,由于存在输入网络接口带宽大于单个后端分析设备的处理能力,因此需要根据后端分析设备的处理能力将输入流量分到多个分析设备进行处理。分流设备将采集到的数据传给分析设备,主要采集的都是TCP数据流。对于采集到的TCP数据流,分析的时候都是基于一个完整的交互序列进行分析,一个完整的交互序列含有多个TCP报文。因此,在进行分析的时候,必须保证完整序列的多个TCP报文进入同一个分析设备,否则会造成分析失败。

传统的做法是将数据直接以以太网报文的形式从网卡发送出去,分析设备自己接收以太网报文,进行组包分析。但这样接收报文会造成分析设备性能低下,很容易丢报文。

现有技术中针对上述缺点进行改进,在分流设备中增加TCP客户端模块,在分析设备中增加TCP服务模块,通过在分流设备与分析设备之间建立TCP通道,传输前端采集到的旁路TCP数据。这种改进方法虽然保证了数据报文不会丢失,然而TCP客户端模块几乎都是使用软件的形式实现的,即网络设备的分流过程大多是在设备的驱动程序中实现。这种实现方式会增加网络设备的负载,影响其他业务的处理能力,速度很有限,性能也有限。

目前有网络设备开始使用硬件实现部分TCP功能,即高速分流设备TCP客户端是在硬件中(或主体是基于硬件)实现,确保设备能够在所有接口流量满载的情况下实时分流,加速传输速度。

然而,硬件TCP客户端有两个缺点,一是TCP不能处理复杂的分析设备的响应信息,二是TCP无法自己去理解哪些报文能够组成一个完整的分析序列,它只能把一些连续的(TCP)信息流发送给同一个分析设备。因此,如果正在运行的分析设备死掉或者软件崩溃,分流设备在进行迁移时,即连接另一台分析设备时,不知从何处开始传输数据,很有可能造成分析内容,即完整的分析序列一部分传给崩溃的设备,另一部分传给新的分析设备,造成分析失败。同时,如果软件处理很慢,分流设备积累的数据就会越积越多,也会造成数据丢失。



技术实现要素:

为解决上述技术问题,本发明提供一种数据发送、接收方法及装置、数据传输方法及系统,能够保证数据传输过程中的完整性,实现分流设备负载均衡。

本发明提供的技术方案如下:

本发明公开了一种数据发送方法,用于分流设备通过TCP通道发送数据至分析设备,包括步骤:S11:发送具有序号的报文至分析设备;S12:监听是否接收到分析设备回馈的标记序号;S13:当接收到分析设备回馈的所述标记序号时,记录所述标记序号;S14:判断分流设备是否重新连接到新的分析设备;若是,执行下一步,否则重复执行步骤S11;S15:根据最近一次记录的所述标记序号确定下一个待发送的报文的开始序号;S16:按照所述开始序号发送所述报文至新的分析设备。

进一步优选的,还包括步骤:S10:根据预设规则对报文序列中的报文编列连续的序号。

进一步优选的,所述步骤S15“根据最近一次记录的所述标记序号确定下一个待发送的报文的开始序号”具体包括步骤:S151:根据预设规则将最近一次记录的所述标记序号作为下一个待发送的报文的开始序号。

进一步优选的,所述步骤S13“分流设备记录所述标记序号”之后还包括步骤:S131:释放序号排在所述标记序号之前的所述报文对应的空间。

本发明还公开了一种数据接收方法,用于分析设备通过TCP通道接收分流设备发送的数据,包括步骤:S21:接收分流设备发送的具有序号的报文;S22:判断接收到的所述报文是否形成完整的报文序列;若是,执行下一步,否则,重复执行步骤S21;S23:当接收到的所述报文形成完整的报文序列时,回馈一标记序号至分流设备。

进一步优选的,所述步骤S23“回馈一标记序号至分流设备”具体包括步骤:S231:将当前形成的完整的报文序列中最后一个报文的序号的下一个序号作为所述标记序号回馈至分流设备。

本发明还公开了一种数据传输方法,用于分流设备和分析设备之间通过TCP通道传输数据,包括步骤:S11:分流设备发送具有序号的报文至分析设备;S12:分流设备监听是否接收到分析设备回馈的标记序号;S21:分析设备接收分流设备发送的具有序号的报文;S22:分析设备判断接收到的所述报文是否形成完整的报文序列;若是,执行下一步,否则,重复执行步骤S21;S23:当接收到的所述报文形成完整的报文序列时,分析设备回馈一标记序号至分流设备;S13:当分流设备接收到分析设备回馈的所述标记序号时,记录所述标记序号;S14:分流设备判断是否重新连接到新的分析设备;若是,执行下一步,否则重复执行步骤S11;S15:分流设备根据最近一次记录的所述标记序号确定下一个待发送的报文的开始序号;S16:分流设备按照所述开始序号发送所述报文至新的分析设备。

进一步优选的,还包括步骤:S10:根据预设规则对报文序列中的报文编列连续的序号。

进一步优选的,所述步骤S23“回馈一标记序号至分流设备”具体包括步骤:S231:将当前形成的完整的报文序列中最后一个报文的序号的下一个序号作为所述标记序号回馈至分流设备。

进一步优选的,所述步骤S15“根据最近一次记录的所述标记序号确定下一个待发送的报文的开始序号”具体包括步骤:S151:根据预设规则将最近一次记录的所述标记序号作为下一个待发送的报文的开始序号。

进一步优选的,所述步骤S13“分流设备记录所述标记序号”之后还包括步骤:S131:释放序号排在所述标记序号之前的所述报文对应的空间。

本发明公开了一种数据发送装置,用于通过TCP通道发送数据至分析设备,包括分流设备,所述分流设备具体包括:发送模块,用于发送具有序号的报文至分析设备;监听模块,用于监听是否接收到分析设备回馈的标记序号;记录模块,用于当接收到分析设备回馈的所述标记序号时,记录所述分析设备回馈的标记序号;连接判断模块,用于判断分流设备是否重新连接到新的分析设备;确定模块,用于当所述分流设备重新连接到新的分析设备上时,根据最近一次记录的所述标记序号确定下一个待发送的报文的开始序号;所述发送模块还用于按照所述开始序号发送所述报文至新的分析设备。

进一步优选的,还包括:编号模块,用于根据预设规则对报文序列中的报文编列连续的序号。

进一步优选的,所述确定模块具体用于根据预设规则将最近一次记录的所述标记序号作为下一个待发送的报文的开始序号。

进一步优选的,还包括:释放模块,用于释放序号排在所述标记序号之前的所述报文对应的空间。

本发明还公开了一种数据接收装置,用于通过TCP通道接收分流设备发送的数据,包括分析设备,所述分析设备具体包括:接收模块,用于接收分流设备发送的具有序号的报文;报文序列判断模块,用于判断接收到的所述报文是否形成完整的报文序列;回馈模块,用于当接收到的所述报文形成完整的报文序列时,回馈一标记序号至分流设备。

进一步优选的,所述回馈模块具体用于将当前形成的完整的报文序列中最后一个报文的序号的下一个序号作为所述标记序号回馈至分流设备。

本发明还公开了一种数据传输系统,用于通过TCP通道传输数据,包括数据发送装置和数据接收装置,所述数据发送装置包括分流设备;所述分流设备具体包括:发送模块,用于发送具有序号的报文至分析设备;监听模块,用于监听是否接收到分析设备回馈的标记序号;记录模块,用于当接收到分析设备回馈的所述标记序号时,记录所述分析设备回馈的标记序号;连接判断模块,用于判断分流设备是否重新连接到新的分析设备;确定模块,用于当所述分流设备重新连接到新的分析设备上时,根据最近一次记录的所述标记序号确定下一个待发送的报文的开始序号;所述发送模块还用于按照所述开始序号发送所述报文至新的分析设备;所述数据接收装置包括分析设备,所述分析设备具体包括:接收模块,用于接收分流设备发送的具有序号的报文;报文序列判断模块,用于判断接收到的所述报文是否形成完整的报文序列;回馈模块,用于当接收到的所述报文形成完整的报文序列时,回馈一标记序号至分流设备。

进一步优选的,所述分流设备还包括:编号模块,用于根据预设规则对报文序列中的报文编列连续的序号。

进一步优选的,所述确定模块具体用于根据预设规则将最近一次记录的所述标记序号作为下一个待发送的报文的开始序号。

进一步优选的,所述回馈模块具体用于将当前形成的完整的报文序列中最后一个报文的序号的下一个序号作为所述标记序号回馈至分流设备。

进一步优选的,所述分流设备还包括:释放模块,用于释放序号排在所述标记序号之前的所述报文所在的报文序列对应的空间。

与现有技术相比,本发明在分流设备与分析设备之间通过对报文进行编列连续的序号的方式确保发送报文序列的完整性。如果设备掉线或软件崩溃,分流设备将与新的分析设备建立连接,或分析设备很慢,导致分流设备积累的报文越来越多,分流设备主动断开连接,与新的分析设备建立连接,都可从上次分析设备回馈的标记序号开始重新传输报文,确保用于分析的报文序列的完整性。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明予以进一步说明。

图1为本发明一种数据发送方法的主要步骤示意图;

图2为本发明一种数据发送方法中报文的序号编列示意图;

图3为本发明一种数据发送方法的完整步骤示意图;

图4为本发明一种数据接收方法的步骤示意图;

图5为本发明一种数据传输方法的主要步骤示意图;

图6为本发明一种数据发送装置的主要组成示意图;

图7为本发明一种数据接收装置的主要组成示意图;

图8为本发明一种数据传输系统的主要组成示意图;

图9为本发明一种数据传输系统的完整组成示意图。

附图标号说明:

110.分流设备,111.发送模块,112.监听模块,113.记录模块,114.连接判断模块,115.确定模块,116.编号模块,117.释放模块;

220.分析设备,221.接收模块,222.报文序列判断模块,223.回馈模块;

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

图1为本发明一种数据发送方法的主要步骤示意图,作为本发明的一个具体实施例,如图1所示,一种数据发送方法,用于分流设备110通过TCP通道发送数据至分析设备220,包括步骤:S11:发送具有序号的报文至分析设备220;S12:监听是否接收到分析设备220回馈的标记序号;S13:当接收到分析设备220回馈的所述标记序号时,记录所述标记序号;S14:判断分流设备110是否重新连接到新的分析设备220;若是,执行下一步,否则重复执行步骤S11;S15:根据最近一次记录的所述标记序号确定下一个待发送的报文的开始序号;S16:按照所述开始序号发送所述报文至新的分析设备220。

具体的,本发明的数据发送方法建立在分流设备110与分析设备220之间,其中分流设备110与分析设备220建立TCP通道,发送TCP报文序列。通过对一个完整的报文序列中的多个报文进行编列序号,再通过分析设备220回馈的标记序号,分流设备110的TCP客户端可确定重新连接时需要发送的报文序列的报文的序号。通过这种标记序号来发送报文,保证了报文序列发送的完整性,防止数据丢失,提高分析设备220的工作效率。

优选的,上述方法中还包括步骤:S10:根据预设规则对报文序列中的报文编列连续的序号。具体的,图2为本发明一种数据发送方法中报文的序号编列示意图,如图2所示,报文的长短不一,每个报文都有一个编号,从报文1开始对报文编列序号,可回滚。报文的序号为连续的,如图所示,从序号3至序号12。如果是16位的,到了0xffff后,下一个报文序号即为0。

对上述实施例进行改进,得到优选的实施例。图3为本发明一种数据发送方法的完整步骤示意图。作为本发明的一个具体实施例,如图3所示,一种数据发送方法,包括步骤:S10:根据预设规则对报文序列中的报文编列连续的序号;S11:发送具有序号的报文至分析设备220;S12:监听是否接收到分析设备220回馈的标记序号;S13:当接收到分析设备220回馈的所述标记序号时,记录所述标记序号;S14:判断分流设备110是否重新连接到新的分析设备220;若是,执行下一步,否则重复执行步骤S11;S151:根据预设规则将最近一次记录的所述标记序号作为下一个待发送的报文的开始序号;S16:按照所述开始序号发送所述报文至新的分析设备220。

具体的,本发明通过分析设备220回馈的标记序号,可判断一个完整的报文序列是否完全发送结束,同时当分流设备110重新连接新的分析设备220时,能够确定下一步需要发送的报文序号,避免出现一个报文序列中的报文发送至不同的分析设备220,造成报文不完整,无法进行报文序列的分析。

优选的,所述步骤S13“分流设备110记录所述标记序号”之后还包括步骤:S131:释放序号排在所述标记序号之前的所述报文对应的空间。具体的,本发明通过标记序号得知完整报文序列,及时清除已经发送且接收到的完整的报文序列所对应的空间,可以减少缓存的数据占用的存储空间,提高分流设备110的处理速度。

图4为本发明一种数据接收方法的步骤示意图,作为本发明的另一个具体实施例,如图4所示,一种数据接收方法,用于分析设备220通过TCP通道接收分流设备110发送的数据,包括步骤:S21:接收分流设备110发送的具有序号的报文;S22:判断接收到的所述报文是否形成完整的报文序列;若是,执行下一步,否则,重复执行步骤S21;S23:当接收到的所述报文形成完整的报文序列时,回馈一标记序号至分流设备110。

具体的,本发明的数据接收方法建立在分流设备110与分析设备220之间,其中分流设备110与分析设备220建立TCP通道,接收TCP报文序列。本发明的分析设备220当接收到的带有序号的报文组成一个完整的报文序列时回馈一个标记序号至分流设备110。因为分流设备110的TCP客户端仅仅具有发送数据的能力,不能处理复杂的分析设备220的响应信息,也无法自己去理解哪些报文能够组成一个完整的分析序列,因此,本发明的数据接收方法能够通过回馈一个标记序号告知分流设备110其所发送的报文序列是否完整以及具体发送完成了哪一个报文序列。

优选的,所述步骤S23“回馈一标记序号至分流设备110”具体包括步骤S231:将当前形成的完整的报文序列中最后一个报文的序号的下一个序号作为所述标记序号回馈至分流设备110。具体的,本发明中的标记序号可表示完整的报文序列,可以将接收到的完整报文序列中最后一个报文的序号作为标记序号,也可以将完整的报文序列中最后一个报文的序号的下一个序号作为所述标记序号回馈至分流设备110。标记序号不作具体的限定,可自行设定。

图5为本发明一种数据传输方法的主要步骤示意图,作为本发明的一个具体实施例,如图5所示,一种数据传输方法,用于分流设备110和分析设备220之间通过TCP通道传输数据,包括步骤:S11:分流设备110发送具有序号的报文至分析设备220;S12:分流设备110监听是否接收到分析设备220回馈的标记序号;S21:分析设备220接收分流设备110发送的具有序号的报文;S22:分析设备220判断接收到的所述报文是否形成完整的报文序列;若是,执行下一步,否则,重复执行步骤S21;S23:当接收到的所述报文形成完整的报文序列时,分析设备220回馈一标记序号至分流设备110;S13:当分流设备110接收到分析设备220回馈的所述标记序号时,记录所述标记序号;S14:分流设备110判断是否重新连接到新的分析设备220;若是,执行下一步,否则重复执行步骤S11;S15:分流设备110根据最近一次记录的所述标记序号确定下一个待发送的报文的开始序号;S16:分流设备110按照所述开始序号发送所述报文至新的分析设备220。

具体的,本发明的数据传输方法建立在分流设备110与分析设备220之间,包括上述的数据发送方法和数据接收方法。其中分流设备110与分析设备220建立TCP通道,传输TCP报文序列。分流设备110通过对一个完整的报文序列中的多个报文进行编列序号并发送至分析设备220,分析设备220在报文组成一个完整的报文序列时回馈一个标记序号至分流设备110。分流设备110在重新连接新的分析设备220时根据标记序号,可确定需要发送的报文序列的报文的序号。通过这种标记序号保证了报文序列发送的完整性,防止数据丢失,提高分析设备220的工作效率。

优选的,还包括步骤:S10:根据预设规则对报文序列中的报文编列连续的序号。

优选的,所述步骤S23“回馈一标记序号至分流设备110”具体包括步骤:S231:将当前形成的完整的报文序列中最后一个报文的序号的下一个序号作为所述标记序号回馈至分流设备110。

优选的,所述步骤S15“根据最近一次记录的所述标记序号确定下一个待发送的报文的开始序号”具体包括步骤:S151:根据预设规则将最近一次记录的所述标记序号作为下一个待发送的报文的开始序号。

优选的,所述步骤S13“分流设备110记录所述标记序号”之后还包括步骤:S131:释放序号排在所述标记序号之前的所述报文对应的空间。

下面结合图2详细介绍本发明一种数据发送方法的发送流程。

如图2所示,分流设备110传给分析设备220报文3、4、5、6、7,分析设备220接收成功。

分析设备220给分流设备110回馈标记序号为6,表明序号6之前的报文已经成为完整序列,分析完毕。分流设备110可以释放序号6之前的报文对应的空间,下一个分析的报文序列将从序号为6的报文开始。

分流设备110继续传给分析设备220报文8、9,分析设备220接收成功。

分析设备220给分流设备110回馈标记序号10,表明序号10之前的报文已经成为完整序列,分析完毕,分流设备110可以释放10之前的报文对应的空间,下一个分析的报文序列将从10开始。

分流设备110继续传给分析设备220报文10、11,分析设备220接收成功。

分析设备220出现问题(设备掉线或软件崩溃)。

分流设备110重新连接新的分析设备220,从上次分析设备220回馈的标记序号,即10,开始继续传送报文10、11、12,分析设备220接收成功。

分析设备220给分流设备110回馈标记序号12,表明序号12之前的报文已经成为完整序列,分析完毕,分流设备110可以释放12之前的报文对应的空间,下一个分析序列将从序号12开始。

图6为本发明一种数据发送装置的主要组成示意图。作为本发明的一个具体实施例,如图6所示,一种数据发送装置,用于通过TCP通道发送数据至分析设备220,包括分流设备110,所述分流设备110具体包括:发送模块111,用于发送具有序号的报文至分析设备220;监听模块112,用于监听是否接收到分析设备220回馈的标记序号;记录模块113,用于当接收到分析设备220回馈的所述标记序号时,记录所述分析设备220回馈的标记序号;连接判断模块114,用于判断分流设备110是否重新连接到新的分析设备220;确定模块115,用于当所述分流设备110重新连接到新的分析设备220上时,根据最近一次记录的所述标记序号确定下一个待发送的报文的开始序号;所述发送模块111还用于按照所述开始序号发送所述报文至新的分析设备220。

优选的,还包括编号模块116,用于根据预设规则对报文序列中的报文编列连续的序号。

优选的,所述确定模块115具体用于根据预设规则将最近一次记录的所述标记序号作为下一个待发送的报文的开始序号。

优选的,还包括:释放模块117,用于释放序号排在所述标记序号之前的所述报文对应的空间。

需要说明的是,本装置中各模块之间的信息交互、执行过程等内容与上述数据发送方法实施例基于同一构思,具体内容可参见本发明数据发送方法实施例中的叙述,此处不再赘述。

图7为本发明一种数据接收装置的主要组成示意图。作为本发明的一个具体实施例,如图7所示,一种数据接收装置,用于通过TCP通道接收分流设备110发送的数据,包括分析设备220,所述分析设备220具体包括:接收模块221,用于接收分流设备110发送的具有序号的报文;报文序列判断模块222,用于判断接收到的所述报文是否形成完整的报文序列;回馈模块233,用于当接收到的所述报文形成完整的报文序列时,回馈一标记序号至分流设备110。

优选的,所述回馈模块233具体用于将当前形成的完整的报文序列中最后一个报文的序号的下一个序号作为所述标记序号回馈至分流设备110。

需要说明的是,本装置中各模块之间的信息交互、执行过程等内容与上述数据接收方法实施例基于同一构思,具体内容可参见本发明数据接收方法实施例中的叙述,此处不再赘述。

图8为本发明一种数据传输系统的主要组成示意图,作为本发明的一个具体实施例,如图8所示,一种数据传输系统,用于通过TCP通道传输数据,包括数据发送装置和数据接收装置,所述数据发送装置包括分流设备110;所述分流设备110具体包括:发送模块111,用于发送具有序号的报文至分析设备220;监听模块112,用于监听是否接收到分析设备220回馈的标记序号;记录模块113,用于当接收到分析设备220回馈的所述标记序号时,记录所述分析设备220回馈的标记序号;连接判断模块114,用于判断分流设备110是否重新连接到新的分析设备220;确定模块115,用于当所述分流设备110重新连接到新的分析设备220上时,根据最近一次记录的所述标记序号确定下一个待发送的报文的开始序号;所述发送模块111还用于按照所述开始序号发送所述报文至新的分析设备220;所述数据接收装置包括分析设备220,所述分析设备220具体包括:接收模块221,用于接收分流设备110发送的具有序号的报文;报文序列判断模块222,用于判断接收到的所述报文是否形成完整的报文序列;回馈模块233,用于当接收到的所述报文形成完整的报文序列时,回馈一标记序号至分流设备110。

图9为本发明一种数据传输系统的完整组成示意图。作为本发明的一个具体实施例,如图9所示,所述分流设备110还包括:编号模块116,用于根据预设规则对报文序列中的报文编列连续的序号。

优选的,所述确定模块115具体用于根据预设规则将最近一次记录的所述标记序号作为下一个待发送的报文的开始序号。

优选的,所述回馈模块233具体用于将当前形成的完整的报文序列中最后一个报文的序号的下一个序号作为所述标记序号回馈至分流设备110。

优选的,如图9所示,所述分流设备110还包括:释放模块117,用于释放序号排在所述标记序号之前的所述报文所在的报文序列对应的空间。

本发明的数据传输系统建立在分流设备110与分析设备220之间,包括上述的数据发送装置和数据接收装置。其中分流设备110与分析设备220建立TCP通道,传输TCP报文序列。分流设备110通过对一个完整的报文序列中的多个报文进行编列序号并发送至分析设备220,分析设备220在报文组成一个完整的报文序列时回馈一个标记序号至分流设备110。分流设备110在重新连接新的分析设备220时根据标记序号,可确定需要发送的报文序列的报文的序号。通过这种标记序号保证了报文序列发送的完整性,防止数据丢失,提高分析设备220的工作效率。

需要说明的是,本系统中各模块之间的信息交互、执行过程等内容与上述方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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