报文处理方法及装置与流程

文档序号:17774325发布日期:2019-05-28 19:51阅读:162来源:国知局
报文处理方法及装置与流程

本申请涉及通信技术领域,尤其涉及一种报文处理方法及装置。



背景技术:

随着无线个域网(wirelesspersonalareanetwork,wpan)技术的发展,基于该类技术进行多跳扩展的无线网状(mesh)网络和移动自组织网络(adhoc)被广泛应用。在这两种网络形成的拓扑结构中,通常会出现树形结构,即网络中的一个节点连接多个子节点,而其中某些子节点又连接多个子节点。在树形网络中,节点有明确的上行和下行通信方向,上行是由子节点向其共同的父节点发送数据,下行则是由父节点向其某个子节点发送数据。例如,如图1中的树形结构所示,当节点2至节点11中任何一个或多个节点向节点1发送数据时,为上行通信,反之为下行通信。

目前,有多种类型的数据(如,心跳报文或传感器报文等)采用单播方式,进行端到端的传输。当这些数据通过上述无线多跳网络进行上行传输时,越靠近根节点的传输路径中,上行报文的流量越大。且网络规模越大,节点的带宽瓶颈越为突出,很可能会影响业务的正常运行。



技术实现要素:

本申请提供了一种报文处理方法及装置,通过将具有相同的业务类型和最终目的地址的报文聚合在一起发送,以解决上行报文占用大量网络带宽,影响业务正常运行的问题。

第一方面,提供了的一种报文处理方法。该方法包括:第一节点根据第一节点的第一数据生成第一报文,第一报文包括报文头部,报文头部包括业务类型、最终目的地址和剩余聚合次数rta。当第一报文的rta不为0时,第一节点确定与业务类型和最终目的地址对应的第一缓存中的剩余容量,第一缓存中存储有第二报文,第二报文具有与第一报文相同的业务类型和最终目的地址,第二报文可以为第一节点从其子节点接收的报文,或者第二报文可以为第一报文根据其第二数据生成的报文。当第一报文的数据长度不大于剩余容量时,第一节点将第一报文与第二报文聚合成第三报文,第三报文的报文头部包括业务类型、最终目的地址和第三报文的rta,第三报文的rta为第一报文的rta减1后的数值与第二报文的rta中的最小值。

采用上述报文处理方法,第一节点根据第一节点的数据生成第一报文,为其设置最终目的地址、业务类型和剩余聚合次数rta,并确定与最终目的地址和业务类型的组合相对应的第一缓存中的剩余容量,以及第一缓存中存储的第二报文。当第一报文的数据长度不大于剩余容量时,将第一报文与第一缓存中的第二报文聚合成第三报文。通过控制报文的聚合次数和聚合数据长度,从而有效地将报文的传输延迟和聚合深度限制在合理范围内,缓解节点之间传输路径的带宽压力,以保证业务的正常运行。

在一种可能的实施方式中,该方法还包括:当第三报文的rta为0时,在超出预设聚合时间后,第一节点将第三报文发送至与最终目的地址对应的节点;当第三报文的rta不为0时,在超出预设聚合时间后,第一节点将第三报文发送至第一节点的父节点。采用这种方式,当第三报文的rta为0时,已无法对第三报文进行进一步聚合处理,通过及时将第三报文发送至与最终目的地址对应的节点,以将该报文的聚合时延控制在合理范围内。当第三报文的rta不为0时,通过将第三报文发送至第一节点的父节点,以向第三报文提供进一步聚合的可能性。

在一种可能的实施方式中,该方法还包括:当第一报文的rta为0时,在预定时间内,第一节点将第一报文发送至与最终目的地址对应的节点。采用这种方式,通过将对时延敏感的业务的报文的rta设置为0,使该报文可以被及时发送至与最终目的地址对应的节点,以保证该业务的正常运行。

在一种可能的实施方式中,方法还包括:当第一报文的数据长度大于剩余容量时,在预定时间内,第一节点将第一报文发送至第一节点的父节点。采用这种方式,在第一报文的数据长度大于第一节点中第一缓存的剩余容量时,及时将第一报文转发至第一节点的父节点,以使第一报文可以及时与其他节点中的报文进行聚合。

第二方面,提供了的一种报文处理方法。该方法包括:第一节点接收第一节点的第一子节点发送的第四报文,第四报文包括报文头部和网络层封装头部,报文头部包括业务类型、最终目的地址和剩余聚合次数rta,网络层封装头部包括网络目的地址。当网络目的地址为第一节点的地址时,第一节点确定与业务类型和最终目的地址对应的第四缓存的剩余容量,第四缓存中存储有第五报文,第五报文具有与第四报文相同的业务类型和最终目的地址,第五报文可以为第一节点接收的报文,或者第五报文可以为第一节点根据第一节点的数据生成的报文。当第四报文的数据长度不大于剩余容量时,第一节点将第四报文与第五报文聚合成第六报文,第六报文的报文头部包括业务类型、最终目的地址和第六报文的rta,第六报文的rta为第四报文的rta减1后的数值与第五报文的rta的最小值。

