一种数据处理方法及相关设备与流程

文档序号:17861478发布日期:2019-06-11 22:53阅读:134来源:国知局
一种数据处理方法及相关设备与流程

本发明涉及物联网领域,尤其涉及一种数据处理方法及相关设备。



背景技术:

物联网就是物物相连的互联网。这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。

目前物联网中用到的通信方式,无论是载波通信,还是微功率无线通信,通信的距离都有限,为了能够将数据包发送到较远的节点,就涉及到中间节点的路由转发。

如何更好实现电力线载波或微功率无线通信局域网中数据包的存储转发是一个比较有前景的课题。



技术实现要素:

针对上述技术问题,本发明实施例提供了一种数据处理方法相关设备,可以实现数据包的路由转发。

本发明实施例第一方面提供了一种数据处理方法,包括:

第一节点判断接收到的目标数据包是否为静默数据包;

若否,则所述第一节点判断重复包检查队列中是否存在有与所述目标数据包相同的数据包;

当所述重复包检查队列中不存在与所述目标数据包相同的数据包时,所述第一节点判断所述目标数据包的目的地址与所述第一节点的节点地址是否相匹配;

当所述目标数据包的目的地址与所述第一节点的节点地址不匹配时,所述第一节点判断所述目标数据包的路由级数是否达到预置数值;

当所述目标数据包的路由级数未达到所述预置数值时,所述第一节点设置所述目标数据包的转发时刻;

若所述当前时刻为所述转发时刻,则判断所述目标数据包的寿命周期是否耗尽;

当所述目标数据包的寿命周期未耗尽时,则所述第一节点判断所述第一节点的物理链路是否空闲;

当所述第一节点的物理链路空闲时,所述第一节点将设置路由级数后的所述目标数据包向所述第一节点的周围节点发送。

可选地,当所述目标数据包为静默数据包时,所述方法还包括:

所述第一节点判断待转发数据包队列中是否存在有与所述目标数据包相同的数据包;

若是,则将所述待转发数据包队列中与所述目标数据包相同的数据包删除;

若否,则所述第一节点丢弃所述目标数据包。

可选地,当所述目标数据包的目的地址与所述第一节点的节点地址匹配时,所述方法还包括:

所述第一节点将所述目标数据包对应的目标静默包向所述第一节点的周围节点发送预设次数。

可选地,当所述目标数据包的目的地址与所述第一节点的节点地址匹配时,所述方法还包括:

所述第一节点对所述目标数据包进行处理;

所述第一节点将所述目标数据包对应的响应数据发送至第二节点,所述第二节点为发送所述目标数据包的源节点。

可选地,当所述目标数据包的路由级数达到所述预置数值时,所述方法还包括:

所述第一节点丢弃所述目标数据包。

本发明实施例第二方面提供了一种终端节点,所述终端节点为第一节点,包括:

判断单元,用于判断接收到的目标数据包是否为静默数据包;

所述判断单元,还用于当所述目标数据包不为静默数据包时,判断重复包检查队列中是否存在有与所述目标数据包相同的数据包;

所述判断单元,还用于当所述重复包检查队列中不存在与所述目标数据包相同的数据包时,判断所述目标数据包的目的地址与所述第一节点的节点地址是否相匹配;

所述判断单元,还用于当所述目标数据包的目的地址与所述第一节点的节点地址不匹配时,判断所述目标数据包的路由级数是否达到预置数值;

设置单元,用于当所述目标数据包的路由级数未达到所述预置数值时,设置所述目标数据包的转发时刻;

所述判断单元,还用于若所述当前时刻为所述转发时刻,则判断所述目标数据包的寿命周期是否耗尽;

所述判断单元,还用于当所述目标数据包的寿命周期未耗尽时,判断所述第一节点的物理链路是否空闲;

发送单元,用于当所述第一节点的物理链路空闲时,将设置路由级数后的所述目标数据包向所述第一节点的周围节点发送。

可选地,所述判断单元:还用于当所述目标数据包为静默数据包时,判断待转发数据包队列中是否存在有与所述目标数据包相同的数据包;

所述终端节点还包括:处理单元,所述处理单元用于:

当所述待转发数据包队列中存在有与所述目标数据包相同的数据包时,将所述待转发数据包队列中与所述目标数据包相同的数据包删除;

或,

当所述待转发数据包队列中不存在有与所述目标数据包相同的数据包时,则丢弃所述目标数据包。

可选地,所述发送单元,还用于当所述目标数据包的目的地址与所述第一节点的节点地址匹配时,将所述目标数据包对应的目标静默包向所述第一节点的周围节点发送预设次数。

可选地,所述处理单元,还用于当所述目标数据包的目的地址与所述第一节点的节点地址匹配时,对所述目标数据包进行处理;

