掌桥专利:专业的专利平台
掌桥专利
首页

TCP数据上报方法和装置、电子设备和存储介质

文献发布时间:2024-04-18 20:01:30


TCP数据上报方法和装置、电子设备和存储介质

技术领域

本申请涉及数据传输技术领域,尤其涉及一种TCP数据上报方法和装置、电子设备和存储介质。

背景技术

相关技术中,查看TCP数据统计信息(例如,分析TCP连接对应的业务类型)的方法主要包括如下两种:一是通过系统命令来查看设备级的全局统计信息,二是通过系统命令查看当前正在运行的每个连接的统计信息。

采用上述方法获取的TCP数据统计信息都是即时数据,数据量大,TCP数据统计信息需要统计方自行汇总,获取数据对系统的性能消耗大,无法确认每个连接信息的业务类型。

由此可见,相关技术中存在TCP数据统计信息需要统计方自行汇总,获取数据对系统的性能消耗大,无法确认每个连接信息的业务类型的技术问题。

发明内容

本申请提供了一种TCP数据上报方法和装置、电子设备和存储介质,以至少解决相关技术中存在TCP数据统计信息需要统计方自行汇总,获取数据对系统的性能消耗大,无法确认每个连接信息的业务类型的问题。

根据本申请实施例的一个方面,提供了一种TCP数据上报方法,包括:

将TCP连接的业务信息写入目标内核,其中,所述业务信息用于指示唯一对应的业务;

将所述目标内核中的TCP数据信息以及所述业务信息发送到所述目标内核对应的目标服务器上。

可选地,如前述的方法,所述将TCP连接的业务信息写入目标内核,包括:

在TCP创建套接字后,TCP调用目标系统接口将所述业务信息下发到所述目标内核中;

在所述目标内核中,在所述TCP连接对应的套接字连接上记录下所述业务信息。

可选地,如前述的方法,所述将所述目标内核中的TCP数据信息以及所述业务信息发送到所述内核对应的目标服务器上,包括:

在所述TCP连接释放的情况下,将所述目标内核中的TCP数据信息以及所述业务信息拷贝到当前CPU的CPU变量中,其中,所述当前CPU为处理所述内核中的数据的CPU;

在确定所述CPU变量中的当前数据的总数据满足预设要求的情况下,将所述当前数据发送到目标服务器上,其中,所述当前数据包括所述TCP数据信息以及所述业务信息。

可选地,如前述的方法,在所述将所述目标内核中的TCP数据信息以及所述业务信息拷贝到当前CPU的CPU变量中之前,所述方法还包括:

判断所述当前CPU中是否存在所述CPU变量;

在所述当前CPU中不存在所述CPU变量的情况下,通过在所述当前CPU中申请得到目标存储单元,得到所述CPU变量。

可选地,如前述的方法,所述确定所述CPU变量中的当前数据的总数据满足预设要求,包括:

确定所述CPU变量的最大存储数据量以及单条数据大小;

基于所述最大存储数据量以及所述单条数据大小,确定出预计数据条数;

在所述总数据所指示的总数据条数与所述预计数据条数之差满足预设范围的情况下,确定所述CPU变量中的当前数据的总数据满足预设要求。

可选地,如前述的方法,所述将所述当前数据发送到目标服务器上,包括:

将所述当前数据打包为指定格式的UDP数据包;

通过UDP将所述UDP数据包发送到所述目标服务器上。

可选地,如前述的方法,在确定所述CPU变量中的当前数据的总数据满足预设要求的情况下,将所述当前数据发送到目标服务器上之前,所述方法还包括:

通过指定接口,将指定目的地IP以及指定端口号传入所述目标内核中,其中,所述指定目的地IP以及所述指定端口号唯一指向于所述目标服务器。

根据本申请实施例的另一个方面,还提供了一种TCP数据上报装置,包括:

写入模块,用于将TCP连接的业务信息写入目标内核,其中,所述业务信息用于指示唯一对应的业务;

发送模块,用于在所述TCP连接释放的情况下,将所述目标内核中的TCP数据信息以及所述业务信息发送到所述目标内核对应的目标服务器上。

根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。

根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。

在本申请实施例中,通过将TCP连接的用于指示唯一对应的业务的业务信息写入目标内核;从而可以在将目标内核中的TCP数据信息以及业务信息发送到目标内核对应的目标服务器上之后,目标服务器即可确定出该TCP数据信息对应的业务;从而可以便于确定每个TCP连接的业务类型;进而可以克服相关技术中存在的TCP数据统计信息需要统计方自行汇总,获取数据对系统的性能消耗大,无法确认每个连接信息的业务类型的技术问题。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是根据本申请实施例的一种可选的TCP数据上报方法的硬件环境的示意图;