采用上述报文处理方法,第一节点接收第四报文,并确定与第四报文的最终目的地址和业务类型的组合相对应的第四缓存的剩余容量,以及第四缓存中存储有第五报文。当第四报文的数据长度不大于剩余容量时,将第四报文与第五报文聚合成第六报文。通过控制报文的聚合次数和聚合数据长度,从而有效地将报文的传输延迟限制在合理范围内,缓解节点之间传输路径的带宽压力,以保证业务的正常运行。

在一种可能的实施方式中,该方法还包括:当网络目的地址不是第一节点的地址时,在预定时间内,第一节点将第四报文发送至与网络目的地址对应的节点。采用这种方式,当第一节点在网络层判断出第四报文的网络目的地址不是第一节点的地址时,不将第四报文提取至应用层,而是直接对第四报文进行转发,以将该报文的聚合时延控制在合理范围内。

在一种可能的实施方式中,该方法还包括:当第六报文的rta为0时,在超出预设聚合时间后,第一节点将第六报文发送至与最终目的地址对应的节点;当第六报文的rta不为0时,在超出预设聚合时间后,第一节点将第六报文发送至第一节点的父节点。采用这种方式,当第六报文的rta为0时,已无法对第六报文进行进一步聚合处理,通过及时将第六报文发送至与最终目的地址对应的节点,以将该报文的聚合时延控制在合理范围内。当第六报文的rta不为0时,通过将第六报文发送至第一节点的父节点,以向第六报文提供进一步聚合的可能性。

在一种可能的实施方式中,该方法还包括:当第四报文的数据长度大于剩余容量时,在预定时间内,第一节点将第四报文发送至第一节点的父节点。采用这种方式,在第四报文的数据长度大于第一节点中第一缓存的剩余容量时,及时将第四报文转发至第一节点的父节点,以使第一报文可以及时与其他节点中的报文进行聚合。

第三方面,提供了的一种报文处理装置,应用于第一节点。该装置用于实现上述第一方面中任一种实施方式提供的方法。该装置包括:生成单元,用于根据第一节点的数据生成第一报文,第一报文包括报文头部,报文头部包括业务类型、最终目的地址和剩余聚合次数rta。确定单元,用于当第一报文的rta不为0时,确定与业务类型和最终目的地址对应的第一缓存中的剩余容量,第一缓存中存储有第二报文,第二报文具有与第一报文相同的业务类型和最终目的地址。处理单元,用于当第一报文的数据长度不大于剩余容量时,将第一报文与第二报文聚合成第三报文,第三报文的报文头部包括业务类型、最终目的地址和第三报文的rta,第三报文的rta为第一报文的rta减1后的数值与第二报文的rta中的最小值。

在一种可能的实施方式中,该装置还包括:发送单元,用于:当第三报文的rta为0时,在超出预设聚合时间后,将第三报文发送至与最终目的地址对应的节点;当第三报文的rta不为0时,在超出预设聚合时间后,将第三报文发送至第一节点的父节点。

在一种可能的实施方式中,该装置还包括:还包括:发送单元,用于当第一报文的rta为0时,在预定时间内,该将第一报文发送至与最终目的地址对应的节点。

在一种可能的实施方式中,该装置还包括:还包括:发送单元,用于当第一报文的数据长度大于剩余容量时,在预定时间内,将第一报文发送至第一节点的父节点。

第四方面,提供了的一种报文处理装置,应用于第一节点。该装置用于实现上述第二方面中任一种实施方式提供的方法。该装置包括:接收单元,用于接收第一节点的子节点发送的第四报文,第四报文包括报文头部和网络层封装头部,报文头部包括业务类型、最终目的地址和剩余聚合次数rta,网络层封装头部包括网络目的地址。确定单元,用于当网络目的地址为第一节点的地址时,确定与业务类型和最终目的地址对应的第四缓存的剩余容量,第四缓存中存储有第五报文,第五报文具有与第四报文相同的业务类型和最终目的地址。处理单元,用于当第四报文的数据长度不大于剩余容量时,将第四报文与第五报文聚合成第六报文,第六报文的报文头部包括业务类型、最终目的地址和第六报文的rta,第六报文的rta为第四报文的rta减1后的数值与第五报文的rta的最小值。

