用于基于压缩的服务质量的方法和系统的制作方法

文档序号:7678115阅读:183来源:国知局
专利名称:用于基于压缩的服务质量的方法和系统的制作方法
技术领域
目前描述的技术大体上涉及通信网络。更特定来说,目前描述的技术涉及用于服务 质量的协议过滤的系统和方法。
背景技术
通信网络用于各种环境中。通信网络通常包括通过一个或一个以上链路连接的两个 或两个以上节点。 一般来说,通信网络用于支持在所述链路十.的两个或两个以卜.参与者 节点与通信网络中的中间节点之间的通信。在网络中可存在许多种节点。例如,网络可 包括例如客户端、服务器、工作站、交换机和/或路由器的节点。链路可为(例如)在电 话线上的调制解调器连接、导线、以太网链路、非同步转移模式(ATM)电路、卫星链 路和/或光纤电缆。
通信网络口J能实际上由一个或一个以上较小的通信网络组成。例如,经常将因特网 描述为经互连计算机网络的网络。每一网络可利用不同结构和/或拓扑。例如, 一个网络 可为具有星状拓扑的交换式以太网络,而另一网络可为光纤分布式数据接口 (FDDI)环。
通信网络可载运多种数据。例如,网络可与用于互动式实时对话的数据并排地载运 大量文件转移。在一网络上发送的数据常以包、串.元或帧的方式发送。或者,数据可作 为串流来发送。在某些例子中,数据串流或流可能实际上为包序列。例如因特网的网络 在各种节点之间提供通用数据路径并在不同需求下载运大量数据。
网络上的通信一般涉及多级通信协议。协议堆叠(也称为联网堆叠或协议族)是指 用于通信的协议集合。每一协议可能集中于特定类型的通信能力或形式。例如, 一个协 议可能々由铜导线连接的装置进行通信所需的电信号有关。例如,其它协议可能解决由 许多中间节点分离的两个节点之问的排序和可靠传输。
协议堆叠中的协议一般存在于层级结构中。常将协议分类成多个层。用于协议层的 一个参考模型是开放式系统互连(OSI)模型。OSI参考模型包括七个层物理层、数 据链路层、网络层、传输层、会话层、表示层和应用层。物理层是"最低"层,而应用 层是"最高"层。两个众所周知的传输层协议是传输控制协议(TCP)与用户数据报协 议(UDP)。众所周知的网络层协议是因特网协议(IP)。
在传输节点处,将要传输的数据从最高到最低从协议堆叠的所述层向下传递。相反,
4在接收节点处,数据从最低到最高从所述层向上传递。在每一层处,可通过在所述层处 处置通信的协议来操纵数据。例如,传输层协议可将标头添加到数据,所述标头允许在 到达目的地节点后对包进行排序。依据应用而定,可能不使用某些层,或即便某些层存 在,也可能仅传递数据。
一种通信网络是战术数据网络。战术数据网络也可称为战术通信网络。战术数据网 络可由组织(例如军队(例如陆军、海军和/或空军))内的单位利用。战术数据网络内 的节点可包括(例如)个别士兵、飞机、指挥单位、卫星和/或无线电。战术数据网络可 用于传送例如语音、位置遥测、传感器数据和/或实时视频等数据。
如何可运用战术数据网络的实例如下。后勤护卫队可能正在路上为战场上的战斗单 位提供补给。所述护卫队与所述战斗单位两者可能正在通过卫星无线电链路来将位置遥 测提供给指挥所。无人驾驶飞机(UAV) Pj能正在沿所述护卫队正在前进的道路巡逻且 还正在通过卫星无线电链路将实时视频数据传输到指挥所。在所述指挥所,分析者可能 正在检查所述视频数据,同时控制者正在给所述UAV分派任务以提供特定路段的视频。 所述分析者接着可能认出所述护卫队正在接近的临时爆炸装置(IED)并通过直接无线 电链路向所述护卫队发出命令,要求其停止并警告所述护卫队所述IED的存在。
在战术数据网络内可能存在的各种网络可能具有许多不同的结构和特性。例如,指 挥宇.位中的网络可能包括千兆位以太网局域网(LAN)以及在低得多的处理量且更高等
待时间下操作的到卫星和战场单位的无线电链路。战场宇.位可能经由卫星并经由直接路 径射频(RF)两齐来通信。可以点对点、多播或广播的方式发送数据,其取决于数据的 性质和/或网络的特定物理特性。网络可能包括(例如)经设立以中继数据的无线电。此 外,网络可能包括高频(HF)网络,其允许长距离通信。例如,还可使用微波网络。由 于链路和节点类型的多样性和其它原因,战术网络常具有过度复杂的网络寻址方案和路 由表。此外,某些网络(例如基于无线电的网络)可使用突发来操作。S卩,不是连续地 传输数据,而是其发送周期性的数据突发。这较有用,因为无线电在由参与者共享的特 定信道上广播,且一次可传输一个无线电。
战术数据网络一般受到带宽约束。即,在任一给定时刻,将要传送的数据一般多于 可用带宽。例如,这些约束可能归因于带宽需求超过供应和/或可用的通信技术不供应足 够的带宽来满足用户的需要。例如,在某些节点之间,带宽可能在千位/秒的级别上。在 带宽受约束的战术数据网络中,较不重要的数据可能堵塞网络,从而阻止更重要的数据 及时地通过或者甚至根本上阻止到达接收节点。此外,所述网络的部分可能包括内部缓 冲以补偿不可靠的链路。这可能引起额外的延迟。此外,当缓冲器变满时,可能丢弃数据。
在许多例子中,无法增加网络的可用带宽。例如,通过卫星通信链路的可用带宽可 能是固定的且在不部署另一卫星的情况下无法有效增加。在这些情形下,必须管理带宽, 而不是仅扩展带宽以处置需求。在较大的系统中,网络带宽是关键资源。需要应用尽可 能有效率地利用带宽。此外,需要应用避免"堵塞管道",即,当带宽有限时数据淹没 链路。当带宽分配变化时,应用程序应优选作出反映。带宽可由于(例如)服务质量、 干扰、信号障碍、优先级再分配和视线而动态地变化。网络可为高易失性的且可用带宽 可显著地且不预先通知而变化。
除了带宽约束之外,战术数据网络可能会经历高等待时间。例如,涉及通过卫星链 路进行通信的网络可能会招致在半秒或半秒以上的级别上的等待时间。对于某些通信来 说,这可能不是问题,但对于其它通信(例如实时、互动式通信(例如语音通信))来 说,非常需要尽可能地最小化等待时间。
许多战术数据网络的另一共同特性是数据损失。数据可能由于多种原囚而损失。例 如,具有将要发送的数据的节点可能遭到损坏或毁坏。作为另一实例,目的地节点可能 临时脱离网络。这可能因为(例如)所述节点已移出范围,通信链路受到阻碍和/或节点 正受到干扰而发生。数据可能因为目的地节点无法接收数据以及中间节点缺乏足够容量 以缓冲数据直到目的地节点变得可用而损失。此外,中间节点可能根本无法缓冲数据, 而将其留给发送节点来确定数据是否曾实际到达目的地。
战术数据网络中的应用程序常不知道和/或不虑及网络的特定特性。例如,应用程序 可能只假定其具有其所需量的可用带宽。作为另一实例,应用程序可能假定数据不会在 网络中损失。未考虑基本通信网络的特定特性的应用程序可能以实际上恶化问题的方式 来运作。例如,应用程序可能连续地发送数据串流,其可能恰好与在较大束中以较低频 率发送一样有效。所述连续串流可能在(例如)广播无线电网络中招致大得多的额外开 销,其有效地使其它节点无法通信,而较低频率的突发将允许较有效地使用共享带宽。
某些协议在战术数据网络上无法」下常工作。例如,例如TCP的协议可能因为此类网 络可能遭遇的高损失率与等待时间而无法在基于无线电的战术网络上正常工作。TCP需 要发生若干形式的信号交换和确认以便发送数据。高等待时间和损失可能导致TCP命中 超时而无法在此类网络上发送许多(如果存在的话)有意义的数据。
使用战术数据网络传送的信息相对于网络中的其它数据常具有各种优先级等级。例 如,飞机内危险警告的接收者可能比用于数英里远的地面部队的位置遥测信息具有更高 优先级。作为另一实例,关于交战的来自总部的命令可能比在安全线后方的后勤通信具
6有更高优先级。优先级等级可能取决于发送者和/或接收者的特定情形。例如,与一单位 仅正在遵循标准巡逻路线时相比,在所述单位正在主动投入战斗时,位置遥测数据可能 具有高得多的优先级。类似地,与UAV仅在路上时相比,在其正在目标区域上方时, 来自其的实时视频数据可能具有更高优先级。
存在经由网络递送数据的若干方法。 一种供许多通信网络使用的方法是"尽力(best effort)"方法。即,关于容量、等待时间、可靠性、排序和错误,给定其它需求,将会 尽网络所能而处置传送的数据。因而,网络不提供任一给定数据段会及时到达其目的地 的保证或根本不保证。此外,不保证数据会按发送次序或甚至在没有改变所述数据中的 一个或一个以上位的传输错误的情况下到达。
另一方法是服务质量(QoS)。 QoS是指网络关于载运的数据提供各种形式的保证的 一项或一项以上能力。例如,支持QoS的网络可向数据串流保证一定量的带宽。作为另 一实例,网络可保证在两个特定节点之间的包具有某一最大等待时间。此类保证可能在 其中两个节点是两个正在经由网络进行对话的人的语音通信的情况下较有用。例如,此 类情况下在数据递送中的延迟可能导致恼人的通信间隙和/或死寂(dead silence)。
QoS可视为网络向选定网络业务提供较好服务的能力。QoS的主要口标是提供优先 级,包括专用带宽、受控的抖动和等待时间(某实时和互动业务所需的),和改进的 损失特性。另'-重要口标是确保为^个流提供优先级不会使其它流失败。即,针对后续 流所作的保证不得破坏对现有流所作的保证。
QoS的冃前方法经常需要网络中的每个节点支持QoS,或最少使网络中的特定通信 中所涉及的每个节点支持QoS。例如,在目前系统中,为了在两个节点之间提供等待时 问保证,在那两个节点之间载运业务的每个节点必须知道并同意尊重且能够尊重所述保 证。
存在若干提供QoS的方法。 一种方法是整合服务,或"IntServ"。 IntServ提供一种 QoS系统,其中网络中的每个节点均支持所述服务且那些服务在建立连接时保留。IntServ 因为必须在每个节点处维持的大量状态信息以及与建立此类连接相关联的额外开销而 无法适当地缩放。
另一提供QoS的方法是区分服务,或"DiffServ"。 DiffServ是一类服务模型,其增 强例如因特网的网络的尽力服务。DiffServ按用户、服务要求和其它标准来区分业务。 接着,DiffServ标记包,使得网络节点可经由优先级列队或带宽分配,或通过为特定业 务流选择专用路线来提供不同的服务等级。通常, 一节点具有用T每一类服务的多种队 列。节点接着基T类类别从那些队列中选择下一包来发送。
7现有QoS解决方案常为网络特定的且每一网络类型或结构可能需要不同的QoS配 置。由于现有QoS解决方案所利用的机制的缘故,在目前QoS系统看来相同的消息可 能基T消息内容而实际上具有不同的优先级。然而,数据消费者可能需要存取高优先级 数据而不被低优先级数据淹没。现有QoS系统无法在传输层处基于消息内容来提供 QoS。
如所提及,现有QoS解决方案需要至少特定通信中所涉及的节点支持QoS。然而, 在网络"边缘"处的节点即便其不能作出总体保证,但可适于提供QoS的某一改进。在 节点是通信中的参与节点(即传输和/或接收节点)的情况下和/或在节点位于网络中的 阻塞点处的情况下,将节点视为处于网络边缘处。阻塞点是其中所有业务必须通过到另 一部分的网络区段。例如,从LAN到卫星链路的路由器或网关将为阻塞点,因为从所 述LAN到不在所述LAN上的任一节点的所有业务均必须通过所述网关到达卫星链路。
因此,需要在战术数据网络中提供QoS的系统和方法。需要用于在战术数据网络的 边缘上提供QoS的系统和方法。需要战术数据网络中的自适应、可配置QoS系统和方 法。