图2是根据本申请实施例的一种可选的TCP数据上报方法的流程示意图;

图3是根据本申请实施例的另一种可选的TCP数据上报方法的流程示意图;

图4是根据本申请实施例的另一种可选的TCP数据上报方法的流程示意图;

图5是根据本申请实施例的一种可选的TCP数据上报装置的结构框图;

图6是根据本申请实施例的一种可选的电子设备的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

1、Socket:即套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。

2、传输控制协议(TCP,Transmission Control Protocol):是一种面向连接的、可靠的、基于字节流的传输层通信协议。

3、用户数据报协议(UDP,User Datagram Protocol):是一种无需建立连接就可以发送封装的IP数据包的方法。

根据本申请实施例的一个方面,提供了一种TCP数据上报方法。可选地,在本实施例中,上述TCP数据上报方法可以应用于如图1所示的由终端1402和服务器1404所构成的硬件环境中。如图1所示,服务器1404通过网络与终端1402进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器1404提供数据存储服务。

上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:WIFI(Wireless Fidelity,无线保真),蓝牙。终端可以并不限定于为PC、手机、平板电脑等。

本申请实施例的TCP数据上报方法可以由服务器来执行,也可以由终端来执行,还可以是由服务器和终端共同执行。其中,终端执行本申请实施例的TCP数据上报方法也可以是由安装在其上的客户端来执行。

以由服务器来执行本实施例中的TCP数据上报方法为例,图2为本申请实施例提供的一种TCP数据上报方法,包括如下所述步骤:

步骤S101,将TCP连接的业务信息写入目标内核,其中,业务信息用于指示唯一对应的业务。

本实施例中的TCP数据上报方法可以应用于需要在将TCP数据上报给对应的需要进行每个TCP连接的业务类型以进行TCP数据统计,并得到TCP数据统计信息的场景。

具体的,TCP连接的业务信息可以是TCP连接对应的业务的业务ID,并且每个业务具有唯一对应的业务ID,从而可以便于后期能够准确基于业务信息确定出每个TCP连接的业务。

目标内核可以是用于处理该TCP连接的Linux内核。

进一步的,可以是通过对应的接口(例如,系统接口setsockopt),将该业务信息写入目标内核中。

步骤S102,将目标内核中的TCP数据信息以及业务信息发送到目标内核对应的目标服务器上。

具体的,在目标内核已获取业务信息之后,即可将业务信息发送给用于进行TCP数据统计的目标服务器。

目标内核对应的目标服务器即为目标内核中的数据所需发送至的服务器。

目标内核在将业务信息发送给目标服务器的同时,还将目标内核中记录的该TCP连接对应的TCP数据信息也发送到目标服务器,可选的,TCP数据信息可以包括但不限于以下一种或多种基础数据信息:发送的数据、发送数据所用时间,被客户确认的数据等等。

本实施例中的方法,通过将TCP连接的用于指示唯一对应的业务的业务信息写入目标内核;从而可以在将目标内核中的TCP数据信息以及业务信息发送到目标内核对应的目标服务器上之后,目标服务器即可确定出该TCP数据信息对应的业务;从而可以便于确定每个TCP连接的业务类型;进而可以克服相关技术中存在的TCP数据统计信息需要统计方自行汇总,获取数据对系统的性能消耗大,无法确认每个连接信息的业务类型的技术问题。

如图3所示,作为一种可选的实施例,如前述的方法,所述步骤S101将TCP连接的业务信息写入目标内核,包括如下所述步骤:

步骤S201,在TCP创建套接字后,TCP调用目标系统接口将业务信息下发到目标内核中。

具体的,套接字即为Socket。建立了TCP连接之后,TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上,而这个接口即为Socket。

本实施例中,在TCP创建Socket之后,TCP调用系统接口setsockopt将TCP连接的业务信息(例如,业务ID)下发到目标内核。

步骤S202,在目标内核中,在TCP连接对应的套接字连接上记录下业务信息。

目标内核在获取该业务信息之后,可以在该TCP连接对应的Socket连接(即,套接字连接)上记录下该业务信息,从而可以将业务信息与套接字连接相互对应,便于后期确定出套接字连接对应的业务类型,由于套接字连接唯一对应于该TCP连接,进而也就可以便于后期确定出TCP连接对应的业务类型。