在一种可能的实施方式中,该装置还包括:发送单元,用于当网络目的地址不是第一节点的地址时,在预定时间内,将第四报文发送至与网络目的地址对应的节点。

在一种可能的实施方式中,该装置还包括:发送单元,用于:当第六报文的rta为0时,在超出预设聚合时间后,将第六报文发送至与最终目的地址对应的节点;当第六报文的rta不为0时,在超出预设聚合时间后,将第六报文发送至第一节点的父节点。

在一种可能的实施方式中,该装置还包括:还包括:发送单元,用于当第四报文的数据长度大于剩余容量时,在预定时间内,将第四报文发送至第一节点的父节点。

第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序。当所述计算机程序在计算机中执行时,令计算机执行上述第一方面中任一种实施方式提供的方法;或者当所述计算机程序在计算机中执行时,令计算机执行上述第二方面中任一种实施方式提供的方法。

第六方面,提供了一种计算设备,所述存储器中存储有可执行代码。所述处理器执行所述可执行代码时,实现上述第一方面中任一种实施方式提供的方法;或者所述处理器执行所述可执行代码时,实现上述第二方面中任一种实施方式提供的方法。

附图说明

图1为现有技术中树形网络拓扑结构图;

图2为本发明实施例提供的一种报文处理方法的应用场景示意图;

图3为本发明实施例提供的一种报文结构的示意图;

图4为本发明实施例提供的一种报文处理方法的流程图;

图5为本发明实施例提供的一种报文的聚合状态示意图;

图6为本发明实施例提供的另一种报文的聚合状态示意图;

图7为本发明实施例提供的另一种报文处理方法的流程图;

图8为本发明实施例提供的一种报文发送装置的结构示意图;

图9为本发明实施例提供的另一种报文发送装置的结构示意图;

图10为本发明实施例提供的还一种报文发送装置的结构示意图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

需要说明的是,本发明实施例中涉及的节点可以为任何具有计算和存储能力的设备,如手机、平板电脑、个人电脑(personalcomputer,pc)、笔记本、服务器、工作站、打印机、网关、路由器等设备,多个节点之间可以通过网络实现相互访问,且每个节点都具有唯一的网络地址。此外,本发明实施例中提及的节点的各项功能还可以由运行在至少一个设备上的逻辑节点来实现。

本发明实施例中涉及的网络可以为任何具有树形结构的网络,包括无线网络和有线网络。其中,无线网络可以为无线网状网络或移动自组织网络。有线网络可以为由多个路由器和多个交换机组成的具有树形结构的网络。

本发明实施例中涉及的报文,可以为多种类型的报文,如心跳报文、传感器实时报文或传感器历史报文等。

图2为本发明实施例提供的一种报文处理方法的应用场景示意图。图2中,节点a是节点b至节点k的根节点,节点b是节点e的父节点(也可称为上一级节点),节点d和e是节点b的子节点(也可以称为下一级节点)。在通常情况下,每个节点都有一个定时器,在设定的定时器周期内,某个节点可以从其子节点接收报文,也可以根据自身数据构建报文。在定时器超时后,再将其接收的报文和/或构建的报文发送给父节点(或称为上一级节点)。例如,图2中,在设定的单个周期内,节点e从节点g和节点h接收报文,并根据自身数据构建报文。在定时器超时后,再将其从节点g和节点h接收的报文以及根据自身数据构建的报文发送给其父节点,即节点b或节点c。其中,节点e和节点b之间的虚线表示此条路径为实际路径,而节点e和节点c之间的虚线表示此条路径为备选路径。

在上述上行通信过程中,可以采用本发明实施例提供的报文处理方法,第一节点根据第一节点的数据构建第一报文,为其设置业务类型、最终目的地址和剩余聚合次数rta,并确定与业务类型和最终目的地址的组合相对应的第一缓存的剩余容量,第一缓存中存储有第二报文。当第一报文的数据长度不大于剩余容量时,第一节点将第一报文与第二报文聚合成第三报文。通过控制报文的聚合次数和聚合数据长度,从而有效地将报文的传输延迟限制在合理范围内,缓解节点之间传输路径的带宽压力,以保证业务的正常运行。

下面,首先对本发明实施例提供的报文结构进行介绍。图3所示为可以采用本发明实施例提供的报文处理方法进行聚合的报文结构,该报文可以包括聚合报文头部(aggregationheader)和聚合数据段(datasegment)。

