(57)【要約】      （修正有）【課題】符号化されたチャネルにより、２つのエンドポイント間でデータを伝送するシステム及び方法を提供する。【解決手段】送信元ネットワークからのデータ伝送ユニット（データユニット）は、エンドポイント間で論理的に位置付けられた符号化コンポーネントで受信される。これらの第１のデータユニットは、第２のデータユニットに再分割されて、転送ネットワークにより送信先のネットワークに送信される。第２のデータユニットのいくつかが紛失したときであってもオリジナルの第１のデータユニットを再生成可能にする符号化された又は追加の第２のデータユニットが送信される。受信側のエンドポイントで、第２のデータユニットは受信されて、オリジナルの第１のデータユニットを再生成するのに使用される。【選択図】図６
2010063094.tif 000002
【特許請求の範囲】
【請求項１】
信頼できないネットワークでのデータ通信を高速化する方法であって、
２つのエンドポイントのそれぞれに関連付けられた符号化コンポーネントを通信に提供するステップと、
前記２つのエンドポイント間の通信セッションのために前記符号化コンポーネント間に符号化されたチャネルを確立するステップと、
前記確立ステップは、
前記２つのエンドポイントのうちの第１のエンドポイントから発生して、前記２つのエンドポイントのうちの他方へ向かうメッセージを検出するステップと、
前記通信セッションを一意的に識別する情報を格納するステップと、
前記格納ステップは、送信元ＩＰアドレス、送信先ＩＰアドレス、パケット内に含まれるプロトコル、及び送信元及び送信先ポートを格納することを含み、
前記第１のエンドポイントが両方の符号化コンポーネントに知られているプロトコルに従ってデータパケットを分割し符号化することが可能であることを示すように、他方のエンドポイントに向けられたメッセージにマークを付けるステップと、
前記マークされたメッセージを前記他方のエンドポイントに転送するステップと、
制御メッセージを交換して、前記符号化コンポーネント間の通信チャネルを確立するステップと、
を含み、
前記符号化コンポーネントのうちの１つで、前記通信に関連するデータパケットを傍受するステップと、
前記データパケットを分割してパッケージ化し、前記他方の符号化コンポーネントへの送信のために前記符号化されたデータセグメントを提供するステップと、
前記提供ステップは、前記データパケットのヘッダを変更して、前記変更したヘッダを前記符号化されたデータセグメントのそれぞれに加えるステップを含み、
前記符号化されたデータセグメントと少なくとも１つの追加の符号化されたセグメントを、前記符号化されたチャネルを通して、前記他方の符号化コンポーネントに送信するステップと、
受信した前記符号化されたデータセグメントに基づいて、前記他方の符号化コンポーネントで、前記データパケットを復号し組み立て直すステップと、
前記他方の符号化コンポーネントからそれぞれのエンドポイントに前記組み立て直されたデータパケットを送信するステップと、
を含む方法。
【請求項２】
リプライにマークを付けるステップは、ＩＰヘッダのオプションを設定するか、又は識別フィールドを既知の値に設定することを含む、請求項１に記載の方法。
【請求項３】
所定のタイムアウト時間内にさらなるパケットが送信されなければ、前記符号化されたチャネルを解体するステップをさらに含む、請求項１又は請求項２に記載の方法。
【請求項４】
前記符号化されたチャネルを確立するステップは、
前記メッセージが前記通信セッションに関連し、前記他方のエンドポイントが両方の符号化コンポーネントに知られているプロトコルに従ってデータパケットを分割して符号化することが可能であることを示すようにマークされているかどうかを判別するステップと、
前記符号化コンポーネント間で、通信チャネルを確立するために制御メッセージを送信するステップと、
をさらに含む、請求項１から請求項３のいずれかの請求項に記載の方法。
【請求項５】
前記通信セッションは、リアルタイム・ストリーミング・プロトコル（ＲＴＳＰ）セッション又はＨ．３２３プロトコルセッションである、請求項１から請求項４のいずれかの請求項に記載の方法。
【請求項６】
前記データパケットを分割してパッケージ化するステップは、動的に調整される符号化レートでデータパケットをデータセグメントに分割することを含み、
前記動的に調整される符号化レートは、
複数の通信セッションのそれぞれについての紛失率を監視するステップと、
各通信セッションの紛失率に従って、平均紛失率を決定するステップと、
前記通信セッションの紛失率と平均紛失率を、前記２つのエンドポイントの他方に伝送して、前記２つのエンドポイントの他方が符号化レートを調整することを許可するステップと、
により決定される、請求項１から請求項５のいずれかの請求項に記載の方法。
【請求項７】
前記ヘッダを変更するステップは、ＴＣＰヘッダのシーケンス番号、ＴＣＰヘッダフラグ、又はＴＣＰヘッダの緊急ポインタを変更することを含む、請求項１から請求項６のいずれかの請求項に記載の方法。
【請求項８】
高速なデータ通信を提供する通信セッションを符号化する方法であって、
クライアントとサーバで符号化コンポーネントを提供するステップと、
前記符号化コンポーネントで、デフォルトポートに向かうメッセージを検出するステップと、
前記メッセージを解析して、前記メッセージのためのセッションの識別を判別するステップと、
前記符号化コンポーネントで、前記メッセージへのリプライを検出するステップと、
前記リプライを解読して、前記通信セッションに関して、使用のために割り当てられた通信ポートを決定するステップと、
データパケットを検査して、前記データパケットの送信元ポート及び送信先ポートを決定するステップと、
前記割り当てられた通信ポートに一致する送信元ポート及び送信先ポートを持つデータパケット毎に、データパケットを分割してマークし、前記クライアントへの送信のために符号化されたデータセグメントを提供するステップと、
前記クライアントに関連付けられた符号化コンポーネントで、受信した前記符号化されたデータセグメントに基づいて、前記データパケットを復号して組み立て直すステップと、
を含む方法。
【請求項９】
前記通信セッションは、音声又は映像のストリーミングセッションである、請求項８に記載の方法。
【請求項１０】
前記サーバはリアルタイム・ストリーミング・プロトコル（ＲＴＳＰ）サーバであり且つ前記デフォルトポートはデフォルトのＲＴＳＰポートであるか、又は、前記クライアントと前記サーバはＨ．３２３エンドポイントであり且つ前記デフォルトポートはデフォルトのＨ．３２３ポートである、請求項８又は請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信データネットワークに関する。特に、本発明は、転送ネットワークの端から見て、転送ネットワークによるデータ伝送のスループットを増加させるシステム及び方法に関する。
【背景技術】
【０００２】
全部ではないがほとんどの転送ネットワークは、データストリームをより小さなデータのパケット（パケットは、第１の送信元のネットワーク又はエンドポイントから、第２の転送ネットワークを介して、第３の送信先のネットワーク又はエンドポイントへ送信される。）に分割するパケットベースのネットワークである。しかしながら、混雑や他のネットワークの制限により、全てのパケットが送信先のネットワークに到達するのに成功するわけではない。送信元のネットワークと終端の送信先のネットワークに対して重要なのは、転送ネットワークの性能である。転送ネットワークは、終端ネットワークでのアプリケーションの視点から、理想的にはパケットの紛失のない完璧なものでなければならない。しかしながら、それは、高性能の転送ネットワークを借りるときの通常の費用よりも安い価格で、そのような性能が得られる場合には好ましい。
【０００３】
それ故、低価格の通信転送ネットワークと共に、転送ネットワークの高性能を目的として終端ネットワークのアプリケーションを提供するのに用いることができるシステム及び方法が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記状況に対処する取り込みが試みられた。ある取り組みにおいては、カスタムのプロトコルスタックが、紛失とレイテンシへの対応を改善するためにエンドポイントにインストールされている。しかしながら、この取り組みは、両方の終端ネットワークが同一のカスタムプロトコルに従って通信することを必要とし、一般に大規模な再プログラミングを必要とする。
【０００５】
他の取り組みは、標準プロトコルを傍受して遠端の要素の代わりにプロトコルレスポンスを送信するネットワーク要素を使用している。カスタムプロトコルは、傍受するネットワーク要素間で使用される。この取り組みは、ＴＣＰ／ＩＰアプリケーションに限定され、特に、ネットワークの問題のトラブルシューティングに関し、複雑性を増す。
【課題を解決するための手段】
【０００６】
第１の態様において、信頼できないネットワークでのデータ通信を高速化する方法を提供する。その方法は、２つのエンドポイントの各々に関連付けられた符号化コンポーネントを通信に提供するステップを含む。それから、それぞれの符号化コンポーネント間の符号化されたチャネルが、エンドポイント間の通信セッションのために確立される。それから、通信セッションに関連するデータパケットが、符号化コンポーネントのうちの１つで傍受される。データパケットは分割してマークを付けられて、他方の符号化コンポーネントへの送信のために、符号化されたデータセグメントが提供される。それから、符号化されたデータセグメントと少なくとも１つの追加のセグメントが、符号化されたチャネルにより、他方の符号化コンポーネントに送信される。そこで、それらは復号され且つ組み立て直されて、データパケットが再現される。それから、組み立て直されたデータパケットは、他方の符号化コンポーネントからそれぞれのエンドポイントに送信される。所定のタイムアウト時間内にさらなるパケットが送信されなければ、符号化されたチャネルは解体されうる。
【０００７】
実施形態によれば、符号化されたチャネルを確立するステップは、２つのエンドポイントのうちの１つから発生して、２つのエンドポイントのうちの他方へ向かうメッセージを検出するステップと、通信セッションを一意的に識別する情報を格納するステップと、メッセージへのリプライを検出するステップと、そのリプライを以前に格納された通信セッションを識別する情報と照合するステップと、そのリプライを傍受するステップと、そのメッセージに応答するエンドポイントが、両者の符号化コンポーネントに知られているプロトコルに従ってデータパケットを分割して符号化することが可能であることを示すように、そのリプライにマークを付けるステップと、メッセージを発生するエンドポイントにそのマークされたリプライを転送するステップと、符号化コンポーネント間で、制御メッセージを交換して、符号化されたチャネルを確立するステップと、を含むことができる。
【０００８】
他の実施形態によれば、符号化されたチャネルを確立するステップは、２つのエンドポイントのうちの１つから発生して、２つのエンドポイントのうちの他方へ向かうメッセージを検出するステップと、通信セッションを一意的に識別する情報を格納するステップと、メッセージへのリプライを検出するステップと、そのリプライを以前に格納された通信セッションを識別する情報と照合するステップと、メッセージを発生するエンドポイントに配送する前にそのリプライを傍受するステップと、そのリプライが、メッセージに応答するエンドポイントが、両者の符号化コンポーネントに知られているプロトコルに従ってデータパケットを分割して符号化することが可能であることを示すようにマークされているかどうかを判断するステップと、制御メッセージを送信して、符号化コンポーネント間で符号化されたチャネルを確立するステップと、を含む。リプライにマークを付けるステップは、ＩＰヘッダのオプションを設定するか、又は識別フィールドを既知の値に設定するステップ、を含んでもよい。
【０００９】
さらに他の実施形態では、符号化されたチャネルを確立するステップは、２つのエンドポイント間で既知のプロトコルに従って関連する通信を確立する１つの通信セッション内で制御メッセージ（制御メッセージは、関連する通信セッションの送信元と送信先のポートの識別を含み）を検出するステップと、検出された制御メッセージに応答して符号化されたチャネルを生成するステップと、を含む。制御メッセージを傍受するステップは、例えば、深いパケット分析を制御メッセージに適用するステップを含んでもよい。この実施形態は、例えば、ＲＴＳＰ通信及びＨ．３２３通信のために使用されうる。
【００１０】
データパケットを分割してパッケージ化するステップは、所定の符号化レートでデータパケットをデータセグメントに分割するステップ、又は動的に調整される符号化レートでデータパケットをデータセグメントに分割するステップを含んでもよい。動的に調整される符号化レートは、複数の通信セッションのそれぞれについての紛失率を監視するステップと、各通信セッションの紛失率に従って、平均紛失率を決定するステップと、通信セッションの紛失率と平均紛失率を、２つのエンドポイントのうちの他方に伝送して、２つのエンドポイントのうちの他方がその符号化レートを調整することを可能にするステップと、により決定されてもよい。データパケットを分割してパッケージ化するステップは、データパケットのヘッダを変更して、変更したヘッダを符号化されたデータセグメントのそれぞれに加えるステップをさらに含んでもよい。ヘッダを変更するステップは、例えば、ＴＣＰヘッダのシーケンス番号を変更することを含んでも良い。特定のデータパケットから得られるセグメント毎の識別情報（シリアル番号など）もまた各セグメントに付加されてもよい。
【００１１】
さらなる態様において、信頼できないネットワークでの高速なデータ通信のための符号化データの符号化レートを設定する方法を提供する。その方法は、複数の通信セッションのそれぞれについて符号化されたチャネルを確立するステップと、各通信セッションの紛失率を監視するステップと、を含む。平均紛失率は、各通信セッションの紛失率に従って決定される。通信セッションの紛失率と平均紛失率は、それぞれのエンドポイントに伝送され、エンドポイントがそれぞれの紛失率を低減できるようにその符号化レートを調整可能にする。紛失率を監視するステップは、紛失率を観測するステップと、報告された紛失率を受信するステップと、を含んでもよい。
【００１２】
さらなる態様は、例えば、リアルタイム・ストリーミング・プロトコル（ＲＴＳＰ）によって又はＨ．３２３エンドポイント間で、映像データ又は音声データを配信する方法、又は一方向の通信セッションを符号化する方法を提供する。その方法は、クライアントとサーバで符号化コンポーネントを提供するステップを含む。符号化コンポーネントで、デフォルトのポートに向かうメッセージが検出され、且つ深いパケット分析により解析されて、メッセージのためのセッションの識別が判別される。それから、符号化コンポーネントで、メッセージへのリプライが検出され、解読されて、通信セッションに関して、ユーザに割り当てられた通信ポートが判断される。それから次のデータパケットが検査されて、それらの送信元ポート及び送信先ポートが判別される。割り当てられた通信ポートに合致する送信元ポート及び送信先ポートを持つ各データパケットは、分割されマークされて、クライアントへの送信のための符号化されたデータセグメントが提供される。クライアントに関連付けられている符号化コンポーネントで、受信した符号化されたデータセグメントに基づいて、データパケットが復号されて組み立て直される。実施形態において、深いパケット分析は、正規表現関数を用いて達成されうる。
【００１３】
本発明の他の態様及び特徴は、添付の図面と共に本発明の具体的な実施形態の以下の説明を精査することにより、当業者には明らかとなる。
【図面の簡単な説明】
【００１４】
【図１】本発明が実施される環境のブロック図
【図２】図１において使用されるサーバの要素を示すブロック図
【図３】図１において使用される他のサーバの要素を示すブロック図
【図４】第１のデータユニットが受信されて、転送ネットワークに送信するために第２のデータユニットに変換されるときに実行されるステップを示すフローチャート
【図５】第２のデータユニットが転送ネットワークから受信されて、終端ネットワークに送信するために第１のデータユニットに変換されるときに実行されるステップを示すフローチャート
【図６】本発明の実施形態における典型的なシステムと通信ネゴシエーションプロトコルを示す図
【図７】本発明における一般的なパケットの分割と符号化を示す図
【図８】本発明の実施形態における典型的なパケットの分割と符号化を示す図
【図９】紛失の統計が決定されうる環境を示す図
【発明を実施するための形態】
【００１５】
本出願は、２００４年８月６日に出願された米国出願第１０／９１２２００の一部継続出願である。米国出願第１０／９１２２００の内容は、参照することにより全体がここに組み込まれる。
【００１６】
本発明の実施形態を、添付の図面を参照して、一例として以下に説明する。
【００１７】
図１に、本発明が実施される環境のブロック図を示す。第１のエンドポイント１０は、ネットワーク２０を介して、第２のエンドポイント３０と通信する。第１のエンドポイント１０とネットワーク２０は、符号化／復号化コンポーネント４０を介して通信し、ネットワーク２０は符号化／復号化コンポーネント５０を介して第２のエンドポイント３０と通信する。符号化／復号化コンポーネント４０、５０（以下、符号化コンポーネントと呼ぶ。）は、エンドポイントで又は中間装置（サーバなど）内に常駐してもよい。第１のエンドポイント１０及び第２のエンドポイント３０は、モデム、ローカルエリア・ネットワーク又は広域ネットワーク、又はネットワーク２０にアクセスする他の装置又はシステムを使用して接続されるパーソナル・コンピュータなどの端末であってもよい。ネットワーク２０は、例えば、インターネット又は他の通信ネットワークであってもよい。
【００１８】
ここで使用されるように、データユニットは、ネットワークによりデータをデジタルで送信するのに使用されうる任意の単位のデータである。このようなデータユニットは、データがその単位内でカプセル化されるか又はペイロードとして伝送されるのであれば、パケット、セル、フレーム、又は任意の他の単位の形をとりうる。データユニットの用語は、特定のプロトコル、規格、又は伝送方式を満たすありとあらゆるパケット及びフレームに適用されうる。一般的に、ヘッダ、伝送ルーティング、制御情報及び識別情報が、データのペイロードに追加される。
【００１９】
本システムは、ネットワーク２０の予測のつかない変化からエンドポイントを防護する手段を提供する。符号化コンポーネント４０及び５０は、データユニットの符号化及び復号化、及びネットワーク２０を通じた送信を扱うことにより、ネットワーク２０からエンドポイント１０及び３０を防護する手段を備える。エンドポイント１０及び３０は、符号化コンポーネント４０及び５０がしうるように、任意のプロトコルを使用して通信できる。符号化コンポーネント４０及び５０は、エンドポイント１０及び３０からあるプロトコルのオリジナルのデータユニットを受信して、オリジナルのデータユニットをなるべくより小さなデータユニットにさらに分割し、転送ネットワークを通じて送信されるデータユニットのいくつかが失われたときにオリジナルのデータユニットを再生成又は再構築するのに使用されうる追加のデータユニットを生成し、転送ネットワークを介して送信する前に現在のプロトコルに従って、再分割されたデータユニット及び追加のデータユニットをパッケージし直すことにより、オリジナルのデータユニットを符号化する。
【００２０】
転送ネットワーク２０を通じて送信されるデータユニットが、遠くのエンドポイントに関連付けられている符号化コンポーネントで受信されるとすぐに、送信元のエンドポイントからオリジナルのデータユニットが再生成又は再構築される。この再生成又は再構築は、必要であれば、受信したデータユニットを並べ換え、且つ、いくつかのデータユニットが転送中に紛失していた場合は、追加のデータユニットを用いて紛失したデータユニットを再生成することにより、行われる。受信した追加のデータユニットがオリジナルのデータユニットを再生成するのに不十分な場合、受信側の符号化コンポーネントは、送信前にデータユニットの再送信を任意に要求することができる。
【００２１】
説明を簡単にするために、エンドポイントから発生する又はエンドポイントで受信されるデータユニットを、第１のタイプのデータユニットである、第１のデータユニット又はパケットと呼ぶ。転送ネットワークを越えて送信される及び／又は転送ネットワークから受信されるデータユニットを、第２のタイプのデータユニットである、第２のデータユニット又はセグメントと呼ぶ。第２のデータユニットは、符号化されたデータユニットとも呼ぶ。
【００２２】
図２は、符号化コンポーネント４０内における本発明を実施するのに必要なモジュールとそれらのそれぞれのデータフローの典型的な実施例を示す。モジュールは、１つの機器内に常駐するか、又はいくつかの機器間で割り振られうる。図に示すように、符号化コンポーネント４０は、第１のインターフェース６０、第２のインターフェース７０、再組み立てモジュール８０、及び分割モジュール９０を備える。第１のインターフェース６０は、第１のデータユニットをエンドポイント１０に送信し且つエンドポイント１０から第１のデータユニットを受信する。サーバ４０の第２のインターフェース７０は、転送ネットワーク２０に第２のデータユニットを送信し且つ転送ネットワーク２０から第２のデータユニットを受信する。
【００２３】
再組み立てモジュール８０は、第２のインターフェース７０から第２のデータユニットを受信し且つ第１のインターフェース６０を介して第１のネットワーク１０に送信される第１のデータユニットを生成する。一方、分割モジュール９０は、第１のインターフェース６０から第１のデータユニットを受信し且つ第２のインターフェース７０を介して転送ネットワーク２０に送信される第２のデータユニットを生成する。
【００２４】
第２のデータユニットは、転送ネットワークを介して送信されるとすぐに、他方のエンドポイントで符号化コンポーネントにより受信される。これを説明するために、図３は、転送ネットワーク及びエンドポイント３０と通信する符号化コンポーネント５０のモジュールとデータフローの典型的な実施例を示している。
【００２５】
符号化コンポーネント５０内のモジュールは、符号化コンポーネント４０のモジュールと同一であり、実際に同一の機能を備える。符号化コンポーネント５０の第２のインターフェース７０Ａは、転送ネットワークと通信し、第２のデータユニットを送受信する。第１のインターフェース６０Ａは、エンドポイント（この場合、エンドポイント３０）と通信し、第１のデータユニットを送受信する。再組み立てモジュール８０Ａは、第２のデータユニットを受信して第１のデータユニットを生成し、分割モジュール９０Ａは、第１のデータユニットを受信して第２のデータユニットを生成する。
【００２６】
上述の通り、第１のデータユニットは、終端ネットワークにより使用されるデータユニットであり、第２のデータユニットは、転送ネットワーク及び符号化コンポーネント４０、５０により互いにデータを送受信するときに使用される。第２のデータユニットは、第１のデータユニットから導き出される。第１のデータユニットのペイロードは、より小さなユニットに分割され、それぞれのより小さなユニットは第２のデータユニットのペイロードになりうる。そのため、各第２のデータユニットは、オリジナルの第１のデータユニット（その第１のデータユニットから第２のデータユニットが得られる。）よりも小さい。一例として、１０ｋＢの第１のデータユニットは、５つの２ｋＢのユニットに再分割されてもよい。これらは、５つの第２のデータユニット（各々は１０ｋＢより小さい。）のペイロードであっても良い。第１のデータユニットから第２のデータユニットを生成するこの機能は、分割モジュール９０、９０Ａにより成し遂げられる。
【００２７】
また、第２のデータユニットが得られるオリジナルの第１のデータユニットを再生成するのを支援するために、分割モジュールは、追加の第２のデータユニットを生成する。これらの追加の第２のデータユニットは、第１及び第２のデータユニットから得られる。追加の第２のデータユニットは、転送ネットワークを使用した送信の間に、１以上の第２のデータユニットが紛失した場合における、オリジナルの第１のデータユニットの再生成又は再組み立てに際し、再組み立てモジュール８０、８０Ａを支援する。
【００２８】
追加の第２のデータユニットは、多くの形式を取りうる。もしかすると、最も簡単な実施例において、追加の第２のデータユニットは、送信前に選択された第２のデータユニットの単なるコピーである。一例として、第１のデータユニットが４つの第２のデータユニット（例えば、ＤＵ１、ＤＵ２、ＤＵ３、ＤＵ４）に分割される場合、追加の第２のデータユニットは、ＤＵ２及びＤＵ３のコピーでありうる。この場合、ＤＵ２及びＤＵ３が送信中に紛失してしまった場合であっても、オリジナルの第１のデータユニットが再生成されうる。複製される第２のデータユニットの数と識別は予め定まっているか、又はシステム管理者の裁量に委ねられうる。ネットワーク２０の現実の又は予期された程度の紛失に応じて、より多くの複製の第２のデータユニットを含むことにより、より多くの冗長性がシステムに組み込まれ、反対に、より少ない複製の第２のデータユニットを含むことにより、より少ない冗長性がシステムに組み込まれうる。最も簡単な場合では、全ての第２のデータユニットが複製されて、実質的に、各第２のデータユニットの２部のコピーが送信先の符号化コンポーネントに送信されることを確実にできる。
【００２９】
同等のデータユニットが、第２の追加のデータユニットとして使用されうる。当技術分野で周知のように、同等のデータユニットはＸＯＲ関数を用いて生成されうる。オリジナルの第１のデータユニットから生成される種々の第２のデータユニットのビットは、排他的論理和をとられて、追加の第２のデータユニットに格納されうるビット値となる。第２のデータユニット（追加の第２のデータユニットを含まない。）のいずれか１つが送信中に紛失した場合、残りの受信された第２のデータユニットと追加の第２のデータユニットが、紛失した第２のデータユニットを再生成するのに使用されうる。受信した第２のデータユニットと追加の第２のデータユニットに対してＸＯＲ関数を実行することにより、紛失している第２のデータユニットを再生成する。
【００３０】
追加の第２のデータユニットが、他の消失訂正符号を用いて、符号化されてもいいことに注目すべきである。一例として、ｎ個の第２のデータユニットが１つの第１のデータユニットのために生成される場合、ｍ個の追加の第２のデータユニットが、紛失した第２のデータユニットが再生成可能となるように生成されてもよい。上述したように、ｍ個の追加の第２のデータユニットが“重複する”第２のデータユニットと見なされても良く、単なる複製が用いられる場合、ｍ≦ｎの完全な複製はｍ＝ｎで達成される。しかしながら、消失訂正符号が、ｍ＝２で使用される場合、任意の２つの第２のデータユニットが紛失し、再組み立てモジュールが紛失した第２のデータユニットを再構築できるような方法で、重複する情報を符号化することが可能である。リードソロモン、前方消失訂正技術、及びＢＣＨ（Bose-Chaudhuri-Hochquenghem）符号などの周知の方法及びコーディング技術、及び多数の他のものが使用されてもよい。
【００３１】
追加の第２のデータユニットがいくつかの第２のデータユニットの紛失の影響を弱めることを助けるはずであるが、第２のデータユニットがあまりに多く紛失していると、完全にそれを埋め合わすことができなくなる。そのため、閾値を越える数の第２のデータユニットを紛失した場合、適宜、再組み立てモジュールに第２のデータユニットのパッケージ又はグループの再送信を要求させることができる。一例として、追加の第２のデータユニットがデータユニットの２５％の紛失から回復可能であり且つ１つの第１のデータユニットから生成された４つの第２のデータユニットがある場合、１つの第２のデータユニットの紛失は、再送信の要求を引き起こさない。しかし、第２のデータユニットが２つ紛失している場合（すなわち、５０％の紛失）、再組み立てモジュールは再送信を要求することができる。もし、再送信が有効であれば、再送信の閾値は、理想的には、追加の又は重複する第２のデータユニットのために使用されるコーディングのエラー訂正能力又は紛失訂正能力に関連する。再組み立てモジュールは、第２のデータユニットのペイロードを適切に並べる必要があるため、分割された第１のデータユニット毎に受信される第２のデータユニットの数を把握することができる。
【００３２】
上述からわかるように、再組み立てモジュール８０及び８０Ａは、受信した第２のデータユニットを復号して組み立て直し、オリジナルの第１のデータユニットを形成する。受信された第２のデータユニット及び追加の第２のデータユニットは追跡されて、オリジナルの第１のデータユニットを再生成するのに十分な数が受信されたかどうかが判断される。十分な数が受信されなかった場合、再送信が適宜要求されうる。いくつかの第２のデータユニットしか紛失していない場合は、再組み立てモジュールは紛失している第２のデータユニットを再生成又は再構築できる。上述したように、この処理は、使用されるコーディングと採用される総合的な戦略に依存する。このような復号化及びエラー訂正の処理は、当業者には周知である。
【００３３】
必要とされる数の第２のデータユニットが受信されるとすぐに、それらのペイロードが抽出されて、第２のデータユニットが得られるオリジナルの第１のデータユニットを再構築するのに使用される。これは、第２のデータユニットのペイロードを連結させて、再構築された第１のデータユニットを生じさせるのと同じぐらい簡単かもしれない。しかしながら、復号化に関して上述したように、再構築処理は、オリジナルの第１のデータユニットを分割するのに使用される処理に依存する。オリジナルの第１のデータユニットは再構築されるとすぐに、受信側のエンドポイントと通信する適切なインターフェースに転送されうる。
【００３４】
分割モジュールに関し、これらのモジュールは、第１のデータユニットを分割し、分割されたセグメントを第２のデータユニットに「再パッケージ化」するタスクを実行する。分割モジュールは、上述したように、追加の第２のデータユニットを符号化する。それから、第１のデータユニットと追加の第２のデータユニットから得られた第２のデータユニットは、転送ネットワークと通信するインターフェースモジュールに伝送される。また、第２のデータユニットの任意の再送信を促進するために、分割モジュールは第２のデータユニットをバッファリングすることができる。一例として、５つの第１のデータユニットが２０個の第２のデータユニットと５つの追加の第２のデータユニットに分割された場合、分割モジュールは、符号化された最後の３つの第１のデータユニットに対応する最後の３つの第２のデータユニットをバッファリングできる。よって、１２個の第２のデータユニットと３つの追加の第２のデータユニットが分割モジュールによりバッファリングされる。
【００３５】
また、分割モジュールは、複数の第２のデータユニットの紛失のリスクを異なる分割された第１のデータユニットに広める交互的な方法で第２のデータユニットを送信するように構成されうる。それ故、第２のデータユニットの各グループが１つの第１のデータユニットに対応するように第２のデータユニットのグループを連続して送信する代わりに、異なる第１のデータユニットからの第２のデータユニットが互いにインターリーブされうる。説明のために、第１のデータユニットＡ、Ｂ、Ｃはそれぞれ、第２のデータユニットＤＵ−Ａ１、ＤＵ−Ａ２、ＤＵ−Ａ３、ＤＵ−Ｂ１、ＤＵ−Ｂ２、ＤＵ−Ｂ３、ＤＵ−Ｃ１、ＤＵ−Ｃ２、ＤＵ−Ｃ３に分割されることが仮定されうる。それぞれの第１のデータユニットに従ってグループ化された第２のデータユニットを送信する代わりに、それらはインターリーブされうる。第２のデータユニットが、３つのデータユニットのグループで送信される場合、第１のグループは、ＤＵ−Ａ１、ＤＵ−Ｂ１、及びＤＵ−Ｃ１でありうる。他のグループは、ＤＵ−Ａ２、ＤＵ−Ｂ２、及びＤＵ−Ｃ２などでありうる。この構想を用いると、あるグループが紛失しても、第１のデータユニットの全体が紛失したのではなく、３つの第１のデータユニットのうちの１／３のみが紛失したこととなる。採用されるコーディング及び戦略に従って、この種の紛失が回復可能であってもよい。
【００３６】
符号化コンポーネント４０及び５０の１つにより実現されるような本発明の典型的な方法が、図４に示されている。そのプロセスは、送信元のエンドポイントからの第１のデータユニットを受信することにより始まる（ステップ１００）。受信後、第１のデータユニットは分割（すなわちセグメント化）されて（ステップ１１０）、セグメントが第２のデータユニットにパッケージ化される（ステップ１２０）。第２のデータユニットが生成されるとすぐに、追加の（すなわち、重複する）第２のデータユニットが符号化され生成される（ステップ１３０）。それから、第２のデータユニットが任意にバッファリングされ（ステップ１４０）、転送ネットワークに送信される（ステップ１５０）。それから、その方法はコネクタＡを介してステップ１００に戻る。再送信が有効であれば、再送信の要求についての任意の検査が非同期的に行われる（ステップ１６０）。そのような要求が受信されると、決定のフローはステップ１５０に戻り、要求された第２のデータユニット（任意のステップ１４０で以前にバッファリングされている。）が送信される。
【００３７】
図５は、転送ネットワークから第２のデータユニットを受信する符号化コンポーネントにより実行されるステップの典型的な実施例を示す。プロセスは、サーバが転送ネットワークから第２のデータユニットを受信することにより始まる（ステップ１８０）。決定１９０は、第２のデータユニットが得られた第１のデータユニットを再構築するために、全ての第２のデータユニットが受信されたかどうかを判断する。すべての第２のデータユニットが受信された場合、オリジナルの第１のデータユニットが再生成される（ステップ２００）。第１のデータユニットは、再生成されるとすぐに、送信先のエンドポイントに送信される（ステップ２０５）。制御フローはコネクタＤを介してステップ１８０に戻る。
【００３８】
決定１９０に戻り、全ての第２のデータユニットが受信されたわけではない場合は、決定は、追加の第２のデータユニットが受信されたかどうかを判断する（ステップ２２０）。追加の第２のデータユニットが受信されていない場合、再送信が任意に要求されうる（ステップ２３０）。任意の再送信要求の後、制御フローは、コネクタＤを介してステップ１８０に戻る。追加の第２のデータユニットが受信された場合は、決定２４０は、オリジナルの第１のデータユニットを再構築するのに十分な数の追加の第２のデータユニット及び第２のデータユニットが受信されたかどうかを判断する。受信された数が不十分であれば、オリジナルのパケットは取りさげられるか、又は任意に制御フローは、コネクタＣにより示されるように再送信を要求するステップ２３０に戻りうる。十分な数の第２のデータユニットと追加の第２のデータユニットが受信された場合は、追加の第２のデータユニットは紛失している第２のデータユニットを再生成又は再構築するのに使用されうる（ステップ２６０）。それから、コネクタＢが制御フローをステップ２００に戻す。
【００３９】
いくつかの特定の実施の例は、本システム及び方法の動作を理解するのに役立つ。図６は、エンドポイントＡ及びエンドポイントＢを備えた典型的なシステムを示す。エンドポイントＡは、符号化コンポーネント３０２を介して、インターネットなどのネットワーク３００と通信する。エンドポイントＢは、符号化コンポーネント３０４を介して、ネットワーク３００と通信する。符号化コンポーネント３０２及び３０４は、図２及び図３に関連して説明した、インターフェース、分割モジュール、及び再組み立てモジュールを含み、全体的にソフトウェアにより実現されうるか、又は予めプログラムされたハードウェアのユニット、他の関連するソフトウェア、又はハードウェアとソフトウェアのコンポーネントの組み合わせとして実現されうる。イーサネット又は他の適切な接続が、各エンドポイントをそれぞれの符号化コンポーネントに接続するのに使用されうる。
【００４０】
この例のために、エンドポイントＡとエンドポイントＢとの間で双方向の通信が発生しており、エンドポイントＡが通信を開始することが仮定される。現在の通信プロトコルは、エンドポイントＡとエンドポイントＢの両方において見えず、全ての機能性が符号化コンポーネント３０２及び３０４内に備わっている。エンドポイントＡ、Ｂ間のセッションを立ち上げ、両方のエンドポイントが符号化コンポーネントに関連付けられて、現在のプロトコルに従った通信が可能かどうかを判断するために、図６に示される通信ネゴシエーションプロトコルが使用されうる。エンドポイントＡは、エンドポイントＢ向けのパケットＰを送信する。パケットＰとその送信先は符号化コンポーネント３０２により検出され又は気付かれ（３０６）、符号化コンポーネント３０２は通信セッションを一意的に識別する情報を格納する。また、パケットＰは符号化コンポーネント３０４により検出され又は気付かれる（３０８）。符号化コンポーネント３０４は、パケットに関連する通信セッションを一意的に識別する情報を格納し（３１０）、そのパケットをエンドポイントＢに送信する。エンドポイントＢがリプライパケットＲをエンドポイントＡに送信するとき、リプライパケットＲは符号化コンポーネント３０４により傍受され、以前に格納された通信セッションを識別する情報と照合され、マークを付けられる（３１２）。通信セッションを一意的に識別する情報は、例えば、送信元ＩＰアドレス、送信先ＩＰアドレス、ＩＰパケット内に含まれるプロトコル（例えば、ＵＤＰ又はＴＣＰ）、及び送信元及び送信先ポートでありうる。イーサネットフレームでは、ＶＬＡＮのＩＤが使用されうる。
【００４１】
マークされたパケットＲｍは、符号化コンポーネント３０４が本発明により分割され符号化されたパケットを送受信できることを符号化コンポーネント３０２に知らせるのに使用されうる。パケットにマークをつけることは、例えば、パケットのＩＰヘッダに選択肢を設定すること、及び／又は、ＩＰ識別フィールドに既知の値を設定することからなる。公衆ネットワーク３００内のルータ及び他の機器は、送信中、ＩＰ識別フィールドを不変にしておいてもよい。現在のプロトコルに従って通信することができない機器になるべく悪影響を及ぼさないならば、タイムスタンプのＩＰアドレスフラグを設定するなどの他の適当なマーク付け及びしるし付けの構想が用いられうる。
【００４２】
それから、符号化コンポーネント３０４は、公衆ネットワーク３００を介して、マークされたパケットＲｍをエンドポイントＡに転送する。マークされたパケットＲｍは、符号化コンポーネント３０２により検出される。符号化コンポーネント３０２は、以前格納した通信セッションを識別する情報を更新し（３１６）、パケットをエンドポイントＡに送信する。符号化コンポーネント３０２は、パケットをエンドポイントＡに転送する前にマークを任意に取り除くことができる。エンドポイントＡがエンドポイントＢ向けの他のパケットＰ２を送信するとき、符号化コンポーネント３０２は、そのパケットＰ２を以前に格納した通信セッションを識別する情報と照合する（３１８）。符号化コンポーネント３０２は、エンドポイントＢが現在のプロトコルに従って通信をすることが可能な符号化コンポーネントを備えていることを認識すると、パケットＰ２の転送に加えて、「hello」メッセージを送信する。
【００４３】
符号化コンポーネント３０４は、符号化コンポーネント３０２からの「hello」メッセージを受け取り次第、「hello」リプライで応答する。それから、符号化コンポーネント３０２は、リプライの確認応答（リプライのＡＣＫ）を符号化コンポーネント３０４に送信し、現在のプロトコルを使用して、エンドポイントＢに向かう予定のデータパケットの分割及び符号化を開始する。コンポーネント３０４はコンポーネント３０２からのリプライの確認応答を受信すると、エンドポイントＡに向かう予定のデータパケットの分割及び符号化を開始して、上述した第２のデータユニットを提供する。それ故、符号化コンポーネント３０２及び３０４間の符号化されたチャネルは、首尾良く自動的に検出され且つ取り決められる。符号化されたチャネルは、データと制御情報の両方を運ぶのに使用されうる。符号化されたチャネルが、現在のプロトコルを使用することが可能な２つの符号化コンポーネント間で取り決められるとすぐに、分割された及び／又は符号化されたメッセージが送信され受信されうる。符号化されたチャネルは、所定のタイムアウト時間（その間、符号化コンポーネントはさらなるパケットを受信しない。）が経過するまでアクティブのままである。それから両サイドは、符号化されたチャネルを解体する。また、２つのエンドポイント間で符号化されたチャネルを取り決めるための他の方法が検討される。例えば、符号化されたチャネルは、通信へのエンドポイント間で、予め存在する制御チャネルを通じて取り決められ得る。
【００４４】
エンドポイントとコンポーネント３０２及び３０４間の全ての通信は、確立された又は既存の通信チャネル上で発生することに注目すべきである。チャネルは、ＩＰより上位のＵＤＰ（Universal Datagram Protocol）及びＴＣＰ（Transmission Control Protocol）などの知られている通信プロトコルを実行することができる。接続がＵＤＰ接続の場合、本発明によるメッセージは、ＵＤＰのデータペイロードに直接挿入される。
【００４５】
既存のＴＣＰ接続によりデータを送信する場合、オリジナルのＴＣＰヘッダは、変更されたシーケンス番号と共に、各セグメントに付け加えられ得る。それ故、送信元ポートと送信先ポートは同一のままである。第１のセグメントはオリジナルパケットのシーケンス番号を与えられるが、その後のセグメントには新しいシーケンス番号が付けられる。好ましい本実施形態においては、符号化された又は追加のセグメントは、それに関連するセグメントのうちの１つのシーケンス番号を再使用する。これは、追加のセグメントが、再送信されるパケットと同一の方法でファイアウォールを通過することを可能にする。データオフセットとチェックサムは不変のままであるが、フラグ又は制御ビットは最初のセグメントを除くすべてにおいて変更される。分割されていないメッセージ（すなわち、制御メッセージ）については、残りのメッセージのバイトが変更されたＴＣＰヘッダのすぐ後に続く。分割されたメッセージについては、セグメントのペイロードが変更されたＴＣＰヘッダに続き、例えば、あるセグメントと、他のセグメントとの関連とを識別するシリアル番号などの識別情報を提供し、オリジナルのパケットの再組み立てを可能にする。それから、セグメントのデータペイロードが続く。
【００４６】
理解されるように、上述したマークされた又は生成されたパケットは、ファイアウォールとＮＡＴ（Network Address Translation）変換装置を問題にならないで通過する。効率的に、符号化されたチャネルは、符号化コンポーネント３０２及び３０４間の制御チャネルを確立し、パケットはファイアウォール又はＮＡＴなどの任意の中間のコンポーネントにより認識されずに又は問題にならずにどちらか一方の終端から通過しうる。
【００４７】
本発明の実施形態のパケットの分割及び符号化について、図７を参照して説明する。説明を簡単にするために、オリジナルパケットと分割されたパケットからヘッダが省略されている。オリジナルのデータペイロード４００は本発明の符号化コンポーネントで受信される。オリジナルのデータペイロードはｘバイトであり、ｎ個のセグメント４０２に分割される。ｎはｘの整数の因数として選択され、図示されるように、ｎ個のセグメントのそれぞれはｘ／ｎバイトをもつ。さらに、ｍ個の追加のセグメントが生成される。図７において示される例では、ｍ＝１であり、且つ追加のパケット４０４は、ＸＯＲ関数をｎ個のセグメントのうち１つに適用することにより生成される同等のセグメントである。
【００４８】
オリジナルのデータペイロード４００を同等のセグメントに分割することが、必ずしも可能である又は望ましいとは限らない。例えば、ｎがｘの因数でない場合、最後のセグメントを長くして、全てのセグメントを等しい長さにすることを確実にする必要があってもよい。例えば、ｘ＝１７でｎ＝２の場合、ｘ／ｎに最も近い整数値は９である。４又は８の因数であるセグメントサイズが一般に好まれるため、この場合のセグメントサイズは、ｘ／ｎよりも４つ大きな次の因数となるか、又はｘ／ｎと等しくなるように選択される（例えば、１２バイト）。図８に示されるように、オリジナルの１７バイトのデータペイロード４１０は２つの１２バイトのセグメントペイロード４１２及び４１４に分割される。セグメントペイロード４１２は、オリジナルのデータペイロード４１０の先頭の１２バイトを含み、セグメントペイロード４１４は、任意に１２バイトに引き延ばされた、オリジナルのデータペイロード４１０の残りの５バイトを含む。さらなる追加のセグメント４１６（セグメント４１２の同等セグメント）が、シーケンスの最後のセグメントを形成する。１つのオリジナルのパケット又はフレームに関連する全てのセグメントが同一のシリアル番号をもち、受信終端での識別と再組み立てを可能にすることに注目すべきである。
【００４９】
符号化レートは、ｎ及びｍの両方により決定される。符号化レートは、所定値（例えば、図８に示されるようにｎ＝２及びｍ＝１）に設定されうるか、又はあるエンドポイントに関連付けられた符号化コンポーネントで終端する全ての符号化されたチャネルに関して、観測された及び／又は報告されたネットワークの性能に基づいて調整されうる。ネットワークの性能を決定する１つの方法について図９に関連して説明する。図９において、エンドポイントＡは、公衆ネットワーク４４０により、エンドポイントＢ，Ｃ，Ｄと通信している。エンドポイントのそれぞれは、現在のプロトコルに従って通信可能である。エンドポイントＡに関連づけられた符号化コンポーネント（図示せず）は、他のエンドポイントの各々からのセグメントの受信を経験している間、紛失を継続的に監視する。符号化コンポーネントは、例えば、受信に失敗したセグメントの数のカウントを継続することにより、又はそれぞれのセッション中に他方のエンドポイントのそれぞれに送信する再送信リクエストの数をカウントすることにより、そのような紛失を監視できる。エンドポイントＡがシーケンス内のセグメントの過度の紛失を検知すると、再送信リクエストがエンドポイントＡにより送信されうる。エンドポイントＡは、エンドポイントＢ，Ｃ，Ｄから観測されたネットワークの性能の詳細を受け取ることができる。そのような方法を適用することにより、エンドポイントＡは、接続Ａ−Ｂと接続Ａ−Ｃは良好であり、紛失がほとんどないと判断する。しかし、収集した性能の統計値は、接続Ａ−Ｄは紛失があり、エンドポイントＡがエンドポイントＤからの大損失を経験していることを示している。これは、おそらく、ＡとＤの間のどこかで局所的なわずかな紛失４４２があることを意味している。エンドポイントＡは、エンドポイントＤからの大損失を経験しているが、平均すると低損失であることをエンドポイントＤに報告する。これは、Ｄが、その符号化レートを減少又は増加させて（すなわち、ｎ及び／又はｍを減少又は増加させて）、紛失の多いチャネルにもかかわらず、パケットがエンドポイントＡで受信されたセグメントから回復されうる可能性を改善することを可能にする。
【００５０】
上述した例は、一般に、符号化されたチャネルのネゴシエーションが実現可能且つ望ましいエンドポイント間の双方向通信に関する。しかしながら、本発明は、実質的に一方向の、すなわちストリーミングの、性能を促進するためのアプリケーションや、符号化コンポーネント間のネゴシエーションが実現不可能、さもなければ望ましくない他のアプリケーションにおいても使用されうる。そのようなアプリケーションにおいて、各エンドポイントに関連付けられた符号化コンポーネント間において、ネゴシエーションは必須ではない。符号化されたチャネルは、通話信号のメッセージを認識することにより確立され、それに続く深いパケット分析が、通信セッションに関連するメッセージが認識されることを可能にする。
【００５１】
例えば、本発明の符号化／復号化コンポーネントは、ＲＴＳＰ（Real-Time Streaming Protocol）の状態の把握が可能な特徴を活用して、ストリーミングのための接続を設定し監視するのに使用されうる。ＲＴＳＰコマンドのためのデフォルトのポートは、ポート５５４である。それ故、本発明の符号化コンポーネントは、パケットのヘッダを分析して、それらがＲＴＳＰデフォルトポートに向かう予定であるか又はＲＴＳＰデフォルトポートから発生したものであるかを判断し、それによりＲＴＳＰパケットを識別することができる。ＲＴＳＰメッセージが検出されれば、メッセージは解析されて、それがＳＥＴＵＰリクエスト、ＳＥＴＵＰレスポンス、ＴＥＲＤＯＷＮリクエスト、又は一般のＲＴＳＰレスポンスを含むかどうかが判断されうる。ユーザからのＳＥＴＵＰリクエストは、メディア・ストリームＵＲＬとＲＴＰデータ（音声又は映像）を受信するためのローカルポートを含む。ＲＴＳＰサーバのリプライは、選択されたパラメータを確認し、サーバの選択されたポートを提供する。ＲＴＳＰサーバからのリプライを解析することにより、符号化コンポーネントは、データストリームに割り当てられたＲＴＳＰセッションの識別、メッセージのためのＲＴＳＰシーケンス番号、及びユーザ端末及びＲＴＳＰサーバによりセッションに割り当てられたＲＴＰポートを判別できる。このようにして、ストリーミングのための符号化されたチャネルは、符号化コンポーネント間で設定されうる。それから、それに続くクライアントとサーバ間のデータユニットが、例えば、深いパケット分析により分析されうる。ポートがＳＥＴＵＰリプライにおいて設定されたものに一致する場合、メッセージは、上述したように、符号化されたチャネルを設定するための任意のネゴシエーションなしに、分割及び符号化、又は復号化及び再組み立てのために傍受されうる。
【００５２】
同様に、Ｈ．３２３において、符号化コンポーネントはＨ．３２３呼び出しが行われていることを示すメッセージについてのパケットを分析できる。例えば、符号化コンポーネントは、Ｈ．２２５／Ｑ．９３１呼び出し設定メッセージ及び／又はＨ．２４５ネゴシエーション及び経路設定メッセージについて、検出し、深いパケット分析を行い、関連するＨ．３２３セッションのために使用される、呼び出される側及び呼び出す側のデータポートを識別できる。それから、現在のプロトコルに従って符号化されたチャネルが設定されて、上述したようにデータフローが傍受され符号化されうる。
【００５３】
以下の記述においては、説明のため、多くの細部は、本発明の徹底的な理解を提供するために記述されている。しかし、当業者であれば、これらの具体的な細部は、本発明を実施するのに必須でないことは明らかである。他の例では、本発明を曖昧にしないために、周知の電気的な構造と回路がブロック図の形式で示される。例えば、具体的な細部は、ここに記載された本発明の実施形態が、ソフトウェアのルーチン、ハードウェアの回路、ファームウェア、又はそれらの組み合わせにより実施されるかどうかについて、提供されない。
【００５４】
本発明の実施形態は、機械が解読可能な媒体（コンピュータが解読可能な媒体、プロセッサが解読可能な媒体、又は内部で具体化されたコンピュータが解読可能なプログラムコードを備えたコンピュータが使用可能な媒体とも呼ばれる。）に格納されたソフトウェアの製品として表されてもよい。機械が解読可能な媒体は、磁気、光、又は電気の記憶媒体（ディスケット、ＣＤ−ＲＯＭ（compact disk read only memory）、記憶装置（揮発性又は不揮発性）、又は同様の記憶機構を含む。）を含む任意の適切な有形の媒体であってもよい。機械が解読可能な媒体は、実行されるときに、プロセッサに本発明の実施形態の方法のステップを実行させる、命令、符号系列、設定情報、又は他のデータの種々の組みを含んでも良い。上述した発明を実施するのに必要な他の命令及び操作が、機械が解読可能な媒体に格納されていてもよいことを、当業者は十分に理解できる。機械が読み取り可能な媒体から実行するソフトウェアは、上述したタスクを実行する電気回路と相互作用してもよい。
【００５５】
本発明の上述した実施形態は、単なる例であることを意図している。修正、改良、及び変更が、ここに添付された特許請求の範囲のみにより定義される本発明の範囲から逸脱することなく、当業者により、特定の実施形態にもたらされてもよい。
【図１】
2010063094.tif 000003
【図２】
2010063094.tif 000004
【図３】
2010063094.tif 000005
【図４】
2010063094.tif 000006
【図５】
2010063094.tif 000007
【図６】
2010063094.tif 000008
【図７】
2010063094.tif 000009
【図８】
2010063094.tif 000010
【図９】
2010063094.tif 000011
【外国語明細書】
2010063094.tif 000012
2010063094.tif 000013
2010063094.tif 000014
2010063094.tif 000015
2010063094.tif 000016
2010063094.tif 000017
2010063094.tif 000018
2010063094.tif 000019
2010063094.tif 000020
2010063094.tif 000021
2010063094.tif 000022
2010063094.tif 000023
2010063094.tif 000024
2010063094.tif 000025
2010063094.tif 000026
2010063094.tif 000027
2010063094.tif 000028
2010063094.tif 000029
2010063094.tif 000030
2010063094.tif 000031
１．
2010063094.tif 000032
２．Representative Drawing
Fig.6
2010063094.tif 000033
2010063094.tif 000034
2010063094.tif 000035
2010063094.tif 000036
2010063094.tif 000037
2010063094.tif 000038
2010063094.tif 000039
2010063094.tif 000040