发明内容
本发明的某些实施例提供一种用于控制数据通信的服务质量的方法。所述方法包含 接收第一数据集和第二数据集,且将所述第一数据集存储在队列中。所述方法还包含确 定所述第一数据集的内容对于所述第二数据集的内容是否为功能上冗余的。如果所述第 一数据集的所述内容对于所述第二数据集的所述内容为功能上冗余的,那么所述方法还 包含传输所述第一数据集并丢弃所述第二数据集。
本发明的某些实施例提供一种计算机可读媒体,其具有用于在处理装置上执行的指 令集。所述指令集包含接收例行程序,其用于接收第一数据集和第二数据集。所述指令 集还包含存储例行程序,其用于将所述第一数据集存储在队列中。所述指令集还包含冗 余例行程序,其用于确定所述第一数据集的内容对于所述第二数据集的内容是否为功能 上冗余的。所述指令集还包含传输例行程序,其用于在所述第'^数据集的所述内容对于 所述第二数据集的所述内容为功能上冗余的情况下,传输所述第''数据集并丢弃所述第 二数据集。
本发明的某些实施例提供一种用于数据通信的方法。所述方法包含接收第一数据集 并将所述第一数据集存储在队列中。所述方法还包含接收第二数据集。接下来,所述方 法包含基于冗余规则确定是否针对第二数据集执行功能冗余处理。可由选定模式来控制所述冗余规则。接下来,所述方法包含搜索用于所述第一数据集的队列,并基于冗余规 则确定所述第一数据集对于所述第二数据集是否为功能上冗余的。如果所述第一数据集 对于所述第二数据集为功能上冗余的,那么丢弃所述第二数据集。