聚合报文头部可以包括聚合控制部(aggregationcontrol)、最终目的地址(finaldestinationaddress)、剩余聚合次数(residualtimestoaggregation,rta)、聚合数据的长度(datalength)和聚合节点数(aggregationcounts),它们占用的字节数(bytes)可以分别为1、2/6/8、1、2和1。其中报文最终的目的地址可以为分别需要占用2字节、6字节和8字节的电气和电子工程师协会(instituteofelectricalandelectronicsengineers,ieee)802.15.4中定义的16位地址(shortaddress),48位扩展唯一标识符(48-bitextendeduniqueidentifier,eui-48)和64位扩展唯一标识符(64-bitextendeduniqueidentifier,eui-64)中的一种。聚合数据的长度用于描述聚合数据段的长度,可以从数据段1的“属性映射表”之前的任何字段开始算起。

聚合报文头部的聚合控制部中可以包括保留字段(reserved)、为兼容性预留的报文格式版本号(version)、最终目的地址模式(finaldestinationaddressmode)和业务类型(servicetype),它们占用的位数(bits)可以分别为1、2、2和3。其中最终目的地址模式用于描述报文头部的最终目的地址的地址长度,业务类型可以作为设置rta的依据。

报文中聚合数据段可以包括至少一个数据段。例如,聚合的数据段可以包括n个数据段,即数据段1(dataofnode1),…,数据段n(dataofnoden),其中n≥1。各个数据段中可以包括属性映射表(attributemap),节点标识(nodeidentity),属性1和属性2,且它们占用的字节数可以分别1、2/6/8、1和1。属性1和属性2可以为表示某种属性参数,例如,如当该报文的业务类型为心跳报文时,属性1和属性2可以分别表示接受信号强度(receivedsignalstrengthindication,rssi)和发射功率。

各个数据段中的属性映射表可以包括多个字段,如保留字段、是否存在第2个属性(attribute2existing)、是否存在第1个属性(attribute1existing)和节点标识模式(nodeidentitymode),相应的,占用的位数可以分别为4、1、1和2。其中,是否存在第2个属性和是否存在第1个属性分别用于表示该数据段中是否存在第2个属性和是否存在第1个属性。节点标识模式用于描述前述节点标识的地址长度。

需要说明的是,对节点标识和节点标识模式的描述,可以分别参见上述对报文的最终目的地址和最终目的地址模式的描述。除了上述描述的各个数据段中包括两个属性参数,即属性1和属性2的情况外,各个数据段中可以不包括属性参数,或者只包括1个属性参数,或者包括3个以上的属性参数,在此不作限定。相应的,属性映射表中的字段“是否存在第n个属性”的个数也随之发生改变,相关字段占用的位数或字节数也随之发生改变。

接下来,对本发明实施例提供的报文处理方法进行介绍。该方法涉及到构建具有如图3所示的结构的报文和/或对具有如图3所示的结构的报文进行处理。

图4为本发明实施例提供的一种报文处理方法的流程图。如图4所示,该实施例可以包括:

步骤s410,第一节点根据第一节点的第一数据生成第一报文,所述第一报文包括报文头部和报文载荷,所述报文头部包括业务类型、最终目的地址和rta。

示例性的,第一节点的第一数据可以包括由该节点作为起始发送方的数据。例如,第一数据可以包括该节点产生的心跳信号。又例如,当该节点为传感器设备时,第一数据可以包括实时检测到的传感器实时数据,或者在之前的一段时间内检测到的传感器历史数据。再例如,当该节点为一台电脑时,第一数据可以包括用户输入的语音数据或文本数据。

示例性的,第一节点根据第一数据构建第一报文,可以包括:第一节点根据第一数据确定第一报文的业务类型、最终目的地址和rta。其中,rta可以根据业务类型和/或第一节点的设备运行状态等参数确定。通过设置第一报文的rta,从而控制该报文的聚合次数,以将各个报文的聚合时延控制在合理范围内,并保证业务的正常运行。

在一个例子中,第一节点根据第一报文的业务类型确定第一报文的rta。

例如,第一节点为传感器设备,第一节点的根节点为一台电脑。该传感器设备可以根据设备中产生的实时数据生成第一报文,其中第一报文的业务类型为传感器实时报文,最终目的地址可以为该电脑的媒体访问控制(mediaaccesscontrol,mac)地址。相应的,可以根据业务类型(传感器实时报文)将第一报文的rta值设置为1。

或者,该传感器设备可以根据设备中产生的传感器历史数据,生成业务类型为传感器历史报文的第一报文。相应的,可以根据业务类型(传感器历史报文)将第一报文的rta值设置为5。

又例如,第一节点产生一个心跳信号,该心跳信号需要发送至第一节点的根节点,如边缘路由器(borderrouter,br)。根据该心跳信号,可以确定第一报文的业务类型为心跳报文,最终目的地址为br地址。相应的,可以根据业务类型(心跳报文)将第一报文的rta值设置为3。

在另一例子中,第一节点根据该节点的设备运行状态确定第一报文的rta。例如,当设备运行状态为启动状态、运行状态和断电状态时,相应的可以将第一报文的rta设置为1、3、0。

