WO2010111837A1 - 广播方法及通信设备 - Google Patents

广播方法及通信设备 Download PDF

Info

Publication number
WO2010111837A1
WO2010111837A1 PCT/CN2009/071145 CN2009071145W WO2010111837A1 WO 2010111837 A1 WO2010111837 A1 WO 2010111837A1 CN 2009071145 W CN2009071145 W CN 2009071145W WO 2010111837 A1 WO2010111837 A1 WO 2010111837A1
Authority
WO
WIPO (PCT)
Prior art keywords
data packet
hop count
forwarded
count parameter
currently received
Prior art date
Application number
PCT/CN2009/071145
Other languages
English (en)
French (fr)
Inventor
刘永俊
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PT98424948T priority Critical patent/PT2416513E/pt
Priority to PCT/CN2009/071145 priority patent/WO2010111837A1/zh
Priority to CN2009801582505A priority patent/CN102369682B/zh
Priority to ES09842494T priority patent/ES2426956T3/es
Priority to EP09842494.8A priority patent/EP2416513B1/en
Publication of WO2010111837A1 publication Critical patent/WO2010111837A1/zh
Priority to US13/250,069 priority patent/US9306704B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/126Shortest path evaluation minimising geographical or physical path length
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/127Shortest path evaluation based on intermediate node capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/46Cluster building
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/17Interaction among intermediate nodes, e.g. hop by hop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/023Limited or focused flooding to selected areas of a network

Definitions

  • a first determining module configured to determine whether the currently received first data packet is a duplicate data packet
  • a first comparing module configured to: when the first determining module determines that the currently received data packet is a duplicate data packet, Comparing the number of times the currently received first data packet or the first broadcast command can be forwarded and the number of times the first data packet can be forwarded according to the previously stored hop count parameter of the first data packet;
  • the C device when the C device receives the duplicate data packet M forwarded by the A device, it determines that the data packet M can be forwarded for a greater number of times than the data determined according to the hop count parameter of the previously stored data packet M. The number of times the packet M can be forwarded. Specifically, it can be judged that the value after the hop count of the data packet M is reduced by one (that is, the hop count parameter of the current data packet M) is larger than the hop recorded in the record item of the data packet M in the broadcast table.
  • the record in the broadcast table that is stored in itself is not found in the broadcast table that is the same as the identifier in the additional broadcast command, that is, before The target device has not received the same data packet as the identifier in the first broadcast command, so that the device cannot forward the corresponding data packet even after receiving the first broadcast command.
  • the first broadcast command needs to carry the timestamp of the currently received first data packet and the hop count in the currently received first data packet after the hop count processing Value.
  • the first broadcast command needs to carry the timestamp of the currently received first data packet, the source address, and the hop in the currently received first data packet. The number after the hop count processing.
  • the following mainly introduces the hop count in the data packet and the remaining hop count of the non-multicast member as an example.
  • Step 1001 Receive a first data packet or a first broadcast command.
  • FIG. 11 Another network structure involved in the embodiment of the present invention is shown in FIG. 11. The following describes the implementation process of the seventh embodiment by taking the network structure shown in FIG. 11 as an example.
  • Step 1201 Receive a first data packet.
  • FIG. 13 is a flowchart of Embodiment 10 of a broadcast method according to the present invention, including:
  • Step 1406 Discard the first received data packet.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)

Description