和,

将所述目标数据包对应的响应数据发送至第二节点,所述第二节点为发送所述目标数据包的源节点。

可选地,所述处理单元,还用于当所述目标数据包的路由级数达到所述预置数值时,所述第一节点丢弃所述目标数据包。

本发明实施例第五方面提供了一种处理器,所述处理器用于运行计算机程序,所述计算机程序运行时执行如上述任意一项所述的数据处理方法以及短信发送方法的步骤。

本发明实施例第六方面提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述任意一项所述的数据处理方法的步骤。

综上所述,本发明提供的实施例中,终端节点在发送数据包的时候,由于每个数据包都有传递次数限制,再加上收到每个数据包后,有寿命限制,所以一个数据包被传递到一定次数之后,会自动消亡,不再被传递,可以避免数据包在网络中不停的传递,造成网络震荡。

附图说明

图1为本发明实施例提供的数据处理方法的实施例示意图;

图2为本发明实施例提供的终端节点的实施例示意图;

图3为本发明实施例提供的终端节点的硬件结构示意图。

具体实施方式

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

在物联网中,存在两种通信节点:一个是被称作集中器或网关的节点,负责与局域网内其它节点的数据通信,另外一种是终端节点,负责终端数据的采集,并送到集中器。集中器到终端节点的通信为下行通信,终端节点到集中器的通信为上行通信。两种节点之间是主从关系,集中器是主节点,终端节点是从节点。

下面对物理层通信的协议进行说明:

版本号:指协议的版本号,便于以后协议的扩展;

优先级:是定义数据包的发送优先顺序;

源地址:数据包的源发节点地址;

目的地址:数据包要送达的节点地址;

域名:domainname,用于标识数据传输时,节点所处的局域网。为了避免不同局域网之间的数据包通信转发,用域名来区分不同局域网的数据包。

事务号:标识从源发节点发送的数据包的顺序号。目的节点在响应源发节点发送来的数据包时,需要与请求数据包保持一致。

命令字:标识数据包的具体操作;

数据单元:承载要传递的数据内容。

终端节点的通信链路在空闲状态时,随机竞争时间窗被分成2部分:优先时隙(priorityslot,ps)和自由竞争时隙(sharedcontentionperiod,scp),其中,优先时隙和自由竞争时隙的长度可以根据实际情况灵活配置。

终端节点在发送数据包时,对于重要性高的数据包,可以使用优先时隙发送,一般数据包,就在自由竞争时隙进行发送,该重要性高的数据包是用户根据具体的应用自己定义的。用户认为哪个数据包很重要,必须被优先发送,可靠送达,那就定义为优先级高的数据包,比如告警数据包。

请参阅图1,图1为本发明实施例提供的数据处理方法的一个实施例示意图,具体包括:

101、第一节点判断接收到的目标数据包是否为静默数据包,若是,则执行步骤109,若否,则执行步骤102。

本实施例中,该第一节点为终端节点,该第一节点在接收到目标数据包之后,可以判断该目标数据包是否为静默数据包,其中,静默数据包是指包含命令字0xff的数据包,当目标数据包为静默数据包时,则执行步骤109,当目标数据包不为静默数据包时,则执行步骤102。

需要说明的是,上述以静默数据包为包含命令字0xff的数据包为例进行说明,当然也可以是包含其他的命令字,具体不做限定,只要能确定为静默数据包即可。

102、当目标数据包不为静默数据包时,第一节点判断重复包检查队列中是否包含有与目标数据包相同的数据包,若是,则执行步骤109,若否,则执行步骤103。

本实施例中,第一节点在确定目标数据包不为静默数据包时,该第一节点可以判断重复包检查队列中是否包含有与目标数据包相同的数据包,若重复包检查队列中包含有与目标数据包相同的数据包时,则执行步骤109,若否,则执行步骤103。

需要说明的是,每个终端节点含有两个队列:

1、重复包检查队列,保存收到的数据包;

2、待转发数据包队列,用于保存所收到的,待转发给其它节点的数据包。

每个终端节点都包含一个重复包检查队列,队列中的每个元素包含如下信息:数据包源地址、数据包目的地址以及数据包事务号。

可以理解的是,步骤102中判断重复包检查队列中是否有与目标数据包相同的数据包,是通过判断重复包检查队列中的各个数据包的数据包源地址、数据包目的地址以及数据包事务号与目标数据包源地址、目的地址以及事务号是否同时相同,若同时相同,则确定在重复包检查队列中有与目标数据包相同的数据包,若不同时相同,则确定重复包检查队列中没有与目标数据包相同的数据包。

