(57)【要約】  本発明の特定の実施例は、低帯域ネットワーク環境でデータと共にトランスポートプロトコルコマンドをキューに入れるシステム及び方法を提供する。この方法は、ネットワーク接続を介して送信するデータを受信し、データをキューに入れ、ネットワーク接続に関するトランスポートプロトコルコマンドをキューに入れ、ネットワーク接続を介してデータを送信し、データの送信の後にトランスポートプロトコルコマンドを送信することを含んでもよい。特定の実施例では、データ及びトランスポートプロトコルコマンドは、戦術データネットワークのような通信ネットワークのトランスポートプロトコルレイヤを操作することに少なくとも部分的に基づいてキューに入れられてもよい。特定の実施例では、データは、コンテンツ型ルール及び／又はプロトコル型ルールのような少なくとも１つのルールに基づいて優先付けされる。特定の実施例では、例えば、トランスポートプロトコルコマンドは、クローズ接続コマンドを含む。
2009535989.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで第１のノードと第２のノードとの間の接続をオープンし、前記第１のノードと前記第２のノードとの間でデータを通信し、
トランスポートプロトコルコマンドが前記データの通信が完了した後に処理されるように、前記接続を介して前記第１のノードと前記第２のノードとの間で通信される前記データに関して、トランスポートプロトコルコマンドを保持することを有するデータ通信方法。
【請求項２】
前記保持するステップは、前記データが前記第１のノードと前記第２のノードとの間で通信された後に前記トランスポートプロトコルコマンドが前記接続に関して実行されるように、前記データの後ろに前記トランスポートプロトコルコマンドをキューに入れることを更に有する、請求項１に記載の方法。
【請求項３】
前記保持するステップは、前記ネットワークのトランスポートプロトコルレイヤを操作し、前記データに関して前記トランスポートプロトコルコマンドを保持することを更に有する、請求項１に記載の方法。
【請求項４】
トランスポートプロトコルレイヤで前記データを保持し、前記接続を介した前記第１のノードから前記第２のノードへの前記データの通信を優先付けることを更に有する、請求項１に記載の方法。
【請求項５】
前記接続は、伝送制御プロトコル（TCP）接続を有する、請求項１に記載の方法。
【請求項６】
前記ネットワークは、前記ネットワークが動作する環境により制約される帯域を有する戦術データネットワークを有する、請求項１に記載の方法。
【請求項７】
前記トランスポートプロトコルコマンドは、クローズ接続コマンドを有する、請求項１に記載の方法。
【請求項８】
処理装置で実行する一式の命令を有するコンピュータ可読媒体であって、
前記一式の命令は、
第１のノードと第２のノードとの間でトランスポート接続を確立し、前記第１のノードと前記第２のノードとの間でデータを通信する接続ルーチンと、
ネットワークトランスポートレイヤで動作し、前記トランスポート接続を介して前記第１のノードと前記第２のノードとの間で通信される前記データに関して、トランスポートプロトコルコマンドを保持する保持ルーチンと
を有し、前記トランスポートプロトコルコマンドは、前記データの通信が完了した後に処理されるコンピュータ可読媒体。
【請求項９】
前記保持ルーチンは、前記データが前記第１のノードと前記第２のノードとの間で通信された後に前記トランスポートプロトコルコマンドが前記トランスポート接続に関して実行されるように、前記データの後ろに前記トランスポートプロトコルコマンドをキューに入れる、請求項８に記載の一式の命令。
【請求項１０】
前記トランスポート接続に関して前記データと前記トランスポートプロトコルコマンドとをキューに入れるキュールーチンを更に有する、請求項８に記載の一式の命令。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに開示された技術は、概して通信ネットワークに関する。特に、ここに開示された技術は、サービス品質（Quality  of  Service）のプロトコルフィルタリングシステム及び方法に関する。
【背景技術】
【０００２】
通信ネットワークは、様々な環境で利用されている。典型的には、通信ネットワークは、１つ以上のリンクにより接続された２つ以上のノードを含む。一般的に、通信ネットワークは、リンク上の２つ以上の参加ノードと通信ネットワークの中間ノードとの間の通信をサポートするために使用される。ネットワークに多くの種類のノードが存在してもよい。例えば、ネットワークは、クライアント、サーバ、ワークステーション、スイッチ、及び／又はルータのようなノードを含んでもよい。例えば、リンクは、電話回線上のモデム接続、配線、Ethernet(登録商標）リンク、非同期転送モード（ATM：Asynchronous  Transfer  Mode）回線、衛星リンク、及び／又は光ファイバケーブルでもよい。
【０００３】
実際に、通信ネットワークは、１つ以上の小さい通信ネットワークで構成されてもよい。例えば、インターネットは、相互接続されたコンピュータネットワークのネットワークとして、しばしば記載されている。各ネットワークは、異なるアーキテクチャ及び／又はトポロジを利用してもよい。例えば、１つのネットワークはスタートポロジーの交換Ethernet(登録商標）ネットワークでもよく、他のネットワークは、FDDI（Fiber-Distributed  Data  Interface）リングでもよい。
【０００４】
通信ネットワークは広範囲のデータを伝達してもよい。例えば、ネットワークは、インタラクティブなリアルタイム会話のデータと共にバルクファイル転送を伝達してもよい。ネットワークで送信されるデータは、しばしばパケット、セル又はフレームで送信される。代替として、データはストリームとして送信されてもよい。或る場合には、データのストリーム又はフローは、実際のパケットのシーケンスでもよい。インターネットのようなネットワークは、一連のノードの間で汎用のデータパスを提供し、異なる要件の多くのデータを伝達する。
【０００５】
ネットワークでの通信は、典型的には複数のレベルの通信プロトコルを含む。プロトコルスタック（ネットワーキングスタック又はプロトコルスイートとも呼ばれる）は、通信に使用されるプロトコルの集合を示す。各プロトコルは、特定の種類の機能又は特定の形式の通信を専門としてもよい。例えば、１つのプロトコルは、導線により接続された装置と通信するために必要な電気信号に関係してもよい。例えば、他のプロトコルは、多くの中間ノードにより分離された２つのノードの間での順序のある信頼できる送信を扱ってもよい。
【０００６】
典型的には、プロトコルスタックのプロトコルは階層に存在する。しばしば、プロトコルはレイヤに分類される。プロトコルレイヤの１つの参照モデルは、OSI（Open  Systems  Interconnection）モデルである。OSI参照モデルは、７つのレイヤ（物理レイヤ、データリンクレイヤ、ネットワークレイヤ、トランスポートレイヤ、セッションレイヤ、プレゼンテーションレイヤ、及びアプリケーションレイヤ）を含む。物理レイヤは、“最も低い”レイヤであり、アプリケーションレイヤは、“最も高い”レイヤである。２つの周知のトランスポートレイヤプロトコルは、TCP（Transmission  Control  Protocol）及びUDP（User  Datagram  Protocol）である。周知のネットワークレイヤプロトコルは、IP（Internet  Protocol）である。
【０００７】
送信ノードでは、送信されるデータは、最も高いものから最も低いものに、プロトコルスタックのレイヤを下に伝えられる。逆に、受信ノードでは、データは、最も低いものから最も高いものに、レイヤを上に伝えられる。各レイヤでは、データは、そのレイヤのプロトコル処理通信により扱われ得る。例えば、トランスポートレイヤプロトコルは、宛先ノードに到達したときにパケットの並び替えを可能にするヘッダをデータに追加してもよい。アプリケーションに応じて、或るレイヤは存在しても使用されなくてもよく、データは単に通過してもよい。
【０００８】
１つの種類の通信ネットワークは、戦術データネットワーク（tactical  data  network）である。戦術データネットワークはまた、戦術通信ネットワークとも呼ばれることがある。戦術データネットワークは、軍隊（例えば、陸軍、海軍及び／又は空軍）のような組織内の部隊により利用され得る。例えば、戦術データネットワーク内のノードは、個々の軍人、航空機、指揮部隊、衛星、及び／又は無線機を含んでもよい。戦術データネットワークは、音声、位置測定データ、センサデータ、及び／又はリアルタイムビデオのようなデータを通信するために使用され得る。
【０００９】
どのように戦術データネットワークが使用され得るかの例は以下の通りである。後方支援部隊は、戦場の戦闘部隊に供給品を提供するためにルート内に存在し得る。後方支援部隊及び戦闘部隊は、衛星無線リンクで位置測定データを指揮所に提供していてもよい。無人機（UAV：unmanned  aerial  vehicle）は、部隊がいる道路を巡回しており、同様に衛星無線リンクでリアルタイムビデオデータを指揮所に送信していてもよい。指揮所では、コントローラが道路の特定の部分のビデオを提供するようにUAVに作業させている間に、分析者はビデオデータを検査していてもよい。分析者は、部隊が近づいている簡易爆発物（IED：improvised  explosive  device）を見つけ、直接無線リンクで部隊に止まるように命令を送信し、IEDの存在を部隊に警告する。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
戦術データネットワーク内に存在し得る様々なネットワークは、多くの異なるアーキテクチャ及び特性を有し得る。例えば、指揮部隊のネットワークは、衛星への無線リンクと共に、ギガビットEthernet(登録商標）ローカルエリアネットワーク（LAN）を含んでもよく、作業部隊は、かなり低いスループット及び高い待ち時間で動作してもよい。作業部隊は、衛星及び直接パス無線周波数（RF：radio  frequency）を介して通信してもよい。データは、データの性質及び／又はネットワークの特定の物理特性に応じて、ポイント・ツー・ポイント、マルチキャスト、又はブロードキャストで送信されてもよい。例えば、ネットワークは、データを中継するために設定された無線機を含んでもよい。更に、ネットワークは、長距離通信を可能にする高周波数（HF：high  frequency）ネットワークを含んでもよい。例えば、マイクロ波ネットワークも使用されてもよい。他にも理由があるが、リンク及びノードの種類の多様性のため、戦術ネットワークは、しばしば過度に複雑なネットワークアドレス方式及びルーティングテーブルを有する。更に、無線型ネットワークのような或るネットワークは、バーストを使用して動作してもよい。すなわち、継続的にデータを送信するのではなく、データの定期的なバーストを送信する。無線機は全ての参加者により共有されなければならない特定のチャネルでブロードキャストしており、一度に唯一の無線機が送信してもよいため、このことは有用である。
【００１１】
戦術データネットワークは、一般的に帯域に制約される。すなわち、何らかの所定の時点で、利用可能な帯域より一般的に多くのデータが通信される。例えば、これらの制約は、供給を超える帯域の需要のためであることがあり、及び／又はユーザの需要を満たすのに十分な帯域を供給しない利用可能な通信技術のためであることがある。例えば、或るノードの間で、帯域はキロビット／秒の単位になり得る。帯域に制約のある戦術データネットワークでは、あまり重要でないデータがネットワークを詰まらせ、より重要なデータが時間通りに通過することを妨げることがあり、或いは受信ノードに全く到達しないこともある。更に、ネットワークの一部は、信頼のないリンクを補うために内部バッファを含み得る。これは更なる遅延を生じることがある。更に、バッファが一杯になると、データが破棄されることがある。
【００１２】
多くの場合に、ネットワークに利用可能な帯域は増加不可能である。例えば、衛星通信リンクで利用可能な帯域は固定され、他の衛星を配置せずには有効に増加できない。これらの場合、帯域は需要に対処するように単に拡張されるのではなく、管理されなければならない。大規模システムでは、ネットワーク帯域は重要なリソースである。アプリケーションができるだけ効率的に帯域を利用することが望ましい。更に、アプリケーションが“パイプを詰まらせる（clogging  the  pipe）”ことを回避することが望ましい。すなわち、帯域が制限されているときに、データでリンクを圧倒することを回避することが望ましい。帯域割り当てが変化すると、好ましくは、アプリケーションは反応すべきである。帯域は、例えば、サービス品質、電波妨害、信号障害、優先度再割り当て、及び視野方向のため、動的に変化し得る。ネットワークはかなり不安定になる可能性があり、利用可能な帯域が急激に予告なしに変化する可能性がある。
【００１３】
帯域の制約に加えて、戦術データネットワークは、高い待ち時間を受けることがある。例えば、衛星リンクで通信に関与するネットワークは、0.5秒以上のオーダーの待ち時間を生じ得る。或る通信では、これは問題にならない可能性があるが、他の場合（リアルタイム、インタラクティブ通信（例えば、音声通信）等）では、できるだけ待ち時間を最小化することがかなり望ましい。
【００１４】
多くの戦術データネットワークに共通する他の特性は、データ損失である。データは、様々な理由で失われ得る。例えば、送信するデータを有するノードが損傷又は破壊されることがある。他の例として、宛先ノードは、一時的にネットワークから見えなくなることがある。これは、例えば、ノードが範囲外に移動したため、通信リンクが妨害されたため、及び／又はノードが電波妨害されたために生じることがある。宛先ノードが受信することができず、宛先ノードが利用可能になるまで中間ノードがデータをバッファするのに十分な容量を欠いているため、データが失われることがある。更に、中間ノードは、データを全くバッファしないことがあり、その代わりに、データが実際に宛先に到達したか否かを決定することを送信ノードに任せる。
【００１５】
しばしば、戦術データネットワークのアプリケーションは、ネットワークの特定の特性を認識及び／又は考慮しない。例えば、アプリケーションは、必要なだけ利用可能な大きい帯域を有することを単に仮定し得る。他の例として、アプリケーションは、データがネットワークで失われないことを仮定し得る。基礎となる通信ネットワークの特定の特性を考慮しないアプリケーションは、実際に問題を悪化させるように振る舞うことがある。例えば、アプリケーションは、大きい束であまり頻繁でなく有効に送信され得るかのように、データのストリームを継続して送信し得る。例えば、連続するストリームは、他のノードが通信することを有効に不足させるブロードキャスト無線ネットワークでは、かなり大きいオーバーヘッドを生じる可能性があり、その一方で、あまり頻繁でないバーストは、共有帯域が有効に使用されることを可能にする。
【００１６】
特定のプロトコルは、戦術データネットワークではうまく動作しない。例えば、TCPのようなプロトコルは、このようなネットワークが直面し得る高い損失率及び待ち時間のため、無線型戦術ネットワークでうまく機能しない可能性がある。TCPは、データを送信するために、いくつかの種類のハンドシェーク及び送達確認が生じることを必要とする。高い待ち時間及び損失は、TCPがタイムアウトになり、存在しても多くの重要なデータをこのようなネットワークで送信することができないことを生じ得る。
【００１７】
戦術データネットワークで通信される情報は、ネットワークの他のデータに対してしばしば様々なレベルの優先度を有する。例えば、飛行機の危険警告受信機は、数マイル離れた地上の部隊の位置測定情報より高い優先度を有し得る。他の例として、交戦に関する本部からの命令は、友好ラインの背後での後方支援の通信より高い優先度を有し得る。優先レベルは、送信機及び／又は受信機の特定の状況に依存し得る。例えば、位置測定データは、部隊が標準的な巡回ルートに単に従っているときに比べて、部隊が積極的に戦闘に関与しているときにかなり高い優先度になり得る。同様に、UAVからのリアルタイムデータは、単にルート内にいるときに比べて、目標地域上にいるときに高い優先度を有し得る。
【００１８】
ネットワークでデータを配信する複数の手法が存在する。多くの通信ネットワークにより使用される１つの手法は、“ベストエフォート型”手法である。すなわち、通信されるデータは、他の需要を前提として、容量、待ち時間、信頼性、並び替え及びエラーに関してネットワークが可能な限り処理される。従って、ネットワークは、何らかの所定のデータが時間通りに、又はとにかく宛先に到達するという保証を提供しない。更に、送信された順序で、又はデータの１つ以上のビットを変更する送信エラーなしにデータが到達するという保証も行われない。
【００１９】
他の手法は、サービス品質（QoS：Quality  of  Service）である。QoSは、伝達されるデータに関して様々な種類の保証を提供するネットワークの１つ以上の機能を示す。例えば、QoSをサポートするネットワークは、データストリームに対して特定の量の帯域を保証し得る。他の例として、ネットワークは、２つの特定のノードの間のパケットが何らかの最大の待ち時間を有することを保証し得る。このような保証は、２つのノードがネットワークで会話を有する２人の人間である音声通信の場合に有用になり得る。例えば、このような場合のデータ配信の遅延は、通信の不愉快な途切れ及び／又は全くの静寂を生じ得る。
【００２０】
QoSは、選択されたネットワークトラヒックにより良いサービスを提供するネットワークの機能としてみなされ得る。QoSの主な目標は、専用の帯域と、制御されたジッタ及び待ち時間（何らかのリアルタイムのインタラクティブなトラヒックにより要求される）と、改善した損失特性とを含む優先度を提供することである。他の重要な目標は、１つのフローの優先度を提供することで他のフローが失敗しないことを確保することである。すなわち、次のフローについて行われる保証は、既存のフローに行われた保証を壊してはならない。
【００２１】
QoSへの現在の手法は、しばしばネットワークの各ノードがQoSをサポートすること、或いは最低限でも特定の通信に関与するネットワークの各ノードがQoSをサポートすることを必要とする。例えば、現在のシステムでは、２つのノードの間の待ち時間の保証を提供するために、これらの２つのノードの間でトラヒックを伝達する各ノードは、特典（honor）を認識して合意し、保証を履行することができなければならない。
【００２２】
QoSを提供する複数の手法が存在する。１つの手法は、Integrated  Services又は“IntServ”である。IntServは、ネットワークの各ノードがサービスをサポートし、接続が設定されるときにこれらのサービスが確保されるQoSシステムである。IntServは、各ノードで維持されなければならない大量の状態情報と、このような接続を設定することに関連するオーバーヘッドとのため、あまりスケーラビリティがない。
【００２３】
QoSを提供する他の手法は、Differentiated  Services又は“DiffServ”である。DiffServは、インターネットのようなネットワークのベストエフォート型サービスを拡張したサービスモデルの一種である。DiffServは、ユーザ、サービス要件及び他の基準により、トラヒックを区別する。次に、DiffServは、優先キュー若しくは帯域割り当てを介して、又は特定のトラヒックフローの専用ルートを選択することにより、ネットワークノードが異なるレベルのサービスを提供できるようにパケットにマークを付ける。典型的には、ノードはサービスのクラス毎に様々なキューを有する。ノードは、クラスのカテゴリに基づいて、これらのキューから送信する次のパケットを選択する。
【００２４】
既存のQoSの対策は、しばしばネットワーク特有であり、各ネットワーク形式又はアーキテクチャは、異なるQoS構成を必要とし得る。既存のQoSの対策が利用する機構のため、現在のQoSシステムと同じように見えるメッセージは、メッセージ内容に基づいて実際に異なる優先度を有し得る。しかし、データ消費者は、低優先度のデータで溢れることなく、高優先度のデータにアクセスすることを必要とし得る。既存のQoSシステムは、トランスポートレイヤでのメッセージ内容に基づくQoSを提供することができない。
【００２５】
前述のように、既存のQoSの対策は、QoSをサポートするために特定の通信に関与するノードを少なくとも必要とする。しかし、ネットワークの“エッジ”にあるノードは、総合的な保証を行うことができなくても、QoSへの何らかの改善を提供するように適合され得る。ノードは、通信の参加ノード（すなわち、送信及び／又は受信ノード）である場合、及び／又はネットワークの関所（chokepoint）に位置する場合、ネットワークのエッジにあると考えられる。関所は、他の部分に対して全てのトラヒックが通過しなければならないネットワークの部分である。LANから衛星リンクへのルータ又はゲートウェイは関所である。この理由は、LANからLAN上にない何らかのノードへの全てのトラヒックは衛星リンクへのゲートウェイを通過しなければならないからである。
【００２６】
QoSがTCPソケット接続で提供される場合、例えば、接続毎に“オープン”及び“クローズ”コマンドが必要になる。データは、その接続でQoSを提供するために、接続のためにキューに入れられ得る。TCPソケットの“クローズ”が通信アプリケーションにより起動されると、“クローズ”が直ちに履行された場合にキューに入れられた何らかのデータは失われる。現在のアプリケーションでは、クローズは直ちに処理され、データは、接続のクローズの前に処理されない場合に失われ得る。従って、TCPソケット接続でデータ損失を最小化するシステム及び方法の必要性が存在する。
【００２７】
従って、戦術データネットワークでQoSを提供するシステム及び方法の必要性が存在する。戦術データネットワークのエッジでQoSを提供するシステム及び方法の必要性が存在する。更に、戦術データネットワークで適応可能な構成可能なQoSシステム及び方法の必要性が存在する。
【課題を解決するための手段】
【００２８】
本発明の実施例は、データの通信を容易にするシステム及び方法を提供する。方法は、ネットワークで第１のノードと第２のノードとの間の接続をオープンし、第１のノードと第２のノードとの間でデータを通信し、トランスポートプロトコルコマンドがデータの通信が完了した後に処理されるように、接続を介して第１のノードと第２のノードとの間で通信されるデータに関して、
トランスポートプロトコルコマンドを保持することを含む。
【００２９】
例えば、保持することは、データが第１のノードと第２のノードとの間で通信された後にトランスポートプロトコルコマンドが接続に関して実行されるように、データの後ろにトランスポートプロトコルコマンドをキューに入れることを含んでもよい。例えば、トランスポートプロトコルコマンドは、ネットワークのトランスポートプロトコルレイヤを操作することにより保持されてもよい。更に、データは、トランスポートプロトコルレイヤでキューに入れられ、接続を介した第１のノードから第２のノードへのデータの通信を優先付けてもよい。例えば、接続は、伝送制御プロトコルソケット接続を含んでもよい。例えば、トランスポートプロトコルは、伝送制御プロトコルを含んでもよい。例えば、ネットワークは、ネットワークが動作する環境により帯域の制約を有する戦術データネットワークでもよい。例えば、トランスポートプロトコルコマンドは、クローズ接続コマンドを含んでもよい。
【００３０】
特定の実施例は、処理装置で実行する一式の命令を有するコンピュータ可読媒体を提供する。一式の命令は、第１のノードと第２のノードとの間でトランスポート接続を確立し、第１のノードと第２のノードとの間でデータを通信する接続ルーチンと、ネットワークトランスポートレイヤで動作し、トランスポート接続を介して第１のノードと第２のノードとの間で通信されるデータに関して、トランスポートプロトコルコマンドを保持する保持ルーチンとを含み、トランスポートプロトコルコマンドは、データの通信の後に処理される。
【００３１】
例えば、保持ルーチンは、データがトランスポート接続を介して第１のノードと第２のノードとの間で通信されるデータに関して、トランスポートプロトコルコマンドをキューに入れてもよい。一式の命令は、例えば、トランスポート接続に関してトランスポートプロトコルコマンド及びデータをキューに入れるキュールーチンを更に含んでもよい。一式の命令はまた、例えば、少なくとも１つのルールに基づいて第１のノードと第２のノードとの間でのデータの通信を優先付ける優先付けルーチンを含んでもよい。例えば、トランスポート接続は、戦術データネットワークで第１のノードと第２のノードとの間で確立されてもよい。
【００３２】
特定の実施例は、低帯域のネットワーク環境でデータと共にトランスポートプロトコルコマンドをキューに入れる方法を提供する。この方法は、ネットワーク接続を介して送信するデータを受信し、データをキューに入れ、ネットワーク接続に関するトランスポートプロトコルコマンドをキューに入れ、ネットワーク接続を介してデータを送信し、データの送信の後にトランスポートプロトコルコマンドを送信することを含んでもよい。例えば、データ及びトランスポートプロトコルコマンドは、通信ネットワークのトランスポートプロトコルレイヤを操作することに少なくとも部分的に基づいてキューに入れられてもよい。データは、コンテンツ型ルール及び／又はプロトコル型ルールのような少なくとも１つのルールに基づいて優先付けされてもよい。例えば、トランスポートプロトコルコマンドは、クローズ接続コマンドを含む。
【発明を実施するための最良の形態】
【００３３】
前述の要約及びここに記載の技術の特定の実施例の以下の詳細な説明は、添付図面と共に読まれたときに良く理解される。ここに記載の技術を説明する目的で、特定の実施例が図面に示されている。しかし、ここに記載の技術は、添付図面に示す構成及び手段に限定されない。
【００３４】
図１は、ここに記載の技術の実施例で動作する戦術通信ネットワーク環境100を示している。ネットワーク環境100は、複数の通信ノード110と、１つ以上のネットワーク120と、ノード及びネットワークを接続する１つ以上のリンク130と、ネットワーク環境100の構成要素での通信を容易にする１つ以上の通信システム150とを含む。以下の説明は、１つより多くのネットワーク120と１つより多くのリンク130とを含むネットワーク環境100を仮定するが、他の環境も可能であり想定されることがわかる。
【００３５】
例えば、通信ノード110は、無線機、送信機、衛星、受信機、ワークステーション、サーバ、及び／又は他の計算若しくは処理装置でもよく、及び／又はこれらを含んでもよい。例えば、ネットワーク120は、ノード110の間でデータを送信するハードウェア及び／又はソフトウェアでもよい。例えば、ネットワーク120は、１つ以上のノード110を含んでもよい。リンク130は、ノード110及び／又はネットワーク120の間での送信を可能にする有線及び／又は無線接続でもよい。
【００３６】
例えば、通信システム150は、ノード110とネットワーク120とリンク130との間でデータ送信を容易にするために使用されるソフトウェア、ファームウェア及び／又はハードウェアを含んでもよい。図１に示すように、通信システム150は、ノード110、ネットワーク120及び／又はリンク130に関して実装されてもよい。特定の実施例では、各ノード110が通信システム150を含む。特定の実施例では、１つ以上のノード110が通信システム150を含む。特定の実施例では、１つ以上のノード110が通信システム150を含まなくてもよい。
【００３７】
通信システム150は、戦術通信ネットワーク（ネットワーク環境100等）での通信を確保するために役立つデータの動的な管理を提供する。図２に示すように、特定の実施例では、システム150は、OSIの7レイヤのプロトコルモデルにおけるトランスポートレイヤの一部として及び／又は上位で動作する。例えば、システム150は、戦術ネットワークでトランスポートレイヤに渡される高優先度のデータを優先してもよい。システム150は、単一のネットワーク（ローカルエリアネットワーク（LAN）又は広域ネットワーク（WAN）等）での通信又は複数のネットワークを通じた通信を容易にするために使用されてもよい。複数ネットワークシステムの例が図３に示されている。例えば、システム150は、ネットワークに更なる帯域を追加するのではなく、利用可能な帯域を管理するために使用されてもよい。
【００３８】
特定の実施例では、システム150は、ソフトウェアシステムであるが、様々な実施例で、システム150は、ハードウェア構成要素とソフトウェア構成要素との双方を含んでもよい。例えば、システム150は、ネットワークハードウェアと独立してもよい。すなわち、システム150は、様々なハードウェア及びソフトウェアプラットフォームで機能するように適合されてもよい。特定の実施例では、システム150は、ネットワークの内部のノードではなく、ネットワークのエッジで動作する。しかし、システム150は、ネットワークの“関所（choke  point）”のようなネットワークの内部で同様に動作してもよい。
【００３９】
システム150は、利用可能な帯域の最適化、情報優先度の設定、及びネットワークでのデータリンクの管理のようなスループット管理機能を実行するために、ルール及びモード又はプロファイルを使用してもよい。帯域の“最適化”は、ここに記載の技術が１つ以上のネットワークでデータを通信するための帯域使用の効率を増加させるために使用され得ることを意味する。例えば、帯域使用の最適化は、機能的に冗長なメッセージを除去すること、メッセージストリーム管理又は順序付け、及びメッセージ圧縮を含んでもよい。例えば、情報優先度の設定は、インターネットプロトコル（IP）型技術より細かい精度でメッセージ形式を区別すること、及び選択されたルール型順序付けアルゴリズムを介してデータストリームにメッセージを順序付けることを含んでもよい。例えば、データリンク管理は、ルール、モード及び／又はデータ転送における変化に影響を及ぼすネットワーク測定のルール型分析を含んでもよい。モード又はプロファイルは、特定のネットワーク健康状態又は状況の動作上の必要性に関する一式のルールを含んでもよい。システム150は、進行中に新しいモードを規定して切り替えることを含み、モードの動的な“進行中（on-the-fly）”の再構成を提供する。
【００４０】
通信システム150は、例えば不安定な帯域に制約のあるネットワークで、変化する優先度及びサービスのグレードに適応するように構成されてもよい。システム150は、ネットワークの応答能力を増加させ、通信待ち時間を低減することに役立つように、改善したデータフローの情報を管理するように構成されてもよい。更に、システム150は、通信の可用性と残存力と信頼性とを改善するようにアップグレード可能でスケーラブルである柔軟なアーキテクチャを介して、相互運用性を提供してもよい。例えば、システム150は、所定の予測可能なシステムリソース及び帯域を使用しつつ、動的に変化する環境に自律的に適応可能になり得るデータ通信アーキテクチャをサポートする。
【００４１】
特定の実施例では、システム150は、ネットワークを使用するアプリケーションに対してトランスペアレントのままで、帯域に制約のある戦術通信ネットワークにスループット管理を提供する。システム150は、ネットワークへの低減した複雑性で、複数のユーザ及び環境を通じたスループット管理を提供する。前述のように、特定の実施例では、システム150は、OSIの7レイヤのモデルのレイヤ4（トランスポートレイヤ）で及び／又はその上位でホストノードを動作し、専用のネットワークハードウェアを必要としない。システム150は、レイヤ4インタフェースに対してトランスペアレントに動作してもよい。すなわち、アプリケーションは、トランスポートレイヤについて標準的なインタフェースを利用し、システム150の動作を認識しなくてもよい。例えば、アプリケーションがソケットをオープンすると、システム150は、プロトコルスタックのこのポイントでデータをフィルタリングしてもよい。システム150は、アプリケーションがシステム150に特有のインタフェースではなく、例えばネットワーク上の通信装置のオペレーティングシステムにより提供されるTCP/IPソケットインタフェースを使用することを可能にすることにより、トランスペアレント性を実現する。例えば、システム150のルールは、XML（extensible  markup  language）で記述されてもよく、及び／又はカスタムのDLL（dynamic  link  library）を介して提供されてもよい。
【００４２】
特定の実施例では、システム150は、ネットワークのエッジでサービス品質（QoS）を提供する。例えば、システムのQoS機能は、ネットワークのエッジでコンテンツ型のルール型のデータ優先付けを提供する。例えば、優先付けは、区別及び／又は順序付けを含んでもよい。例えば、システム150は、ユーザ構成可能な区別ルールに基づいて、メッセージをキューに区別してもよい。メッセージは、ユーザ構成の順序付けルール（例えば、スターベーション（starvation）、ラウンドロビン、相対頻度等）により記述される順序で、データストリームに順序付けされてもよい。例えば、エッジでQoSを使用して、通常のQoSの手法で区別不可能なデータメッセージは、メッセージ内容に基づいて区別されてもよい。例えば、ルールは、XMLで実装されてもよい。特定の実施例では、XMLを超える機能に適応するため、及び／又は極めて低い待ち時間の要件をサポートするため、例えば、システム150は、動的リンクライブラリがカスタムコードを備えることを可能にする。
【００４３】
ネットワークのインバウンド及び／又はアウトバウンドデータは、システム150を介してカスタマイズされてもよい。例えば、優先付けは、大量の低優先度のデータからクライアントアプリケーションを保護する。システム150は、アプリケーションが特定の動作シナリオ又は制約をサポートするデータを受信することを確保することに役立つ。
【００４４】
特定の実施例では、帯域に制約のある戦術ネットワークへのインタフェースとしてのルータを含むLANにホストが接続されると、システムは、プロキシによるQoSとして知られる構成で動作してもよい。この構成では、ローカルLANに向かうパケットは、システムをバイパスし、直ちにLANに進む。システムは、帯域に制約のある戦術ネットワークに向かうパケットにネットワークのエッジでQoSを適用する。
【００４５】
特定の実施例では、システム150は、命令プロファイル交換（commanded  profile  switching）を介して、複数の動作シナリオ及び／又はネットワーク環境について動的なサポートを提供する。プロファイルは、ユーザ又はシステムが指名されたプロファイルに変更することを可能にする名前又は他の識別子を含んでもよい。例えば、プロファイルはまた、機能的冗長ルール識別子、区別ルール識別子、アーカイバル（archival）インタフェース識別子、順序付けルール識別子、事前送信インタフェース識別子、事後送信インタフェース識別子、トランスポート識別子、及び／又は他の識別子のような１つ以上の識別子を含んでもよい。例えば、機能的冗長ルール識別子は、データの陳腐化又は実質的に類似のデータのような機能的な冗長性を検出するルールを指定する。例えば、区別ルール識別子は、メッセージを処理するキューに区別するルールを指定する。例えば、アーカイバルインタフェース識別子は、アーカイバルシステムへのインタフェースを指定する。順序付けルール識別子は、キューのフロントのサンプルを制御する順序付けアルゴリズムを特定し、従って、データストリームでのデータの順序付けを特定する。例えば、事前送信インタフェース識別子は、暗号化及び圧縮のような特別の処理を提供する事前送信処理のインタフェースを指定する。例えば、事後送信インタフェース識別子は、復号化及び解凍のような処理を提供する事後送信処理のインタフェースを特定する。トランスポート識別子は、選択されたトランスポートのネットワークインタフェースを指定する。
【００４６】
例えば、プロファイルはまた、キューサイズ情報のような他の情報を含んでもよい。例えば、キューサイズ情報は、キューの数と、各キューに専用の二次記憶装置及びメモリの量とを特定する。
【００４７】
特定の実施例では、システム150は、帯域を最適化するためにルール型手法を提供する。例えば、システム150は、メッセージをメッセージキューに区別するためにキュー選択ルールを使用してもよく、これにより、メッセージがデータストリームの優先度と適切な相対頻度とを割り当てられてもよい。システム150は、機能的に冗長なメッセージを管理するために、機能的冗長ルールを使用してもよい。例えば、ネットワークでまだ送信されていない前のメッセージと（ルールにより規定されるように）十分に異ならない場合、メッセージは機能的に冗長である。すなわち、送信されるように既にスケジューリングされた古いメッセージと十分に異ならないが、まだ送信されていない新しいメッセージが提供された場合、新しいメッセージは破棄されてもよい。この理由は、古いメッセージが機能的に同等の情報を伝達しており、キューの更に前にあるからである。更に、機能的冗長の多くは、実際に重複したメッセージと、古いメッセージが送信される前に到達する新しいメッセージとを含んでいる。例えば、ノードは、基礎のネットワークの特性のため、耐障害性の理由で２つの異なるパスにより送信されたメッセージのように、特定のメッセージの同一のコピーを受信してもよい。他の例として、新しいメッセージは、まだ送信されていない古いメッセージに取り代わるデータを含んでもよい。この状態で、システム150は、古いメッセージを破棄し、新しいメッセージのみを送信してもよい。システム150はまた、データストリームの優先度型メッセージシーケンスを決定する優先度順序付けルールを含んでもよい。更に、システム150は、圧縮及び／又は暗号化のように、事前送信及び事後送信専用の処理を提供する送信処理ルールを含んでもよい。
【００４８】
特定の実施例では、システム150は、データインテグリティ及び信頼性を保護することに役立つため、耐障害性機能を提供する。例えば、システム150は、メッセージをキューに区別するために、ユーザ定義のキュー選択ルールを使用してもよい。例えば、キューは、ユーザ定義の構成に従ってサイズ決定される。例えば、この構成は、キューが消費し得る最大量のメモリを指定する。更に、この構成は、ユーザがキューのオーバーフローに使用され得る二次記憶装置の位置及び量を指定することを可能にし得る。キューのメモリが一杯になった後に、メッセージは、二次記憶装置のキューに入れられてもよい。二次記憶装置も一杯になると、システム150は、キューの最も古いメッセージを除去し、エラーメッセージをログ記録し、最新のメッセージをキューに入れてもよい。動作モードでアーカイブが可能である場合、キューから外れたメッセージは、メッセージがネットワークで送信されていないというインジケータと共にアーカイブされてもよい。
【００４９】
例えば、システム150のキューのメモリ及び二次記憶装置は、特定のアプリケーションについてリンク毎に構成されてもよい。ネットワークの可用性の期間の間の長い時間は、ネットワーク故障をサポートする多くのメモリ及び二次記憶装置に相当し得る。例えば、キューが適切にサイズ決定されることを確保するのに役立ち、故障の間の時間が定常状態を実現するのに役立ち、最終的なキューのオーバーフローを回避することに役立つのに十分であることを確保するのに役立つように、サイズ決定を特定することに役立つため、システム150は、ネットワークモデリング及びシミュレーションアプリケーションと統合されてもよい。
【００５０】
更に、特定の実施例では、システム150は、インバウンド（“シェーピング処理（shaping）”）データ及びアウトバウンド（“ポリシー処理（policing）”）データを測定（調節）する機能を提供する。ポリシー処理及びシェーピング処理機能は、ネットワークのタイミングの不一致に対処することに役立つ。シェーピング処理は、ネットワークバッファが低優先度のデータの後のキューに入れられた高優先度のデータで溢れることを回避するのに役立つ。ポリシー処理は、データ消費者が低優先度のデータで溢れることを回避するのに役立つ。ポリシー処理及びシェーピング処理は、２つのパラメータ（有効リンク速度及びリンク比率）により支配される。例えば、システム150は、リンク比率で乗算された有効リンク速度より大きくないデータストリームを形成してもよい。パラメータは、ネットワークが変化すると共に動的に変更されてもよい。システムはまた、検出されたリンク速度へのアクセスを提供し、データ測定でアプリケーションレベルの判定をサポートしてもよい。システム150により提供される情報は、何のリンク速度が所定のネットワークシナリオに適切であるかを判定することに役立つ他のネットワーク動作情報と結合されてもよい。
【００５１】
特定の実施例では、QoSは、OSIプロトコルモデルのトランスポートレイヤの上で通信ネットワークに提供されてもよい。特に、QoS技術は、トランスポートプロトコル接続のソケットレイヤの直下に実装されてもよい。例えば、トランスポートプロトコルは、TCP（Transmission  Control  Protocol）、UDP（User  Datagram  Protocol）、又はSTCP（Stream  Control  Transmission  Protocol）を含んでもよい。他の例として、プロトコル形式は、IP（Internet  Protocol）、IPX（Internetwork  Packet  Exchange）、Ethernet(登録商標）、ATM（Asynchronous  Transfer  Mode）、FTP（File  Transfer  Protocol）、及び／又はRTP（Real-time  Transport  Protocol）を含んでもよい。説明目的で、１つ以上の例は、TCPを使用して提供される。
【００５２】
TCPはコネクション型であるため、ソケットは、ノード又は他のネットワークエレメントの間とのデータ通信接続を開始及び終了するために、“オープン（open）”及び“クローズ（close）”コマンドを介してオープン及びクローズされる。TCPソケットがQoSを利用しているアプリケーションによりクローズされると、送信のためにキューに入れられて優先付けされたデータは、クローズコマンドがネットワークシステムにより実行される前に送信されるべきである。そうでない場合、“クローズ”がシステムにより直ちに履行されたときに、キューに入れられたデータは失われ得る。このため、関連のデータが送信されるまで、“クローズ”はキューに入れられ、データが接続を介して送信された後にクローズが処理される。従って、通常のTCP接続とは異なり、接続がクローズコマンドに応じて終了する前に、オープン接続に関する調整された処理及び送信を可能にするため、クローズコマンドはデータと共にキューに入れられてもよい。
【００５３】
他のネットワーク環境での既存のQoSの対策は、“クローズ”コマンドをキューに入れること又は保持することを排除するため、ネットワークレイヤの下に実装される。特定の実施例は、QoS技術がトランスポートレイヤの上に実装され得るように、“クローズ”コマンドをキューに入れる機構又は保持する機構を提供する。例えば、このことは、データの検査及び区別を可能にする。例えば、TCPのトランスポートレイヤの上にQoSの対策を実装することは、ネットワークレイヤの下で利用不可能なQoS処理のデータを分離又は区別する機能を提供することに役立つ。特定の実施例では、トランスポートプロトコルは、データに加えてシステムコマンド（クローズ接続コマンド等）をキューに入れること又は保持することを可能にするように変更又は操作される。
【００５４】
例えば、特定の実施例は、データと共にトランスポートプロトコル機構をキューに入れ又は保持／格納し、プロトコル機構と関連のデータとの間の順序を維持する。例えば、TCPクローズコマンドが特定され、TCPソケット接続の関連のデータと共にキューに入れられ、これにより、クローズコマンドが接続を終了するように処理される前に、関連のデータは接続を介して処理及び送信される。トランスポートレイヤの上で動作することにより、特定の実施例は、プロトコル機構（クローズコマンド等）を特定し、機構を操作することが可能になる。これに対して、トランスポートレイヤの下のプロトコル機構及びデータフローはセグメント化されてコンパクトであり、データに関してプロトコル機構（クローズコマンド等）を操作するためにルールを適用することが困難である。
【００５５】
図４は、本発明の実施例で動作するデータ通信環境400を示している。環境400は、データ通信システム410と、１つ以上のソースノード420と、１つ以上の宛先ノード430とを含む。データ通信システム410は、ソースノード420及び宛先ノード430と通信している。例えば、データ通信システム410は、無線、衛星、ネットワークリンクのようなリンクで、及び／又はプロセス間通信を通じて、ソースノード420及び／又は宛先ノード430と通信してもよい。特定の実施例では、データ通信システム410は、１つ以上の戦術データネットワークで１つ以上のソースノード420及び／又は宛先ノード430と通信してもよい。
【００５６】
例えば、データ通信システム410は、前述の通信システム150と同様のものでもよい。特定の実施例では、データ通信システム410は、１つ以上のソースノード420からデータを受信するように適合される。特定の実施例では、データ通信システム410は、データを保持、格納、構成及び／又は優先付けする１つ以上のキューを含んでもよい。代替として、データを保持、格納、構成及び／又は優先付けする他のデータ構造が使用されてもよい。例えば、テーブル、ツリー又は連結リストが使用されてもよい。特定の実施例では、データ通信システム410は、１つ以上の宛先ノード430にデータを通信するように適合される。
【００５７】
データ通信システム410により受信、格納、優先付け、処理、通信、及び／又は送信されたデータは、データのブロックを含んでもよい。例えば、データのブロックは、データのパケット、セル、フレーム、及び／又はストリームでもよい。例えば、データ通信システム410は、ソースノード420からデータのパケットを受信してもよい。他の例として、データ通信システム410は、ソースノード420からのデータのストリームを処理してもよい。
【００５８】
特定の実施例では、データは、ヘッダとペイロードとを含む。例えば、ヘッダは、プロトコル情報とタイムスタンプ情報とを含んでもよい。特定の実施例では、プロトコル情報、タイムスタンプ情報、コンテンツ及び他の情報は、ペイロードに含まれてもよい。例えば、データは、メモリで連続的もよく、連続的でなくてもよい。すなわち、データの１つ以上の部分は、メモリの異なる領域に配置されてもよい。特定の実施例では、例えば、データは、データを含む他の位置へのポインタを含んでもよい。
【００５９】
ソースノード420は、データ通信システム410により処理されるデータを少なくとも部分的に提供及び／又は生成する。例えば、ソースノード420は、アプリケーション、無線機、衛星、又はネットワークを含んでもよい。ソースノード420は、前述のようにリンクでデータ通信システム410と通信してもよい。例えば、ソースノード420は、データの連続ストリームを生成してもよく、データをバースト生成してもよい。特定の実施例では、ソースノード420及びデータ通信システム410は、同じシステムの一部である。例えば、ソースノード420は、データ通信システム410と同じコンピュータシステムで動作するアプリケーションでもよい。
【００６０】
宛先ノード430は、データ通信システム410により処理されるデータを受信する。例えば、宛先ノード430は、アプリケーション、無線機、衛星、又はネットワークを含んでもよい。宛先ノード420は、前述のようにリンクでデータ通信システム410と通信してもよい。特定の実施例では、宛先ノード430及びデータ通信システム410は、同じシステムの一部である。例えば、宛先ノード430は、データ通信システム410と同じコンピュータシステムで動作するアプリケーションでもよい。
【００６１】
データ通信システム410は、前述のようにリンクで１つ以上のソースノード420及び／又は宛先ノード430と通信してもよい。特定の実施例では、１つ以上のリンクは、戦術データネットワークの一部でもよい。特定の実施例では、１つ以上のリンクは、帯域に制約されてもよい。特定の実施例では、１つ以上のリンクは、信頼性がなくてもよく、及び／又は断続的に切断されてもよい。特定の実施例では、TCPのようなトランスポートプロトコルは、ソースノード420及び宛先ノード430でのソケットの間で接続をオープンし、ソースノード420から宛先ノード430へのリンクでデータを送信する。
【００６２】
動作中に、データは、１つ以上のデータソース420により提供及び／又は生成される。データは、データ通信システム410で受信される。例えば、データは、１つ以上のリンクで受信されてもよい。例えば、データは、戦術データネットワークで無線機からデータ通信システム410で受信されてもよい。他の例として、データは、プロセス間通信機構により同じシステムで動作するアプリケーションにより、データ通信システム410に提供されてもよい。前述のように、例えば、データはデータのブロックでもよい。
【００６３】
特定の実施例では、データ通信システム410は、データを構成及び／又は優先付けしてもよい。特定の実施例では、データ通信システム410は、データのブロックの優先度を決定してもよい。例えば、データのブロックがデータ通信システム410により受信されると、データ通信システム410の優先付け構成要素は、そのデータブロックの優先度を決定してもよい。他の例として、データのブロックは、データ通信システム410のキューに格納されてもよく、優先付け構成要素は、データのブロック及び／又はキューについて決定された優先度に基づいて、キューからデータのブロックを抽出してもよい。
【００６４】
例えば、データ通信システム410によるデータの優先付けは、QoSを提供するために使用されてもよい。例えば、データ通信システム410は、戦術データネットワークで受信したデータの優先度を決定してもよい。例えば、優先度は、データのソースアドレスに基づいてもよい。例えば、データ通信システム410が属する小隊と同じ小隊のメンバの無線機からのデータのソースIPアドレスは、異なる動作領域の異なる部の部隊から生じたデータより高い優先度を与えられてもよい。優先度は、データ通信システム410による次の通信のために、複数のキューのうちどれにデータが配置されるかを決定するために使用されてもよい。例えば、高優先度のデータは、高優先度のデータを保持することを目的としたキューに配置されてもよく、次に、データ通信システム410は、何のデータを次に通信するかを決定するときに、高優先度のキューを最初に探してもよい。
【００６５】
データは、１つ以上のルールに少なくとも部分的に基づいて優先付けされてもよい。前述のように、ルールはユーザ定義でもよい。特定の実施例では、例えば、ルールは、XMLにより記述されてもよく、及び／又はカスタムDLLを介して提供されてもよい。例えば、ルールは、ネットワークのデータを区別及び／又は順序付けするために使用されてもよい。例えば、ルールは、１つのプロトコルを使用して受信したデータが、他のプロトコルを利用したデータより有利に扱われることを指定してもよい。例えば、コマンドデータは、ルールを介して、他のプロトコルを使用して送信された位置測定データの上の優先度を与えられる特定のプロトコルを利用してもよい。他の例として、ルールは、第１の範囲のアドレスから生じる位置測定データが第２の範囲のアドレスから生じる位置測定データの上の優先度を与えられ得ることを指定してもよい。例えば、第１の範囲のアドレスは、それで動作するデータ通信システム410の飛行機と同じ戦隊の他の飛行機のIPアドレスを表してもよい。例えば、第２の範囲のアドレスは、異なる動作領域にある（従って、データ通信システム410が動作している飛行機にとってあまり関心がない）他の飛行機のIPアドレスを表してもよい。
【００６６】
特定の実施例では、データ通信システム410は、データを破棄しない。すなわち、データは低優先度でもよいが、データ通信システム410により破棄されない。むしろ、潜在的に受信した高優先度のデータの量に応じて、データは長期間に遅延されてもよい。特定の実施例では、データを送信するために帯域が利用可能になるまでデータが失われない又は破棄されないことを確保するのに役立つため、データはキューに入れられてもよく、格納されてもよい。
【００６７】
特定の実施例では、データ通信システム410は、モード又はプロファイルインジケータを含む。例えば、モードインジケータは、データ通信システム410の現在のモード又は状態を表してもよい。前述のように、データ通信システム410は、利用可能な帯域の最適化、情報優先度の設定、及びネットワークでのデータリンクの管理のようなスループット管理機能を実行するために、ルール及びモード又はプロファイルを使用してもよい。例えば、異なるモードは、ルール、モード、及び／又はデータ転送における変化に影響を及ぼしてもよい。モード又はプロファイルは、特定のネットワーク健康状態又は状況への動作上の必要性に関する一式のルールを含んでもよい。例えば、データ通信システム410は、“進行中”に新しいモードを規定して切り替えることを含み、モードの動的な再構成を提供してもよい。
【００６８】
特定の実施例では、データ通信システム410は、他のアプリケーションに対してトランスペアレントである。例えば、データ通信システム410により実行される処理、構成及び／又は優先付けは、１つ以上のソースノード420又は他のアプリケーション若しくはデータソースにトランスペアレントでもよい。例えば、データ通信システム410と同じシステム又はデータ通信システム410に接続されたソースノード420で動作するアプリケーションは、データ通信システム410により実行されるデータの優先付けを認識しなくてもよい。
【００６９】
データは、データ通信システム410を介して通信される。例えば、データは、１つ以上の宛先ノード430に通信されてもよい。例えば、データは、１つ以上のリンクで通信されてもよい。例えば、データは、データ通信システム410により戦術データネットワークで無線機に通信されてもよい。他の例として、データは、プロセス間通信機構により同じシステムで動作するアプリケーションにデータ通信システム410により提供されてもよい。
【００７０】
前述のように、例えば、データ通信システム410の構成要素、要素及び／又は機能は、単独で、又は様々な形式のハードウェア、ファームウェアの組み合わせで、及び／又はソフトウェアの一式の命令として実装されてもよい。特定の実施例は、汎用コンピュータ又は他の処理装置で実行するコンピュータ可読媒体（メモリ、ハードディスク、DVD又はCD等）に存在する一式の命令として提供されてもよい。
【００７１】
図５は、ここに記載の技術の実施例に従ってトランスポートレイヤの上で動作するQoSのキューシステム500の例を示している。図５は、キューに関して説明及び記載されているが、キューシステム500と同様のデータ及びプロトコル機構を保持するために代替のデータ構造が使用されてもよいことがわかる。キューシステム500は、１つ以上のキュー510-515を含む。キュー510-515は、エンキュー・ポインタ（enqueue  pointer）520と、デキュー・ポインタ（dequeue  pointer）530とを含む。例えば、キュー510-515はまた、データ540-541及び／又はクローズコマンド550を含んでもよい。特定の実施例では、データ540-541は、データの連続又は不連続部分を含んでもよい。特定の実施例では、データ540-541は、データを含む他の位置への１つ以上のポインタを含んでもよい。
【００７２】
図５に示すように、キュー510は、まず、データをキューに入れていない空のキューを示す。次に、１つのデータのブロック540がキュー511に入れられる。次に、キュー512は、キューに入れられた２つのデータのブロック540-541を有する。次に、クローズコマンド550は、キュー513の２つのデータのブロック540-541と共にキューに入れられる。クローズコマンド550がキュー514のデータブロックの後ろに残っている間に、データブロック540-541は、ネットワークで処理される。特定の実施例では、データブロック540-541は、ブロック540-541がキューに入れられた順序以外の順序で処理及び送信されてもよい。次に、キュー515に示すように、クローズコマンド550がキュー515から取り出され、データ接続をクローズするために処理される。
【００７３】
従って、例えば、データ通信システム410のようなシステムは、ソースノード420と宛先ノード430との間でオープンされた接続を管理してもよい。システム410は、接続を介して送信されたデータをキューに入れ、また、トランスポートプロトコルコマンド（例えば、“オープン接続”コマンド及び“クローズ接続”コマンド）のようなプロトコルコマンドもキューに入れてもよい。プロトコルコマンドは、ノードの間の特定の接続と、特定のデータとに関連してもよい。システム410は、プロトコルコマンドが処理される前に、接続に関連するデータが送信及び／又は処理されることを確保することを支援する。従って、例えば、ソースノード420と宛先ノード430との間でTCPソケット接続を介して送信されるデータは、クローズコマンドが接続を終了するために処理される前に、ソケット接続を介して送信される。クローズコマンドは、接続のデータの後ろのキューに入れられる。接続のデータは、優先度及び／又は他のルールに応じて様々な順序で処理及び／又は送信されてもよいが、クローズコマンドは、データ処理の完了まで処理されない。接続のデータが処理されると、クローズコマンドがTCPソケット接続を終了するために処理される。
【００７４】
一実施例では、例えば、帯域に制約のあるネットワーク（戦術データネットワーク等）は、少なくとも２つの通信ノード（飛行機の無線機及び地上部隊の無線機等）を含む。例えば、飛行機は、飛行機の無線機と地上の無線機との間でTCPソケット接続を起動又はオープンすることにより、地上の無線機にメッセージを送信してもよい。次に、飛行機の無線機と地上の無線機との間のデータの送信が始まる。コンテンツ、プロトコル及び／又は他の基準に基づいてデータを優先付けるために、データは、送信処理中にキューに入れられ、又は一時的に格納される。飛行機の無線機が通信を終了するためにクローズ接続コマンドを生成すると、クローズコマンドがデータの後に格納され又はキューに入れられ、クローズコマンドの前にデータが優先付けされて地上の無線機に送信されることを確保する。従って、システムは、通信接続が時期尚早に終了せず、これによってクローズコマンドの時期尚早な処理の理由でデータが失われないことを確保するのに役立つ。しかし、他の環境状況も、通信接続の終了及び／又は中断を生じ得る。従って、通信接続の中断の場合に送信の再開のためにデータをバッファするため、キュー及び／又は他のデータ記憶装置が使用されてもよい。
【００７５】
図６は、本発明の実施例によるデータ通信方法600のフローチャートを示している。方法600は、以下に詳細に説明する以下のステップを含む。ステップ610において、接続がオープンされる。ステップ620において、データが受信される。ステップ630において、データがキューに入れられる。ステップ640において、クローズコマンドがキューに入れられる。ステップ650において、データがキューから出されて送信される。ステップ660において、クローズコマンドがキューから出されて実行される。方法600は、前述のシステムの要素を参照して説明されたが、他の実装も可能であることがわかる。
【００７６】
ステップ610において、接続がオープンされる。例えば、接続は、通信ネットワークの２つのノードの間でオープンされる。例えば、TCP接続がノードソケットの間でオープンされてもよい。
【００７７】
ステップ620において、データが受信される。例えば、データは、データ通信システム410で受信されてもよい。例えば、データは、１つ以上のリンクで受信されてもよい。例えば、データは、１つ以上のデータソース420により提供及び／又は生成されてもよい。例えば、データは、戦術データネットワークで無線機からデータ通信システム410で受信されてもよい。他の例として、データは、プロセス間通信機構により同じシステムで動作するアプリケーションにより、データ通信システム410に提供されてもよい。前述のように、例えば、データはデータのブロックでもよい。
【００７８】
特定の実施例では、データ通信システム410は、全てのデータを受信しなくてもよい。例えば、いくつかのデータはバッファに格納されてもよく、データ通信システム410は、ヘッダ情報とバッファへのポインタのみを受信してもよい。例えば、データ通信システム410は、オペレーティングシステムのプロトコルスタックにフック（hook）されてもよく、アプリケーションがトランスポートレイヤインタフェース（例えば、ソケット）を通じてオペレーティングシステムにデータを渡したときに、オペレーティングシステムは、データ通信システム410にデータへのアクセスを提供してもよい。
【００７９】
ステップ630において、データがキューに入れられる。例えば、データは、データ通信システム410によりキューに入れられてもよい。例えば、データは、システム410、使用されるプロトコル及び／又は他の機構により確立された１つ以上のルール又は優先度に基づいてキューに入れられてもよい。例えば、データは、受信した順序で及び／又は他の順序でキューに入れられてもよい。特定の実施例では、データは、１つ以上のキューに格納されてもよい。例えば、１つ以上のキューは、異なる優先度及び／又は異なる処理ルールを割り当てられてもよい。
【００８０】
１つ以上のキューのデータは優先付けされてもよい。例えば、データは、データ通信システム410により優先付け及び／又は構成されてもよい。例えば、優先付けされるデータは、ステップ620において受信したデータでもよい。例えば、データがキューに入れられる前及び／後にデータが優先付けされてもよい。特定の実施例では、データ通信システム410は、データのブロックの優先度を決定してもよい。例えば、データのブロックがデータ通信システム410により受信されると、データ通信システム410の優先付け構成要素は、そのデータのブロックの優先度を決定してもよい。他の例として、データのブロックは、データ通信システム410のキューに格納されてもよく、優先付け構成要素は、データのブロック及び／又はキューについて決定された優先度に基づいて、キューからデータのブロックを抽出してもよい。データのブロックの優先度は、データのブロックに関連する及び／又は含まれるプロトコル情報に少なくとも部分的に基づいてもよい。例えば、プロトコル情報は、前述のプロトコル情報と同様のものでもよい。例えば、データ通信システム410は、データのブロックのソースアドレスに基づいてデータのブロックの優先度を決定してもよい。他の例として、データ通信システム410は、データのブロックを通信するために使用されるトランスポートプロトコルに基づいてデータのブロックの優先度を決定してもよい。例えば、データの優先度はまた、データ内容に少なくとも部分的に基づいて決定されてもよい。
【００８１】
例えば、データの優先付けは、QoSを提供するために使用されてもよい。例えば、データ通信システム410は、戦術データネットワークで受信したデータの優先度を決定してもよい。例えば、優先度は、データのソースアドレスに基づいてもよい。例えば、データ通信システム410が属する小隊と同じ小隊のメンバの無線機からのデータのソースIPアドレスは、異なる動作領域の異なる部の部隊から生じたデータより高い優先度を与えられてもよい。優先度は、データ通信システム410による次の通信のために、複数のキューのうちどれにデータが配置されるかを決定するために使用されてもよい。例えば、高優先度のデータは、高優先度のデータを保持することを目的としたキューに配置されてもよく、次に、データ通信システム410は、何のデータを次に通信するかを決定するときに、高優先度のキューを最初に探してもよい。
【００８２】
データは、１つ以上のルールに少なくとも部分的に基づいて優先付けされてもよい。前述のように、例えば、ルールはユーザ定義でもよく、及び／又はシステム及び／又は動作上の制約に基づいてプログラムされてもよい。特定の実施例では、例えば、ルールは、XMLにより記述されてもよく、及び／又はカスタムDLLを介して提供されてもよい。例えば、ルールは、１つのプロトコルを使用して受信したデータが、他のプロトコルを利用したデータより有利に扱われることを指定してもよい。例えば、コマンドデータは、ルールを介して、他のプロトコルを使用して送信された位置測定データの上の優先度を与えられる特定のプロトコルを利用してもよい。他の例として、ルールは、第１の範囲のアドレスから生じる位置測定データが第２の範囲のアドレスから生じる位置測定データの上の優先度を与えられ得ることを指定してもよい。例えば、第１の範囲のアドレスは、それで動作するデータ通信システム410の飛行機と同じ戦隊の他の飛行機のIPアドレスを表してもよい。例えば、第２の範囲のアドレスは、異なる動作領域にある（従って、データ通信システム410が動作している飛行機にとってあまり関心がない）他の飛行機のIPアドレスを表してもよい。
【００８３】
特定の実施例では、優先付けされるデータは破棄されない。すなわち、データは低優先度でもよいが、データ通信システム410により破棄されない。むしろ、潜在的に受信した高優先度のデータの量に応じて、データは長期間に遅延されてもよい。
【００８４】
特定の実施例では、例えば、モード又はプロファイルインジケータは、データ通信システム410の現在のモード又は状態を表してもよい。前述のように、利用可能な帯域の最適化、情報優先度の設定、及びネットワークでのデータリンクの管理のようなスループット管理機能を実行するために、ルール及びモード又はプロファイルが使用されてもよい。例えば、異なるモードは、ルール、モード、及び／又はデータ転送における変化に影響を及ぼしてもよい。モード又はプロファイルは、特定のネットワーク健康状態又は状況への動作上の必要性に関する一式のルールを含んでもよい。例えば、データ通信システム410は、“進行中”に新しいモードを規定して切り替えることを含み、モードの動的な再構成を提供してもよい。
【００８５】
特定の実施例では、データの優先付けは、他のアプリケーションに対してトランスペアレントである。例えば、データ通信システム410により実行される処理、構成及び／又は優先付けは、１つ以上のソースノード420又は他のアプリケーション若しくはデータソースにトランスペアレントでもよい。例えば、データ通信システム410と同じシステム又はデータ通信システム410に接続されたソースノード420で動作するアプリケーションは、データ通信システム410により実行されるデータの優先付けを認識しなくてもよい。
【００８６】
ステップ640において、システム又はプロトコルコマンド（トランスポートプロトコルのオープン又はクローズコマンド等）がキューに入れられる。従って、プロトコル機構（TCPクローズコマンド等）は、データと共に１つ以上のキューに格納されるように操作されてもよい。特定の実施例では、接続のクローズコマンドは、接続に関連するデータと同じキューに格納されてもよい。代替として、コマンドは、関連のデータと異なるキューに格納されてもよい。
【００８７】
ステップ650において、データがキューから出される。例えば、データは、キューから出されて送信されてもよい。例えば、キューから出されたデータは、ステップ620において受信したデータでもよい。例えば、キューから出されたデータは、ステップ630においてキューに入れられたデータでもよい。前述のように、送信前及び／又は送信中に、データは優先付けされてもよい。例えば、データは、データ通信システム410から通信されてもよい。例えば、データは、１つ以上の宛先ノード430に通信されてもよい。例えば、データは、１つ以上のリンクで通信されてもよい。例えば、データは、データ通信システム410により戦術データネットワークで無線機に通信されてもよい。他の例として、データは、プロセス間通信機構により同じシステムで動作するアプリケーションにデータ通信システム410により提供されてもよい。例えば、データはTCPソケット接続を介して送信されてもよい。
【００８８】
ステップ660において、コマンドがキューから出される。例えば、コマンドは、ステップ640においてキューに入れられたコマンドでもよい。特定の実施例では、コマンドに関連するデータ及び／又はコマンドに関連する接続がキューから出されて送信された後に、コマンドがキューから出される。例えば、クローズ接続コマンドは、接続に関連するデータがキューから出されて接続を介して送信された後にキューから出されてもよい。
【００８９】
例えば、方法600の１つ以上のステップは、単独で、又は様々な形式のハードウェア、ファームウェアの組み合わせで、及び／又はソフトウェアの一式の命令として実装されてもよい。特定の実施例は、汎用コンピュータ又は他の処理装置で実行するコンピュータ可読媒体（メモリ、ハードディスク、DVD又はCD等）に存在する一式の命令として提供されてもよい。
【００９０】
本発明の特定の実施例は、１つ以上の前述のステップを省略してもよく、及び／又は記載の順序と異なる順序でステップを実行してもよい。例えば、本発明の或る実施例では、いくつかのステップは実行されなくてもよい。更なる例として、特定のステップは、前述のものと異なる時間的順序で（同時も含む）実行されてもよい。
【００９１】
従って、本発明の特定の実施例は、データとQoSのプロトコル機構コマンドとをキューに入れるシステム及び方法を提供する。特定の実施例は、QoS及びデータ送信が接続について完了する前に、接続がプロトコルコマンドにより時期尚早にクローズされないことを確保することに役立つ技術的効果を提供する。
【図面の簡単な説明】
【００９２】
【図１】ここに記載の技術の実施例で動作する戦術通信ネットワーク環境
【図２】ここに記載の技術の実施例による７レイヤのOSIネットワークモデルにおけるデータ通信システムの位置
【図３】ここに記載の技術の実施例によるデータ通信システムを使用して容易になる複数ネットワークの例
【図４】本発明の実施例で動作するデータ通信環境
【図５】ここに記載の技術の実施例に従ってトランスポートレイヤの上で動作するQoSのキューシステムの例
【図６】本発明の実施例によるデータ通信方法のフローチャート
【図１】
2009535989.tif 000003
【図２】
2009535989.tif 000004
【図３】
2009535989.tif 000005
【図４】
2009535989.tif 000006
【図５】
2009535989.tif 000007
【図６】
2009535989.tif 000008
【手続補正書】
【提出日】平成20年12月26日(2008.12.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークで第１のノードと第２のノードとの間の接続をオープンし、前記第１のノードと前記第２のノードとの間でデータを通信し、
トランスポートプロトコルコマンドが前記データの通信が完了した後に処理されるように、前記接続を介して前記第１のノードと前記第２のノードとの間で通信される前記データに関して、トランスポートプロトコルコマンドがトランスポートプロトコルコマンドの到達順序に拘らず前記データの前に処理されることを抑制することを有するデータ通信方法。
【請求項２】
前記抑制するステップは、前記データが前記第１のノードと前記第２のノードとの間で通信された後に前記トランスポートプロトコルコマンドが前記接続に関して実行されるように、前記データの後ろに前記トランスポートプロトコルコマンドをキューに入れることを更に有する、請求項１に記載の方法。
【請求項３】
前記抑制するステップは、前記ネットワークのトランスポートプロトコルレイヤを操作し、前記データに関して前記トランスポートプロトコルコマンドを保持することを更に有する、請求項１に記載の方法。
【請求項４】
トランスポートプロトコルレイヤで前記データを保持し、前記接続を介した前記第１のノードから前記第２のノードへの前記データの通信を優先付けることを更に有する、請求項１に記載の方法。
【請求項５】
前記接続は、伝送制御プロトコル（TCP）接続を有する、請求項１に記載の方法。
【請求項６】
前記ネットワークは、前記ネットワークが動作する環境により制約される帯域を有する戦術データネットワークを有する、請求項１に記載の方法。
【請求項７】
前記トランスポートプロトコルコマンドは、クローズ接続コマンドを有する、請求項１に記載の方法。
【請求項８】
処理装置で実行する一式の命令を有するコンピュータ可読媒体であって、
前記一式の命令は、
第１のノードと第２のノードとの間でトランスポート接続を確立し、前記第１のノードと前記第２のノードとの間でデータを通信する接続ルーチンと、
ネットワークトランスポートレイヤで動作し、前記トランスポート接続を介して前記第１のノードと前記第２のノードとの間で通信される前記データに関して、トランスポートプロトコルコマンドがトランスポートプロトコルコマンドの到達順序に拘らず前記データの前に処理されることを抑制する保持ルーチンと
を有し、前記トランスポートプロトコルコマンドは、前記データの通信が完了した後に処理されるコンピュータ可読媒体。
【請求項９】
前記保持ルーチンは、前記データが前記第１のノードと前記第２のノードとの間で通信された後に前記トランスポートプロトコルコマンドが前記トランスポート接続に関して実行されるように、前記データの後ろに前記トランスポートプロトコルコマンドをキューに入れる、請求項８に記載の一式の命令。
【請求項１０】
前記トランスポート接続に関して前記データと前記トランスポートプロトコルコマンドとをキューに入れるキュールーチンを更に有する、請求項８に記載の一式の命令。
【国際調査報告】
2009535989.tif 000009