説明

イベントドリブンメッセージベースデータの適応的スループット管理のためのシステム及び方法

【課題】戦術データネットワークにおける適応的でコンフィギュラブルなQoSシステム及び方法を提供する。
【解決手段】異なるタイプのデータに異なる優先順位を付ける。優先順位付けはトランスポートレイヤまたはトランスポートレイヤの上位においての少なくとも一方において実行される、ネットワークの帯域幅状態を決定するためネットワークを解析し、帯域幅状態が第1ネットワーク状態タイプを有すると判断されると、第1優先レベルが割り当てられたデータの第1部分のみを選択的に通信する。ネットワークの帯域幅状態が第1ネットワーク状態タイプと異なる第2ネットワーク状態タイプを有すると判断されると、第1優先レベルと異なる第2優先レベルが割り当てられたデータの第2部分のみを選択的に通信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に通信ネットワークに関する。より詳細には、本発明は、適応的なスループットデータ管理のためのシステム及び方法に関する。
【背景技術】
【0002】
様々な環境で通信ネットワークが利用されている。通信ネットワークは、典型的には、1以上のリンクにより接続された2以上のノードを有する。一般に、通信ネットワークは、リンク上の2以上の加入ノードと通信ネットワークの中間ノードとの間の通信をサポートするのに使用される。ネットワークには、多数のタイプのノードが存在するかもしれない。例えば、ネットワークは、クライアント、サーバ、ワークステーション、スイッチ及び/又はルータなどのノードを有するかもしれない。リンクは、例えば、電話線を介したモデム接続、配線、イーサネット(登録商標)リンク、ATM(Asynchronous Transfer Mode)回路、衛星リンク及び/又は光ファイバケーブルなどであるかもしれない。
【0003】
通信ネットワークは、実際には、1以上の小規模な通信ネットワークから構成されるかもしれない。例えば、インターネットはしばしば、相互に接続されたコンピュータネットワークのネットワークとして説明される。各ネットワークは、異なるアーキテクチャ及び/又はトポロジーを利用するかもしれない。例えば、1つのネットワークは、スタートポロジーを備えたスイッチされるイーサネット(登録商標)ネットワークであるかもしれず、他のネットワークは、FDDI(Fiber−Distributed Data Interface)リングであるかもしれない。
【0004】
通信ネットワークは、広範なデータを伝送するかもしれない。例えば、ネットワークは、インタラクティブなリアルタイムの会話のためのデータと共に、一括ファイル転送を伝送するかもしれない。ネットワーク上で送信されるデータはしばしば、パケット、セル又はフレームにより送信される。あるいは、データはストリームとして送信されるかもしれない。いくつかの具体例では、データのストリーム又はフローは、実際にはパケットのシーケンスであるかもしれない。インターネットなどのネットワークは、ある範囲のノード間のものであって、異なる要求により膨大なデータアレイを伝送する一般的な目的のためのデータパスを提供する。
【0005】
ネットワークを介した通信は、典型的には、複数レベルの通信プロトコルを伴う。ネットワーキングスタック又はプロトコルパッケージとも呼ばれるプロトコルスタックは、通信に利用されるプロトコル群を意味する。各プロトコルは、特定タイプの能力又は特定形式の通信に利用されるかもしれない。例えば、1つのプロトコルは、銅線により接続される各装置と通信するのに必要とされる電気信号に関するものであるかもしれない。他のプロトコルは、例えば、多数の中間ノードにより分離される2つのノードの間の順序付け及び確実な送信に関するものであるかもしれない。
【0006】
プロトコルスタックの各プロトコルは、典型的には、階層により存在する。しばしば、各プロトコルはレイヤに分類される。プロトコルレイヤの1つの参照モデルは、OSI(Open Systems Interconnection)モデルである。OSI参照モデルは、物理レイヤ、データリンクレイヤ、ネットワークレイヤ、トランスポートレイヤ、セッションレイヤ、プレゼンテーションレイヤ及びアプリケーションレイヤの7つのレイヤを含む。物理レイヤが“最下位”レイヤであり、アプリケーションレイヤが“最上位”レイヤである。2つの周知なトランスポートレイヤプロトコルは、TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)である。周知のネットワークレイヤプロトコルは、IP(Internet Protocol)である。
【0007】
送信ノードにおいて、送信対象となるデータが、最上位から最下位にプロトコルスタックの各レイヤに下っていく。他方、受信ノードでは、データは、最下位から最上位に各レイヤを昇っていく。各レイヤでは、データは当該レイヤにおけるプロトコル処理通信により処理されるかもしれない。例えば、トランスポートレイヤプロトコルは、送信先ノードにおける到着に対するパケットの順序付けを可能にするヘッダをデータに追加するかもしれない。アプリケーションに応じて、一部のレイヤは利用されず又は存在しないかもしれず、またデータは単に通過するかもしれない。
【0008】
1つのタイプの通信ネットワークは、戦術データネットワーク(tactical data network)である。戦術データネットワークはまた、戦術通信ネットワークと呼ばれるかもしれない。戦術データネットワークは、軍隊(陸軍、海軍及び/又は空軍など)などの組織内の各ユニットにより利用されるかもしれない。戦術データネットワーク内の各ノードは、例えば、各兵士、航空機、コマンドユニット、衛星及び/又はラジオなどを含むかもしれない。戦術データネットワークは、音声、位置測定情報、センサデータ及び/又はリアルタイムビデオなどのデータを通信するのに利用されるかもしれない。
【0009】
戦術データネットワークの利用方法の一例は、以下の通りである。後方支援部隊が、戦場の戦闘ユニットのための供給を提供するため展開中であるかもしれない。当該部隊と戦闘ユニットは共に、衛星無線リンクを介し指揮所に位置測定情報を提供しているかもしれない。無人航空機(UAV)が、当該部隊がリアルタイムビデオデータを取得し、衛星無線リンクを介し指揮所に送信している道路に沿ってパトロールしているかもしれない。指揮所では、アナリストがビデオデータを調べながら、コントローラが道路の特定セクションのビデオを提供するようUAVに指示している。このとき、アナリストは、当該部隊が近づいている即席爆発装置(IED)を検出し、停止するよう部隊に直接的な無線リンクを介し命令を送信し、部隊にIEDの存在を警告する。
【0010】
戦術データネットワーク内に存在するかもしれない各種ネットワークは、多数の異なるアーキテクチャ及び特性を有するかもしれない。例えば、戦闘ユニットにおけるネットワークは、極めて低いスループットと大きな遅延により動作する戦場ユニット及び衛星との無線リンクと共に、ギガビットイーサネット(登録商標)LAN(Local Area Network)を有するかもしれない。戦場ユニットは、衛星と直接的なパス無線周波数(RF)の双方を介して通信するかもしれない。データは、当該データの性質及び/又はネットワークの具体的な物理的特性に応じて、ポイント・ツー・ポイント、マルチキャスト又はブロードキャストにより送信されるかもしれない。ネットワークは、例えば、データを設定から中継までの各無線を含むかもしれない。さらに、ネットワークは、広範囲の通信を可能にする高周波数(HF)ネットワークを含むかもしれない。例えば、マイクロ波ネットワークがまた、利用されるかもしれない。他の理由のうちで、リンク及びノードのタイプの多様性によって、戦術ネットワークはしばしば、過度に複雑なネットワークアドレッシングスキームとルーティングテーブルとを有する。さらに、無線ベースネットワークなどの一部のネットワークは、バーストを利用して動作するかもしれない。すなわち、データを連続的に送信するのでなく、断続的なバーストデータを送信する。これは、無線がすべての参加者により共有される必要がある特定チャネル上でブロードキャストしていて、1つの無線しか一時に伝送しないため、有用である。
【0011】
戦術データネットワークは、一般に帯域幅制限される。すなわち、典型的には、所与の時点において利用可能な帯域幅より大きな通信対象となるデータが存在する。これらの制約は、供給を超える帯域幅の要求、及び/又はユーザの要求を満たすのに十分な帯域幅を供給する利用可能な通信技術がないことによるかもしれない。例えば、いくつかのノードの間では、帯域幅は毎秒キロビットのオーダであるかもしれない。帯域幅制限のある戦術データネットワークでは、重要性の低いデータがネットワークを占有する可能性があり、重要性の高いデータがタイムリーに伝送されず、又は受信ノードに全く到着しない可能性もある。さらに、ネットワークの一部は、信頼性の低いリンクを補償するための内部バッファを含むかもしれない。これは、さらなる遅延をもたらすかもしれない。さらに、バッファが一杯になると、データが欠落されるかもしれない。
【0012】
多くの例では、ネットワークに利用可能な帯域幅は、増やすことができない。例えば、衛星通信リンクを介し利用可能な帯域幅は、固定されており、他の衛星を配置させることなく効果的に増やすことはできない。これらの状況では、帯域幅は需要を処理するため単に拡大されずに管理される必要がある。大規模システムでは、ネットワーク帯域幅は重要なリソースである。アプリケーションが可能な限り効率的に帯域幅を利用することが望ましい。さらに、アプリケーションが“パイプの詰まり”、すなわち、帯域幅が制限されているときにデータがリンクを圧倒することを回避することが望ましい。帯域幅の割当てが変更されると、好ましくは、アプリケーションは反応すべきである。帯域幅は、例えば、QoS、ジャミング(jamming)、信号障害、優先順位再割当、及び見通しなどにより動的に変化しうる。ネットワークは極めて不安定であり、利用可能な帯域幅は、急激にかつ通知なく変化しうる。
【0013】
帯域幅制約に加えて、戦術データネットワークは大きな遅延が生じるかもしれない。例えば、衛星リンクを介した通信を伴うネットワークは、0.5秒又はそれ以上のオーダによる遅延を引き起こすかもしれない。いくつかの通信では、これは問題とはならないが、リアルタイムのインタラクティブ通信(音声通信など)などの他の通信では、可能な限り遅延を最小化することは望ましい。
【0014】
多くの戦術データネットワークに共通する他の特徴は、データ欠落である。データは、様々な理由により欠落する。例えば、送信すべきデータを有したノードが故障又は損傷するかもしれない。他の例として、送信先ノードがネットワークから一時的に欠落するかもしれない。これは、例えば、ノードが範囲外に移動したため、通信リンクが遮断されたため、及び/又はノードが混雑しているためなどにより発生するかもしれない。送信先ノードが受信できず、中間ノードが送信先ノードが利用可能になるまでデータをバッファするのに十分な容量を欠いているため、データが欠落するかもしれない。さらに、中間ノードは、データを全くバッファリングせず、その代わりにデータが送信先に今まで実際に到達したか判断するため、送信ノードに任せる。
【0015】
しばしば、戦術データネットワークにおけるアプリケーションは、ネットワークの特定の特性を認識せず、及び/又は考慮しない。例えば、あるアプリケーションは、それが必要とするのと同じくらい利用可能な帯域幅を有していると単に仮定するかもしれない。他の例として、アプリケーションは、データがネットワークにおいて欠落しないと仮定するかもしれない。基礎となる通信ネットワークの具体的特性を考慮しないアプリケーションは、実際に問題を悪化させないように動作するかもしれない。例えば、アプリケーションは、より大きな束によりより少ない頻度で効果的に送信可能なデータのストリームを連続的に送信するかもしれない。この連続的なストリームは、例えば、通信から他のノードを効果的に枯渇させるブロードキャスト無線ネットワークなどにおいて極めて大きなオーバヘッドをもたらし、より頻度の低いバーストは、共有されている帯域幅がより効果的に使用されることを可能にするであろう。
【0016】
特定のプロトコルは、戦術データネットワークに対して良好に機能しない。例えば、TCPなどのプロトコルは、無線ベース戦術ネットワーク上では良好に機能しないかもしれない。なぜなら、当該ネットワークが高い損失レートと遅延に直面する可能性があるためである。TCPは、データを送信するため複数の形式のハンドシェイク及びアクノリッジメントが行われることを要求する。高い遅延とロスにより、TCPはタイムアウトに至り、当該ネットワークを介し存在する場合に多くの有意なデータを送信することができないかもしれない。
【0017】
戦術データネットワークにより通信される情報はしばしば、ネットワークにおいて他のデータに関して様々なレベルの優先度を有する。例えば、航空機における脅威警告受信機は、数マイル離れた地上部隊の位置測定情報より高い優先度を有するかもしれない。他の例として、戦闘に関する本部からかの命令は、味方のラインの後方の後方支援通信より高い優先度を有するかもしれない。優先レベルは、送信者及び/又は受信者の特定の状況に依存するかもしれない。例えば、位置測定データは、ユニットが単に標準的なパトロールルートに従っているときより、ユニットが戦闘状態に積極的に従事しているときにはるかに大きな優先度を有するかもしれない。同様に、UAVからのリアルタイムビデオデータは、それが単にルート上にあるときより、ターゲットエリアにあるときに高い優先度を有するかもしれない。
【0018】
ネットワークを介しデータを送信するアプローチは複数ある。多くの通信ネットワークにより利用される1つのアプローチは、“ベストエフォート”アプローチである。すなわち、通信されるデータが処理されると共に、他の要求が与えられると、ネットワークが能力、遅延、信頼性、順序付け及びエラーに関して処理可能である。従って、ネットワークは、所与のデータ部分がそれの送信先にタイムリーに又はすべて到達するということを保証しない。さらに、データが送信順序により又はデータの1以上のビットを変更する送信エラーなく到達するということは保証されない。
【0019】
他のアプローチはQoSである。QoSは、伝送されるデータに関して各種形式の保証を提供するためのネットワークの1以上の能力を表す。例えば、QoSをサポートするネットワークは、データストリームに対して特定量の帯域幅を保証するかもしれない。他の例として、ネットワークは、2つの特定ノードの間のパケットがある最大遅延しか有しないことを保証するかもしれない。このような保証は、これら2つのノードがネットワークを介し会話する2人の人である音声通信の場合に有用であるかもしれない。このようなケースでのデータ送信の遅延は、例えば、通信における苛々するギャップ及び/又は無音状態をもたらすかもしれない。
【0020】
QoSは、選択されたネットワークトラフィックにより良好なサービスを提供するためのネットワークの能力としてみなされるかもしれない。QoSの主要な目的は、専用の帯域幅、制御されたジッタ及び遅延(リアルタイムでインタラクティブなトラフィックにより要求される)並びに向上した損失特性を含む優先度を提供することである。他の重要な目的は、1つのフローに優先順位を提供することが他のフローを失敗させないことを確実にすることである。すなわち、以降のフローについてなされる保証が、既存のフローについてなされる保証を破ってはならない。
【0021】
QoSに対する現在のアプローチは、しばしばネットワークのすべてのノードがQoSをサポートするか、又は少なくとも特定の通信に関係するネットワークのすべてのノードに対してQoSをサポートすることを要求する。例えば、現在のシステムでは、2つのノードの間の遅延保証を提供するため、これら2つのノードの間のトラフィックを伝送するすべてのノードが、その保証を認識し、それを尊重することに同意し、尊重することができなければならない。
【0022】
QoSを提供するアプローチは複数存在する。1つのアプローチは、Integrated Services、すなわち、“IntServ”である。IntServは、ネットワークのすべてのノードがサービスをサポートし、接続が設定されるとこれらのサービスが予約されるQoSシステムを提供する。IntServは、すべてのノードにおいて維持される必要がある大量の状態情報と、当該接続を設定することに係るオーバヘッドとにより良好にはスケーリングできない。
【0023】
QoSを提供する他のアプローチは、Differentiated Services、すなわち、“DiffServ”である。DiffServは、インターネットなどのネットワークのベストエフォートサービスを向上させるサービスモデルのクラスである。DiffServは、ユーザ、サービス要求及び他の基準によってトラフィックを区別する。このとき、ネットワークノードが優先キュー処理又は帯域幅割当てを介し、又は特定のトラフィックフローのための専用のルートを選択することによって、異なるレベルのサービスを提供できるように、DiffServはパケットをマーク付けする。典型的には、ノードは、各サービスクラスについて各種キューを有する。このとき、ノードは、クラスカテゴリに基づきこれらのキューから送信する次のパケットを選択する。
【0024】
既存のQoSソリューションはしばしばネットワークに固有のものであり、各ネットワークタイプ又はアーキテクチャは異なるQoSコンフィギュレーションを要求するかもしれない。既存のQoSソリューションが利用するメカニズムによって、現在のQoSシステムと同様のメッセージは、実際にメッセージコンテンツに基づき異なる優先順位を有するかもしれない。しかしながら、データ消費者は、優先度の低いデータにより充填されることなく高い優先度のデータへのアクセスを要求するかもしれない。既存のQoSシステムは、トランスポートレイヤにおけるメッセージコンテンツに基づくQoSを提供することができない。
【0025】
上述されるように、既存のQoSソリューションは、少なくとも特定の通信に関係するノードがQoSをサポートすることを要求する。しかしながら、ネットワークの“エッジ”にあるノードは、それらがトータルの保証をすることができない場合でさえ、QoSの向上を提供するよう構成されるかもしれない。各ノードは、それらが通信に参加するノード(すなわち、送信及び/又は受信ノード)である場合、及び/又はそれらがネットワークのチョークポイントにある場合、ネットワークのエッジにいるとみなされる。チョークポイントは、すべてのトラフィックが他の部分にわたされる必要があるネットワークのセクションである。例えば、LANから衛星リンクへのルータ又はゲートウェイは、チョークポイントとなるであろう。なぜなら、LANからLAN上にない何れかのノードへのすべてのトラフィックは、ゲートウェイを介し衛星リンクにわたされる必要があるためである。
【発明の概要】
【発明が解決しようとする課題】
【0026】
従って、戦術データネットワークにおいてQoSを提供するシステム及び方法が必要とされる。戦術データネットワークのエッジ上でQoSを提供するシステム及び方法が必要とされる。さらに、戦術データネットワークにおける適応的でコンフィギュラブルなQoSシステム及び方法が必要とされる。
【課題を解決するための手段】
【0027】
本発明の特定の実施例は、データを通信する方法であって、データに優先順位を割り当てることによって、前記データを優先順位付けするステップと、前記ネットワークの状態を決定するため、ネットワークを解析するステップと、前記データの優先順位と前記ネットワークの状態とに少なくとも部分的に基づき、前記データを通信するステップとを有する方法を提供する。
【0028】
本発明の特定の実施例は、データ優先順位付けコンポーネントと、ネットワーク解析コンポーネントと、データ通信コンポーネントとを有するデータを通信するシステムを提供する。データ優先順位付けコンポーネントは、データに優先順位を割り当てるよう構成される。ネットワーク解析コンポーネントは、ネットワークの状態を決定するよう構成される。データ通信コンポーネントは、前記データの優先順位と前記ネットワークの状態とに少なくとも部分的に基づき、前記データを通信するよう構成される。
【0029】
本発明の特定の実施例は、コンピュータ上で実行される命令セットを含むコンピュータ可読媒体を提供し、命令セットは、データ優先順位付けルーチンと、ネットワーク解析ルーチンと、データ通信ルーチンとを有する。データ優先順位付けルーチンは、データに優先順位を割り当てるよう構成される。ネットワーク解析ルーチンは、ネットワークの状態を決定するよう構成される。データ通信ルーチンは、前記データの優先順位と前記ネットワークの状態とに少なくとも部分的に基づき、前記データを通信するよう構成される。
【発明の効果】
【0030】
本発明によると、戦術データネットワークにおいてQoSを提供するシステム及び方法、戦術データネットワークのエッジ上でQoSを提供するシステム及び方法、並びに戦術データネットワークにおける適応的でコンフィギュラブルなQoSシステム及び方法を提供することができる。
【図面の簡単な説明】
【0031】
【図1】図1は、本発明の実施例により動作する戦術通信ネットワーク環境を示す。
【図2】図2は、本発明の実施例による7レイヤOSIネットワークモデルにおけるデータ通信システムの配置を示す。
【図3】図3は、本発明の実施例によるデータ通信システムを利用して実現される複数のネットワークの一例を示す。
【図4】図4は、本発明の実施例によるデータ通信システムにより利用されるデータ優先度及びネットワーク状態のいくつかの例を示す。
【図5】図5は、本発明の実施例によるデータ通信環境内で動作するデータ通信システムを示す。
【図6】図6は、本発明の実施例によるデータ通信方法のフロー図を示す。
【図7】図7は、本発明の実施例によるデータを優先順位付けするシステムを示す。
【図8】図8は、本発明の実施例によるデータを優先順位付けする方法を示す。
【発明を実施するための形態】
【0032】
上記概要と、本発明の特定の実施例の以下の詳細な説明は、添付した図面と共に参照されるときより良好に理解されるであろう。本発明を説明するため、特定の実施例が図面に示される。しかしながら、本発明は添付した図面に示される構成及び装置に限定されるものでないことが理解されるべきである。
【0033】
図1は、本発明の実施例により動作する戦術通信ネットワーク環境100を示す。ネットワーク環境100は、複数の通信ノード110と、1以上のネットワーク120と、ノード及びネットワークを接続する1以上のリンク130と、ネットワーク環境100の各コンポーネントの通信を実現する1以上の通信システム150とを有する。以下の説明は、複数のネットワーク120と複数のリンク130とを有するネットワーク環境100を想定するが、他の環境もまた可能であり想定されることが理解されるべきである。
【0034】
通信ノード110は、無線、送信機、衛星、受信機、ワークステーション、サーバ及び/又は他の計算若しくは処理装置などであり、及び/又はそれらを含むかもしれない。
【0035】
ネットワーク120は、例えば、ノード110の間でデータを送信するハードウェア及び/又はソフトウェアであるかもしれない。ネットワーク120は、例えば、1以上のノード110を含むかもしれない。
【0036】
リンク130は、ノード110及び/又はネットワーク120の間の送信を可能にする有線及び/又は無線接続であるかもしれない。
【0037】
通信システム150は、例えば、ノード110、ネットワーク120及びリンク130の間のデータ送信を実現するため使用されるソフトウェア、ファームウェア及び/又はハードウェアを含むかもしれない。図1に示されるように、通信システム150は、ノード110、ネットワーク120及び/又はリンク130に関して実現されてもよい。特定の実施例では、すべてのノード110は通信システム150を含む。特定の実施例では、1以上のノード110は通信システム150を含む。特定の実施例では、1以上のノード110は通信システム150を含まないかもしれない。
【0038】
通信システム150は、ネットワーク環境100などの戦術通信ネットワーク上の通信を確保するのに役立つためのデータの動的管理を提供する。図2に示されるように、特定の実施例では、システム150は、OSIの7レイヤプロトコルモデルにおけるトランスポートレイヤの一部として及び/又は上位において動作する。システム150は、トランスポートレイヤなどにわたされる戦術ネットワークにおける優先順位の高いデータに優先度を提供するかもしれない。システム150は、LAN、WAN(Wide Area Network)などの単一ネットワークにおける通信又は複数のネットワーク間の通信を実現するのに利用されるかもしれない。図3において、マルチネットワークシステムの一例が示される。システム150は、例えば、追加的な帯域幅をネットワークに追加するのでなく、利用可能な帯域幅を管理するのに利用されるかもしれない。
【0039】
特定の実施例では、システム150は、各種実施例においてハードウェアコンポーネントとソフトウェアコンポーネントの両方を有してもよいが、ソフトウェアシステムである。システム150は、例えば、ネットワークハードウェアに依存しないかもしれない。すなわち、システム150は、各種ハードウェア及びソフトウェアプラットフォーム上で機能するよう構成されるかもしれない。特定の実施例では、システム150は、ネットワークの内部のノード上でなく、ネットワークのエッジ上で動作する。しかしながら、システム150は、ネットワークの“チョークポイント(choke point)”など、ネットワークの内部においても動作可能である。
【0040】
システム150は、ルール及びモード又はプロファイルを利用して、ネットワークにおける利用可能な帯域幅の最適化、情報優先順位の設定及びデータリンクの管理などのスループット管理機能を実行するかもしれない。帯域幅の“最適化”とは、ここに記載される技術が1以上のネットワークにおいてデータを通信するための帯域幅の使用の効率性を高めるのに利用可能であることを意味する。帯域幅使用の最適化は、機能的に冗長なメッセージの削除、メッセージストリーム管理若しくはシーケンス化、及びメッセージ圧縮などを含むかもしれない。情報優先順位の設定は、IPベース技術より詳細な単位によりメッセージタイプを区別すること、選択されたルールベースシーケンス化アルゴリズムを介しメッセージをデータストリームにシーケンス化することなどを含むかもしれない。データリンク管理は、例えば、ルール、モード及び/又はデータトランスポートの変化に影響を与えるネットワーク測定結果のルールベースの解析を含むかもしれない。モード又はプロファイルは、特定のネットワーク健全性状態の動作要求に関するルールセットを含むかもしれない。システム150は、無線による新たなモードの定義及びスイッチを含む、動的なモードの“無線(on−the−fly)”リコンフィギュレーション又は再設定を提供する。
【0041】
通信システム150は、不安定な帯域幅制限のあるネットワークなどにおけるサービスの優先順位及びグレードの変更に適応するよう構成されるかもしれない。システム150は、ネットワークにおけるレスポンス能力の向上と通信遅延の低下に役立つように、改良されたデータフローのための情報を管理するよう構成されるかもしれない。さらに、システム150は、通信の利用性、生存性及び信頼性を向上させるようアップグレード可能かつスケーラブルなフレキシブルアーキテクチャを介し相互互換性を提供するかもしれない。システム150は、所定の予測可能なシステムリソース及び帯域幅などを利用しながら、動的に変化する環境に自律的に適応可能なデータ通信アーキテクチャをサポートする。
【0042】
特定の実施例では、システム150は、ネットワークを利用するアプリケーションに対する透過性を維持しながら、帯域幅制限された戦術通信ネットワークにスループット管理を提供する。システム150は、低減された複雑さにより複数のユーザ及び環境におけるスループット管理をネットワークに提供する。上述されるように、特定の実施例では、システム150は、OSIの7レイヤモデルの第4レイヤ(トランスポートレイヤ)にある及び/又はの上位にあるホストノード上で実行され、特殊なネットワークハードウェアを必要としない。システム150は、第4レイヤインタフェースに透過的に動作するかもしれない。すなわち、アプリケーションは、トランスポートレイヤの標準的なインタフェースを利用し、システム150の動作に気付かないかもしれない。例えば、アプリケーションがソケットをオープンするとき、システム150は、プロトコルスタックの当該ポイントにおいてデータをフィルタリングするかもしれない。システム150は、アプリケーションがシステム150に固有のインタフェースでなくネットワーク上の通信装置におけるオペレーティングシステムにより提供されるTCP/IPソケットインタフェースなどを利用することを可能にすることによって、透過性を実現する。システム150のルールは、XML(eXtensible Markup Language)により記述されるか、及び/又はカスタムDLL(Dynamic Link Library)を介し提供されるかもしれない。
【0043】
特定の実施例では、システム150は、ネットワークのエッジ上でQoSを提供する。システムのQoS能力は、ネットワークのエッジ上でコンテンツベース、ルールベースデータ優先順位付けを提供する。優先順位付けは、例えば、区別及び/又はシーケンス化を含むかもしれない。システム150は、例えば、ユーザコンフィギュラブルな区別ルールに基づきメッセージをキューに区別するかもしれない。これらのメッセージは、ユーザにより設定されたシーケンス化ルール(スタベーション、ラウンドロビン、相対頻度など)により規定される順序によりデータストリームにシーケンス化される。エッジ上のQoSを利用して、従来のQoSアプローチにより区別できないデータメッセージは、メッセージコンテンツなどに基づく区別されてもよい。ルールは、例えば、XMLにより実現されてもよい。特定の実施例では、XMLを超える能力を収容し、及び/又は極端に低い遅延要求をサポートするため、システム150は、例えば、DLLにカスタムコードを設けることを可能にする。
【0044】
ネットワーク上の入力及び/又は出力データは、システム150を介しカスタマイズされるかもしれない。優先順位付けは、クライアントアプリケーションを大容量低優先順位データなどからプロテクトする。システム150は、アプリケーションが特定の動作シナリオ又は制約をサポートするようデータを受信することを確実にするのに供する。
【0045】
特定の実施例では、ホストが帯域幅制限のある戦術ネットワークとのインタフェースとしてのルータを有するLANに接続されると、システムは、プロキシによりQoSとして知られるコンフィギュレーションにより動作するかもしれない。このコンフィギュレーションでは、ローカルなLAN宛のパケットはシステムをバイパスし、LANにすぐに向かう。システムは、ネットワークのエッジ上のQoSを帯域幅制限のある戦術リンクに向かうパケットに適用する。
【0046】
特定の実施例では、システム150は、命令されたプロファイルスイッチングを介し複数の動作シナリオ及び/又はネットワーク環境の動的サポートを提供する。プロファイルは、ユーザ又はシステムが指名されたプロファイルに変更を加えることを可能にする名称又は他の識別子を含むかもしれない。プロファイルはまた、例えば、機能冗長性ルール識別子、区別ルール識別子、アーカイブインタフェース識別子、シーケンス化ルール識別子、送信前インタフェース識別子、送信後インタフェース識別子、トランスポート識別子、及び/又は他の識別子などの1以上の識別子を含むかもしれない。機能冗長性ルール識別子は、古いデータ又は実質的に同様のデータなどから機能冗長性を検出するルールを規定する。区別ルール識別子は、例えば、処理のためメッセージをキューに区別するルールを規定する。アーカイブインタフェース識別子は、例えば、アーカイブシステムとのインタフェースを規定する。シーケンス化ルール識別子は、キューフロントのサンプルと、データストリームのデータのシーケンス化とを制御するシーケンス化アルゴリズムを特定する。送信前インタフェース識別子は、例えば、暗号化及び圧縮などの特別な処理を提供する送信前処理のためのインタフェースを特定する。送信後インタフェース識別子は、例えば、解読及び伸張などの処理を提供する送信後処理のためのインタフェースを特定する。トランスポート識別子は、選択されたトランスポートのネットワークインタフェースを規定する。
【0047】
プロファイルはまた、例えば、キューサイジング情報などの他の情報を含むかもしれない。キューサイジング情報は、例えば、各キューに専用のメモリ及びセカンダリストレージの大きさとキューの個数を特定する。
【0048】
特定の実施例では、システム150は、帯域幅を最適化するためのルールベースアプローチを提供する。例えば、システム150は、各メッセージに優先順位とデータストリーム上の適切な相対頻度とを割当てるよう、メッセージをメッセージキューに区別するためのキュー選択ルールを利用するかもしれない。システム150は、機能冗長性ルールを利用して、機能的に冗長なメッセージを管理するかもしれない。メッセージは、それが例えば、ネットワーク上でまだ送信されていない前のメッセージと十分異なるものでない場合(ルールにより規定されるように)、機能的に冗長である。すなわち、すでに送信がスケジューリングされたが、まだ送信されていない古いメッセージと十分異なるものでない新たなメッセージが提供された場合、この新たなメッセージは排除されてもよい。なぜなら、古いメッセージが機能的に等価な情報を搬送し、さらにキューにおいて前にあるためである。さらに、機能冗長性は、古いメッセージが送信される前に到着した新しいメッセージと実質的に重複したメッセージを含むかもしれない。例えば、ノードは、フォルトトレラント(fault tolerant)であるため、2つの異なるパスにより送信されたメッセージなど、基礎となるネットワークの特性により特定のメッセージの同一のコピーを受信するかもしれない。他の例として、新たなメッセージは、まだ送信されていない古いメッセージに優先するデータを含むかもしれない。この状況では、システム150は、古いメッセージを排除し、新たなメッセージのみを送信するようにしてもよい。システム150はまた、データストリームの優先順位ベースメッセージシーケンスを決定するための優先順位シーケンス化ルールを含むようにしてもよい。さらに、システム150は、圧縮及び/又は暗号化などの送信前及び送信後の特別な処理を提供するため、送信処理ルールを有してもよい。
【0049】
特定の実施例では、データ完全性及び信頼性を保護するのに役立つように、フォルトトレラント機能を提供する。例えば、システム150は、ユーザにより規定されたキュー選択ルールを利用して、メッセージをキューに区別するようにしてもよい。キューは、例えば、ユーザにより規定されるコンフィギュレーションに従ってサイジングされる。コンフィギュレーションは、例えば、キューが使用するメモリの最大量を規定する。さらに、コンフィギュレーションは、ユーザがキューのオーバフローのために利用可能なセカンダリストレージの位置及び大きさを規定することを可能にするかもしれない。キューのメモリが充填された後、メッセージはセカンダリストレージにキュー処理されるかもしれない。セカンダリストレージがまたフルになると、システム150は、キューの最も古いメッセージを削除し、エラーメッセージを記録し、最も新しいメッセージをキュー処理する。この動作モードに対してアーカイブ処理が可能である場合、キュー解除されたメッセージは、当該メッセージがネットワーク上で送信されなかったという表示と共にアーカイブ化されてもよい。
【0050】
システム150のキューのためのメモリ及びセカンダリストレージは、例えば、特定のアプリケーションについてリンク毎に設定されてもよい。ネットワーク利用可能期間の間の時間が長いことは、ネットワークの停止をサポートするためより大きなメモリ及びセカンダリストレージとなることに対応するかもしれない。システム150は、例えば、キューが適切にサイジングされ、停止時間が安定状態をアーカイブし、最終的なキューのオーバフローを回避するのに役立つよう十分なものとなることを保証するのに役立つようなサイジングを特定するのに供するためなどのネットワークモデリング及びシミュレーションアプリケーションと統合されてもよい。
【0051】
さらに、特定の実施例では、システム150は、入力(シェイピング)と出力(ポリシング)データを測定する機能を提供する。ポリシングとシェイピング機能は、ネットワークにおけるタイミングミスマッチに対処するのに役立つ。シェイピングは、ネットワークバッファが低優先順位データの後に高優先順位データがキューされることによるフラッディングを防ぐのに役立つ。ポリシングは、アプリケーションデータ利用者が低優先順位データにより圧倒されることを防ぐのに役立つ。ポリシングとシェイピングは、有効リンクスピードとリンク比率という2つのパラメータにより決定される。システム150は、例えば、リンク比率と乗算された有効リンクスピードより大きくないデータストリームを構成するかもしれない。これらのパラメータは、ネットワークの変更に従って動的に変更されるかもしれない。システムはまた、データ測定に関するアプリケーションレベルの結果をサポートするため、検出されたリンクスピードへのアクセスを提供するかもしれない。システム150により提供される情報は、所与のネットワークシナリオに対して何れのリンクスピードが適切であるか決定するのに役立つ他のネットワーク動作情報と組み合わされてもよい。
【0052】
図4は、本発明の実施例による図1のデータ通信システム150及び/又は図5のデータ通信システム550などのデータ通信システムにより利用されるデータ優先順位及びネットワーク状態のいくつかの例を示す。これらの例は低待機幅無線ネットワークを介した軍用機の間のデータ通信に関して提供されるが、当該データ通信システムは、データ通信ネットワーク120及び/若しくは520などの広範なデータ通信ネットワーク、並びに/又はデータ通信環境100及び/若しくは500などの広範なデータ通信環境において機能するかもしれない。
【0053】
データには、優先順位が割り当てられ、及び/又は関連付けされるかもしれない。例えば、データ優先順位は、図4に示されるように、“高い”、“やや高い”、“普通”、“やや低い”又は“低い”を含むかもしれない。他の例として、データ優先順位は、図4に示されるように、“KEEP PILOT ALIVE”、“KILL ENEMY”又は“INFORMATIONAL”を含むかもしれない。
【0054】
データ優先順位は、少なくとも部分的にはデータのタイプ、カテゴリ及び/又はグループに基づくかもしれない。例えば、データのタイプは、図4に示されるように、位置データ、近くの脅威に対するエミッタデータ、次の発射データ、トップテン発射リストデータ、数百マイル離れた脅威に対する発射データ、衛星通信からの状況認識(SA)データ(SATCOM)、一般的な状態データを含むかもしれない。さらに、データは、図4に示されるように、“KEEP PILOT ALIVE”、“KILL ENEMY”又は“INFORMATIONAL”などの各カテゴリにグループ化されるかもしれない。例えば、位置データや近くの脅威に対するエミッタデータなどの“KEEP PILOT ALIVE”データは、パイロットの健康と安全に関するものであるかもしれない。他の例として、次の発射データ、トップテン発射リストデータ及び数百マイル離れた脅威に対する発射データなどの“KILL ENEMY”は、戦闘システムに関するものであるかもしれない。他の例として、SATCOMからのSAデータや一般状態データなどの“INFORMATIONAL”データは、非戦闘システムに関するものであるかもしれない。
【0055】
上述されるように、データタイプ、カテゴリ及び/又はグループは、データ優先順位と同一及び/又は類似しているかもしれない。例えば、位置データや近くの脅威に対するエミッタデータなどの“KEEP PILOT ALIVE”データは、“KEEP PILOT ALIVE”の優先順位に関連付けされ、それは、“KILL ENEMY”に係る次の発射データ、トップテン発射リストデータ及び数百マイル離れた脅威に対する発射データなどの“KILL ENEMY”データより重要である。他の例として、次の発射データ、トップテン発射リストデータ及び数百マイル離れた脅威に対する発射データなどの“KILL ENEMY”データは、“KILL ENEMY”の優先順位に関連付けされ、それは、“INFORMATIONAL”の優先順位に係るSATCOMからのSAデータや一般状態データなどの“INFORMATIONAL”データより重要である。
【0056】
ネットワークについて、状態が決定されるかもしれない。例えば、ネットワーク状態は、“BANDWIDTH CHALLENGED”、“BANDWIDTH CONSTRAINED”、“DESIGN POINT BANDWIDTH”又は“MAXIMUM BANDWIDTH”を含むかもしれない。これらの用語は、列記される順序により、観察されたパフォーマンスの増加を示し、障害のないリンクに関する損傷量の減少、機能の低いリンクの置換による不足量の減少、及び/又は機能要求に関する不足量の減少としてみなすことができる。ネットワーク状態は、ネットワークの動作状態に関するかもしれない。例えば、“MAXIMUM BANDWIDTH”のネットワーク状態は、帯域幅のすべてがデータ伝送に利用可能であることを示すかもしれない。他の例として、“DESIGN POINT BANDWIDTH”のネットワーク状態は、一部の帯域幅が利用されているが、正常に機能するのに必要とされる量の帯域幅がまだ利用可能であることを示すかもしれない。他の例として、“BANDWIDTH CHALLENGED”は、設計よりシステムにより使用されている帯域幅が大きいことを示すかもしれない。この点で、問題が生じ始めるかもしれない。他の例として、“BANDWIDTH CONSTRAINED”は、帯域幅の大部分が使用されており、ほとんど又は全く帯域幅が残っていないことを示すかもしれない。この点で、“BANDWIDTH CONSTRAINED”ネットワークを使用するシステムは、破綻し始める。これらの例は帯域幅に関して与えられるが、ネットワーク状態は、遅延及び/又はジッタなどの広範な他のネットワーク特性を含むかもしれない。
【0057】
ネットワーク状態は、少なくとも部分的にネットワーク環境に基づき変化するかもしれない。例えば、帯域幅は、高度、距離及び/又は天候により影響を受けるかもしれない。航空機が接近し、空がクリアである場合、例えば、ネットワーク状態は、“MAXIMUM BANDWIDTH”か“DESIGN POINT BANDWIDTH”であるかもしれない。他方、航空機が離れていて、空が曇りである場合、例えば、ネットワーク状態は、“BANDWIDTH CONSTRAINED”又は“BANDWIDTH CHALLENGED”であるかもしれない。
【0058】
データは、少なくとも部分的にデータ優先順位及び/又はネットワーク状態に基づきネットワークを介し通信されるかもしれない。例えば、ネットワークの状態が“BANDWIDTH CHALLENGED”である場合、位置データや近くの脅威に対するエミッタデータなどの“高い”優先順位に係るデータのみがネットワークを介し通信されるかもしれない。
【0059】
他の例として、ネットワークの状態が“BANDWIDTH CONSTRAINED”である場合、次の発射データなどの“やや高い”及びトップテン発射リストデータなどの“普通”の優先順位に係るデータがまた、ネットワークを介し通信されるかもしれない。すなわち、“高い”、“やや高い”及び“普通”の優先順位に係るデータは、ネットワーク状態が図4に示されるように“BANDWIDTH CONSTRAINED”である場合、ネットワークを介し通信されるかもしれない。特定の実施例では、データはまた、例えば、“高い”、その後に“やや高い”、その後に“普通”などの優先順位により通信されるかもしれない。
【0060】
他の例として、ネットワークの状態が“DESIGN POINT BANDWIDTH”である場合、数百マイル離れた脅威に対するエミッタデータやSATCOMからのSAデータなどの“やや低い”優先順位を有するデータがまた、ネットワークを介し通信されるかもしれない。すなわち、“高い”、“やや高い”、“普通”及び“やや低い”の優先順位に係るデータは、図4に示されるように、ネットワーク状態が“DESIGN POINT BANDWIDTH”である場合、ネットワークを介し通信されるかもしれない。特定の実施例では、データはまた、例えば、“高い”、その後に“やや高い”、その後に“普通”、その後に“やや低い”などの優先順位により通信されるかもしれない。
【0061】
他の例として、ネットワークの状態が“MAXIMUM BANDWIDTH”である場合、一般状態データなどの“低い”優先順位に係るデータがまた、ネットワークを介し通信されるかもしれない。すなわち、“高い”、“やや高い”、“普通”、“やや低い”及び“低い”の優先順位に係るデータは、図4に示されるように、ネットワーク状態が“MAXIMUM BANDWIDTH”である場合、ネットワークを介し通信されるかもしれない。特定の実施例では、データは、例えば、“高い”、その後に“やや高い”、その後に“普通”、その後に“やや低い”、その後に“低い”などの優先順位により通信されるかもしれない。
【0062】
図5は、本発明の実施例によるデータ通信環境500内で動作するデータ通信システム550を示す。図1のデータ通信環境100などのデータ通信環境500は、ノード110などの1以上のノード510と、ノード510、ネットワーク520及びデータ通信システム150などのデータ通信システム550を接続し、データ通信環境500のコンポーネントを介した通信を実現するリンク130などの1以上のリンク530とを含む。
【0063】
特定の実施例では、データ通信システム550は、データを受信、格納、整理、優先順位付け、処理、送信及び/又は通信するよう構成される。データ通信システム550により受信、格納、整理、優先順位付け、処理、送信及び/又は通信されるデータは、例えば、パケット、セル、フレーム及び/又はストリームなどのデータブロックを含むかもしれない。例えば、データ通信システム550は、ノード510からデータのパケットを受信するかもしれない。他の例として、データ通信システム550は、ノード510からデータストリームを処理するかもしれない。
【0064】
データ通信システム550は、データ優先順位付けコンポーネント560と、ネットワーク解析コンポーネント570と、データ通信コンポーネント580とを有する。特定の実施例では、データ優先順位付けコンポーネント560は、区別コンポーネント562と、シーケンス化コンポーネント566と、データ整理コンポーネント568とを有する。区別コンポーネント562は、図1に関して説明されたように、区別ルール識別子563と、機能冗長性ルールセット565とを有するかもしれない。シーケンス化コンポーネント566は、図1に関して説明されたように、シーケンス化ルール識別子567を有するかもしれない。特定の実施例では、ネットワーク解析コンポーネント570は、ネットワーク解析ルール識別子572と、ネットワーク解析データ574とを有するかもしれない。
【0065】
データ優先順位付けコンポーネント560は、ネットワーク520を介した通信についてデータを優先順位付けする。より詳細には、データ優先順位付けコンポーネント560は、少なくとも部分的に区別、シーケンス化及び/又は機能冗長性などの優先順位付けルール及び/又はアルゴリズムに基づきデータを優先順位付けするかもしれない。例えば、図4に示されるように、位置データと近くの脅威に対するエミッタデータは“高い”優先順位に係り、次の発射データは“やや高い”優先順位に係り、トップテン発射リストデータは“普通”の優先順位に係り、数百マイル離れた脅威に対するエミッタデータとSATCOMからのSAデータは“やや低い”優先順位に係り、一般状態データは“低い”優先順位に係るかもしれない。
【0066】
特定の実施例では、データの優先順位は、少なくとも部分的にはメッセージコンテンツに基づくかもしれない。例えば、データ優先順位は、少なくとも部分的には、ビデオ、オーディオ、遠隔測定データ及び/又は位置データなどのデータのタイプに基づくかもしれない。他の例として、データ優先順位は、少なくとも部分的には、送信アプリケーション及び/又は送信ユーザに基づくかもしれない。例えば、司令官からの通信は、より下位の階級の将校からの通信より高い優先順位が割当てられるかもしれない。
【0067】
特定の実施例では、データの優先順位は、少なくとも部分的にはソースアドレス及び/又はトランスポートプロトコルなどのデータに係る及び/又は含まれるプロトコル情報に基づく。プロトコル情報は、例えば、上述されたプロトコル情報と同様のものであってもよい。例えば、データ通信システム550は、データのブロックのソースアドレスに基づきデータのブロックの優先順位を決定するかもしれない。他の例では、データ通信システム550は、データのブロックを通信するのに使用されるトランスポートプロトコルに基づき、データのブロックの優先順位を決定するかもしれない。
【0068】
特定の実施例では、データ優先順位付けコンポーネント560は、後述される区別コンポーネント562と、シーケンス化コンポーネント566と、データ整理コンポーネント568とを有するかもしれない。
【0069】
区別コンポーネント562は、データを区別する。特定の実施例では、区別コンポーネント562は、少なくとも部分的に区別ルール識別子563に基づきデータを区別するかもしれない。特定の実施例では、区別コンポーネント562は、ネットワーク520を介した通信のため、データをデータ整理コンポーネント568に追加するかもしれない。例えば、区別コンポーネント562は、図1に関して上述されたように、少なくとも部分的には区別ルール識別子563に基づきデータ整理コンポーネント568にデータを付加するかもしれない。
【0070】
特定の実施例では、区別コンポーネント562は、上述されるように、少なくとも部分的にはメッセージコンテンツ及び/又はプロトコル情報に基づきデータを区別するかもしれない。
【0071】
区別ルール識別子563は、図1に関して上述されるように、キュー選択などの1以上の区別ルール及び/又はアルゴリズムを特定する。特定の実施例では、区別ルール及び/又はアルゴリズムは、ユーザにより規定されてもよい。特定の実施例では、区別ルール及び/又はアルゴリズムは、図1に関して上述されるように、XMLにより記述されてもよく、又は1以上のDLLに与えられてもよい。
【0072】
特定の実施例では、区別コンポーネント562は、データ整理コンポーネント568からデータを削除及び/又は保留するかもしれない。例えば、区別コンポーネント562は、図1に関して上述されたように、少なくとも部分的に機能冗長性ルール識別子565に基づき、データ整理コンポーネント568からデータを削除するかもしれない。
【0073】
機能冗長性ルール識別子565は、図1に関して上述されたように、1以上の機能冗長性ルール及び/又はアルゴリズムを特定する。特定の実施例では、機能冗長性ルール及び/又はアルゴリズムは、ユーザにより規定されてもよい。特定の実施例では、機能冗長性ルール及び/又はアルゴリズムは、図1に関して上述されるように、XMLにより記述されてもよく、又は1以上のDLLに与えられてもよい。
【0074】
シーケンス化コンポーネント566は、データをシーケンス化する。特定の実施例では、シーケンス化コンポーネント566は、少なくとも部分的にシーケンスルール識別子567に基づきデータをシーケンス化するかもしれない。特定の実施例では、シーケンス化コンポーネント566は、ネットワーク520を介した通信のため、データ整理コンポーネント568からデータを選択及び/又は削除するかもしれない。例えば、シーケンス化コンポーネント566は、図1に関して上述されるように、少なくとも部分的にシーケンス化ルール識別子567に基づきデータ整理コンポーネント568からデータを削除するかもしれない。
【0075】
シーケンス化ルール識別子567は、図1に関して説明されたように、スタベーション、ラウンドロビン及び相対頻度などの1以上のシーケンス化ルール及び/又はアルゴリズムを特定する。特定の実施例では、シーケンス化ルール及び/又はアルゴリズムは、ユーザにより規定されてもよい。特定の実施例では、シーケンス化ルール及び/又はアルゴリズムは、図1に関して上述されるように、XMLにより記述されてもよく、又は1以上のDLLに与えられてもよい。
【0076】
データ整理コンポーネント568は、データを格納及び/又は整理する。特定の実施例では、データ整理コンポーネント568は、“KEEP PILOT ALIVE”、“KILL ENEMY”及び“INFORMATIONAL”などの優先順位に少なくとも部分的に基づき、データを格納及び/又は整理するかもしれない。データ整理コンポーネント568は、例えば、Q1,Q2,Q3,Q4及びQ5などの1以上のキューを有するかもしれない。例えば、位置データや近くの脅威に対するエミッタデータなどの“高い”優先順位に係るデータはQ1に格納され、次の発射データなどの“やや高い”優先順位に係るデータはQ2に格納され、トップテン発射リストデータなどの“普通”の優先順位に係るデータはQ3に格納され、数百マイル離れた脅威に対するエミッタデータやSATCOMからのSAデータなどの“やや低い”優先順位に係るデータはQ4に格納され、一般状態データなどの“低い”優先順位に係るデータはQ5に格納されるかもしれない。あるいは、データ整理コンポーネント568は、例えば、1以上のツリー、テーブル、リンク付けリスト及び/又はデータを格納及び/又は整理するための他のデータ構造などを含むかもしれない。
【0077】
ネットワーク解析コンポーネント570は、ネットワーク520を解析する。特定の実施例では、ネットワーク解析コンポーネント570は、少なくとも部分的にネットワーク解析ルール識別子572に基づきネットワーク520を解析する。
【0078】
ネットワーク解析ルール識別子572は、ラウンドトリップピング、ピア・ツー・ピア解析及び/又は測定されたスループットなどの1以上のネットワーク解析ルール及び/又はアルゴリズムを特定する。例えば、ラウンドトリップピングは、ピング(ping)がエンドノードまで往復するのにかかる時間を計測することによって、ネットワーク遅延を解析するかもしれない。他の例として、ピア・ツー・ピア解析は、最も遅いリンクが最初及び最後であると仮定するかもしれない。この結果、ネットワークパフォーマンスは、リンクスピードデータを要求する遠くのエンドにメッセージを送信し、その後このデータと現在のリンクスピードの知識を利用して現在のスループット又はパフォーマンスを評価することによって、評価されるかもしれない。他の例として、測定されたスループットは、データのブロックをセグメント化し、ネットワークの遠くのエンドにこれらを送信するかもしれない。遠くのエンドは、それが受信する各データブロックを記録する。このタイミング情報を利用し、送信されたデータブロックのサイズを知ることによって、ネットワークするープットが経時的に近似できる。
【0079】
特定の実施例では、1以上のネットワーク解析ルール及び/又はアルゴリズムは、ルールドリブンな時間インターバルに関するネットワークの健全性の状態を、当該状態に対するルールドリブンな反応により決定するかもしれない。例えば、ネットワーク安定性を参照する解析ルールは、データ欠落が妥当なレベルを超えるときに出力データをオフにするかもしれず、又はラウンドトリップパケット回数が妥当なレベルを超える場合、データをより低いレートで測定するかもしれない。
【0080】
特定の実施例では、ネットワーク解析ルール及び/又はアルゴリズムは、ユーザにより規定されてもよい。特定の実施例では、ネットワーク解析ルール及び/又はアルゴリズムは、XMLにより記述されてもよく、又は1以上のDLLに与えられてもよい。
【0081】
特定の実施例では、ネットワーク解析コンポーネント570は、ネットワーク520の状態を決定する。より詳細には、ネットワーク解析コンポーネント570は、帯域幅、遅延及び/又はジッタなどのネットワーク520の1以上の特性に少なくとも部分的に基づき、ネットワーク520の状態を決定するかもしれない。例えば、図4に示されるように、ネットワーク解析コンポーネント570は、ネットワーク520の状態が、“MAXIMUM BANDWIDTH”、“DESIGN POINT BANDWIDTH”、“BANDWIDTH CONSTRAINED”又は“BANDWIDTH CHALLENGED”であることを決定するかもしれない。
【0082】
特定の実施例では、ネットワーク解析コンポーネント570は、2つのノード間のパスなど、ネットワーク520の1以上のパスを解析する。
【0083】
ノードAにおけるネットワーク解析コンポーネントは、ネットワーク解析データを生成する。より詳細には、ノードAにおけるネットワーク解析コンポーネント570は、ネットワーク解析ルール識別子572に少なくとも部分的に基づき、ネットワーク解析データを生成する。ネットワーク解析データは、パケット、セル、フレーム及び/又はストリームなどのデータのブロックを含むかもしれない。ノードAは、ネットワーク520を介しネットワーク解析データをノードBに送信する。
【0084】
ノードBは、ノードAからネットワーク解析データを受信する。ノードBにおけるネットワーク解析コンポーネント570は、ノードAからのネットワーク解析データを処理する。より詳細には、ノードBにおけるネットワーク解析コンポーネント570は、ネットワーク解析ルール識別子572に少なくとも部分的に基づき、ネットワーク解析データを処理する。例えば、ノードBにおけるネットワーク解析コンポーネントは、タイムスタンプをネットワーク解析データに追加するかもしれない。ノードBは、処理されたネットワーク解析データをネットワーク520を介しノードAに送信する。
【0085】
ノードAは、ノードBから処理されたネットワーク解析データを受信する。ノードAにおけるネットワーク解析コンポーネント570は、ネットワーク解析ルール識別子572に少なくとも部分的に基づきネットワーク520を解析する。
【0086】
特定の実施例では、ノードAにおけるネットワーク解析コンポーネント570は、帯域幅、遅延及び/又はジッタなどのネットワーク520の1以上の特性に少なくとも部分的に基づき、ネットワーク520の状態を決定するかもしれない。例えば、図4に示されるように、ネットワーク解析コンポーネント570は、ネットワーク520の状態が、“MAXIMUM BANDWIDTH”、“DESIGN POINT BANDWIDTH”、“BANDWIDTH CONSTRAINED”又は“BANDWIDTH CHALLENGED”であることを決定するかもしれない。
【0087】
特定の実施例では、ノードAにおけるネットワーク解析コンポーネント570は、ノードAからノードBまでのパスなどのネットワーク520における1以上のパスを解析する。
【0088】
データ通信コンポーネント580は、データを通信する。特定の実施例では、データ通信コンポーネント580は、例えば、ノード510及び/又はノード510上で実行されるアプリケーションから、ネットワーク520及び/又はノード510とネットワーク520とを接続するリンクを介し、データを受信する。特定の実施例では、データ通信コンポーネント580は、例えば、ノード510及び/又はノード510上で実行されるアプリケーションに、ネットワーク520及び/又はノード510とネットワーク520とを接続するリンクを介し、データを送信する。
【0089】
特定の実施例では、データ通信コンポーネント580は、データ優先順位付けコンポーネント560と通信する。より詳細には、データ通信コンポーネント580は、データを区別コンポーネント562に送信し、シーケンス化コンポーネント566からデータを受信する。あるいは、データ通信コンポーネント580は、データ整理コンポーネント568と通信するかもしれない。特定の実施例では、データ通信コンポーネント580は、ネットワーク解析コンポーネント570と通信する。特定の実施例では、データ優先順位付けコンポーネント560及び/又はネットワーク解析コンポーネント570は、データ通信コンポーネント580の1以上の機能を実行するかもしれない。
【0090】
特定の実施例では、データ通信コンポーネント580は、少なくとも部分的にデータ優先順位及び/又はネットワーク状態に基づきデータを通信するかもしれない。
【0091】
動作について、データは、データ通信システム550により受信される。より詳細には、データは、データ通信システム550のデータ通信コンポーネント580により受信されてもよい。データは、例えば、ノード510及び/又はノード510上で実行されるアプリケーションなどから受信されるかもしれない。例えば、データは、ネットワーク520を介し及び/又はノード510とネットワーク520とを接続するリンクを介し受信されるかもしれない。例えば、データは、戦術データネットワークを介し無線からデータ通信システム550において受信されるかもしれない。他の例として、データは、プロセス間通信機構により同一のシステム上で実行されるアプリケーションによりデータ通信システム550に提供されるかもしれない。上述されるように、データは、例えば、データのパケット、セル、フレーム及び/又はストリームなどのデータのブロックを含むかもしれない。
【0092】
特定の実施例では、データ通信システム550は、データのすべてを受信するとは限らないかもしれない。例えば、データの一部はバッファに格納され、データ通信システム550は、ヘッダ情報とバッファへのポインタしか受信しないかもしれない。他の例として、データ通信システム550は、オペレーティングシステムのプロトコルスタックにフックされ、アプリケーションがデータをトランスポートレイヤインタフェース(ソケットなど)を介しオペレーティングシステムにわたすろ、オペレーティングシステムは、その後にデータへのアクセスをデータ通信システム550に提供するかもしれない。
【0093】
データは、データ通信システム550により優先順位付けされる。特定の実施例では、データは、少なくとも部分的にデータ通信順位付けルールに基づき、データ通信システム550のデータ優先順位付けコンポーネント560により優先順位付けされるかもしれない。
【0094】
特定の実施例では、データは、区別コンポーネント562により区別されるかもしれない。例えば、データは、少なくとも部分的にキュー選択ルール及び/又は機能冗長性ルールに基づき、データ整理コンポーネント568に追加、削除及び/又は保留されるかもしれない。他の例として、データは、少なくとも部分的に上述されるように、メッセージコンテンツ及び/又はプロトコル情報に基づき、区別コンポーネント562により区別されるかもしれない。
【0095】
特定の実施例では、データは、シーケンス化コンポーネント566によりシーケンス化されるかもしれない。例えば、データは、スタベーション、ラウンドロビン及び相対頻度などのシーケンス化ルールに少なくとも部分的に基づき、データ整理コンポーネント568から削除及び/又は保留されるかもしれない。
【0096】
特定の実施例では、データは、データ整理コンポーネント568に格納、整理及び/又は優先順位付けされるかもしれない。特定の実施例では、データ整理コンポーネント568は、キュー、ツリー、テーブル、リンク付けリスト及び/又はデータを格納、整理及び/又は優先順位付けするための他のデータ構造を含むかもしれない。
【0097】
特定の実施例では、データ通信システム550は、データを優先順位付けするかもしれない。特定の実施例では、データ通信システム550は、データのブロックの優先順位を決定するかもしれない。例えば、データのブロックがデータ通信システム550により受信されると、データ通信システム550のデータ優先順位付けコンポーネント560が、当該データブロックの優先順位を決定するかもしれない。他の例として、データブロックは、データ通信システム550のキューに格納されてもよく、データ優先順位付けコンポーネント560は、データブロック及び/又はキューに対して決定された優先順位に基づき、キューからデータブロックを抽出するかもしれない。
【0098】
特定の実施例では、データブロックの優先順位は、データブロックの優先順位は、少なくとも部分的にはメッセージコンテンツに基づくかもしれない。例えば、データ優先順位は、ビデオ、オーディオ、遠隔測定データ及び/又は位置データなどのデータのタイプに少なくとも部分的に基づくかもしれない。他の例として、データ優先順位は、送信アプリケーション及び/又は送信ユーザに少なくとも部分的に基づくかもしれない。例えば、司令官からの通信は、より下位の階級の将校からの通信より高い優先順位を割り当てられるかもしれない。
【0099】
特定の実施例では、データブロックの優先順位は、ソースアドレス及び/又はトランスポートプロトコルなど、データに係る及び/又は含まれるプロトコル情報に少なくとも部分的に基づくかもしれない。プロトコル情報は、例えば、上述されたプロトコル情報と同様のものであるかもしれない。例えば、データ通信システム550は、データブロックのソースアドレスに基づき、データブロックの優先順位を決定するかもしれない。他の例として、データ通信システム550は、データブロックを通信するのに使用されるトランスポートプロトコルに基づき、データブロックの優先順位を決定するかもしれない。
【0100】
データ通信システム550によるデータの優先順位付けは、例えば、QoSを提供するのに利用されるかもしれない。例えば、データ通信システム550は、戦術データネットワークを介し受信されるデータの優先順位を決定するかもしれない。この優先順位は、例えば、データのソースアドレスに基づくかもしれない。例えば、データ通信システム550が属する小隊と同じ小隊のメンバーの無線からのデータのソースIPアドレスには、異なる作戦エリアの異なる部隊のユニットから発信されたデータより高い優先順位が付与されるかもしれない。この優先順位は、データ通信システム550による以降の通信のため、データが配置されるべき複数のキューの何れかを決定するのに利用されるかもしれない。例えば、より高い優先順位のデータを保持するためのキューに、より高い優先順位のデータが配置され、次に通信すべきデータを決定するのに、データ通信システム550は、このより高い優先順位のキューをまず参照するかもしれない。
【0101】
データは、少なくとも部分的に1以上のルールに基づき優先順位付けされるかもしれない。上述されるように、ルールはユーザにより規定されるかもしれない。特定の実施例では、ルールは、XMLにより記述されてもよく、及び/又はカスタムDLLを介し提供されてもよい。ルールは、例えば、1つのプロトコルを利用して受信されたデータが他のプロトコルを利用したデータより優先されることを規定するかもしれない。例えば、命令データは、他のプロトコルを使用して送信される位置遠隔測定データに対する優先順位をルールを介し与える特定のプロトコルを利用するかもしれない。他の例として、ルールは、第1アドレス範囲からの位置遠隔測定データが第2アドレス範囲からの位置遠隔測定データに対して優先順位が与えられるかもしれないことを規定するかもしれない。第1アドレス範囲は、例えば、航空機上で実行されるデータ通信システム550を有する航空機と同じ飛行隊の他の航空機のIPアドレスを表すかもしれない。第2アドレス範囲は、例えば、異なる作戦エリアにいて、このためデータ通信システム550が実行される航空機にあまり関心のない他の航空機のIPアドレスなどを表すかもしれない。
【0102】
特定の実施例では、データ通信システム550はデータを排除しない。すなわち、データが低い優先順位であっても、データ通信システム550により排除されない。むしろ、データは、受信されるより上位の優先順位のデータのデータ量に潜在的には依存して、ある期間遅延されるかもしれない。
【0103】
特定の実施例では、データ通信システム550は、モード又はプロファイルインジケータを有する。モード又はプロファイルインジケータは、例えば、データ通信システム550の現在のモード又はプロファイルを表すかもしれない。上述されるように、データ通信システム550は、ルール及びモード又はプロファイルを利用して、ネットワーク520における利用可能な帯域幅の最適化、情報優先順位の設定及びデータリンク530の管理など、スループット管理機能を実行するかもしれない。異なるモードは、例えば、ルール、アルゴリズム、モード及び/又はデータトランスポートなどの変化に影響を与えるかもしれない。モード又はプロファイルは、特定のネットワークの健全性状態に対する動作要求に関するルールセットを含むかもしれない。データ通信システム550は、新たなモード“無線(on−the−fly)”の定義及びスイッチングなどを含むモードの動的な再設定を提供するかもしれない。
【0104】
特定の実施例では、データ通信システム550は、他のアプリケーションに透過である。例えば、データ通信システム550により実行される処理、整理及び/又は優先順位付けは、1以上のノード510又は他のアプリケーション若しくはデータソースに透過であるかもしれない。他の例として、データ通信システム550と同一のシステム又はデータ通信システム550に接続されるノード510上で実行されるアプリケーションは、データ通信システム550により実行されるデータの優先順位付けを認識しなくてもよい。
【0105】
ネットワーク520は、データ通信システム550により解析される。より詳細には、ネットワーク520は、少なくとも部分的にネットワーク解析ルールに基づき、データ通信システム550のネットワーク解析コンポーネント570により解析されてもよい。
【0106】
特定の実施例では、ネットワーク解析コンポーネント570は、ネットワーク520の状態を決定する。より詳細には、ネットワーク解析コンポーネント570は、少なくとも部分的に帯域幅、遅延及び/又はジッタなどのネットワーク520の1以上の特性に基づき、ネットワーク520の状態を決定するかもしれない。例えば、図4に示されるように、ネットワーク解析コンポーネント570は、ネットワーク520の状態が“MAXIMUM BANDWIDTH”、“DESIGN POINT BANDWIDTH”、“BANDWIDTH CONSTRAINED”及び/又は“BANDWIDTH CHALLENGED”であることを決定するかもしれない。
【0107】
特定の実施例では、ネットワーク解析コンポーネント570は、ノードAからノードBまでのパスなどのネットワーク520における1以上のパスを解析する。
【0108】
データは、データ通信システム550により通信される。より詳細には、データは、データ通信システム550のデータ通信コンポーネント580により通信されてもよい。データは、例えば、ノード510及び/又はノード510上で実行されるアプリケーションに通信されるかもしれない。データは、例えば、ネットワーク520及び/又はノード510とネットワーク520とを接続するリンクを介し通信されるかもしれない。例えば、データは、戦術データネットワークを介しデータ通信システム550により無線に通信されるかもしれない。他の例として、データは、プロセス間通信機構により同一システム上で実行されるアプリケーションにデータ通信システム550により提供されてもよい。上述されるように、データは、例えば、データのパケット、セル、フレーム及び/又はストリームなどのデータのブロックを含むかもしれない。
【0109】
特定の実施例では、データは、少なくも部分的にデータ優先順位及び/又はネットワーク状態に基づき、データ通信システム550により通信される。例えば、図4に示されるように、ネットワーク520の状態が“BANDWIDTH CHALLENGED”である場合、位置データや近くの脅威に対するエミッタデータなどの“高い”優先順位に係るデータのみがネットワーク520を介し通信されるかもしれない。
【0110】
他の例として、ネットワーク520の状態が“BANDWIDTH CONSTRAINED”である場合、次の発射データなどの“やや高い”優先順位と、トップテン発射リストデータなどの“普通”の優先順位に係るデータがまた、ネットワーク520を介し通信されるかもしれない。すなわち、“高い”、“やや高い”及び“普通”の優先順位に係るデータが、図4に示されるように、ネットワーク状態が“BANDWIDTH CONSTRAINED”である場合、ネットワーク520を介し通信されてもよい。特定の実施例では、データはまた、例えば、“高い”、その後に“やや高い”、その後に“普通”などの優先順位の順序で通信されるかもしれない。
【0111】
他の例として、ネットワーク520の状態が“DESIGN POINT BANDWIDTH”である場合、数百マイル離れた脅威に対するエミッタデータ及びSATCOMからのSAデータなどの“やや低い”優先順位に係るデータがまた、ネットワーク520を介し通信されるかもしれない。すなわち、“高い”、“やや高い”、“普通”及び“やや低い”の優先順位に係るデータが、図4に示されるように、ネットワーク状態が“DESIGN POINT BANDWIDTH”である場合、ネットワーク520を介し通信されてもよい。特定の実施例では、データはまた、例えば、“高い”、その後に“やや高い”、その後に“普通”、その後に“やや低い”などの優先順位の順序で通信されるかもしれない。
【0112】
他の例として、ネットワーク520の状態が“MAXIMUM BANDWIDTH”である場合、一般状態データなどの“低い”優先順位に係るデータがまた、ネットワーク520を介し通信されるかもしれない。すなわち、“高い”、“やや高い”、“普通”、“やや低い”及び“低い”の優先順位に係るデータが、図4に示されるように、ネットワーク状態が“MAXIMUM BANDWIDTH”である場合、ネットワーク520を介し通信されてもよい。特定の実施例では、データはまた、例えば、“高い”、その後に“やや高い”、その後に“普通”、その後に“やや低い”、その後に“低い”などの優先順位の順序で通信されるかもしれない。
【0113】
上述されるように、データ通信システム550のコンポーネント、要素及び/又は機能は、ハードウェア、ファームウェア及び/又はソフトウェアの命令セットの各種形式により単独で又は組み合わせて実現可能である。特定の実施例は、汎用コンピュータ又は他の処理装置上で実行するため、メモリ、ハードディスク、DVD又はCDなどのコンピュータ可読媒体上の命令セットとして提供されるかもしれない。
【0114】
図6は、本発明の実施例によるデータ通信方法600のフロー図を示す。本方法600は、以下で詳細に説明される以下の各ステップを含む。ステップ610において、データが受信される。ステップ620において、データは優先順位付けされる。ステップ630において、ネットワークが解析される。ステップ640において、データは通信される。本方法600は、上述したシステムの要素を参照して説明されるが、他の実現形態もまた可能であることが理解されるべきである。
【0115】
ステップ610において、データが受信される。データは、上述されるように、図5のデータ通信システム550などにより受信されるかもしれない。他の例として、データは、ノード510及び/又はノード510上で実行されるアプリケーションから受信されるかもしれない。他の例として、データは、例えば、ネットワーク520及び/又はノード510とネットワーク520とを接続するリンクを介し受信されるかもしれない。データは、例えば、データのパケット、セル、フレーム及び/又はストリームなどのデータのブロックなどを含むかもしれない。特定の実施例では、データ通信システム550は、データのすべてを受信するとは限らないかもしれない。
【0116】
ステップ620において、データは優先順位付けされる。優先順位付けされるデータは、例えば、ステップ610において受信されるデータであるかもしれない。データは、例えば、上述されるように、図5のデータ通信システム550などにより優先順位付けされるかもしれない。他の例として、データは、少なくとも部分的にデータ優先順位付けルールに基づき、データ通信システム550のデータ優先順位付けコンポーネント560により優先順位付けされるかもしれない。
【0117】
特定の実施例では、データ優先順位は、データタイプ、送信アプリケーション及び/又は送信ユーザなどのメッセージコンテンツに少なくとも部分的に基づくかもしれない。特定の実施例では、データ優先順位は、ソースアドレス及び/又はトランスポートプロトコルなど、データに係る及び/又は含まれるプロトコル情報に少なくとも部分的に基づくかもしれない。特定の実施例では、データ優先順位付けコンポーネント560は、例えば、QoSを提供するのに利用されるかもしれない。特定の実施例では、データの優先順位付けは他のアプリケーションに透過である。
【0118】
ステップ630において、ネットワークが解析される。ネットワークは、例えば、上述されるように、図5のデータ通信システム550などにより解析されてもよい。他の例として、ネットワークは、少なくとも部分的にネットワーク解析ルールに基づき、データ通信システム550のネットワーク解析コンポーネント570により解析されてもよい。
【0119】
特定の実施例では、ネットワーク解析コンポーネント570は、ネットワーク520の状態を決定する。より詳細には、ネットワーク解析コンポーネント570は、帯域幅、遅延及び/又はジッタなどのネットワーク520の1以上の特性に少なくとも部分的に基づき、ネットワーク520の状態を決定するかもしれない。
【0120】
特定の実施例では、ネットワーク解析コンポーネント570は、ノードAからノードBへのパスなど、ネットワーク520の1以上のパスを解析する。
【0121】
ステップ640において、データが通信される。通信されるデータは、例えば、ステップ610において受信されたデータであってもよい。データは、例えば、上述されるような図5のデータ通信システム550により通信されるかもしれない。他の例として、データは、ノード510及び/又はノード510上で実行されるアプリケーションに通信されるかもしれない。他の例として、データは、ネットワーク520及び/又はノード510とネットワーク520とを接続するリンクを介し通信されるかもしれない。
【0122】
特定の実施例では、データは、上述されるように、少なくとも部分的にデータ優先順位及び/又はネットワーク状態に基づき通信されるかもしれない。データ優先順位は、例えば、ステップ620において決定されるデータ優先順位であるかもしれない。ネットワーク状態は、例えば、ステップ630において決定されるネットワーク状態であるかもしれない。
【0123】
本方法600の各ステップの1以上は、例えば、ハードウェア、ファームウェア及び/又はソフトウェアによる命令セットとして単独で又は組み合わせて実現可能である。特定の実施例は、汎用コンピュータ又は他の処理装置上で実行するため、メモリ、ハードディスク、DVD又はCDなどのコンピュータ可読媒体にある命令セットとして提供されるかもしれない。
【0124】
本発明の特定の実施例は、リストされた順序と異なる順序により各ステップを実行してもよく、及び/又はこれらのステップの1以上を省略してもよい。例えば、いくつかのステップは、本発明の特定の実施例においては実行されないかもしれない。さらなる例として、特定のステップは、上記以外の異なる時間的順序により同時を含み実行されてもよい。
【0125】
図7は、本発明の実施例によるデータ優先順位付けシステム700を示す。本システム700は、区別コンポーネント710と、シーケンス化コンポーネント720と、データ整理コンポーネント730とを有する。区別コンポーネント710は、キュー選択ルール及び/又は機能冗長性ルールなどの区別ルール715を有するかもしれない。シーケンス化コンポーネント720は、スタベーション、ラウンドロビン及び/又は相対頻度などのシーケンス化ルール725を有する。データ整理コンポーネント730は、例えば、キュー、ツリー、テーブル、リスト及び/又はデータを格納及び/又は整理するための他のデータ構造を含む。システム700のコンポーネントは、データ優先順位付けコンポーネント760と総称されるかもしれず、例えば、上述されるように、図5のデータ優先順位付けコンポーネント560のコンポーネントと同様であるかもしれない。
【0126】
データが、データ優先順位付けコンポーネント760において受信される。データは、戦術データネットワークなどのネットワークを介し及び/又はアプリケーションプログラムなどから受信されるかもしれない。他の例として、データは、上述されるように、図5のデータ通信コンポーネント580から受信されるかもしれない。データは、例えば、セル、フレーム、パケット及び/又はストリームなどのデータのブロックを含むかもしれない。データ優先順位付けコンポーネント760は、データを優先順位付けする。特定の実施例では、データ優先順位付けコンポーネント760は、区別ルール715及び/又はシーケンス化ルール725などのデータ優先順位付けルールに少なくとも部分的に基づき、データを優先順位付けするかもしれない。
【0127】
特定の実施例では、データはデータ優先順位付けコンポーネント760の区別コンポーネント710において受信される。区別コンポーネント710は、データを区別する。特定の実施例では、区別コンポーネント710は、キュー選択ルール及び/又は機能冗長性ルール765などの区別ルール715に少なくとも部分的に基づき、データを区別するかもしれない。特定の実施例では、区別ルール及び/又は機能冗長性ルールは、ユーザにより規定されてもよい。特定の実施例では、区別コンポーネント710は、データタイプ、送信アドレス及び/又は送信アプリケーションなどのメッセージコンテンツ及び/又はソースアドレス及び/又はトランスポートプロトコルなどのプロトコル情報に少なくとも部分的に基づき、データを区別するかもしれない。特定の実施例では、区別コンポーネント710は、例えば、キュー選択ルールなどに少なくとも部分的に基づき、データをデータ整理コンポーネント730に追加してもよい。例えば、区別コンポーネント710は、ビデオデータを第1キューに、オーディオデータを第2キューに、遠隔測定データを第3キューに、位置データを第4キューに追加してもよい。特定の実施例では、区別コンポーネント710は、例えば、機能冗長性ルールなどに少なくとも部分的に基づき、データ整理コンポーネント730からデータを削除及び/又は保留するかもしれない。例えば、区別コンポーネント710は、第4キューから古い及び/又は冗長な位置データを削除するかもしれない。
【0128】
特定の実施例では、区別されたデータが通信されるかもしれない。例えば、区別されたデータは、上述されるように、図5のデータ通信コンポーネント580に送信されてもよい。他の例として、区別されたデータは、戦術データネットワークなどのネットワークを介し及び/又はアプリケーションプログラムに通信されてもよい。
【0129】
特定の実施例では、データが、データ優先順位付けコンポーネント760のシーケンス化コンポーネント720において受信される。シーケンス化コンポーネント720は、データをシーケンス化する。特定の実施例では、シーケンス化コンポーネント720は、スタベーション、ラウンドロビン及び/又は相対頻度などのシーケンス化ルール725に少なくとも部分的に基づき、データをシーケンス化するかもしれない。特定の実施例では、シーケンス化ルール725は、ユーザにより規定されてもよい。特定の実施例では、シーケンス化コンポーネント720は、例えば、シーケンス化ルール735に少なくとも部分的に基づき、データを選択及び/又は削除する。例えば、シーケンス化コンポーネント720は、第4キューから位置データを削除し、その後に第2キューからオーディオデータを削除し、その後に第3キューから遠隔測定データを削除し、その後に第1キューからビデオデータを削除するかもしれない。
【0130】
特定の実施例では、シーケンス化されたデータが通信されるかもしれない。例えば、シーケンス化されたデータは、上述されるように、図5のデータ通信コンポーネント580に送信されるかもしれない。他の例として、シーケンス化されたデータは、戦術データネットワークなどのネットワークを介し及び/又はアプリケーションプログラムに通信されてもよい。
【0131】
特定の実施例では、区別コンポーネント710、シーケンス化コンポーネント720及び/又はデータ整理コンポーネント730を有するデータ優先順位付けコンポーネント700は、上述されるように、QoSを提供するのに利用されるかもしれない。特定の実施例では、区別コンポーネント710、シーケンス化コンポーネント720及び/又はデータ整理コンポーネント730を有するデータ優先順位付けコンポーネント700は、上述されるように、他のアプリケーションに透過であってもよい。
【0132】
上述されるように、データ優先順位付けコンポーネント700のコンポーネント、要素及び/又は機能は、例えば、ハードウェア、ファームウェア及び/又はソフトウェアの命令セットとして各種形式により単独で又は組み合わせて実現可能である。特定の実施例は、汎用コンピュータ又は他の処理装置上での実行のため、メモリ、ハードディスク、DVD又はCDなどのコンピュータ可読媒体にある命令セットとして提供されてもよい。
【0133】
図8は、本発明の実施例によるデータ優先順位付け方法800のフロー図を示す。本方法800は、以下でより詳細に説明される以下の各ステップを含む。ステップ810において、データが受信される。ステップ820において、データが優先順位付けされる。ステップ830において、データが通信される。本方法800は、上述したシステムの各要素を参照して説明されるが、他の実現形態もまた可能であることが理解されるべきである。
【0134】
ステップ810において、データが受信される。上述されるように、データは、戦術データネットワークなどのネットワークを介し及び/又はアプリケーションプログラムなどから受信されるかもしれない。他の例として、データは、上述されるように、図5のデータ通信コンポーネント580から受信されてもよい。
【0135】
ステップ820において、データが区別される。区別されるデータは、例えば、ステップ810において受信されたデータであってもよい。データは、上述されるように、例えば、図7の区別コンポーネント710により区別されてもよい。
【0136】
ステップ830において、データがシーケンス化される。シーケンス化されるデータは、例えば、ステップ810において受信されたデータ及び/又はステップ820において区別されたデータであってもよい。データは、上述されるように、例えば、図7のシーケンス化コンポーネント720によりシーケンス化されてもよい。
【0137】
ステップ840において、データが通信される。通信されるデータは、ステップ810において受信されたデータ、ステップ820において区別されたデータ及び/又はステップ830においてシーケンス化されたデータなどであってもよい。データは、戦術データネットワークなどのネットワークを介し及び/又はアプリケーションプログラムなどから受信されるかもしれない。他の例として、データは、上述されるように、図5のデータ通信コンポーネント580に通信されてもよい。
【0138】
本方法800の各ステップの1以上は、例えば、ハードウェア、ファームウェア及び/又はソフトウェアの命令セットとして各種形式により単独で又は組み合わせて実現可能である。特定の実施例は、汎用コンピュータ又は他の処理装置上での実行のため、メモリ、ハードディスク、DVD又はCDなどのコンピュータ可読媒体にある命令セットとして提供されてもよい。
【0139】
本発明の特定の実施例は、列記された順序以外の異なる順序により各ステップを実行してもよく、及び/又はこれらのステップの1以上を省略してもよい。例えば、一部のステップは、本発明の特定の実施例では実行されないかもしれない。さらなる例として、特定のステップは上記リストされた以外の時間的順序により同時を含めて実行されてもよい。
【0140】
本発明の一実施例では、データを通信する方法は、データに優先順位を割り当てることによって、前記データを優先順位付けするステップと、前記ネットワークの状態を決定するため、ネットワークを解析するステップと、前記データの優先順位と前記ネットワークの状態とに少なくとも部分的に基づき、前記データを通信するステップとを有する。
【0141】
本発明の一実施例では、データ通信システムは、データ優先順位付けコンポーネントと、ネットワーク解析コンポーネントと、データ通信コンポーネントとを有する。データ優先順位付けコンポーネントは、データに優先順位を割り当てるよう構成される。ネットワーク解析コンポーネントは、ネットワークの状態を決定するよう構成される。データ通信コンポーネントは、前記データの優先順位と前記ネットワークの状態とに少なくとも部分的に基づき、前記データを通信するよう構成される。
【0142】
本発明の一実施例では、コンピュータ可読媒体は、コンピュータ上で実行される命令セットを有する。命令セットは、データ優先順位付けルーチンと、ネットワーク解析ルーチンと、データ通信ルーチンとを有する。データ優先順位付けルーチンは、データに優先順位を割り当てるよう構成される。ネットワーク解析ルーチンは、ネットワークの状態を決定するよう構成される。データ通信ルーチンは、前記データの優先順位と前記ネットワークの状態とに少なくとも部分的に基づき、前記データを通信するよう構成される。
【0143】
以上、本発明の特定の実施例では、適応的なスループットデータ管理のためのシステム及び方法を提供する。特定の実施例は、適応的なスループットデータ管理の技術的効果を提供する。
【符号の説明】
【0144】
100 ネットワーク環境
110 通信ノード
120 ネットワーク
130 リンク
150 通信システム
500 データ通信環境
550 データ通信システム

