CN107342874A - 用于多播协议的反馈机制 - Google Patents
用于多播协议的反馈机制 Download PDFInfo
- Publication number
- CN107342874A CN107342874A CN201710290115.2A CN201710290115A CN107342874A CN 107342874 A CN107342874 A CN 107342874A CN 201710290115 A CN201710290115 A CN 201710290115A CN 107342874 A CN107342874 A CN 107342874A
- Authority
- CN
- China
- Prior art keywords
- packet
- multicast
- variable element
- data
- node
- 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
- 230000008713 feedback mechanism Effects 0.000 title abstract description 5
- 230000006854 communication Effects 0.000 claims abstract description 134
- 238000004891 communication Methods 0.000 claims abstract description 133
- 238000000034 method Methods 0.000 claims abstract description 23
- 238000005457 optimization Methods 0.000 claims abstract description 8
- 230000008859 change Effects 0.000 claims description 65
- 230000015654 memory Effects 0.000 claims description 51
- 230000005540 biological transmission Effects 0.000 claims description 40
- 230000004048 modification Effects 0.000 claims description 36
- 238000012986 modification Methods 0.000 claims description 36
- 230000004044 response Effects 0.000 claims description 36
- 238000003860 storage Methods 0.000 claims description 35
- 241000208340 Araliaceae Species 0.000 claims description 8
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 8
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 8
- 235000008434 ginseng Nutrition 0.000 claims description 8
- 230000008439 repair process Effects 0.000 claims description 8
- 241001269238 Data Species 0.000 claims description 5
- 230000001052 transient effect Effects 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims description 3
- 230000004913 activation Effects 0.000 claims description 2
- 230000002035 prolonged effect Effects 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 31
- 238000012545 processing Methods 0.000 description 32
- 230000009471 action Effects 0.000 description 12
- 238000013500 data storage Methods 0.000 description 11
- 230000011218 segmentation Effects 0.000 description 7
- 239000002609 medium Substances 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 101000911390 Homo sapiens Coagulation factor VIII Proteins 0.000 description 2
- 102000057593 human F8 Human genes 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 229940047431 recombinate Drugs 0.000 description 2
- 238000009331 sowing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000006424 Flood reaction Methods 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
- H04L25/05—Electric or magnetic storage of signals before transmitting or retransmitting for changing the transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
- H04L47/365—Dynamic adaptation of the packet size
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
- H04W4/08—User group management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/70—Services for machine-to-machine communication [M2M] or machine type communication [MTC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/189—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1553—Interconnection of ATM switching modules, e.g. ATM switching fabrics
- H04L49/1584—Full Mesh, e.g. knockout
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
Abstract
用于多播协议的反馈机制。广义地说,本技术的实施例提供优化用于在通信网络中发送数据分组的多播操作的装置、系统和方法。
Description
技术领域
本技术通常涉及用于多播的方法、装置和系统,并且尤其涉及优化用于通信网络的多播协议。
背景技术
在家庭、办公建筑或户外环境中存在数量上持续增长的具有处理和通信能力的设备,这种能力允许这样的设备与其它处理设备和云服务进行交互。作为“物联网”(IoT)的一部分,日常物品和相对小规模的处理设备可以相互连接并连接到中央平台。例如,家庭中的加热系统可以从各种温度传感器收集信息并且基于收集到的信息来控制加热器的激活;工厂污染监视传感器可以从各种化学传感器收集信息并且基于收集到的信息安排维护;而保健提供商可以使用无线传感器(诸如心率监视器)来跟踪患者在家时的健康。在上述情况下,数据一般使用机器对机器(M2M)通信技术转发到互联网上的云服务。
在IoT中或者在典型的M2M通信网络中,设备(或节点)使用路由方案与网络内的其它设备进行通信。路由方案(诸如广播和多播)可以启用一对多或多对多分发,这使得数据能够同时被发送到多个设备。但是,在这些网络中的设备可能倾向于具有较低的处理能力和较小的存储器或较小的数据存储容量。这些设备可能缺乏用户接口,因为例如具有用户接口(诸如显示器)的成本,或者因为显示器消耗太多的功率,或者由于设备本身的物理尺寸使得难以设置用户接口。设备可能需要被配置为以便连接到IoT或其它设备/服务,但是可能缺乏或具有降低的用于直接在设备上进行配置的能力。设备可能例如不具有反馈在网络中使用的路由方案中的具体问题的能力。
发明内容
描述了使得能够提供关于多播协议的反馈的技术。
根据本技术的第一方面,提供了一种装置,包括:数据贮存器,存储与多播操作相关联的至少一个可变参数;通信模块:使用存储的可变参数向通信网络中的多个节点多播数据分组;以及从所述多个节点中的节点接收多播数据分组的重传版本,重传的数据分组包括反馈数据;以及至少一个处理器,耦合到所述数据贮存器和所述通信模块以:使用所述反馈数据确定所述可变参数需要修改,以优化用于网络的多播操作;响应于所述反馈数据而修改所述可变参数;以及将修改后的可变参数存储在所述数据贮存器中。
根据本技术的第二方面,提供了一种用于重传数据分组的装置,该装置包括:至少一个处理器;以及通信模块,耦合到所述至少一个处理器以:从通信网络中的源装置接收第一多播数据分组;通过向第一多播数据分组添加反馈数据来修改第一多播数据分组,所述反馈数据指定与用于发送第一多播数据分组的多播操作相关联的至少一个可变参数需要修改,以优化用于网络的多播操作;以及重传修改后的第一多播数据分组。
根据本技术的第三方面,提供了一种通信网络,包括:源设备,包括存储与多播操作相关联的至少一个可变参数的数据贮存器、至少一个处理器以及耦合到存储器和处理器的通信模块,以:使用存储的可变参数向所述网络中的多个节点设备多播数据分组;以及节点设备,包括至少一个处理器以及耦合到所述至少一个处理器的通信模块,以:从所述源装置接收所述数据分组,通过向所述数据分组添加反馈数据来修改所述数据分组,所述反馈数据指定用于发送数据分组的多播操作的最少一个可变参数需要修改,以优化用于网络的多播操作;以及重传修改后的数据分组;以及其中源设备通信模块:从所述节点设备接收修改后的数据分组;使用反馈数据确定至少一个可变参数需要修改,以优化用于网络的多播操作;响应于反馈数据而修改可变参数;以及将修改后的可变参数存储在数据贮存器中。
根据本技术的第四方面,提供一种优化操作的方法,该方法包括:使用多播操作和与所述多播操作相关联的至少一个可变参数,将数据分组多播到通信网络中的多个节点;从所述多个节点中的节点接收多播数据分组的重传版本,重传的数据分组包括反馈数据;使用所述反馈数据确定所述可变参数需要修改,以优化用于网络的多播操作;响应于反馈数据而修改可变参数;以及存储修改后的可变参数。
根据本技术的第五方面,提供了一种装置,包括用于存储与多播操作相关联的至少一个可变参数的部件;用于使用存储的可变参数向通信网络中的多个节点多播数据分组的部件;用于从所述多个节点中的节点接收多播数据分组的重传版本的部件,重传的数据分组包括反馈数据;以及用于使用所述反馈数据确定所述可变参数需要修改,以优化用于网络的多播操作以及用于响应于所述反馈数据而修改可变参数的部件。
如本领域技术人员将理解的,本技术可以实施为系统、方法或计算机程序产品。因此,本技术可以采取完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式。
此外,本技术可以采取在其上实施的计算机可读程序代码的计算机可读介质中的计算机程序产品的形式。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读介质可以是例如但不限于电、磁、光、电磁、红外或半导体系统、装置或设备,或前述的任意合适组合。
用于执行本技术的操作的计算机程序代码可以用一种或多种编程语言的任意组合来编写,包括面向对象的编程语言和常规的过程性编程语言。代码组件可以被实施为过程、方法等,并且可以包括可以采用任何抽象级别的指令或指令序列形式(从本地指令集的直接机器指令到高级编译或解释的语言结构)的子组件。
附图说明
这些技术通过示例的方式在附图中示意性地示出,其中:
图1示出了通信网络的示意图;
图2示出了响应于反馈数据而修改多播操作的一般步骤的流程图;
图3示出了响应于反馈数据而修改多播操作的具体步骤的流程图;
图4示出了响应于接收到错误消息或建议的参数而修改多播操作的一般步骤的流程图;
图5示出了由节点设备执行以对多播处理提供反馈数据的步骤的流程图;
图6示出了当接收到多个反馈数据时由节点设备或源设备执行的步骤的流程图;以及
图7示出了响应于反馈数据而修改多播操作的步骤的示意图。
具体实施方式
广义地说,本技术的实施例提供了优化用于在通信网络中发送数据分组的多播操作的装置、系统和方法。
术语“数据分组”在本文中与术语“消息”和“分组”可互换使用。术语“源装置”在本文中与术语“装置”、“源设备”、“源”、“发送者”、“发送者设备”、“根设备”、“发送器”、“发送器装置”和“发送设备”可互换使用。术语“节点装置”在本文中与术语“装置”、“节点”、“节点设备”、“受约束的节点”、“未约束的节点”、“较少约束的节点”、“转发设备”、“接收器”、“接收器装置”和“接收设备”可互换使用。本文使用的术语“通信网络”一般是指由多个计算设备形成的计算机网络或数据网络,其中在设备之间交换数据。通信网络可以是网状网络、无线网状网络或受约束的/低功率无线网络。
图1示出了通信网络10的示意图,通信网络10可以是网状网络或无线网状网络。通信网络10可以是低功率且有损网络(LLN),可以以通信、计算、存储器、数据贮存器和能量中的一个或多个中的严格资源约束来操作该通信网络。通信网络10包括至少一个源设备12。在实施例中,通信网络10可以包括多个源设备12。源设备12使用至少多播操作将数据传送到网络10中的一个或多个节点,并且可选地可以使用另外的通信方案(诸如单播、广播和任播(anycasting))。多播协议可以定义由源设备12用来向节点传送数据的多播操作的至少一部分。至少一个可变参数与多播操作相关联。可变参数可以是由多播协议定义的参数,和/或可以是与由源设备12实现的多播操作相关联但不由多播协议定义的参数。由源设备12(以及网络10中的任何其它设备)执行的多播操作可以至少部分地基于用于在受约束的网络中提供IPv6多播转发的低功率且有损网络(MPL)的多播协议。
源设备12或每个源设备12包括通信模块12a,以使用至少多播协议发送和接收数据分组或数据信号,以发送数据分组。通信模块12a可以是适合于发送和接收数据分组的任何通信模块,或者可以是被配置为(或适用于)对数据分组进行多播的通信模块。通信模块12a可能能够(或被配置为):使用多播操作和存储在源设备12中的与多播操作关联的至少一个可变参数,向通信网络中的多个节点多播数据分组;并且从多个节点中的节点接收多播数据分组的重传版本,该重传的数据分组包括反馈数据。
通信模块12a耦合到处理器12b和数据贮存器12c。处理器12b可以包括处理数据(例如,从网络10中的其它设备或从外部网络接收的数据信号和数据分组)以及响应于该处理而生成输出数据的处理逻辑。处理器12b可以包括微处理器、微控制器和集成电路中的一个或多个。处理器12b可以耦合到数据贮存器12c。数据贮存器12c可以包括用作临时存储器的易失性存储器(诸如随机存取存储器(RAM)),和/或用于存储数据、程序或指令的非易失性存储器(诸如闪存、只读存储器(ROM)或电可擦除可编程ROM(EEPROM))。源数据贮存器12c可以存储与可以由源12执行的多播操作相关联的至少一个可变参数。在实施例中,数据贮存器12c可以存储定义至少一部分多播操作的多播协议(或多播协议设置)。至少一个可变参数被通信模块12a用来使用多播操作将数据分组发送到网络中的节点。在优选实施例中,数据贮存器12c可能能够存储(或者被配置为或适用于存储)与多播操作相关联的至少一个可变参数。如下面更详细地解释的,可变参数可以是多播协议参数,或者可以是与由通信模块12a实现的多播操作相关联的但不由多播协议定义的参数。
处理器12b可能能够(或者被配置为或适用于):使用反馈数据确定可变参数需要修改以优化用于网络的多播操作;响应于反馈数据而修改可变参数;并将修改后的可变参数存储在数据贮存器12c中。附加地或替代地,通信模块12a(或通信模块12a和处理器12b的组合)可能能够(或者被配置为或适用于)执行这些动作中的一些或全部。通信模块12a可以利用处理器12b执行这些动作中的一些或全部,或者可以具有其自身的内部处理器(未示出)来执行这些动作中的一些或全部。
通信网络10包括多个节点,并且可以包括至少一个受约束的节点14,和/或至少一个未约束的节点16。受约束的节点14可以具有有限的存储器/数据存储和处理能力、可能在大部分时间睡眠,并且可以使用受约束的网络技术来操作。受约束的节点14可能能够(或者被配置为)接收多播数据分组(例如,经由多播操作从源设备12发送的数据分组),并且可以被配置为将数据分组转发到网络10中的其它节点,由此将数据分组跨网络10分发。每个受约束的节点14包括通信模块14a,该通信模块能够(或者被配置为)接收数据分组并将数据分组发送(或重传)到网络10中的其它节点。具体地,通信模块14a可能能够(或者被配置为)接收多播数据分组(例如,从源设备发送的数据分组),并且将接收到的多播数据分组重传到网络中的其它节点。通信模块14a可能能够(或者被配置为)接收重传的多播数据分组(例如,从其它节点设备),并且重传接收到的经重传的数据分组。在实施例中,为了避免由于多次重传相同的数据分组而泛洪(flooding)网络10,通信模块14a可以仅在如果已经从源设备12接收到数据分组和/或如果经由多播协议接收到数据分组的情况下,才重传该数据分组。在这样的实施例中,节点14可以不重传从其它节点接收的数据分组。附加地或替代地,节点14可以被配置为检查其是否已经重传了接收到的数据分组,如果是,则可以丢弃该数据分组,以避免重复的传输。
在实施例中,网络10可以是低功率且有损网络(LLN),并且源设备12可以被配置为使用多播操作,该多播操作至少部分地由用于低功率且有损网络的多播协议(例如,MPL协议)定义。在这样的实施例中,源设备12可以生成符合多播协议的数据分组,并将数据分组发送到网络中的被配置为接收多播数据分组的一个或多个节点14、16。例如,受约束的节点14可以是实现MPL的设备,并且可以具有使得节点14能够接收和发送符合MPL协议的数据分组的MPL接口。受约束的节点14可以被认为是实现MPL的路由器,并且在本文中可以被称为“MPL转发器”、“转发器”或“转发设备”。
每个节点14的通信模块14a可以使用任何合适的通信技术(诸如多播、广播或单播)来重传接收到的数据分组。在节点14是MPL转发器的实施例中,节点14可以使用至少该MPL协议来重传(转发)接收到的数据分组。通信模块14a耦合到处理器14b和数据贮存器14c。处理器14b可以包括处理数据(例如,从网络10中的其它设备接收的数据分组)并响应于该处理而生成输出数据的处理逻辑。处理器14b可以包括微处理器、微控制器和集成电路中的一个或多个。处理器14b可以耦合到数据贮存器14c。数据贮存器14c可以包括用作临时存储器的易失性存储器(诸如随机存取存储器(RAM))和/或用于存储数据、程序或指令的非易失性存储器(诸如闪存、只读存储器(ROM)或电可擦除可编程ROM(EEPROM))。数据贮存器14c可以存储用于重传(即,转发)由通信模块14a接收的数据分组的通信处理的至少一个通信协议或配置设置。取决于节点14用来重传数据分组的通信协议,数据贮存器14c可以存储重传的数据分组要发送到的每个节点的地址。
节点16(在本文中也称为“较少约束的节点”或“未约束的节点”)与受约束的节点14基本类似,除了节点16相对于受约束的节点14可以包括更多的存储器、数据存储和/或处理能力之外。如下面更详细地解释的,受约束的节点14可能能够提供关于由源12采用的多播操作的有限的反馈数据。例如,受约束的节点14可能仅能够指示多播协议不是最优的,而未约束的节点16可能能够指定应当被修改以优化通信的多播操作的一个或多个方面。因此,节点16包括能够(或者被配置为)接收数据分组,并将数据分组发送(或重传)到网络10中的其它节点的通信模块16a,该通信模块16a具有与上述通信模块14a基本相同的功能。通信模块16a耦合到处理器16b和数据贮存器16c,处理器16b和数据贮存器16c分别具有与处理器14b和数据贮存器14c基本相同的功能。
在网络10是低功率且有损网络(LLN)的实施例中,源设备12可以使用基于MPL协议的多播操作来将数据分组发送到节点16。在这种情况下,节点16可以是实现MPL的设备,并且可以具有使节点16能够接收和发送符合MPL协议的数据分组的MPL接口。受约束的节点16可以被认为是实现MPL的路由器,并且在本文中可以被称为“MPL转发器”、“转发器”或“转发设备”。
如图1中所示,源设备12使用多播操作(由箭头18指示)将数据分组发送到多个受约束的节点14和节点16。从源设备接收多播数据分组12的受约束的节点14或节点16可能能够(或者被配置为)将数据分组重传到网络10中的其它节点(如箭头20所示)。重传的多播数据分组可以由节点14或节点16发送到网络10中的一个或多个节点,包括直接从源设备12接收多播数据分组的节点。以这种方式,节点14/16跨网络10转发接收到的多播数据分组。节点14/16可以使用多播操作(例如,该多播操作可以结合MPL协议)来将接收到的数据分组重传到网络10中的其它节点。但是,在以这种方式分发数据分组的常规通信网络中,没有向源设备12指示它正在用过多的数据泛洪网络10的简单的机制,或者提供关于由源设备12所使用的多播操作的任何其它反馈。术语“泛洪”用于指在多播操作中使用的数据分组传输速率太高,使得网络10中的至少一个节点不能以该传输速率接收数据分组和/或使得节点不能在从源12接收到另外的多播数据分组之前转发多播数据分组。受约束的节点14(或节点16)可以向源12发送单播数据分组,以向源请求降低传输速率。但是,如果多个节点以这种方式向源12发送反馈,则网络将进一步泛洪。
在本技术中,节点14(或节点16)利用多播数据分组的重传来向源12提供反馈。因而,可以不需要新的数据分组来向源12发送关于多播操作的反馈。相反,当节点14/16向网络10中的其它节点重传数据分组时,现有(即,接收到的)数据分组的修改版本被用于发送反馈。因此,通过重传多播数据分组,节点14/16均可以跨网络10分发数据分组并向源设备12提供反馈。包含反馈的重传的多播数据分组将最终到达源设备12,因为网络10中的大多数或全部节点能够(或者被配置为)重传多播数据分组。
多播协议通常定义指定如何实现多播协议的一些参数。例如,多播协议(诸如MPL协议)可以定义以下参数中的一个或多个:最小重传间隔、最大重传间隔和定时器到期次数(即,重传次数)。因此,使用多播操作转发数据分组的节点14/16可以使用与源12向网络10发送数据分组的多播操作相同的多播操作。源12可以被认为是“根设备”,并且由源12执行的多播操作可以结合特定的多播协议和特定的多播协议参数。由源12使用的多播操作可以包括一个或多个附加的可变参数,这些参数不由多播协议定义。多播协议参数和/或附加参数可以在使用多播的根设备12和节点14/16上改变,以便改编多播操作来适应网络10的属性(和/或该网络的组件的属性)。如下面解释的,这可以使得多播操作能够被改编为适应每个通信网络(即,针对每个通信网络进行优化)。因此,多播操作的参数可以因通信网络而异,因为每个通信网络可以具有不同的属性。(例如,节点数量、网络中的约束以及受约束的节点与未约束的节点的比值会影响如何在网络中实现多播操作,因为这些示例因素可以限制多播速率和/或多播数据分组尺寸等)。
由根设备12执行的多播操作可以至少部分地基于多播协议,并且多播协议可以定义多播操作的一个或多个可变参数。例如,响应于从网络10中的节点接收的反馈,这些多播协议参数中的一些可以是可调整的。可调整的参数可以由根设备12调整,或者由在根设备12上实现多播协议的软件应用/程序或者由更高权限的设备或更高级别的协议来调整。与由根设备12进行的数据分组传输相关的一些参数可以不是多播协议的一部分。例如,可能需要减小由根设备发送到网络10的数据分组的尺寸,或者增加由根设备发送的数据分组之间的最小传输间隔。指定数据分组尺寸、最小传输间隔等的参数可以不是多播协议的一部分,并且因此可能无法由在根设备12上实现多播协议的软件应用/程序调整。
在实施例中,根设备12包括至少一个可能能够控制/调整与在根设备12处的多播操作相关联的一个或多个参数的软件应用12d或程序。应用12d可以使用处理器12b运行,并且可能能够(或者被配置为)控制根设备12怎样和何时使用多播处理向网络10发送数据分组。应用12d可能能够基于从网络10中的节点接收的反馈来调整一个或多个参数。
在附加或替代实施例中,根设备12可以包括多个应用12d。例如,第一应用可以在根设备12上实现多播操作,并且第二应用可以响应于从网络10中的节点接收的反馈来控制第一应用并调整与多播操作关联的参数。这种布置在第一应用自身不能进行所需的参数调整中的一些或全部的实施例中,或者当未在多播协议中定义需要被调整的参数时会是有用的。第二应用可以被配置为自己调整所需的参数。替代地,第二应用可以被配置为确定何时第一应用正在准备使用多播协议发送数据分组,检查由第一应用使用的参数和任何反馈,并且在允许第一应用发送数据分组之前调整与传输关联的参数。例如,多播协议自身可以不指定最大数据分组尺寸,但是根设备12可能已经接收到指示根设备所多播的数据分组的尺寸可能需要减小的反馈。因此,例如,当第一应用正在准备发送数据分组时,第二应用可以介入来检查数据分组的数据分组尺寸。如果第二应用确定数据分组尺寸太大(基于接收到的反馈),则第二应用可以在传输之前提示第一应用减小数据分组尺寸。作为响应,第一应用可以将数据分组拆分成多个较小的数据分组。类似地,如果例如反馈指示可能需要增加发送新数据分组之间的最小间隔,则第二应用可能要求第一应用延迟数据分组的传输。
在实施例中,对由多播协议定义的参数(例如,最小重传间隔)或与多播操作相关联的参数(但不由协议定义的参数,例如,最大数据分组尺寸、发送数据分组之间的最小间隔等)的调整可以在多播协议级别实现、或者通过多播协议级别和应用级别之间的某种其它协议/逻辑实现。
在实施例中,对多播协议参数的任何调整和/或对与多播操作相关联的参数的调整可以被传送到网络10中的每个转发设备(节点14/16),使得每个转发设备也可以使用相同的参数。根设备12可以经由专用的多播或单播数据分组,将新的、经调整的一个或多个参数发送到转发设备。替代地,根设备可以在下一次根设备向网络10进行数据分组的多播时,在多播数据分组的报头内向转发设备发送新的经调整的一个或多个参数。
为了提供反馈,节点14/节点16可以执行以下中的任何一个或多个:在多播数据分组的报头中设置标志、修改多播数据分组的报头中的保留字段、向多播数据分组添加新的报头,以及修改多播数据分组的报头中的字段的至少一位。因此,节点14/节点16不改变多播数据分组的内容或数据部分,而是修改多播数据分组的报头部分来提供反馈数据。节点的存储器、数据存储和/或处理能力会影响节点为了提供反馈而采取动作的时间。例如,为了提供反馈,受约束的节点14可能能够对报头部分进行相对简单的修改,例如,在报头的字段中设置标志或修改位。可以预定义或专门保留用于提供反馈的可以被设置的标志或者可以被修改的位,使得节点14知道如何向源设备12提供反馈,并且使得源设备12知道在接收到的数据包中的哪里找到反馈数据。可以存在单个可以被设置的标志,使得该标志的设置指示关于多播处理的问题,但是可以不指示问题是什么。然后,源设备12可能必须执行一系列修改,以确定问题-这将在下面参考图3更详细地解释。替代地,数据分组的报头部分中可以存在多于一个可以被设置的标志,其中每个标志指示关于多播处理的具体问题,例如,一个标志用于指示多播传输速率太高,另一个标志指示经由多播协议发送的数据分组太大等。受约束的节点14可能能够设置这些标志中的一个或多个。类似地,报头部分中的单个位或多个位可以是可修改的。
具有更多存储器、数据存储和/或处理能力的未约束(或较少约束)的节点16可能能够执行与受约束的节点14相同的基本修改,和/或可能能够进行其它修改以向源设备12提供更具体的反馈。例如,节点16可能能够向多播数据分组添加新的报头,以提供反馈数据,其中新报头包含关于多播处理的具体问题的信息,和/或节点16可能能够使用报头部分中的附加的保留位/标志来提供具体的反馈。
在实施例中,如果网络10包括一个或多个受约束的节点14和一个或多个未约束的节点16,则每个节点类型(即,受约束和未约束)使用的反馈机制可以对所有节点类型是相同的或通常适用于所有节点类型。例如,如果节点16在数据分组的报头部分中添加新的报头,或者使用保留的位/标志来提供反馈,则从节点16接收这个修改后的数据分组的未约束的节点14可能不理解或不能处理数据分组。由未约束的节点添加的附加反馈可能阻止受约束的节点适当地处理数据分组。因此,可能需要适当地选择节点16使用的反馈机制,使得包含反馈的数据分组可以被受约束的节点14处理。但是,如果接收重传的数据分组的节点14和节点16能够处置/处理包括附加报头(或附加位/标志等)的数据分组,则可以允许未约束的节点16以这种方式修改数据分组,以提供具体的反馈数据。
在实施例中,源设备12的通信模块12a可以使用多跳多播协议或经由直接多播协议来对数据分组进行多播。
在实施例中,通信网络10可以是无线网状网络。
在实施例中,由源设备12接收的数据分组中的反馈数据可以是以下中的至少一个:数据分组的报头中的标志、数据分组的报头中的经修改的保留字段、添加到数据分组的新报头、数据分组的报头中的字段的经修改的位。接收到的数据分组中的反馈数据可以指示以下中的任何一个或多个:多播操作的非具体问题、多播操作的具体问题、多播传输速率高、数据分组尺寸大、数据分组被分段、最小重传间隔小、多播数据分组之间的最小时间延迟需要增加、建议的最小时间延迟、最大数据分组尺寸需要减小以及建议的最大数据分组尺寸。因此,反馈数据可以仅指示多播操作对于通信网络不是最优的,或者可以指示关于与多播操作关联的一个或多个可变参数的具体问题,并且可以指定可以如何修改可变参数来优化用于网络的多播操作。
在实施例中,与多播操作关联的至少一个可变参数是由多播协议定义的参数。
在实施例中,通信模块能够(被配置为):向网络中的多个节点发送另外的数据分组,另外的数据分组包括修改后的可变参数和对节点使用修改后的可变参数的指示。通信模块可以使用多播、单播和广播中的一个或多个来发送另外的数据分组。在实施例中,通信模块可以使用多播来发送另外的数据分组,其中可以在多播的另外的数据分组的报头中包含修改后的可变参数和指示。
如下面参考图7更详细解释的,可以提供防止接收包含反馈数据的重传的多播数据分组的任何节点自己重传具有反馈数据的多播数据分组的机制。这对于防止源设备12多次接收相同的反馈可以是有用的。类似地,如下面参考图6所解释的,可以提供防止源设备12根据重传的多播数据分组的多个副本进行动作的机制。
现在转到图2,该图2示出了由源设备12执行的、响应于反馈数据而修改多播操作的一般步骤的流程图。该方法在开始步骤S20处开始,并且在步骤S22处,源设备12使用存储的与多播操作关联的一个或多个可变参数来将数据分组多播到网络10中的若干节点。在实施例中,源设备12可以是多个通信网络10的一部分,并且源设备12可能能够使用不同的多播操作来与每个网络进行通信。在这样的实施例中,源设备12可以选择存储的用于特定通信网络的多播操作,并且使用所选择的多播操作向网络中的节点发送数据分组。源设备12可以使用相同或不同的多播操作与另一个通信网络中的节点进行通信。源设备12可以从每个通信网络中的节点接收相同或不同的反馈,使得对于每个通信网络,多播操作都是可以被源设备12优化的。
在实施例中,源设备12可以存储供每个通信网络使用的单个多播操作。在从一个或多个通信网络接收到反馈数据之后,源设备12可以被配置为将多播操作的修改版本添加到与特定通信网络一起使用的数据贮存器12c。附加地或替代地,源设备12可以被配置为将数据添加到数据贮存器12c,该数据指示与多播处理关联的至少一个参数要如何针对特定的通信网络进行修改,使得存储的多播操作保持未修改。在这种情况下,通信模块12a在向那个特定通信网络多播数据分组之前,从数据贮存器12c获取这个数据,并且在多播时暂时修改操作。
返回到图2,在步骤S24处,源设备12从网络10中的节点接收重传的多播数据分组。该重传的多播数据分组是在数据分组被节点14/节点16接收后并且被节点14/16重传到网络10中的其它节点之后在步骤S22处由源设备12发送的数据分组。如前面所解释的,在步骤S24处接收的重传的数据分组可以从在步骤S22处最初接收多播数据分组的节点14/16接收,或者可以从网络10中的任何其它节点接收。
处理器12b和/或通信模块12a确定在接收到的重传的多播数据分组中是否提供反馈数据(步骤S26)。这可以涉及例如检查标志是否已被设置、位是否已被改变、新报头是否已被添加到数据分组等。如果在接收到的数据分组内没有识别出反馈数据,则处理器12b(和/或通信模块12a)假设在步骤S2处2使用的多播操作参数是适合于通信网络10的(步骤S28),并且处理在步骤S34处结束。如果在接收到的数据分组中识别出反馈数据,则处理器12b(和/或通信模块12a)修改在步骤S22处使用的多播操作的可变参数中的至少一个,并存储多播操作的修改版本、可变参数的修改版本或指示当多播操作下一次被使用时如何改变每个可变参数的数据(步骤S30)。然后处理在步骤S34处结束。
在实施例中,在步骤S26处识别出的反馈数据可以是非具体的,并且可以仅仅指示多播操作对于网络10不是最优的。在这种情况下,处理器12b可能能够(被配置为)(在步骤S30)修改默认的特定可变参数。例如,处理器12b可以通过减小发送速率来修改默认的多播发送速率。发送速率被减小的量可以是预定的,或者可以由处理器12b选择。在实施例中,在步骤S26处识别出的反馈数据可以是具体的,并且可以指示一个或多个可变参数需要修改,并且处理器12b在步骤S30处修改所指示的一个或多个可变参数。在实施例中,在步骤S26处识别出的反馈数据还可以包括一个或多个可变参数可以被修改成什么的指示。例如,节点16可以知道它能够接收特定尺寸的多播数据分组,但是它不能重传该多播数据分组,因为该尺寸对它来说太大以至于不能发送,或者因为尺寸太大以至于不能由网络中的其它节点接收。因此,节点16可以在反馈数据中提供对优选数据分组尺寸的指示,使得在步骤S30处,处理器12b将与数据分组尺寸相关的可变参数修改为在反馈数据中指示的尺寸。
可选地,对多播协议参数(例如,最小重传间隔)的任何调整和/或对与多播操作关联的参数(例如,最大数据分组尺寸、发送数据分组之间的最小间隔等)的调整可以被传送到转发(重传)从源设备12接收的数据分组的每个节点14/16。如上面所解释的,当向网络10中的其它节点转发接收到的数据分组时,每个转发设备(例如,节点)可以使用与源设备12相同的参数。因此,在步骤32处,源设备12可以经由专用的多播或单播数据分组,或者在下一次源设备12向网络10多播数据分组时在多播数据分组的报头内向节点/转发设备发送修改后的一个或多个参数。
由处理器12b执行的一些步骤可以由源设备12的一个或多个应用12d(与处理器12b结合)执行。例如,如上面所解释的,应用12d可以被配置为调整多播处理的参数,或与多播处理关联的参数。
图3示出了在特定实施例中由源设备12响应于非具体反馈数据而修改多播操作的执行的具体步骤的流程图。在这里,反馈数据仅仅指示多播操作对于通信网络不是最优的,但是不提供应当被修改的多播操作的每个可变参数的指示。
处理在开始步骤S40处开始,并且在步骤S42处,源设备12使用存储的多播操作来向网络10中的若干节点多播数据分组(以与上面针对图2描述的相似方式)。在步骤S44处,源设备12从网络10中的节点接收重传的多播数据分组。该重传的多播数据分组是在数据分组已经由节点14/节点16接收并由节点14/16重传到网络10中的其它节点之后在步骤S42处由源设备12发送的数据分组。如前面所解释的,在步骤S44处接收的重传的数据分组可以从最初在步骤S42处接收多播数据分组的节点14/16接收,或者可以从网络10中的任何其它节点接收。
处理器12b和/或通信模块12a确定在接收到的重传的多播数据分组中是否提供反馈数据(步骤S46)。这可以涉及例如检查标志是否已被设置、位是否已被改变、新报头是否已被添加到数据分组等。如果在接收到的数据分组内没有识别出反馈数据,则处理器12b假设在步骤S42处使用的多播操作参数适合于通信网络10/针对通信网络10进行了优化(步骤S48),并且处理在步骤S64处结束。
如果在接收到的数据分组中识别出反馈数据,则处理器12b采取修改多播操作的可变参数之一的动作。在图3中所示的实施例中,反馈数据是非具体的。因此,在默认情况下,处理器12b可以通过减小传输速率来修改多播操作的传输速率(步骤S50)。这可以是由处理器12b进行的默认修改,因为有可能传输速率需要被修改以适应特定通信网络中的节点的属性,和/或因为这对于实现是相对简单的修改。在实施例中,不同的变量可以默认被修改。
修改后的可变参数(即,传输速率)被存储和/或具有修改后的可变参数的修改后的多播操作被存储,以供源设备12下一次向通信网络10发送数据分组时使用。在步骤S52处,源设备12使用修改后的多播操作/修改后的可变参数向网络10中的节点多播第二数据分组。
如上面所解释的,处理器12b、一个或多个应用12d和/或更高级别的协议或更高级别的设备可以修改多播协议的可变参数(或与多播操作关联的可变参数)。
可选地,对多播协议参数(即,由协议定义的参数)的任何调整和/或对与多播操作关联的参数(即,不是由协议定义但是可以被用于调整多播处理的各个方面的参数)的调整可以被传送到被配置为转发(重发)从源设备12接收的数据分组的每个节点14/16。如上面所解释的,当经由多播向网络10中的其它节点转发接收到的数据分组时,每个转发设备(例如,节点)可以使用与源设备12相同的参数。因此,可选地,源设备12可以经由专用的多播或单播数据分组,或者在下一次源设备12向网络10多播数据分组时在多播数据分组的报头内向节点/转发设备发送任何一个或多个修改后的参数。
在步骤S54处,源设备12从网络10中的节点接收重传的第二多播数据分组。处理器12b确定是否在接收到的重传的第二多播数据分组中提供反馈数据(步骤S56)。这可以涉及例如检查标志是否已被设置、位是否已被改变、新报头是否已被添加到数据分组等。如果在接收到的第二数据分组内没有识别出反馈数据,则处理器12b假设在步骤S52处使用的修改后的多播操作参数适合于通信网络10/对通信网络10进行了优化(步骤S48),并且处理在步骤S64处结束。如果在步骤S56处在接收到的数据分组中识别出反馈数据,则处理器12b可以尝试确定在步骤S50处被修改的相同可变参数(即,传输速率)是否可能需要进一步修改,或者是否不同的可变参数需要修改。例如,处理器12b可以检查(如步骤S58)接收重传的数据分组和接收重传的第二数据分组之间的时间间隔。如果该时间间隔相对较短,则处理器12b可以推断从源设备12(直接)接收多播数据分组的节点仍然没有找到合适的传输速率。如果该时间间隔相对较长,则处理器12b可以推断可能需要更改不同的可变参数。附加地或替代地,处理器12b可以在步骤S58处检查步骤S42和S44以及步骤S52和S54之间的时间间隔。如果步骤S42和S44之间的时间间隔与步骤S52和S54之间的时间间隔基本相同,则处理器12b可以推断传输速率不合适。然后,在任一情况下,处理器可以确定多播处理传输速率是否仍然太高(步骤S60)。如果传输速率太高(基于在步骤S58处执行的分析),则处理器12a可以进一步减小传输速率(步骤S62)并且存储多播操作的进一步修改版本、一个或多个可变参数的进一步修改版本或者指示当下一次使用多播操作时可变参数要如何改变的数据。然后,该处理在步骤S62处结束。
在步骤S60处,处理器12b可以确定传输速率不是太高。这可以是响应于在步骤S58处执行的分析和/或通过确定传输速率不能被进一步减小(即,低于最小传输速率)。在这种情况下,处理器12b在步骤S66处采取修改不同的可变参数的动作,例如,减小经由多播操作发送的数据分组的数据分组尺寸。(如上面所解释的,处理器12b、一个或多个应用12d和/或更高级别的协议或更高级别的设备可以在步骤S66处修改可变参数。如上所述,源设备12可以可选地经由专用的多播或单播数据分组,或者在下一次元设备12向网络10多播数据分组时在多播数据分组的报头中向节点/转发设备发送任何一个或多个修改后的参数。)然后处理在步骤S64处结束。本领域技术人员将理解的是,优化处理可以继续,直到源设备12不再接收到反馈数据。这可以涉及进一步修改相同的可变参数和/或修改其它可变参数。
在多播操作优化处理的实施例中,处理器12a可以被配置为用对应的修改后的可变参数来重写每个存储的可变参数。
在至少一个可变参数包括至少第一可变参数和第二可变参数并且由源设备12接收的反馈数据是具体的(即,反馈数据指定第一可变参数和第二可变参数中的哪一个需要修改)的实施例中,处理器12a可能能够(或者被配置为):使用反馈数据确定第一可变参数和第二可变参数之一需要修改,以优化用于网络的多播操作;并且响应于该确定而修改第一可变参数或第二可变参数。
在至少一个可变参数包括第一可变参数和第二可变参数并且反馈数据不指定第一可变参数和第二可变参数中的哪一个需要修改的实施例中,处理器12a能够(或者被配置为):选择第一可变参数;并且修改第一可变参数,以优化用于网络的多播操作。即,处理器12a简单地选择可变参数之一并修改所选择的可变参数。如前面所提到的,由处理器12a选择的可变参数可以是默认参数(即,如果获得非具体反馈则默认修改的参数)。
多播操作的可变参数之一可以指定多播数据分组之间的最小时间延迟。在这种情况下,处理器12a可能能够(或者被配置为):通过增加多播数据分组之间的最小时间延迟来修改可变参数,以优化用于网络的多播操作。
多播操作的可变参数之一可以指定可以被多播的最大数据分组尺寸。在这种情况下,处理器12a可能能够(或者被配置为):通过减小能够进行多播的最大数据分组尺寸来修改可变参数,以优化用于网络的多播操作。
源设备12的数据贮存器12c可能能够(或者被配置为)存储指定多播数据分组之间的最大时间延迟(即,最小发送或传输速率)的值。最大时间延迟(或最小传输速率)可以被用来防止通信网络变得低效或者发送数据分组太慢。如果通信网络中的大部分节点设备能够以最小传输速率正确地操作(即,它们能够接收和重传数据分组),但是一些节点设备指示传输速率仍然太高,则可以防止源设备12进一步减小传输速率。
在实施例中,至少一个可变参数可以包括指定多播数据分组之间的最小时间延迟的第一可变参数,以及指定可以被多播的最大数据分组尺寸的第二可变参数。在这样的实施例中,通信模块12a可能能够(或者被配置为):使用存储的第一可变参数和第二可变参数向多个节点多播第一数据分组;从节点接收第一数据分组的重传版本,重传的第一数据分组包括第一反馈数据;使用存储的第一可变参数和第二可变参数向多个节点多播第二数据分组;并且从节点接收第二数据分组的重传版本,重传的第二数据分组包括第二反馈数据。作为响应,处理器12b和/或通信模块12a可能能够(或者被配置为)通过以下来优化多播操作:确定多播第一数据分组和多播第二数据分组之间的时间延迟是否已经达到最大时间延迟;并且,响应于该确定,如果第一可变参数尚未达到(即,基本上不等于)最大时间延迟,则通过增加多播数据分组之间的最小时间延迟来修改第一可变参数,以优化用于网络的多播操作。
但是,如果多播第一数据分组和多播第二数据分组之间的时间延迟已经达到最大时间延迟,则处理器12可能能够(或者被配置为):通过减小可以被多播的最大数据分组尺寸来修改第二可变参数,以优化用于网络的多播操作。例如,如果源设备12继续从节点设备接收反馈,但是不能进一步改变传输速率,则源设备12可以修改多播处理的不同的可变参数。
在实施例中,响应于非具体反馈,在修改第二可变参数之前,源设备12可以继续修改第一可变参数直到达到最小/最大值。在其它实施例中,源设备12可以响应于非具体反馈而在修改第一可变参数和修改第二可变参数之间交替。
图4示出了响应于接收具体反馈数据或对多播操作的可变参数的建议修改,由源设备12执行修改多播操作的一般步骤的流程图。该处理在开始步骤S80处开始,并且在步骤S82处,源设备12使用多播操作和存储的一个或多个可变参数向网络10中的若干节点多播数据分组(类似于图2中所示并如上所述的处理)。在步骤S84处,源设备12从网络10中的节点接收重传的多播数据分组。该重传的多播数据分组是在数据分组由节点14/节点16接收并由节点14/16重传到网络10中的其它节点之后在步骤S82处由源设备12发送的数据分组。如前面所解释的,在步骤S84处接收的重传的数据分组可以从最初在步骤S82处接收多播数据分组的节点14/16接收,或者可以从网络10中的任何其它节点接收。
处理器12b和/或通信模块12a确定在接收到的重传的多播数据分组中是否提供反馈数据(步骤S86)。在图4中所示的实施例中,在步骤S84处接收的重传的数据分组中所包含的反馈数据是具体的,并且可以在例如已经被添加到数据分组的新报头中提供。如果在接收到的数据分组中没有识别出反馈数据,则处理器12b假设在步骤S82处使用的多播操作参数是适合通信网络10的(步骤S88),并且处理在步骤S92处结束。如果在步骤S86处接收的数据分组中识别出具体的反馈数据,则响应于反馈数据,处理器12b修改在步骤S82处使用的多播操作的可变参数中的至少一个(步骤S90)。例如,接收到的重传的数据分组可以包含指示哪个具体的可变参数需要修改的反馈数据,和/或可以为具体的可变参数提供建议值。这样的具体的反馈数据可以来自具有修改数据分组以包括这个反馈数据所需的处理能力和/或存储器/数据存储的节点16。处理器12b可以存储多播操作的修改版本、可变参数的修改版本或者指示当下一次使用多播操作时每个可变参数要如何改变的数据。然后,该处理在步骤S92处结束。
图5示出了由节点设备(例如,受约束的节点设备14或节点设备16)执行以向源设备12提供关于多播操作的反馈数据的示例步骤的流程图。示例处理在开始步骤S100处开始,并且在步骤S102处,节点设备接收第一数据分组。第一数据分组可以是从源设备12经由多播接收的第一多播数据分组,或者可以是从另一个节点设备(该节点设备从源设备12直接接收第一多播数据分组,然后重传该数据分组)接收的重传的第一多播数据分组。
在实施例中,在这个阶段,节点设备可能不需要向源设备12发送反馈数据,因为它尚未遇到问题。但是,在其它实施例中,节点设备可能已经遇到问题,并且可能希望向源设备12发送反馈。取决于节点设备是否可能需要在这个阶段(即,在接收到第一数据分组之后)发送反馈,该处理可以前进到步骤S106(需要反馈)或步骤S104'(还不需要反馈)。
节点设备被配置为(自动地或以其它方式)重传其接收的数据分组,使得数据分组跨网络10分发。数据分组可以使用任何通信协议来重传,包括多播、广播、单播等,并且因此可以到达源设备12(最初发送数据分组的设备)。节点设备还可以接收包含反馈数据的数据分组。每个节点设备可以重传包含反馈数据的数据分组,而不对数据分组进行任何修改,和/或它可以在从数据分组中移除任何反馈数据之后重传数据分组。节点设备重传数据分组的方式可以取决于节点设备最近是否重传了包含相同反馈数据的数据分组。例如,如果节点设备识别出由源设备12使用的多播操作的传输速率太高,则节点设备可以在该节点设备重传的下一个接收到的数据分组中添加这个影响的反馈数据。如果节点设备然后接收到包含相同反馈数据的数据分组,则它可以在重传数据分组之前移除反馈数据,以避免在某个时间段内多次提供相同的反馈数据。但是,如果节点设备接收到包含不同反馈数据(例如,指定数据分组尺寸太大)的数据分组,则节点设备可以在不修改的情况下重传数据分组,因为节点设备尚未传送这个反馈数据。因此,在优选实施例中,节点设备可能能够(或者被配置为)忽略重复的反馈数据,或者避免在某个时间段内多次发送反馈数据。
在实施例中,节点设备在接收到第一数据分组时识别多播操作中的问题,并希望向源设备12发送反馈。例如,如果源设备12发送长(大)数据分组,则数据分组可以被分段(即,分裂成更小的数据分组),使得更小的分段的数据分组可以容易地在网络10中被发送。如果网络中的最大传输单位小于由源设备12发送的数据分组的尺寸,则可以由网络适配层协议或诸如6LoWPAN之类的标准互联网协议执行分段。网络中的节点设备(或其它路由设备)可能需要从更小的分段数据分组重组原始的数据分组,以便例如根据数据分组中所包含的数据进行动作或读取该数据。但是,较小的分段的数据分组可能在网络10中丢失,并且与较大的数据分组相比更有可能丢失。如果较小的分段的数据分组丢失,则节点设备可能无法重组由源设备12发送的原始数据分组。在一些情况下,节点设备可能会在它可以重组数据分组之前用完存储较小的分段的数据分组的空闲的存储器(数据存储空间)。因此,在实施例中,节点设备可以确定第一数据分组是分段的数据分组(即,较大数据分组的片段),并且节点设备可能希望向源设备12警告正在发送的数据分组是分段的。
为了提供这种反馈,节点设备可以利用反馈数据修改第一数据分组(在步骤S106处)。节点设备利用反馈数据修改第一数据分组,以指示多播操作的一个或多个可变参数未针对节点设备/网络进行优化。例如,节点设备可以向第一数据分组添加指示数据分组被分段的反馈数据。如上面所提到的,节点设备可以以不同的方式提供这种反馈数据,该方式可以取决于节点设备是受约束的节点设备还是非约束的(或较少约束的)节点设备而变化。
在其它实施例中,节点设备可以在节点设备已经接收到第二数据分组之后识别多播操作中的问题。在这种情况下,节点设备可以开始向网络10中的其它节点重传接收到的第一数据分组。如果在步骤S104'处,在完成(或开始)重传接收到的第一数据分组之前,节点接收到第二数据分组,则在步骤S106'处,节点设备利用反馈数据修改第二数据分组。节点可以仅具有使得其能够一次暂时存储一个用于传输的数据分组的处理能力和/或存储器/数据存储。因而,如果节点设备在发送(或完成发送)第一数据分组之前接收到第二数据分组,则第一数据分组可以被自动丢弃或重写,以存储第二数据分组。因为多播传输速率太高,和/或因为必须发送的数据分组的尺寸太大,节点设备可能还没有完成发送第一数据分组。节点设备利用反馈数据修改第二数据分组,以指示多播处理的一个或多个可变参数未针对节点设备/网络进行优化。如上面所提到的,节点设备可以以不同的方式提供这种反馈数据,该方式可以取决于节点设备是受约束的节点设备还是未约束(或更少约束的)节点设备而变化。
在实施例中,当节点在第一数据分组的重传已经开始或完成之前接收到第二数据分组时,节点可能不能(或者可以被配置为不)重传接收到的第一数据分组。这可以在由节点用于重传数据分组的通信协议(例如,多播协议)中指定,或以其它方式在节点中实现。因此,在实施例中,即使第一数据分组可以暂时存储在节点的数据贮存器中,节点在接收到第二数据分组之后也仍然不重传第一数据分组。在这种情况下,通常从节点接收重传的数据分组的其它设备可能不会接收第一数据分组,除非它从系统/网络中的其它节点接收到第一数据分组。
因此,在实施例中,节点设备可能能够(或者被配置为):从通信网络中的源装置接收第一多播数据分组;通过向第一多播数据分组添加反馈数据来修改第一多播数据分组,该反馈数据指定与用于发送第一多播数据分组的多播操作相关联的至少一个可变参数需要修改,以优化用于网络的多播操作;并且发送修改后的第一多播数据分组。
在替代实施例中,节点设备可能能够(或者被配置为):从网络中的源装置接收第一多播数据分组;并且在重传接收到的第一多播数据分组之前从源装置接收第二多播数据分组;通过向第二多播数据分组添加反馈数据来修改第二多播数据分组,该反馈数据指定用于发送第一多播数据分组和第二多播数据分组的多播协议的至少一个可变参数需要修改,以优化用于网络的多播操作;并且重传修改后的第二多播数据分组。
在实施例中,多播操作的至少一个可变参数指定多播数据分组之间的最小时间延迟。节点设备(或者具体地,节点设备的处理器或通信模块)可能能够(或者被配置为):向第二多播数据分组添加指示需要增加最小时间延迟的反馈数据,以优化用于网络的多播操作。在这种实施例中,节点设备可能能够(或者还被配置为):向第二多播数据分组添加建议的最小时间延迟。如果节点设备是具有针对需要修改的可变参数提供具体反馈以及潜在建议值的处理能力的未约束(或较少约束的节点),则这是可能的。
在实施例中,多播操作的至少一个可变参数指定能够进行多播的最大数据分组尺寸。节点设备(或者具体地,节点设备的处理器或通信模块)可能能够(或者被配置为):向第二多播数据分组添加指示需要减小最大数据分组尺寸的反馈数据,以优化用于网络的多播操作。在这种实施例中,节点设备可能能够(或者还被配置为):向第二多播数据分组添加建议的最大数据分组尺寸。如上所述,如果节点设备是具有针对需要修改的可变参数提供具体反馈以及潜在建议值的处理能力的未约束(或较少约束的节点),则这是可能的。
节点设备可以通过执行以下中的一个或多个来向第二多播数据分组添加反馈数据:在第二多播数据分组的报头中设置标志、修改第二多播数据分组的报头中的保留字段、向第二多播数据分组添加新报头,以及修改第二多播数据分组的报头中的字段的至少一位。
如前面所提到的,本技术的实施例提供了防止接收来自自身的包含反馈数据的数据分组的任何节点重传具有反馈数据的数据分组的机制。这对于防止源设备12多次接收相同的反馈会是有用的。因此,在步骤S108处,节点设备可以采取动作来防止自己重传具有在步骤S106或S106'处添加的相同反馈数据的数据分组,或者减少另一个节点多次重传相同反馈数据的机会。
在实施例中,节点设备包括当节点设备重传修改后的第二多播数据分组时激活(或打开,或启动,或倒计时)的定时器。因此,当节点设备发送包含反馈数据的数据分组时,节点设备可以开启定时器或时钟(步骤S108)。定时器可以倒计时预定义的时间量(例如,一分钟、几分钟、一小时等),而当定时器倒计时时,节点设备可以不重传包含与定时器启动时发送的反馈数据相同的反馈数据的数据分组。
在实施例中,节点设备可能能够(或者被配置为):接收第三(或另外的)多播数据分组;确定用于发送第三(或另外的)多播数据分组的多播协议的至少一个可变参数需要修改;检查定时器是否已经过期;响应于检查,如果定时器已经到期,则通过将反馈数据添加到第三(或另外的)多播数据分组来修改第三(或另外的)多播数据分组;并且重传修改后的第三(或另外的)多播数据分组。在特定的实施例中,如果定时器尚未到期,则节点设备可以在不修改(即,利用反馈数据)的情况下重传第三/另外的多播数据分组。
附加地或替代地,节点设备可以与反馈数据一起向第二数据分组添加唯一标识符(ID),其中ID识别向数据分组添加反馈数据的节点设备。因此,在实施例中,节点设备可能能够(或者被配置为):向第二多播数据分组添加识别数据,该识别数据识别添加反馈数据的装置。接收包含该ID的重传的数据分组的网络10中的其它设备(例如,节点或源)可以确定它们是否已经在某个时间段内(例如,在最后几分钟、最后一小时内,等等)重传了包含相同反馈数据和相同ID的数据分组。如果设备已经重传了包含相同反馈数据和相同ID的数据分组,则设备可以丢弃接收到的数据分组,或者可以重传不具有反馈数据的接收到的数据分组。
因此,在实施例中,节点设备可能能够(或者被配置为):接收第三(或另外的)多播数据分组;确定用于发送第三(或另外的)多播数据分组的多播协议的至少一个可变参数需要修改;检查第三(或另外的)多播数据分组是否包括识别数据;响应于该检查,如果第三(或另外的)多播数据分组不包括识别数据,则通过添加反馈数据来修改第三(或另外的)多播数据分组;并且重传修改后的第三(或另外的)多播数据分组。在特定实施例中,如果第三(或另外的)多播数据分组包括识别数据,则节点设备被配置为重传无修改/不添加反馈数据的第三(或另外的)多播数据分组,因为识别数据指示反馈数据已经被发送。
在图5中,一旦定时器被激活并且/或唯一ID已被添加到经修正的第二数据分组,节点设备就发送经修正的第二数据分组S110。然后处理在步骤S112处结束。
图6示出了当设备接收多个反馈数据时由节点设备或源设备执行的步骤的流程图。该处理在步骤S120处开始,并且在步骤S122处,设备(节点或源)接收重传的数据分组S122。该设备确定重传的数据分组是否包含反馈数据(步骤S124)。如果没有识别出反馈数据,则处理在步骤S138处结束。如果识别出反馈数据,并且如果设备是节点设备,则设备可以重传具有反馈数据的接收到的数据分组(步骤S126)。如果设备是源设备,则设备可以根据反馈数据而行动(例如,改变多播协议的可变参数)。在实施例中,设备(节点或源)可以不立即采取任何动作,并且可以在重传数据分组/修改可变参数之前等待较短的时间段。
可选地,在源设备12的情况下,源设备可以在执行步骤S124之后在根据反馈数据而行动之前等待较短的时间段。如果在这段时间内源设备没有从网络10接收到另外的数据分组(在步骤S128处),则源设备前进到图2的步骤S30(步骤S130)(即,响应于反馈数据而修改多播操作的一个或多个可变参数)。如果在这个时间段内源设备确实接收到另外的数据分组,则处理继续到步骤S132。在实施例中,源设备可以在步骤S126处根据接收到的反馈数据采取行动,并且可以不用在这样做之前等待一段时间。在节点设备的情况下,节点设备可以自动重传数据分组而无需等待另外的数据分组到达,尤其是如果该节点是具有有限的存储器/数据存储的受约束的节点或较少约束的节点时。
如果在步骤S132处,设备(节点或源)检查在步骤S128处接收的另外的重传的数据分组是否包含反馈数据(步骤S132)。如果没有反馈数据,则处理在步骤S138处结束。如果在另外的重传的数据分组中发现反馈数据,则设备检查另外的重传的数据分组中的反馈数据是否是在步骤S124处发现的相同的反馈数据(步骤S134)。如果在步骤S134处反馈数据相同,则设备可以忽略该另外的数据分组中的反馈数据(步骤S136)。例如,如果设备是源设备,则源设备忽略反馈数据,并且不进一步修改与反馈数据对应的一个或多个相同可变参数。如果该设备是节点设备,则节点设备可以从该另外的数据分组中移除反馈数据,然后重传数据分组。然后处理在步骤S138处结束。但是,如果在步骤S134处反馈数据不同,则源设备前进到图3的步骤S58(步骤S140),而节点设备在不移除反馈数据的情况下重传该另外的数据分组(步骤S142)。
在实施例中,节点设备可以基本上与在步骤S126处重传数据分组同时地开启定时器。在这种实施例中,如果节点设备在步骤S134处确定两个数据分组中的反馈数据相同,则节点设备可以被配置为检查定时器是否仍在运行或已经到期。如上面所解释的,如果节点设备定时器仍在运行,则节点设备重传不具有反馈数据的另外的数据分组。但是,如果节点设备定时器已经到期,则节点设备可以替代地重传具有反馈数据的另外的数据分组。因此,在步骤S136处采取的动作可以取决于节点是否设置了定时器而变化。
图7示出了响应于反馈数据而修改多播操作的步骤的示意图。在这里,源设备12向网络中的特定节点(包括第一节点N1)多播数据分组。第一节点N1可以是受约束的节点14或未约束的(或较少约束的)节点16。第一节点N1被配置为向源设备12和第二节点N2重传接收到的数据分组。第二节点N2可以是受约束的节点14或未约束的(或较少约束的)节点16。因此,第二节点N2可以经由第一节点N1将反馈数据发送回到源12。第一节点N1和第二节点N2可以使用任何通信技术(诸如广播、单播和多播)来发送数据分组。
在步骤S160,源12向第一节点N1多播数据分组1。如前面所解释的,源12使用多播操作和存储的与多播操作关联的可变参数来多播数据分组1。两个节点N1和N2均重传任何接收到的数据分组,以跨网络传送数据分组。因此,第一节点N1接收数据分组1并重传数据分组1(步骤S162)。如步骤S162的双箭头所示,第一节点N1可以使用导致向源12和第二节点N2发送数据分组(例如,经由多播)的通信协议来重传数据分组1。第二节点N2可以接收数据分组1,并根据需要开始重传数据分组(未示出)。但是,在所示实施例中,源12在第二节点N2重传数据分组1之前对数据分组2进行多播(步骤S164)。第一节点N1接收数据分组2并重传数据分组2(步骤S166)。因此,第二节点N2在其重传数据分组1之前接收到数据分组2。这会导致数据分组1被丢弃/删除/重写,尤其是如果节点N2仅具有有限的存储器/数据存储,并且可能例如只能一次存储单个数据分组的话。因此,在步骤S168处,第二节点N2向数据分组2添加反馈数据,然后重传修改后的数据分组2(步骤S170)。反馈数据可以例如指示多播操作的传输速率太高。在所示示例中,第二节点N2被配置为至少向第一节点N1重传数据分组。
在实施例中,如果在第一数据分组的重传开始或完成之前节点N1/N2接收到第二数据分组,则节点N1、N2可以被配置为不重传第一数据分组。这可以在由节点N1/N2使用的通信操作(例如,多播协议)中指定,或者以其他方式在节点N1/N2中实现。因此,在实施例中,即使第一数据分组可以暂时存储在节点N1/N2的数据贮存器中,如果接收到第二数据分组,则节点仍然不重传第一数据分组。在这种情况下,通常从节点N1/N2接收重传的数据分组的节点可能接收不到第一数据分组,除非它从系统/网络中的其它节点接收到第一数据分组。
第一节点N1被配置为向其它设备(包括源12)重传接收到的修改后的数据分组2。但是,在第一节点N1重传修改后的数据分组2之前,源12对数据分组3(步骤S172)进行多播,使得第一节点N1在重传修改后的数据分组2之前接收多播数据分组3。因此,源12尚未接收到任何反馈数据,因此尚未修改多播操作或相关联的可变参数。
第一节点N1向接收到的数据分组3添加反馈数据(步骤S174),并重传具有反馈数据的修改后的数据分组3(步骤S176)。反馈数据可以指示多播操作的传输速率太高。源设备12接收重传的修改后的数据分组3并识别反馈数据。如先前所述,响应于反馈数据,源设备12调整多播操作的一个或多个可变参数(步骤S178)。
第二节点N2还从节点N1接收重传的修改后的数据分组3。由于第二节点N2最近已经发送了具有相同反馈数据的数据分组(在步骤S170中),因此第二节点N2移除数据分组3中的反馈数据(步骤S180),然后重传数据分组3(步骤S182)。如果在步骤S168或步骤S170处,第二节点N2开启了定时器(如上面关于图5所述),如果当第二节点N2从节点N1接收到数据分组3时定时器已经到期,则第二节点N2可以重传无修改(即,具有反馈数据)的数据分组3。附加地或替代地,如果包含在数据分组3中的反馈数据与在步骤S170处添加到数据分组2的反馈数据不同,则在步骤S180处,第二节点可以重传无修改的数据分组3。
在步骤S184处,源12使用修改后的可变参数和/或修改后的多播操作来对数据分组4进行多播。第一节点N1从源12接收多播数据分组4并重传数据分组4(步骤S186)。第二节点N2在不添加反馈数据的情况下重传接收到的数据分组4(第二节点N2没有另外的反馈要提供)(步骤S188),或者具有附加的反馈数据(未示出)。以这种方式,由源12使用的多播操作和相关联的一个或多个参数可以被优化来适合于网络中的一些或全部节点设备。
本技术的实施例还提供了承载代码的非暂态数据载体,当在处理器上实现该代码时,使得处理器执行本文描述的方法。
这些技术还提供处理器控制代码,以实现上述方法,例如在通用计算机系统上或数字信号处理器(DSP)上。这些技术还提供承载处理器控制代码的载体,当代码运行时,实现上述任何方法,尤其是在非暂态数据载体(诸如盘、微处理器、CD或DVD-ROM)上、编程存储器(诸如只读存储器(固件))或者数据载体(诸如光或电信号载体)上。代码可以被设置在载体(诸如盘、微处理器、CD或DVD-ROM)上、编程存储器(诸如非易失性存储器(例如,闪存)或只读存储器(固件))上。实现这些技术的实施例的代码(和/或数据)可以包括在常规编程语言(诸如C)(解释的或编译的)中的源、对象或可执行代码,或者汇编代码、用于设置或控制ASIC(专用集成电路)或FPGA(现场可编程门阵列)的代码,或用于诸如VerilogTM或VHDL(超高速集成电路硬件描述语言)的硬件描述语言的代码。如本领域技术人员将认识到的,这样的代码和/或数据可以在相互通信的多个耦合的组件之间分布。该技术可以包括控制器,该控制器包括耦合到系统的一个或多个组件的微处理器、工作存储器和程序存储器。
用于执行上述技术的操作的计算机程序代码可以用一种或多种编程语言(包括面向对象的编程语言和常规的程序性编程语言)的任意组合来编写。代码组件可以被实现为采用任何抽象级别(从本地指令集的直接机器指令到高级编译或解释语言结构)的过程、方法等并且可以包括可以指令或指令序列形式的子组件。
对于本领域技术人员还将清楚的是,根据本技术的优选实施例的逻辑方法的全部或部分可以适当地体现在包括逻辑元件以执行上述方法的步骤的逻辑装置中,并且这种逻辑元件可以包括诸如例如可编程逻辑阵列中的逻辑门或者专用集成电路的组件。这样的逻辑布置还可以在使用例如虚拟硬件描述符语言的这样的阵列或电路中暂时或永久建立逻辑结构的使能元件中实施,其中虚拟硬件描述符语言可以使用固态的或可发送的载体介质来存储和发送。
在实施例中,本技术可以以其上具有功能数据的数据载体的形式实现,所述功能数据包括功能计算机数据结构,当其被加载到计算机系统或网络中并且由此操作时,使得所述计算机系统执行上述方法的所有步骤。
本领域技术人员将认识到的是,虽然上述内容已经描述了被认为是最佳模式的内容,并且在适当的情况下还有执行本技术的其它模式,但是本技术不应当被限制于优选实施例的本描述中所公开的具体配置和方法。本领域技术人员将认识到,本技术具有广泛的应用范围,并且在不背离如所附权利要求所限定的任何发明构思的情况下,实施例可以进行宽范围的修改。
Claims (35)
1.一种装置,包括:
数据贮存器,存储与多播操作相关联的至少一个可变参数;
通信模块:
使用存储的可变参数向通信网络中的多个节点多播数据分组;以及
从所述多个节点中的节点接收多播数据分组的重传版本,重传的数据分组包括反馈数据;以及
至少一个处理器,耦合到所述数据贮存器和所述通信模块以:
使用所述反馈数据确定所述可变参数需要修改,以优化用于网络的多播操作;
响应于所述反馈数据而修改所述可变参数;以及
将修改后的可变参数存储在所述数据贮存器中。
2.如权利要求1所述的装置,其中处理器利用修改后的可变参数重写存储的可变参数。
3.如权利要求1或2所述的装置,其中可变参数指定多播数据分组之间的最小时间延迟,并且其中处理器通过增加多播数据分组之间的最小时间延迟来修改可变参数,以优化多播操作。
4.如权利要求1、2或3所述的装置,其中可变参数指定能够进行多播的最大数据分组尺寸,并且其中处理器通过减小能够进行多播的最大数据分组尺寸来修改可变参数,以优化多播操作。
5.如权利要求1至4中任一项所述的装置,其中所述至少一个可变参数包括第一可变参数和第二可变参数,并且其中处理器:
使用反馈数据来确定第一可变参数和第二可变参数之一需要修改,以优化用于网络的多播操作;以及
响应于所述确定,修改第一可变参数或第二可变参数。
6.如权利要求1至4中任一项所述的装置,其中所述至少一个可变参数包括第一可变参数和第二可变参数,其中反馈数据不指定第一可变参数和第二可变参数中的哪一个需要修改,其中处理器:
选择第一可变参数;以及
修改第一可变参数,以优化用于网络的多播操作。
7.如前述权利要求中任一项所述的装置,其中数据贮存器存储指定多播数据分组之间的最大时间延迟的值。
8.如权利要求7所述的装置,其中所述至少一个可变参数包括指定多播数据分组之间的最小时间延迟的第一可变参数和指定能够进行多播的最大数据分组尺寸的第二可变参数;以及
其中通信模块:
使用存储的第一可变参数和第二可变参数向所述多个节点多播第一数据分组;
从节点接收第一数据分组的重传版本,重传的第一数据分组包括第一反馈数据;
使用存储的第一可变参数和第二可变参数向所述多个节点多播第二数据分组;
从节点接收第二数据分组的重传版本,重传的第二数据分组包括第二反馈数据;以及
其中处理器通过以下来优化多播操作:
确定多播第一数据分组和多播第二数据分组之间的时间延迟是否已达到最大时间延迟;以及
响应于所述确定,如果第一可变参数不等于最大时间延迟,则通过增加多播数据分组之间的最小时间延迟来修改第一可变参数,以优化多播操作。
9.如权利要求8所述的装置,其中,如果多播第一数据分组和多播第二数据分组之间的时间延迟已达到最大时间延迟,则处理器通过减小能够进行多播的最大数据分组尺寸来修改第二可变参数,以优化多播操作。
10.如前述权利要求中任一项所述的装置,其中通信模块被配置为使用多跳多播对数据分组进行多播。
11.如前述权利要求中任一项所述的装置,其中通信网络是无线网状网络。
12.如前述权利要求中任一项所述的装置,其中接收到的数据分组中的反馈数据是以下中的至少一个:数据分组的报头中的标志、数据分组的报头中的修改后的保留字段、添加到数据分组的新报头、数据分组的报头中的字段的修改后的位。
13.如前述权利要求中任一项所述的装置,其中反馈数据指示以下中的任何一个或多个:关于多播操作的非具体问题、关于多播操作的具体问题、多播传输速率高、数据分组尺寸大、数据分组被分段、最小重传间隔较小、多播数据分组之间的最小时间延迟需要增加、建议的最小时间延迟、最大数据分组尺寸需要减小,以及建议的最大数据分组尺寸。
14.如前述权利要求中任一项所述的装置,其中与多播操作相关联的所述至少一个可变参数是由多播协议定义的参数。
15.如前述权利要求中任一项所述的装置,其中通信模块向网络中的多个节点发送另外的数据分组,所述另外的数据分组包括修改后的可变参数以及让节点使用修改后的可变参数的指示。
16.如权利要求15所述的装置,其中通信模块使用以下中的一个或多个来发送所述另外的数据分组:多播、单播和广播。
17.如权利要求15所述的装置,其中通信模块使用多播来发送所述另外的数据分组,并且其中修改后的可变参数和指示包含在多播的另外的数据分组的报头中。
18.一种用于重传数据分组的装置,所述装置包括:
至少一个处理器;以及
通信模块,耦合到所述至少一个处理器以:
从通信网络中的源装置接收第一多播数据分组;
通过向第一多播数据分组添加反馈数据来修改第一多播数据分组,所述反馈数据指定与用于发送第一多播数据分组的多播操作相关联的至少一个可变参数需要修改,以优化用于网络的多播操作;以及
重传修改后的第一多播数据分组。
19.如权利要求18所述的装置,其中,如果通信模块在重传接收到的第一多播数据分组之前从源装置接收到第二多播数据分组,则通信模块:
通过向第二多播数据分组添加反馈数据来修改第二多播数据分组,所述反馈数据指定用于发送第一多播数据分组和第二多播数据分组的多播操作的至少一个可变参数需要修改,以优化用于网络的多播操作;以及
重传修改后的第二多播数据分组。
20.如权利要求18或19所述的装置,其中通信模块通过以下中的一个或多个向一个或多个节点重传修改后的多播数据分组:多播、单播和广播。
21.如权利要求18至20中任一项所述的装置,其中多播操作的可变参数是多播数据分组之间的最小时间延迟,并且其中通信模块:
向多播数据分组添加指示最小时间延迟需要增加的反馈数据,以优化用于网络的多播操作。
22.如权利要求21所述的装置,其中通信模块向多播数据分组添加建议的最小时间延迟。
23.如权利要求18至22中任一项所述的装置,其中多播操作的可变参数是能够进行多播的最大数据分组尺寸,并且其中通信模块向多播数据分组添加指示最大数据分组尺寸需要减小的反馈数据,以优化用于网络的多播操作。
24.如权利要求23所述的装置,其中通信模块向多播数据分组添加建议的最大数据分组尺寸。
25.如权利要求18至24中任一项所述的装置,其中通信模块通过执行以下中的一个或多个向多播数据分组添加反馈数据:在多播数据分组的报头中设置标志、修改多播数据分组的报头中的保留字段、向多播数据分组添加新报头、以及修改多播数据分组的报头中的字段的至少一位。
26.如权利要求18至25中任一项所述的装置,其中通信模块向多播数据分组添加识别数据,所述识别数据识别添加反馈数据的装置。
27.如权利要求18至26中任一项所述的装置,其中通信模块:
接收另外的多播数据分组;
确定用于发送所述另外的多播数据分组的多播操作的至少一个可变参数需要修改,以优化用于网络的多播操作;
检查所述另外的多播数据分组是否包括识别数据;
响应于所述检查,如果所述另外的多播数据分组不包括识别数据,则通过添加反馈数据来修改所述另外的多播数据分组;以及
重传修改后的另外的多播数据分组。
28.如权利要求27所述的装置,其中,如果所述另外的多播数据分组包括识别数据,则通信模块重传所述另外的多播数据分组。
29.如权利要求18至28中任一项所述的装置,还包括定时器,当通信模块重传修改后的多播数据分组时,所述定时器激活。
30.如权利要求29所述的装置,其中通信模块:
接收另外的多播数据分组;
确定用于发送所述另外的多播数据分组的多播操作的至少一个可变参数需要修改,以优化用于网络的多播操作;
检查定时器是否已经到期;
响应于所述检查,如果定时器已经到期,则通过向所述另外的多播数据分组添加反馈数据来修改所述另外的多播数据分组;以及
重传修改后的另外的多播数据分组。
31.如权利要求30所述的装置,其中,如果定时器尚未到期,则通信模块重传所述另外的多播数据分组。
32.一种通信网络,包括:
源设备,包括存储与多播操作相关联的至少一个可变参数的数据贮存器、至少一个处理器以及耦合到存储器和处理器的通信模块,以:
使用存储的可变参数向所述网络中的多个节点设备多播数据分组;以及
节点设备,包括至少一个处理器以及耦合到所述至少一个处理器的通信模块,以:
从所述源装置接收所述数据分组,
通过向所述数据分组添加反馈数据来修改所述数据分组,所述反馈数据指定用于发送数据分组的多播操作的最少一个可变参数需要修改,以优化用于网络的多播操作;以及
重传修改后的数据分组;以及
其中源设备通信模块:
从所述节点设备接收修改后的数据分组;
使用反馈数据确定至少一个可变参数需要修改,以优化用于网络的多播操作;
响应于反馈数据而修改可变参数;以及
将修改后的可变参数存储在数据贮存器中。
33.一种优化多播操作的方法,所述方法包括:
使用多播操作和与所述多播操作相关联的至少一个可变参数,将数据分组多播到通信网络中的多个节点;
从所述多个节点中的节点接收多播数据分组的重传版本,重传的数据分组包括反馈数据;
使用所述反馈数据确定所述可变参数需要修改,以优化用于网络的多播操作;
响应于反馈数据而修改可变参数;以及
存储修改后的可变参数。
34.一种装置,包括:
用于存储与多播操作相关联的至少一个可变参数的部件;
用于使用存储的可变参数向通信网络中的多个节点多播数据分组的部件;
用于从所述多个节点中的节点接收多播数据分组的重传版本的部件,重传的数据分组包括反馈数据;以及
用于使用所述反馈数据确定所述可变参数需要修改,以优化用于网络的多播操作以及用于响应于所述反馈数据而修改可变参数的部件。
35.一种承载代码的非暂态数据载体,当在处理器上实现所述代码时,使处理器执行如权利要求33所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1607582.2A GB2549797B (en) | 2016-04-29 | 2016-04-29 | Feedback mechanism for multicast protocols |
GB1607582.2 | 2016-04-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107342874A true CN107342874A (zh) | 2017-11-10 |
CN107342874B CN107342874B (zh) | 2021-05-28 |
Family
ID=56234195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710290115.2A Active CN107342874B (zh) | 2016-04-29 | 2017-04-28 | 用于多播协议的反馈机制 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10348644B2 (zh) |
KR (1) | KR102309756B1 (zh) |
CN (1) | CN107342874B (zh) |
GB (1) | GB2549797B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9124507B1 (en) * | 2014-04-10 | 2015-09-01 | Level 3 Communications, Llc | Proxy of routing protocols to redundant controllers |
KR101970666B1 (ko) * | 2016-06-20 | 2019-04-22 | 엘지전자 주식회사 | 공기조화기 및 이의 통신방법 |
CN107947992B (zh) * | 2017-12-06 | 2020-07-28 | 常熟理工学院 | 一种快速的大数据通信方法 |
US10680899B1 (en) * | 2018-06-28 | 2020-06-09 | Synapse Wireless, Inc. | Topology discovery through multicast transmission |
US10862807B2 (en) * | 2018-09-19 | 2020-12-08 | Cisco Technology, Inc. | Packet telemetry data via first hop node configuration |
US11349807B2 (en) * | 2020-04-02 | 2022-05-31 | Cisco Technology, Inc. | Directed multicast based on multi-dimensional addressing relative to identifiable LLN properties |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552661A (zh) * | 2009-03-26 | 2009-10-07 | 吕晓雯 | 一种差错控制方法 |
CN101652958A (zh) * | 2007-04-05 | 2010-02-17 | 艾利森电话股份有限公司 | 用于在电信系统中促成高效多媒体广播/多播服务的方法 |
CN102196361A (zh) * | 2010-03-05 | 2011-09-21 | 中兴通讯股份有限公司 | Mbs协议数据单元的发送和接收方法、装置及系统 |
CN103067137A (zh) * | 2013-01-16 | 2013-04-24 | 西安电子科技大学 | 基于网络编码的多播重传方法 |
US20130163444A1 (en) * | 2011-12-22 | 2013-06-27 | Cellco Partnership | Multicast resource optimization |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6850488B1 (en) | 2000-04-14 | 2005-02-01 | Sun Microsystems, Inc. | Method and apparatus for facilitating efficient flow control for multicast transmissions |
GB0303812D0 (en) * | 2003-02-19 | 2003-03-26 | British Telecomm | Tracking audience size |
US8756333B2 (en) | 2006-11-22 | 2014-06-17 | Myspace Music Llc | Interactive multicast media service |
US10257665B2 (en) * | 2013-02-25 | 2019-04-09 | Qualcomm Incorporated | Analytics engines for IoT devices |
US20140376376A1 (en) * | 2013-06-20 | 2014-12-25 | Alcatel-Lucent Usa Inc. | Method And Apparatus For Improved Multicast Rate Control |
-
2016
- 2016-04-29 GB GB1607582.2A patent/GB2549797B/en active Active
-
2017
- 2017-04-07 KR KR1020170045469A patent/KR102309756B1/ko active IP Right Grant
- 2017-04-20 US US15/492,266 patent/US10348644B2/en not_active Expired - Fee Related
- 2017-04-28 CN CN201710290115.2A patent/CN107342874B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101652958A (zh) * | 2007-04-05 | 2010-02-17 | 艾利森电话股份有限公司 | 用于在电信系统中促成高效多媒体广播/多播服务的方法 |
CN101552661A (zh) * | 2009-03-26 | 2009-10-07 | 吕晓雯 | 一种差错控制方法 |
CN102196361A (zh) * | 2010-03-05 | 2011-09-21 | 中兴通讯股份有限公司 | Mbs协议数据单元的发送和接收方法、装置及系统 |
US20130163444A1 (en) * | 2011-12-22 | 2013-06-27 | Cellco Partnership | Multicast resource optimization |
CN103067137A (zh) * | 2013-01-16 | 2013-04-24 | 西安电子科技大学 | 基于网络编码的多播重传方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20170124073A (ko) | 2017-11-09 |
GB201607582D0 (en) | 2016-06-15 |
CN107342874B (zh) | 2021-05-28 |
US20170317952A1 (en) | 2017-11-02 |
KR102309756B1 (ko) | 2021-10-08 |
US10348644B2 (en) | 2019-07-09 |
GB2549797B (en) | 2018-09-19 |
GB2549797A (en) | 2017-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107342874A (zh) | 用于多播协议的反馈机制 | |
US5926101A (en) | Method and apparatus for routing messages in a network of nodes with minimal resources | |
EP2638670B1 (en) | Dynamic address assignment for address aggregation in low power and lossy networks | |
US10321379B2 (en) | Method and apparatus for reducing the length of a packet storm in a wireless mesh network | |
US20150195212A1 (en) | Dynamic network-driven application packet resizing | |
US20120113986A1 (en) | System and method for managing acknowledgement messages in a very large computer network | |
US11463844B2 (en) | Reliable link layer multicast in a low power wide area network | |
US10965584B1 (en) | Zero-overhead data initiated AnyCasting | |
EP1881640B1 (en) | Method and network for overlapping multiple schedules of broadcast and acknowledgement collection | |
GB2512545A (en) | Update management | |
CN106134144A (zh) | 可靠性组播数据传送系统以及方法 | |
CN107196859B (zh) | 消息转发方法、广播方法、消息应答方法及通信设备 | |
CN104518973A (zh) | 一种基于sdn环境的数据的可靠组播传输方法 | |
WO2018188663A1 (zh) | 信息通告方法及装置 | |
CN106538038B (zh) | ZigBee绿色能源设备的传送模式选择 | |
WO2016066101A1 (en) | Discovering path maximum transmission unit | |
CN103825822A (zh) | 一种网络设备的状态信息传输方法和装置 | |
US20210211378A1 (en) | Route optimization using star-mesh hybrid topology in localized dense ad-hoc networks | |
US20170134299A1 (en) | Method and apparatus for controlling message over heterogeneous network | |
CN108353030B (zh) | 用于处理无线无线电自组织网络中的应答的方法和设备 | |
US11284295B1 (en) | Reliable efficient flooding in MANET | |
Sacco et al. | Hint: Supporting congestion control decisions with p4-driven in-band network telemetry | |
US10735913B2 (en) | Simultaneous control of a group in a mesh network | |
CN102983941B (zh) | 数据传输方法及装置 | |
CN105634978A (zh) | 数据交换协议UDT-Sat |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |