(57)【特許請求の範囲】
【請求項１】
ネットワークを介してデータを通信する方法であって、前記方法は、
ソフトウエアアプリケーションから送信するために第１のデータ・パケットを受信する段階、
前記第１のデータ・パケットが制限された帯域幅の通信ネットワークに向かうかを決定する段階、
前記第１のデータ・パケットが前記制限された帯域幅の通信ネットワークに向かうと決定された場合、前記第１のデータ・パケットを第１のデータ通信サブシステムに通信する段階、
前記第１のデータ通信サブシステムによって、前記第１のデータ・パケットのサイズをデータ・パケット・サイズの基準と比較する段階、
前記第１のデータ・パケットのサイズが前記データ・パケット・サイズの基準を満たさない場合に、前記第１のデータ通信サブシステムによって、前記第１のデータ・パケットをセグメント化し、複数のセグメント化されたデータ・パケットを生成する段階、
前記複数のセグメント化されたデータ・パケットを、前記第１のデータ通信サブシステムから第２のデータ通信サブシステムへ送信する段階、
アプリケーションへ渡すために、前記複数のセグメント化されたデータ・パケットを前記第２のデータ通信サブシステムによって前記第１のデータ・パケットに再構成する段階、及び、
前記第１のデータ・パケットが前記制限された帯域幅の通信ネットワークに向かわないと決定された場合、前記第１のデータ・パケットを前記第１のデータ通信サブシステムから選択的にバイパスする段階、
を有する方法。
【請求項２】
前記送信する段階は、前記複数のセグメント化されたデータ・パケットと第２のデータ・パケットの少なくとも１つのセグメントとの送信をインターリーブする段階を更に有する、請求項１に記載の方法。
【請求項３】
モードに基づき、前記ネットワークを介して通信されるべき前記複数のセグメント化されたデータ・パケットを優先度付けする段階、を更に有し、
前記インターリーブする段階は、前記モードに少なくとも部分的に基づき、
前記モードは、前記ネットワークの少なくとも１つの状態及び前記第１のノードの動作環境を表す、請求項２に記載の方法。
【請求項４】
ネットワークを介してサービス品質を提供するデータ通信システムであって、前記システムは、
少なくとも１つの電気回路であって、
第１のパケットをソフトウエアアプリケーションから受信し、
前記第１のデータ・パケットが制限された帯域幅の通信ネットワークに向かうかを決定する、電気回路、
通信ネットワークであって、
前記第１のデータ・パケットが前記制限された帯域幅の通信ネットワークに向かうと決定された場合、前記第１のデータ・パケットを第１のデータ通信サブシステムに通信する、通信ネットワーク、
を有し、
前記第１のデータ通信サブシステムは、データ・パケット・サイズの閾値に基づき、前記第１のデータ・パケットを複数のセグメント化されたデータ・パケットにセグメント化し、前記複数のセグメント化されたデータ・パケットを、第２のデータ通信サブシステムへ送信し、
第２のデータ通信サブシステムは、前記複数のセグメント化されたデータ・パケットを受信し、アプリケーションへ渡すために、前記複数のセグメント化されたデータ・パケットを前記第１のデータ・パケットに再構成し、
前記第１のデータ・パケットが前記制限された帯域幅の通信ネットワークに向かわないと決定された場合、前記第１のデータ・パケットを前記第１のデータ通信サブシステムから選択的にバイパスする、
システム。
【請求項５】
前記第２のデータ通信サブシステムは、前記複数のセグメント化されたデータ・パケットのそれぞれに関連付けられた識別子に基づき、前記複数のセグメント化されたデータ・パケットを前記第１のデータ・パケットに再構成する、請求項４に記載のシステム。
【請求項６】
ネットワーク上のデータ通信を容易化するプログラムであって、
前記第１のデータ・パケットが制限された帯域幅の通信ネットワークに向かうかを決定する段階、
前記第１のデータ・パケットが前記制限された帯域幅の通信ネットワークに向かうと決定された場合、前記第１のデータ・パケットを第１のデータ通信サブシステムに通信する段階、
前記第１のデータ・パケットのサイズをデータ・パケット・サイズの基準と比較する段階、
前記第１のデータ・パケットのサイズが前記データ・パケット・サイズの基準を超えている場合に、複数のセグメント化されたデータ・パケットを生成するために、前記第１のデータ・パケットをセグメント化する段階、
前記複数のセグメント化されたデータ・パケットを、前記第１のデータ通信サブシステムから第２のデータ通信サブシステムへ送信し、そこで、前記複数のセグメント化されたデータ・パケットが前記第１のデータ・パケットに再構成される段階、及び
前記第１のデータ・パケットが前記制限された帯域幅の通信ネットワークに向かわないと決定された場合、前記第１のデータ・パケットを前記第１のデータ通信サブシステムから選択的にバイパスする段階、
をコンピュータに実行させる命令を有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書に記載される技術は、一般に通信ネットワークに関する。より詳細には、本願明細書に記載される技術は、データ通信のサービス品質をフィルタリングするプロトコルのシステム及び方法に関する。
【背景技術】
【０００２】
通信ネットワークは、種々の環境で利用される。通信ネットワークは、標準的に、１又は複数のリンクにより接続された２以上のノードを有する。一般に、通信ネットワークは、２以上の参加ノードの間のリンクを介した通信を支援し、通信ネットワークでノードを仲介するために用いられる。ネットワークには多くの種類のノードが存在しうる。例えば、ネットワークは、クライアント、サーバー、ワークステーション、スイッチ、及び／又はルーターのようなノードを有してよい。リンクは、例えば電話回線、配線、イーサーネット・リンク、非同期転送モード（ＡＴＭ）回路、衛星リンク、及び／又は光ファイバー・ケーブルを介したモデム接続であってよい。
【０００３】
通信ネットワークは、実際には１又は複数の更に小さい通信ネットワークを有してよい。例えば、インターネットは、屡々コンピューター・ネットワークを相互接続したネットワークとして記述される。各ネットワークは、異なるアーキテクチャ及び／又はトポロジーを用いてよい。例えば、あるネットワークは、スター型のトポロジーを有するスイッチ型イーサネット・ネットワークであってよい。また別のネットワークは、ＦＤＤＩ（Fiber-Distributed  Data  Interface）リングであってよい。
【０００４】
通信ネットワークは、種々のデータを伝達しうる。例えば、ネットワークは、双方向の実時間の対話のためのデータと平行してバルク・ファイルの転送を実行してよい。ネットワークで送信されるデータは、屡々パケット、セル、又はフレームの形式で送信される。或いは、データはストリームとして送信されてよい。幾つかの例では、データのストリーム又はフローは、実際にはパケットのシーケンスであってよい。インターネットのようなネットワークは、種々のノードの間に用途の広い、及び異なる要件を備えたありとあらゆるデータを伝達するデータ経路を提供する。
【０００５】
ネットワークを介した通信は、標準的に複数のレベルの通信プロトコルと関連する。プロトコル・スタックは、ネットワーク・スタック又はプロトコル・スーツとも称され、通信に用いられるプロトコルの集合を示す。各プロトコルは、特定の種類の能力に焦点を合わせるか、又は通信を形成する。例えば、あるプロトコルは、銅線により接続された装置との通信に必要な電気信号に関連する。別のプロトコルは、例えば多くの仲介ノードにより隔てられた２つのノードの間の順序付け及び信頼性の高い伝送を解決する。
【０００６】
プロトコル・スタックの中のプロトコルは、標準的に階層構造の中に存在する。屡々、プロトコルは層に分類される。プロトコルの層についてのある参照モデルは、開放型システム間相互接続（ＯＳＩ）モデルである。ＯＳＩ参照モデルは、７つの層を有する。つまり、物理層、データ・リンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、及びアプリケーション層である。物理層は「最下位」層であり、アプリケーション層は「最上位」層である。２つの良く知られたトランスポート層プロトコルは、通信制御プロトコル（ＴＣＰ）及びユーザー・データグラム・プロトコル（ＵＤＰ）である。良く知られたネットワーク層プロトコルは、インターネット・プロトコル（ＩＰ）である。
【０００７】
送信ノードでは、送信されるべきデータは、プロトコル・スタックの層を最上位から最下位へと下へ渡される。反対に、受信ノードでは、データは層を最下位から最上位へと上へ渡される。各層では、データは、その層で通信を処理するプロトコルにより操作されうる。例えば、トランスポート層プロトコルは、宛先ノードに到着したときにパケットを順序付けることが可能なように、データにヘッダーを付加してよい。アプリケーションに依存して、幾つかの層は用いられず、又は存在せず、データは単に通過するだけでよい。
【０００８】
ある種の通信ネットワークは、軍事用データ・ネットワークである。軍事用データ・ネットワークは、軍事用通信ネットワークとも称される。軍事用データ・ネットワークは、軍隊（例えば、陸軍、海軍、及び／又は空軍）のような組織内の部隊により用いられる。軍事用データ・ネットワーク内のノードは、例えば、個々の軍人、航空機、指揮部隊、衛星、及び／又はラジオを含んでよい。軍事用データ・ネットワークは、音声、位置の遠隔計測、センサー・データ、及び／又は実時間のビデオのようなデータを通信するために用いられてよい。
【０００９】
以下に軍事用データ・ネットワークがどのように利用されるかという例を記載する。物流部隊は、戦場の戦闘部隊への補給品を提供する途中であってよい。物流部隊と戦闘部隊の両者は、衛星無線リンクを介して指揮所へ位置の遠隔測定を提供してよい。無人機（ＵＡＶ）は、物流部隊が辿った道に沿って巡回し、衛星無線リンクを介して実時間のビデオ・データを指揮所へ送信してよい。指揮所では、分析専門家がビデオ・データを検査し、同時に制御装置がＵＡＶに道の特定区間のビデオを提供させてよい。分析専門家は、次に、ＵＡＶが接近している簡易爆発物（ＩＥＤ）を発見し、直接無線リンクを介し物流部隊へ停止するよう命令を送出し、物流部隊にＩＥＤの存在を警告してよい。
【００１０】
軍事用データ・ネットワークの中に存在する種々のネットワークは、種々の異なるアーキテクチャと特性を有してよい。例えば、指揮部隊のネットワークは、ギガビット・イーサネット・ローカル・エリア・ネットワーク（ＬＡＮ）と共に、遙かに低いスループットと高い待ち時間を備えた衛星及び戦場の部隊への無線リンクを有してよい。戦場の部隊は、衛星、及び直接経路の無線周波数（ＲＦ）の両方を介して通信してよい。
【００１１】
データは、データの性質及び／又はネットワークの特定の物理的特性に依存して、ポイント・ツー・ポイント、マルチキャスト、又はブロードキャストで送信されてよい。ネットワークは、例えばデータを中継するために設置されたラジオを有してよい。
【００１２】
更に、ネットワークは、長距離通信を可能にする高周波数（ＨＦ）ネットワークを有してよい。例えば、マイクロ波ネットワークも用いられてよい。リンク及びノードの種類の多様性により、特に、軍事用ネットワークは、屡々非常に複雑なネットワーク・アドレス付与方式及びルーティング・テーブルを有する。更に、無線に基づくネットワークのような幾つかのネットワークは、バーストを用いて動作しうる。つまり、連続的にデータを送信するのではなく、周期的にデータのバーストを送信する。これは、１つのラジオが全ての参加者により共有される特定のチャンネルでブロードキャストしているので、及び同時に１つのラジオが送信するので、有用である。
【００１３】
軍事用データ・ネットワークは、一般に帯域幅が制限される。つまり、標準的に、任意の時間点において利用可能な帯域幅よりも多くの通信されるべきデータが存在する。これらの制約は、例えば帯域幅に対する供給を超えた要求によるか、及び／又は利用可能な通信技術がユーザーの必要を満たすために十分な帯域を供給しないことによる。
【００１４】
例えば、幾つかのノードの間で、帯域幅はキロビット／秒の程度であってよい。帯域幅の制限された軍事用データ・ネットワークでは、重要度の低いデータがネットワークを渋滞させ、より重要なデータがタイムリーに通過するのを妨げるか、又は受信ノードに全く到着しない。更に、一部のネットワークは、信頼性の低いリンクを補償するため、内部バッファーを有してよい。これは、追加の遅延を引き起こしうる。更に、バッファーが一杯になると、データが落ちてしまう。
【００１５】
多くの場合には、ネットワークに利用可能な帯域幅は、増大することができない。例えば、衛星通信リンクを介して利用可能な帯域幅は、固定され、別の衛星を配備することなく増大させることは事実上できない。このような状況では、帯域幅は、需要を処理するために、単に拡張されるのではなく管理されなければならない。大規模システムでは、ネットワーク帯域幅は、重要な資源である。
【００１６】
アプリケーションは可能な限り効率的に帯域幅を利用することが望ましい。更に、帯域幅が限られている場合に、アプリケーションは「パイプを詰まらせること」、つまりデータでリンクに負担をかけることを避けることが望ましい。帯域幅の割り当てが変化する場合、アプリケーションが反応することが望ましい。帯域幅は、例えばサービス品質、妨害電波、信号障害、優先度の再割り当て、及び見通し距離により動的に変化しうる。ネットワークは、非常に不安定であり、利用可能な帯域幅は動的に且つ予告なく変化しうる。
【００１７】
帯域幅の制限に加え、軍事用データ・ネットワークは高い待ち時間を経験しうる。例えば、衛星リンクを介した通信を含むネットワークは、２分の１以上の程度の待ち時間を生じうる。幾つかの通信では、これは問題ではない。しかし、実時間、双方向通信（例えば、音声通信）のような他の通信では、可能な限り待ち時間を最小化することが望ましい。
【００１８】
多くの軍事用データ・ネットワークに共通する別の特性は、データ損失である。データは、種々の理由により失われうる。例えば、送信すべきデータを有するノードは損傷又は破壊されうる。
【００１９】
別の例として、宛先ノードは、ネットワークから一時的に脱落しうる。これは、例えば、ノードが範囲から出てしまったため、通信のリンクが妨害されたため、及び／又はノードが窮地に陥ったために生じうる。データは、宛先ノードがデータを受信できないため、及び中間ノードが、宛先ノードが利用可能になるまでにデータをバッファーするための十分な容量を有しないため、失われうる。更に、中間ノードは、データを全くバッファーしなくてよく、代わりにデータのバッファーを送信ノードに任せ、データが宛先ノードに実際に到着したか否かを決定してよい。
【００２０】
屡々、軍事用データ・ネットワークのアプリケーションは、ネットワークの特定の特性に気付かず、及び／又は当該特性を考慮しない。例えば、アプリケーションは、アプリケーションが必要とするだけ利用可能な帯域幅を有すると単に想定してよい。
【００２１】
別の例として、アプリケーションは、データがネットワークで失われないと仮定してよい。実行されている通信に固有の特性を考慮しないアプリケーションは、実際に問題を悪化させるように動作しうる。例えば、アプリケーションは、より大きな塊で少ない頻度で且つ効率的に送信されうるデータ・ストリームを連続的に送信してよい。連続的なストリームは、例えば事実上他のノードの通信を不足させる放送ラジオ・ネットワークで非常に大きいオーバーヘッドを生じうる。一方で、頻度の少ないバーストは、共有帯域幅をより効率的に使用することを可能にする。
【００２２】
特定のプロトコルは、軍事用データ・ネットワークを介して良好に機能しない。例えば、ＴＣＰのようなプロトコルは、ネットワークが直面する高損失レート及び待ち時間のため、無線に基づく軍事用ネットワークで良好に機能しない。ＴＣＰは、データを送信するため、幾つかの形式のハンドシェーク及び受信確認を要求する。高い待ち時間及び損失は、結果としてＴＣＰにタイムアウトを起こし、非常に重要なデータがあってもこのようなネットワークを介して送信することができない。
【００２３】
軍事用データ・ネットワークと通信される情報は、屡々、ネットワークの他のデータに対し種々のレベルの優先度を有する。例えば、航空機の危険警告受信機は、地上の数マイル離れた部隊の遠隔測位情報よりも優先度が高い。別の例では、指令部からの交戦に関する命令は、味方の物流の通信より優先度が高い。優先度のレベルは、送信側及び／又は受信側の個々の状況に依存する。例えば、遠隔測位データは、部隊が活発に戦闘に従事しているときは、部隊が単に標準的な巡回経路を辿っているときよりも優先度が高い。同様に、ＵＡＶからの実時間ビデオ・データは、目標領域にあるときには、単に経路上にあるときよりも優先度が高い。
【００２４】
ネットワークを介してデータを分配するための複数の方法がある。１つの方法は、多くの通信ネットワークにより用いられる「ベスト・エフォート型」の方法である。つまり、通信されているデータは、容量、待ち時間、信頼性、順序、及びエラーに関する他の要求を前提として、ネットワークが処理できるだけ処理される。従って、ネットワークは、如何なる又は全ての所与のデータも適時に宛先に到着することを保証しない。従って、データが送信された順序で到着する、又はデータ内の１又は複数のビットを変化させる送信エラーを伴わないという如何なる保証もない。
【００２５】
別の方法は、サービス品質（ＱｏＳ）である。ＱｏＳは、伝達されるデータに関する種々の形式の保証を提供するための、ネットワークの１又は複数の能力を表す。例えば、ＱｏＳに対応するネットワークは、データ・ストリームに特定量の帯域幅を保証する。別の例では、ネットワークは、２つの特定のノード管のパケットが特定の最大待ち時間を有することを保証する。このような保証は、２つのノードがネットワークを介して会話をする２人の人間である音声通信の場合に有用である。このような場合のデータ分配の遅延は、例えば通信中の不愉快な間隔及び／又は静寂を生じる。
【００２６】
ＱｏＳは、選択されたネットワーク・トラフィックに、より良好なサービスを提供するためのネットワークの能力と考えられる。ＱｏＳの主な目的は、専用の帯域幅、（実時間及び双方向トラフィックにより要求される）制御されたジッター及び待ち時間、並びに改善された損失特性を含む優先度を提供することである。別の重要な目的は、１つのフローのために優先度を提供することが、他のフローに障害を生じさせないことを保証することである。つまり、次のフローに対する保証は、既存のフローに対する保証を中断させてはならない。
【００２７】
ＱｏＳのこの方法は、屡々、ネットワーク内の各ノードがＱｏＳに対応することを要求し、又は少なくとも特定の通信に関与するネットワーク内の各ノードがＱｏＳに対応することを要求する。例えば、現在のシステムでは、２つのノード間の待ち時間を保証する目的で、当該２つのノード間でトラフィックを伝達する各ノードは、当該保証を知っていて合意しており、且つ合意する能力がなければならない。
【００２８】
ＱｏＳを提供する複数の方法がある。１つの方法は、イントサーブ又は「ＩｎｔＳｅｒｖ」である。ＩｎｔＳｅｒｖは、ネットワーク内の各ノードがサービスに対応し、接続が確立したときに当該サービスが予約されるＱｏＳシステムを提供する。ＩｎｔＳｅｒｖは、各ノードに維持されなければならない大量の状態情報、及び当該接続の確立に関連するオーバーヘッドのために、十分に拡張できない。
【００２９】
ＱｏＳを提供する別の方法は、ディフサーブ又は「ＤｉｆｆＳｅｒｖ」である。ＤｉｆｆＳｅｒｖは、インターネットのようなネットワークのベスト・エフォート型サービスを強化するサービス・クラスのモデルである。ＤｉｆｆＳｅｒｖは、ユーザー、サービス要件、及び他の基準によりトラフィックを差別化する。次に、ＤｉｆｆＳｅｒｖは、ネットワーク・ノードが優先待ち行列、又は帯域幅割り当てを介して、或いは特定のトラフィック・フローのために専用の経路を選択することにより、異なるレベルのサービスを提供するよう、パケットをマーク付けする。標準的に、ノードは、サービス・クラス毎に種々の待ち行列を有する。ノートは、次に、当該待ち行列から送出すべき次のパケットを、クラス種別に基づき選択する。
【００３０】
既存のＱｏＳの方法は、屡々、ネットワークに固有であり、各ネットワークの種類又はアーキテクチャは異なるＱｏＳ設定を要求する。既存のＱｏＳの方法が利用する機構により、現在のＱｏＳシステムで同じように見えるメッセージは、実際には、メッセージの内容に基づき異なる優先度を有する。
【００３１】
しかしながら、データの消費者は、低い優先度のデータにより溢れることなく、高い優先度のデータにアクセスすることを望む。既存のＱｏＳシステムは、トランスポート層でメッセージの内容に基づきＱｏＳを提供することができない。
【００３２】
上述のように、既存のＱｏＳの方法では、少なくとも特定の通信に関与するノードがＱｏＳに対応する必要がある。しかしながら、ネットワークの「エッジ」にあるノードは、全てを保証する能力がない場合でも、ＱｏＳを幾らか向上させるために用いられる。ノードは、通信に参加している（つまり、送信側ノード及び／又は受信側ノードである）場合に、及び／又はネットワーク内のネックにある場合に、ネットワークのエッジにあると考えられる。
【００３３】
ネックは、全てのトラフィックが別の部分へ渡される、ネットワークの部分である。例えば、ＬＡＮから衛星リンクへのルーター又はゲートウェイは、ＬＡＮから当該ＬＡＮにない任意のノードへの全てのトラフィックが、衛星リンクへ行くためにゲートウェイを通過しなければならないので、ネックである。
【００３４】
現在のネットワーク・リンクの設計は、面倒であり難解である。ネットワーク・リンクの設計の動的な「オンザフライ」の変化も難解である。アプリケーションは、最良の通信経路及び所与の運用シナリオのためのスループットの最適化メカニズムを選択するのではなく、特定の通信経路を用いる。標準的に、トランザクション、プロトコル、及び通信経路は、一緒に纏められ、リンクが伝達する情報から通信リンクを取り出せない。実装は、屡々、ＯＳＩネットワーク・モデルの種々の層を崩し又は結合する。多くのネットワークは、ネットワークが参加者の特定のグループのために設計されることを要求する。ネットワークは静的であり、小さい変更でさえ相当の作業のやり直しを必要とする。例えば、現在の軍事用通信リンク（例えば、ＵＡＶ）は、衛星通信リンクから見通し無線リンクへの切り替えに有意なオペレーターの介在を必要とする。
【発明の概要】
【発明が解決しようとする課題】
【００３５】
帯域の制限されたネットワークを介して送信される大きなパケットは、データが送信されている間に有意な遅延を生じる。無線周波数共有ネットワークでは、データ伝送遅延は、他のユーザーをデータを送信するまでに長い時間待たせる。
【００３６】
従って、データ伝送及び共有のための改良されたシステム及び方法が必要である。
【００３７】
既存のデータのセグメント化及び再構成は、ネットワーク層より下位で行われ、一般的に少なくとも１０００バイトのパケットを提供する。非同期転送モード（ＡＴＭ）は、ＯＳＩモデルの第２層でパケット毎に約３２バイトのセグメント化及び再構成を提供する。インターネット・プロトコル（ＩＰ）は、１５００バイトの大きさにパケットをセグメント化する。帯域幅の制限されたネットワークでは、このパケット・サイズでも依然として大きく、大きいパケットが処理される場合にはネットワーク内の全てのノードに有意な伝送遅延を生じる。
【００３８】
従って、軍事用データ・ネットワークでＱｏＳを提供するシステム及び方法が必要である。軍事用データ・ネットワークのエッジでＱｏＳを提供するシステム及び方法が必要である。更に、軍事用データ・ネットワークで、適応型の設定可能なＱｏＳシステム及び方法が必要である。
【課題を解決するための手段】
【００３９】
本発明の実施例は、ネットワークを介したデータ通信のためのシステム及び方法を提供する。特定の実施例は、ネットワークを介したデータ通信の方法を提供する。方法は、送信のために第１のデータ・パケットを受信する段階を有する。方法は、第１のデータ・パケットのサイズをデータ・パケットのサイズの基準と比較する段階を有する。方法は、第１のデータ・パケットの大きさがデータ・パケットのサイズの基準を満たさなかった場合に、第１のデータ・パケットをセグメント化し、複数のセグメント化されたデータ・パケットを生成する段階、を更に有する。方法は、複数のセグメント化されたデータ・パケットを送信する段階を有する。更に、方法は、アプリケーションに渡すために、複数のセグメント化されたデータ・パケットを第１のデータ・パケットに再構成する段階を有する。
【００４０】
特定の実施例は、ネットワークを介したサ―ビス品質を提供するデータ通信システムを提供する。システムは、第１のデータ通信サブシステム及び第２のデータ通信サブシステムを有する。第１のデータ通信サブシステムは、送信するための第１のデータ・パケットを受信する。データ通信サブシステムは、データ・パケット・サイズの閾に基づき、第１のデータ・パケットを複数のセグメント化されたデータ・パケットにセグメント化する。第２のデータ通信サブシステムは、複数のセグメント化されたデータ・パケットを受信する。第２のデータ通信サブシステムは、アプリケーションに渡すために、複数のセグメント化されたデータ・パケットを第１のデータ・パケットに再構成する。
【００４１】
特定の実施例は、処理装置で実行される命令セットを有するコンピューター可読媒体を提供する。命令セットは、第１のデータ・パケットのサイズをデータ・パケット・サイズの基準と比較し、第１のデータ・パケットのサイズがデータ・パケット・サイズの基準を超えていた場合に、第１のデータ・パケットをセグメント化して複数のセグメント化されたデータ・パケットを生成するセグメント化ルーチンを有する。命令セットは、複数のセグメント化されたデータ・パケットを送信する送信ルーチンを更に有する。命令セットは、複数のセグメント化されたデータ・パケットを再構成する再構成ルーチンを更に有する。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施例により動作する軍事用通信ネットワークの環境を図示する。
【図２】本発明の実施例と関連するデータ通信システムの、７層のＯＳＩネットワーク・モデルへの位置づけを示す。
【図３】本発明の実施例と関連するデータ通信システムを用いて実現された複数のネットワークの例を示す。
【図４】本発明の実施例により動作するデータ通信環境を図示する。
【図５】本発明の実施例に関連するデータを通信する方法のフロー図を示す。
【図６】本発明の実施例に関連するセグメント化及び再構成機能を備えたデータ通信システムを示す。
【発明を実施するための形態】
【００４３】
上述の手段、及び以下の本願明細書に記載される技術の特定の実施例の詳細な説明は、添付の図面を参照することにより一層理解される。本願明細書に記載される技術を説明する目的で、特定の実施例が図示された。しかしながら、本願明細書に記載される技術は、添付の図面に示された構成及び手段に限定されない。
【００４４】
図１は、本願明細書に記載される技術の実施例により動作する軍事用通信ネットワークの環境１００を図示する。ネットワーク環境１００は、複数の通信ノード１１０、１又は複数のネットワーク１２０、ノードとネットワークを接続する１又は複数のリンク１３０、及びネットワーク環境１００の構成要素の間で通信を実現する１又は複数の通信システム１５０、を有する。以下の議論では、ネットワーク環境１００は、１つより多いネットワーク１２０、及び１つより多いリンク１３０を含むと仮定する。しかしながら、他の環境も可能であり想定されることが理解されるだろう。
【００４５】
通信ノード１１０は、例えばラジオ、送信機、衛星、受信機、ワークステーション、サーバー、及び／又は他の計算装置若しくは処理装置であってよく、及び／又はそれらを有してよい。
【００４６】
ネットワーク１２０は、例えばノード１１０間でデータを送信するためのハードウェア及び／又はソフトウェアであってよい。ネットワーク１２０は、例えば１つ以上のノード１１０を更に有してよい。
【００４７】
接続１３０は、ノード１１０間及び／又はネットワーク１２０間の通信を可能にする有線及び／又は無線接続であってよい。
【００４８】
通信システム１５０は、例えばノード１１０、ネットワーク１２０、及びリンク１３０の間でデータ送信を実現するために用いられるソフトウェア、ファームウェア、及び／又はハードウェアを有してよい。図１に示されるように、通信システム１５０は、ノード１１０、ネットワーク１２０、及び／又はリンク１３０に対して実施される。ある実施例では、各ノード１１０は通信システム１５０を有する。ある実施例では、１又は複数のノード１１０が通信システム１５０を有する。ある実施例では、１又は複数のノード１１０が通信システム１５０を有さない。通信システム１５０は、データの動的管理を提供し、ネットワーク環境１００のような軍事用データ・ネットワークの通信を保証することを助ける。
【００４９】
図２に示されるように、ある実施例では、システム１５０はＯＳＩの７層のプロトコル・モデルの内のトランスポート層の一部及び／又はトランスポート層の上で動作する。システム１５０は、例えば、トランスポート層に渡される、軍事用ネットワークのデータを優先してよい。システム１５０は、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）のような単一のネットワークで、又は複数のネットワークに渡り通信を実現するために用いられる。
【００５０】
図３は複数のネットワークのシステムの例を示す。システム１５０は、例えば追加の帯域幅を加えるのではなく、利用可能な帯域幅を管理するために用いられる。
【００５１】
ある実施例では、システム１５０は、ソフトウェア・システムである。しかしながら、システム１５０は、種々の実施例では、ハードウェア構成要素とソフトウェア構成要素の両方を有してよい。システム１５０は、例えば独立したネットワークのハードウェアであってよい。つまり、システム１５０は、種々のハードウェア及びソフトウェア・プラットフォームで機能するよう適応されてよい。ある実施例では、システム１５０は、ネットワーク内部のノードではなく、ネットワークのエッジで動作する。しかしながら、システム１５０は、ネットワーク内の「ネック」のようなネットワーク内部で動作してもよい。
【００５２】
システム１５０は、利用可能な帯域幅を最適化する、情報の優先度を設定する、及びネットワーク内のデータ・リンクを管理する等の性能管理機能を実行するために、ルール及びモード又はプロファイルを用いてよい。
【００５３】
帯域幅の「最適化」とは、例えば１又は複数のネットワークでデータを通信するために用いられる帯域幅の効率を向上するために、記載された技術が用いられることを意味する。帯域幅を最適に使用することは、例えば、機能上、冗長なメッセージを除去すること、メッセージ・ストリーム管理又は順序付け、及びメッセージの圧縮を含む。情報の優先度を設定することは、例えばインターネット・プロトコル（ＩＰ）に基づく技術よりも高い精度でメッセージの種類を識別すること、及びデータ・ストリームのメッセージを選択されたルールに基づく順序付けアルゴリズムに基づき順序付けることを含む。
【００５４】
データ・リンク管理は、例えばルール、モード、及び／又はデータ伝送の変化に影響を与えるために、ネットワークに関する測定結果をルールに基づき分析することを含む。モード又はプロファイルは、健全さ又は状態のような特定のネットワーク状態に対する動作上の必要性に関連するルールのセットを含む。システム１５０は、オン・ザ・フライで新たなモードを定義すること及び新たなモードに切り替えることを含む、動的な「オン・ザ・フライ」のモードの再構成を提供する。
【００５５】
通信システム１５０は、例えば不安定な帯域幅の制限されたネットワークで、変動する優先度及びサービス程度を許容するよう構成される。システム１５０は、ネットワークの応答性能を向上し、通信の待ち時間を低減させるために、改善されたデータ・フローに対し情報を管理するよう構成される。更に、システム１５０は、通信の可用性、生存性、及び信頼性を改善するために高度化可能な及び拡張可能な柔軟なアーキテクチャにより相互接続性を提供する。システム１５０は、例えば所定の及び予測可能なシステム資源及び帯域幅を用いながら、動的に変化する環境に自律的に適応可能なデータ通信アーキテクチャに対応する。
【００５６】
ある実施例では、システム１５０は、ネットワークを用いたアプリケーションに対し透過的でありながら、帯域幅の制限された軍事用通信ネットワークに性能管理を提供する。システム１５０は、ネットワークの複雑性を低減しつつ、複数のユーザー及び環境に渡り性能管理を提供する。上述のように、ある実施例では、システム１５０は、７層のＯＳＩモデルの第４層（トランスポート層）の中で及び／又は第４層の上位のホスト・ノードで動作し、特殊なネットワーク・ハードウェアを必要としない。
【００５７】
システム１５０は、第４層のインターフェースに対し透過的に動作する。つまり、アプリケーションは、トランスポート層の標準的なインターフェースを利用し、システム１５０の動作を意に介さない。例えば、アプリケーションがソケットを開けると、システム１５０は、プロトコル・スタックのこの点でデータをフィルターする。システム１５０は、アプリケーションに例えばＴＣＰ／ＩＰソケットのインターフェースを使用させることにより、透過性を達成する。ＴＣＰ／ＩＰソケットのインターフェースは、システム１５０の専用インターフェースではなく、ネットワークの通信装置でオペレーティング・システムにより提供される。システム１５０は、例えば拡張マークアップ言語（ＸＭＬ）で記述され、及び／又は動的リンク・ライブラリ（ＤＬＬ）により提供される。
【００５８】
ある実施例では、システム１５０は、ネットワークのエッジでサービス品質（ＱｏＳ）を提供する。システムのＱｏＳ能力は、例えばコンテンツに基づくデータの優先順位付け、ルールに基づくデータの優先順位付けをネットワークのエッジで提供する。優先順位付けは、例えば差別化及び／又は順序付けを含む。システム１５０は、例えばユーザーが設定可能な差別化ルールに基づき、メッセージを待ち行列に振り分ける。メッセージは、ユーザーにより設定された順序付けルールにより記述された順序で（例えば、スタベーション、ラウンドロビン、相対頻度、等）、データ・ストリームで順序付けられる。ＱｏＳをエッジで使用することにより、従来のＱｏＳ手法では区別できなかったデータ・メッセージは、例えばメッセージの内容に基づき差別化される。ルールは、例えばＸＭＬで実装されてよい。
【００５９】
ある実施例では、ＸＭＬを超える能力を実現するため、及び／又は非常に短い待ち時間の要件に対応するため、システム１５０は、例えば動的リンク・ライブラリをカスタム・コードで提供してもよい。
【００６０】
ネットワークの入りデータ及び／又は出データは、システム１５０を介してカスタマイズされる。優先順位付けは、例えばクライアント・アプリケーションを大きいサイズの低い優先度のデータから保護する。システム１５０は、アプリケーションが確実にデータを受信し、個々の動作シナリオ又は制約に対応するよう支援する。
【００６１】
ある実施例では、帯域幅の制限された軍事用ネットワークへのインターフェースとしてルーターを含むＬＡＮにホストが接続されると、システムはＱｏＳとして知られる設定に従いプロキシとして動作する。この構成では、ローカルなＬＡＮへ向かうパケットは、システムを迂回し、直接にＬＡＮへ行く。システムは、ネットワークのエッジで、帯域幅の制限された軍事用リンクに向かうパケットに対しＱｏＳを適用する。
【００６２】
ある実施例では、システム１５０は、複数の動作シナリオ及び／又は環境に対し、指示されたプロファイルを切り替えることにより、動的な支援を提供する。プロファイルは、ユーザー又はシステムに指名されたプロファイルを変更させるよう名称又は他の識別子を含む。プロファイルは、１又は複数の識別子を含む。識別子は、例えば機能的な冗長性ルールの識別し、差別化ルールの識別子、アーカイブ・インターフェースの識別子、順序付けルールの識別子、送信前インターフェースの識別子、送信後インターフェースの識別子、伝送の識別子、及び／又は他の識別子である。機能的な冗長性ル―ルの識別子は、例えば古いデータ又は実質的に同一のデータから機能的な冗長性を検出するルールを特定する。差別化ルールの識別子は、例えば処理のためにメッセージを待ち行列に振り分けるルールを特定する。アーカイブ・インターフェースの識別子は、例えばアーカイブ・システムとのインターフェースを特定する。順序付けルールの識別子は、待ち行列の先頭のサンプルを制御する順序付けアルゴリズム、及びデータのデータ・ストリームへの順序付けを識別する。送信前インターフェースの識別子は、例えば符号化及び圧縮のような特定の処理を提供する送信前の処理のためのインターフェースを特定する。送信後インターフェースの識別子は、例えば復号化及び伸張のような特定の処理を提供する送信後の処理のためのインターフェースを特定する。伝送の識別子は、選択された伝送のためのネットワーク・インターフェースを特定する。
【００６３】
プロファイルは、例えば待ち行列のサイズに関する情報のような他の情報を含んでもよい。待ち行列のサイズに関する情報は、例えば待ち行列の数、各待ち行列に専用のメモリー及び二次記憶の量である。
【００６４】
ある実施例では、システム１５０は、帯域幅を最適化するためのルールに基づく方法を提供する。例えば、システム１５０は、待ち行列の選択ルールを用い、メッセージをメッセージ待ち行列に振り分け、メッセージがデータ・ストリーム上で優先度及び適切な相対頻度を割り当てられるようにする。システム１５０は、機能的な冗長性ルールを用い、機能的に冗長なメッセージを管理する。メッセージは、例えばネットワークで未だ送信されていない先行するメッセージと十分な（ルールにより定められる程の）違いがない場合、機能的に冗長である。つまり、新しいメッセージが供給されたが、既に送信されるようスケジュールされ未だ送信されていない古いメッセージと有意な差がない場合、新しいメッセージはドロップされる。何故なら、古いメッセージは機能的に等価な情報を伝達し、待ち行列内で先にあるからである。更に、多くの機能的な冗長性は、実際に重複するメッセージ、及び古いメッセージが送信される前に到着した新しいメッセージを含む。
【００６５】
例えば、ノードは、実施されているネットワークの特性により、フォールト・トレランスを目的として２つの異なる経路により送信されたメッセージのような、特定のメッセージの同一のコピーを受信する。
【００６６】
別の例では、新たなメッセージは、未だ送信されていない古いメッセージにとって代わるデータを含む。この状況では、システム１５０は、古いメッセージをドロップし、新しいメッセージのみを送信する。
【００６７】
システム１５０はまた、優先度順序付けルールを有し、データ・ストリーム内で優先度に基づくメッセージの順序を決定する。
【００６８】
更に、システム１５０は、送信処理ルールを有し、送信前及び送信後の特定の処理、例えば圧縮及び／又は符号化を提供する。
【００６９】
ある実施例では、システム１５０は、フォールト・トレランス機能を提供し、データの完全性及び信頼性を守る。例えば、システム１５０は、ユーザーの定めた待ち行列選択ルールを用い、メッセージを待ち行列に振り分ける。待ち行列の大きさは、例えばユーザーの定めた設定に従い定められる。設定は、例えば待ち行列が使用するメモリーの最大量を特定する。更に、設定は、ユーザーに、待ち行列がオーバーフローした場合に用いられる２次記憶の位置及び量を特定させてよい。待ち行列内のメモリーが一杯になった後、メッセージは２次記憶内の待ち行列に入れられる。２次記憶も一杯になると、システム１５０は、待ち行列内の最も古いメッセージを削除し、エラー・メッセージのログを採り、最も新しいメッセージを待ち行列に入れる。動作モードでアーカイブが可能な場合、待ち行列から外されたメッセージは、当該メッセージがネットワークへ送信されなかったことを示す表示と共に保管される。
【００７０】
システム１５０内の待ち行列のためのメモリー及び２次記憶は、例えば特定の用途のリンク毎に設定される。ネットワークの可用性の期間と期間の間の時間が長いほど、ネットワークの機能停止に対応するためのメモリー及び２次記憶の容量が大きくなる。システム１５０は、ネットワーク・モデル、シミュレーション・アプリケーションと統合され、例えば、機能停止と機能停止の間の時間が通常状態の保管に十分であるよう、及び最終的な待ち行列のオーバーフローを回避するのに十分なであるよう、待ち行列の大きさを適切に決定するのを支援する。
【００７１】
更に、特定の実施例では、システム１５０は、入り（「シェーピング」）及び出（「ポリシング」）データを計測する機能を提供する。ポリシング及びシェーピング機能は、ネットワーク内のタイミングの不一致を解決する。シェーピングは、ネットワーク・バッファーが、低優先度のデータの後ろに待ち行列に入れられた高優先度のデータが溢れるのを防ぐ。ポリシングは、アプリケーション・データの使用者が低優先度のデータでオーバーランするのを防ぐ。ポリシング及びシェーピングは、２つのパラメータ、つまり有効リンク速度及びリンク比により制御される。システム１５０は、例えばリンク比を乗算された有効リンク速度より速くないデータ・ストリームを形成する。パラメータは、ネットワークの変化に従い動的に変更される。システムは、検出したリンク速度でのアクセスを提供し、データ計測に関するアプリケーション・レベルの決定を支援する。システム１５０により提供される情報は、他のネットワーク動作情報と結合され、どのリンク速度が所与のネットワーク・シナリオに対し適切かを決定するのを支援する。
【００７２】
特定の実施例では、ＱｏＳは、ＯＳＩプロトコル・モデルのトランスポート層より上位の通信ネットワークに提供される。特に、ＱｏＳ技術は、トランスポート・プロトコル接続のソケット層の直下に実装される。例えば、プロトコルは、例えば送信制御プロトコル（ＴＣＰ）、ユーザー・データグラム・プロトコル（ＵＤＰ）、又はストリーム制御送信プロトコル（ＳＣＴＰ）を有する。別の例では、プロトコルの種類は、インターネット・プロトコル（ＩＰ）、インターネットワーク・パケット・エクスチェンジ（ＩＰＸ）、イーサネット、非同期転送モード（ＡＴＭ）、ファイル転送プロトコル（ＦＴＰ）、及び／又はリアルタイム・トランスポート・プロトコル（ＲＴＰ）を含む。説明を目的として、ＴＣＰを用いて１又は複数の例を挙げる。
【００７３】
図４は、本発明の実施例により動作するデータ通信環境４００を図示する。環境４００は、１又は複数の送信元ノード４２０、データ通信システム４１０、及び１又は複数の宛先ノード４３０を有する。データ通信システム４１０は、送信元ノード４２０及び宛先ノード４３０と通信する。データ通信システム４１０は、送信元ノード４２０及び／又は宛先ノード４３０とリンク、例えば無線、衛星、ネットワーク・リンクを介して、及び／又はプロセス間通信を通じて相互通信する。特定の実施例では、データ通信システム４１０は、１又は複数の送信元ノード４２０及び／又は宛先ノード４３０と、１又は複数の軍事用データ・ネットワークを介して通信する。
【００７４】
データ通信システム４１０は、例えば上述の通信システム１５０と同様である。特定の実施例では、データ通信システム４１０は、１又は複数の送信元ノード４２０からデータを受信する。特定の実施例では、データ通信システム４１０は、データを保持し、格納し、構成し、及び／又は優先度を付与する１又は複数の待ち行列を有する。或いは、データを保持し、格納し、構成し、及び／又は優先度を付与するために他のデータ構造が用いられてもよい。例えば、テーブル、ツリー、又はリンク付けされたリストが用いられてよい。特定の実施例では、データ通信システム４１０は、１又は複数の宛先ノード４３０とデータを通信する。
【００７５】
データ通信システム４１０により受信され、格納され、優先順位付けされ、処理され、通信され、及び／又は送信されたデータは、データのブロックを有する。データのブロックは、例えば、データのパケット、セル、フレーム、及び／又はストリームであってよい。例えば、データ通信システム４１０は、送信元ノード４２０からデータのパケットを受信する。別の例では、データ通信システム４１０は、送信元ノード４２０からのデータのストリームを処理する。
【００７６】
特定の実施例では、データはヘッダー及びペイロードを含む。ヘッダーは、例えば、プロトコル情報及びタイムスタンプ情報を有する。特定の実施例では、タイムスタンプ情報、コンテンツ、及び他の情報は、ペイロードに含まれる。特定の実施例では、データはメモリー内で連続していない。つまり、１又は複数のデータ部分は、メモリーの異なる領域に配置される。特定の実施例では、データは、例えばデータを含む別の位置を指してよい。送信元４２０は、少なくとも部分的にデータ通信システム４１０により処理されるデータを供給及び／又は生成する。送信元４２０は、例えば、アプリケーション、ラジオ、衛星又はネットワークを含む。送信元４２０は、上述のようなリンクを介してデータ通信システム４１０と通信する。送信元４２０は、例えば、連続的なデータ・ストリーム又はバースト・データを生成する。
【００７７】
特定の実施例では、送信元ノード４２０及びデータ通信システム４１０は、同一のシステムの部分である。例えば、送信元ノード４２０は、データ通信システム４１０のような同一のコンピューター・システムで動作するアプリケーションである。
【００７８】
宛先ノード４３０は、データ通信システム４１０により処理されたデータを受信する。宛先ノード４３０は、例えば、アプリケーション、ラジオ、衛星又はネットワークを含む。送信元４３０は、上述のようなリンクを介してデータ通信システム４１０と通信する。
【００７９】
特定の実施例では、宛先ノード４３０及びデータ通信システム４１０は、同一のシステムの部分である。例えば、宛先ノード４３０は、データ通信システム４１０のような同一のコンピューター・システムで動作するアプリケーションである。
【００８０】
データ通信システム４１０は、１又は複数の送信元ノード４２０及び／又は宛先ノード４３０と、上述のようなリンクを介して通信する。ある実施例では、１又は複数のリンクは軍事用データ・ネットワークの一部である。特定の実施例では、１又は複数のリンクは帯域幅が制限されている。特定の実施例では、１又は複数のリンクが信頼性がなく及び／又は間欠的に切断される。特定の実施例では、ＴＣＰのようなトランスポート・プロトコルは、送信元ノード４２０と宛先ノード４３０でソケット間の接続を確立し、送信元ノード４２０から宛先ノード４３０へのリンクでデータを送信する。
【００８１】
動作中、データは、１又は複数のデータ・ソース４２０により提供及び／又は生成される。データは、データ通信システム４１０で受信される。データは、例えば１又は複数のリンクを介し受信される。例えば、データは、データ通信システム４１０で、ラジオから軍事用データ・ネットワークを介して受信される。別の例では、データは、同一のシステムで動作するアプリケーションにより、プロセス間通信メカニズムによりデータ通信システム４１０に提供される。上述のように、データは例えばデータのブロックである。
【００８２】
特定の実施例では、データ通信システム４１０は、データを構成し、及び／又は優先度を付与する。特定の実施例では、データ通信システム４１０は、データ・ブロックの優先度を決定する。例えば、データ・ブロックがデータ通信システム４１０により受信されると、データ通信システム４１０の優先度構成要素は、データ・ブロックの優先度を決定する。
【００８３】
別の例では、データ・ブロックは、データ通信システム４１０の待ち行列に格納され、優先度構成要素は、データ・ブロックをデータ・ブロック及び／又は待ち行列に対して決定された優先度に基づき、待ち行列から抽出する。
【００８４】
データ通信システム４１０によるデータの優先度付けは、例えばＱｏＳを提供するために用いられる。例えば、データ通信システム４１０は、軍事用データ・ネットワークを介して受信したデータの優先度を決定する。優先度は、例えばデータの送信元アドレスに基づく。例えば、データ通信システム４１０が属する小隊と同一の小隊のメンバーのラジオからのデータの送信元ＩＰアドレスは、異なる行動領域の異なる区域にいる小隊から生じるデータより高い優先度を与えられる。優先度は、複数の待ち行列のうちのどのデータが、データ通信システム４１０による次の通信のために配置されるべきかを決定するために用いられる。例えば、より高い優先度のデータは、より高い優先度のデータを保持するための待ち行列に配置される。また、データ通信システム４１０は、次に通信するデータを決定する際に、より高い優先度の待ち行列を最初に捜す。
【００８５】
データは、少なくとも１又は複数のルールの一部に基づき優先度付けされる。上述のように、ルールはユーザーにより定められる。特定の実施例では、ルールは、例えば拡張マークアップ言語（ＸＭＬ）で記述され、及び／又はカスタム動的リンク・ライブラリ（ＤＬＬ）により提供される。ルールは、例えばネットワークにあるデータを振り分ける及び／又は順序付けるために用いられる。ルールは、例えば、１つのプロトコルを用いて受信したデータが別のプロトコルを利用するデータより優先されることを指定する。例えば、命令データは、ルールにより、別のプロトコルを用いる遠隔測位データよりも優先される特定のプロトコルを用いる。
【００８６】
別の例では、ルールは、第１のアドレス範囲から来た遠隔測位データが、第２のアドレス範囲から来た遠隔測位データよりも優先されることを指定する。第１のアドレス範囲は、例えば、データ通信システム４１０が動作する航空機と同一の戦隊の他の航空機のＩＰアドレスを表す。第２のアドレス範囲は、例えば、異なる行動領域にいる他の航空機、従ってデータ通信システム４１０が動作する航空機と関連のないＩＰアドレスを表す。
【００８７】
特定の実施例では、データ通信システム４１０は、データをドロップしない。つまり、データは低い優先度を有するが、データ通信システム４１０によりドロップされない。代わりに、データはある時間期間の間、遅延される。時間期間は受信されるデータの優先度の高さに依存する。特定の実施例では、データは例えば待ち行列に入れられるか格納され、データを送信するための帯域幅が利用可能になるまで、データが失われない又はドロップされないようにする。
【００８８】
特定の実施例では、データ通信システム４１０は、モード又はプロファイルの表示を含む。モードの表示は、例えばデータ通信システム４１０の現在のモード又は状態を表す。上述のように、データ通信システム４１０は、利用可能な帯域幅を最適化する、情報の優先度を設定する、及びネットワーク内のデータ・リンクを管理する等の性能管理機能を実行するために、ルール及びモード又はプロファイルを用いてよい。モードが異なると、例えばルール、モード、及び／又はデータ伝送の変化に影響を与える。モード又はプロファイルは、健全さ又は状態のような特定のネットワーク状態に対する動作上の必要性に関連するルールのセットを含む。
【００８９】
例えば、異なるモードは、当該モードに関連付けられた異なるルールを有する。つまり、ルールのあるセットは、モードＡで用いられ、重なり合う可能性もある別のルールのセットは、モードＢで用いられる。モード又はプロファイルは、健全さ又は状態のような特定のネットワーク状態に対する動作上の必要性に関連するルールのセットを含む。
【００９０】
特定の実施例では、データ及び／又は通信に適用されるよう選択されたルールは、少なくともモード又はプロファイルの一部に基づき選択される。データ通信システム４１０は、例えば「オン・ザ・フライ」で新たなモードを定義すること及び新たなモードに切り替えることを含む、動的なモードの再構成を提供する。
【００９１】
特定の実施例では、データ通信システム４１０は、他のアプリケーションと透過である。例えば、データ通信システム４１０により実行される処理、構成、及び／又は優先度の付与は、１又は複数の送信元ノード４２０又は他のアプリケーション又はデータ・ソースと透過であってよい。例えば、データ通信システム４１０、又はデータ通信システム４１０と接続された送信元ノード４２０のような同一のシステムで動作するアプリケーションは、データ通信システム４１０により実行されたデータの優先度の付与を知らない。
【００９２】
データは、データ通信システム４１０を介して通信される。データは、例えば１又は複数の宛先ノード４３０へ伝達される。データは、例えば１又は複数のリンクを介し通信される。例えば、データは、データ通信システム４１０により、軍事用データ・ネットワークを介してラジオへ伝達される。別の例では、データは、同一のシステムで動作するアプリケーションにより、プロセス間通信メカニズムによりデータ通信システム４１０に提供される。
【００９３】
上述のように、データ通信システム４１０の構成要素、要素、及び／又は機能は、例えば単独で又はハードウェア、ファームウェアの種々の形式の組み合せで、及び／又はソフトウェアの命令セットで実施されてよい。特定の実施例は、メモリー、ハードディスク、ＤＶＤ、又はＣＤのようなコンピューター可読媒体に存在し、汎用コンピューター又は他の処理装置で実行される命令セットとして提供される。
【００９４】
特定の実施例では、データは、帯域幅の制限された及び／又はデータ伝送の可能性が制限された通信接続を介して通信される。このような接続は、例えばデータ選択、更新、周波数、輻輳制御、及び／又は優先度付けに関するルールを実施する。ルール及び／又はフォーマットの変動は、接続を介した通信の効率を助ける。このようなルール、フォーマット、及び／又は他のパラメータは、例えばモード又はプロファイルで指定される。モード／プロファイルは、例えば通信システム内のソフトウェアにより自動的に生成されるか、管理者若しくは技術者により生成されるか、又はユーザーにより生成されるか、及び／又は既定値として提供される。
【００９５】
特定の実施例では、例えばモード／プロファイルは、ソフトウェア、管理者、及び／又はユーザーにより変更される。
【００９６】
特定の実施例では、システム内のノード間のリンクは、モード又はプロファイルに基づき管理される（例えば動的に管理される）。モードは、例えばネットワーク・リンクのトランスポート層からの及びトランスポート層へのデータ伝搬を制御するためのルール及び設定情報の集合を有する。通信システムは、ネットワークの健全さ（例えば、帯域幅、データ・トラフィック、バッファー溢れ、等）を検出し、システムに適切なモードで動作するよう動的に命令する。
【００９７】
更に、動作シナリオが変化すると、通信システムはモードを変化するよう命令する。システムは、モードを変化するよう、手動で及び／又は自動で命令を受ける。モードは、例えば、スループット管理ルール、アーカイブの設定、送信前及び送信後のルール、及び／又は伝送の選択を特定する。従って、例えばＯＳＩプロトコル・スタックのプレゼンテーション層及びセッション層で、透過なリンク管理が可能である。
特定の実施例では、プロファイル及び／又は他の表現は、通信システムが動作する動作シナリオ又はモードの記述を提供する。通信システムは、通信システムの動作環境に基づき、１又は複数の異なるモードに切り替わる。例えば、通信システムのユーザーが攻撃中である場合、システムは攻撃モードで動作する。ユーザーが避難している場合、システムは避難モードで動作する。ユーザーが巡回中である場合、システムは巡回モードで動作する。
【００９８】
異なるデータは、異なるモードで異なる優先度を有する。異なるネットワークは、異なるモードの異なる特性を有する。従って、システムは、例えば動作条件及び／又は目的に基づき、特定のモードに設定される。
【００９９】
特定の実施例では、単一の指令のような指令は、通信システムを特定のモードにするために用いられる。コマンドは、例えば通信システムを特定のモードにするよう、手動で及び／又は自動で実行される。異なるコマンドは、例えば異なるモードに対応する。例えば、単一のコマンドは、システムの複数の特性又はパラメータを変更する。特性又はパラメータは、例えば選択ルール、機能冗長性ルール、保管機能、順序付けルール、送信前ルール、及び／又はリンク特性を有する。従って、状況は、複数のパラメータ／設定を含むコンテキストに翻訳される。複数のパラメータ／設定は、コンテキストに包み込まれる。
【０１００】
特定の実施例では、アプリケーション・プログラム・インターフェースは、モードに基づく通信機能を、ネットワーク運用ソフトウェア及び／又は他の高レベル意志決定ソフトウェアと統合可能にする。
【０１０１】
特定の実施例では、モードを切り替えるために用いられるコマンドは、例えば音声コマンドである。
【０１０２】
例えば、戦闘機は、別の戦闘機から遠く離れており、結果として信号強度が減衰する。或いは、天候により、戦闘機間の通信リンクの帯域に変化が生じる。戦闘機間の帯域幅が低減するので、戦闘機で動作するネットワーク運用ソフトウェアは、通信システムに、異なるモード、例えば狭い帯域幅のモードに切り替えるよう指示する。狭い帯域幅のモードでは、通信リンクを介して流れるデータに高い優先度を維持し、一層効率的にする。
【０１０３】
特定の実施例では、プロファイルは、ＸＭＬファイル又はＸＭＬのモードを定める設定ファイルのセクションでモードのパラメータを提供する。モードは、１又は複数のＸＭＬ要素により定められる。例えば、通信システムは、既存のＸＭＬモード又はＸＭＬ要素を選択するよう指示される。及び／又は新しいＸＭＬモードは動的に付加され選択される。
【０１０４】
特定の実施例では、モードに基づく通信システムは、既存のモードの変化に動的に反応し、及び／又は例えば通信条件に基づき新しいモードを追加するか新しいモードに切り替える。
【０１０５】
特定の実施例では、発行及び承認システムが用いられ、ＸＭＬモード文書を通信で使うために入手可能にされる１又は複数のサーバーへ発行する。或いは、１又は複数のＤＬＬは、プロファイル及び／又は対応するモードを特定する。
【０１０６】
特定の実施例は、ネットワークを介して送信されるデータをセグメント化及び再構成する。
【０１０７】
特定の実施例は、トランスポート層の上位に実装されたＱｏＳ技術にセグメント化及び再構成機能を組み込む方法及びシステムを提供する。ネットワークを介して送信されるデータは、ＱｏＳにより処理され、トランスポート層へ渡される前に６４バイトのパケットにセグメント化される。受信端のピアＱｏＳ技術は、パケットを元の大きいサイズのデータ・ストリームに再構成する。
【０１０８】
特定の実施例は、制限されたネットワークに帯域幅を共有する利益を提供するＱｏＳの一部として、トランスポート層の上位でセグメント化及び再構成を提供する。この方法は、トランスポート層の上位に位置するためネットワークを知らなくてよく、多くの異なるネットワークで展開される。
【０１０９】
例えば、送信されるべきデータは、待ち行列に入れられるか、又は送信元ノードからの送信の前に処理のために保持される。比較的大きいパケット又はデータ・ブロックが低い優先度で送信されている場合、大きいブロックは、低速なリンクで非常に長い送信時間を占有する。大きく、優先度の低いデータ・パケットが送信されていると、高い優先度のデータは、低い優先度のデータにより遅滞又は遅延される。優先度に基づく優先度付け及び／又は別個の「高優先度」及び「低優先度」の待ち行列も、大きいパケットの送信による通信の減速を完全には緩和しない。
【０１１０】
従って、大きいデータ・パケットは、セグメント化され、例えばトランスポート層で又はトランスポート層の上位で小さいパケットに「分けられる」。小さいパケットは送信され、宛先ノードで再構成される。例えば、受信端野アプリケーションは、セグメント化されたデータ・パケットを一緒にして、宛先ノードが期待している大きいパケットに戻す。従って、ＯＳＩプロトコル・スタックの第５層（トランスポート層）より上位のアプリケーションは、例えばデ―タ・パケットのセグメント化には気付かない。
【０１１１】
データ・パケットは、例えば動作条件及び／又は制約、ユーザーの設定、利用可能帯域幅、オペレーティング・システムの特性、及び／又は他の基準に基づき、種々の大きさにセグメント化されるか「分けられる」。
【０１１２】
ある実施例では、データ・パケットは、６４バイト・パケットにセグメント化される。  特定の実施例では、ユーザーは、どれだけ細かくデータ・パケットをセグメント化するかを指定及び／又は調整する。
【０１１３】
小さいデータ・パケットを送信することにより、高い優先度のデータが、低い優先度のデータの送信中に送信される場合に、低い優先度のデータの送信は高い優先度のデータが送信されている間、停止される。高い優先度のデータの送信が完了した後、通信システムは、低い優先度のデータの送信を再開する。
【０１１４】
例えば、戦場の司令官は、メガバイトのビデオは通信ネットワークを減速するので、特定の状況に基づき、大きいビデオ・パケットを送信するか否かを決定する。大きいデータ・パケットをセグメント化することにより、偵察機がＩＥＤを見付けたために部隊に停止を告げるような高い優先度のメッセージは、低い優先度どのトラフィックと交互にされ、大きい、低い優先度のファイルの間の通信で優先度を与えられる。データのセグメント化及び再構成は、ユーザーとユーザーの機器を透過にし、データがより効率的に送信されるようにする。
図５は、本発明の実施例に関連するデータを通信する方法５００のフロー図を示す。方法５００の動作は、以下に詳細に説明される段階を有する。
段階５１０で、送信されるべきデータが通信システムで受信される。
【０１１５】
段階５２０で、データ・パケットのサイズは、データ・パケットのサイズの閾値と比較される。
【０１１６】
段階５３０で、データ・パケットは、データ・パケットのサイズの閾値に従いセグメント化される。
【０１１７】
段階５４０で、セグメント化されたデータ・パケットが送信される。
【０１１８】
段階５５０で、セグメント化されたデータ・パケットは、宛先で受信される。
【０１１９】
段階５６０で、関連するセグメント化されたデータ・パケットは、大きいデータ・パケットに再構成される。
【０１２０】
方法５００は、上述のシステムの要素を参照して説明されるが、他の実施も可能であることが理解されるべきである。
【０１２１】
段階５１０で、ネットワークを介して送信されるべきデータは、データ通信システムで受信される。データは、１又は複数のパケットで構成される種々のコンテンツを有する。データ・メッセージは、宛先ノードへ向けられた１又は複数のデータ・パケットを有する。
【０１２２】
段階５２０で、データ・パケットのサイズは、データ・パケットのサイズの閾値又は基準と比較される。例えば、２５６バイトのデータ・パケットは、６４バイトのパケットのサイズの閾値と比較される。パケット・サイズが基準より大きい場合、パケットは、複数の小さい分割されたパケットにセグメント化される。データ・パケットのサイズが基準より小さい場合、パケットはセグメント化されない。
【０１２３】
段階５３０で、データ・パケットは、データ・パケットのサイズの閾値に従いセグメント化される。例えば、２５６バイトのパケットは、４個の６４バイトのセグメント化されたデータ・パケットにセグメント化される。
【０１２４】
特定の実施例では、セグメント化は、例えばＯＳＩプロトコル・モデルの第３層及び／又は第４層で行われる。
【０１２５】
段階５４０で、セグメント化されたデータ・セットが送信される。例えば、４個の６４バイトのセグメント化されたデータ・パケットは、宛先ノードへ送信される。セグメント化されたデータ・パケットは、連続的に送信され、及び／又は他のメッセージからの他のデータ・パケットと交互にされる。データ・パケットは、優先度に従い送信される。例えば、サービス品質の優先度付け及び／又は最適化は、送信のためにデータ・パケットを優先度付けするため及び構成するために実行される。従って、例えば、大きい、低い優先度のデータ・パケットは、複数の小さい、低い優先度のセグメント化されたデ―タ・パケットにセグメント化され、送信の際に高い優先度のデータ・パケットと交互にされる。
【０１２６】
或いは、及び／又は更に、高い優先度のデータ・パケットは、低い優先度のセグメント化されたデータ・パケットのストリームの送信を中断する。例えば、より高い優先度のパケットが送信された後に、より低い優先度のセグメント化されたデータ・パケットが送信されることが考えられる。特定の実施例では、セグメント化された及び／又はセグメント化されていないパケットは、送信するときにインターリーブされる。
【０１２７】
データ・メッセージの１又は複数のデータ・パケットは、優先度を付けるため、及び／又はモードに依存する１又は複数のルール及び／又は基準に基づきメッセージに対しその他の処理を行うために、通信中、待ち行列に入れられる。例えば、メッセージは、当該メッセージが受信された順序、及び／又は別の順序で待ち行列に入れられる。特定の実施例では、メッセ―ジは、１又は複数の待ち行列に蓄積される。１又は複数の待ち行列は、例えば、異なる優先度及び／又は異なる処理ルールを割り当てられる。異なる優先度及び／又はルールは、例えばモードに基づく。待ち行列の中のメッセージは、例えば、優先度を付けられ、及び／又は少なくとも部分的に動作モードに基づきその他の処理が行われる。
【０１２８】
例えば、通信システムは、軍事用通信ネットワークを介して受信したメッセージの優先度を決定する。優先度は、例えばメッセージの送信元アドレスに基づく。例えば、通信システムが属する小隊と同一の小隊のメンバーのラジオからのメッセージの送信元ＩＰアドレスは、異なる行動領域の異なる区域にいる小隊から生じるメッセージより高い優先度を与えられる。優先度は、複数の待ち行列のうちのどのメッセージが、次の通信のために配置されるべきかを決定するために用いられる。例えば、より高い優先度のデータは、より高い優先度のデータを保持するための待ち行列に配置される。また、通信システムは、次に通信するデータを決定する際に、より高い優先度の待ち行列を最初に見る。
【０１２９】
ある実施例では、モード又はプロファイルの表示は、例えば通信システムの現在のモード又は状態を表す。上述のように、ルール及びモード又はプロファイルは、利用可能な帯域幅を最適化する、情報の優先度を設定する、及びネットワーク内のデータ・リンクを管理する等の性能管理機能を実行するために用いられてよい。モードが異なると、例えばルール、モード、及び／又はデータ伝送の変化に影響を与える。モード又はプロファイルは、健全さ又は状態のような特定のネットワーク状態に対する動作上の必要性に関連するルールのセットを含む。通信システムは、例えば「オン・ザ・フライ」で新たなモードを定義すること及び新たなモードに切り替えることを含む、動的なモードの再構成を提供する。
【０１３０】
特定の実施例では、メッセージの優先度付けは、他のアプリケーションと透過である。例えば、通信システムにより実行される処理、構成、及び／又は優先度の付与は、１又は複数の送信元ノード又は他のアプリケーション又はデータ・ソースと透過であってよい。例えば、通信システム、又は通信システムと接続された送信元ノードのような同一のシステムで動作するアプリケーションは、通信システムにより実行されたデータの優先度の付与を知らない。
【０１３１】
段階５５０で、セグメント化されたデータ・パケットは、宛先で受信される。
例えば、宛先ノード及び／又は宛先ノードと関連するデータ通信サブシステムは、１又は複数のセグメント化されたデータ・パケットを受信する。
【０１３２】
段階５６０で、関連するセグメント化されたデータ・パケットは、大きいデータ・パケットに再構成される。例えば、セグメント化されたデータ・パケットは、セグメント化されたパケットを元の大きいデータ・パケットに再構成するための識別子を有する。従って、より大きいデータ・パケットを期待している宛先ノードのアプリケーションは、パケットがセグメント化されて送信されたことを知らなくてよい。アプリケーションは、次に、より大きいデータ・パケットを処理及び／又はその他の場合には使用する。
【０１３３】
方法５００の１又は複数の段階は、例えば単独で又はハードウェア、ファームウェアの種々の形式の組み合せで、及び／又はソフトウェアの命令セットで実施されてよい。特定の実施例は、メモリー、ハードディスク、ＤＶＤ、又はＣＤのようなコンピューター可読媒体に存在し、汎用コンピューター又は他の処理装置で実行される命令セットとして提供される。
【０１３４】
本発明の特定の実施例は、１又は複数の段階を省略してもよく、及び／又は示された順序と異なる順序で段階を実行してもよい。例えば、幾つかの段階は、本発明の特定の実施例では実行されない。更なる例として、特定の段階は、上述と異なる時間的順序、例えば同時に実行される。
【０１３５】
図６は、本発明の実施例に関連するセグメント化及び再構成機能を備えたデータ通信システム６００を示す。システム６００は、複数のユーザー・アプリケーション６１０−６１２、データ通信サブシステム６２０―６２２、及びネットワーク６３０を有する。ネットワーク６３０は、データ通信サブシステム６２０―６２２がデータ・パケットをユーザー・アプリケーション６１０−６１２の間で転送することを可能にする。
【０１３６】
図６に示されるように、例えば、ユーザー・アプリケーション６１０−６１２は、例えば、大きいデータ・パケット６４０をデータ通信サブシステム６２０へ送信のために送り出す。データ通信サブシステム６２０は、大きいデータ・パケット６４０を受信し、複数の小さいセグメント化されたデータ・パケット６４５にセグメント化し、バッファーに蓄積する。例えば、大きいデータ・パケット６４０は、複数の６４バイトのセグメント化されたデータ・パケットにセグメント化される。
【０１３７】
ユーザー・アプリケーション６１１は、例えば、小さいデータ・パケット６５０をデータ通信サブシステム６２１へ送信のために送り出す。小さいデータ・パケット６５０がパケット・サイズの基準又は閾より大きい場合には、小さいデータ・パケット６５０は、複数の６４バイトのセグメント化されたデータ・パケットのような複数の更に小さいセグメント化されたデータ・パケット６５５に更にセグメント化されバッファーに蓄積される。
【０１３８】
データ通信サブシステム６２０及び６２１は、セグメント化されたデータ・パケット６４５及び６５５をネットワーク６３０に送信する。サブシステム６２０、６２１は、例えば、優先度又は他の送信ルールに基づき、セグメント化されたデータ・パケット６４５、６５５を交互に送信し、ネットワークにサービス品質を提供する。
【０１３９】
データ通信サブシステム６２２は、例えば、セグメント化されたデータ・パケット６４５、６５５を受信する。データ通信サブシステム６２２は、ユーザー・アプリケーション６１２へ中継するために、小さいセグメント化されたデータ・パケット６４５、６５５を、元のデータ・パケット６４０、６５０に再構成する。次に、ユーザー・アプリケーション６１２は、例えば、期待していたデータ・パケット６４０、６５０を受信する。
【０１４０】
本発明の特定の実施例は、帯域制限のある又は他のネットワークを介したデータ通信のためのシステム及び方法を提供する。
【０１４１】
特定の実施例は、例えば、データ・パケットのセグメント化及び再構成を提供し、低い優先度のデータ転送を中断し、高い優先度のデータを送信させ、ＴＣＰタイムアウト及び／又は制約を受けずに再開することを可能にする。特定の実施例は、データ・パケットをセグメント化し、送信のためにインターリーブし、宛先で再構成することを可能にする。特定の実施例は、少なくとも１つのデータ・パケット・サイズの基準に従い、データ・パケットのセグメント化、送信、及び再構成の技術的効果を提供する。
【０１４２】
特定の実施例は、プロファイル及び／又はモードに基づき動作する通信接続管理を提供する。特定の実施例は、１又は複数のモードを有するプロファイルを定め、目的又は動作環境のような基準に依存する１又は複数のプロファイル間の切り替えを可能にするという技術的効果を提供する。
【０１４３】
特定の実施例は、伝送されるデータの種類に関係なく、データとビットの送信を可能にする接続との間で抽出を行う。特定の実施例は、性能管理、送信処理、アーカイブ構成、及び単一のモード切替コマンドによる伝送の選択のための柔軟な接続構成を可能にする。自動モード切り替えにより、ネットワーク状態に動的に反応することを可能にする。
【０１４４】
特定の実施例は、命令されたモード切り替えにより複数の動作シナリオに対応する。
【０１４５】
特定の実施例は、例えば、スループット管理ルール、アーカイブの設定、送信前及び送信後のルール、及び伝送の選択を特定する。特定の実施例は、例えば、トランスポート層より上の透過な接続管理を可能にする。
【図１】
0004769896.tif 000002
【図２】
0004769896.tif 000003
【図３】
0004769896.tif 000004
【図４】
0004769896.tif 000005
【図５】
0004769896.tif 000006
【図６】
0004769896.tif 000007