一种数据传输方法、装置、设备及存储介质与流程

文档序号:25992254发布日期:2021-07-23 21:04阅读:86来源:国知局
一种数据传输方法、装置、设备及存储介质与流程

本发明涉及数据传输领域,特别涉及一种数据传输方法、装置、设备及存储介质。



背景技术:

当前,随着互联网络科技的迅速发展,互联网络已经深入到各行各业,业务日趋复杂,数据量也成几何数字增长,对高速的数据传输和交换的需求越来越强烈,高带宽、低延时的数据传输越来越重要。在广告推送、硬件网关、金融风控等一些应用场景下,存在对数据通路上部分数据进行修改的需求。现有技术中,通常通过中间设备分别与网络中的两台机器各建立不同的tcp(transmissioncontrolprotocol,传输控制协议)数据连接,利用中间设备对数据进行数据处理,如拦截、推送和拒绝等,再交互各自的数据。但由于需要分别与两台机器建立tcp连接,在进行数据交互前,这两台机器都事先知道中间设备的存在,数据有被监听、改动的可能,且两次tcp连接的建立会增加数据的延迟。针对tcp传输数据如何实现数据的监听修改和低延迟传输是当前亟需解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种数据传输方法、装置、设备及介质,能够实现数据的透明、低延时传输,并对基于传输控制协议的目标监听数据进行数据处理。其具体方案如下:

第一方面,本申请公开了一种数据传输方法,包括:

获取发送端网卡发送的以太网帧,并根据数据协议格式对所述以太网帧进行解析,得到解析后数据;

根据预设监听规则,判断所述解析后数据是否为基于传输控制协议的目标监听数据;

若所述解析后数据为所述目标监听数据,则根据预设处理规则对所述解析后数据进行处理,并将处理后数据传输给组包模块;

若所述解析后数据不是所述目标监听数据,则将所述解析后数据透传给所述组包模块;

利用所述组包模块对接收到的解析后数据和所述处理后数据进行封装,并将封装后数据传输给对应的接收端网卡。

可选的,所述根据预设监听规则,判断所述解析后数据是否为基于传输控制协议的目标监听数据,包括:

读取所述解析后数据的ip地址和传输协议类型;

将所述ip地址和所述传输协议类型与所述预设监听规则进行匹配,并根据匹配结果判断所述解析后数据是否为基于传输控制协议的目标监听数据。

可选的,所述根据预设处理规则对所述解析后数据进行处理,包括:

根据所述预设处理规则对所述解析后数据进行数据修改、数据删除和数据添加中的任意一项或多项。

可选的,所述将封装后数据传输给对应的接收端网卡之后,还包括:

获取所述接收端网卡在接收到所述封装后数据后,发送的响应数据;

将所述响应数据发送给所述接收端网卡,以便所述接收端根据所述响应数据从本地删除对应的以太网帧。

第二方面,本申请公开了一种数据传输装置,包括:

数据获取及解析模块,用于获取发送端网卡发送的以太网帧,并根据数据协议格式对所述以太网帧进行解析,得到解析后数据;

数据监听模块,用于根据预设监听规则,判断所述解析后数据是否为基于传输控制协议的目标监听数据;

数据处理模块,用于若所述解析后数据为所述目标监听数据,则根据预设处理规则对所述解析后数据进行处理,并将处理后数据传输给组包模块;

数据透传模块,用于若所述解析后数据不是所述目标监听数据,则将所述解析后数据透传给所述组包模块;

数据封装及发送模块,用于利用所述组包模块对接收到的所述解析后数据和/或所述处理后数据进行封装,并将封装后数据传输给对应的接收端网卡。

可选的,所述数据监听模块,包括:

信息读取单元,用于读取所述解析后数据的ip地址和传输协议类型;

信息匹配单元,用于将所述ip地址和所述传输协议类型与所述预设监听规则进行匹配,并根据匹配结果判断所述解析后数据是否为基于传输控制协议的目标监听数据。

可选的,所述数据处理模块,包括:

数据处理单元,用于根据所述预设处理规则对所述目标监听数据进行数据修改、数据删除和数据添加中的任意一项或多项。

可选的,所述数据传输装置,还包括:

响应数据接收单元,用于获取所述接收端网卡在接收到所述封装后数据后,发送的响应数据;

响应数据发送单元,用于将所述响应数据发送给所述接收端网卡,以便所述接收端根据所述响应数据从本地删除对应的以太网帧。