接着,步骤s420,第一节点判断第一报文的rta是否为0。

示例性的,当第一报文的rta不为0时,执行步骤s430,当第一报文的rta为0时,执行步骤s421。

步骤s430,第一节点确定与第一报文的业务类型和最终目的地址对应的第一缓存中的剩余容量,并判断第一报文的数据长度是否大于所述剩余容量。其中,第一报文缓存中存储有第二报文,第二报文具有与第一报文相同的业务类型和最终目的地址。

示例性的,第一节点可以预留一些缓存,并将这些缓存划分为多个缓存区域。不同的缓存区域分别与不同的目的地址和业务类型的组合相对应,一个缓存区域存储具有相同的最终目的地址和业务类型的报文。任意两个缓存区域的缓存容量可以相同,也可以不同。

例如,最终目的地址和业务类型的组合可以包括如下任一种:

网关地址和心跳报文;

br地址和心跳报文;

网关地址和传感器实时报文。

相应地,第一节点可以预留出缓存容量均为1kb的3个缓存区域,分别用于存储这3种组合对应的报文。

示例性的,第一节点根据第一报文的最终目的地址和业务类型,获取与该最终目的地址和业务类型的组合相对应的第一缓存的剩余容量。所述剩余容量可以由第一节点根据第一缓存的总容量和第一缓存中存储的第二报文的数据长度计算得出。

在一个例子中,当第二报文中字段“聚合数据的长度”是指图3中字段“聚合节点数”之后的字段的数据长度时,第一节点可以先将第二报文中的“聚合数据的长度”和整个报文头部占用的数据长度的和值作为第二报文的数据长度,然后将第一缓存的总容量和第二报文的数据长度的差值作为第一缓存的剩余容量。

例如,第二报文中字段“聚合数据的长度”为0.5kb,第二报文的报文头部占用的数据长度为0.1kb,那么第二报文的数据长度为0.6kb。第一缓存的总容量为2kb,则第一缓存的剩余容量为1.4kb。

示例性的,第二报文可以为第一节点从其子节点接收的一个报文,且该报文可以为未进行过聚合处理的报文,也可以为已进行聚合处理的报文。或者,第二报文可以为来自所述第一节点的多个子节点的多个具有相同的目的地址和业务类型的报文,进行聚合处理后产生的报文。又或者,第二报文可以为,在生成第一报文之前,第一节点根据第一节点的第二数据生成的报文。

需要说明的是,当第一节点判断出第一报文的数据长度不大于第一缓存中的剩余容量,且第一缓存中没有存储报文时,第一节点可以将第一报文存储在第一缓存中,等待可能的进一步聚合。在一个例子中,第一节点在存储该第一报文时,将第一报文的rta更新为初始的rta减1后的数值。

示例性的,当第一节点判断出第一报文的数据长度不大于第一缓存中的剩余容量时,执行步骤s440和步骤s450。当第一节点判断出第一报文的数据长度大于第一缓存中的剩余容量时,执行步骤s431。

步骤s440,第一节点将第一报文与第二报文聚合成第三报文。

在一个例子中,第一报文的数据长度为0.3kb,第一缓存中的剩余容量为0.8kb,第一节点可以据此将第一报文与第一缓存中的第二报文聚合成第三报文。

在另一个例子中,第一报文的数据长度为0.5kb,第一缓存中的剩余缓存容量为0.5kb,第一节点可以据此将第一报文与第一缓存中的第二报文聚合成第三报文。

示例性的,第一节点将第一报文与第二报文聚合成第三报文,可以包括:第一节点将第一报文的数据段拼接在第二报文的数据段之后,以及第一节点将第三报文的rta设置为第一报文的rta减1后的数值与第二报文的rta中的最小值。

在一个例子中,如图5所示,第一报文的数据段包括第一节点的1个数据段,第二报文的数据段包括聚合后的来自2个节点的2个数据段,第一报文和第二报文的rta分别为3和2。第一节点将第一报文的1个数据段拼接在第二报文的2个数据段之后,并将第三报文的rta设置为2(第一报文的rta减1)和2(第二报文的rta)中的最小值2。

在另一个例子中,如图6所示,第一报文的数据段包括第一节点的1个数据段,第二报文的数据段包括1个节点的2个数据段,第一报文和第二报文的rta分别为1和1。第一节点将第一报文的1个数据段拼接在第二报文的2个数据段之后,并将第三报文的rta设置为0(第一报文的rta减1)和1(第二报文的rta)中的最小值0。

