用于向多个接收方发送消息的装置和方法

文档序号:7978507阅读:130来源:国知局
用于向多个接收方发送消息的装置和方法
【专利摘要】一种用于通过网络从发送方(2)向多个接收方(4a-4d)的集发送消息的方法,该方法包括以下步骤:向多个接收方(4a-4d)的所述集发送多播消息(10);以及从接收方的子集(4a,4b,4d)接收确认消息(12),每个确认消息(12)均表明单个接收方接收到所述多播消息(10)。该方法还包括向接收方的集中的不属于接收方的所述子集的接收方(4c)发送单播消息(14)。
【专利说明】用于向多个接收方发送消息的装置和方法
[0001]本发明的实施例涉及数据网络,尤其涉及用于向多个接收方发送消息的装置和方法。
【背景技术】
[0002]在许多情况下都存在通过网络从单个发送方向多个接收方发送消息或数据的问题。例如,利用互联网的音频流或视频流是公知的应用。为了降低所需的带宽,人们提出了多种多播协议,当信道或通过网络的发送不能出现错误或者说不丢失数据包时,所述多播协议要求发送方对消息只能发送一次。但是,经常会发生数据包丢失或错误。可靠的多播协议(即尽力保证每个接收方都能收到发送方的消息的多播协议)使用了多种机制,以便在多个接收方中的一个没有接收到消息或者接收到的消息发生混乱时开始重新发送多播消息。
[0003]一些发送方控制的机制或协议要求各个接收方在安全接收到消息时向发送方发送确认消息(ACK),以便如果在预定时间段内没有接收到所有期望的确认消息时,发送方重新发送广播消息。接收方控制的机制在接收方没有接收到期望的消息时使用否定确认消息(NAK),以触发所述消息的再次多播。但是,重新发送多播消息增加了发送方和所有的接收方之间(即发送方和接收方之间的各个路由)的网络负载。这在音频和视频分发中可能是可以忍受的,此时对所有接收方增加的业务流量能够通过后续的数据包丢失补偿,而不影响系统的整体稳定性,因为当发生数据包或消息丢失时,流的质量通常只短暂地降低。
[0004]但是,其它系统对于网络负载增加的要求更严格,因为利用多个网络路由意外地重新发送消息可能会导致整个系统的不稳定。例如,用于实时或者几乎实时地分析大量数据的分析网络或框架(framework)对于一个或多个网络区段的计划外的或意外的额外流量的承受能力更脆弱。
[0005] 上述分析框架的例子可以是用于分析传感器网络提供的数据的分析框架。传感器网络(例如无线传感器网络)具有广泛的应用。各种技术的无线传感器网络可用于定位目的,例如定位或跟踪人和/或其它对象。在这里,“定位”是指检测或确定地理位置或方位,“跟踪”是指以较短的时间间隔定位,以便能够追踪被观察对象的位置或其它运动变量。
[0006]一些专用定位或位置跟踪系统可用于定位运动事件中的运动员和其它对象(例如球)或者运动设备,例如英式足球、美式足球、橄榄球、网球等。由于上述运动事件中的被观察对象移动迅速,被观察的运动变量(位置、速度、加速度)的更新间隔需要非常短以便提供可靠的跟踪。由此产生的传感器的高数据速率可能需要非常有效的网络或框架,以分析传感器的原始数据,因为不同的任务需要同时知道所有的传感器的原始数据的不同的子集的信息。换句话说,必须比较多个传感器的数据,以便得出单个的有用结论或者检测单个感兴趣的事件。
[0007]为了达到上述目的,与单个传感器相关的数据需要分配给不同的要被处理的实体或者接收方。这对于采用(以不同的依赖层级获取互相依赖的事件的)层级分析方式的基于事件的系统来说,也是如此。事件可被大致定义为在某个时间点时的感兴趣的瞬时发生。一般来讲,事件和相关感测数量的变化有关。事件可以是位于层级底层的本原事件,该本原事件直接基于跟踪系统的传感器数据(运动数据)或者位于较高层级的复合事件,所述复合事件基于先前已经检测到的其它事件。虽然层级方式可以提供这样的可能:多个处理节点通过网络通信,从而以并行的方式分析基础的数据,但是还存在下述问题:需要生成器(即单个的发送方)将事件发送给需要事件信息的多个接收方,从而完成它们各自的任务。但是,当例如由于事件的重新广播而发生计划外的网络负载时,整个网络的延迟可能会降低,以至于整个分析框架变得不稳定。特别地,当单个接收方或网络节点没有及时接收到需要的信息时,被检测的事件中可能会发生错误。这甚至会导致错误扩散到依赖于错误事件的位于更高层级的所 有相关节点,这进而可能会导致整个系统的不稳定。
[0008]因此,需要提供以有效的方式将消息发送给多个接收方的方法。