【特許請求の範囲】
【請求項1】
データ通信システムによるデータを通信する方法であって、
異なるタイプのデータに異なる優先レベルを割り当てることによって、前記データを優先順位付けするステップであって、前記優先順位付けは、データ通信システムのネットワーク通信プロトコルスタックのトランスポートレイヤにおいてと、前記データ通信システムのネットワーク通信プロトコルスタックのトランスポートレイヤの上位においての少なくとも一方において実行される、前記優先順位付けするステップと、
前記ネットワークの帯域幅状態を決定するため、ネットワークを解析するステップと、
前記ネットワークの帯域幅状態が第1ネットワーク状態タイプを有すると判断されると、前記異なる優先レベルの第1優先レベルが割り当てられた前記データの第1部分のみを前記ネットワークを介し選択的に通信するステップと、
前記ネットワークの帯域幅状態が前記第1ネットワーク状態タイプと異なる第2ネットワーク状態タイプを有すると判断されるときに限って、前記第1優先レベルと異なる第2優先レベルが割り当てられた前記データの第2部分を前記ネットワークを介し選択的に通信するステップと、
を有する方法。
【請求項2】
前記データの優先順位は、前記データのタイプ、カテゴリ及びグループの1以上に少なくとも部分的に基づく、請求項1記載の方法。
【請求項3】
前記ネットワークの帯域幅状態に1以上の利用可能な優先順位を関連付けるステップをさらに有する、請求項1記載の方法。
【請求項4】
前記優先順位付けするステップは、前記データのメッセージコンテンツを決定し、該メッセージコンテンツに少なくとも部分的に基づき、前記データに優先順位を割り当てるステップを含む、請求項1記載の方法。
【請求項5】
前記優先順位付けするステップは、ユーザにより規定されたルールに少なくとも部分的に基づき、前記データに優先順位を割り当てるステップを含む、請求項1記載の方法。
【請求項6】
前記解析するステップは、前記ネットワークの帯域幅、遅延及びジッタの1以上に少なくとも部分的に基づき、前記ネットワークの帯域幅状態を決定するステップを含む、請求項1記載の方法。
【請求項7】
前記解析するステップは、ユーザにより規定されたルールに少なくとも部分的に基づき、前記ネットワークの帯域幅状態を決定するステップを含む、請求項1記載の方法。
【請求項8】
システムのトランスポートレイヤにおいて又は前記トランスポートレイヤの上位において実現される、データを通信するシステムであって、
異なるタイプのデータに異なる優先レベルを割り当てるよう構成されるデータ優先順位付けコンポーネントであって、前記優先順位付けは、データ通信システムのネットワーク通信プロトコルスタックのトランスポートレイヤにおいてと、前記データ通信システムのネットワーク通信プロトコルスタックのトランスポートレイヤの上位においての少なくとも一方において実行される、前記データ優先順位付けコンポーネントと、
ネットワークの帯域幅状態を決定するよう構成されるネットワーク解析コンポーネントと、
(a)前記ネットワークの帯域幅状態が第1ネットワーク状態タイプを有すると判断されると、前記異なる優先レベルの第1優先レベルが割り当てられた前記データの第1部分のみを前記ネットワークを介し選択的に通信し、(b)前記ネットワークの帯域幅状態が前記第1ネットワーク状態タイプと異なる第2ネットワーク状態タイプを有すると判断されるときに限って、前記第1優先レベルと異なる第2優先レベルが割り当てられた前記データの第2部分を前記ネットワークを介し選択的に通信するよう構成されるデータ通信コンポーネントと、
を有するシステム。
【請求項9】
前記データの優先順位に少なくとも部分的に基づき、他のデータに関して前記データを整理するよう構成されるデータ整理コンポーネントをさらに有する、請求項8記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−75172(P2012−75172A)
【公開日】平成24年4月12日(2012.4.12)
【国際特許分類】
【出願番号】特願2011−263493(P2011−263493)
【出願日】平成23年12月1日(2011.12.1)
【分割の表示】特願2009−516652(P2009−516652)の分割
【原出願日】平成19年6月18日(2007.6.18)
【出願人】(594071675)ハリス コーポレイション (287)
【氏名又は名称原語表記】Harris Corporation
【Fターム(参考)】