103、当重复包检查队列中不存在与目标数据包相同的数据包时,第一节点判断目标数据包的目的地址与第一节点的节点地址是否相匹配,若是,则执行109,若否,则执行步骤104。

本实施例中,第一节点在确定重复包检查队列中不存在于目标数据包相同的数据包时,可以将该目标数据包加入重复包检查队列中以便后续接收到数据包之后重新进行判断,并判断该目标数据包的目的地址与该第一节点的节点地址是否匹配,也就是说判断该目标数据包是否是发送给第一节点的数据包,若是,则执行步骤109,若否,则执行步骤104。

104、当目标数据包的目的地址与第一节点的节点地址不匹配时,第一节点判断目标数据包的路由级数是否达到预置数值,若是,则执行步骤109,若否,则执行步骤105。

本实施例中,第一节点在确定该目标数据包的目的地址与第一节点的节点地址不匹配时,可以判断该目标数据包的路由级数是否达到预置数值(例如,10次,当然也可以是其他数值,具体根据应用场合而定),也就是说,该目标数据包的路由级数指的就是该目标数据包被转发的次数,该预置数值就是该目标数据包被转发次数的最大值,当目标数据包的路由级数达到预置数值时,则执行步骤109,若目标数据包的路由级数未达到预置数值,则执行步骤105。

105、当目标数据包的路由级数未达到预置数值时,第一节点设置目标数据包的转发时刻。

本实施例中,当目标数据包的路由级数未达到预置数值时,该第一节点设置目标数据包的转发时刻,具体的,为了避免重复,可以在接收到目标数据包的一段时间之内(例如1000毫秒内),以自己的uid(uniquenodeid)作为种子,随机生成一个转发时刻,该转发时刻为目标数据包的发送时刻。

106、若当前时刻为转发时刻,则判断目标数据包的寿命周期是否耗尽,若是,则执行步骤109,若否,则执行步骤107。

本实施例中,当第一节点在设置目标数据包的转发时刻之后,可以监测当前时刻,若当前时刻为转发时刻,则判断目标数据包的寿命周期是否耗尽,若目标数据包的寿命周期耗尽,则执行步骤109,若目标数据包的寿命周期未耗尽,则执行步骤107。

可以理解的是,可以为数据包设置一个寿命周期(该数据包的寿命周期是每个终端节点在收到数据包后,赋予的一个固定的时间值,比如2秒,在这段时间内,如果数据包在这个固定的时间内不能被转发出去,就丢弃,说明该终端节点的通信链路环境拥挤,无法转发),也就是说,在数据包的寿命周期内,该数据包是有效的,若超过了数据包的寿命周期,则该数据包就是无效的。

需要说明的是,通过步骤105可以设置目标数据包的转发时刻,通过步骤106可以判断目标数据包的寿命周期是否耗尽,然而这两个步骤之间并没有先后执行顺序的限制,可以先执行步骤105,也可以先执行步骤106,或者同时执行,具体不做限定。

107、当目标数据包的寿命周期未耗尽时,则第一节点判断第一节点的物理链路是否空闲,若是,则执行步骤108,若否,步骤109。

本实施例中,当该目标数据包的寿命周期未耗尽时,可以判断该第一节点的物理链路是否空闲,当第一节点的物理链路空闲时,则执行步骤108,若第一节点的物理链路繁忙时,步骤109。

需要说明的是,第一节点还可以判断该目标数据包的重要度是否达到通过优先时隙发送的程度,若是,则直接通过优先时隙发送该目标数据包,若否,则通过自由竞争时隙发送目标数据包。

108、当第一节点的物理链路空闲时,第一节点将设置路由级数后的目标数据包向第一节点的周围节点发送。

本实施例中,当第一节点的物理链路空闲时,第一节点可以将设置路由级数后的目标数据包向第一节点的周围节点发送,可以理解的是,为了防止在目标数据在局域网中不停的进行转发,造成网络震荡,可以设置目标数据包的路由级数,也即目标数据包每转发一次,即在路由级数上加1,当目标数据包的路由级数达到最大转发次数时,则该目标数据包不再进行转发,直接丢弃。

109、执行其他操作。

本实施例中,当目标数据包为静默数据包时,第一节点判断待转发数据包队列中是否有与目标数据包相同的数据包(可以理解的是,此处的相同指的是数据包源地址、数据包目的地址以及数据包事务号相同),当待转发数据包队列中存在有与目标数据包相同的数据包时,则说明,第一节点已经接收到该目标数据包,则将将该待转发数据包队列中与目标数据包相同的数据包删除,不再进行转发,当待转发数据包队列中不存在有与目标数据包相同的数据包时,则丢弃该目标数据包,不做处理;