示例性的,第一节点将第一报文与第二报文聚合成第三报文,还可以包括:根据第一报文中和第二报文中的“聚合数据的长度”,确定第三报文中“聚合数据的长度”。以及根据第一报文中和第二报文中的“节点标识”,确定第三报文中“聚合数据的节点数量”。

在一个例子中,如图6所示,第一报文和第二报文的“聚合数据的长度”分别为5字节和10字节,由此可以确定第三报文中“聚合数据的长度”为15字节。第一报文中和第二报文中总共包括2个不同的“节点标识”,由此可以确定第三报文中“聚合数据的节点数量”为2。

通过前述步骤,第一节点根据第一节点的第一数据构建第一报文,并将第一报文和第二报文聚合成第三报文。

在一个例子中,第一节点在将第一报文和第二报文聚合为第三报文后,继续等待可能的进一步聚合,直到超出预设聚合时间。

步骤s450,第一节点判断第三报文的rta是否为0。

示例性的,当第三报文的rta不为0时,执行步骤s451,当第三报文的rta为0时,执行步骤s452。

步骤s451,在超出预设聚合时间后,第一节点将第三报文发送至该节点的父节点。

示例性的,预设聚合时间为第一节点设置的聚合等待周期,如10ms、5ms等。通过设置预设聚合时间,以及报文的rta,从而将报文的聚合时延控制在合理的范围内。

示例性的,第一节点所在的网络模型包括网络层和应用层,步骤s410至步骤s440是在应用层实现的,而多个节点之间报文的传输(如,步骤s451)则是在网络层实现的。

示例性的,第一节点在应用层将第一报文和第二报文聚合成第三报文后,在网络层将第一节点的父节点的地址作为第三报文的网络目的地址、封装在第三报文的网络层封装头部中。采用此种方式,当第三报文的rta不为0时,也就是第三报文可以继续聚合时,通过将第三报文的网络目的地址设置为第一节点的父节点的地址,可以使父节点在接收到第三报文后,根据该报文的网络目的地址(父节点的地址),将第三报文提取到应用层中,进一步判断是否可以对第三报文进行进一步聚合。

步骤s452,在超出预设聚合时间后,第一节点将第三报文发送至与第三报文中的最终目的地址对应的节点。

当步骤s450中第一节点判断出第三报文的rta为0时,执行本s452,在超出预设聚合时间后,将第三报文发送至与第三报文中的最终目的地址对应的节点。

示例性的,第一节点在应用层将第一报文和第二报文聚合成第三报文后,在网络层将第三报文的报文头部包括的最终目的地址作为第三报文的网络目的地址、封装在第三报文的网络层封装头部中。采用此种方式,当第三报文的rta为0时,也就是第三报文不能继续聚合时,通过将第三报文的网络目的地址设置为最终目的地址,可以使第一节点的父节点在接收到第三报文后,不将第三报文提取至应用层,而是根据第三报文的网络目的地址(最终目的地址)直接对第三报文进行转发。

步骤s431,在预定时间内,第一节点将第一报文发送至第一节点的父节点。

当步骤s430中节点判断出第一报文的数据长度大于剩余缓存容量时,执行本s431,在预定时间内,将第一报文发送至所述第一节点的父节点。

示例性的,如果第一报文的数据长度大于剩余容量,此时,第一节点无需对第一报文和第一报文缓存中的第二报文进行聚合,而是在预定时间内,将第一报文发送至所述第一节点的父节点。

示例性的,预定时间可以为节点或节点所在的网络系统设置的较小的时间间隔,如0.1ms或0.5ms,本s430中的预定时间小于步骤s451和步骤s452中提及的预设聚合时间。

在一个例子中,第一报文的数据长度0.6kb大于第一报文缓存的剩余缓存容量0.5kb。此时,在预定时间0.5ms内,第一节点将第一报文发送至所述第一节点的父节点。

示例性的,第一节点在网络层将第一节点的父节点的地址作为第一报文的网络目的地址、封装在第一报文的网络层封装头部中。以使第一节点的父节点在接收到第一报文后可以将第一报文提取至应用层,进一步判断是否可以对第一报文进行聚合。

步骤s421,在预定时间内,第一节点将第一报文发送至第一节点的父节点。

当步骤s420中第一节点判断出第一报文的rta为0时,执行本s421,在预定时间内,将第一报文发送至所述第一节点的父节点。

示例性的,对本s421中预定时间的描述可以参见步骤s431中对预定时间的描述。

示例性的,第一节点在网络层将第一报文的最终目的地址作为第一报文的网络目的地址、封装在第一报文的网络层封装头部中。以使第一节点的父节点在接收到第一报文后,可以不将第一报文提取至应用层,而是根据第一报文的网络目的地址(最终目的地址)直接对第一报文进行转发。