【发明内容】

[0009]用于通过网络从发送方向多个接收方的集发送消息的创造性的方法的实施例通过下述步骤实现了上述目的:向所述多个接收方发送多播消息;从所述接收方的子集接收确认消息,其中,每个确认消息均表明单个接收方接收到所述消息;以及向接收方的所述集中的不是所述接收方的所述子集的一部分的接收方发送单播消息。由于不能确认特定接收方的接收需要重新发送的消息通过单播协议(即以单播消息的形式)重新发送。因此,从发送方到所述特定接收方的网络路由得到了额外的业务流量,这没有对其余接收方的链路施加额外的负载。这可以显著降低整个网络的负载,并有助于防止依赖于或使用所述网络的系统变得不可靠或者甚至不稳定。
[0010]为此,多播消息被理解为下述消息:该消息将被发送至多个接收方,并利用多播机制或协议发送所述消息,所述多播机制或协议保证网络或网络设备(例如网络中的开关或路由器)将所述消息转发至多个接收方的组中的每一个接收方。通常通过网络的特定链路仅发送所述消息一次。上述协议的例子有IP多播协议(IP是互联网协议的缩写),利用IPv4地址224.0.0.0至239.255.255.255向接收方的特定组或集寻址。在IPv6中,以FFOO::/8开始的每个地址都可以向接收方的集寻址以用于多播目的。
[0011]因此,单播消息被理解为下述消息:该消息将被仅发送给一个接收方,以及利用保证网络或网络设备将所述消息转发到所述接收方的机制或协议发送所述消息。通常所述消息只在从该发送方到该接收方的单一路由上产生业务流量。此类单播协议的例子有TCP (传输控制协议)或UDP (用户数据报协议)。
[0012]消息可以是包括针对数据包的数据传输协议中的较大逻辑实体的内容的一部分的单个数据包。但是,术语消息还可以理解为指代逻辑实体本身,而其有效载荷可涵盖几个数据包。
[0013]例如,接收方可以是经由网络连接至发送方的节点的计算节点,或者是运行在多核机器上的单个或多个核上的单个处理。为此,例如,网络可以是连接不同机器或计算机的网络,例如以太网、令牌环网,或者更一般地,可以是任何类型的局域网(LAN)或广域网(WAN)。但是,例如,术语网络还可以被理解为指代多CPU(中央处理单元)计算机的不同的CPU之间的网络或通信链路。
[0014]根据一些实施例,在发送多播消息后的预定时间段后才发送单播消息。换句话说,在试图第一次发送消息之后,经过最小的延迟之后才执行重新尝试,以允许所有的确认消息(ACK)到达发送方。在一些实施例中,所述预定时间段(即最小的延迟)根据时间可以变化,并且取决于确定的网络负载,以便恰当地计算不断变化的通信条件以及确保最大的吞吐量,而不会过早发送单播消息而额外地堵塞网络。
[0015]根据一些实施例,比较包括关于接收方的所述集中的每个接收方的识别信息的订阅者数据与所述确认消息的相应的识别信息,以识别接收方的所述子集中的接收方,并且从而确定将向哪一个接收方发送单播消息。例如,订阅者信息可以是接收方的IP地址、相关联的网络设备的介质访问控制(MAC)地址或能够唯一地识别接收方的其它任何信息或指纹。例如,订阅者数据可以与消息识别信息一起被存储为有序或无序的清单,其中,通过将存储的消息识别信息和确认消息的相应的消息识别信息作比较,所述清单用于唯一地识别具体的消息。
[0016]为此,可以向发送的消息数据添加关于消息的消息识别信息,所述发送的消息数据包括关于作为多播消息被发送的消息的特定集的所有消息识别信息。所述发送的消息数据可以以任何适当的形式存储,例如以清单的形式、与订阅者数据分开或一起存储或存储在数据库中。例如,消息识别信息可以是为消息计算的散列值或者包括所述消息的至少一部分的数据包。可选地,任何其它指纹可以用作用来识别消息的消息识别信息。
[0017]根据一些实施例,只有在接收到来自加入的接收方(即,期望成为接收方的集的一部分的接收方)的发送请求之后,所述加入的接收方的识别信息才被添加至订阅者数据。这可以允许平行使用根据本发明的用于从发送方向多个接收方的集发送消息的方法的实施例以及其它多播技术。例如,其它多播技术可以由用于发送所述数据的网络提供。这样,根据本发明的实施例,可能的接收方中的一部分可以订阅加密的发送,而其它接收方可接收不加密的广播, 此时为了优化整个网络负载,消息或数据包的丢失可能是可以接受的。
[0018]根据一些实施例,所述方法是在有线网络中执行的,此时效率很高,因为没有单独的接收方和发送方一起访问媒体。
[0019]根据本发明的另一些实施例,当所述子集中的接收方的数目超过接收方的所述集中的接收方的数目的预定比例时,需要重新发送的消息被作为多播消息而不是单播消息再次发送。当重新发送多播消息比重新发送多个单播消息更有效时(相对于导致的网络负载),这样可以进一步降低网络负载。在一个具体实施例中,所述比例可以是二分之一,而另一些实施例可使用其它比例,例如四分之一或三分之一。
[0020]根据一些实施例,消息从基于事件的分析框架的第一事件检测器(即发送方)被发送至第二事件检测器(即接收方),而消息包括关于所述第一事件检测器检测到的事件的信息。在基于事件的分析框架中,大部分数据可以按照一个消息方向流动,即从较低分析层的事件检测器(即发送方)流向较高分析层的事件检测器(即接收方),因为接收方依赖于较低层的信息。换句话说,将按照此方向的网络业务流量保持在低水平是很重要的。但是,如果仅仅一个接收方没有接收到消息,而向所有接收方重新广播消息将会被限制。但是,以与上述消息方向相反的方向发送确认消息是可行的,并且不会失真,在全双工网络中尤其如此。因此,在基于事件的分析框架中使用用于从发送方向多个接收方的集发送消息的方法的实施例是特别有利的。
[0021]根据本发明的一个实施例,一种用于通过网络从发送方接收消息的方法,所述方法包括以下步骤:利用多播协议从所述发送方接收第一消息以及利用单播协议接收第二消息;向所述发送方发送第一确认消息和第二确认消息,所述第一确认消息和所述第二确认消息分别表明所述第一消息和所述第二消息的接收;将所述第一消息转发至相关联的应用;以及当所述第一消息与所述第二消息相同时,删除所述第二消息,而不将所述第二消息转发至所述相关联的应用。换句话说,只有在单播消息不同于任何先前的多播消息时,单播消息才能被发送或被进一步处理。这是为了保证即使先前的确认消息没有到达接收方,接收方的相关联的应用也只接收消息一次,这使得发送方以单播消息的形式重新发送所述消息。相关联的应用可以被理解为使用消息作为输入的任何处理或实体,例如高级命令程序或设备。但是,网络栈的高层级也被理解为这方面的相关联的应用。
[0022]本发明的一些实施例包括将关于第一消息的第一消息识别信息添加到接收到的消息数据中,所述消息数据包括利用多播协议接收到的一组消息的消息识别信息,从而与利用单播消息接收到的第二消息的第二消息识别信息作比较。消息识别信息可以是接收方利用任意算法导 出的,或者是从消息本身提取的。例如,消息信息可以是散列值或者任何类型的指纹。
[0023]根据本发明的一个实施例,一种用于将多播通信转换为有效的多播通信的网络接口包括上行链路接收器和下行链路多播发送器,所述上行链路接收方可操作以从针对多个接收方的集的发送方接收多播消息,所述下行链路多播发送器可操作以向所述多个接收方发送所述多播消息。所述网络接口还包括下行链路接收器,所述下行链路接收器可操作以从所述接收方的子集接收确认消息,其中,每个确认消息均表明单个接收方接收到所述消息。所述网络接口还包括下行链路单播发送器,所述下行链路单播发送器可操作以向接收方的所述集中的不是所述接收方的所述子集的一部分的接收方发送单播消息。换句话说,网络接口可用于将由支持普通多播的节点使用的普通或低效的多播协议转换为上文所述的安全有效的多播。与使用多播消息重新发送丢失的数据包的普通多播系统相比,可以通过仅仅插入网络接口的一个实施例来降低网络负载。这可以在不必改变通信的发送方或接收方本身的情况下被实现。
[0024]总之,本发明的实施例允许建立安全的1:N多播传输机制,例如利用现有的多播协议和硬件,同时保证数据包或消息的安全接收。关于这点,安全是指在基于IP的网络中实施上述构想时获得与标准TCP相同的安全。关于在现有多播情形和本发明的实施例之间交互的网络接口的实施例,应当注意到,在发送和接收处理/节点或者在所有先前安装的发送方和接收方处,不需要做任何改变。在安装完所述网络接口后,各个接收方可使用订阅机制以订阅根据本发明的发送,例如,可使用TCP/IP协议执行本发明。但是本发明的其它实施例可用于任何类型的网络。
【专利附图】