第三方面,本申请公开了一种电子设备,包括:

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

处理器,用于执行所述计算机程序,以实现前述的数据传输方法。

第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的数据传输方法。

本申请中,通过获取发送端网卡发送的以太网帧,并根据数据协议格式对所述以太网帧进行解析,得到解析后数据;根据预设监听规则,判断所述解析后数据是否为基于传输控制协议的目标监听数据;若所述解析后数据为所述目标监听数据,则根据预设处理规则对所述解析后数据进行处理,并将处理后数据传输给组包模块;若所述解析后数据不是所述目标监听数据,则将所述解析后数据透传给所述组包模块;利用所述组包模块对接收到的解析后数据和所述处理后数据进行封装,并将封装后数据传输给对应的接收端网卡。可见,通过直接获取网卡发送的以太网帧,并解析得到解析后数据,然后根据预设监听规则对需要监听的tcp数据进行处理,可以实现对目标链路的tcp数据的监听,并且将不需要监听的数据直接透传进入封装模块封装后发送出去,降低数据传输的时延,能够在相互交互数据的两台机器间实现数据的透明、低延时传输,并对基于传输控制协议的目标监听数据进行数据处理。

附图说明

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

图1为本申请提供的一种数据传输方法流程图;

图2为本申请提供的一种数据传输系统示意图;

图3为本申请提供的一种具体的数据传输方法流程图;

图4为本申请提供的一种数据传输装置结构示意图;

图5为本申请提供的一种电子设备结构图。

具体实施方式

现有技术中,通过中间设备分别与网络中的两台机器各建立tcp数据连接,然后利用中间设备对数据进行数据处理,如拦截、推送和拒绝等,但由于需要分别与两台机器建立tcp连接,在进行数据交互前,这两台机器都事先知道中间设备的存在,数据有被监听、改动的可能,且两次tcp连接的建立会增加数据的延迟。为克服上述技术问题,本申请提出一种数据传输方法,能够实现数据的透明、低延时传输,并对基于传输控制协议的目标监听数据进行数据处理。

本申请实施例公开了一种数据传输方法,参见图1所示,该方法可以包括以下步骤:

步骤s11:获取发送端网卡发送的以太网帧,并根据数据协议格式对所述以太网帧进行解析,得到解析后数据。

本实施例中,首先获取发送端网卡发送的以太网帧,然后根据数据协议格式对上述以太网帧进行解析,即根据数据传输的网络协议对以太网帧进行解封装,得到解析后的数据。

步骤s12:根据预设监听规则,判断所述解析后数据是否为基于传输控制协议的目标监听数据。

本实施例中,根据预设监听规则判断上述解析后数据是否为基于传输控制协议的目标监听数据,可以理解的是,设备间可能有成百上千的数据链路在交互,数据线中存在多种传输协议下的传输数据,通过预设监听规则中预设的发送端地址和传输协议类型可以从数据中筛选出需要监听的数据。

本实施例中,所述根据预设监听规则,判断所述解析后数据是否为基于传输控制协议的目标监听数据,可以包括:读取所述解析后数据的ip地址和传输协议类型;将所述ip地址和所述传输协议类型与所述预设监听规则进行匹配,并根据匹配结果判断所述解析后数据是否为基于传输控制协议的目标监听数据。即可以根据预设监听规则中预设的监听协议类型与解析后数据的数据传输协议类型进行匹配,根据预设监听规则中预设的ip地址与解析后数据的ip地址进行匹配,判断解析后数据的传输协议是否为目标发送端基于传输控制协议发送的数据。可以理解的是,上述监听规则可以根据监听需要进行设定,本实施例可以透明的接入任意两个基于以太网的设备之间,而不破坏原有设备之间的其它传输通道。由此一来,可以通过配置,可以实现对多路tcp连接同时且独立的监听,实现对需要接入的tcp链路进行数据监控及处理。

步骤s13:若所述解析后数据为所述目标监听数据,则根据预设处理规则对所述解析后数据进行处理,并将处理后数据传输给组包模块。