当重复包检查队列中存在于目标数据包相同的数据包时,则丢弃该目标数据包;

当目标数据包的目的地址与第一节点的节点地址匹配时,则可以确定该目标数据包时发送至第一节点的数据包,此时,为了防止目标数据包在局域网中不停的转发,第一节点可以将目标数据包对应的目标静默包向第一节点周围的节点发送预设次数,发送预设次数的目的是为了防止周围的节点没有收到该目标静默包,依然在不停的转发该目标数据包,造成链路资源浪费;另外,在第一节点确定该目标数据包的目的地址与第一节点地址匹配时,该第一节点可以对目标数据包进行处理,并获取目标数据包中携带的源地址,并通过源地址将目标数据包的响应数据发送至第二节点,该第二节点为发送目标数据包的源节点;

当目标数据包的路由级数达到预设数值时,则丢弃该目标数据包;

当第一节点的物理链路繁忙时,则等待第一节点的物理链路空闲,在等待的过程中,还需要不停的判断该目标数据包的寿命周期是否耗尽以及该目标数据包的转发时刻是否达到,若是,则丢弃该目标数据包,若否,则等待第一节点的物理链路空闲并向第一节点的周围节点发送该目标数据包。

综上所述,本发明提供的实施例中,终端节点在发送数据包的时候,由于每个数据包都有传递次数限制,再加上收到每个数据包后,有寿命限制,所以一个数据包被传递到一定次数之后,会自动消亡,不再被传递,可以避免数据包在网络中不停的传递,造成网络震荡。

上面对本发明实施例中的数据处理方法进行了描述,下面对本发明实施例中的终端节点进行描述,请参阅图2,图2为本发明实施例中终端节点的一个实施例示意图,该终端节点为第一节点,具体包括:

判断单元201,用于判断接收到的目标数据包是否为静默数据包;

所述判断单元201,还用于当所述目标数据包不为静默数据包时,判断重复包检查队列中是否存在有与所述目标数据包相同的数据包;

所述判断单元201,还用于当所述重复包检查队列中不存在与所述目标数据包相同的数据包时,判断所述目标数据包的目的地址与所述第一节点的节点地址是否相匹配;

所述判断单元201,还用于当所述目标数据包的目的地址与所述第一节点的节点地址不匹配时,判断所述目标数据包的路由级数是否达到预置数值;

设置单元202,用于当所述目标数据包的路由级数未达到所述预置数值时,设置所述目标数据包的转发时刻;

所述判断单元201,还用于若所述当前时刻为所述转发时刻,则判断所述目标数据包的寿命周期是否耗尽;

所述判断单元201,还用于当所述目标数据包的寿命周期未耗尽时,判断所述第一节点的物理链路是否空闲;

发送单元203,用于当所述第一节点的物理链路空闲时,将设置路由级数后的所述目标数据包向所述第一节点的周围节点发送。

可选地,所述判断单元201:还用于当所述目标数据包为静默数据包时,判断待转发数据包队列中是否存在有与所述目标数据包相同的数据包;

所述终端节点还包括:处理单元204,所述处理单元204用于:

当所述待转发数据包队列中存在有与所述目标数据包相同的数据包时,将所述待转发数据包队列中与所述目标数据包相同的数据包删除;

或,

当所述待转发数据包队列中不存在有与所述目标数据包相同的数据包时,则丢弃所述目标数据包。

可选地,所述发送单元203,还用于当所述目标数据包的目的地址与所述第一节点的节点地址匹配时,将所述目标数据包对应的目标静默包向所述第一节点的周围节点发送预设次数。

可选地,所述处理单元204,还用于当所述目标数据包的目的地址与所述第一节点的节点地址匹配时,对所述目标数据包进行处理;

和,

将所述目标数据包对应的响应数据发送至第二节点,所述第二节点为发送所述目标数据包的源节点。

可选地,所述处理单元204,还用于当所述目标数据包的路由级数达到所述预置数值时,所述第一节点丢弃所述目标数据包。

综上所述,本发明提供的实施例中,本发明提供的实施例中,终端节点在发送数据包的时候,由于每个数据包都有传递次数限制,再加上收到每个数据包后,有寿命限制,所以一个数据包被传递到一定次数之后,会自动消亡,不再被传递,可以避免数据包在网络中不停的传递,造成网络震荡。

需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。

请参阅图3,本发明实施例还提供了一种终端节点,所述终端节点包括处理器301和存储器302,上述判断单元、设置单元、发送单元和处理单元等单元均作为程序单元存储在存储器302中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器301中包含内核,由内核去存储器302中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来对用户数据进行更新。

存储器302可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据处理方法的步骤。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据处理方法的步骤。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化执行所述数据处理方法的步骤:

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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