图1说明与本发明的一实施例一起操作的战术通信网络环境。
图2展示根据本发明的一实施例在七层OSI网络模型中的数据通信系统的定位。
图3描绘根据本发明的一实施例使用数据通信系统所促进的多个网络的实例。
图4说明与本发明的一实施例一起操作的数据通信环境。
图5说明与本发明的一实施例一起操作的数据通信环境。
图6说明根据本发明的一实施例的流程图。
图7说明根据本发明的 一 实施例的流程图。
图8说明根据本发明的一实施例的方法。
图9说明根据本发明的一实施例的方法。
当结合附图阅读时将更好地理解本发明的某些实施例的先前概述以及以下详细描 述。出于说明木发明的目的,在图式中展示某些实施例。然而,应了解,本发明不限于 附图所示的布置和手段。
具体实施例方式
图1说明与本发明的一实施例一起操作的战术通信网络环境100。网络环境100包 括多个通信节点110、 一个或一个以上网络120、连接所述节点与网络的一个或一个以 上链路130,和促进网络环境100的组件上的通信的一个或一个以上通信系统150。以 下论述假定网络环境100包括一个以上网络120与一个以上链路130,但应了解,其它 环境也是可能的并在预期之中。
例如,通信节点110可为和/或包括无线电、传输器、卫星、接收器、工作站、服务 器和/或其它计算或处理装置。
例如,网络120可为用于在节点110之间传输数据的硬件和/或软件。例如,网络 120可包括一个或一个以十.节点110。
链路130可为有线和/或无线连接以允许在节点110和/或网络120之间进行传输。
例如,通信系统150可包括用于在所述节点110、网络120和链路130之间促进数 据传输的软件、固件和/或硬件。如图1所说明,通信系统150 口J相对于所述节点110、 网络120禾口/或链路130来实施。在某些实施例中,每个节点IIO包括一通信系统150。
9在某些实施例中, 一个或一个以上节点110包括一通信系统150。在某些实施例中,一 个或一个以上节点110不包括通信系统150。
通信系统150提供动态数据管理以帮助确保在战术通信网络(例如网络环境100) 上的通信。如图2所示,在某些实施例中,系统150在OSI七层协议模型中作为传输层 的一部分和/或在其顶部而操作。例如,系统150可给予传递到传输层的战术网络中的较 高优先级数据优先。系统150可用于促进单一网络(例如局域网(LAN)或广域网(WAN)) 中或横跨多个网络的通信。图3中展示多网络系统的一实例。例如,系统150可用于管 理可用带宽而非向网络添加额外带宽。
在某些实施例中,系统150为软件系统,但在各种实施例中系统150可包括硬件和 软件组件两者。例如,系统150可独立于网络硬件。即,系统150可适于在多种硬件和 软件平台上运作。在某些实施例中,系统150在网络边缘上操作而不在网络内部的节点 上操作。然而,系统150也可在网络内部操作,(例如)在网络中的"阻塞点"处操作。
系统150可使用规则和模式或简档来执行处理量管理功能,例如优化nj用带宽、设 定信息优先级和管理网络中的数据链路。优化带宽使用可包含(例如)移除功能上冗余 的消息、消息串流管理或定序,以及消息压縮。"优化"带宽意味着当前描述的技术可 用于增加在一个或--个以上网络中传送数据的带宽使用效率。例如,设定信息优先级可 包括以比基于因特网协议(IP)的技术更精细的粒度来区分消息类型,和经由基于选定 规则的定序算法将消息定序到数据串流上。例如,数据链路管理可包括网络测量的基于 规则的分析以影响规则、模式和/或数据传输的变化。模式或简档可包括4对于特定网络 健康状态或条件的操作需求相关的一组规则。系统150提供动态、"在运行中"重新配 置模式,包括在运行中定义并切换到新模式。
通信系统150可经配置以适应(例如)在易失性、带宽受限网络中的变化的优先级 和服务等级。系统150可经配置以管理用于改进数据流的信息,以帮助增加网络中的响 应能力并减少通信等待时间。此外,系统150可经由可升级并可缩放的灵活结构来提供 互操作性以改进通信的可用性、存活性和可靠性。例如,系统150支持一种数据通信结 构,所述数据通信结构可自土地适应动态变化的环境,同时使用预定义且可预测的系统 资源和带宽。
在某些实施例中,系统150提供对带宽受约束的战术通信M络的处理量管理,同时 保持对使用所述网络的应用程序透明。系统150以减小的复杂度向所述网络提供横跨多 个用户和环境的处理量管理。如上文所提及,在某些实施例中,系统150在OSI七层模 型的层四(传输层)内和/或在其顶部在主机节点上运行且不需要专用网络硬件。系统
10150可对层四接口透明地操作。BP,应用程序可利用用于传输层的标准接口且不知道系 统150的操作。例如,当应用程序开启套接时,系统150可在此刻在协议堆叠中过滤数 据。系统150通过允许应用程序在网络上的通信装置处使用(例如)操作系统所提供的 TCP/IP套接接口而非特定针对系统150的接口来实现透明性。例如,系统150规则可以 可扩展标记语言(XML)来编写和/或经由自定义动态链接库(DLL)来提供。
在某些实施例中,系统150在网络边缘上提供服务质量(QoS)。例如,所述系统的 QoS能力在网络边缘上提供基于内容、基于规则的数据优先级确定。例如,优先级确定 可包括区分和/或定序。例如,系统150可基于用户可配置的区分规则将消息区分成队列。 所述消息按照由用户配置的定序规则(例如资源缺乏、循环、相对频率等)规定的次序 而定序成数据串流。例如,通过在边缘上使用QoS,传统QoS方法不能区分的数据消息 可基于消息内容来进行区分。例如,规则可以XML来实施。例如,在某些实施例中, 为了适应超过XML的能力和/或为了支持极低等待时间要求,系统150允许动态链接库 具备自定义代码。
可经由系统150来定制网络上的入站和/或出站数据。例如,优先级确定保护客户端 应用程序使其不受高容量、低优先级数据的影响。系统150帮助确保应用程序接收数据 以支持特定操作情景或约束。
在某些实施例中,当主机连接到包括路由器作为到带宽受约束的战术网络的接口的 LAN时,所述系统通过代理在称为QoS的配置中操作。在此配置中,去往本地LAN的 包绕过系统并直接到达LAN。所述系统在网络边缘上将QoS施加到去往带宽受约束的 战术链路的包。
在某些实施例中,系统150经由命令简档切换来提供对多个操作情景和/或网络环境 的动态支持。简档可能包括允许用户或系统改变到所命名简档的名称或其它识别符。例 如,简档还可包括一个或一个以上识别符,例如功能冗余规则识别符、区分规则识别符、 归档接口识别符、定序规则识别符、预传输接口识别符、传输后接口识别符、传输识别 符和/或其它识别符。例如,功能兀余规则识别符指定(例如)从过期数据或实质上类似 数据检测功能兀余的规则。例如,区分规则识别符指定将消息区分成队列以供处理的规 则。例如,归档接口识别符指定到归档系统的接口。定序规则识别符识别定序算法,所 述定序算法控制队列前方的样本和(因此)数据串流上数据的定序。例如,预传输接口 识别符指定用T预传输处理的接口,其用丁-例如加密和压縮等特殊处理。例如,传输后 接口识别符识别用于传输后处理的接口,其用于例如解密和解压縮等处理。传输识别符 指定用于选定传输的网络接口。
11例如,简档还可包括其它信息,例如队列大小确定信息。例如,队列大小确定信息 识别队列的数目与每一队列专用的存储器和辅助存储装置的量。
在某些实施例中,系统150提供用于优化带宽的基于规则的方法。例如,系统150 可采用队列选择规则以将消息区分成消息队列,使得可向消息指派优先级和数据串流上 的适当相对频率。系统150可使用功能冗余规则来管理功能上冗余的消息。例如,如果 消息与仍未经由网络发送的先前消息充分不同(如由规则所定义),那么消息是功能上 冗余的。即,如果提供新消息,其与已经调度以被发送但仍未被发送的较旧消息并非充 分不同,那么可丢弃较新消息,因为较旧消息将载运功能上等同的信息且在队列中更前 面。此外,功能冗余可包括实际的复制消息和在已发送较旧消息之前到达的较新消息。 例如,节点可能由于基础网络的特性而接收特定消息的相同副本,例如出于故障容忍原 因由两个不同路径发送的消息。作为另一实例,新消息可含有取代仍未被发送的较旧消 息的数据。在此情形下,系统150可丢弃较旧信息并只发送新消息。系统150还可包括 优先级定序规则以确定数据串流的基于优先级的消息序列。此外,系统150可包括传输 处理规则以提供预传输和传输后特殊处理,例如压缩和/或加密。
在某些实施例中,系统150提供故障容忍能力以帮助保护数据完整性和可靠性。例 如,系统150可使用用户定义的队列选择规则以将消息区分成队列。例如,所述队列根 据用户定义的配置来确定大小。例如,所述配置指定队列可能消耗的最大存储器量。此 外,所述配置可能允许用户指定位置和可用于队列溢出的辅助存储装置的量。在填充队 列中的存储器之后,可在辅助存储装置内将消息列队。当辅助存储装置也填满时,系统 150可在队列中移除最旧消息,记录错误消息,并将最新消息列队。如果针对操作模式 启用归档,那么可使用未经由网络发送消息的指示符来归档出列消息。
例如,可针对特定应用基于每一链路而配置在系统150中用于队列的存储器和辅助 存储装置。在网络可用性周期之间的较长时间可对应于较多存储器和辅助存储装置以支 持网络中断。系统150可与网络建模和模拟应用程序整合,(例如)以帮助识别大小确 定来帮助确保队列经适当地大小确定且中断之间的时间足以帮助实现稳定状态并帮助 避免最终队列溢出。
此外,在某些实施例中,系统150提供计量入站("定形")与出站("管制") 数据的能力。管制和定形能力有助于解决网络中的定时的失配。定形有助于防止网络缓 冲器充满在低优先级数据后面排队等候的高优先级数据。管制有助于防止应用程序数据 消费者被低优先级数据侵扰。管制和定形由两个参数来支配有效链路速度和链路比例。 例如,系统150可形成数据串流,其不超过有效链路速度乘以链路比例。可随网络变化
12而动态地修改所述参数。所述系统还可存取检测到的链路速度以支持关于数据计量的应 用程序等级决策。由系统150提供的信息可与其它网络操作信息组合来帮助决定什么链 路速度适合给定的网络情景。
图4说明与本发明的一实施例一起操作的数据通信环境400。环境400包含一个或 一个以上源节点420、数据通信系统410,和一个或一个以上目的地节点430。数据通信 系统410与源节点420和目的地节点430通信。举例来说,数据通信系统410可经由链 路(例如,电线、无线电、卫星、网络链路)和/或通过过程间通信与源节点420和/或 目的地节点430通信。在某些实施例中,数据通信系统410可经由一个或一个以上战术 数据网络与一个或一个以上源节点420和/或目的地节点430通信。系统400的组件可为 单个单元、单独单元,可以各种形式整合,且可实施在硬件中和/或软件中。
例如,数据通信系统410可类似于上文所述的通信系统150。在某些实施例中,数 据通信系统410适于接收来自一个或一个以上源节点420的数据。在某些实施例中,数 据通信系统410可包含存储器单元和/或数据库以用于存储计算机指令和规则。数据通信 系统410还可包含处理器以用于处理数据、规则和指令。在某些实施例中,数据通信系 统410可包含用于存储、组织数据和/或确定数据的优先级的- -个或一个以上队列。或者, 其它数据结构可用于存储、组织数据和/或确定数据的优先级。举例来说,可使用表、树 或链接的列表。在某些实施例中,数据通信系统410适于将数据传送到一个或--个以上 目的地节点430。
在某些实施例中,数据通信系统410对其它应用程序透明。例如,数据通信系统410 所执行的处理、组织和/或优先级确定可对一个或一个以上源节点420或其它应用程序或 数据源透明。举例来说,在与数据通信系统410相同的系统上或连接到数据通信系统410 的源节点420上运行的应用程序可能不知道数据通信系统410所执行的确定数据的优先 级。
例如,数据通信系统410的组件、元件和/或功能性可在硬件、固件中和/或作为指 令集在软件中以各种形式单独实施或组合实施。某些实施例可作为驻留在计算机可读媒 体(例如存储器、硬盘、DVD或CD)上的指令集而提供,以用于在通用计算机或其它 处理装置上执行。
源节点420可包含传感器或测量装置以收集数据或遥测信息。举例来说,源节点420 可为全球位置系统传感器以指示移动交通工具(例如,坦克、悍马单元(hunweeunit)、 个人运输机或个别士兵)的位置数据。在另一实例中,源节点420可为摄影单元,例如 获取视频或图像的视频或静态图片相机。在另一实例中,源节点可为通信模块,例如无
13线电或麦克风。目的地节点430可为对源节点420所获取的数据感兴趣的任何装置或系 统。举例来说,目的地节点430可为接收器、中央计算机系统和/或由战地指挥所或侦查 单位利用的计算机。
由数据通信系统410接收、存储、确定优先级、处理、传送和/或传输的数据可包含 数据块。例如,所述数据块可为包、单元、帧和/或串流。举例来说,所述数据通信系统 410可接收来白源节点420的数据包。作为另一实例,数据通信系统410可处理来自源 节点420的数据串流。
在某些实施例中,数据包含协议信息。举例来说,可由一个或一个以上协议使用协 议信息来传送数据。协议信息可包含(例如)源地址、目的地地址、源端口、目的地端 口和/或协议类型。举例来说,源和/或目的地地址可为源节点420和/或目的地节点430 的IP地址。协议类型可包含用于传送数据的一个或一个以上层的协议种类。举例来说, 协议类型可为传输协议,例如传输控制协议(TCP)、用户数据报协议(UDP)或串流控 制传输协议(SCTP)。作为另一实例,协议类型可包含因特网协议(IP)、网间包交换(IPX)、 以太网、非同步转移模式(ATM)、文件传输协议(FTP)和/或实时传输协议(RTP)。 在某些实施例中,数据还可包含时间戳信息。所述时间戳信息可指示(例如)由源节点 420获取数据的吋间。
在某些实施例屮,数据包含标头和有效负载。举例来说,标头可包含 些或所有协 议信息和时间戳信息。在某些实施例中, 一些或所有协议信息和时间戳信息包含在有效 负载中。举例来说,协议信息可包含与存储在数据块的有效负载部分中的较高级协议相 关的信息。在某些实施例中,数据在存储器中不邻接。即,数据的一个或一个以上部分 可位于存储器的不问区中。例如,可将协议信息存储在存储器的一个区中,问时将有效 负载存储在另一缓冲器中,且将时间戳信息存储在又一缓冲器中。
在一实施例中,源节点420和数据通信系统410可为相同移动单元的一部分。移动 单元可为坦克、悍马单元、个人运输机、个别士兵、无人驾驶飞机(UAV)、或其它移动 单元。坦克可具有GPS传感器以指示作为源单元420的位置数据。可将位置数据传送到 数据通信系统410。数据通信系统410可位于坦克上。数据通信系统410可准备供传送 到目的地节点430的数据。作为用于传送到目的地节点的准备的一部分,数据通信系统 410可执行某 一 形式的网络接入协议。网络接入协议可包含从控制单元请求M络接入、 感测载波可用性,或其它形式的接入控制。
在一实例中,数据通信系统410正试图为其获取接入的网络可为带宽受约束的。另 外, 一个或一个以上链路可为不可靠的和/或间歇地断开。因此,数据通信系统410可临
14时将从源420接收到的数据列队,直到数据通信系统410已能够接入M络以将数据传送 到目的地430为止。举例来说,源420可获取第一数据集。源420可将第一数据集传送 到数据通信系统410。数据通信系统410可能当前不具有网络接入以将第一数据集传输 到目的地430。接着可临时将第一数据集列队在队列中,直到数据通信系统410具有网 络接入为止。同时,源可能获取第二数据集。可将第二数据集传送到数据通信系统410。 数据通信系统410可能尚未具有网络接入以将第一数据集或第二数据集传输到目的地 430。如果数据为其中数据的定时是相关的类型,例如最近的数据与目的地430相关(例 如,位置数据),那么第一数据集不再相关。换句话说,在第二数据集看来,第一数据 集已变为功能上冗余的。因此,将第一数据集传输到目的地430可能不必要地消耗网络 带宽。
在另一实例中,源可获取第一数据集并将所述第一数据集传送到数据通信系统410。 数据通信系统410可能当前具有或可能当前不具有网络接入来将第一数据集传输到目的 地430。如果数据通信系统410具有对网络的接入,那么数据通信系统410可将第一数 据集传输到目的地430。源420可获取第二数据集。数据通信系统410可能当前具有或 可能当前不具有网络接入来将第二数据集传输到口的地430。如果数据通信系统410具 有对网络的接入,那么数据通信系统410可将第二数据集传输到口的地430。如果数据 是其屮获取的时间导致数据在连续的获取之间改变相对小的量的类型,例如,从高于地 面5000英尺的无人驾驶飞机(UAV)每秒拍摄的图片,连续数据集可为功能上冗余的, 换句话说,俘获了根本上相同的图像。因此,将连续数据集传输到目的地430可能不必 要地消耗网络带宽。
在另一实例中,源可获取第一数据集并将所述第一数据集传送到数据通信系统410。 数据通信系统410可能当前具有或可能当前不具有网络接入来将第一数据集传输到目的 地430。如果数据通信系统410具有对网络的接入,那么数据通信系统410可将第一数 据集传输到目的地430。源420可获取第二数据集。数据通信系统410可能当前具有或 可能当前不具有网络接入来将第二数据集传输到目的地430。如果数据通信系统410具 有对网络的接入,那么数据通信系统410可将第二数据集传输到目的地430。如果第一 数据集的内容与第二数据集的内容是相同和/或类似的,例如预期具有音频分量的数据集 中没有音频分量,那么连续数据集可为功能上冗余的。因此,将连续数据集传输到目的 地430可能不必要地消耗网络带宽。
图5说明与本发明的一实施例一起操作的数据通信环境500。环境500包含如图4 中所示的数据通信系统410、源420和目的地430。数据通信系统410经扩充和详述以
15说明本发明的某些实施例。
如图5中所示的数据通信系统410包含冗余规则数据库510、接收器520、操作处 理器530、 一个或一个以上队列540和传输器550。冗余规则数据库510与操作处理器 530通信。接收器520与操作处理器530和源420通信。操作处理器530与队列540通 信。举例来说,如图5中所示的数据通信系统410可经由链路(例如,电线、无线电、 卫星、网络链路)和/或通过过程间通信与源节点420和/或目的地节点430通信。在某 些实施例中,数据通信系统410可经由一个或一个以上战术数据网络与一个或一个以上 源节点420禾[J/或目的地节点430通信。系统500的组件、系统500中的连接和系统500 可为单个单元、单独单元,可以各种形式整合,且可实施在硬件中和/或软件中。
在一实施例中,冗余规则数据库510可为用于存储各种规则和/或协议并将其传送到 操作处理器530的数据库。冗余规则数据库510和冗余规则数据库510与操作处理器530 之间所示的连接表示用于执行操作并存储规则和指令的各种组件和/或软件。接收器520 表示用于从源420接收数据的各种组件和/或软件。操作处理器530表示基于由冗余规则 数据库510传送的规则来处理数据并执行操作的处理器。队列540表示用于将数据列队 的各种组件和/或软件。传输器550表示用于将数据传输到目的地430的各种组件和/或 软件。
如上文所论述,由数据通信系统410接收、存储、确定优先级、处理、传送和/或传 输的数据可包含数据块。例如,所述数据块可为包、单元、帧和/或串流。举例来说,接 收器520展示为具有数据块。数据集可包含单个数据块,或多个数据块。
在某些实施例中,数据包含协议信息。举例来说,可由一个或一个以上协议使用协 议信息来传送数据。协议信息可包含(例如)源地址、冃的地地址、源端口、冃的地端 口和/或协议类型。源和/或冃的地地址可为(例如)源节点420禾口/或冃的地节点430的 IP地址。协议类型可包含用于传送数据的一个或一个以上层的协议种类。举例来说'协 议类型可为传输协议,例如传输控制协议(TCP)、用户数据报协议(UDP)或串流控制 传输协议(SCTP)。作为另一实例,协议类型可包含因特网协议(IP)、网间包交换(IPX)、 以太网、非同步转移模式(ATM)、文件传输协议(FTP)禾B/或实时传输协议(RTP)。 在某些实施例中,数据还可包含时间戳信息。所述时间戳信息可指示(例如)由源节点 420获取数据的时间。
在某些实施例中,数据包含标头和有效负载。举例来说,标头可包含一些或所有协 议信息和时间戳信息。在某些实施例中, 一些或所有协议信息和时间戳信息包含在有效 负载中。举例来说,协议信息可包含与存储在数据块的有效负载部分中的较高级协议相关的信息。在某些实施例中,数据在存储器中不邻接。g卩,数据的一个或一个以上部分 可位于存储器的不同区中。例如,可将协议信息存储在存储器的一个区中,同时将有效 负载存储在另一缓冲器中,且将时间戳信息存储在又一缓冲器中。
在操作中,由一个或一个以上数据源420提供和/或产生数据集。在接收器520处接 收数据集。举例来说,可经由一个或一个以上链路来接收数据集。举例来说,可在数据 通信系统410处经由战术数据网络从无线电接收数据集。作为另一实例,可通过借助过 程间通信机制在相同系统上运行的应用程序将数据集提供到数据通信系统410。如上所 论述,数据集可包含单个数据块,或多个数据块。
在某些实施例中,接收器520可将数据集传送到操作处理器530。操作处理器530 可接收数据集并确定是否对数据集执行功能冗余处理。操作处理器530可将确定是否对 数据集执行功能冗余处理基于来自冗余规则数据库510的冗余规则。
在一实施例中,冗余规则可为控制是否对特定数据集执行功能冗余处理,以及在将 要执行功能冗余处理的情况下如何执行功能冗余处理的规则。基于各种因素由用户选择 或由计算机软件选择的模式可定义"多组"适用于数据集的冗余规则。
举例来说,冗余规则可基于由用户选择的"模式"而被设定为"开"或"关"。如 上文所论述,数据通信系统410可使用规则和模式或简档来执行处理量管理功能,例如 优化可用带宽、设定信息优先级和管理网络中的数据链路。例如,不同的模式可影响规 则、模式和/或数据传输上的改变。模式或简档可包含与对于特定网络健康状态或条件的 操作需求相关的一组规则。举例来说,数据通信系统410可提供模式的动态重新配置' 包含"在运行中"定义并切换到新模式或由用户选择模式。
如果选定模式利用一组冗余规则,那么操作处理器530可分析数据集以基于冗余规 则确定是否执行功能冗余处理。在一实施例中,可用的模式可具有不问的冗余规则。举 例来说,模式A可具有第一组冗余规则,且模式B可具有第二组冗余规则。 一组冗余规 则可属于单个模式,或多个模式。 一模式可包含一组以上的冗余规则。
在确定是否执行功能冗余处理的过程中,操作处理器530可从数据块读取信息,例 如数据块的协议信息、有效负载和/或时间戳。如上文所论述,协议信息可包含(例如) 源地址、目的地地址、源端口、目的地端口、协议类型和/或时间戳。举例来说,如果对 于选定模式,冗余规则数据库510中的冗余规则指示应针对来自特定源的数据执行功能 冗余,那么操作处理器530针对来自特定源的数据执行功能冗余处理。举例来说,选定 模式的冗余规则可指示针对来自源节点A的数据但不针对来自源节点B的数据执行功能 冗余处理。因此,在此实例中将不针对来自源节点B的数据执行功能冗余处理。如果操作处理器530确定应对数据集执行功能冗余处理,那么操作处理器530可根 据冗余规则对数据集执行功能冗余处理。可由选定模式确定冗余规则。举例来说,冗余 规则可规定操作处理器530搜索队列540寻找源自与当前数据集相同源的数据集。冗余 规则可规定如果在来自特定源的队列中找到较旧的数据集,那么所述较旧的数据集对于 当前较新的数据集为功能上冗余的。或者,冗余规则可规定操作处理器530搜索队列540 寻找源自与当前数据集相同源的数据集。所述冗余规则可指令操作处理器复査经列队数 据集和当前数据集的时间戳信息,以确定经列队的数据集和当前数据集是否含有功能上 冗余的信息。在另一替代方案中,冗余规则可指令操作过程复査有效负载信息以确定经 列队的数据集和当前数据集是否具有类似和/或相同的功能内容且因此为功能上冗余的。
举例来说,如果第一数据集和第二数据集是从相同源获取的,那么冗余规则可将第 一较早的数据集识别为对于第二较晚的数据集为功能上冗余的。在另一实例中,如果第 一数据集和第二数据集是以小于第一数据集与第二数据集之间的预定时间周期获取的, 那么冗余规则可将第一较早的数据集识别为对于第二较晚的数据集为功能上冗余的。在 另一实例中,举例来说,如果第一数据集和第二数据集具有功能上类似和/或相同的内容 (例如,预期具有音频分量的数据集中没有音频分量),那么冗余规则可将第二较晚的数 据集识别为对于第一较早的数据集为功能上冗余的。
可被分类为功能上冗余的数据的一实例可为位置数据。源420 (例如,GPS指示符) 可产生用于在特定时间报告悍马的位置的第一数据集。由于网络约束,第一数据集可存 储在队列540中。因为悍马可能在移动,所以源420可产生报告与第一数据集不同的位 置的第二数据集。当操作处理器530接收第二数据集时,操作处理器530可确定选定模 式针对来自源420的位置数据利用功能冗余。
操作处理器530可接着搜索队列540以确定来自源420的数据集是否存储在队列540
中。如果来自源420的数据集经定位,那么操作处理器530可确定位置数据的第一数据 集对于位置数据的第二数据集为功能上冗余的。因为时间上较早获取的位置数据的第一 数据集现在不如时间上较晚获取的位置数据的第二数据集准确,所以操作处理器530可 从队列540中丢弃位置数据的较早第一数据集。操作处理器530可接着将位置数据的第 二数据集添加到队列540。
操作处理器530可将第二数据集添加到队列540,使得队列540的传输次序不变。 举例来说,第二数据集可在队列的所述位置中取代第一数据集。在一实施例中,当第一 数据集被第二数据集取代时,保存队列中的所述地点。在另一实施例中,将第二数据集 添加到队列末端。操作处理器530可以先入先出协议将第二数据集添加到队列540。以此方式,将最近的位置数据发送到目的地430,而不会使网络承担"较旧"且不再准确 或相关的位置数据。
可被分类为功能上冗余的数据的另一实例可为在较短时期内获取的连续数据集。举 例来说,无人驾驶飞机(UAV)可在5000英尺处飞行,并每秒抓拍一张图片。UAV可 能正飞地相对缓慢,因此UAV拍到的图片不会彼此相当地不同。因为在较短时期内拍 到的连续图片可能不说明新的信息,所以所述连续图片可能为功能上冗余的。传输所述 功能上冗余的图片可能不必要地消耗宝贵的带宽。
在为了更好地理解而提供的一实例中.UAV可从相机(在此实例中为源420)俘获 第一图片(在此实例中为第一数据集),且将第一图片传送到接收器520。接收器520可 将第一图片传送到操作处理器530。操作处理器530可将第一图片传送到队列540。第 一图片可在队列540中等待,直到传输器550具有网络接入为」(:。在某些实施例中,在 将来自相机(在此实例中为源420)的第二图片(在此实例中为第二数据集)传送到操 作处理器530之前,传输器550可能不具有网络接入,或可能不请求网络接入。
操作处理器530在接收到第二数据集之后确定是否对第二数据集执行功能冗余处 理。如上文所论述,操作处理器530可从数据块中读取信息,例如数据块的协议信息、 有效负载,和/或时间戳。协议信息可包含(例如)源地址、口的地地址、源端口、 口的 地端口、协议类型和/或时间戳。当操作处理器530接收第二数据集时,操作处理器530 可根据冗余规则确定选定模式针对来自源420 (在此实例中为UAV上的相机)的数据利 用功能冗余。举例来说,冗余规则可指定时间阈值分离从源420传输到目的地430的数 据集。
操作处理器530可搜索队列540以确定来自源420的数据集是否存储在队列540中。 如果来自源420的数据集经定位,那么操作处理器530可复查第一数据集的时间戳和第 二数据集的时间戳。操作处理器530可确定第一数据集与第二数据集之间的获取时间(如 时间戳中所识别)的差异小于特定时间阈值,如果第一数据集与第二数据集的获取时间 之间的差异小于特定时间阈值,那么操作处理器540可确定第一数据集对于第二数据集 为功能上兀余的。可由选定模式确定时间阈值。
'在一实施例中,因为时间上较早获取的第一数据集现在不如时间上较晚获取的第二 数据集(第二图片)相关,所以操作处理器530可从队列540中丢弃较早的第一数据集 (第一图片)。操作处理器530可接着将第二数据集(第二图片)添加到队列540。操作 处理器530可将第二数据集添加到队列540,使得队列540的传输次序不变。举例来说, 第二数据集可在队列的所述位置中取代第一数据集。在一实施例中,当第一数据集被第
19二数据集取代时,保存队列中的所述地点。在另一实施例中,将第二数据集添加到队列末端。操作处理器530可以先入先出协议将第二数据集添加到队列540。
可被分类为功能上冗余的数据的另一实例可为具有相同或相似内容的数据集。如果第一数据集的内容与第二数据集的内容是相同和/或类似的,例如预期具有音频分量的数据集中没有音频分量,那么连续数据集可为功能上冗余的。举例来说,预期含有音频数据却不含有音频数据的数据集可指示数据集正在传输无线电寂静。如果无线电寂静对于目的地430不是有用的信息,那么传输含有无线电寂静的数据集可能不必要地消耗带宽。因此,对于预期有音频分量的数据集,具有很少或不具有音频分量的连续数据集可能为功能上冗余的。
在为了更好地理解而提供的一实例中,无线电或麦克风(在此实例中为源420)可能获取第一数据集,且将第一数据集传送到接收器520。接收器520可将第一数据集传送到操作处理器530。操作处理器530可将第一数据集传送到队列540。第一数据集可在队列540中等待,直到传输器550具有网络接入为止。在某些实施例中,在将第二数据集从源420传送到操作处理器530之前,传输器550可能不具有网络接入,或可能不请求网络接入。
操作处理器530在接收到第二数据集之后确定是否对第二数据集执行功能冗余处理。如上文所论述,操作处理器530可从数据块中读取信息,例如数据块的协议信息、有效负载,和/或时间戳。协议信息可包含(例如)源地址、目的地地址、源端口、目的地端口、协议类型和/或时间戳。当操作处理器530接收第二数据集时,操作处理器530可根据冗余规则确定选定模式针对来自源420 (在此实例中为无线电麦克风)的数据利用功能冗余。举例来说,冗余规则可指定在来自源420的数据有效负载中存在音频分量。
操作处理器530可搜索队列540以确定来自源420的数据集是否存储在队列540中。如果来自源420的数据集经定位,那么操作处理器530可在音频分量的预期位置处复查第一数据集的有效负载。操作处理器530还可在音频分量的预期位置处复査第二数据集的有效负载。操作处理器530可确定第一数据集不含有音频分量且第二数据集不含有音频分量。如果第一数据集和第二数据集都不含有音频分量,且预期两个数据集都具有音频分量,那么传输第一数据集和第二数据集两者不会将有用信息传送到目的地430。因此,操作处理器540可确定第一数据集对于第二数据集为功能上冗余的或第二数据集对于-第一数据集为功能上冗余的。
在一实施例中,操作处理器530可从队列540中丢弃较早的第一数据集。操作处理器530可接着将第二数据集添加到队列540。操作处理器530可将第二数据集添加到队
20列540,使得队列540的传输次序不变。举例来说,第二数据集可在队列的所述位置中取代第一数据集。在一实施例中,当第一数据集被第二数据集取代时,保存队列中的所述地点。在另一实施例中,将第二数据集添加到队列末端。或者,操作处理器530可以先入先出协议将第二数据集添加到队列540 。
在另一实施例中,操作处理器530可丢弃较晚的第二数据集,R.将第一数据集留在队列540中。在一实施例中,可能更有效的是,操作处理器530丢弃第二数据集而不是将第二数据集添加到队列并丢弃第一数据集。在第一数据集和第二数据集大体上含有类似和/或相同内容的实施例中,系统500在选择第一数据集或第二数据集进行传输方面可能大体上无关紧要。在其它因素大体上等同的情况下,操作处理器530可更有效地操作以传输某一数据的第一数据集并删除第二数据集。
功能冗余的上述实例仅是实例。可构思冗余规则以基于源、时间、有效负载或其它因素来界定冗余数据。冗余规则可适用于单个模式或多个模式。 一模式可利用单组冗余规则或多组冗余规则。
图6说明根据本发明的一实施例操作处理器530的流程图600。在步骤610中,已接收第.-数据集并将其存储在队列540中。已接收第二数据集并将其传送到操作处理器530。数据通信系统410处于针对来自源420的数据利用功能冗余的模式屮。由操作处理器530对第二数据集进行操作。由操作处理器530进行的操作可包含基于来自冗余规则数据库510的冗余规则(如由选定模式所操纵)来确定是否对第二数据集执行功能冗余处理。举例来说,操作处理器530可从第二数据集中读取信息,例如数据集的协议信息、有效负载,禾口/或时问戳。如上文所论述,协议信息可包含(例如)源地址、冃的地地址、源端口、冃的地端口、协议类型和/或时间戳。例如,如果对于选定模式来说冗余规则数据库510中的冗余规则指示应针对当前数据集执行功能冗余'那么操作处理器执行功能冗余处理。
如果冗余规则规定将要执行功能冗余处理,那么指示操作处理器530的功能性的流程图继续移动到步骤620。如果功能冗余规则规定将不执行功能冗余处理,那么操作处理器530 (流程图)继续移动到步骤640,且将第二数据集添加到队列540。在一实施例中,当第一数据集被第二数据集取代时,保存队列中的所述地点。在另一实施例中,将第二数据集添加到队列末端。 一旦己将第二数据集添加到队列540,第二数据集便等待向目的地430传输。
在步骤620中,操作处理器530根据冗余规则搜索队列540。在一实施例中,操作处理器530搜索队列540寻找对于第二数据集为功能上冗余的第一数据集。如上文所阐释,操作处理器基于冗余规则数据库510中的规则(如由选定模式所规定)来确定第一数据集对于第二数据集是否为功能上冗余的。作为一实例,如果第一和第二数据集源自相同源,那么操作处理器530可决定第一数据集对于第二数据集为功能上冗余的。作为另一实例,如果第一和第二数据集源自相同源,且时间戳之间的差异不大于预定阈值,那么操作处理器530可决定第一数据集对于第二数据集为功能上冗余的。作为又一实例,如果第一和第二数据集具有传输到目的地430多次可能没有用的共同元素,那么操作处理器530可决定第一数据集对于第二数据集为功能卜.冗余的。
在步骤620中,如果操作处理器530在队列540中定位了功能上冗余的数据,那么操作处理器530继续移动到步骤630。在步骤630中,如果操作处理器未在队列540中定位功能上冗余的数据,那么操作处理器530继续移动到步骤640,且将第一.数据集添加到队列540以等待传输。
在步骤630中,操作处理器530可从队列540中丢弃较早的第一数据集。操作处理器530可接着将较晚的第二数据集添加到队列540。在一实施例中,操作处理器530可将第二数据集添加到队列540,使得队列540的传输次序不变。在一实施例中,当第一数据集被第二数据集取代时,保存队列中的所述地点。在另一实施例中,将第二数据集添加到队列末端。操作处理器530可以先入先出协议将第二数据集添加到队列540。流程图600的步骤可重复执行以便有效地利用带宽。
图7说明根据本发明的-'实施例操作处理器530的流程图700。在步骤710中,已接收第一数据集并将其存储在队列540中。己接收第二数据集并将其传送到操作处理器530。数据通信系统410处于针对来自源420的数据利用功能冗余的模式中。由操作处理器530对第二数据集进行操作。由操作处理器530进行的操作可包含基于来自冗余规则数据库510的冗余规则(如由选定模式所操纵)来确定是否对第二数据集执行功能冗余处理。举例来说,操作处理器530可从第二数据集中读取信息,例如数据集的协议信息、有效负载,和/或时间戳。如上文所论述,协议信息可包含(例如)源地址、目的地地址、源端口、目的地端口、协议类型和/或时间戳。例如,如果对于选定模式来说冗余规则数据库510中的冗余规则指示应针对当前数据集执行功能冗余,那么操作处理器执行功能冗余处理。
如果冗余规则规定将要执行功能冗余处理,那么指示操作处理器530的功能性的流程图继续移动到步骤720。如果功能冗余规则规定将不执行功能冗余处理,那么操作处理器530 (流程图)继续移动到步骤740,且将第二数据集添加到队列540。 一旦已将第二数据集添加到队列540,第二数据集便等待向目的地430传输。
22在步骤720中,操作处理器530根据冗余规则搜索队列540。在一实施例中,操作处理器530搜索队列540寻找对于第二数据集为功能上冗余的第一数据集。如上文所阐释,操作处理器基于冗余规则数据库510中的规则(如由选定模式所规定)来确定第一数据集对于第二数据集是否为功能上冗余的。作为一实例,如果第一和第二数据集源自相同源,那么操作处理器530可决定第一数据集对于第二数据集为功能上冗余的。作为另一实例,如果第一和第二数据集源S相同源,且时间戳之间的差异不大于预定阈值,那么操作处理器530可决定第一数据集对于第二数据集为功能h冗余的。作为乂一实例,如果第一和第二数据集具有传输到目的地430多次可能没有用的共同元素,那么操作处理器530可决定第一数据集对于第一数据集为功能上冗余的。
在步骤720中,如果操作处理器530在队列540中定位了功能上冗余的数据,那么操作处理器530继续移动到步骤730。在步骤730中,如果操作处理器未在队列540中定位功能上冗余的数据,那么操作处理器530继续移动到步骤740,且将第二数据集添加到队列540以等待传输。
在步骤730中,操作处理器530可丢弃较晚的第二数据集,且将第一数据集留在队列540屮。在一实施例中,可能更有效的是,操作处理器530丢弃第二数据集而不是将第二数据集添加到队列并丢弃第一数据集。在第…数据集和第二数据集大体上含有类似和/或相同内容的实施例中,系统500在选择第一数据集或第二数据集进行传输方面可大体上无关紧要。在其它丙素大体上等同的情况下,操作处理器530可更有效地操作以传输某一数据的第一数据集并删除第二数据集。流程图700的步骤可重复执行以便有效地利用带宽。
图8说明根据本发明的一实施例的方法800。在步骤810中,可接收第一数据集。在步骤820中,可将所述第一数据集存储在队列中。在步骤830中,可接收第二数据集。在步骤840中,可确定是否针对第二数据集执行功能冗余处理。所述确定是否针对第二数据集执行功能冗余处理可取决于选定模式,以及与选定模式相关联的冗余规则。可基于(例如)网络条件来手动地或自动地选择模式。
在步骤850中,搜索队列寻找对于第二数据集为功能上冗余的数据集。可由冗余规则确定位于队列中的数据集对于当前数据集是否为功能上冗余的。可由选定模式确定冗余规则。作为一实例,冗余规则可规定如果第一和第二数据集源自相同源,那么第一数据集对于第二数据集为功能上冗余的。作为另一实例,冗余规则可规定如果第一和第二数据集源自相同源,且时间戳之间的差异不大T预定阈值,那么第一数据集对于第二数据集为功能上冗余的。作为又一实例,冗余规则可规定如果第一和第二数据集具有相同和/或类似的内容,那么第一数据集对于第二数据集为功能上冗余的。
在步骤860中,如果确定第二数据集对于第一数据集为功能上冗余的,那么可从队 列中丢弃较早的第一数据集。在步骤870中,可接着将较晚的第二数据集添加到队列。 在一实施例中,可将第二数据集添加到队列,使得队列的传输次序不变。在一实施例中, 当第一数据集被第二数据集取代时,保存队列中的所述地点。在另一实施例中,将第二 数据集添加到队列末端。或者,可以先入先出协议将第二数据集添加到队列。流程图800 的步骤可重复执行以便有效地利用带宽。
举例来说,方法800的步骤中的一个或一个以上步骤可在硬件、固件中和/或作为指 令集在软件中单独实施或组合实施。某些实施例可作为驻留在计算机可读媒体(例如存 储器、硬盘、DVD或CD)上的指令集而提供,以用于在通用计算机或其它处理装置上 执行。
本发明的某些实施例可省略方法800的步骤中的一者或一者以上和/或以不同于所 列举的次序的次序来执行所述步骤。例如,在本发明的某些实施例中可不执行某些步骤。 作为另一实例,可以不同于上文所列举的次序的时间次序(包括同时)来执行某些步骤。
上文所述的系统和方法800可作为包含用于计算机的指令集的计算机可读存储媒体 的--部分而实行。所述指令集可包含接收例行程序,其用于接收第一数据集和第二数据 集。所述指令集还可包含存储例行程序,其用于将所述第一数据集存储在队列中。所述 指令集还可包含确定例行程序,其用于基于冗余规则确定是否针对第二数据集执行功能 冗余处理。
可由选定模式例行程序来控制所述冗余规则。可由选择例行程序来选择所述选定模 式例行程序。可由用户选择所述选择例行程序,或可基于网络条件动态地选择所述选择 例行程序。所述冗余规则可包含第一冗余例行程序,其用于确定第二数据集和第一数据 集是否源自相问源节点。所述冗余规则还可包含第二冗余例行程序,其用于确定第二数 据集的时间戳与第一数据集的时间戳之间的时间。所述冗余规则还可包含第三冗余例行 程序,其用于确定在第一数据集与第二数据集之间是否存在共同元素。
所述指令集还可包含搜索例行程序,其用于搜索队列寻找第一数据集。如果第一数 据集对于第二数据集为功能上冗余的,那么可从队列中丢弃第一数据集且将第二数据集 添加到队列。在一实施例中,当第一数据集被第二数据集取代时,保存队列中所述地点。 在另一实施例中,将第二数据集添加到队列末端。将第二数据集添加到队列的步骤包含 用于以先入先出协议将第二数据集添加到队列的先入先出例行程序。
图9说明根据本发明的一实施例的方法900。在步骤910中,可接收第一数据集。在步骤920中,可将第一数据集存储在队列中。在步骤930中,可接收第二数据集。在 步骤940中,可确定是否针对第二数据集执行功能冗余处理。所述确定是否针对第二数 据集执行功能冗余处理可取决于选定模式,以及与选定模式相关联的冗余规则。可基于 (例如)网络条件来手动地或自动地选择模式。
在步骤950中,可搜索队列寻找对于第二数据集为功能上冗余的数据集。可由冗余 规则确定位于队列中的数据集对于当前数据集是否为功能上冗余的。可由选定模式确定 冗余规则。作为一实例,冗余规则可规定如果第一和第二数据集源自相同源,那么第一 数据集对于第二数据集为功能上冗余的。作为另一实例,冗余规则可规定如果第一和第 二数据集源自相同源,且时间戳之间的差异不大于预定阈值,那么第一数据集对于第二 数据集为功能上冗余的。作为又一实例,冗余规则可规定如果第一和第二数据集具有传 输多次可能没有用的共同元素,那么第一数据集对于第二数据集为功能上冗余的。
在步骤960中,如果确定第二数据集对于第一数据集为功能上冗余的,那么可丢弃 第二数据集,且第一数据集可保留在队列中。在一实施例中,可能更有效的是,丢弃第 二数据集而不是将第二数据集添加到队列并丢弃第一数据集。在第一数据集和第二数据
集大体上含有类似信息的实施例中,可选择第-一数据集或第二数据集进行传输。在其它 因素大体上等同的情况下,更有效的是,传输某一数据的第一数据集并丢弃第二数据集。 流程图900的步骤可重复执行以便有效地利用带宽。
举例来说,方法900的步骤中的-- 个或一个以上步骤可在硬件、固件中和/或作为指 令集在软件中单独实施或组合实施。某些实施例可作为驻留在计算机可读媒体(例如存 储器、硬盘、DVD或CD)上的指令集而提供,以用于在通用计算机或其它处理装置上 执行。
本发明的某些实施例可省略方法卯0的步骤中的一者或一者以上和/或以不同于所 列举的次序的次序来执行所述步骤。例如,在本发明的某些实施例中可不执行某些步骤。 作为另一实例,可以不同于上文所列举的次序的时间次序(包括同时)来执行某些步骤。
上文所述的系统和方法900可作为包含用于计算机的指令集的计算机可读存储媒体 的一部分而实行。所述指令集可包含接收例行程序,其用于接收第一数据集和第二数据 集。所述指令集还可包含存储例行程序,其用于将所述第一数据集存储在队列中。所述 指令集还可包含确定例行程序,其用于基于冗余规则确定是否针对第二数据集执行功能 冗余处理。
可由选定模式例行程序来控制所述冗余规则。可由选择例行程序来选择所述选定模 式例行程序。可由用户选择所述选择例行程序,或可基于网络条件动态地选择所述选择
25例行程序。所述冗余规则可包含第一冗余例行程序,其用于确定第二数据集和第一数据 集是否源自相同源节点。所述冗余规则还可包含第二冗余例行程序,其用于确定第二数 据集的时间戳与第 一 数据集的时间戳之间的时间。所述冗余规则还可包含第三冗余例行 程序,其用于确定第一数据集的内容对于第二数据集的内容是否为功能上冗余的。
所述指令集还可包含搜索例行程序,其用于搜索队列寻找第一数据集。所述指令集 还可包含传输例行程序,其用于在第一数据集的内容对于第二数据集的内容为功能上冗 余的情况下传输第一数据集并丢弃第二数据集。
权利要求
1. 一种用于控制数据通信的服务质量的方法,所述方法包括接收第一数据集和第二数据集;将所述第一数据集存储在队列中;确定所述第一数据集的内容对于所述第二数据集的内容是否为功能上冗余的;以及,如果所述第一数据集的所述内容对于所述第二数据集的所述内容为功能上冗余的,那么传输所述第一数据集并丢弃所述第二数据集。
2. 根据权利要求1所述的方法,其进一步包含,在确定所述第一数据集的所述内容对于所述第二数据集的所述内容是否为功能上冗余的之前,基于冗余规则确定是否针对所述第二数据集执行功能冗余处理,由选定模式控制所述冗余规则。
3. 根据权利要求2所述的方法,其中由用户选择所述选定模式。
4. 根据权利要求2所述的方法,其中基于网络条件动态地选择所述选定模式。
5. 根据权利要求2所述的方法,其中所述冗余规则基于所述第二数据集中的数据标头中所含有的信息来确定是否执行功能冗余处理。
6. 根据权利要求2所述的方法,其中所述冗余规则基于所述第二数据集的有效负载中所含有的信息来确定是否执行功能冗余处理。
7. 根据权利要求2所述的方法,其中所述冗余规则基于所述第二数据集的源节点来确定是否执行功能冗余处理。
8. 根据权利要求1所述的方法,其中所述确定所述第一数据集的所述内容对于所述第二数据集的所述内容是否为功能上冗余的步骤进一步包含搜索所述队列寻找所述第一数据集,并基于所述冗余规则将所述第一数据集的所述内容与所述第二数据集的所述内容进行比较。
9. 一种计算机可读媒体,其具有用于在处理装置上执行的指令集,所述指令集包括接收例行程序,其用于接收第一数据集和第二数据集;存储例行程序,其用于将所述第一数据集存储在队列中;冗余例行程序,其用于确定所述第一数据集的内容对于所述第二数据集的内容是否为功能上冗余的;以及,传输例行程序,其用于在所述第一数据集的所述内容对于所述第二数据集的所述内容为功能上冗余的情况下传输所述第一数据集并丢弃所述第二数据集。
10.—种用于数据通信的方法,所述方法包括接收第一数据集;将所述第一数据集存储在队列中;接收第二数据集;基于冗余规则确定是否针对所述第二数据集执行功能冗余处理,由选定模式控制所述冗余规则;搜索所述队列寻找所述第一数据集,并基于所述冗余规则确定所述第一数据集对于所述第二数据集是否为功能上冗余的;以及,如果所述第一数据集对于所述第一.数据集为功能上冗余的,那么丢弃所述第二数据集。
全文摘要
本发明的某些实施例提供一种用于保存数据网络中的带宽的系统(100)和方法(800)(900)。所述方法(800)(900)包含确定是否针对当前数据集执行功能冗余处理。可根据冗余规则来进行是否针对当前数据集执行功能冗余处理的确定。在执行功能冗余处理的过程中,所述方法包含接收第一数据集(810)(910)和第二数据集(830)(930)且将所述第一数据集存储在队列中(820)(920)。所述方法还可包含确定所述第一数据集的内容对于所述第二数据集的内容是否为功能上冗余的(840,850)(940,950)。如果所述第一数据集的所述内容对于所述第二数据集的所述内容为功能上冗余的,那么所述方法包含传输所述第一数据集并丢弃所述第二数据集(860)(960)。功能上冗余的消息在传输前被丢弃,从而优化了带宽。
文档编号H04L12/56GK101491031SQ200780026845
公开日2009年7月22日 申请日期2007年6月14日 优先权日2006年6月20日
发明者唐纳德·L·史密斯, 安东尼·P·加卢希奥, 罗伯特·J·克纳齐克 申请人:贺利实公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1