本实施例中,如果上述解析后数据为目标监听数据,则根据预设处理规则对上述解析后数据进行处理,并将处理后数据传输给组包模块。本实施例中,所述根据预设处理规则对所述解析后数据进行处理,可以包括:根据所述预设处理规则对所述解析后数据进行数据修改、数据删除和数据添加中的任意一项或多项。可以理解的是,上述预设处理规则可以根据处理需要进行设定,即针对不同的领域或者应用场景,可以设置不同的分析及处理规则,例如金融行业,可以对基于tcp的订单数据,进行极速风控管理;广告行业可以在tcp连接中新插入一个广告,而无需新建连接或者只能通过用户数据报协议推送;金融风险控制系统,对客户数据进行计算、分析确定该数据是否可以放行到交易所,不放行的直接发送拒绝消息,而此时由于本实施例中只存在发送端到接收端之间的一个tcp连接,因此对于被拒绝的单子客户的感觉还是来自交易所的拒绝。

步骤s14:若所述解析后数据不是所述目标监听数据,则将所述解析后数据透传给所述组包模块。

本实施例中,如果上述解析后数据不是目标监听数据,则将上述解析后数据直接透传给组包模块,即对于不是目标监听的数据无需进行数据处理,直接发送至组包模块组包发出,即对于非选择的数据链路的tcp帧或者其他类型的以太网帧,原封不动透传。

步骤s15:利用所述组包模块对接收到的解析后数据和所述处理后数据进行封装,并将封装后数据传输给对应的接收端网卡。

本实施例中,组包模块对接收到的解析后数据和处理后数据根据网络协议格式进行封装,然后将封装后的数据传输给对应的接收端网卡。

本实施例中,所述将封装后数据传输给对应的接收端网卡之后,还可以包括:获取所述接收端网卡在接收到所述封装后数据后,发送的响应数据;将所述响应数据发送给所述接收端网卡,以便所述接收端根据所述响应数据从本地删除对应的以太网帧。本实施例中,将封装后的数据发送给接收端后,获取接收端网卡发送的与上述封装后数据对应的响应数据,即根据传输控制协议的传输方式,接收端在接收到数据后反馈响应数据。然后将接收到的响应数据发送给接收端,以便接收端接收到响应数据后根据响应数据删除本地中存储的对应的以太网帧。可以理解的是,本实施例应用于的中间设备,不需要与发送端和接收端建立tcp连接,短暂的断电等不可抗拒外力引起设备停止工作,不会因为设备的停止运行而出现终端数据丢失,仍然保存在通信两端设备各自的协议栈缓存中,即当中间设备停电停止工作时,不会通过唯一的tcp连接传输响应数据,从而接收端不会删除相应的以太网帧,避免了建立两个tcp连接导致数据传输中断丢失的问题,实现无数据残差。

由上可见,本实施例中通过获取发送端网卡发送的以太网帧,并根据数据协议格式对所述以太网帧进行解析,得到解析后数据;根据预设监听规则,判断所述解析后数据是否为基于传输控制协议的目标监听数据;若所述解析后数据为所述目标监听数据,则根据预设处理规则对所述解析后数据进行处理,并将处理后数据传输给组包模块;若所述解析后数据不是所述目标监听数据,则将所述解析后数据透传给所述组包模块;利用所述组包模块对接收到的解析后数据和所述处理后数据进行封装,并将封装后数据传输给对应的接收端网卡。可见,通过直接获取网卡发送的以太网帧,并解析得到解析后数据,然后根据预设监听规则对需要监听的tcp数据进行处理,可以实现对目标链路的tcp数据的监听,并且将不需要监听的数据直接透传进入封装模块封装后发送出去,降低数据传输的时延,能够在相互交互数据的两台机器间实现数据的透明、低延时传输,并对基于传输控制协议的目标监听数据进行数据处理。

例如图2所示为本实施例中针对tcp数据传输的系统示意图,通过设备端的网卡获取发送的数据,具体的数据传输流程如图3所示。首先解包1对设备a在网络上传输的数据,经maca,即网卡进来后,按照数据协议格式进行解析;然后由匹配2比对解析的数据,是否符合预先配置的监听需求,即判断解析后数据是否为目标监听数据,符合的转发至缓存3,不符合的转发至透传4;缓存3将数据缓存,待数据处理模块来读取,数据处理模块根据预设处理规则对符合监听需求的数据进行处理;透传4将数据缓存,待原封不动发送出去;缓存5将数据处理模块发送的数据缓存,待组包发送。仲裁6将透传4和缓存5的数据,轮流送组包模块发送出去,最后由组包7把数据按网络协议格式发送出去。