广播方法及通信设备 技术领域
本发明涉及通信技术, 尤其涉及一种广播方法及通信设备。 背景技术
广播是一种重要的网絡数据发送方式, 由一个源设备发送数据包给多个 目标设备, 是一种一对多的发送。 在某些情况下一个源设备发送数据包给部 分相邻设备, 比如广播到所有路由器设备, 而非路由器的相邻设备可能会丟 弃收到的广播数据包, 在另外一些情况下一个源设备发送数据包给所有相邻 设备, 也就是说源设备发送的数据包的目标设备, 在某些情况下是网絡中的 部分设备, 在另外一些情况下是网絡中的所有设备。 通常一个源设备通过广 播方式发送数据包给所有的相邻目标设备。 所有收到数据包的相邻目标设备 将数据包转发给自身的相邻目标设备, 如此一直到所有的目标设备都收到数 据包。
ZigBee是一种低速率的短距离无线通信技术, 在 ZigBee标准中提出了 一种可靠广播的方法。 ZigBee标准中广播方法实现过程为: 通信网絡中的每 个设备都存储一个广播表, 广播表中包括多条记录项, 记录项用于记录发起 的或收到的广播数据包的标识符。 标识符唯一标识一个数据包。 设备收到数 据包之后,查找广播表中是否存在与接收到的数据包的标识符相同的记录项, 如果存在, 则判断接收到的数据包为重复收到的包, 将该数据包丟弃。 否则 判断接收到的数据包为新接收到的包, 将新接收到的包进行转发。 标识一个 数据包的方法有很多种, 比如可以使用源地址和时戳来标识一个数据包, 或 者只使用时戳来标识一个数据包, 或者可以使用源地址和序列号来标识一个 数据包。
如果网絡中每个目标设备都转发接收到的数据包, 则同一数据包会重复 被转发, 造成网絡带宽极大的消耗, 影响正常的网絡通信。 在 ZigBee标准的 广播方法中, 为了减小由于数据包重复发送造成的网絡带宽消耗, 对于数据 包的转发范围进行了限制。
本申请的发明人发现: 上述增加跳数限制的广播方法, 虽然减少网絡带 宽的消耗, 但是该广播方法的可靠性存在问题, 从而会导致网絡中某些设备 收不到源设备发起并发送的数据包。 发明内容
本发明实施例针对现有技术中存在的问题, 提供一种广播方法及通信设 备, 能够提高广播的可靠性。
本发明实施例提供了一种广播方法, 包括:
接收第一数据包或第一广播命令;
如果当前接收到的第一数据包是重复的数据包, 比较当前接收到的第一 数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳 数参数确定的所述第一数据包能够被转发的次数, 如果当前接收到的第一数 据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据 包的跳数参数确定的所述第一数据包能够被转发的次数, 丟弃当前接收到的 第一数据包或第一广播命令。
本发明实施例还提供了一种广播方法, 包括:
接收第一数据包或第一广播命令;
如果当前接收到的第一数据包是重复的数据包, 则比较当前接收到的第 一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的 跳数参数和 /或非组播成员剩余跳数参数确定的第一数据包能够被转发的次 数, 如果当前接收到的第一数据包或第一广播命令能够被转发的次数小于或 等于根据之前存储的第一数据包的跳数参数和 I或非组播成员剩余跳数参数 确定的第一数据包能够被转发的次数, 丟弃当前接收到的第一数据包。
本发明实施例还提供了一种通信设备, 包括: 接收模块, 用于接收第一数据包或第一广播命令;
第一判断模块,用于判断当前接收到的第一数据包是否是重复的数据包; 第一比较模块, 用于当所述第一判断模块确定当前接收到的数据包是重 复的数据包时, 比较当前接收到的第一数据包或第一广播命令能够被转发的 次数和根据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被 转发的次数;
第一数据处理模块, 用于当当前接收到的第一数据包或第一广播命令能 够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数确定的所 述第一数据包能够被转发的次数时, 丟弃当前接收到的第一数据包或第一广 播命令。
本发明实施例还提供了一种通信设备, 包括:
接收模块, 用于接收第一数据包或第一广播命令;
第一判断模块,用于判断当前接收到的第一数据包是否是重复的数据包; 第二比较模块, 用于当所述判断模块确定当前接收到的数据包是重复的 数据包时, 比较当前接收到的第一数据包或第一广播命令能够被转发的次数 和根据之前存储的第一数据包的跳数参数和 /或非组播成员剩余跳数参数确 定的第一数据包能够被转发的次数;
第二数据处理模块, 用于当当前接收到的第一数据包或第一广播命令能 够被转发的次数小于或等于根据之前存储的第一数据包的跳数参数和 /或非 组播成员剩余跳数参数确定的第一数据包能够被转发的次数时, 丟弃当前接 收到的第一数据包。
本发明实施例中, 设备在收到重复数据包之后, 进一步比较第一数据包 能够被转发的次数和根据之前存储的跳数参数或非组播成员剩余跳数参数确 定的第一数据包能够被转发的次数, 根据判断结果来进一步确定是要丟弃数 据包还是继续将数据包进行转发, 提高了广播方式发送数据包的可靠性。 附图说明 图 1所示为本发明广播方法实施例一流程图;
图 2所示为本发明广播方法实施例二流程图;
图 3所示为本发明实施例中涉及到的一种网絡结构;
图 4所示为本发明实施例中涉及到的另一种网絡结构;
图 5所示为本发明广播方法实施例三流程图;
图 6所示为本发明广播方法实施例四流程图;
图 7所示为本发明广播方法实施例五流程图;
图 8所示为本发明广播方法实施例六流程图;
图 9所示为本发明广播方法实施例七流程图;
图 10所示为本发明广播方法实施例八流程图;
图 11所示为本发明实施例中涉及到的又一种网絡结构;
图 12所示为本发明广播方法实施例九流程图;
图 1 3所示为本发明广播方法实施例十流程图;
图 14所示为本发明广播方法实施例十一流程图;
图 15所示为本发明通信设备实施例一结构示意图;
图 16所示为本发明通信设备实施例二结构示意图;
图 17所示为本发明通信设备实施例三结构示意图。 具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进 行清楚、 完整地描述,显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没 有做出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的 范围。 下述的本发明的实施例的广播方法, 可以用在各种网絡通信当中, 包括无线网絡和有线网絡。
如图 1所示为本发明广播方法实施例一流程图, 包括:
步骤 101、 接收第一数据包或第一广播命令; 步骤 102、 如果当前接收到的第一数据包是重复的数据包, 比较当前接 收到的第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一 数据包的跳数参数确定的所述第一数据包能够被转发的次数, 如果当前接收 到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储 的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数, 丟弃当 前接收到的第一数据包或第一广播命令。
在 Z i gBee标准的广播方法中,为了减小由于数据包重复发送造成的网絡 带宽消耗,对于数据包的转发范围进行了限制。在数据包中有一个 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设备重新发起并发 送 1跳数据包 M, 这时 C设备收到 A设备发送的 1跳数据包 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设备可以将数据包进行转发。
如果按照现有技术 Z i gBee标准中广播方法, 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设备转发的 1跳数据包 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设备 将第一广播命令转发给0、 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 ; 否则, 说明相邻目标设备中有的设备可能没有收到第一数 据包, 执行步骤 61 0。 具体地, 设备可以判断自身存储的关于第一数据包的 记录项中, 第一数据包的转发状态是否标记为所有相邻目标设备均已收到。
步骤 609、 发送第一广播命令给相邻目标设备, 第一广播命令中包括当 前接收到的第一数据包的源地址、 序列号和第一数据包经过当前设备后的剩 余跳数。 第一广播命令中的跳数, 即是第一数据包经过当前设备后的剩余跳 数, 结束。
步骤 61 0、 将存储的广播表中第一数据包的跳数参数更换为当前接收到 的第一数据包的跳数参数, 将当前接收到的第一数据包的跳数减一后转发, 结束。
第四实施例中, 在判断目标设备所存储的关于第一数据包的记录项中, 标记第一数据包已经被所有相邻目标设备都收到时, 才发送第一广播命令给 相邻目标设备, 这样就避免了有的相邻目标设备没有收到第一数据包却收到 了第一广播命令的情况产生,并且通过发送第一广播命令来代替第一数据包, 能够减少网絡中数据量的传输。
第一广播命令的格式可以如表一所示。 表一、 本发明各实施例中涉及到的第一广播命令的格式
字节数 2 1 1
帧头 源地址 序列号 当前接收到的第 一数据包中的跳 数经过跳数处理 之后的值 表一中, 源地址占用两个字节, 序列号占用一个字节, 当前接收到的第 一数据包中的跳数经过跳数处理之后的值占用一个字节, 或者当前接收到的 第一数据包中的跳数经过跳数处理之后的值可以放在帧头所在字段。 表一中 仅是给出第一广播命令的一个例子, 第一广播命令还可以是其他的能够在网 絡中通过广播方式传输的命令格式。
如果是通过时间戳来唯一标识一个数据包, 则在第一广播命令中需要携 带当前接收到的第一数据包的时间戳和当前接收到的第一数据包中的跳数经 过跳数处理之后的值。
如果是通过时间戳和源地址来唯一标识一个数据包, 则在第一广播命令 中需要携带当前接收到的第一数据包的时间戳、 源地址和当前接收到的第一 数据包中的跳数经过跳数处理之后的值。
在现有技术中, 网絡中的某个设备发送给相邻目标设备的数据包, 如果 没有被所有的相邻目标设备收到, 则该设备会重新发送数据包, 即进行数据 包的重传。 在本发明的各个实施例中, 除了由于发送给相邻目标设备的数据 包没有被所有相邻目标设备收到引起重传之外, 对于重复收到的数据包, 确 定将重复收到的数据包进行转发后, 当数据包能够被转发的次数大于根据之 前存储的跳数参数确定的该数据包能够被转发的次数时, 也会将重复收到的 数据包进行转发, 即进行数据包的重传。 对重复收到的数据包进行重新转发 时, 可以只转发一次, 例如, 步骤 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、 如果当前接收到的第一数据包是重复的数据包, 并且自身是 组播组成员设备, 则将当前接收到的第一数据包或第一广播命令中的非组播 剩余跳数的值更换成最大组播成员跳数间隔的值, 比较当前接收到的第一数 据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳数 参数和 /或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,如 果当前接收到的第一数据包或第一广播命令能够被转发的次数小于或等于根 据之前存储的第一数据包的跳数参数和 /或非组播成员剩余跳数参数确定的 第一数据包能够被转发的次数, 丟弃当前接收到的第一数据包。
如图 1 1 所示为本发明实施例中涉及到的又一种网絡结构, 下面以图 11 所示的网絡结构为例来介绍实施例七的实现过程。
图 11中, A、 D、 E和 F设备属于同一个组播组, B和 C设备是非组播成 员。 组播组中的 A设备发起组播过程, 首先广播方式发送数据包 M, 其中跳 数设置为 3 , 最大组播成员跳数间隔和非组播成员剩余跳数设置为 2。 B设备 收到组播数据包后把跳数减一变成 2 , 由于 B设备不是组播成员, 因此把数 据包 M中非组播成员剩余跳数减一后变成 1 , 然后转发数据包 假设 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、 判断预先存储的广播表中是否存在与第一数据包的标识符相 同的记录项, 如果预先存储的广播表中不存在与第一数据包的标识符相同的 记录项, 则执行步骤 1 203 ; 否则执行步骤 1204。
步骤 1203、 确定第一数据包是新的数据包, 在所述广播表中记录第一数 据包的标识符, 并且将第一数据包的跳数参数和非组播成员剩余跳数参数进 行存储, 再将第一数据包进行转发, 结束。
步骤 1204、 确定第一数据包是重复的数据包, 判断当前接收到的第一数 据包能够被转发的次数是否大于根据之前存储的跳数参数和 /或非组播成员 剩余跳数参数确定的第一数据包能够被转发的次数, 如果当前接收到的第一 数据包能够被转发的次数大于根据之前存储的跳数参数和 /或非组播成员剩 余跳数参数确定的第一数据包能够被转发的次数, 则执行步骤 1205 ; 如果当 前接收到的第一数据包能够被转发的次数小于或等于根据之前存储的跳数参 数和 /或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,则执 行步骤 1206。
步骤 1205、 判断根据之前存储的第一数据包的跳数参数或非组播成员剩 余参数确定的第一数据包能够被转发的次数是否为 0 , 如果是, 则说明之前 收到的第一数据包没有被转发过, 则执行步骤 1207 ; 否则, 说明之前收到的 第一数据包被转发过, 执行步骤 1208。
步骤 1206、 丟弃当前接收到的第一数据包, 结束。
步骤 1207、 将之前存储的第一数据包的跳数参数和非组播成员剩余跳数 参数分别更换为当前接收到的第一数据包的跳数参数和非组播成员剩余跳数 参数, 并将当前接收到的第一数据包进行转发, 结束。
步骤 1208、 发送第一广播命令给相邻目标设备, 所述第一广播命令中包 括当前接收到的第一数据包的源地址、 序列号和当前接收到的第一数据包中 的跳数以及非组播成员剩余跳数经过跳数处理后的值。 第一广播命令中的跳 数和非组播成员剩余跳数分别是第一数据包中的跳数和非组播成员剩余跳数 经过跳数减一之后的值。 其他目标设备收到第一广播命令之后的处理方式与 接收到数据包之后的处理方式类似。
如图 1 3所示为本发明广播方法实施例十流程图, 包括:
步骤 1 301、 接收第一数据包;
步骤 1 302、 判断预先存储的广播表中是否存在与第一数据包的标识符相 同的记录项, 如果预先存储的广播表中不存在与第一数据包的标识符相同的 记录项, 则执行步骤 1 303; 否则, 执行步骤 1 304。
步骤 1 303、 确定接收到的第一数据包是新的数据包, 在所述广播表中记 录第一数据包的标识符, 并且将第一数据包的跳数参数和非组播成员剩余跳 数参数进行存储, 再将第一数据包进行转发, 结束。
步骤 1 304、 确定接收到的第一数据包是重复的数据包, 判断当前接收到 的第一数据包能够被转发的次数是否大于根据之前存储的跳数参数和 /或非 组播成员剩余跳数参数确定的第一数据包能够被转发的次数, 如果当前接收 到的第一数据包能够被转发的次数大于根据之前存储的跳数参数和 /或非组 播成员剩余跳数参数确定的第一数据包能够被转发的次数,则执行步骤 1 305 ; 如果当前接收到的第一数据包能够被转发的次数小于或等于根据之前存储的 跳数参数和 /或非组播成员剩余跳数参数确定的第一数据包能够被转发的次 数, 则执行步骤 1 306。
步骤 1 305、 判断根据之前存储的第一数据包的跳数参数或非组播成员剩 余跳数参数确定的第一数据包能够被转发的次数是否为 0 , 如果是, 执行步 骤 1 307 , 否则, 执行步骤 1 308。
步骤 1 306、 丟弃当前接收到的第一数据包, 结束。
步骤 1 307、 将之前存储的第一数据包的跳数参数和非组播成员剩余跳数 参数分别更换为当前接收到的第一数据包的跳数参数和非组播成员剩余跳数 参数, 并将当前接收到的第一数据包进行转发, 结束。
步骤 1 308、判断是否所有相邻目标设备都已接收到第一数据包,如果是, 则执行步骤 1 309 ; 否则, 说明相邻目标设备中有的设备可能没有收到第一数 据包, 执行步骤 1 310。 具体地, 设备可以判断自身存储的关于第一数据包的 记录项中, 第一数据包的转发状态是否标记为所有相邻目标设备均已收到。
步骤 1 309、 发送第一广播命令给相邻目标设备, 第一广播命令中包括当 前接收到的第一数据包的源地址、 序列号和第一数据包经过当前设备后的剩 余跳数以及非组播成员剩余跳数经过跳数处理后的值, 结束。
步骤 1 310、 将存储的广播表中第一数据包的跳数参数和非组播成员剩余 跳数参数更换为当前接收到的第一数据包的跳数参数和非组播成员剩余跳数 参数, 将当前接收到的第一数据包的跳数减一并且非组播成员剩余跳数减一 后转发, 结束。
如图 14所示为本发明广播方法实施例十一流程图,实施例十一与实施例 十相比, 步骤 1401-步骤 1403均分别与步骤 1 301-1 303相同, 存在区别之处 的步骤包括:
步骤 1404、 确定接收到的第一数据包是重复的数据包, 判断当前接收到 的第一数据包能够被转发的次数是否大于根据之前存储的第一数据包的跳数 参数和 /或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数,如 果当前接收到的第一数据包的能够被转发的次数大于根据之前存储的第一数 据包的跳数参数和 /或非组播成员剩余跳数参数确定的第一数据包能够被转 发的次数, 则执行步骤 1405 ; 否则, 执行步骤 1406。
步骤 1405、判断是否所有相邻目标设备都已接收到第一数据包,如果是, 则执行步骤 1406 ; 否则, 说明相邻目标设备中有的设备可能没有收到第一数 据包, 执行步骤 1407。 具体地, 设备可以判断自身存储的关于第一数据包的 记录项中, 第一数据包的转发状态是否标记为所有相邻目标设备均已收到。
步骤 1406、 丟弃当前接收到的第一数据包。
步骤 1407、 将存储的广播表中第一数据包的跳数参数更换为当前接收到 的第一数据包的跳数参数, 将第一数据包中的非组播成员剩余跳数参数更换 为当前接收到的第一数据包的非组播成员剩余跳数参数, 将当前接收到的第 一数据包的跳数减一, 并将第一数据包的非组播成员剩余跳数减一后转发, 结束。
步骤 1408、 发送第一广播命令给相邻目标设备, 结束。
网絡中的有的设备能够接收并识别第一广播命令中的源地址、 序列号和 跳数, 但是不能转发第一广播命令。 对于这种设备, 如果按照前述各实施例 的方法, 需要转发或发送第一广播命令时, 即发送或转发与第一广播命令中 的标识符相同的数据包本身, 发送或转发的数据包中的跳数为第一广播命令 的跳数。
在实际应用中, 网絡中可能有的设备支持本发明实施例提供的方法中对 于数据包的处理, 有的设备不支持, 对于支持本发明实施例提供的方法中对 于数据包的处理的设备, 在收到不支持本发明实施例中相关数据包处理的设 前述各实施例中主要描述网絡中的设备在接收到数据包时的处理方法, 对于网絡中主动发起并发生数据包的源设备, 在发送数据包时, 可以记录数 据包的标识符和跳数参数。 源设备在收到一个数据包之后, 查找自身的广播 表中存储的关于已发送的数据包的记录项, 如果查找到与自身发送的数据包 的标识符相同的记录项,则标记一个相邻目标设备收到源设备发送的数据包。 如果在规定的时间内, 有的相邻目标设备没有收到源设备发送的数据包则源 设备会重新发起并发送数据包。
设备在接收到第一广播命令之后的处理方法与接收到数据包之后的处理 方法类似, 此处不再赘述。
如图 15所示为本发明通信设备实施例一结构示意图,该设备包括接收模 块 11、 第一判断模块 12、 第一比较模块 1 3和第一数据处理模块 14 , 第一判 断模块 12分别与接收模块 11和第一比较模块 1 3比较, 第一数据处理模块 14与第一比较模块 1 3连接。 该设备的工作原理为: 接收模块 11接收第一数 据包或第一广播命令, 第一判断模块 12判断接收模块 11 当前接收到的第一 数据包是否是重复的数据包, 当第一判断模块确定当前接收到的第一数据包 是重复的数据包时,第一比较模块 1 3比较当前接收到的第一数据包或第一广 播命令能够被转发的次数和根据之前存储的第一数据包的跳数参数确定的该 第一数据包能够被转发的次数,如果第一比较模块 1 3比较的结果为当前接收 到的第一数据包或第一广播命令能够被转发的次数小于或等于根据之前存储 的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数, 则第一 数据处理模块 14丟弃当前接收到的第一数据包或第一广播命令。
如图 15所示的设备还可以包括一个第一存储模块,用于当当前接收到的 第一数据包不是重复的数据包时, 存储当前接收到的第一数据包携带的标识 符和跳数参数, 并用于存储之前接收到的第一数据包的标识符和跳数参数。
图 15中第一判断模块 12具体用于根据接收模块 11当前接收到的第一数 据包或第一广播命令携带的标识符, 判断当前接收到的第一数据包是否是重 复的数据包, 标识符由数据包的源地址和序列号组成, 或者所述标识符为数 据包的时间戳, 或所述标识符由数据包的时间戳和源地址组成。
如果当前接收到的第一数据包或第一广播命令能够被转发的次数大于根 据之前存储的第一数据包的跳数参数确定的所述第一数据包能够被转发的次 数,则第一数据处理模块 14更换第一存储模块中之前存储的第一数据包的跳 数参数为当前接收到的第一数据包或第一广播命令的跳数参数, 转发当前接 收到的第一数据包或发送所述第一广播命令。
第一数据处理模块 14 可以包括第一数据处理子单元和第二数据处理子 单元(图 15中未示出), 第一数据子单元判断根据第一存储模块之前存储的 跳数参数确定的所述第一数据包的能够被转发的次数是否为 0; 如果根据第 一存储模块之前存储的跳数参数确定的所述第一数据包的能够被转发的次数 为 0 , 转发当前接收到的第一数据包; 如果根据第一存储模块之前存储的跳 数参数确定的所述第一数据包的能够被转发的次数不为 0 , 发送第一广播命 令。
第二数据处理子单元判断相邻设备是否全部接收到所述第一数据包或第 一广播命令; 如果相邻设备全部接收到所述第一数据包或第一广播命令, 发 送第一广播命令; 如果相邻设备没有全部接收到所述第一数据包或第一广播 命令, 发送当前接收到的第一数据包。
如图 16所示为本发明通信设备实施例二结构示意图,该设备包括接收模 块 11、 第一判断模块 12、 第二比较模块 15和第二数据处理模块 16 , 第一判 断模块 12分别与接收模块 11和第二比较模块 15连接, 第二数据处理模块 16和第二比较模块 15连接。 该设备的工作原理为: 接收模块 11接收第一数 据包或第一广播命令, 第一判断模块 12判断接收模块 11 当前接收到的第一 数据包是否是重复的数据包,如果第一判断模块确定接收模块 1 1当前接收到 的第一数据包是重复的数据包,则第二比较模块 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

