应用于多级节点网络的数据传输方法和装置
文献发布时间:2023-06-19 12:11:54
技术领域
本公开的实施例一般涉及通信技术领域,并且更具体地,涉及一种应用于多级节点网络的数据传输方法和装置。
背景技术
在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,通信协议包括TCP协议和UDP协议等。
TCP协议在传递数据之前,要先建连接消耗时间,而且在数据传递时,有确认机制、重传机制、拥塞控制机制等,都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,每个连接都会占用系统的CPU、内存等硬件资源。
UDP协议是一个无连接的传输层通信协议,通信是不可靠的。通信过程中会出现一些问题,如:因为UDP是无连接的,所以UDP的通信双方是不会针对发送消息进行确认的,发送方只负责发送数据,接收方只负责接收数据,不会有确认机制。在互联网传输的环境中,如果设备性能不足、网络环境不好,UDP协议是无连接的协议,基于UDP协议传输的数据则会出现丢包的情况。同时,UDP的数据包在网络上传输的时候,有可能造成数据的顺序更改,接收方的数据顺序和发送方的数据顺序发生了颠倒,则接收方则无法正常的组装还原原始数据了,就导致了通信的失败。
现有技术中,在对同一数据进行传输时,往往采用同一通信协议,但是,由于传输节点的剩余接收窗口不同,会造成数据的延迟传输和节点负载过重,现有技术中不能根据节点的剩余接收窗口大小来灵活选用通信协议,降低了数据传输的效率。
发明内容
根据本公开的实施例,提供了一种能够根据节点的剩余接收窗口大小来灵活选用通信协议,在保证数据传输安全的前提下提高传输效率。
在本公开的第一方面,提供了一种应用于多级节点网络的数据传输方法,包括:
网关节点接收用户端发送的原始数据,在多级节点网络中为所述原始数据规划传输路径;
根据所述原始数据的数据长度以及传输路径上的节点的剩余接收窗口分别确定对应节点的数据传输协议;
将对应节点的标识和数据传输协议信息添加至所述原始数据中,生成转发数据;
将所述转发数据发送至所述多级节点网络的起始节点,以令所述多级节点网络中的节点分别根据与自身对应的数据传输协议对所述原始数据进行传输。
在一些实施例中,所述在多级节点网络中为所述原始数据规划传输路径,包括:
根据节点的特性值间的距离值确定传输数据的节点的顺序,生成节点路径,其中,节点的特性值通过以下维度确定:
节点数据包的可追踪性、节点的受控制程度、在节点中分析信息数据的难易程度,以及,人工对节点的可溯源性进行赋值。
在一些实施例中,所述根据节点的特性值间的距离值确定传输数据的节点的顺序,包括:
根据目标节点的标识确定与所述目标节点的特性值的距离值最大的节点,作为所述目标节点的前一跳节点;
将与所述目标节点的前k跳的节点的特性值的距离值第二大的节点,作为所述目标的前k+1跳的节点;
其中,k为大于1且小于等于s的自然数,s为节点的总数量。
在一些实施例中,所述数据传输协议包括TCP协议、UDP协议和FDP协议;
其中,所述FDP协议在数据传输过程中,当前节点获取上级节点通过UDP协议发送的数据包,对所述数据包进行解析处理,生成原始应用数据;
对所述原始应用数据的数据长度进行检测,响应于所述原始应用数据的数据长度大于预设数据包长度,以所述预设数据包长度为基准对所述原始应用数据进行切分,生成切分数据包;
对所述切分数据包进行编号,并为所述切分数据包添加用于标识所述切分数据包类型的包头;
向下级节点发送探测窗口数据包,响应于下级节点返回的剩余接收窗口的大小能够接收全部的切分数据包,通过UDP协议将全部的切分数据包添加至发送队列以发送至所述下级节点,其中,所述剩余接收窗口的大小为接收窗口大小减去接收队列大小的差值。
在一些实施例中,所述发送队列中包含两种类型的切分数据包,一种是未发送的切分数据包,一种是已发送但未接收到下级节点发送的确认收到对应编号的切分数据包的信息的切分数据包,对于已发送但未接收到下级节点发送的确认收到对应编号的切分数据包的信息的切分数据包,
当前节点在预设时间段内未接收到所述下级节点发送的确认对应编号切分数据包的信息时,将所述对应编号切分数据包重新发送至所述下级节点,和/或,
对于一个目标编号切分数据包,当前节点在间隔预设数量的所述下级节点发送的确认对应编号切分数据包的信息时仍未接收到所述目标编号切分数据包对应的确认信息时,将所述目标编号切分数据包重新发送至所述下级节点,和/或,
当当前节点接收所述下级节点发送的未接收到对应编号切分数据包的信息时,将所述对应编号切分数据包重新发送至所述下级节点。
在一些实施例中,所述根据所述原始数据的数据长度以及传输路径上的节点的剩余接收窗口确定对应节点的数据传输协议,包括:
若传输路径上的节点的剩余接收窗口大于所述原始数据的数据长度与第一预设数值的乘积,则选用TCP协议;
若传输路径上的节点的剩余接收窗口小于所述原始数据的数据长度与第二预设数值的乘积,则选用UDP协议;
若传输路径上的节点的剩余接收窗口小于所述原始数据的数据长度与第一预设数值的乘积,且大于所述原始数据的数据长度与第二预设数值的乘积,则选用FDP协议,其中,所述第一预设数值大于所述第二预设数值。
在一些实施例中,所述将对应节点的标识和数据传输协议信息添加至所述原始数据中,生成转发数据,包括:
将末级节点的节点标识和数据传输协议信息嵌套在原始数据外,生成转发数据;
将上级节点的节点标识和数据传输协议信息嵌套在下级节点的节点标识和数据传输协议信息外。
在本公开的第二方面,提供了一种应用于多级节点网络的基于事件驱动的数据传输装置,包括:
网关节点,用于接收用户端发送的原始数据,在多级节点网络中为所述原始数据规划传输路径;根据所述原始数据的数据长度以及传输路径上的节点的剩余接收窗口确定对应节点的数据传输协议;将对应节点的标识和数据传输协议信息添加至所述原始数据中,生成转发数据;将所述转发数据发送至所述多级节点网络的起始节点;
多级节点网络,用于分别根据与自身对应的数据传输协议对所述原始数据进行传输。
在本公开的第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如以上所述的方法。
通过本公开的应用于多级节点网络的基于事件驱动的数据传输方法,能够根据节点的剩余接收窗口大小来灵活选用通信协议,在保证数据传输安全的前提下提高传输效率。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了本公开实施例一的应用于多级节点网络的数据传输方法的流程图;
图2示出了本公开实施例二的应用于多级节点网络的数据传输方法的流程图;
图3示出了本公开实施例三的应用于多级节点网络的数据传输装置的结构示意图;
图4示出了本公开实施例四的应用于多级节点网络的数据传输设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开实施例的应用于多级节点网络的数据传输方法,用于在多级节点网络中节点之间的数据传输,根据节点的剩余接收窗口大小来灵活选用通信协议,在保证数据传输安全的前提下提高传输效率。具体地,如图1所示,为本本公开实施例一的应用于多级节点网络的数据传输方法的流程图。从图1中可以看出,本实施例的应用于多级节点网络的数据传输方法,可以包括以下步骤:
S101:网关节点接收用户端发送的原始数据,在多级节点网络中为所述原始数据规划传输路径。
当用户端需要向其他终端发送数据获取请求或者向其他终端发送数据时,需要向网关节点发送原始数据,网关节点在接收到用户端发送的原始数据后,在多级节点网络中为所述原始数据规划传输路径,即在多级节点网络中逐级确定转发所述原始数据的节点。
S102:根据所述原始数据的数据长度以及传输路径上的节点的剩余接收窗口分别确定对应节点的数据传输协议。
在确定多级节点网络中转发所述原始数据的节点后,可以根据所述原始数据的数据长度以及确定的传输路径上的节点的剩余接收窗口分别确定对应节点的数据传输协议。
具体地,可以将传输路径上的节点的剩余接收窗口大小与原始数据的数据长度与预设数值的乘积进行对比,例如,若传输路径上的节点的剩余接收窗口大于所述原始数据的数据长度与第一预设数值的乘积,则选用TCP协议;若传输路径上的节点的剩余接收窗口小于所述原始数据的数据长度与第二预设数值的乘积,则选用UDP协议;若传输路径上的节点的剩余接收窗口小于所述原始数据的数据长度与第一预设数值的乘积,且大于所述原始数据的数据长度与第二预设数值的乘积,则选用FDP协议,其中,所述第一预设数值大于所述第二预设数值。
这样,在传输路径上的节点有足够的剩余接收窗口时,可以选用TCP协议进行数据传输,保证数据的安全性,在传输路径上的节点的剩余接收窗口不充足时,选用UDP协议,保证数据的传输效率,而在传输路径上的节点的剩余接收窗口介于上述的两者之间时,选用FDP协议。
在本实施例中,FDP协议在数据传输过程中,当前节点获取上级节点通过UDP协议发送的数据包,对所述数据包进行解析处理,生成原始应用数据;
对所述原始应用数据的数据长度进行检测,响应于所述原始应用数据的数据长度大于预设数据包长度,以所述预设数据包长度为基准对所述原始应用数据进行切分,生成切分数据包;
对所述切分数据包进行编号,并为所述切分数据包添加用于标识所述切分数据包类型的包头;
向下级节点发送探测窗口数据包,响应于下级节点返回的剩余接收窗口的大小能够接收全部的切分数据包,通过UDP协议将全部的切分数据包添加至发送队列以发送至所述下级节点,其中,所述剩余接收窗口的大小为接收窗口大小减去接收队列大小的差值。
所述发送队列中包含两种类型的切分数据包,一种是未发送的切分数据包,一种是已发送但未接收到下级节点发送的确认收到对应编号的切分数据包的信息的切分数据包,对于已发送但未接收到下级节点发送的确认收到对应编号的切分数据包的信息的切分数据包,
当前节点在预设时间段内未接收到所述下级节点发送的确认对应编号切分数据包的信息时,将所述对应编号切分数据包重新发送至所述下级节点,和/或,
对于一个目标编号切分数据包,当前节点在间隔预设数量的所述下级节点发送的确认对应编号切分数据包的信息时仍未接收到所述目标编号切分数据包对应的确认信息时,将所述目标编号切分数据包重新发送至所述下级节点,和/或,
当当前节点接收所述下级节点发送的未接收到对应编号切分数据包的信息时,将所述对应编号切分数据包重新发送至所述下级节点。
S103:将对应节点的标识和数据传输协议信息添加至所述原始数据中,生成转发数据。
在确定了传输路径上的节点的数据传输协议后,可以将对应节点的标识和对应节点的数据传输协议信息添加至所述原始数据中,生成转发数据。具体地,可以将末级节点的节点标识和数据传输协议信息嵌套在原始数据外,生成转发数据;将上级节点的节点标识和数据传输协议信息嵌套在下级节点的节点标识和数据传输协议信息外。这样,就可以生成洋葱式的转发数据,最外层是初始节点的节点标识和数据传输协议信息,第二层是初始节点的下级节点的节点标识和数据传输协议信息,以此类推,倒数第二层是末级节点的节点标识和数据传输协议信,核心则是原始数据。
S104:将所述转发数据发送至所述多级节点网络的起始节点,以令所述多级节点网络中的节点分别根据与自身对应的数据传输协议对所述原始数据进行传输。
在确定了传输路径上的节点的数据传输协议并生成转发数据后,可以将生成的转发数据送至所述多级节点网络的起始节点,以令所述多级节点网络中的节点分别根据与自身对应的数据传输协议对所述原始数据进行传输。
本公开实施例的应用于多级节点网络的基于事件驱动的数据传输方法,能够根据节点的剩余接收窗口大小来灵活选用通信协议,在保证数据传输安全的前提下提高传输效率。
如图2所示,为本公开实施例二的应用于多级节点网络的数据传输方法的流程图。本实施例针对如何确定多级节点网络中节点的先后顺序进行说明,包括以下步骤:
S201:根据目标节点的标识确定与所述目标节点的特性值的距离值最大的节点,作为所述目标节点的前一跳节点。
节点的特性值通过以下维度确定:
(1)数据包的可追踪性,即判断节点能否追踪溯源单包数据,以及是否能够获取数据包的特征信息,所述维度的值可以占全部四个维度值的25%,每满足上述的一个条件减少5%;(2)节点的受控制程度,确定对节点控制程度是反射控制、跳板控制、费标准跳板控制、僵尸控制还是物理控制,所述维度的值可以占全部四个维度值的25%,上述的控制程度相邻级别递减5%,初始级别对应的值为25%,例如,反射控制对应的值为25%,物理控制对应的值为5%;(3)在节点中分析信息数据的难易程度,主要体现在以下两个方面,一是节点网络的联通性是否满足第一预设条件,二是节点的可访问性是否满足第二预设条件,所述第一预设条件例如可以是与所述节点连接的其他节点的数量上是否大于目标值,所述第二预设条件例如可以是节点在预设时间段的被访问量是否大于目标值,所述维度的初始值为25%,每满足上述的一个方面的条件,在初始值的基础上减少5%;(4)根据人工经验值对节点的可溯源性进行赋值。人工赋值时,可以参考区域名称在时事新闻中或者相关网络信息中出现的频次对节点的可溯源性进行赋值。
其中,特性区域的可溯源性的总值为1,也就是说,上述的四个维度分别对应的可溯源性对应的值为25%,即0.25,当然,也可以每个维度对应的可溯源性对应的值根据实际需要进行动态调整。
S202:将与所述目标节点的前k跳的节点的特性值的距离值第二大的节点,作为所述目标的前k+1跳的节点。
将与所述目标的前n跳的节点的特性值的距离值第二大的节点,作为所述目标的前n+1跳的节点;其中,n为大于1且小于等于m的自然数,m为需要经过的节点的数量,特性值的距离值为两节点的特性值的差值的绝对值。
通过上述方法,确定了数据在多级节点网络中的传输顺序,进而能够快速传输数据并且使得传输过程稳定可靠。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应所述知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应所述知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本公开所述方案进行进一步说明。
如图3所示,为本公开实施例三的应用于多级节点网络的数据传输装置的结构示意图,本实施例的应用于多级节点网络的数据传输装置,包括:
网关节点301,用于接收用户端发送的原始数据,在多级节点网络中为所述原始数据规划传输路径;根据所述原始数据的数据长度以及传输路径上的节点的剩余接收窗口确定对应节点的数据传输协议;将对应节点的标识和数据传输协议信息添加至所述原始数据中,生成转发数据;将所述转发数据发送至所述多级节点网络的起始节点。
多级节点网络302,用于分别根据与自身对应的数据传输协议对所述原始数据进行传输。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图4示出了可以用来实施本公开的实施例的电子设备400的示意性框图。如图所示,设备400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的计算机程序指令或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序指令,来执行各种适当的动作和处理。在RAM 403中,还可以存储设备400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元401执行上文所描述的各个方法和处理,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 703并由CPU401执行时,可以执行上文描述的方法的一个或多个步骤。备选地,在其他实施例中,CPU401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述方法。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
- 应用于多级节点网络的数据传输方法和装置
- 基于多级节点网络的数据传输方法和装置