具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种网络拥塞处理方法,如图1所示,包括:
101、求助路由节点在接收到拥塞状态命令后,从拥塞状态命令中解析出拥塞状态类型标识符。拥塞状态类型标识符用来标识路由节点的拥塞情况,具体的,包括路由节点处于拥塞状态和路由节点解除拥塞状态两种情况。
102、求助路由节点判断所述拥塞状态类型标识符代表拥塞状态还是代表拥塞解除状态。当所述拥塞状态类型标识符代表拥塞状态时,执行步骤103。当所述拥塞状态类型标识符代表拥塞解除状态时,执行步骤107。
103、求助路由节点以广播的形式发布求助信息命令。
在网络中的某个路由节点出现拥塞时,则出现拥塞的路由节点会向其所有上一跳的求助路由节点发送拥塞状态命令帧,比如出现拥塞的路由节点以组播的方式发送拥塞状态命令帧,告知所有该路由节点的上一跳的路由节点其拥塞情况,收到拥塞状态命令帧的路由节点便会得知该发生拥塞的路由节点的拥塞情况,启动拥塞处理机制,并以广播的形式向其周围的路由节点发布求助信息命令。
104、求助路由节点在接收到应答消息后,从回复应答消息的应答路由节点中选择并获取目标路由节点。
在求助路由节点周围收到求助信息命令的路由节点,会向发送求助信息命令的路由节点回复应答消息,比如收到求助信息命令的路由节点可以以单播的方式向发送求助信息命令的路由节点回复应答消息。发送求助信息命令的路由节点从回复应答消息的路由节点中根据需要选择并获取目标路由节点。
105、求助路由节点与所述目标路由节点建立辅助链路。
位于发生拥塞的路由节点的上游的路由节点可与目标路由节点建立辅助链路。辅助链路用于分流向发生拥塞的路由节点发送的数据流。
106、求助路由节点将向拥塞路由节点发送的数据流转发给辅助链路。
在位于发生拥塞的路由节点的上游的路由节点与目标路由节点建立辅助链路后,位于发生拥塞的路由节点的上游的路由节点将原本向发生拥塞的路由节点发送的数据流转发给辅助链路对应的目标路由节点。
107、求助路由节点将向辅助链路发送的数据流转发给相应拥塞路由节点。
本实施例提供的网络拥塞处理方法,在网络中的某个路由节点发生拥塞时,接收到拥塞状态命令的路由节点会向其它路由节点发出求助信息命令,并从回复应答消息的路由节点中获取目标路由节点。接收到拥塞状态命令的路由节点会与获取到的目标路由节点建立辅助链路,并将原本向发生拥塞的路由节点发送的数据流转发给辅助链路,使数据流绕开发生拥塞的路由节点,从新建立的没有发生拥塞的辅助链路通过。
由于本实施例的网络拥塞处理方法,是在发生拥塞的路由节点的上游建立辅助连接,绕过发生拥塞的路由节点,因此,既能够解决由下游路由节点吞吐能力有限引起的拥塞,也能解决由于上游路由节点传输的数据流量过大引起的拥塞。下面结合一种WSN网络的特点对本实施例的效果进行简要说明,由于WSN网络存在大量传感器,每个传感器的路由节点都会转发数据,与蜂窝通信的区别在于,WSN的路由节点可能存在很多向其转发数据的上游节点,从而使得当前路由节点存在出现拥塞的可能,且当前节点的下游节点可能更加拥塞,如果采用现有的拥塞处理方法,即每个节点从自身开始解决拥塞问题,由于存在其它的节点向下游节点发送,只能有限度的缓解下游节点的拥塞。如果每个传感器路由节点在下游节点拥塞后从自身开始处理拥塞问题,能更有效的缓解拥塞问题。具体地,节点拥有发送的拥塞状态命令的能力,当出现拥塞后可将拥塞通知周围节点,特别是通知正在向拥塞节点发送数据的上游节点,使得从上游节点开始进行处理,更好的从源头处解决拥塞问题。而且上游节点可以广播的形式发布求助信息命令,使得很多周边传感器均能收到消息,并加入到解决拥塞问题中来,从而在广泛的范围内寻求帮助,有利于问题的解决,考虑到WSN在有些场景下传感器密度较大,出现拥塞可能较大,在此情况下采用本实施例所示方法对缓解拥塞能达到很好效果。
本发明实施例提供了另一种网络拥塞处理方法,如图1所示,包括:
201、当发生拥塞的路由节点发出拥塞状态命令后,求助路由节点接收拥塞状态命令。
在网络中的某个路由节点出现拥塞时,则出现拥塞的路由节点会向其所有上一跳的路由节点发送拥塞状态命令帧,比如出现拥塞的路由节点以组播的方式发送拥塞状态命令帧,告知所有该路由节点的上一跳的路由节点其拥塞情况。
如图3所示,当图中的A路由节点为出现拥塞的路由节点时,则A路由节点便以组播的方式发送拥塞状态命令,告知其上游的B路由节点和C路由节点A路由节点的拥塞情况。
202、求助路由节点在接收到拥塞状态命令后,从拥塞状态命令中解析出拥塞状态类型标识符。拥塞状态类型标识符用来标识路由节点的拥塞情况,具体的,包括路由节点处于拥塞状态和路由节点解除拥塞状态两种情况。
203、求助路由节点判断所述拥塞状态类型标识符代表拥塞状态还是代表拥塞解除状态。当所述拥塞状态类型标识符代表拥塞状态时,执行步骤204。当所述拥塞状态类型标识符代表拥塞解除状态时,执行步骤2011。
204在接收到拥塞状态命令后,接收到拥塞状态命令的路由节点,即求助路由节点,以广播的形式发布求助信息命令。
在接收到拥塞状态命令后,收到拥塞状态命令帧的路由节点便会得知该发生拥塞的路由节点的拥塞情况,于是启动拥塞处理机制,并可以以广播的形式向其周围的路由节点发布求助信息命令。
如图4所示,当图中的A路由节点为出现拥塞的路由节点时,此时B路由节点和C路由节点已经收到了A路由节点发送的拥塞处理启动命,则B路由节点和C路由节点便以广播的形式向周围的D路由节点、E路由节点、F路由节点、G路由节点、H路由节点、I路由节点、J路由节点等周围的路由节点发布求助信息命令。
205、当收到求助信息命令的路由节点回复应答消息后,发送求助信息命令的路由节点,即求助路由节点,接收该应答消息。
收到求助信息命令帧的路由节点,会向发送求助信息命令帧的相应路由节点回复应答消息,比如收到求助信息命令帧的路由节点可以以单播的方式向发送求助信息命令帧的相应路由节点回复应答消息。
发送求助信息命令帧的相应路由节点接收该应答消息。
作为本实施例的一种实施方式,本步骤中收到求助信息命令帧的路由节点向发送求助信息命令帧的相应路由节点回复应答消息,如图5所示,可以包含以下步骤:
501.收到求助信息命令的路由节点判断其自身至汇聚节点的最小跳数是否小于或等于相应求助路由节点至汇聚节点的最小跳数。汇聚节点即接收数据的目的节点。
当收到求助信息命令的路由节点自身至汇聚节点的最小跳数小于或等于相应求助路由节点至汇聚节点的最小跳数时,执行步骤502,否则流程结束。
本步骤只选择自身至汇聚节点的最小跳数小于或等于相应求助路由节点至汇聚节点的最小跳数的路由节点,使获取到的目标路由节点能够和发送求助信息命令帧的路由节点建立一条辅助链路。
502.收到求助信息命令的路由节点判断其自身是否发生拥塞。
当收到求助信息命令的路由节点判断出其自身没有发生拥塞时执行步骤503,否则,流程结束。
本步骤中忽略了自身已经发生拥塞的路由节点,选择没有发生拥塞的路由节点建立辅助链路,保证辅助链路的性能更好。
503、收到求助信息命令的路由节点向发送求助信息命令帧的相应路由节点回复应答消息。应答消息中包含该节点到Sink节点的跳数、剩余能量值和队列长度值等信息。
本步骤中,发送求助信息命令帧的路由节点在建立辅助链路时,充分考虑了周围邻居路由节点的各方面因素,包括拥塞状况、距离汇聚点的跳数、队列长度以及剩余能量等因素。通过计算各个路由节点的适应度能够获取到符合应用需求的较优路由节点。
所选择的分流点自身及下一跳路由节点无拥塞且没有建立辅助路径,距离Sink较近,并且缓冲空间大,剩余能量多,由此构建的辅助路径性能更好,鲁棒性更高。
206、在接收到应答消息后,求助路由节点从回复应答消息的路由节点中获取目标路由节点。
位于发生拥塞的路由节点的上游的路由节点,即发送求助信息命令帧的路由节点,从回复应答消息的路由节点中获取目标路由节点。
作为本实施例的一种实施方式,应答消息中可以包含发送所述应答消息的路由节点到汇聚节点的跳数值信息,和发送所述应答消息的路由节点的剩余能量值信息、队列长度值信息,本步骤中发送求助信息命令帧的路由节点从回复应答消息的路由节点中获取目标路由节点可以包含一下步骤:
601、发送求助信息命令帧的路由节点,即求助路由节点,从回复应答消息的路由节点中获取跳数值最小的路由节点。
602、求助路由节点判断跳数值最小的路由节点的数量是否大于1。当跳数值最小的路由节点的数量大于1时,执行步骤603。否则,当跳数值最小的路由节点的数量不大于1时,执行步骤604。
603、发送求助信息命令帧的路由节点从跳数值最小的路由节点中获取适应度最高的路由节点,作为目标路由节点。具体可以为:
根据公式
计算跳数值最小的路由节点的适应度,其中,α1,α2∈[0,1],fitness表示跳数值最小的路由节点的适应度,Er为跳数值最小的路由节点的剩余能量值,Lq为跳数值最小的路由节点的队列长度值,α1、α2为预设的加权系数。通过上述适应度计算,有利于最终选取适合的分流节点作为目标路由节点。
将所有跳数值最小的路由节点的适应度进行比较,从跳数值最小的路由节点中获取适应度最高的路由节点,作为目标路由节点。
604、将跳数值最小的路由节点作为步骤207中的目标路由节点。执行步骤207。
本步骤中,发送求助信息命令帧的相应路由节点再次以广播的形式发布求助信息命令,在之前不符合步骤203中回复条件的路由节点,可以向发出求助信息命令帧的路由节点回复应答消息。比如,对于由于能量不足,而没有在第一次求助信息命令帧发布后,向发布求助信息命令帧的路由节点回复应答消息的路由节点,在第二次求助信息命令帧发布后,可以向发布求助信息命令帧的路由节点回复应答消息。
207、在获取到目标路由节点后,发送求助信息命令帧的相应路由节点,即求助路由节点,与所述目标路由节点建立辅助链路。
位于发生拥塞的路由节点的上游的路由节点与目标路由节点建立辅助链路。辅助链路用于分流向发生拥塞的路由节点发送的数据流。
本步骤中,获取到的目标路由节点可以是一个,也可以是两个或者是两个以上。
其中,发送求助信息命令帧的相应路由节点与目标路由节点建立辅助链路,可以是以下三种方式:
1.发送求助信息命令帧的相应路由节点与一个目标路由节点建立辅助链路。
2.发送求助信息命令帧的相应路由节点与两个目标路由节点建立辅助链路。
3.发送求助信息命令帧的相应路由节点与三个以上目标路由节点建立辅助链路。建立辅助链路少可节省资源,建立辅助链路多可更快缓解拥塞,如何取舍是一个综合衡量的过程,可由本领域技术人员在制造产品时根据需求自由确定。
208、求助路由节点将向拥塞路由节点发送的数据流转发给辅助链路。
在位于发生拥塞的路由节点的上游的路由节点与目标路由节点建立辅助链路后,位于发生拥塞的路由节点的上游的路由节点,即发送求助信息命令帧的路由节点,将原本向发生拥塞的路由节点发送的数据流转发给辅助链路对应的目标路由节点。
作为本步骤的一种实施方式,发送求助信息命令帧的路由节点,将原本向发生拥塞的路由节点发送的数据流转发给辅助链路对应的目标路由节点可以包括以下两种方式:
1.发送求助信息命令帧的路由节点,将原本向发生拥塞的路由节点发送的数据流一次性转发给辅助链路对应的目标路由节点。
2.发送求助信息命令帧的路由节点,将原本向发生拥塞的路由节点发送的数据流分批次逐渐转发给辅助链路对应的目标路由节点。
作为本实施例的一种实施方式,如图7所示,发送求助信息命令帧的路由节点,将原本向发生拥塞的路由节点发送的数据流分批次逐渐转发给辅助链路对应的目标路由节点具体可以包括以下步骤:
701、求助路由节点等待接收拥塞路由节点发送的拥塞状态命令。
702、求助路由节点将向拥塞路由节点发送的数据流按照预设比例1-m向辅助链路发送。m值大于0小于1。此处假设m=1/2,即可将原本发送至拥塞路由节点的数据中比例为m=1/2的数据向辅助链路发送,即:求助路由节点向拥塞节点发送的数据每经过分流一次,拥塞节点接收的数据都会减少为本次分流前的一半。。
703、求助路由节点判断在预设时间内是否收到包含代表拥塞解除状态的拥塞状态类型标识符的拥塞状态命令;
当发送求助信息命令帧的路由节点,即求助路由节点在预设时间内没有收到包含代表拥塞解除状态的拥塞状态类型标识符的拥塞状态命令时,执行步骤704。
当求助路由节点在预设时间内收到包含代表拥塞解除状态的拥塞状态类型标识符的拥塞状态命令时,执行步骤209,求助路由节点将向辅助链路发送的数据流转发给拥塞路由节点。
704、求助路由节点将向辅助链路发送的数据流的比例更新为1-mn+1,求助路由节点将向拥塞路由节点发送的数据流按照预设比例1-mn+1向辅助链路发送。其中,n为将向辅助链路发送的数据流的转发比例更新的次数。并执行步骤703。例如,当m为1/2,则求助路由节点向拥塞节点发送的数据每经过分流一次,拥塞节点接收的数据都会增加一倍,这种逐步减少辅助链路数据,增加发向拥塞路由节点数据的方法有效缓解了“二次拥塞”的可能。
本步骤中,路由节点并不是一次性将所有数据流都转移至辅助路径,而是通过逐渐转移的方式分流数据,实现了较平稳、较快速地向分流点增加数据流,这在一定程度上能够有效避免分流点因数据量过大而发生拥塞的情况。
209、求助路由节点将向辅助链路发送的数据流转发给拥塞路由节点。
在收到包含代表拥塞解除状态的拥塞状态类型标识符的拥塞状态命令后,由于拥塞状况已经解除,原发生拥塞的路由节点可以正常转发数据流,于是,发送求助信息命令帧的路由节点,将向辅助链路发送的数据流转发给拥塞路由节点,即恢复之前的数据传送。
发送求助信息命令帧的路由节点,将向辅助链路发送的数据流转发给拥塞路由节点可以包括以下两种方式:
1.发送求助信息命令帧的路由节点,将向辅助链路发送的数据流一次行的转发给拥塞路由节点。
2.发送求助信息命令帧的路由节点,将向辅助链路发送的数据流分批次的逐渐转发给拥塞路由节点。
作为本实施例的一种实施方式,如图8所示,发送求助信息命令帧的路由节点,将向辅助链路发送的数据流分批次的逐渐转发给拥塞路由节点,可以包括以下步骤:
801、求助路由节点将向辅助链路发送的数据流按照预设比例mn+1向拥塞路由节点发送。
802、求助路由节点判断向辅助链路发送的数据流是否为零。
当向辅助链路发送的数据流不为零时,执行步骤803。
当向辅助链路发送的数据流为零时,流程结束。
803、求助路由节点将向拥塞路由节点发送的数据流的比例更新为mn+1-y,其中,y为将向拥塞路由节点发送的数据流的比例更新的次数。并执行步骤802。
在拥塞解除后,辅助路径的流量通过逐渐转移的方式分流数据,每次转移回拥塞路由节点的流程都会增加,能够防止发生拥塞的路由节点由于恢复太快而导致“二次拥塞”的情况。这种机制避免了网络负载分布的剧烈变化,能够减少路由节点拥塞的次数。此时每转移分流一次,辅助路径上传输的数据量都会减少为分流前的一半,直到辅助路径不再用于进行分流。
本实施例提供的网络拥塞处理方法,在网络中的某个路由节点发生拥塞时,接收到拥塞状态命令的路由节点会向其它路由节点发出求助信息命令,并从回复应答消息的路由节点中获取目标路由节点。接收到拥塞状态命令的路由节点会与获取到的目标路由节点建立辅助链路,并将原本向发生拥塞的路由节点发送的数据流转发给辅助链路,转移数据流,使数据流绕开发生拥塞的路由节点,从新建立的没有发生拥塞的辅助链路通过。
由于本实施例的网络拥塞处理方法,是在发生拥塞的路由节点的上游建立辅助连接,绕过发生拥塞的路由节点,因此,既能够解决由下游路由节点吞吐能力有限引起的拥塞,也能解决由于上游路由节点传输的数据流量过大引起的拥塞。采用这种方案,可在WSN网络中较好的起到分流效果,这是因为WSN网络传感器密度可能较大,每个节点都存在数据发送,此时如果一次性分流转发所有数据,未必一定达到理想效果,还可能造成用于分流的目标路由节点的拥塞。由于整个WSN网络是网状网络,彼此间协调各种信息会浪费资源,特别是WSN经常对节点功耗非常敏感,如用于检测环境的大量传感器经常被随机散播到自然环境,无法及时充电,如果为了解决一个节点的拥塞问题造成其它节点的拥塞,网络中的不同节点间可能反复协商解决拥塞问题,可能耗费大量电能。而且WSN网络中Sink节点有可能接收大量节点转发的数据,所以越靠近Sink节点的路由节点承担来自更多上游节点的转发,也就可能越繁忙,也就是说越靠近Sink节点的路由节点的拥塞问题可能越突出,当一定范围内很多节点都需要有数据传送时,如果只是将转发的任务分担给某一个或多个节点也是不合适的。而采用本实施例所述按比例更新的分流转发方式,可根据实际需求在一次转发后判断是否在预设时间内是否收下游节点反馈的拥塞报告,如果拥塞依然存在,可继续增加转发到辅助链路的数据,使得本次拥塞节点的数据量与上次拥塞节点的数据量之比为m,例如当m为1/2时,相当于每由下游节点报告一次拥塞,则当前节点向下游节点发送的数据会减少一半,这样持续根据拥塞状态命令分批逐次减少数据转发可减轻辅助链路所在节点不必要地承受过多数据而出现拥塞。本实施例的方法很好的适应WSN应用环境,对于大范围、大密度、低功耗传感器网络而言,可很好协调大量节点间的数据传输,通过多个节点间不断交互信息并逐步协调分担数据传输,可在缓解拥塞同时可节省包括节点电能在内的资源。当然,对于与WSN网络类似的其它网络而言,本实施例的解决方案依然适用,本实施例对此不做限定。
与方法实施例相对应,本发明实施例提供了一种网络拥塞处理装置,可用于执行上述方法,如图9所示,包括:解析单元91、判断单元92、发布单元93、获取单元94、链接单元95、第一转发单元96。
其中,在接收到拥塞状态命令后,解析单元91从所述拥塞状态命令中解析出拥塞状态类型标识符;判断单元92判断所述拥塞状态类型标识符代表拥塞状态还是代表拥塞解除状态。
当所述拥塞状态类型标识符代表拥塞状态时,发布单元93以广播的形式发布求助信息命令。在接收到应答消息后,获取单元94从回复应答消息的路由节点中获取目标路由节点;链接单元95与获取的目标路由节点建立辅助链路;第一转发单元96将向拥塞路由节点发送的数据流转发给辅助链路。
本实施例提供的网络拥塞处理装置,在网络中的某个路由节点发生拥塞时,发布单元会向其它路由节点发出求助信息命令,第一获取单元从回复应答消息的路由节点中获取目标路由节点。接收到拥塞状态命令的路由节点通过链接单元与获取到的目标路由节点建立辅助链路,第一转发单元将原本向发生拥塞的路由节点发送的数据流转发给辅助链路,转移数据流,使数据流绕开发生拥塞的路由节点,从新建立的没有发生拥塞的辅助链路通过。
由于本实施例的网络拥塞处理装置,是在发生拥塞的路由节点的上游建立辅助连接,绕过发生拥塞的路由节点,因此,既能够解决由下游路由节点吞吐能力有限引起的拥塞,也能解决由于上游路由节点传输的数据流量过大引起的拥塞。
本发明实施例提供了另如图10所示网络拥塞处理装置,包括:解析单元101、判断单元102、发布单元103、获取单元104、链接单元105、第一转发单元106、第二转发单元107。
其中,第一转发单元106包括:第一发送模块1061、第一判断模块1062、第一更新模块1063。
第二转发单元109包括:第二发送模块1091、第二判断模块1092、第二更新模块1093。
获取单元104包括:获取模块1041、指定模块1042。
指定模块1042包括:判断子模块10421、获取子模块10422、指定子模块10423。
首先,解析单元101接收拥塞路由节点发送的拥塞状态命令,并且在接收到拥塞状态命令后,从所述拥塞状态命令中解析出拥塞状态类型标识符;判断单元102判断所述拥塞状态类型标识符代表拥塞状态还是代表拥塞解除状态。
当所述拥塞状态类型标识符代表拥塞状态时,发布单元103以广播的形式发布求助信息命令。
在网络中的某个路由节点出现拥塞时,则出现拥塞的路由节点会向其所有上一跳的路由节点发送拥塞状态命令帧,比如出现拥塞的路由节点以组播的方式向其所有上一跳的路由节点发送拥塞状态命令帧,告知所有该路由节点的上一跳的路由节点其拥塞情况。
如图3所示,当图中的A路由节点为出现拥塞的路由节点时,则A路由节点便向位于其上一跳的B路由节点和C路由节点以组播的方式发送拥塞状态命令,告知B路由节点和C路由节点A路由节点的拥塞情况。
在接收到拥塞状态命令后,收到拥塞状态命令帧的路由节点便会得知该发生拥塞的路由节点的拥塞情况,于是启动拥塞处理机制,并可以以广播的形式向其周围的路由节点发布求助信息命令。
如图4所示,当图中的A路由节点为出现拥塞的路由节点时,此时B路由节点和C路由节点已经收到了A路由节点发送的拥塞处理启动命,则B路由节点和C路由节点便以广播的形式向周围的D路由节点、E路由节点、F路由节点、G路由节点、H路由节点、I路由节点、J路由节点等周围的路由节点发布求助信息命令。
收到求助信息命令帧的路由节点,会向发送求助信息命令帧的相应路由节点回复应答消息,比如收到求助信息命令帧的路由节点可以以单播的方式向发送求助信息命令帧的相应路由节点回复应答消息。
作为本实施例的一种实施方式,收到求助信息命令帧的路由节点向发送求助信息命令帧的相应路由节点回复应答消息,可以为以下的方式:
收到求助信息命令的路由节点判断其自身至汇聚节点的最小跳数是否小于或等于相应求助路由节点至汇聚节点的最小跳数。
本步骤只选择自身至汇聚节点的最小跳数小于或等于相应求助路由节点至汇聚节点的最小跳数的路由节点,使获取到的目标路由节点能够和发送求助信息命令帧的路由节点建立一条辅助链路。
当收到求助信息命令的路由节点自身至汇聚节点的最小跳数小于或等于相应求助路由节点至汇聚节点的最小跳数时,收到求助信息命令的路由节点判断其自身是否发生拥塞。
当收到求助信息命令的路由节点自身至汇聚节点的最小跳数小于或等于相应求助路由节点至汇聚节点的最小跳数,且没有发生拥塞时,向发送求助信息命令帧的相应路由节点回复应答消息。
本实施例中忽略了自身已经发送拥塞的路由节点,选择没有发送拥塞的路由节点建立辅助链路,保证辅助链路的性能更好。
本步骤中,发送求助信息命令帧的路由节点在建立辅助链路时,充分考虑了周围邻居路由节点的各方面因素,包括拥塞状况、距离汇聚点的跳数等因素。
所选择的分流点自身及下一跳路由节点无拥塞且没有建立辅助路径,距离Sink节点较近,并且缓冲空间大,剩余能量多,由此构建的辅助路径性能更好,鲁棒性更高。
在收到所述应答消息时,获取单元104接收收到求助信息命令的路由节点回复的应答消息,并从回复应答消息的路由节点中获取目标路由节点。具体可以为:获取模块1041根据跳数值信息,从回复应答消息的路由节点中获取跳数值最小的路由节点,指定模块1042将跳数值最小的路由节点作为目标节点。具体的,判断子模块10421判断跳数值最小的路由节点的数量是否大于1;当跳数值最小的路由节点的数量大于1时,获取子模块10422从跳数值最小的路由节点中获取适应度最高的路由节点,指定子模块10423将适应度最高的路由节点作为目标路由节点。
获取子模块10422从跳数值最小的路由节点中获取适应度最高的路由节点,作为目标路由节点,具体的可以包括:根据公式
计算获取到的跳数值最小的路由节点的适应度,其中,α1,α2∈[0,1],fitness表示路由节点的适应度,Er为路由节点的剩余能量值,Lq为路由节点的队列长度值,α1、α2为预设的加权系数。
获取子模块10422于从跳数值最小的路由节点中获取适应度最高的路由节点,作为目标路由节点。
通过计算各个路由节点的适应度能够获取到符合应用需求的较优路由节点。
链接单元105与获取的目标路由节点建立辅助链路;第一转发单元106将向拥塞路由节点发送的数据流转发给辅助链路。
获取到的目标路由节点可以是一个,也可以是两个或者是两个以上。
其中,链接单元105与目标路由节点建立辅助链路,可以是以下三种方式:
1.链接单元105与一个目标路由节点建立辅助链路。
2.链接单元105与两个目标路由节点建立辅助链路。
3.链接单元105与三个以上目标路由节点建立辅助链路。
第一转发单元106将向拥塞路由节点发送的数据流转发给辅助链路具体为:第一发送模块1061将向拥塞路由节点发送的数据流按照预设比例1-m向辅助链路发送;第一判断模块1062判断在预设时间内是否收到包含代表拥塞解除状态的拥塞状态类型标识符的拥塞状态命令;第一更新模块1063当在预设时间内没有收到包含代表拥塞解除状态的拥塞状态类型标识符的拥塞状态命令时,将向拥塞路由节点发送的数据流的比例更新为1-mn+1,其中,n为所述将向辅助链路发送的数据流的比例更新的次数。
作为本实施例的一种实施方式,第一转发单元108将原本向发生拥塞的路由节点发送的数据流转发给辅助链路对应的目标路由节点可以包括以下两种方式:
1.第一转发单元106将原本向发生拥塞的路由节点发送的数据流一次性转发给辅助链路对应的目标路由节点。
2.第一转发单元106将原本向发生拥塞的路由节点发送的数据流分批次逐渐转发给辅助链路对应的目标路由节点。本实施例中,路由节点并不是一次性将所有数据流都转移至辅助路径,而是通过逐渐转移的方式分流数据,实现了较平稳、较快速地向分流点增加数据流,这在一定程度上能够有效避免分流点因数据量过大而发生拥塞的情况。
解析单元101接收所述拥塞路由节点发送的另一拥塞状态命令,从所述另一拥塞状态命令中解析出另一拥塞状态类型标识符。
判断单元102判断所述另一拥塞状态类型标识符代表拥塞状态还是代表拥塞解除状态。
在收到包含代表拥塞解除状态的拥塞状态类型标识符的拥塞状态命令后,第二转发单元107将向辅助链路发送的至少部分数据流转发给拥塞路由节点。具体可以为:第二发送模块1071,用于将向辅助链路发送的数据流按照比例mn+1向拥塞路由节点发送;第二判断模块1072判断向辅助链路发送的数据流是否为零;第二更新模块1073用于当向辅助链路发送的数据流不为零时,将从辅助链路向拥塞路由节点转发的数据流的比例更新为mn+1-y,其中,y为所述从辅助链路向拥塞路由节点转发的数据流的比例更新的次数。
在拥塞解除后,辅助路径的流量通过逐渐转移的方式分流数据,平稳减少,能够防止发生拥塞的路由节点由于恢复太快而导致“二次拥塞”的情况。这种机制避免了网络负载分布的剧烈变化,能够减少路由节点拥塞的次数。
本实施例提供的网络拥塞处理装置,在网络中的某个路由节点发生拥塞时,接收到拥塞状态命令的路由节点会向其它路由节点发出求助信息命令,并从回复应答消息的路由节点中获取目标路由节点。接收到拥塞状态命令的路由节点会与获取到的目标路由节点建立辅助链路,并将原本向发生拥塞的路由节点发送的数据流转发给辅助链路,转移数据流,使数据流绕开发生拥塞的路由节点,从新建立的没有发生拥塞的辅助链路通过。
由于本实施例的网络拥塞处理装置,是在发生拥塞的路由节点的上游建立辅助连接,绕过发生拥塞的路由节点,因此,既能够解决由下游路由节点吞吐能力有限引起的拥塞,也能解决由于上游路由节点传输的数据流量过大引起的拥塞。
本实施例还提供一种无线通信网络,该网络包括多个节点,其中,当第一节点出现拥塞时,第一节点可发送的拥塞状态命令;
第一节点上游的第二节点可从所述拥塞状态命令中解析出拥塞状态类型标识符,判断所述拥塞状态类型标识符代表拥塞状态还是代表拥塞解除状态,当所述拥塞状态类型标识符代表拥塞状态时,以广播的形式发布求助信息命令;
第三节点在接收收到求助信息命令后可回复的应答消息;
则第二节点可从多个进行回复的第三节点中获取目标路由节点,与所述目标路由节点建立辅助链路,将向拥塞路由节点发送的至少部分数据流转发给辅助链路。对于每个节点具体的功能实现可参见之前方法或装置的描述,此处不做赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。