权 利 要 求 书
1、 一种广播方法, 其特征在于, 包括:
接收第一数据包或第一广播命令;
如果当前接收到的第一数据包是重复的数据包, 比较当前接收到的第一 数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的跳 数参数确定的所述第一数据包能够被转发的次数, 如果当前接收到的第一数 据包或第一广播命令能够被转发的次数小于或等于根据之前存储的第一数据 包的跳数参数确定的所述第一数据包能够被转发的次数, 丟弃当前接收到的 第一数据包或第一广播命令。
2、 根据权利要求 1所述的广播方法, 其特征在于, 还包括, 如果当前接 收到的第一数据包不是重复的数据包, 存储当前接收到的第一数据包携带的 标识符和跳数参数。
3、 根据权利要求 1或 2所述的广播方法, 其特征在于, 还包括, 根据当 前接收到的第一数据包或第一广播命令携带的的标识符, 判断当前接收到的 第一数据包是否是重复的数据包, 所述标识符由数据包的源地址和序列号组 成, 或者所述标识符为数据包的时间戳, 或所述标识符由数据包的时间戳和 源地址组成。
4、 根据权利要求 1或 2所述的广播方法, 其特征在于, 还包括: 如果当 前接收到的第一数据包或第一广播命令能够被转发的次数大于根据之前存储 的第一数据包的跳数参数确定的所述第一数据包能够被转发的次数, 更换之 前存储的第一数据包的跳数参数为当前接收到的第一数据包或第一广播命令 的跳数参数, 转发当前接收到的第一数据包或发送所述第一广播命令。
5、 根据权利要求 4所述的广播方法, 其特征在于, 所述转发当前接收到 的第一数据包或发送所述第一广播命令具体为:
判断根据之前存储的跳数参数确定的所述第一数据包的能够被转发的次 数是否为 0; 如果根据之前存储的跳数参数确定的所述第一数据包的能够被转发的次 数为 0 , 转发当前接收到的第一数据包;
如果根据之前存储的跳数参数确定的所述第一数据包的能够被转发的次 数不为 0 , 发送第一广播命令。
6、 根据权利要求 4所述的广播方法, 其特征在于, 所述转发当前接收到 的第一数据包或发送所述第一广播命令具体为:
判断相邻设备是否全部接收到所述第一数据包或第一广播命令; 如果相邻设备全部接收到所述第一数据包或第一广播命令, 发送第一广 播命令;
如果相邻设备没有全部接收到所述第一数据包或第一广播命令, 转发当 前接收到的第一数据包。
7、 根据权利要求 6所述的广播方法, 其特征在于, 判断相邻设备是否全 部接收到所述第一数据包或第一广播命令具体为: 判断是否接收到了来自全 部相邻设备发送的第一数据包或第一广播命令。
8、根据权利要求 1或 5或 6中任一权利要求所述的广播方法, 其特征在 于, 所述第一广播命令包括第一数据包的标识符、 字节长度以及所述第一数 据包的跳数经过跳数处理后的值。
9、 一种广播方法, 其特征在于, 包括:
接收第一数据包或第一广播命令;
如果当前接收到的第一数据包是重复的数据包, 则比较当前接收到的第 一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包的 跳数参数和 /或非组播成员剩余跳数参数确定的第一数据包能够被转发的次 数, 如果当前接收到的第一数据包或第一广播命令能够被转发的次数小于或 等于根据之前存储的第一数据包的跳数参数和 /或非组播成员剩余跳数参数 确定的第一数据包能够被转发的次数, 丟弃当前接收到的第一数据包。
1 0、 根据权利要求 9所述的广播方法, 其特征在于, 如果自身是组播组 成员设备, 则在比较当前接收到的第一数据包或第一广播命令能够被转发的 次数和根据之前存储的第一数据包的跳数参数和 /或非组播成员剩余跳数参 数确定的第一数据包能够被转发的次数之前, 还包括将当前接收到的第一数 据包或第一广播命令中的非组播剩余跳数的值更换成最大组播成员跳数间隔 的值。
11、 根据权利要求 9或 10所述的广播方法, 其特征在于, 所述第一数据 包中携带有发送所述第一数据包的源设备所属的组播组标识;
还包括根据所述第一数据包中的组播组标识判断自身是否是组播组成员 设备。
12、 根据权利要求 11所述的广播方法, 其特征在于, 比较当前接收到的 第一数据包或第一广播命令能够被转发的次数和根据之前存储的第一数据包 的跳数参数和 /或非组播成员剩余跳数参数确定的第一数据包能够被转发的 次数具体包括:
根据当前接收到的第一数据包或第一广播命令中的跳数参数确定第一数 据包能够被转发的次数 A1 , 根据所述第一数据包或第一广播命令中的非组播 成员剩余跳数参数确定第一数据包能够被转发的次数 B1 , 根据之前存储的第 一数据包的跳数参数确定第一数据包能够被转发的次数 A2 , 根据之前存储的 非组播成员剩余跳数参数确定第一数据包能够被转发的次数 B2 ;
如果 A1大于 A2 , 并且 B1大于 B2 , 则确定当前接收到的第一数据包或第 一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数和 /或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数; 或者 如果 A1大于 A2 , 或者 B1大于 B2 , 则确定当前接收到的第一数据包或第 一广播命令能够被转发的次数大于根据之前存储的第一数据包的跳数参数和 /或非组播成员剩余跳数参数确定的第一数据包能够被转发的次数。
1 3、 根据权利要求 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或者相邻设 备全部接收到所述第一数据包或第一广播命令, 发送第一广播命令。
PCT/CN2009/071145 2009-04-02 2009-04-02 广播方法及通信设备 WO2010111837A1 (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
PT98424948T PT2416513E (pt) 2009-04-02 2009-04-02 Método de broadcast e dispositivo de comunicação
PCT/CN2009/071145 WO2010111837A1 (zh) 2009-04-02 2009-04-02 广播方法及通信设备
CN2009801582505A CN102369682B (zh) 2009-04-02 2009-04-02 广播方法及通信设备
ES09842494T ES2426956T3 (es) 2009-04-02 2009-04-02 Método de radiodifusión y dispositivo de comunicación
EP09842494.8A EP2416513B1 (en) 2009-04-02 2009-04-02 Broadcasting method and communication device
US13/250,069 US9306704B2 (en) 2009-04-02 2011-09-30 Broadcasting method and communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2009/071145 WO2010111837A1 (zh) 2009-04-02 2009-04-02 广播方法及通信设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/250,069 Continuation US9306704B2 (en) 2009-04-02 2011-09-30 Broadcasting method and communication device

Publications (1)

Publication Number Publication Date
WO2010111837A1 true WO2010111837A1 (zh) 2010-10-07

Family

ID=42827469

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/071145 WO2010111837A1 (zh) 2009-04-02 2009-04-02 广播方法及通信设备

Country Status (6)

Country Link
US (1) US9306704B2 (zh)
EP (1) EP2416513B1 (zh)
CN (1) CN102369682B (zh)
ES (1) ES2426956T3 (zh)
PT (1) PT2416513E (zh)
WO (1) WO2010111837A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140078935A1 (en) * 2011-05-18 2014-03-20 Zte Corporation Multi-Interface Terminal, and Neighbor Topology Discovery and Cooperative Communication Method Therefore
CN104883669A (zh) * 2015-06-04 2015-09-02 中国石油天然气集团公司 一种数据处理装置、基站以及通讯系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8824437B2 (en) * 2011-03-02 2014-09-02 Ricoh Company, Ltd. Wireless communications device, electronic apparatus, and methods for determining and updating access point
US8761181B1 (en) * 2013-04-19 2014-06-24 Cubic Corporation Packet sequence number tracking for duplicate packet detection
JP6679498B2 (ja) 2014-04-16 2020-04-15 シグニファイ ホールディング ビー ヴィSignify Holding B.V. 無線メッシュネットワークにおいてパケットストームの時間長さを短縮するための方法及び装置
US9750081B2 (en) * 2015-06-15 2017-08-29 International Business Machines Corporation Direct data transfer among communication devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1627718A (zh) * 2003-12-10 2005-06-15 联想(北京)有限公司 无线网格内实现无线设备间智能组网的方法
CN1996804A (zh) * 2006-01-04 2007-07-11 株式会社Ntt都科摩 无线移动网络中的广播方法和装置
CN101212495A (zh) * 2006-12-26 2008-07-02 株式会社Ntt都科摩 无线多跳网路中的定位方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345558A (en) * 1992-11-23 1994-09-06 Synoptics Communications, Inc. Topology independent broadcast of cells in an ATM network or the like
US20020150099A1 (en) * 2001-04-13 2002-10-17 Pung Hung Keng Multicast routing method satisfying quality of service constraints, software and devices
KR100645431B1 (ko) 2004-02-13 2006-11-15 삼성전자주식회사 무선네트워크에서 브로드캐스트 방법 및 그 방법을사용하는 통신장치
CN1926835B (zh) * 2004-04-05 2012-02-22 艾利森电话股份有限公司 在无线多跳自组织网络中用于地址解析映射的方法、通信装置和系统
KR20060006583A (ko) * 2004-07-16 2006-01-19 아주대학교산학협력단 무선 센서 네트워크에 있어서의 방향성 플러딩 방법
US8027259B2 (en) * 2006-06-30 2011-09-27 Nokia Corporation Opportunistic routing protocol in ad hoc networks
KR100846189B1 (ko) * 2006-12-27 2008-07-14 강원대학교산학협력단 지그비 메쉬 네트워크의 경로 탐색 초기화 시 최적패킷유지시간 설정 방법
US8068491B2 (en) * 2008-02-13 2011-11-29 Telcordia Technologies, Inc. Methods for reliable multicasting in local peer group (LPG) based vehicle ad hoc networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1627718A (zh) * 2003-12-10 2005-06-15 联想(北京)有限公司 无线网格内实现无线设备间智能组网的方法
CN1996804A (zh) * 2006-01-04 2007-07-11 株式会社Ntt都科摩 无线移动网络中的广播方法和装置
CN101212495A (zh) * 2006-12-26 2008-07-02 株式会社Ntt都科摩 无线多跳网路中的定位方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140078935A1 (en) * 2011-05-18 2014-03-20 Zte Corporation Multi-Interface Terminal, and Neighbor Topology Discovery and Cooperative Communication Method Therefore
US9445355B2 (en) * 2011-05-18 2016-09-13 Zte Corporation Multi-interface terminal, and neighbor topology discovery and cooperative communication method therefore
CN104883669A (zh) * 2015-06-04 2015-09-02 中国石油天然气集团公司 一种数据处理装置、基站以及通讯系统

Also Published As

Publication number Publication date
EP2416513B1 (en) 2013-06-19
ES2426956T3 (es) 2013-10-28
US9306704B2 (en) 2016-04-05
PT2416513E (pt) 2013-09-09
EP2416513A1 (en) 2012-02-08
US20120076143A1 (en) 2012-03-29
EP2416513A4 (en) 2012-05-30
CN102369682B (zh) 2013-08-07
CN102369682A (zh) 2012-03-07

Similar Documents

Publication Publication Date Title
KR101543448B1 (ko) 하이브리드 네트워크에서의 토폴로지 발견
KR101362776B1 (ko) 개선된 802.11 메쉬 아키텍처
JP6388995B2 (ja) 近隣認識ネットワークデータリンクにおけるトラフィックの告知およびスケジューリング
JP6367459B2 (ja) 近隣認識ネットワークデータリンクにおけるトラフィックの告知およびスケジューリング
US8848584B2 (en) Time synchronization and routing method in wireless sensor network, and apparatus for enabling the method
JP6449427B2 (ja) 近隣認識ネットワークデータリンクにおけるトラフィックの告知およびスケジューリング
US8831023B2 (en) Low latency mesh network
CN102148756B (zh) 一种基于6LoWPAN邻居发现的树状路由方法
US7522547B2 (en) Method for transmitting FATIM in mobile ad hoc network and medium access control protocol layer module therefor
WO2010111837A1 (zh) 广播方法及通信设备
US20090196227A1 (en) Method and network node for routing data packets in communication networks
WO2010118578A1 (zh) 路由方法、装置及系统
EP3200404B1 (en) Content-centric network on-demand distance vector route method
WO2009115020A1 (zh) 网络路径建立与数据发送的方法及网络节点
WO2020156340A1 (zh) 一种传输数据的方法及装置
Braun et al. TCP support for sensor networks
AU2018442113B2 (en) Model based path selection in a bluetooth low energy, BLE, mesh network
WO2024001190A1 (zh) 消息发送方法、设备智能互联系统、相关设备及存储介质
JP2009273140A (ja) ハイブリッド型メッシュ・ルーティング・プロトコル
CN109787901B (zh) 应用于多跳网络中的逆向轮询数据反馈方法
CN105657774B (zh) 无线自组织网络中自适应核心转发网络的建立方法和系统
Sharma et al. Efficient routing with reduced routing overhead and Retransmission of Manet
CN108834174B (zh) 基于拥塞控制的无线传感器网络分簇式路由协议跨层优化方法
CN109348492B (zh) 一种控制开销受限的mac层传输协议设计方法
CN205545958U (zh) 无线自组织网络中自适应核心转发网络的建立系统

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980158250.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09842494

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2009842494

Country of ref document: EP