(57)【要約】  接続インターフェースＳＣのうちの１つＳＣ３が、選択された処理に関連付けられるそれぞれの接続インターフェースによって受信されたデータのストリームを受信できるように指定される。このように指定された前記接続インターフェースＳＣ３は、選択された処理に関与する接続インターフェースのセットによって受信されたデータのストリームを含むバッファメモリを載せる補助的な受信リストＲＸＳをさらに備える。それぞれの接続インターフェースＳＣ１、ＳＣ２、ＳＣ３のバッファメモリＳＫＢは２つの受信リストＲＸ、ＲＸＳに同時に属し、それぞれのバッファメモリが補助的な受信リストＲＸＳ内の現在のバッファメモリに先行するバッファメモリを示す補助的な先行ポインタと、補助的な受信リストＲＸＳ内の現在のバッファメモリに続くバッファメモリを示す補助的な後続ポインタとをさらに備え、それによって前記処理に関与する接続インターフェースのセットによって受信されたデータのストリームに、受信されたデータの前記ストリームの到着順序でアクセスできるようにする。
2011509004.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワーク内の複数のソケット（ＳＣ１、ＳＣ２、ＳＣ３）間で通信するための通信装置であって、それぞれのソケット（ＳＣ１、ＳＣ２、ＳＣ３）が受信データストリームを含むバッファメモリ（ＳＫＢ）を列記する受信リスト（ＲＸ）を備え、前記受信リスト（ＲＸ）が、それぞれのバッファメモリ（ＳＫＢ）が対応する受信リスト内の現在のバッファメモリに先行するバッファメモリを示す「前の」ポインタ（ＰＰ）と、対応する受信リスト内の現在のバッファメモリに続くバッファメモリを示す第２の「次の」ポインタとを備える構造を有する、通信装置において、
ソケット（ＳＣ）のうちの１つ（ＳＣ３）が、選択された処理に関連付けられるそれぞれのソケットによって受信されたデータストリームを受信できるように指定され、
そのようにして指定された前記ソケット（ＳＣ３）が、選択された処理に関与する全てのソケットによって受信されたデータストリームを含むバッファメモリを列記するさらなる受信リスト（ＲＸＳ）をさらに備え、
それぞれのソケット（ＳＣ１、ＳＣ２、ＳＣ３）のバッファメモリ（ＳＫＢ）が両方の受信リスト（ＲＸ、ＲＸＳ）に同時に属し、それぞれのバッファメモリがさらなる受信リスト（ＲＸＳ）内の現在のバッファメモリに先行するバッファメモリを示すさらなる「前の」ポインタ（ＰＰＳ）と、さらなる受信リスト（ＲＸＳ）内の現在のバッファメモリに続くバッファメモリを示すさらなる「次の」ポインタ（ＰＳＳ）とをさらに備え、
前記処理に関与するソケットのセットによって受信されたデータストリームに前記受信データストリームが到着した順序でアクセスできるようにすることを特徴とする、通信装置。
【請求項２】
通信ネットワーク内の複数のソケット（ＳＣ１、ＳＣ２、ＳＣ３）間で通信するための通信方法であって、それぞれのソケット（ＳＣ１、ＳＣ２、ＳＣ３）が受信データストリームを含むバッファメモリ（ＳＫＢ）を列記する受信リスト（ＲＸ）を備え、前記受信リスト（ＲＸ）が、それぞれのバッファメモリ（ＳＫＢ）が対応する受信リスト内の現在のバッファメモリに先行するバッファメモリを示す「前の」ポインタ（ＰＰ）と、対応する受信リスト内の現在のバッファメモリに続くバッファメモリを示す第２の「次の」ポインタとを備える構造を有する、通信方法において、
ソケット（ＳＣ）のうちの１つ（ＳＣ３）が、選択された処理に関連付けられるそれぞれのソケットによって受信されたデータストリームを受信できるように指定され、
そのようにして指定された前記ソケット（ＳＣ３）が、選択された処理に関与する全てのソケットによって受信されたデータストリームを含むバッファメモリを列記するさらなる受信リスト（ＲＸＳ）をさらに備え、
それぞれのソケット（ＳＣ１、ＳＣ２、ＳＣ３）のバッファメモリ（ＳＫＢ）が両方の受信リスト（ＲＸ、ＲＸＳ）に同時に属し、それぞれのバッファメモリがさらなる受信リスト（ＲＸＳ）内の現在のバッファメモリに先行するバッファメモリを示すさらなる「前の」ポインタ（ＰＰＳ）と、さらなる受信リスト（ＲＸＳ）内の現在のバッファメモリに続くバッファメモリを示すさらなる「次の」ポインタ（ＰＳＳ）とをさらに備え、
前記処理に関与するソケットのセットによって受信されたデータストリームに前記受信データストリームが到着した順序でアクセスできるようにすることを特徴とする、通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信ネットワーク内の複数のソケット間の通信に関する。
【０００２】
本発明は、ＴＣＰ（「伝送制御プロトコル」）などのプロトコル、またはそれらの同等物を使用して作動するインターネット通信ネットワークを介して複数のソースからメッセージまたはデータを受信する、どのような処理にも適用できる。
【背景技術】
【０００３】
一般にソケットは、受信データストリームを含むバッファメモリを列記する受信リストと、送信されるべきデータストリームを含むバッファメモリを列記する送信リストとを備える。
【０００４】
受信リストおよび送信リストは、それらを構成するバッファメモリが、それぞれ対応するリスト内の現在のバッファメモリに先行するバッファメモリを示す「前の」ポインタと、対応するリスト内の現在のバッファメモリに続くバッファメモリを示す第２の「次の」ポインタとを含む構造を保有する点で、「二重にリンクしている」と考えられる。
【０００５】
ソケットが１つしかない場合、処理はメッセージまたはデータが前記ソケットの受信リストに到着するのを待つ間にそれらを受信できる。
【０００６】
複数のソケットがある場合、読まれる予定の受信メッセージを有するソケットを見つけるために、まず受信リストの循環分析を実行する必要がある。
【０００７】
この分析を実装するために、複数の知られている解決策、特に「ｓｅｌｅｃｔ」、「ｐｏｌｌ」、「ｋｑｕｅｕｅ」、および「ｅｐｏｌｌ」として知られている解決策が提案された。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
これらの知られている解決策は比較的十分なものではあるが、メッセージが到着する順序を考慮せず、またさらなるタスクを含む。
【０００９】
その結果、ネットワーク性能が著しく劣化し、この劣化が大きくなるにつれて、それだけ読まれる必要のあるソケットが多くなり、たとえば１０００ソケット以上になる。
【００１０】
本発明はこの欠点を緩和する。
【課題を解決するための手段】
【００１１】
本発明は通信ネットワーク内の複数のソケット間で通信するための通信装置に関し、それぞれのソケットは受信データストリームを含むバッファメモリを列記する受信リストを備え、前記バッファメモリはそれぞれ対応する受信リスト内の現在のバッファメモリに先行するバッファメモリを示す「前の」ポインタと、対応する受信リスト内の現在のバッファメモリに続くバッファメモリを示す第２の「次の」ポインタとを備える構造を有する。
【００１２】
本発明の一般的な一定義によれば、ソケットのうちの１つは、選択された処理に関連付けられるそれぞれのソケットによって受信されたデータストリームを受信できるように指定され、そのようにして指定された前記ソケットは、選択された処理に関与する全てのソケットによって受信されたデータストリームを含むバッファメモリを列記するさらなる受信リストをさらに備え、それぞれのソケットのバッファメモリは両方の受信リストに同時に属し、それぞれのバッファメモリはさらなる受信リスト内の現在のバッファメモリに先行するバッファメモリを示すさらなる「前の」ポインタと、さらなる受信リスト内の現在のバッファメモリに続くバッファメモリを示すさらなる「次の」ポインタとをさらに備える。
【００１３】
このようにして、本発明の装置は、それによって指定されたソケットが、前記処理に関与する全てのソケットによって受信されたデータストリームにアクセスできるように、および前記受信データストリームが到着した順序でアクセスできるようにする。
【００１４】
その結果、従来の構造よりも優れたネットワーク性能がもたらされる。
【００１５】
本発明の他の目的は、本発明の装置によって実装された通信方法である。
【００１６】
本発明の他の特徴および諸利点は、以下の詳細な説明および図面によって明らかになるであろう。
【図面の簡単な説明】
【００１７】
【図１】本発明による指定されたソケットを備えた通信装置を概略的に示す図である。
【図２】本発明によるバッファメモリ構造を概略的に示す図である。
【発明を実施するための形態】
【００１８】
図１に、ＴＣＰ／ＩＰメッセージング処理が示されている。
【００１９】
このような処理は、ＴＣＰプロトコルを使用して作動する通信ネットワークを介して複数のソースからメッセージを受信する。
【００２０】
ソケットＳＣはそれぞれのソースに関連付けられ、それぞれＳＣ１、ＳＣ２、およびＳＣ３と表される。
【００２１】
それぞれのソケットＳＣは、受信データストリームを含むバッファメモリＳＫＢを列記する受信リストＲＸを備える。
【００２２】
それぞれのソケットは、送信されるべきデータストリームを含むバッファメモリを列記する送信リスト（図示せず）をさらに備える。
【００２３】
図２では、受信リストＲＸの構造は、それぞれのバッファメモリＳＫＢが、対応するリスト内の現在のバッファメモリに先行するバッファメモリＳＫＢを示す「前の」ポインタＰＰと、対応するリスト内の現在のバッファメモリに続くバッファメモリを示す第２の「次の」ポインタとを備えるような構造である。
【００２４】
バッファメモリは、選択されたソケットのために相互にリンクされている。
【００２５】
それぞれのバッファメモリＳＫＢは、データパケットが送信される、またはそこからデータパケットが受信される装置ＮＤの構造を識別する。
【００２６】
バッファメモリＳＫＢはそれぞれのパケットに関連付けられる。パケットのヘッダはポインタのセットＴＨ、ＩＰＨ、およびＭＡＣによって正確に位置付けられる。
【００２７】
バッファメモリは所与のソケットのためにリンクされており、プロトコルヘッダへのリンク、およびパケットに関連付けられる装置などの情報を含む。
【００２８】
再び図１を参照する。
【００２９】
ソケットＳＣ３は、メッセージング処理などの選択された処理に関連付けられるそれぞれのソケットＳＣ１、ＳＣ２、およびＳＣ３から受信されたデータストリームをさらに受信するように指定される。
【００３０】
ソケットＳＣ３は、前記処理に関与するソケットのセットによって受信されたデータストリームを含むバッファメモリＳＫＢを列記するさらなる受信リストＲＸＳを備える。
【００３１】
再び図２を参照する。
【００３２】
それぞれのソケットＳＣ１、ＳＣ２、ＳＣ３のバッファメモリＳＫＢは、両方の受信リストＲＸとＲＸＳに同時に属する。
【００３３】
バッファメモリＳＫＢは、それぞれさらなる受信リストＲＸＳ内の現在のバッファメモリに先行するバッファメモリを示すさらなる「前の」ポインタＰＰＳと、さらなる受信リストＲＸＳ内の現在のバッファメモリに続くバッファメモリを示すさらなる「次の」ポインタＰＰＳとをさらに備える。
【００３４】
それによって指定されたソケットＳＣ３内で、前記処理に関与するソケットのセットによって受信されたデータストリームに、前記受信データストリームが到着した順序でアクセスできる。
【００３５】
これは、さらなる受信リストＲＸＳが、このデータが様々なソケットに到着した順序で受信データストリームを位置付けることができるようにするポインタ情報を含むからである。
【００３６】
たとえば、図１では、受信データストリームは以下の順序で到着する：
Ｓｋｂ３．１
Ｓｋｂ２．１
Ｓｋｂ１．１
Ｓｋｂ３．２
Ｓｋｂ１．２
Ｓｋｂ１．３
さらなる受信リストＲＸＳを使用してこの順序でデータストリームにアクセスできるのに対して、さらなる受信リストがない場合、アクセスはソケットのランクに基づき、すなわちまずソケットＳＣ１、次いでソケットＳＣ２、そしてＳＣ３となる。このような場合、データストリームが処理される順序は以下のようになる：
Ｓｋｂ１．１
Ｓｋｂ１．２
Ｓｋｂ１．３
Ｓｋｂ２．１
Ｓｋｂ３．１
Ｓｋｂ３．２
【図１】
2011509004.tif 000003
【図２】
2011509004.tif 000004
【国際調査報告】
2011509004.tif 000005
2011509004.tif 000006
2011509004.tif 000007
2011509004.tif 000008