通过本实施例中的方法,可以在目标内核上记录TCP连接对应的业务信息。

如图4所示,作为一种可选的实施例,如前述的方法,所述步骤S102将目标内核中的TCP数据信息以及业务信息发送到内核对应的目标服务器上,包括如下所述步骤:

步骤S301,在TCP连接释放的情况下,将目标内核中的TCP数据信息以及业务信息拷贝到当前CPU的CPU变量中,其中,当前CPU为处理内核中的数据的CPU。

本实施例中,在TCP连接释放的情况下,才进行数据采集,也就是说,在TCP连接释放之后,才将目标内核中的TCP数据信息以及业务信息发送到目标内核对应的目标服务器上。

具体的,在TCP连接释放的情况下,将目标内核中的TCP数据信息以及业务信息拷贝到当前CPU的CPU变量中。

CPU变量可以是在当前CPU中申请的,用于存储TCP数据信息以及业务信息的存储单元中的变量。该CPU变量可以用于记录TCP数据信息以及业务信息。

步骤S302,在确定CPU变量中的当前数据的总数据满足预设要求的情况下,将当前数据发送到目标服务器上,其中,当前数据包括TCP数据信息以及业务信息。

具体的,在将目标内核中的TCP数据信息以及业务信息拷贝到当前CPU的CPU变量中之后,即可将CPU变量中的TCP数据信息以及业务信息发送至目标服务器上。

本实施例中,在确定CPU变量中的当前数据的总数据满足预设要求的情况下,才将当前数据发送到目标服务器上。

可选地,CPU变量中的当前数据的总数据满足预设要求可以包括但不限于:总数据所对应的数据量满足预设的最大数据量(即,预设要求为最大数据量),总数据所对应的数据条数满足预设的数据条数上限(即,预设要求为数据条数上限)。

通过本实施例的方法,在TCP连接释放的情况下,才将CPU变量中的TCP数据信息以及业务信息发送至目标服务器上;从而可以不占用TCP的任何服务资源,可以提升TCP连接未释放时的服务性能。

作为一种可选的实施例,如前述的方法,所述步骤301在将目标内核中的TCP数据信息以及业务信息拷贝到当前CPU的CPU变量中之前,方法还包括如下所述步骤:

判断当前CPU中是否存在CPU变量;在当前CPU中不存在CPU变量的情况下,通过在当前CPU中申请得到目标存储单元,得到CPU变量。

也就是说,在将内核中的TCP数据信息以及业务信息拷贝到当前CPU的CPU变量中之前,先判断当前CPU中是否存在CPU变量;并且在当前CPU中不存在CPU变量的情况下,先在CPU上申请目标存储单元,然后可以通过在该目标存储单元中创建CPU变量,以通过该CPU变量记录相关信息。

作为一种可选的实施例,如前述的方法,所述步骤S302中确定CPU变量中的当前数据的总数据满足预设要求,包括如下所述步骤:

确定CPU变量的最大存储数据量以及单条数据大小;基于最大存储数据量以及单条数据大小,确定出预计数据条数;在总数据所指示的总数据条数与预计数据条数之差满足预设范围的情况下,确定CPU变量中的当前数据的总数据满足预设要求。

具体的,可以确定CPU变量对应的目标存储单元的最大存储数据量以及一般情况下,单条数据(即,一组相互对应的TCP数据信息以及业务信息)的大小,然后通过将最大存储数据量除以单条数据大小,得到预计数据条数。

在确定出预计数据条数之后,可以通过总数据所指示的总数据条数与预计数据条数之差满足预设范围的情况下,确定CPU变量中的当前数据的总数据满足预设要求。

预设范围可以是一个条数差的范围,例如,[-3,3],[-2,2];也可以是一个上线个数,例如,75个,80个等等。

作为一种可选的实施例,如前述的方法,所述步骤将当前数据发送到目标服务器上,包括:

将当前数据打包为指定格式的UDP数据包;通过UDP将UDP数据包发送到目标服务器上。

具体的,当CPU变量里面存储的总数据所指示的总数据条数与预计数据条数之差满足预设范围的情况下,可以通过UDP数据包按指定格式将所有的数据发送到指定的IP服务器(即,目标服务器)上,指定格式可以是UDP数据包的格式,即生成与总数据对应的UDP报文。