由此可知,采用上述实施例提供的报文处理方法,第一节点根据第一节点的数据构建第一报文,为其设置最终目的地址、业务类型和剩余聚合次数rta,并确定与最终目的地址和业务类型的组合相对应的第一缓存中的剩余容量,以及第一缓存中存储的第二报文。当第一报文的数据长度不大于剩余容量时,将第一报文与第一缓存中的第二报文聚合成第三报文。通过控制报文的聚合次数和聚合数据长度,从而有效地将报文的传输延迟限制在合理范围内,缓解节点之间传输路径的带宽压力,以保证业务的正常运行。

图7为本发明实施例提供的另一种报文处理方法的流程图。如图7所示,该实施例可以包括:

步骤s710,第一节点接收第一节点的第一子节点发送的第四报文。所述第四报文包括报文头部和网络层封装头部,所述报文头部包括业务类型、最终目的地址和剩余聚合次数rta,所述网络层封装头部包括网络目的地址。对步骤s710中第四报文的报文头部的描述,可以参考对图3中的报文结构和图4中步骤s410中对报文头部的描述。

步骤s720,第一节点判断第四报文的网络目的地址是否为第一节点的地址。

当第一节点判断出第四报文的网络目的地址不是第一节点的目的地址时,执行步骤s721。当第一节点判断出第四报文的网络目的地址是第一节点的目的地址时,执行步骤s730。

步骤s721,在预定时间内,第一节点将第四报文发送至于网络目的地址对应的节点。

对步骤s721的描述,还可以参见上述对步骤s421的描述。

步骤s730,第一节点确定与第四报文的业务类型和最终目的地址的组合相对应的第四缓存中的剩余容量,并判断第四报文的数据长度是否大于剩余容量。

当步骤s720中第一节点判断出第四报文的网络目的地址是第一节点的目的地址时,执行本s730,确定与第四报文的业务类型和最终目的地址的组合相对应的第四缓存中的剩余容量,并判断第四报文的数据长度是否大于剩余容量。

其中,第四缓存中存储有第五报文,第五报文包括与第四报文相同的业务类型和最终目的地址。第五报文可以为第一节点根据第一节点的数据生成的第五报文,或者,可以为第一节点从第一节点的第二子节点接收的第五报文。第一节点的第一子节点和第二子节点可以为同一节点也可以为不同节点。

对步骤s730的描述,还可以参见上述对步骤s430的描述。

当第一节点判断出第四报文的数据长度不大于该剩余容量时,执行步骤s740。当第一节点判断出第四报文的数据长度大于该剩余容量时,执行步骤s731。

步骤s731,在预定的时间内,第一节点将第四报文发送至第一节点的父节点。

对步骤s731的描述可以参见上述对步骤s431的描述。

步骤s740,第一节点将第四报文与第五报文聚合成第六报文。

当步骤s730中第一节点判断出第四报文的数据长度不大于该剩余容量时,执行本步骤s740,将第四报文与第五报文聚合成第六报文。对步骤s740的描述,可以参见上述对步骤s440的描述。

步骤s750,第一节点判断第六报文的rta是否为0。。

示例性的,当第六报文的rta不为0时,执行步骤s751,当第六报文的rta为0时,执行步骤s752。

对步骤s750的描述,可以参见上述对步骤s450的描述。

步骤s751,在超出预设聚合时间后,第一节点将第六报文发送至该节点的父节点。

对步骤s751的描述,可以参见上述对步骤s451的描述。

步骤s752,在超出预设聚合时间后,第一节点将第六报文发送至与第六报文中的最终目的地址对应的节点。

当步骤s750中第一节点判断出第六报文的rta为0时,执行本s752,在超出预设聚合时间后,将第六报文发送至与第六报文中的最终目的地址对应的节点。

对步骤s752的描述,可以参见上述对步骤s452的描述。

需要说明的是,当步骤s720中第一节点判断出第四报文的数据长度不大于第四缓存中的剩余容量,且第四缓存中没有存储报文时,第一节点可以将第四报文存储在第四缓存中,等待可能的进一步聚合,直到超出预设聚合时间。在一个例子中,第一节点在存储所述第四节点时,将第四报文的rta更新为原有的rta减1后的数值。

由此可知,采用上述实施例提供的报文处理方法,第一节点接收第四报文,并确定与第四报文的目的地址和业务类型的组合相对应的第四缓存的剩余容量,以及第四缓存中存储有第五报文。当第四报文的数据长度不大于剩余容量时,将第四报文与第五报文聚合成第六报文。通过控制报文的聚合次数和聚合数据长度,从而有效地将报文的传输延迟限制在合理范围内,缓解节点之间传输路径的带宽压力,以保证业务的正常运行。