相应的,对于设备b发送的数据,由解包11对设备b在网络上传输的数据,经macb进来后,按照数据协议格式进行解析。然后由匹配12比对解析的数据,是否符合预先配置的监听需求,即判断解析后数据是否为目标监听数据,符合的转发至缓存13,不符合的转发至透传14;缓存13将数据缓存,待数据处理模块来读取,数据处理模块根据预设处理规则对符合监听需求的数据进行处理;透传14将数据缓存,待原封不动发送出去;缓存15将数据处理模块发送的数据缓存,待组包发送。仲裁16将透传14和缓存15的数据,轮流送组包模块发送出去,最后由组包17把数据按网络协议格式发送出去。可见,通过直接获取网卡发送的以太网帧,并解析得到解析后数据,然后根据预设监听规则对需要监听的tcp数据进行处理,可以实现对目标链路的tcp数据的监听,并且将不需要监听的数据直接透传进入封装模块封装后发送出去,降低数据传输的时延,能够在相互交互数据的两台机器间实现数据的透明、低延时传输,并对基于传输控制协议的目标监听数据进行数据处理。

相应的,本申请实施例还公开了一种数据传输装置,参见图4所示,该装置包括:

数据获取及解析模块11,用于获取发送端网卡发送的以太网帧,并根据数据协议格式对所述以太网帧进行解析,得到解析后数据;

数据监听模块12,用于根据预设监听规则,判断所述解析后数据是否为基于传输控制协议的目标监听数据;

数据处理模块13,用于若所述解析后数据为所述目标监听数据,则根据预设处理规则对所述解析后数据进行处理,并将处理后数据传输给组包模块;

数据透传模块14,用于若所述解析后数据不是所述目标监听数据,则将所述解析后数据透传给所述组包模块;

数据封装及发送模块15,用于利用所述组包模块对接收到的所述解析后数据和/或所述处理后数据进行封装,并将封装后数据传输给对应的接收端网卡。

由上可见,本实施例中通过获取发送端网卡发送的以太网帧,并根据数据协议格式对所述以太网帧进行解析,得到解析后数据;根据预设监听规则,判断所述解析后数据是否为基于传输控制协议的目标监听数据;若所述解析后数据为所述目标监听数据,则根据预设处理规则对所述解析后数据进行处理,并将处理后数据传输给组包模块;若所述解析后数据不是所述目标监听数据,则将所述解析后数据透传给所述组包模块;利用所述组包模块对接收到的解析后数据和所述处理后数据进行封装,并将封装后数据传输给对应的接收端网卡。可见,通过直接获取网卡发送的以太网帧,并解析得到解析后数据,然后根据预设监听规则对需要监听的tcp数据进行处理,可以实现对目标链路的tcp数据的监听,并且将不需要监听的数据直接透传进入封装模块封装后发送出去,降低数据传输的时延,能够在相互交互数据的两台机器间实现数据的透明、低延时传输,并对基于传输控制协议的目标监听数据进行数据处理。

在一些具体实施例中,所述数据监听模块12具体可以包括:

信息读取单元,用于读取所述解析后数据的ip地址和传输协议类型;

信息匹配单元,用于将所述ip地址和所述传输协议类型与所述预设监听规则进行匹配,并根据匹配结果判断所述解析后数据是否为基于传输控制协议的目标监听数据。

在一些具体实施例中,所述数据处理模块13具体可以包括:

数据处理单元,用于根据所述预设处理规则对所述目标监听数据进行数据修改、数据删除和数据添加中的任意一项或多项。

在一些具体实施例中,所述数据传输装置具体可以包括:

响应数据接收单元,用于获取所述接收端网卡在接收到所述封装后数据后,发送的响应数据;

响应数据发送单元,用于将所述响应数据发送给所述接收端网卡,以便所述接收端根据所述响应数据从本地删除对应的以太网帧。

进一步的,本申请实施例还公开了一种电子设备,参见图5所示,图中的内容不能被认为是对本申请的使用范围的任何限制。

图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的数据传输方法中的相关步骤。

本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括解析后数据在内的数据223等,存储方式可以是短暂存储或者永久存储。

其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windowsserver、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的数据传输方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。

本申请实施例公开了一种具体的电子设备,该电子设备30具体可以包括:至少一个可编程门阵列(fpga,fieldprogrammablegatearray)31、至少一个存储器32、电源33、通信接口34、输入输出接口35和通信总线36。其中,所述存储器32用于存储计算机程序,所述计算机程序由所述可编程门阵列31加载并执行,以实现前述任一实施例公开的数据传输方法中的相关步骤。另外,存储器32作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括解析后数据在内的数据等,存储方式可以是短暂存储或者永久存储。

进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的数据传输方法步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种数据传输方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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