在得到UDP数据包之后,可以将UDP数据包通过UDP方式将其发送到目标服务器上。

本实施例的方法,通过UDP的方式来发送TCP数据信息以及业务信息到目标服务器,可以减少发送数据对系统资源的消耗。

作为一种可选的实施例,如前述的方法,在所述步骤S302确定CPU变量中的当前数据的总数据满足预设要求的情况下,将当前数据发送到目标服务器上之前,方法还包括如下所述步骤:

通过指定接口,将指定目的地IP以及指定端口号传入目标内核中,其中,指定目的地IP以及指定端口号唯一指向于目标服务器。

具体的,可以通过目标内核实现的proc接口(即,指定接口),将用于指向目标服务器的指定目的地IP以及指定端口号写入目标内核中,进而可以使目标内核在发送数据的时候,可以基于指定目的地IP以及指定端口号,确定出所需发送至的服务器为目标服务器。

通过本实施例的方法,可以实现对数据所需发送至的目标服务器的配置。

如下所述,提供一种应用前述任一实施例的应用例:

1.TCP在创建socket后调用系统接口setsockopt(目标系统接口)将TCP连接的业务信息(唯一的业务ID)下发到目标内核,目标内核在sokcet连接(即,TCP连接对应的套接字连接)上记录下业务ID。

2.在TCP连接释放的时候将TCP数据信息+业务ID拷贝到当前CPU的CPU变量里面,当前CPU没有此变量的时候进行申请得到该CPU变量。

3.当CPU变量里面存储的数据达到上限个数(即,CPU变量中的当前数据的总数据满足预设要求)的时候通过UDP数据包按指定格式将所有的数据发送到指定的IP服务器(即,目标服务器)上。

4.UDP数据包发送的目的地IP和端口都是通过内核实现的proc接口(即,指定接口)传内核的,proc接口是内核和应用层的一种交互方式。

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

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

根据本申请实施例的另一个方面,还提供了一种用于实施上述TCP数据上报方法的TCP数据上报装置。图5是根据本申请实施例的一种可选的TCP数据上报装置的结构框图,如图5所示,该装置可以包括:

写入模块1,用于将TCP连接的业务信息写入目标内核,其中,业务信息用于指示唯一对应的业务;

发送模块2,用于将目标内核中的TCP数据信息以及业务信息发送到目标内核对应的目标服务器上。

需要说明的是,该实施例中的写入模块1可以用于执行上述步骤S101,该实施例中的发送模块2可以用于执行上述步骤S102。

通过上述模块,通过将TCP连接的用于指示唯一对应的业务的业务信息写入目标内核;从而可以在将目标内核中的TCP数据信息以及业务信息发送到目标内核对应的目标服务器上之后,目标服务器即可确定出该TCP数据信息对应的业务;从而可以便于确定每个TCP连接的业务类型;进而可以克服相关技术中存在的TCP数据统计信息需要统计方自行汇总,获取数据对系统的性能消耗大,无法确认每个连接信息的业务类型的技术问题。

本实施例中的装置,除包含上述模块之外,还可以包含执行如前述任一TCP数据上报方法的实施例中任意方法的模块。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本申请实施例的又一个方面,还提供了一种用于实施上述TCP数据上报方法的电子设备,该电子设备可以是服务器、终端、或者其组合。

根据本申请的另一个实施例,还提供一种电子设备,包括:如图6所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。

存储器1503,用于存放计算机程序;

处理器1501,用于执行存储器1503上所存放的程序时,实现如下步骤:

步骤S101,将TCP连接的业务信息写入目标内核,其中,业务信息用于指示唯一对应的业务。

步骤S102,将目标内核中的TCP数据信息以及业务信息发送到目标内核对应的目标服务器上。

可选地,在本实施例中,上述的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

作为一种示例,上述存储器1503中可以但不限于包括上述TCP数据上报装置中的写入模块1以及发送模块2。此外,还可以包括但不限于上述TCP数据上报装置中的其他模块单元,本示例中不再赘述。

上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processor,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本申请实施例还提供一种计算机可读存储介质,存储介质包括存储的程序,其中,程序运行时执行上述方法实施例的方法步骤。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

相关技术
  • 一种熄火保护装置及制作方法
  • 一种主绝缘装置及制作方法、电压互感器及制作方法
  • 一种脑栓塞保护装置及带远端脑栓塞保护装置的系统
  • 一种脑栓塞保护装置及带远端脑栓塞保护装置的系统
技术分类

06120116560907