与上述报文处理方法对应地,本发明的多个实施例还提供一种报文处理装置,该装置可以应用于第一节点。图8为本发明实施例提供的一种报文发送装置的结构示意图。如图8所示,该装置800包括:

生成单元810,用于根据第一节点的数据生成第一报文,第一报文包括报文头部,报文头部包括业务类型、最终目的地址和剩余聚合次数rta;

确定单元820,用于当第一报文的rta不为0时,确定与业务类型和最终目的地址对应的第一缓存中的剩余容量,第一缓存中存储有第二报文,第二报文具有与第一报文相同的业务类型和最终目的地址;

处理单元830,用于当第一报文的数据长度不大于剩余容量时,将第一报文与第二报文聚合成第三报文,第三报文的报文头部包括业务类型、最终目的地址和第三报文的rta,第三报文的rta为第一报文的rta减1后的数值与第二报文的rta中的最小值。

在一种可能的实施方式中,该装置还包括:发送单元840,用于:当第三报文的rta为0时,在超出预设聚合时间后,将第三报文发送至与最终目的地址对应的节点;当第三报文的rta不为0时,在超出预设聚合时间后,将第三报文发送至第一节点的父节点。

在一种可能的实施方式中,该装置还包括:发送单元840,用于当第一报文的rta为0时,在预定时间内,将第一报文发送至与最终目的地址对应的节点。

在一种可能的实施方式中,该装置还包括:发送单元840,用于当第一报文的数据长度大于剩余容量时,在预定时间内,将第一报文发送至第一节点的父节点。

本发明实施例提供的一种报文处理装置,生成单元810根据第一节点的数据构建第一报文,为其设置最终目的地址、业务类型和剩余聚合次数rta,确定单元820确定与最终目的地址和业务类型的组合相对应的第一缓存中的剩余容量,以及第一缓存中存储的第二报文。当第一报文的数据长度不大于剩余容量时,处理单元830将第一报文与第一缓存中的第二报文聚合成第三报文。通过控制报文的聚合次数和聚合数据长度,从而有效地将报文的传输延迟限制在合理范围内,缓解节点之间传输路径的带宽压力,以保证业务的正常运行。

图9为本发明实施例提供的另一种报文发送装置的结构示意图。如图9所示,该装置900可以包括:

接收单元910,用于接收第一节点的子节点发送的第四报文,第四报文包括报文头部和网络层封装头部,报文头部包括业务类型、最终目的地址和剩余聚合次数rta,网络层封装头部包括网络目的地址;

确定单元920,用于当网络目的地址为第一节点的地址时,确定与业务类型和最终目的地址对应的第四缓存的剩余容量,第四缓存中存储有第五报文,第五报文具有与第四报文相同的业务类型和最终目的地址;

处理单元930,用于当第四报文的数据长度不大于剩余容量时,将第四报文与第五报文聚合成第六报文,第六报文的报文头部包括业务类型、最终目的地址和第六报文的rta,第六报文的rta为第四报文的rta减1后的数值与第五报文的rta的最小值。

在一种可能的实施方式中,该装置还包括:发送单元940,用于当网络目的地址不是第一节点的地址时,在预定时间内,将第四报文发送至与网络目的地址对应的节点。

本发明实施例提供的一种报文处理装置,接收单元910接收第四报文,确定单元920确定与第四报文的目的地址和业务类型的组合相对应的第四缓存的剩余容量,以及第四缓存中存储有第五报文。当第四报文的数据长度不大于剩余容量时,处理单元930将第四报文与第五报文聚合成第六报文。通过控制报文的聚合次数和聚合数据长度,从而有效地将报文的传输延迟限制在合理范围内,缓解节点之间传输路径的带宽压力,以保证业务的正常运行。

图10为本发明实施例提供的还一种报文发送装置的结构示意图。如图10所示,该装置1000包括:处理器1010、存储器1020和通信接口1030。处理器1010、存储器1020和通信接口1030之间可以通过总线1040相互连接;总线1040可以分为地址总线1040、数据总线1040、控制总线1040等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线1040或一种类型的总线1040。所述存储器1020,用于存储报文和邻居信息,可以包括易失性存储器(volatilememory)1020,例如随机存取存储器1020(randomaccessmemory,ram)。所述通信接口1030用于所述节点设备与其他节点通信,可以是一个或多个。通信接口1030包含有线或无线接口,典型的无线接口为射频(radiofrequency,rf)收发器,可以为802.11接口,802.15.4接口,蜂窝网络通信接口,zigbee接口或其组合等。处理器1010可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np),微控制器(microcontrollerunit,mcu)或其组合。处理器1010还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(applicationspecificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。

处理器1010执行存储器1020中存储的可执行代码时,可以用于实现图4或图7中任一实施例中的报文处理方法。

以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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