【附图说明】
[0025]仅通过示例的方式并参考附图,下文描述了装置和/或方法的一些实施例,其中:
[0026]图1示出了关于实现用于向多个接收方发送消息的方法的实施例的网络的概要;
[0027]图2示意性地示出了用于向多个接收方发送消息的方法的实施例的框图;
[0028]图3示意性地示出了关于从发送方到接收方的多播的例子;
[0029]图4示意性地示出了实施如图2所示的方法的发送方和接收方的框图;[0030]图5示意性地示出了用于在如图2所示的方法中进行通信的方法;
[0031]图6示意性地示出了根据本发明的实施例用于发送消息的方法;
[0032]图7示出了根据本发明的实施例的发送装置的框图;
[0033]图8示意性地示出了根据本发明的实施例用于接收消息的方法的框图;
[0034]图9示意性地示出了用于通过网络从发送方接收消息的方法的另一个实施例的框图;
[0035]图10示出了根据本发明的实施例的接收装置的框图;以及
[0036]图11示出了网络接口的实施例的框图。
[0037]图1示出了关于实现用于向多个接收方发送消息的方法的实施例的网络的例子。
[0038]在图1中的实施例中,单个发送方2将消息发送给多个接收方4a到4d。例如,假定利用基于以太网的局域网发送所述消息。示出了两个示例性开关6a、6b,以描述能够执行多播协议的开关或路由器是如何运行的。所述开关仅仅向它们的网络端口或网络路由分发消息,所述网络路由与属于被寻址的接收方的组中的接收方有关。利用通用协议或机制执行如下的通知,即,哪一个接收方属于特定的一组接收方。与第一开关6a连接的第五接收方8不接收向接收方4a到4d广播的任何消息,因为第五接收方8不属于所述组。
[0039]如图1所示,利用多播协议执行向接收方4a到4d的第一次发送,结果多播消息10仅通过网络中所需要的链 路传播。换句话说,节点8不接收所述消息的拷贝。在图1所示例子中,接收方4c不发送确认消息12,而接收方4a、4b、4d确认接收到消息10。确认消息12到达发送方2,并表明各个接收方已接收到消息。在图1所示的网络中,例如,可利用IP地址识别接收方。因此,发送方可比较针对所述接收方组(接收方4a到4d)中的每一个接收方作为订阅者数据存储在发送方中的IP地址和所述确认消息的发送方IP地址,从而得出哪些接收方还没有确认收到多播消息10。经过预定时间段后,发送方2推断接收方4c发生了数据包丢失,因为接收方4c没有发送确认消息。因此,发送方向接收方4c发送单播消息14,所述单播消息14是通过开关6a和6b之间的网络链路分发给接收方4c的,而其余接收方和所述开关之间的链路不会有任何额外的业务流量。
[0040]在接收到单播消息14之后,接收方4c发送第二确认消息16。在接收到第二确认消息16之后,发送方2得出存储在其订阅者数据中的最后一个接收方已经确认接收到消息。因此,允许发送方2从其存储器中删除该消息以及针对该特定消息的消息识别信息的相应条目,因为所有要求的接收方都确认安全接收到数据包或消息。
[0041]图2示出了包含在图1的网络中的用于发送消息的方法的实施例。
[0042]在开始发送之后,多播消息被发送至已经订阅所述发送消息的方法并且从而成为发送方要向其寻址的接收方的集中的成员的多个接收方。在多播步骤20中发送多播消息。在所述多播消息的发送之后,在接收步骤22中接收确认消息。在完成核对步骤24中,例如以固定时间间隔核对是否所有的接收方已经发送确认消息,即,核对已经发送确认消息的接收方的子集是否与被发送了所述多播消息的接收方的集相同。如果相同,那么发送消息的方法就结束。如果不同,可选地,可以在超时核对步骤26中核对在发送多播之后是否经过预定时间段。如果没有,那么所述方法可以返回至接收步骤22,以接收其它确认消息。
[0043]但是,如果已经经过预定时间段,那么在单播步骤28中向所述接收方的所述集中的不属于所述接收方的所述子集的接收方发送单播消息。换句话说,到那时还没有发送确认消息的接收方通过单播协议接收所述消息的重新发送。
[0044]图3再次示出了在接收方完成订阅发送方提供的用于发送消息的方法之后,从发送方2向接收方4a发送多播消息的情况。接收方(例如图1中的接收方4a)订阅发送方2提供的发送(例如使用TCP消息30作为基于IP的双向可靠通信)。
[0045]在通过订阅告知发送方2想接收消息的期望之后,发送方2利用例如在订阅期间指定的预定消息端口(例如IP端口)向接收方发送多播消息或多播数据包32。在图3所示例子中,接收方4a利用UDP协议和预先指定或推导的端口号向发送方发送确认消息34。
[0046]图4示出了用于在基于事件的分析框架中从发送方向多个接收方的集发送消息的方法的应用。在此具体例子中,发送方40是对数据流进行操作以基于所述数据流识别感兴趣的事件的第一事件检测器。例如,当数据流包括与被观察对象的位置相关的位置信息时,当被观察的对象移动到预定位置的附近时,可以检测到事件。接收方42是第二事件检测器,其利用发送方法的实施例与发送方40通信。如图3中所示,发送方40发送多播消息或数据包32,接收方42通过利用UDP协议的确认数据包34进行确认。
[0047]在图4中,更详细地示出了订阅机制。在图4的特定实施例中,利用中间网络层或中间件(也称为“核连接器(Core Connector) ”)执行对发送方40的发送的订阅。核连接器44、46与事件检测器40、42相关联并广告它们的能力。即,它们通过多播或广播广告消息48告知其它事件检测器被检测到的事件的类型以及相关联的事件检测器的其它能力。当接收方42希望订阅事件检测器/发送方40提供的信息时,利用TCP连接30执行订阅。广告和订阅处理由核连接器44和46操作。一旦发送方/事件检测器40的核连接器44接收到来自与接收方42相关的核连接器46的订阅请求,核连接器44就将接收方42的IP地址或其它任何识别信息添加到发送方40的订阅者数据50中,以允许发送方40核对是否所有已订阅的接收方(将要被 寻址的接收方的集中的接收方)都已经确认接收到多播消息。
[0048]图5示出了根据本发明的实施例图4中的发送方或事件检测器40如何和与事件接收方42相关联的核连接器46交互以建立发送。如上所述,接收方42的核连接器46利用通过网络50发送的TCP消息30订阅由与发送方40相关联的核连接器44提供的安全发送。核连接器46将所述订阅添加到安全订阅的内部清单中,所述内部清单包括本发明的实施例的所有发送链路。核连接器46进一步将订阅的链路添加到标准订阅的清单中,所述标准订阅的清单是根据网络自身提供的机制的多播的清单。这是因为安全发送还使用标准发送协议或机制,所述标准发送协议或机制可根据本发明的实施例而被加强。对安全发送的订阅和相关联的标准订阅的信息被转发至事件接收方42,以确认接收方42的相应的请求。
[0049]图6更详细地示出了图4中的发送方40如何等待在所述集中的接收方的确认消息并保留已经确认接收的接收方的清单。首先,发送方40向网络72中的作为被寻址的接收方的集的一部分的多个接收方发送多播消息70。为了便于理解,图6中没有示出网络72和相关联的接收方,图6仅仅是图2所例示的用于发送消息的方法的一部分的流程图。在通过多播发送完事件(即具有与事件相关的信息的消息)之后,在步骤74中计算出针对发送的消息的散列值。所述散列值与订阅的接收方的清单一起被以简单清单的格式或者次序等格式作为待处理事件的清单而存储。
[0050]在经过预定时间段后,在步骤78中创建包含此时为止还未发出确认消息的所有订阅者的矢量。在单播发送步骤80中,利用单播协议将消息重新发送至在步骤78中生成的清单中的所有接收方。之后,在收到确认时,连续更新待处理事件的清单,以便在已经接收到最后的确认消息82时能够删除待处理消息的清单。
[0051]图7示出了用于通过网络从发送方向在集中的多个接收方发送消息的发送装置100的框图。
[0052]发送装置100包括多播发送器102,该多播发送器102可操作以向多个接收方发送多播消息104。
[0053]发送装置100还包括接收器106,该接收器106可操作以从接收方的子集接收确认消息108,每个确认消息均表明各个接收方已经接收到消息。
[0054]单播发送器110可操作以向接收方的所述集中的不是接收方的所述子集的一部分的接收方发送单播消息112。
[0055]尽管在图7中被示出为单独的功能块,但是单播发送器110和多播发送器120也可以被实施为能够使用不同协议的单个硬件或软件元素。被实施为硬件的收发器也可以整合单播发送器Iio和多播发送器120以及接收器106的功能。一般地,这里示出的功能块仅用于例示不同实施例的功能,而在另一些实施例中,相同的功能可以分布在不同的功能要素、软件或硬件元素中。
[0056]图8示意 性地示出了用于通过网络从发送方接收消息的方法的实施例的框图。
[0057]在接收步骤120中,通过多播协议接收来自发送方的第一消息,并且通过单播协议接收第二消息。在确认步骤122中,第一确认消息和第二确认消息被发送至发送方,所述第一确认消息和第二确认消息分别表明已经接收到第一消息和第二消息。
[0058]在消息处理步骤124中,第一消息被转发至相关联的应用,而当所述第一消息与所述第二消息相同时,所述第二消息被删除,而未被发送至所述相关联的应用。
[0059]图9示意性地示出了用于通过网络从发送方接收消息的方法的另一个实施例的框图。在第一接收步骤130中,利用多播协议从发送方接收第一消息。在第一确认步骤132中,第一确认消息被发送至发送方,第一确认消息表明已经接收到第一消息。在第一消息处理步骤134中,第一确认消息被转发至相关联的应用。在第一接收步骤136中,利用单播协议从发送方接收第二消息。在第二确认步骤138中,第二确认消息被转发至发送方,第二确认消息表明已经接收到第二消息。在比较步骤140中,确定第一消息和第二消息是否相同。在删除步骤142中,如果第一消息与所述第二消息相同,那么就删除第二消息,而不将第二消息转发至相关联的应用。
[0060]在可选的第二消息处理步骤144中,如果第一消息与所述第二消息相不同,那么第二消息可被发送至所述相关的应用。
[0061]图10示出了根据本发明的实施例的接收装置150的框图。接收方包括接收器152,该接收器152可操作以利用多播协议从发送方接收第一消息以及利用单播协议接收第二消息。所述接收方还包括发送器154,该发送器154可操作以向发送方发送第一确认消息和第二确认消息,所述第一确认消息和第二确认消息分别表明已经接收到第一消息和第二消息。另外,接收装置150包括消息处理器156,该消息处理器156可操作以将第一消息转发至相关联的应用并且当第一消息与所述第二消息相同时删除第二消息。为此,消息处理器156可选地可直接与接收器152耦合。
[0062]图11示出了用于将多播通信转换为有效的多播通信的网络接口 160的实施例的框图。网络接口 160包括上行链路接收器162,该上行链路接收器162可操作以从针对多个接收方的集的发送方2接收多播消息164。网络接口 160还包括下行链路多播发送器166,该多播发送器166可操作以向所述多个接收方发送多播消息168。下行链路接收器170可操作以从接收方的子集中接收确认消息172,每一个确认消息均表明单个接收方都已经接收到消息。网络接口 160的下行链路单播发送器174可操作以向接收方的所述集中的不是接收方的所述子集的一部分的接收方发送单播消息176。
[0063]网络接口 160可选地包括上行链路发送器178,该上行链路发送器178可操作以向发送方2发送上行链路确认消息180,该上行链路确认消息180表明接收方的所述子集中的接收方已经接收到了消息。
[0064]总之,根据上述实施例,第一次通过多播消息把消息或事件发送给所有的接收方或者将要被寻址的节点。这可以通过下述处理隐式地实现:当负责消息的分发和路由的其它网络设备(例如网络中的开关和路由器)遵循IP多播时,向多播地址(例如IP多播地址)发送单个消息。对于已被发送的数据包计算出散列值并按队列存储。使用特定的信号处理器,其从接收方接收确认数据包。所述确认数据包包括接收方侧接收到的数据包的散列值。因此在发送方侧的队列包括下述信息:一个特定的接收方已经接收到特定的数据包并确认已经接收到。当接收方在预定时间段(最小重新发送间隔,其可以基于过去的确认数据包的经验而被调整)内没有确认接收到某个特定数据包时,就利用单播协议(例如UDP)将所述数据包或事件再次发送给所述接收方。
[0065] 这保证了网络中其它节点不用不必要地必须处理额外的数据包。根据一些实施例,通过统一地递增端口号,能够从用于多播消息的端口号导出用于UDP消息的端口。无需多说,可以使用其它算法来确定UDP端口。例如,可利用特别管理消息来动态地分配端口,或者由接收方在订阅安全多播时指定端口。例如,可以在发送方处利用TCP/IP执行对安全多播的订阅,以便保证安全地执行订阅。由于通常一次会话只执行一次订阅,一次性订阅的TCP/IP连接的系统开销可能是可以接受的。如果丢失了一条确认消息,那么发送方就会针对数据包利用UDP重新发送消息。因此,接收UDP数据包的接收方可操作以核对相关联的数据包的散列值是否之前已经被确认。如果已经被确认,那么数据包的内容(即消息)就不被转发至相关联的应用,而是被删除,同时再次发送确认数据包,以避免发送方重新发送。
[0066]本说明书和附图仅仅图示了本发明的原理。因此将了解的是,本领域的技术人员将能够设计各种布置,所述各种布置尽管未在本文中明确地描述或者示出,但是具体化本发明的原理并且被包括在其精神和范围内。此外,本文中所记载的所有示例原理上旨在明确地为仅用于教学目的以帮助读者理解本发明的原理和由(一个或多个)发明人贡献来促进本领域的构思,并且将被解释为不限于这样具体地记载的示例和条件。而且,本文中记载本发明的原理、方面以及实施方式及其特定示例的所有声明旨在包含其等同物。
[0067]表示为“用于...的装置”的功能块(执行特定功能)应该被理解为包括分别被适配、配置或者可操作用于执行特定功能的电路的功能块。从而,“用于某件事情的装置”也可以被理解为“被适配、配置或可操作以做某件事情的装置”。被适配用于执行特定功能的装置因此不暗示这样的装置必定正在执行所述功能(在给定时刻)。
[0068]包括任何功能块、在图中所示出的各种元素的功能可以通过利用专用硬件(如例如处理器)以及能够与适当的软件相关联地执行软件的硬件来提供。当由处理器来提供时,功能可以由单个专用处理器、由单个共享处理器或者由多个各个处理器(其中的一些可以被共享)来提供。而且,术语“处理器”或“控制器”的明确使用不应该被解释为排他地指的是能够执行软件的硬件,并且可以隐式地包括但不限于数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)以及非易失性存储装置。还可以包括其它硬件(常规的和/或定制的)。
[0069]本领域的技术人员应该了解的是,本文中的任何框图表示具体化本发明的原理的说明性电路的概念视图。类似地,将了解的是,任何流程图、流图、状态转变图、伪代码等等表示可以基本上用计算机可读介质表示并且由计算机或处理器如此执行的各种进程,而无论这样的计算机或处理器是否被明确地示出。
[0070]此外,随附权利要求从而被结合到具体描述中,其中每个权利要求都可以要求独立作为单独的实施方式。虽然每个权利要求可以要求独立作为单独的实施方式,但是应当注意的是-尽管从属权利要求可以在权利要求中指的是与一个或多个其它权利的特定组合-其它实施方式还可以包括从属权利要求与每个其它从属权利要求的主题的组合。除非陈述了特定组合不是有意的,否则这样的组合在文中被提出。此外,即使权利要求未被直接地使得与任何其它独立权利要求相关,也旨在还将该权利要求的特征包括到该其它独立权利要求。特别地,当从属权利要求引用编码器或发送器时,相关解码器或接收器的相应特征也应当被包含在内,并成为本说明书的公开的一部分。
[0071]应当进一步注意的是,在本说明书中或在权利要求书中所公开的方法可以由具有用于执行这些方法的相应步骤中的每一个的装置的设备来实现。
[0072]进一步地 ,应当理解的是,本说明书或权利要求书中所公开的多个步骤或功能的公开不可以被解释为在特定顺序内。因此,除非这样的步骤或功能由于技术原因而不是可互换的,否则多个步骤或功能的公开将不将这些限制于特定顺序。
[0073]此外,在一些实施方式中,单个步骤可以包括或者可以被分解成多个子步骤。除非明确地排除,否则这样的子步骤可以被包括并且是这个单个步骤的公开的一部分。
【权利要求】
1.一种用于通过网络从发送方(2)向多个接收方(4a-4d)的集发送消息的方法,该方法包括以下步骤: 向所述多个接收方(4a-4d)发送多播消息(10); 从所述接收方的子集(4a、4b、4d)接收确认消息(12),其中,每个确认消息(12)均表明单个接收方接收到所述多播消息;以及 向接收方(4a-4d)的所述集中的不是所述接收方的所述子集(4a、4b、4d)的一部分的接收方(4c)发送单播消息(14)。
2.根据权利要求1所述的方法,其中,在发送所述多播消息之后的预定时间段之后,发送所述单播消息。
3.根据权利要求1或2所述的方法,所述方法还包括:比较包括关于接收方(4a-4d)的所述集中的每个接收方的识别信息的订阅者数据(50)与所述确认消息的相应的识别信息,以识别接收方的所述子集(4a、4b、4d)中的接收方。
4.根据权利要求3所述的方法,所述方法还包括以下步骤: 从加入的接收方(42)接收发送请求(30);以及 将所述加入的接收方(42)的识别信息添加到所述订阅者数据(50)中。
5.根据任一项前述权利要求所述的方法,所述方法还包括:将关于所述多播消息的消息识别信息(74)添加至 发送的消息数据(76)中,所述发送的消息数据(76)包括关于通过多播消息发送的消息的集的消息识别信息。
6.根据权利要求5所述的方法,所述方法还包括:针对如下的消息,从所述发送的消息数据中删除消息信息,即,针对该消息,已经从接收方(4a_4d)的所述集中的所有接收方接收到确认消息。
7.根据任一项前述权利要求所述的方法,其中,利用有序或无序的单播协议来发送所述单播消息。
8.根据任一项前述权利要求所述的方法,其中,利用UDP协议来发送所述单播消息。
9.根据任一项前述权利要求所述的方法,其中,所述网络是有线网络。
10.根据任一项前述权利要求所述的方法,其中,从基于事件的分析框架的第一事件检测器(40)向第二事件检测器(42)发送所述多播消息,所述多播消息包括与由所述第一事件检测器检测到的事件相关的信息。
11.根据任一项前述权利要求所述的方法,其中,当在所述子集中的接收方的数目大于在接收方的所述集中的接收方的数目的预定比例时,向接收方(4a-4d)的所述集发送第二多播消息而不是所述单播消息(14)。
12.一种用于通过网络从发送方(2)接收消息的方法,所述方法包括以下步骤: 利用多播协议从所述发送方(2)接收第一消息(10)以及利用单播协议接收第二消息(14); 向所述发送方(2)发送第一确认消息(12)和第二确认消息,所述第一确认(12)消息和所述第二确认消息分别表明所述第一消息(10)和所述第二消息的接收; 将所述第一消息(10)转发至相关联的应用;以及 当所述第一消息(10)与所述第二消息(14)相同时,删除所述第二消息(14),而不将所述第二消息(14)转发至所述相关联的应用。
13.根据权利要求12所述的用于接收消息的方法,所述方法还包括:当所述第二消息(14)与所述第一消息(10)不相同时,将所述第二消息(14)转发至所述相关联的应用。
14.根据权利要求12或13所述的用于接收消息的方法,所述方法还包括以下步骤: 将关于所述第一消息(10)的第一消息识别信息添加到接收到的消息数据,所述接收到的消息数据包括关于利用所述多播协议接收到的消息的集的消息识别信息;以及 比较关于所述第二消息(14)的相应的第二消息识别信息与关于所述第一消息(10)的所述第一消息识别信息,以推断所述第一消息(10)与所述第二消息(14)是否相同。
15.一种用于通过网络从发送方(2)向多个接收方(4a-4d)的集发送消息的发送装置,所述发送装置包括: 多播发送器(102),其可操作以向所述多个接收方(4a-4d)发送多播消息(10);接收器(108),其可操作以从所述接收方的子集(4a、4b、4d)接收确认消息,其中,每个确认消息均表明单个接收方接收到所述消息;以及 单播发送器(110),其可操作以向接收方(4a-4d)的所述集中的不是所述接收方的所述子集(4a、4b、4d)的一部分的接收方发送单播消息(112)。
16.一种用于通过网络从发送方(2)接收消息的接收装置(150),所述接收装置(150)包括: 接收器(152),其可操作以利用多播协议从所述发送方接收第一消息(10)以及利用单播协议接收第二消息(14); 发送器(154),其可操作以向所述发送方发送第一确认消息和第二确认消息,所述第一确认消息和所述第二确认消息分别表明已经接收到所述第一消息和所述第二消息;以及消息处理器(156),其可操作以将所述第一消息(10)转送至相关联的应用以及当所述第一消息(10)与所述第二消息(14)相同时删除所述第二消息(14)。
17.一种用于将多播通信转换为有效的多播通信的网络接口(160),所述网络接口(160)包括: 上行链路接收器(162),其可操作以从针对多个接收方(4a-4d)的集的发送方(2)接收多播消息(164); 下行链路多播发送器(166),其可操作以向所述多个接收方(4a-4d)发送与所述多播消息(164)相对应的相应多播消息(168); 下行链路接收器(170),其可操作以从所述接收方的子集(4a、4b、4d)接收确认消息(172),其中,每个确认消息(172)均表明单个接收方接收到所述相应多播消息(164);以及下行链路单播发送器(174),其可操作以向接收方的所述集中的不是所述接收方的所述子集的一部分的接收方(4c)发送单播消息(176)。
18.根据权利要求17所述的网络接口(160),所述网络接口(160)还包括:上行链路发送器(178),其可操作以向所述发送方(2)发送上行链路确认消息(180),所述上行链路确认消息(180)表明所述接收方的所述子集(4a、4b、4d)中的接收方已经接收到所述多播消息(164)ο
19.一种用于当在计算机上运行时执行根据权利要求1到14所述的任一消息的计算机程序。
【文档编号】H04L12/801GK104025523SQ201180074607
【公开日】2014年9月3日 申请日期:2011年10月31日 优先权日:2011年10月31日
【发明者】C·穆奇勒 申请人:德国弗劳恩霍夫应用研究促进协会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1