CN103401692A - 广播方法及通信设备 - Google Patents
广播方法及通信设备 Download PDFInfo
- Publication number
- CN103401692A CN103401692A CN2013102570679A CN201310257067A CN103401692A CN 103401692 A CN103401692 A CN 103401692A CN 2013102570679 A CN2013102570679 A CN 2013102570679A CN 201310257067 A CN201310257067 A CN 201310257067A CN 103401692 A CN103401692 A CN 103401692A
- Authority
- CN
- China
- Prior art keywords
- packet
- parameter
- jumping
- receives
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种广播方法及通信设备,其中方法包括:接收第一数据包;如果当前接收到的第一数据包是重复的数据包,当当前接收到的第一数据包能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数时,丢弃当前接收到的第一数据包。本发明实施例提供的方法中,设备在收到重复数据包之后,进一步比较第一数据包能够被转发的次数和根据之前存储的跳数参数确定的第一数据包能够被转发的次数,根据判断结果来进一步确定是要丢弃数据包还是继续将数据包进行转发,提高了广播方式发送数据包的可靠性。
Description
技术领域
本发明涉及通信技术,尤其涉及一种广播方法及通信设备。
背景技术
广播是一种重要的网络数据发送方式,由一个源设备发送数据包给多个目标设备,是一种一对多的发送。在某些情况下一个源设备发送数据包给部分相邻设备,比如广播到所有路由器设备,而非路由器的相邻设备可能会丢弃收到的广播数据包,在另外一些情况下一个源设备发送数据包给所有相邻设备,也就是说源设备发送的数据包的目标设备,在某些情况下是网络中的部分设备,在另外一些情况下是网络中的所有设备。通常一个源设备通过广播方式发送数据包给所有的相邻目标设备。所有收到数据包的相邻目标设备将数据包转发给自身的相邻目标设备,如此一直到所有的目标设备都收到数据包。
ZigBee是一种低速率的短距离无线通信技术,在ZigBee标准中提出了一种可靠广播的方法。ZigBee标准中广播方法实现过程为:通信网络中的每个设备都存储一个广播表,广播表中包括多条记录项,记录项用于记录发起的或收到的广播数据包的标识符。标识符唯一标识一个数据包。设备收到数据包之后,查找广播表中是否存在与接收到的数据包的标识符相同的记录项,如果存在,则判断接收到的数据包为重复收到的包,将该数据包丢弃。否则判断接收到的数据包为新接收到的包,将新接收到的包进行转发。标识一个数据包的方法有很多种,比如可以使用源地址和时戳来标识一个数据包,或者只使用时戳来标识一个数据包,或者可以使用源地址和序列号来标识一个数据包。
如果网络中每个目标设备都转发接收到的数据包,则同一数据包会重复被转发,造成网络带宽极大的消耗,影响正常的网络通信。在ZigBee标准的广播方法中,为了减小由于数据包重复发送造成的网络带宽消耗,对于数据包的转发范围进行了限制。
本申请的发明人发现:上述增加跳数限制的广播方法,虽然减少网络带宽的消耗,但是该广播方法的可靠性存在问题,从而会导致网络中某些设备收不到源设备发起并发送的数据包。
发明内容
本发明实施例针对现有技术中存在的问题,提供一种广播方法及广播网络中的设备,能够提高广播的可靠性。
本发明实施例提供了一种广播方法,包括:
接收第一数据包或第一广播命令;
如果当前接收到的第一数据包是重复的数据包,比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数,如果当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数,丢弃当前接收到的第一数据包或第一广播命令。
本发明实施例还提供了一种广播方法,包括:
接收第一数据包或第一广播命令;
如果当前接收到的第一数据包是重复的数据包,则比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,如果当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,丢弃当前接收到的第一数据包。
本发明实施例还提供了一种通信设备,包括:
接收模块,用于接收第一数据包或第一广播命令;
第一判断模块,用于判断当前接收到的第一数据包是否是重复的数据包;
第一比较模块,用于当所述第一判断模块确定当前接收到的数据包是重复的数据包时,比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数;
第一数据处理模块,用于当当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数时,丢弃当前接收到的第一数据包或第一广播命令。
本发明实施例还提供了一种通信设备,包括:
接收模块,用于接收第一数据包或第一广播命令;
第一判断模块,用于判断当前接收到的第一数据包是否是重复的数据包;
第二比较模块,用于当所述判断模块确定当前接收到的数据包是重复的数据包时,比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数;
第二数据处理模块,用于当当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数时,丢弃当前接收到的第一数据包。
本发明实施例中,设备在收到重复数据包之后,进一步比较第一数据包能够被转发的次数和根据之前存储的跳数参数或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,根据判断结果来进一步确定是要丢弃数据包还是继续将数据包进行转发,提高了广播方式发送数据包的可靠性。
附图说明
图1所示为本发明广播方法实施例一流程图;
图2所示为本发明广播方法实施例二流程图;
图3所示为本发明实施例中涉及到的一种网络结构;
图4所示为本发明实施例中涉及到的另一种网络结构;
图5所示为本发明广播方法实施例三流程图;
图6所示为本发明广播方法实施例四流程图;
图7所示为本发明广播方法实施例五流程图;
图8所示为本发明广播方法实施例六流程图;
图9所示为本发明广播方法实施例七流程图;
图10所示为本发明广播方法实施例八流程图;
图11所示为本发明实施例中涉及到的又一种网络结构;
图12所示为本发明广播方法实施例九流程图;
图13所示为本发明广播方法实施例十流程图;
图14所示为本发明广播方法实施例十一流程图;
图15所示为本发明广播网络中的设备实施例一结构示意图;
图16所示为本发明广播网络中的设备实施例二结构示意图;
图17所示为本发明广播网络中的设备实施例三结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下述的本发明的实施例的广播方法,可以用在各种网络通信当中,包括无线网络和有线网络。
如图1所示为本发明广播方法实施例一流程图,包括:
步骤101、接收第一数据包或第一广播命令;
步骤102、如果当前接收到的第一数据包是重复的数据包,比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数,如果当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数,丢弃当前接收到的第一数据包或第一广播命令。
在ZigBee标准的广播方法中,为了减小由于数据包重复发送造成的网络带宽消耗,对于数据包的转发范围进行了限制。在数据包中有一个Radius域,该Radius域表示数据包可以传递的跳数,数据包每经过一跳的转发,则数据包中Radius域中的值减一,当目标设备收到的数据包Radius域中的值减一之后为0时,目标设备不转发该数据包。或者,数据包每经过一跳的转发,则数据包中Radius域中的值加一,当目标设备收到的数据包Radius域中的值加一之后超过预先设定的最大允许跳数之后,目标设备不转发该数据包。
网络中的各个目标设备在收到数据包之后,可以对数据包中的跳数进行加一或减一,对于接收到重复的数据包,判断当前接收到的数据包能够被转发的次数是否大于根据之前存储的该数据包的跳数参数确定的该数据包的能够被转发的次数时,需要结合具体的情况。
下面主要以对跳数进行减一为例进行介绍
如图2所示为本发明广播方法实施例二流程图,包括:
步骤201、接收第一数据包。
步骤202、判断预先存储的广播表中是否存在与第一数据包的标识符相同的记录项,如果预先存储的广播表中不存在与第一数据包的标识符相同的记录项,则执行步骤203;否则执行步骤204。
步骤203、确定接收到的第一数据包是新的数据包,在所述广播表中记录第一数据包的标识符,并且将第一数据包的跳数参数进行存储,再将第一数据包进行转发,结束。
步骤204、确定第一数据包是重复的数据包,判断当前接收到的第一数据包能够被转发的次数是否大于根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数,如果当前接收到的第一数据包能够被转发的次数大于根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数,则执行步骤205;如果当前接收到的第一数据包的能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数,则执行步骤206。
步骤205、将之前存储的第一数据包的跳数参数更换为当前接收到的第一数据包的跳数参数,并将当前接收到的第一数据包进行转发。
步骤206、丢弃当前接收到的第一数据包,结束。
步骤202中判断当前接收到的第一数据包是否是重复的数据包具体包括:判断预先存储的广播表中是否存在与当前接收到的第一数据包的标识符相同的记录项,其中,标识符是能够唯一标识一个数据包的标识符,标识符可以由数据包的源地址和序列号组成,或者标识符为数据包的时间戳,或者标识符可以由源地址和时间戳组成。
对于对跳数进行减一的情况,实施例二中步骤判断当前接收到的第一数据包能够被转发的次数是否大于根据之前存储的跳数参数第一数据包能够被转发的次数的步骤,具体如步骤204所示,即可以判断当前接收到的第一数据包中的跳数参数是否大于之前存储的第一数据包的跳数参数。如果当前接收到的第一数据包的跳数参数大于之前存储的第一数据包的跳数参数,那么可以确定当前接收到的数据包能够被转发的次数,大于根据之前存储的跳数参数第一数据包能够被转发的次数。
步骤203中,将跳数参数进行存储的步骤,可以在对第一数据包中的跳数进行处理之前进行,也可以在对第一数据包中的跳数进行处理之后进行。如果步骤203中,将跳数参数进行存储的步骤在对第一数据包中的跳数进行处理之前进行,那么跳数参数就是第一数据包中的跳数,则步骤204中,将第一数据包中跳数参数与之前存储的第一数据包的跳数参数相比较的步骤可以在对第一数据包中的跳数进行处理之前进行。如果步骤203中,将跳数参数进行存储的步骤在对第一数据包中的跳数进行处理之后进行,那么跳数参数就是经过处理后的跳数,即减一后的跳数,则步骤204中,将第一数据包中跳数参数与之前存储的第一数据包的跳数参数相比较的步骤可以在对第一数据包中的跳数进行处理之后进行。
例如,假设对数据包中的跳数进行处理具体是将数据包中的跳数减一,步骤203中,当第一数据包是新的数据包时,将第一数据包中的跳数减一,将跳数减一之后的值作为跳数参数进行存储,然后将第一数据包转发。步骤204中,当第一数据包是重复的数据包时,将第一数据包中的跳数减一,如果跳数减一之后大于之前存储的第一数据包的跳数参数,则将之前存储的第一数据包的跳数参数更换为当前接收到的第一数据包的跳数参数(即当前接收到的第一数据包的跳数减一之后的值),然后将第一数据包转发。如果当前接收到的第一数据包的跳数减一之后小于或等于之前存储的第一数据包的跳数参数,则当前接收到的第一数据包丢弃。
或者,假设对数据包中的跳数进行处理具体是将数据包中的跳数减一,步骤203中,当第一数据包是新的数据包时,将当前接收到的第一数据包中的跳数作为跳数参数进行存储,然后将第一数据包中的跳数减一,再将第一数据包转发。步骤204中,当第一数据包是重复的数据包时,如果当前接收到的第一数据包的跳数参数大于之前存储的第一数据包的跳数参数,则将之前存储的第一数据包的跳数更换为当前接收到的第一数据包的跳数参数(即当前接收到的第一数据包的跳数),然后将第一数据包中的跳数减一后再将第一数据包转发。如果当前接收到的第一数据包的跳数小于或等于之前存储的第一数据包的跳数,则当前接收到的第一数据包丢弃。
实施例二中,网络中各设备中存储有一个广播表,广播表中包括多个记录项,每个记录项用于记录一个数据包的标识符,数据包的跳数参数可以存储在广播表里与该数据包对应的记录项中。或者,由于各目标设备接收到数据包之后需要将其缓存之后再转发,所以数据包的跳数参数可以作为缓存的数据包的一部分进行存储。目标设备在收到数据包之后,可以将数据包缓存,通过查找广播表中关于该数据包的标识符,就可以提取出数据包。
下面通过具体的网络中的设备来说明本发明实施例二的实现过程。
如图3所示为本发明实施例中涉及到的一种网络结构,下面以图3所示的网络结构为例来介绍本发明实施例的具体过程。
图3中,A设备作为源设备发送2跳数据包M,一开始B设备收到数据包M,而C设备由于干扰没有收到数据包M,后续C设备收到了B设备转发的数据包M,C设备查找自身存储广播表,判断是否存在与数据包M的标识符相同的记录项,由于C设备是第一次收到数据包M,所以C设备的广播表中不存在与数据包M的标识符均相同的数据包,C设备判断数据包M为新的数据包。
C设备将数据包M中的跳数减一,C设备在自身的广播表中添加数据包M的记录项,记录数据包M的标识符,并记录数据包M的跳数参数(由于C设备将数据包M中的跳数减一,所以此处跳数参数为0跳)。C设备将数据包M中的跳数减一后,数据包M的跳数变为0,于是C设备不将数据包M进行转发。
A设备由于收不到来自C设备转发的数据包M,所以A设备重新发起并发送2跳数据包M,这时C设备收到A设备发送的2跳数据包M,C设备在收到A设备发送的数据包M后,从自身的广播表中查找,判断是否存在与数据包M的标识符均相同的记录项。之前B设备向C设备转发过数据包M,B设备转发的数据包M中源地址为A设备,因为B设备是进行转发,而不是主动发起并发送数据包。A设备后续发送给C设备的数据包M中的源地址也是A设备。这样,C设备能够从自身的广播表中查找到与当前接收到的数据包M的标识符均相同的记录项,即之前C设备收到B设备转发的数据包M后添加的记录项。于是C设备判断当前接收到的数据包M为重复数据包。
C设备收到重复数据包之后,不是直接丢弃,而是还需要进行进一步的判断。具体地,C设备将当前接收到的来自A设备发送的数据包M中的跳数减一之后的值(即当前数据包M的跳数参数)与广播表中关于数据包M的记录项中记录的跳数参数进行比较,将当前接收的数据包M中的跳数减一之后的值为2-1=1跳,而广播表中存储的数据包M的跳数参数为0跳,1>0,即C设备当前接收到的数据包M能够被转发的次数(1次)大于根据之前存储的数据包M的跳数参数确定的数据包M能够被转发的次数(0次),所以C设备将广播表中数据包M的跳数参数更换为1跳。然后C设备将数据包M中的跳数减一后,进行转发。C设备收到的数据包M中的跳数为2,减一之后跳数为1,所以C设备可以将数据包进行转发。
如果按照现有技术ZigBee标准中广播方法,C设备收到重复数据包之后直接丢弃,而对于B设备转发的数据包M由于剩余跳数不足,无法进行转发,会导致C设备收不到A设备发送的数据包M。本发明实施例二提供的方法中,C设备在收到重复数据包之后,进一步比较当前接收到的来自A设备发送的数据包M中能够被转发的次数与根据广播表中关于数据包M的记录项中记录的跳数参数确定的数据包M能够被转发的次数的大小,这样就避免了C设备将与自身间隔跳数较少的设备发送过来的数据包直接丢弃,从而提高了广播方式发送数据包的可靠性。
如图4所示为本发明实施例中涉及到的另一种网络结构,下面一图4所示的网络结构为例来介绍本发明实施例的实现过程。
图4中,S设备作为源设备发起广播,发送5跳数据包M给相邻的A设备和D设备,B设备是低功耗路由器件。低功耗路由是无线传感器网络当中一个重要特征。低功耗路由器件通常周期性地进行休眠和工作,在休眠的时候,其他设备无法与低功耗器件进行通信,只有在非休眠的时候,其他设备才能与低功耗路由器件通信。如果B设备恰好处于休眠状态,则A设备需要等到B设备唤醒后才将接收到的数据包M进行转发,因此D设备先进行数据包的转发。D设备将数据包M转发给E设备,E设备将数据包M转发给F设备,F设备将数据包M转发给C设备和J设备,C设备先收到F设备转发的2跳数据包M,并在自身的广播表中添加关于数据包M的记录项,记录数据包M的标识符,并在记录项中记录数据包M的跳数参数(即2-1=1跳),然后将数据包M跳数减一后转发给G、I、A和F设备,G设备和I设备将数据包M跳数减一后,跳数为0,于是不再转发。经过一段时间后,B设备唤醒,A设备将接收到的数据包M转发。C设备收到了来自A设备转发的数据包M,C设备从自身的广播表中查找,判断是否存在与数据包M的标识符均相同的记录项。之前F设备向C设备转发过数据包M,所以C设备能够在广播表中查找到与当前接收到的数据包M的标识符均相同的记录项。于是C设备判断当前接收到的数据包M为重复数据包。
C设备将当前接收到的A设备转发的数据包M中的跳数减一之后的值(即当前数据包M的跳数参数)与广播表中关于数据包M的记录项中记录的跳数参数进行比较,将当前接收到的A设备转发的数据包M中的跳数减一之后的值为4-1=3跳,而广播表中存储的数据包M的跳数参数为1跳,3>1,即当前接收到的数据包M能够被转发的次数大于根据之前存储的数据包M的跳数参数确定的数据包M能够被转发的次数,所述C设备将广播表中数据包M的跳数参数更换为3跳。然后C设备将当前接收到的A设备转发的数据包M中的跳数减一后,转发给G、I、A、F设备。G、I设备收到的C设备转发的数据包M中跳数为3跳,这样G、I设备就能将接收到的数据包M转发,从而H、K、L、N设备也能收到数据包M。
如图5所示为本发明广播方法实施例三流程图,包括:
步骤501、接收第一数据包;
步骤502、判断预先存储的广播表中是否存在与第一数据包的标识符均相同的记录项,如果预先存储的广播表中不存在与第一数据包的标识符均相同的记录项,则执行步骤503;否则执行步骤504。
步骤503、确定接第一数据包是新的数据包,在所述广播表中记录第一数据包的标识符,并且将第一数据包的跳数参数进行存储,再将第一数据包进行转发,结束。
步骤504、确定第一数据包是重复的数据包,判断当前接收到的第一数据包能够被转发的次数是否大于根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数,如果当前接收到的第一数据包能够被转发的次数大于根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数,则执行步骤505;否则,执行步骤506。
步骤505、判断根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数是否是0,如果是,则说明之前收到的第一数据包没有被转发过,则执行步骤507;否则,说明之前收到的第一数据包被转发过,执行步骤508。
步骤506、丢弃当前接收到的第一数据包,结束。
步骤507、将之前存储的第一数据包的跳数参数更换为当前接收到的第一数据包的跳数参数,并将当前接收到的第一数据包进行转发,结束。
步骤508、发送第一广播命令给相邻目标设备,所述第一广播命令中包括当前接收到的第一数据包的源地址、序列号和当前接收到的第一数据包中的跳数经过跳数处理后的值,具体到本实施例即当前接收到的第一数据包中的跳数减一之后的值。第一广播命令中的跳数,即是第一数据包中的跳数经过跳数减一之后的值。其他目标设备收到第一广播命令之后的处理方式与接收到数据包之后的处理方式类似,具体地,当目标设备收到第一广播命令之后,查找自身的广播表,如果广播表中存在与第一广播命令中的标识符均相同的记录项,则比较第一广播命令中的跳数参数(即第一广播命令中的跳数减一之后的值)与记录项中的跳数参数的大小。如果第一广播命令中的跳数参数大于记录项中的跳数参数,则将记录项中的跳数参数更换为第一广播命令中的跳数参数,提取出与记录项中与第一广播命令中的标识符均相同的数据包,并将提取出的数据包中的跳数设置为第一广播命令中的跳数,然后将提取出的数据包转发。如果第一广播命令中的跳数参数小于或等于记录项中的跳数参数,则丢弃该第一广播命令,或者转发该第一广播命令,即将第一广播命令中的跳数减一后转发,直到该第一广播命令中的跳数为0时,停止转发。
如果广播表中不存在与第一广播命令中的标识符相同的记录项,则说明该目标设备没有收到过与第一广播命令中的标识符相同的数据包,该目标设备丢弃该命令,或者将该命令中的跳数减一后转发出去,直到该命令中的跳数为0时,停止转发。
以图4所示的网络结构为例,当C设备收到A设备转发的重复数据包M后,判断数据包M能够被转发的次数大于根据之前存储的数据包M的跳数参数确定的数据包M能够被转发的次数,具体地,可以判断数据包M中跳数减一之后的值(即当前数据包M的跳数参数)大于广播表中关于数据包M的记录项中记录的跳数参数(即1跳),然后C设备继续判断根据之前存储的数据包M的跳数参数确定的数据包能够被转发的次数不为0(即之前粗糙农户的数据包M的跳数参数不为0),于是C设备发送第一广播命令给相邻目标设备G、I、F和A,第一广播命令中包括数据包M的源地址、序列号和C设备当前接收到的数据包M的跳数参数。之前由于B设备休眠,所以D设备先转发数据包M。在G和I设备的记录表中存储有关于数据包M的记录项,该记录项中数据包M的跳数参数为0跳。G和I设备在收到后续的第一广播命令后,在自身的广播表中能够查找到与第一广播命令中的标识符均相同的记录项,第一广播命令中的跳数参数大于记录项中存储的数据包M的跳数参数,且之前存储的数据包M的跳数参数为0,所以G设备和I设备提取出数据包M,并将提取出的数据包M中的跳数设置为第一广播命令的跳数参数(即第一广播命令的跳数减一之后的值)的值,并将数据包M转发出去。通过发送第一广播命令给G设备和I设备,使得G设备和I设备将之前收到过的数据包M转发,避免了如同现有技术那样,G设备和I设备由于数据包M中剩余跳数不足而停止转发,造成G设备和I设备的相邻目标设备收不到数据包M的情况。
本发明实施例三提供的方法,对于重复接收到的数据包,当数据包的跳数参数大于先前存储的数据包的跳数参数,并且根据之前存储的数据包的跳数参数确定的该数据包能够被转发的次数不为0时,发送第一广播命令,而不是转发数据包。由于第一广播命令的字节数少于数据包,这样就可以节省传输字节数。
方法实施例三中,对于有的目标设备,在收到一个第一广播命令之后,在自身存储的广播表中查找不到与追加广播命令中的标识符均相同的记录项,也就是说之前该目标设备没有收到过与第一广播命令中的标识符均相同的数据包,这样,设备即使收到了第一广播命令之后,也无法转发相应的数据包。
以图4所示的网络结构为例,C设备先收到F设备转发的2跳数据包M,并在自身的广播表中添加关于数据包M的记录项,记录数据包M的标识符,并在记录项中记录数据包M的跳数参数(即2-1=1跳),然后将数据包M跳数减一后转发给G、I、F和A设备,然而由于干扰,经过多次重传,G和I都没有收到来自C和J的转发。经过一段时间后,B设备唤醒,A设备将接收到的数据包M转发。C设备收到了来自A设备转发的数据包M,C设备从自身的广播表中查找,判断是否存在与数据包M的标识符相同的记录项。之前F设备向C设备转发过数据包M,所以C设备能够在广播表中查找到与当前接收到的数据包M的标识符相同的记录项。于是C设备判断当前接收到的数据包M为重复数据包。
C设备将当前接收到的A设备转发的数据包M中的跳数减一之后的值(即当前数据包M的跳数参数)与广播表中关于数据包M的记录项中记录的跳数参数进行比较,将当前接收到的A设备转发的数据包M中的跳数减一之后的值为4-1=3跳,而广播表中存储的数据包M的跳数参数为1跳,3>1,即当前接收到的数据包M能够被转发的次数大于根据之前存储的数据包M的跳数参数确定的数据包M能够被转发的次数,并且根据之前存储的数据包M的跳数参数确定的数据包M能够被转发的次数不等于0,因此所述C设备发送追第一广播命令,命令的标识符跟存储的数据包相同,跳数为3跳,然后C设备将第一广播命令转发给G、I、F、A设备。G、I设备收到的C设备发送的第一广播命令中跳数为3跳,减一之后为2跳,由于G和I之前由于干扰没有收到广播包,因此G、I查找广播表没有发现有对应的表项,就会丢弃收到的第一广播命令,最后仍会造成H、K、L、N等设备收不到数据包M。
为了避免这种情况发生,本发明提供一个实施例四。
如图6所示为本发明广播方法实施例四流程图,包括:
步骤601、接收第一数据包;
步骤602、判断预先存储的广播表中是否存在与第一数据包的标识符相同的记录项,如果预先存储的广播表中不存在与第一数据包的标识符相同的记录项,则执行步骤603;否则,执行步骤604。
步骤603、确定接收到的第一数据包是新的数据包,在所述广播表中记录第一数据包的标识符,并且将第一数据包的跳数参数进行存储,再将第一数据包进行转发,结束。具体地,在设备自身存储的关于第一数据包的记录项中添加第一数据包的转发状态,例如,A设备有n个相邻目标设备,当收到来自一个相邻目标设备M转发的第一数据包时,就在A设备中关于第一数据包的记录项中标记第一数据包已被M设备收到,直到第一数据包的记录项中标记第一数据包已被所有n个相邻目标设备收到。如果在规定的时间内,A设备中第一数据包的转发状态中不是所有n个相邻目标设备都已收到第一数据包,则A设备需要重新向n个相邻目标设备转发第一数据包。A设备的n个相邻目标设备转发的第一数据包中携带的MAC层源地址不同,这样A设备就能获知是哪一个相邻目标设备转发的第一数据包。n个相邻目标设备转发的第一数据包的源地址是相同的,此处源地址是指网络层源地址。第一数据包在网络中被转发的过程中,数据包中的源地址是不变的,但是被不同的设备转发之后,数据包中就会携带不同设备的MAC层源地址。
步骤604、确定接收到的第一数据包是重复的数据包,将当前接收到的第一数据包能够被转发的次数与根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数相比较,如果当前接收到的第一数据包能够被转发的次数大于根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数,则执行步骤605;否则,执行步骤606。
步骤605、判断根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数是否为0,如果是,执行步骤607,否则,执行步骤608。
步骤606、丢弃当前接收到的第一数据包,结束。
步骤607、将之前存储的第一数据包的跳数参数更换为当前接收到的第一数据包的跳数参数,并将当前接收到的第一数据包进行转发,结束。
步骤608、判断是否所有相邻目标设备都已接收到第一数据包,如果是,则执行步骤609;否则,说明相邻目标设备中有的设备可能没有收到第一数据包,执行步骤610。具体地,设备可以判断自身存储的关于第一数据包的记录项中,第一数据包的转发状态是否标记为所有相邻目标设备均已收到。
步骤609、发送第一广播命令给相邻目标设备,第一广播命令中包括当前接收到的第一数据包的源地址、序列号和第一数据包经过当前设备后的剩余跳数。第一广播命令中的跳数,即是第一数据包经过当前设备后的剩余跳数,结束。
步骤610、将存储的广播表中第一数据包的跳数参数更换为当前接收到的第一数据包的跳数参数,将当前接收到的第一数据包的跳数减一后转发,结束。
第四实施例中,在判断目标设备所存储的关于第一数据包的记录项中,标记第一数据包已经被所有相邻目标设备都收到时,才发送第一广播命令给相邻目标设备,这样就避免了有的相邻目标设备没有收到第一数据包却收到了第一广播命令的情况产生,并且通过发送第一广播命令来代替第一数据包,能够减少网络中数据量的传输。
第一广播命令的格式可以如表一所示。
表一、本发明各实施例中涉及到的第一广播命令的格式
表一中,源地址占用两个字节,序列号占用一个字节,当前接收到的第一数据包中的跳数经过跳数处理之后的值占用一个字节,或者当前接收到的第一数据包中的跳数经过跳数处理之后的值可以放在帧头所在字段。表一中仅是给出第一广播命令的一个例子,第一广播命令还可以是其他的能够在网络中通过广播方式传输的命令格式。
如果是通过时间戳来唯一标识一个数据包,则在第一广播命令中需要携带当前接收到的第一数据包的时间戳和当前接收到的第一数据包中的跳数经过跳数处理之后的值。
如果是通过时间戳和源地址来唯一标识一个数据包,则在第一广播命令中需要携带当前接收到的第一数据包的时间戳、源地址和当前接收到的第一数据包中的跳数经过跳数处理之后的值。
在现有技术中,网络中的某个设备发送给相邻目标设备的数据包,如果没有被所有的相邻目标设备收到,则该设备会重新发送数据包,即进行数据包的重传。在本发明的各个实施例中,除了由于发送给相邻目标设备的数据包没有被所有相邻目标设备收到引起重传之外,对于重复收到的数据包,确定将重复收到的数据包进行转发后,当数据包能够被转发的次数大于根据之前存储的跳数参数确定的该数据包能够被转发的次数时,也会将重复收到的数据包进行转发,即进行数据包的重传。对重复收到的数据包进行重新转发时,可以只转发一次,例如,步骤207、507、607中,可以将第一数据包转发一次(转发一次是指转发第一数据包给所有相邻目标设备),即使有的相邻目标设备收不到,也不再重传。或者,对于重复收到的数据包,当数据包中的跳数参数大于之前存储的跳数参数时,将设备自身关于第一数据包的重传次数计数器清零,然后将重复收到的第一数据包进行转发。或者,对于重复收到的数据包,当数据包中的跳数参数大于之前存储的跳数参数时,将重复收到的第一数据包进行转发,直到重传次数达到最大值。
上述各个实施例中,将跳数参数进行存储的步骤是在对第一数据包的跳数进行跳数处理之后进行的,即所存储的跳数参数是当前接收到的第一数据包的跳数减一之后的值,如果将跳数参数进行存储的步骤是在对第一数据包进行跳数处理之前进行的,则所存储的跳数参数是当前接收到的第一数据包的跳数的值,步骤505和605中,判断根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数是否是0,具体可以是判断之前存储的第一数据包的跳数参数是否为1跳。
如果将跳数参数进行存储的步骤是在对第一数据包进行跳数处理之前进行的,并且对数据包的跳数进行加一操作,则所存储的跳数参数是当前接收到的第一数据包的跳数的值,步骤505和605中,判断根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数是否是0,具体可以是判断之前存储的第一数据包的跳数参数是否为最大允许跳数减一。
如果将跳数参数进行存储的步骤是在对第一数据包进行跳数处理之后进行的,并且对数据包的跳数进行加一操作,则所存储的跳数参数是当前接收到的第一数据包的跳数加一的值,步骤505和605中,判断根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数是否是0,具体可以是判断之前存储的第一数据包的跳数参数是否为最大允许跳数。
如图7所示为本发明广播方法实施例五流程图,该实施例五的步骤701-703与分别实施例四的步骤601-603相同。下面描述实施例五与实施例四存在不同之处的步骤。
步骤704、确定接收到的第一数据包是重复的数据包,判断当前接收到的第一数据包能够被转发的次数是否大于根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数,如果当前接收到的第一数据包的能够被转发的次数大于根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数,则执行步骤705;否则,执行步骤706。
步骤705、判断是否所有相邻目标设备都已接收到第一数据包,如果是,则执行步骤708;否则,说明相邻目标设备中有的设备可能没有收到第一数据包,执行步骤707。具体地,设备可以判断自身存储的关于第一数据包的记录项中,第一数据包的转发状态是否标记为所有相邻目标设备均已收到。
步骤706、丢弃当前接收到的第一数据包,结束。
步骤707、将存储的广播表中第一数据包的跳数参数更换为当前接收到的第一数据包的跳数参数,将当前接收到的第一数据包的跳数减一后转发,结束。
步骤708、发送第一广播命令给相邻目标设备,第一广播命令中包括当前接收到的第一数据包的源地址、序列号和第一数据包经过当前设备后的跳数(即当前接收到的第一数据包的跳数加一或减一之后的跳数)。第一广播命令中的跳数,即是第一数据包经过当前设备后的跳数,结束。
实施例五中,当前接收到的第一数据包的能够被转发的次数大于根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数时,判断是否所有相邻目标设备都已接收到第一数据包,而不是如同实施例四中那样需要确定根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数不为0之后,才判断是否所有相邻目标设备都已接收到第一数据包。因为一个设备即使自身没有发送过第一数据包给相邻设备,但是相邻设备有可能从其他设备中接收到第一数据包,如果一个设备接收到来自全部相邻设备转发的第一数据包之后,就可以确定所有相邻设备都收到了第一数据包,自身也就无需再重新转发第一数据包,而只需要发送第一广播命令即可。
网络当中的设备可以归属于某些预先设定的组,设备中有的设备可以是组播成员,有的设备是非组播成员。网络中的各设备可以记录自己所归属的组的标识。对于这种网络,当一个组播成员作为源设备,发起广播数据包时,广播的组播数据包当中除了带有跳数和数据包的标识符之外,还带有两个特有的用于组播的信息,一个称为最大组播成员跳数间隔,另一个称为非组播成员剩余跳数。另外,源设备发送的数据包当中还带有组的标识,因此接收设备能判断自己是否是组播组成员设备。
如图8所示为本发明广播方法实施例六流程图,实施例六中所示的方法适用于网络中的非组播组成员设备,包括:
步骤801、接收第一数据包或第一广播命令;
步骤802、如果当前接收到的第一数据包是重复的数据包,并且自身是非组播组成员设备,则比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数确定的第一数据包能够被转发的次数,如果当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数确定的第一数据包能够被转发的次数,丢弃当前接收到的第一数据包。
网络中的设备,当接收到一个数据包时,对于非组播剩余跳数的处理与数据包中跳数类似,也是将非组播成员剩余跳数进行加一或减一。所以与跳数参数类似,非组播成员剩余跳数参数可以是数据包中的非组播成员剩余跳数或者数据包中的非组播成员剩余跳数加一或减一之后的值。对于数据包中的最大组播成员跳数间隔,则不进行处理。
下面主要以对数据包中的跳数和非组播成员剩余跳数进行减一为例进行介绍。
如图9所示为本发明广播方法实施例七流程图,包括:
步骤901、接收第一数据包。
步骤902、判断当前接收到的第一数据包是否是重复的数据包,如果当前接收到的第一数据包不是重复的数据包,则执行步骤903;否则,执行步骤904。
步骤903、记录第一数据包的标识符,将第一数据包的跳数参数和非组播成员剩余跳数参数进行存储,并将第一数据包进行转发,结束。
步骤904、判断当前接收到的第一数据包能够被转发的次数是否大于根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,如果当前接收到的第一数据包能够被转发的次数大于根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,则执行步骤905;如果当前接收到的第一数据包能够被转发的次数小于或等于根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,则执行步骤906。
步骤905、将之前存储的第一数据包的跳数参数更换为当前接收到的第一数据包的跳数参数,将之前存储的第一数据包的非组播成员剩余跳数参数更换为当前接收到的第一数据包的非组播成员剩余跳数参数,并将当前接收到的第一数据包进行转发。
步骤906、丢弃当前接收到的第一数据包,结束。
步骤904中判断当前接收到的第一数据包能够被转发的次数是否大于根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,可以只根据跳数参数或非组播成员剩余跳数参数,或者同时根据跳数参数和非组播成员剩余跳数参数进行。
例如,根据当前接收到的第一数据包或第一广播命令中的跳数参数确定的第一数据包能够被转发的次数为A1,根据所述第一数据包或第一广播命令中的非组播成员剩余参数确定的第一数据包能够被转发的次数为B1,根据之前存储的第一数据包的跳数参数确定的第一数据包能够被转发的次数为A2,根据之前存储的非组播成员剩余跳数确定的第一数据包能够被转发的次数为B2。
如果A1大于A2,并且B1大于B2,则确定当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数确定的第一数据包能够被转发的次数;否则,确定当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数确定的第一数据包能够被转发的次数。
或者,如果A1大于A2,或者B1大于B2,则确定当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数确定的第一数据包能够被转发的次数;否则确定当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数确定的第一数据包能够被转发的次数。
如图10所示为本发明广播方法实施例八流程图,该实施例适用于网络中组播组成员设备,包括:
步骤1001、接收第一数据包或第一广播命令;
步骤1002、如果当前接收到的第一数据包是重复的数据包,并且自身是组播组成员设备,则将当前接收到的第一数据包或第一广播命令中的非组播剩余跳数的值更换成最大组播成员跳数间隔的值,比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,如果当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,丢弃当前接收到的第一数据包。
如图11所示为本发明实施例中涉及到的又一种网络结构,下面以图11所示的网络结构为例来介绍实施例七的实现过程。
图11中,A、D、E和F设备属于同一个组播组,B和C设备是非组播成员。组播组中的A设备发起组播过程,首先广播方式发送数据包M,其中跳数设置为3,最大组播成员跳数间隔和非组播成员剩余跳数设置为2。B设备收到组播数据包后把跳数减一变成2,由于B设备不是组播成员,因此把数据包M中非组播成员剩余跳数减一后变成1,然后转发数据包M。假设C设备由于干扰没有收到来自于A设备的数据包M,但收到了来自B设备转发的数据包M,于是C设备把跳数减一变成1,而数据包M中的非组播成员剩余跳数减一后变成0。这时C判断是否继续转发组播数据包,因为非组播成员剩余跳数变成0,所以C设备不再转发并丢弃当前接收到的数据包M,但C设备会在广播表当中记录收到的数据包M的记录项,并且记录数据包M的跳数参数(即数据包M的跳数减一之后的值)和非组播成员剩余跳数参数(即非组播成员剩余跳数减一之后的值)。这时A设备重新进行广播,C设备收到来自A设备广播的数据M包,把数据包M中的跳数减一变成2,将非组播成员剩余跳数减一变成1。如果按照现有技术,C认为收到的是重复数据包会将数据包M直接丢弃,但本发明实施例中,C设备需要比较当前接收到的数据包M能够被转发的次数与根据之前存储的数据包M的跳数参数和/或非组播成员剩余跳数参数确定的数据包M能够被转发的次数,C设备经过比较厚发现收到的重复数据包M的跳数参数和非组播成员剩余跳数参数分别大于之前存储的数据包M的跳数参数和非组播成员剩余跳数参数,因此C设备将存储的数据包M的跳数参数和非组播成员剩余跳数参数分别更新为2和1,即更换为当前接收到的数据包M的跳数参数和非组播成员剩余跳数参数的值,并且转发数据包M。这时D设备收到C设备广播的组播数据包当中跳数为2,非组播成员剩余跳数为1,由于D设备是组播组成员设备,因此D设备会更新数据包M当中的非组播成员剩余跳数为当前接收到的数据包M中的最大组播成员跳数间隔的值,即2,将非组播成员剩余跳数减一后变为1,而跳数减一变为1,经过判断,D设备可以确定当前接收到的数据包M能够被转发的次数大于根据之前存储的数据包M的跳数参数和/或非组播成员剩余跳数参数确定的数据包M能够被转发的次数,所以D设备继续转发数据包M到E设备和F设备。E设备和F设备收到数据包M之后,也会更新数据包M当中的非组播成员剩余跳数为当前接收到的数据包M中的最大组播成员跳数间隔的值,即2,然后将数据包M的非组播成员剩余跳数减一,然后再转发。最后所有组播组成员设备都能收到数据包M。
如图12所示为本发明广播方法实施例九流程图,包括:
步骤1201、接收第一数据包;
步骤1202、判断预先存储的广播表中是否存在与第一数据包的标识符相同的记录项,如果预先存储的广播表中不存在与第一数据包的标识符相同的记录项,则执行步骤1203;否则执行步骤1204。
步骤1203、确定第一数据包是新的数据包,在所述广播表中记录第一数据包的标识符,并且将第一数据包的跳数参数和非组播成员剩余跳数参数进行存储,再将第一数据包进行转发,结束。
步骤1204、确定第一数据包是重复的数据包,判断当前接收到的第一数据包能够被转发的次数是否大于根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,如果当前接收到的第一数据包能够被转发的次数大于根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,则执行步骤1205;如果当前接收到的第一数据包能够被转发的次数小于或等于根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,则执行步骤1206。
步骤1205、判断根据之前存储的第一数据包的跳数参数或非组播成员剩余参数确定的第一数据包能够被转发的次数是否为0,如果是,则说明之前收到的第一数据包没有被转发过,则执行步骤1207;否则,说明之前收到的第一数据包被转发过,执行步骤1208。
步骤1206、丢弃当前接收到的第一数据包,结束。
步骤1207、将之前存储的第一数据包的跳数参数和非组播成员剩余跳数参数分别更换为当前接收到的第一数据包的跳数参数和非组播成员剩余跳数参数,并将当前接收到的第一数据包进行转发,结束。
步骤1208、发送第一广播命令给相邻目标设备,所述第一广播命令中包括当前接收到的第一数据包的源地址、序列号和当前接收到的第一数据包中的跳数以及非组播成员剩余跳数经过跳数处理后的值。第一广播命令中的跳数和非组播成员剩余跳数分别是第一数据包中的跳数和非组播成员剩余跳数经过跳数减一之后的值。其他目标设备收到第一广播命令之后的处理方式与接收到数据包之后的处理方式类似。
如图13所示为本发明广播方法实施例十流程图,包括:
步骤1301、接收第一数据包;
步骤1302、判断预先存储的广播表中是否存在与第一数据包的标识符相同的记录项,如果预先存储的广播表中不存在与第一数据包的标识符相同的记录项,则执行步骤1303;否则,执行步骤1304。
步骤1303、确定接收到的第一数据包是新的数据包,在所述广播表中记录第一数据包的标识符,并且将第一数据包的跳数参数和非组播成员剩余跳数参数进行存储,再将第一数据包进行转发,结束。
步骤1304、确定接收到的第一数据包是重复的数据包,判断当前接收到的第一数据包能够被转发的次数是否大于根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,如果当前接收到的第一数据包能够被转发的次数大于根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,则执行步骤1305;如果当前接收到的第一数据包能够被转发的次数小于或等于根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,则执行步骤1306。
步骤1305、判断根据之前存储的第一数据包的跳数参数或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数是否为0,如果是,执行步骤1307,否则,执行步骤1308。
步骤1306、丢弃当前接收到的第一数据包,结束。
步骤1307、将之前存储的第一数据包的跳数参数和非组播成员剩余跳数参数分别更换为当前接收到的第一数据包的跳数参数和非组播成员剩余跳数参数,并将当前接收到的第一数据包进行转发,结束。
步骤1308、判断是否所有相邻目标设备都已接收到第一数据包,如果是,则执行步骤1309;否则,说明相邻目标设备中有的设备可能没有收到第一数据包,执行步骤1310。具体地,设备可以判断自身存储的关于第一数据包的记录项中,第一数据包的转发状态是否标记为所有相邻目标设备均已收到。
步骤1309、发送第一广播命令给相邻目标设备,第一广播命令中包括当前接收到的第一数据包的源地址、序列号和第一数据包经过当前设备后的剩余跳数以及非组播成员剩余跳数经过跳数处理后的值,结束。
步骤1310、将存储的广播表中第一数据包的跳数参数和非组播成员剩余跳数参数更换为当前接收到的第一数据包的跳数参数和非组播成员剩余跳数参数,将当前接收到的第一数据包的跳数减一并且非组播成员剩余跳数减一后转发,结束。
如图14所示为本发明广播方法实施例十一流程图,实施例十一与实施例十相比,步骤1401-步骤1403均分别与步骤1301-1303相同,存在区别之处的步骤包括:
步骤1404、确定接收到的第一数据包是重复的数据包,判断当前接收到的第一数据包能够被转发的次数是否大于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,如果当前接收到的第一数据包的能够被转发的次数大于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,则执行步骤1405;否则,执行步骤1406。
步骤1405、判断是否所有相邻目标设备都已接收到第一数据包,如果是,则执行步骤1406;否则,说明相邻目标设备中有的设备可能没有收到第一数据包,执行步骤1407。具体地,设备可以判断自身存储的关于第一数据包的记录项中,第一数据包的转发状态是否标记为所有相邻目标设备均已收到。
步骤1406、丢弃当前接收到的第一数据包。
步骤1407、将存储的广播表中第一数据包的跳数参数更换为当前接收到的第一数据包的跳数参数,将第一数据包中的非组播成员剩余跳数参数更换为当前接收到的第一数据包的非组播成员剩余跳数参数,将当前接收到的第一数据包的跳数减一,并将第一数据包的非组播成员剩余跳数减一后转发,结束。
步骤1408、发送第一广播命令给相邻目标设备,结束。
网络中的有的设备能够接收并识别第一广播命令中的源地址、序列号和跳数,但是不能转发第一广播命令。对于这种设备,如果按照前述各实施例的方法,需要转发或发送第一广播命令时,即发送或转发与第一广播命令中的标识符相同的数据包本身,发送或转发的数据包中的跳数为第一广播命令的跳数。
在实际应用中,网络中可能有的设备支持本发明实施例提供的方法中对于数据包的处理,有的设备不支持,对于支持本发明实施例提供的方法中对于数据包的处理的设备,在收到不支持本发明实施例中相关数据包处理的设备发送过来的数据包时,同样可以按照以上各实施例中所提供的方法进行。
前述各实施例中主要描述网络中的设备在接收到数据包时的处理方法,对于网络中主动发起并发生数据包的源设备,在发送数据包时,可以记录数据包的标识符和跳数参数。源设备在收到一个数据包之后,查找自身的广播表中存储的关于已发送的数据包的记录项,如果查找到与自身发送的数据包的标识符相同的记录项,则标记一个相邻目标设备收到源设备发送的数据包。如果在规定的时间内,有的相邻目标设备没有收到源设备发送的数据包则源设备会重新发起并发送数据包。
设备在接收到第一广播命令之后的处理方法与接收到数据包之后的处理方法类似,此处不再赘述。
如图15所示为本发明广播网络中的设备实施例一结构示意图,该设备包括接收模块11、第一判断模块12、第一比较模块13和第一数据处理模块14,第一判断模块12分别与接收模块11和第一比较模块13比较,第一数据处理模块14与第一比较模块13连接。该设备的工作原理为:接收模块11接收第一数据包或第一广播命令,第一判断模块12判断接收模块11当前接收到的第一数据包是否是重复的数据包,当第一判断模块确定当前接收到的第一数据包是重复的数据包时,第一比较模块13比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数确定的该第一数据包能够被转发的次数,如果第一比较模块13比较的结果为当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数,则第一数据处理模块14丢弃当前接收到的第一数据包或第一广播命令。
如图15所示的设备还可以包括一个第一存储模块,用于当当前接收到的第一数据包不是重复的数据包时,存储当前接收到的第一数据包携带的标识符和跳数参数,并用于存储之前接收到的第一数据包的标识符和跳数参数。
图15中第一判断模块12具体用于根据接收模块11当前接收到的第一数据包或第一广播命令携带的的标识符,判断当前接收到的第一数据包是否是重复的数据包,标识符由数据包的源地址和序列号组成,或者所述标识符为数据包的时间戳,或所述标识符由数据包的时间戳和源地址组成。
如果当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数,则第一数据处理模块14更换第一存储模块中之前存储的第一数据包的跳数参数为当前接收到的第一数据包或第一广播命令的跳数参数,转发当前接收到的第一数据包或发送所述第一广播命令。
第一数据处理模块14可以包括第一数据处理子单元和第二数据处理子单元(图15中未示出),第一数据子单元判断根据第一存储模块之前存储的跳数参数确定的所述第一数据包的能够被转发的次数是否为0;如果根据第一存储模块之前存储的跳数参数确定的所述第一数据包的能够被转发的次数为0,转发当前接收到的第一数据包;如果根据第一存储模块之前存储的跳数参数确定的所述第一数据包的能够被转发的次数不为0,发送第一广播命令。
第二数据处理子单元判断相邻设备是否全部接收到所述第一数据包或第一广播命令;如果相邻设备全部接收到所述第一数据包或第一广播命令,发送第一广播命令;如果相邻设备没有全部接收到所述第一数据包或第一广播命令,发送当前接收到的第一数据包。
如图16所示为本发明广播网络中的设备实施例二结构示意图,该设备包括接收模块11、第一判断模块12、第二比较模块15和第二数据处理模块16,第一判断模块12分别与接收模块11和第二比较模块15连接,第二数据处理模块16和第二比较模块15连接。该设备的工作原理为:接收模块11接收第一数据包或第一广播命令,第一判断模块12判断接收模块11当前接收到的第一数据包是否是重复的数据包,如果第一判断模块确定接收模块11当前接收到的第一数据包是重复的数据包,则第二比较模块15比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,如果第二比较模块15的比较结果为当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,则第二数据处理模块16丢弃当前接收到的第一数据包。
如图17所示为本发明广播网络中的设备实施例三结构示意图,该设备在图16所示设备的基础上还包括第二判断模块17和第二存储模块18。第二判断模块17用于根据接收模块11当前接收到的第一数据包中携带的组播组标识判断自身是否是组播组成员设备;如果图17所示的设备自身是组播组成员设备,则第二数据处理模块16在第二比较模块15比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数之前,将当前接收到的第一数据包或第一广播命令中的非组播剩余跳数的值更换成最大组播成员跳数间隔的值。在将当前接收到的第一数据包或第一广播命令中的非组播剩余跳数的值更换成最大组播成员跳数间隔的值后,第二比较模块15可以参照前文对图11所示的网络架构中D设备进行的方法进行比较,此处不再赘述。如果图17所示的设备自身不是组播组成员设备,则第二比较模块15可以直接比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数;当当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数时,第二数据处理模块16丢弃当前接收到的第一数据包。
第二存储模块18用于当当前接收到的第一数据包不是重复的数据包时,存储当前接收到的第一数据包携带的标识符、跳数参数和非组播成员剩余跳数参数,并存储之前接收到的第一数据包的标识符、跳数参数和非组播成员剩余跳数参数。
第二比较模块15比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数具体为:根据当前接收到的第一数据包或第一广播命令中的跳数参数确定第一数据包能够被转发的次数A1,根据所述第一数据包或第一广播命令中的非组播成员剩余跳数参数确定第一数据包能够被转发的次数B1,根据之前存储的第一数据包的跳数参数确定第一数据包能够被转发的次数A2,根据之前存储的非组播成员剩余跳数参数确定第一数据包能够被转发的次数B2;如果A1大于A2,并且B1大于B2,则确定当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数;或者如果A1大于A2,或者B1大于B2,则确定当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数。
当第二比较模块15的比较结果为当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数时,第二数据处理模块16更换第二存储模块18之前存储的第一数据包的跳数参数为当前接收到的第一数据包或第一广播命令的跳数参数,更换第二存储模块18之前存储的第一数据包的非组播成员剩余跳数参数为当前接收到的第一数据包或第一广播命令的非组播成员剩余跳数参数,转发当前接收到的第一数据包或发送所述第一广播命令。
第二数据处理模块16可以包括第三数据处理子单元和第四数据处理子单元(图17中未示出),第三数据处理子单元判断根据第二存储模块18之前存储的跳数参数和/或非组播成员剩余跳数参数确定的所述第一数据包的能够被转发的次数是否为0;如果根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的所述第一数据包的能够被转发的次数为0,转发当前接收到的第一数据包;如果根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的所述第一数据包的能够被转发的次数不为0,发送第一广播命令。
第四数据处理子单元判断相邻设备是否全部接收到所述第一数据包或第一广播命令;如果相邻设备全部接收到所述第一数据包或第一广播命令,第二数据处理模块16发送第一广播命令;如果相邻设备没有全部接收到所述第一数据包或第一广播命令,第二数据处理模块16发送当前接收到的第一数据包。
本发明实施例中提供的方法及设备,对于重复收到的数据包不是直接丢弃,而是需要进一步判断当前接收到的数据包能够被转发的次数与根据之前存储的该数据包的跳数参数,或者根据之前存储的该数据包的非组播成员剩余跳数参数确定的该数据包能够被转发的次数,如果当前接收到的数据包能够被转发的次数大于根据之前存储的跳数参数或非组播成员剩余跳数参数确定的该数据包能够被转发的次数,则需要将该数据包转发,或发送第一广播命令给相邻设备,这样可以提高广播方式发送数据包的可靠性,避免了有的广播网络中某些设备收不到数据包的情况。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
Claims (25)
1.一种广播方法,其特征在于,包括:
接收第一数据包或第一广播命令;
如果当前接收到的第一数据包是重复的数据包,比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数,如果当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数,丢弃当前接收到的第一数据包或第一广播命令。
2.根据权利要求1所述的广播方法,其特征在于,还包括,如果当前接收到的第一数据包不是重复的数据包,存储当前接收到的第一数据包携带的标识符和跳数参数。
3.根据权利要求1或2所述的广播方法,其特征在于,还包括,根据当前接收到的第一数据包或第一广播命令携带的的标识符,判断当前接收到的第一数据包是否是重复的数据包,所述标识符由数据包的源地址和序列号组成,或者所述标识符为数据包的时间戳,或所述标识符由数据包的时间戳和源地址组成。
4.根据权利要求1或2所述的广播方法,其特征在于,还包括:如果当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数,更换之前存储的第一数据包的跳数参数为当前接收到的第一数据包或第一广播命令的跳数参数,转发当前接收到的第一数据包或发送所述第一广播命令。
5.根据权利要求4所述的广播方法,其特征在于,所述转发当前接收到的第一数据包或发送所述第一广播命令具体为:
判断根据之前存储的跳数参数确定的所述第一数据包的能够被转发的次数是否为0;
如果根据之前存储的跳数参数确定的所述第一数据包的能够被转发的次数为0,转发当前接收到的第一数据包;
如果根据之前存储的跳数参数确定的所述第一数据包的能够被转发的次数不为0,发送第一广播命令。
6.根据权利要求4所述的广播方法,其特征在于,所述转发当前接收到的第一数据包或发送所述第一广播命令具体为:
判断相邻设备是否全部接收到所述第一数据包或第一广播命令;
如果相邻设备全部接收到所述第一数据包或第一广播命令,发送第一广播命令;
如果相邻设备没有全部接收到所述第一数据包或第一广播命令,转发当前接收到的第一数据包。
7.根据权利要求6所述的广播方法,其特征在于,判断相邻设备是否全部接收到所述第一数据包或第一广播命令具体为:判断是否接收到了来自全部相邻设备发送的第一数据包或第一广播命令。
8.根据权利要求1或5或6中任一权利要求所述的广播方法,其特征在于,所述第一广播命令包括第一数据包的标识符、字节长度以及所述第一数据包的跳数经过跳数处理后的值。
9.一种广播方法,其特征在于,包括:
接收第一数据包或第一广播命令;
如果当前接收到的第一数据包是重复的数据包,则比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,如果当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,丢弃当前接收到的第一数据包。
10.根据权利要求9所述的广播方法,其特征在于,如果自身是组播组成员设备,则在比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数之前,还包括将当前接收到的第一数据包或第一广播命令中的非组播剩余跳数的值更换成最大组播成员跳数间隔的值。
11.根据权利要求9或10所述的广播方法,其特征在于,所述第一数据包中携带有发送所述第一数据包的源设备所属的组播组标识;
还包括根据所述第一数据包中的组播组标识判断自身是否是组播组成员设备。
12.根据权利要求11所述的广播方法,其特征在于,比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数具体包括:
根据当前接收到的第一数据包或第一广播命令中的跳数参数确定第一数据包能够被转发的次数A1,根据所述第一数据包或第一广播命令中的非组播成员剩余跳数参数确定第一数据包能够被转发的次数B1,根据之前存储的第一数据包的跳数参数确定第一数据包能够被转发的次数A2,根据之前存储的非组播成员剩余跳数参数确定第一数据包能够被转发的次数B2;
如果A1大于A2,并且B1大于B2,则确定当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数;或者
如果A1大于A2,或者B1大于B2,则确定当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数。
13.根据权利要求12所述的广播方法,其特征在于,还包括,如果当前接收到的第一数据包不是重复的数据包,存储当前接收到的第一数据包携带的标识符、跳数参数和非组播成员剩余跳数参数。
14.根据权利要求9或10所述的广播方法,其特征在于,如果当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数,更换之前存储的第一数据包的跳数参数为当前接收到的第一数据包或第一广播命令的跳数参数,更换之前存储的第一数据包的非组播成员剩余跳数参数为当前接收到的第一数据包或第一广播命令的非组播成员剩余跳数参数,转发当前接收到的第一数据包或发送所述第一广播命令。
15.根据权利要求14所述的广播方法,其特征在于,所述转发当前接收到的第一数据包或发送所述第一广播命令具体为:
判断根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的所述第一数据包的能够被转发的次数是否为0;
如果根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的所述第一数据包的能够被转发的次数为0,转发当前接收到的第一数据包;
如果根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的所述第一数据包的能够被转发的次数不为0,发送第一广播命令。
16.根据权利要求14所述的广播方法,其特征在于,所述转发当前接收到的第一数据包或所述第一广播命令具体为:
判断相邻设备是否全部接收到所述第一数据包或第一广播命令;
如果相邻设备全部接收到所述第一数据包或第一广播命令,发送第一广播命令;
如果相邻设备没有全部接收到所述第一数据包或第一广播命令,转发当前接收到的第一数据包。
17.一种通信设备,其特征在于,包括:
接收模块,用于接收第一数据包或第一广播命令;
第一判断模块,用于判断当前接收到的第一数据包是否是重复的数据包;
第一比较模块,用于当所述第一判断模块确定当前接收到的数据包是重复的数据包时,比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数;
第一数据处理模块,用于当当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数时,丢弃当前接收到的第一数据包或第一广播命令。
18.根据权利要求17所述的设备,其特征在于,还包括:第一存储模块,用于当当前接收到的第一数据包不是重复的数据包时,存储当前接收到的第一数据包携带的标识符和跳数参数,并用于存储之前接收到的第一数据包的标识符和跳数参数。
19.根据权利要求18所述的设备,其特征在于,所述第一数据处理模块还用于当当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数,更换所述第一存储模块中之前存储的第一数据包的跳数参数为当前接收到的第一数据包或第一广播命令的跳数参数,转发当前接收到的第一数据包或发送所述第一广播命令。
20.根据权利要求19所述的设备,其特征在于,所述第一数据处理模块包括:第一数据处理子单元和第二数据处理子单元;
所述第一数据处理子单元,用于当根据所述第一存储模块之前存储的跳数参数确定的所述第一数据包的能够被转发的次数为0或当相邻设备没有全部接收到所述第一数据包或第一广播命令,转发当前接收到的第一数据包;
所述第二数据处理子单元,用于当根据所述第一存储模块之前存储的跳数参数确定的所述第一数据包的能够被转发的次数不为0或者当相邻设备全部接收到所述第一数据包或第一广播命令时,发送第一广播命令。
21.一种通信设备,其特征在于,包括:
接收模块,用于接收第一数据包或第一广播命令;
第一判断模块,用于判断当前接收到的第一数据包是否是重复的数据包;
第二比较模块,用于当所述判断模块确定当前接收到的数据包是重复的数据包时,比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数;
第二数据处理模块,用于当当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数时,丢弃当前接收到的第一数据包。
22.根据权利要求21所述的设备,其特征在于,还包括:第二判断模块,用于根据所述第一数据包中携带的组播组标识判断自身是否是组播组成员设备;
所述第二数据处理模块还用于当所述的通信设备是组播组成员设备时,在所述第二比较模块比较当前接收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数和/或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数之前,将当前接收到的第一数据包或第一广播命令中的非组播剩余跳数的值更换成最大组播成员跳数间隔的值。
23.根据权利要求22所述的设备,其特征在于,还包括第二存储模块,用于当当前接收到的第一数据包不是重复的数据包时,存储当前接收到的第一数据包携带的标识符、跳数参数和非组播成员剩余跳数参数,并存储之前接收到的第一数据包的标识符、跳数参数和非组播成员剩余跳数参数。
24.根据权利要求23所述的设备,其特征在于,所述第二数据处理模块还用于当当前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数时,更换所述第二存储模块之前存储的第一数据包的跳数参数为当前接收到的第一数据包或第一广播命令的跳数参数,更换所述第二存储模块之前存储的第一数据包的非组播成员剩余跳数参数为当前接收到的第一数据包或第一广播命令的非组播成员剩余跳数参数,转发当前接收到的第一数据包或发送所述第一广播命令。
25.根据权利要求24所述的设备,其特征在于,所述第二数据处理模块具体包括:第三数据处理子单元和第四数据处理子单元;
所述第三数据处理子单元,用于当根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的所述第一数据包的能够被转发的次数为0或者当相邻设备没有全部接收到所述第一数据包或第一广播命令,转发当前接收到的第一数据包;
第四数据处理子单元,用于当根据之前存储的跳数参数和/或非组播成员剩余跳数参数确定的所述第一数据包的能够被转发的次数不为0或者相邻设备全部接收到所述第一数据包或第一广播命令,发送第一广播命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310257067.9A CN103401692B (zh) | 2009-04-02 | 2009-04-02 | 广播方法及通信设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310257067.9A CN103401692B (zh) | 2009-04-02 | 2009-04-02 | 广播方法及通信设备 |
CN2009801582505A CN102369682B (zh) | 2009-04-02 | 2009-04-02 | 广播方法及通信设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801582505A Division CN102369682B (zh) | 2009-04-02 | 2009-04-02 | 广播方法及通信设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103401692A true CN103401692A (zh) | 2013-11-20 |
CN103401692B CN103401692B (zh) | 2017-07-07 |
Family
ID=49565223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310257067.9A Active CN103401692B (zh) | 2009-04-02 | 2009-04-02 | 广播方法及通信设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103401692B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104883669A (zh) * | 2015-06-04 | 2015-09-02 | 中国石油天然气集团公司 | 一种数据处理装置、基站以及通讯系统 |
CN105491508A (zh) * | 2015-06-30 | 2016-04-13 | 汤羽 | 基于蓝牙技术的手机自组通信网络CellNet的组网和路由算法 |
CN106341774A (zh) * | 2015-07-10 | 2017-01-18 | 华为技术有限公司 | 一种数据传输方法、网络设备及用户设备 |
WO2017132946A1 (zh) * | 2016-02-04 | 2017-08-10 | 华为技术有限公司 | 数据传输方法及装置 |
CN107395523A (zh) * | 2016-05-16 | 2017-11-24 | 智邦科技股份有限公司 | 控制方法及网络架构 |
WO2018054043A1 (zh) * | 2016-09-26 | 2018-03-29 | 珠海格力电器股份有限公司 | 一种在蓝牙ble组网中转发广播包的方法及系统 |
WO2018233646A1 (zh) * | 2017-06-21 | 2018-12-27 | 华为技术有限公司 | 唤醒方法、接入点和站点 |
CN109981486A (zh) * | 2017-12-27 | 2019-07-05 | 北京华为数字技术有限公司 | 一种报文的转发方法以及转发装置 |
CN110913349A (zh) * | 2019-11-19 | 2020-03-24 | 成都亿佰特电子科技有限公司 | 一种基于ble广播技术的数据采集方法及系统 |
CN113453302A (zh) * | 2021-08-31 | 2021-09-28 | 伏诺瓦(天津)科技有限公司 | 自组网的电力无线LoRa通信方法、装置、系统及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100340087C (zh) * | 2003-12-10 | 2007-09-26 | 联想(北京)有限公司 | 无线网格内实现无线设备间智能组网的方法 |
JP4571666B2 (ja) * | 2004-04-05 | 2010-10-27 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 無線マルチホップアドホックネットワークにおけるアドレス解決マッピングのための方法、通信デバイスおよびシステム |
CN1996804A (zh) * | 2006-01-04 | 2007-07-11 | 株式会社Ntt都科摩 | 无线移动网络中的广播方法和装置 |
-
2009
- 2009-04-02 CN CN201310257067.9A patent/CN103401692B/zh active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104883669A (zh) * | 2015-06-04 | 2015-09-02 | 中国石油天然气集团公司 | 一种数据处理装置、基站以及通讯系统 |
CN105491508A (zh) * | 2015-06-30 | 2016-04-13 | 汤羽 | 基于蓝牙技术的手机自组通信网络CellNet的组网和路由算法 |
CN106341774A (zh) * | 2015-07-10 | 2017-01-18 | 华为技术有限公司 | 一种数据传输方法、网络设备及用户设备 |
WO2017008586A1 (zh) * | 2015-07-10 | 2017-01-19 | 华为技术有限公司 | 一种数据传输方法、网络设备及用户设备 |
WO2017132946A1 (zh) * | 2016-02-04 | 2017-08-10 | 华为技术有限公司 | 数据传输方法及装置 |
CN107395523B (zh) * | 2016-05-16 | 2021-04-13 | 智邦科技股份有限公司 | 控制方法及网络架构 |
CN107395523A (zh) * | 2016-05-16 | 2017-11-24 | 智邦科技股份有限公司 | 控制方法及网络架构 |
WO2018054043A1 (zh) * | 2016-09-26 | 2018-03-29 | 珠海格力电器股份有限公司 | 一种在蓝牙ble组网中转发广播包的方法及系统 |
WO2018233646A1 (zh) * | 2017-06-21 | 2018-12-27 | 华为技术有限公司 | 唤醒方法、接入点和站点 |
CN109981486A (zh) * | 2017-12-27 | 2019-07-05 | 北京华为数字技术有限公司 | 一种报文的转发方法以及转发装置 |
CN110913349A (zh) * | 2019-11-19 | 2020-03-24 | 成都亿佰特电子科技有限公司 | 一种基于ble广播技术的数据采集方法及系统 |
CN110913349B (zh) * | 2019-11-19 | 2021-07-27 | 成都亿佰特电子科技有限公司 | 一种基于ble广播技术的数据采集方法及系统 |
CN113453302A (zh) * | 2021-08-31 | 2021-09-28 | 伏诺瓦(天津)科技有限公司 | 自组网的电力无线LoRa通信方法、装置、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103401692B (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103401692A (zh) | 广播方法及通信设备 | |
US9716992B2 (en) | Neighbor aware network logical channels | |
US7440424B2 (en) | Apparatus and method for detecting duplicate IP addresses in mobile ad hoc network environment | |
CN102369682B (zh) | 广播方法及通信设备 | |
US8406227B2 (en) | Hybrid wired and wireless communication system and a communication method thereof | |
EP2026534A1 (en) | Radio communication device | |
US10856228B1 (en) | Systems and methods for transmitting a wake-up request frame to lower power devices in a wireless network | |
CN1159686A (zh) | 电子设备及其遥控方法和装置 | |
CN1929497B (zh) | 一种获取移动节点家乡代理信息的方法和系统 | |
JP2007116639A (ja) | 移動局、無線アクセスネットワーク装置および移動通信システム並びに報知情報送受信方法 | |
US9473961B2 (en) | Method and apparatus for handling address conflict | |
RU2008130067A (ru) | Способы и устройство связи для использования одной логической линии связи с многочисленными соединениями физического уровня | |
US20080013503A1 (en) | Bluetooth master with improved transmitting efficiency and method of transmitting data using the same | |
CN104412518B (zh) | 用于无线网络中上行链路传输的系统和方法 | |
US8228845B2 (en) | Sensor node of low power for monitoring application in mesh sensor network using time division access scheme, and routing method thereof | |
CN103002550A (zh) | 一种控制站点进行睡眠状态的方法及站点 | |
US20080075005A1 (en) | Data transmission method indicating data pending in zigbee network | |
EP2323431A1 (en) | Radio communication system, device, method and program for finding a slave unit without making a connection to the master | |
JP2022020452A (ja) | 通信システム、ノード、通信方法及びプログラム | |
US8755320B2 (en) | Identification of MBMS service from a central node to UMTS LTE eNBs | |
CN101371581B (zh) | 用于无线通信设备中的数字视频广播的预览服务管理 | |
CN101989896B (zh) | 一种arq连接的反馈方法及装置 | |
CN101304299B (zh) | 在逻辑链路控制层的数据传输中提高对称性的方法 | |
US8275849B2 (en) | Wireless network and method for sharing flexible data between a master and slaves in real time | |
CN109496402A (zh) | 标识更新方法、装置、设备、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |