(57)【特許請求の範囲】
【請求項１】
複数のネットワーク・インタフェースを持つサーバ計算機から、ネットワークに接続されたネットワーク接続手段を介して、クライアント計算機に対してデータ通信を行うネットワーク接続システムにおいて、
前記ネットワーク接続手段として、
前記ネットワークと前記サーバ計算機との間に設けられ、前記サーバ計算機の複数のネットワーク・インタフェースにそれぞれ対応した帯域予約可能な複数の通信路により前記サーバ計算機と前記ネットワークとの接続を行うＬＡＮスイッチと、
前記クライアント計算機から要求されるサービス品質（ＱＯＳ）に応じて、前記複数の帯域予約可能な通信路の一つを選択する選択手段を備え、
前記選択手段は、前記サーバ計算機内のルーチング・テーブルを用い、そのルーチング・テーブル中の、前記クライアント計算機が接続されるネットワークのアドレスと、前記複数の通信路に対応した前記サーバ計算機のネットワーク・インターフェースのアドレスを用いて、パケットを送出する前記ネットワーク接続手段のネットワーク・アドレスを求めることにより、通信路を選択することを特徴とするネットワーク接続システム。
【請求項２】
請求項１記載において、前記ＬＡＮスイッチは、ＡＴＭスイッチで構成されることを特徴とするネットワークネットワーク接続システム。
【請求項３】
請求項１記載において、前記サーバ計算機内に、前記ネットワーク・インタフェースごとに仮想チャネルの帯域及び動的な負荷の統計情報を保持するＱＯＳ管理テーブルを設け、通信路の確立要求時にこのテーブルＱＯＳ管理テーブルを参照することを特徴とするネットワーク接続システム。
【請求項４】
請求項１または３記載において、前記サービス品質（ＱＯＳ）は、通常のデータ通信であるＢＥ(Best Effort)、バースト転送向けのデータ通信であるＧＢ(Guaranteed Burst)、ビデオや音声などのストリーム・データの通信であるＧＳ(Guaranteed Stream)の３種類からなるサービス・クラス、ピークバンド幅（Ｍｂｐｓ）、平均バンド幅（Ｍｂｐｓ)の３項目で構成することを特徴とするネットワーク接続システム。
【請求項５】
複数のネットワーク・インタフェースを備え、他の計算機とネットワーク通信を行う計算機において、
前記計算機に、パケットの最終宛先ネットワーク・アドレスと、前記ネットワーク・インタフェースのアドレスと、両者のアドレスから求められる、パケットの次の送付先であるゲートウェイのネットワーク・アドレスとを各エントリに保持するルーティング・テーブルを備え、
少なくとも１つのネットワーク・インタフェースを選択し、選択されたネットワーク・インタフェースから上記ゲートウエイにパケットを送付することを特徴とする計算機。
【請求項６】
請求項５記載において、前記計算機は、前記ネットワーク・インタフェースのそれぞれの使用状況を保持するサービス品質（ＱＯＳ）保持手段を備え、前記ネットワーク・インタフェースを選択するときには、前記ルーティング・テーブルのエントリの中から、最終宛先ネットワーク・アドレスが前記他の計算機のネットワーク・アドレスと等しい少なくとも１つのエントリを選択し、選択されたルーティング・テーブルのエントリのネットワーク・インタフェースのアドレスで示されるネットワーク・インタフェースの上記ＱＯＳ保持手段を比較した結果に基づいて、少なくとも１つのネットワーク・インタフェースを選択することを特徴とする計算機。
【請求項７】
請求項６記載において、前記他の計算機が、前記計算機に対して通信路を開設することを要求する時に、前記他の計算機から指定された、通信路のサービス・クラスと平均通信量とピーク通信量からなるＱＯＳパラメタの指定に対し、前記計算機は、前記ルーティング・テーブルのエントリの中から、最終宛先ネットワーク・アドレスが前記他の計算機のネットワーク・アドレスと等しい少なくとも１つのエントリを選択し、選択されたルーティング・テーブルのエントリのネットワーク・インタフェースのアドレスで示されるネットワーク・インタフェースの前記ＱＯＳ保持手段と前記ＱＯＳパラメタを比較し、前記ＱＯＳパラメタで指定される条件を満たすことができるように、少なくとも１つのネットワーク・インタフェースを選択することを特徴とする計算機。
【請求項８】
請求項６記載において、前記他の計算機と前記計算機が通信路を開設するときに、通信路の開設時に送信する同期（ＳＹＮ）パケットに付随させて、前記計算機が選択した少なくとも１つの前記ネットワーク・インタフェースのネットワーク・インタフェースのアドレスを前記他の計算機に送付することを特徴とする計算機。
【請求項９】
請求項６記載において、前記計算機は、前記複数のネットワーク・インタフェースに接続される複数の第１の通信路を第２の通信路に束ねて公衆網へ送付するＬＡＮスイッチを備え、前記ＬＡＮスイッチは、第１の通信路と第２の通信路とのスイッチングを指定するスイッチング保持手段を備え、前記計算機が選択した第１の通信路が、前記他の計算機が指定した第１の通信路とは異なった場合には、前記第１の計算機が、前記スイッチング保持手段を、前記第１の計算機が選択した第１の通信路になるように、前記ＬＡＮスイッチに指示することを特徴とする計算機。
【請求項１０】
複数のネットワーク・インタフェースを備えた第１の計算機と、ネットワークにゲートウエイ計算機を介して接続された第２の計算機を備え、ネットワーク通信を行う際に、
前記第１の計算機に、パケットの最終宛先ネットワーク・アドレスと、前記ネットワーク・インタフェースのアドレスと、両者のアドレスから求められる、パケットの次の送付先であるゲートウェイ計算機のネットワーク・アドレスとを各エントリに保持するルーティング・テーブルを備え、
前記第１の計算機は、少なくとも１つのネットワーク・インタフェースを選択し、選択されたネットワーク・インタフェースから上記ゲートウエイにパケットを送付することを特徴とする並列ネットワーク接続方法。
【請求項１１】
請求項１０記載において、前記第２の計算機が、前記第１の計算機に対して通信路の開設を要求したとき、前記第１の計算機はルーティング・テーブルのエントリの中から、最終宛先ネットワーク・アドレスが第２の計算機のネットワーク・アドレスと等しい少なくとも１つのエントリを選択し、選択したルーティング・テーブルのエントリのネットワーク・インタフェース・アドレスで示されるネットワーク・インタフェースのＱＯＳ保持手段と前記第２の計算機が指定するＱＯＳパラメタを比較し、ＱＯＳパラメタで指定される条件を満たすことができるように、少なくとも１つのネットワーク・インタフェースを選択し、そのネットワーク・インタフェースを通して前記第１の計算機はゲートウェイにパケットを送付することを特徴とする並列ネットワーク接続方法。
【請求項１２】
請求項１０記載において、前記第１の計算機は前記第２の計算機に対して、通信路の開設時に送信する同期（ＳＹＮ）パケットに付随させて、選択した全てのネットワーク・インタフェースのネットワーク・アドレスを教えることを特徴とする並列ネットワーク接続方法。
【請求項１３】
請求項１０記載において、帯域の大きいネットワーク・インタフェースを備えた第２の計算機の場合に、前記第１の計算機は複数のネットワーク・インタフェースを選択し、前記第２の計算機に対して、通信路の開設時に送信する同期（ＳＹＮ）パケットに付随させて、選択した複数のネットワーク・インタフェースのネットワーク・アドレスを教え、もって前記選択した複数のネットワーク・インタフェース並列に用いてデータ通信を行なうことを特徴とする並列ネットワーク接続方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のネットワーク・インタフェースを備えた計算機のネットワーク接続システム及び並列ネットワーク接続方法に関し、特に、ＡＴＭネットワークのような多様なサービス品質（ＱＯＳ）に応えることが要求されるネットワーク接続システムに係わる。
【０００２】
【従来の技術】
図１５に、複数のネットワーク・インタフェースを備えたサーバにおける従来のネットワーク接続を示す。複数のネットワーク・インタフェースを備えたサーバとしては、例えば、Ａｕｓｐｅｘ社のＮＦＳサーバや、Ｍａｘｉｍｕｍ  Ｓｔｒａｔｅｇｙ社のストレージサーバが知られている。
【０００３】
図１５において、５００はサーバ、５０１、５０２、５０３はネットワーク・インタフェース、５０５はルーティング・テーブル、５１０、５２０、５３０はそれぞれネットワーク・インタフェース５０１、５０２、５０３に接続されるネットワーク、５１１ないし５１３、５２１ないし５２３、５３１ないし５３３は、それぞれネットワーク５１０、５２０、５３０に接続されるクライアント（ワークステーションやＰＣなど）を示す。５４０は公衆網５７０に接続されるネットワーク、５４１は、ネットワーク５４０に接続されるクライアントを示す。尚、サーバに備えられるネットワーク・インタフェースは、実体としてはインターフェース用のカード及び関連するソフトウエアなどで構成される。
【０００４】
サーバ５００は、ネットワーク５１０に接続されたゲートウェイ５５０とＰＢＸ（Ｐｒｉｖａｔｅ  Ｂｒａｎｃｈ  Ｅｘｃｈａｎｇｅ：構内交換機）５６０を介して、公衆網５７０と接続される。クライアント５１１、５１２、５１３にはそれぞれ、ネットワーク５１０のネットワーク・アドレスｎｅｔ１．１、ｎｅｔ１．２、ｎｅｔ１．３が割り当てられ、ネットワーク・インタフェース５０１には、ネットワーク５１０のネットワーク・アドレスｎｅｔ１．１１が割り当てられている。クライアント５１１、５１２、５１３は、ｎｅｔ１．１１を使ってのみ、つまりネットワーク５１０を通してのみサーバ５００とデータ通信を行うことができる。同様に、クライアント５２１、５２２、５２３はネットワーク５２０を通してサーバ５００とデータ通信を行い、クライアント５３１、５３２、５３３はネットワーク５３０を通してサーバ５００とデータ通信を行う。公衆網５７０に接続されたクライアント５４１は、ＰＢＸ５６０、ゲートウェイ５５０、ネットワーク５１０を経由してサーバ５００とデータ通信を行う。ＬＡＮ１〜ＬＡＮ３に接続されているクライアントは、あらかじめ接続されているネットワーク５１０、５２０、５３０を通じてのみ、データ通信を行なうことができる。
【０００５】
サーバ５００からクライアント５１１、５１２、５１３、クライアント５２１、５２２、５２３、またはクライアント５３１、５３２、５３３へデータを転送するときには、サーバ５００のオペレーティング・システムが管理するルーティング・テーブル５０５の指定にしたがって、ネットワーク・インタフェース５０１、５０２、５０３（ネットワーク５１０、５２０、５３０）のいずれか一つが使われる。一方、サーバ５００からクライアント５４１へデータを転送するときには、ルーティング・テーブル５０５の指定にしたがって、ネットワーク５１０に接続されているゲートウエイ５５０が選択され、ゲートウエイ５５０はサーバ５００から送られてきたパケットをネットワーク５４０に送る。この場合には、ネットワーク・インタフェース５０１のみが使用されることになる。
【０００６】
図２に従来のルーティング・テーブルの構成を示す。図２において、１６１ないし１６５はルーティング・テーブルのエントリの項目を示す。各々のエントリは、宛先アドレスをハッシュ関数１８０で変換した値で定まるエントリ１００ないし１５０をヘッダとする線型リストに接続される。宛先アドレスをキーにして線型リストをたどり、宛先アドレス１６１がキーと一致するエントリを見つける。最初に見つかったエントリのネットワーク・アドレスであるゲートウェイ・アドレス１６２からパケットを送出する。例えば、図１５では、サーバ５００からは、ネットワーク・インタフェース５０１を介し、ゲートウェイ５５０に接続されているネットワーク５１０を使ってクライアント５４１と通信することができる。（尚、サーバ５００のネットワーク・インタフェース５０１、５０２、５０３を介して、ネットワーク５１０、５２０、５３０に接続されている各クライアントと通信を行う場合には、ゲートウエイ・アドレス１６２の代わりにネットワーク・アドレスｎｅｔ１．１１、ｎｅｔ２．１１、ｎｅｔ３．１１を直接指定することになる。）
ルーティング・テーブルの詳細は、Ｄｏｕｇｌａｓ  Ｅ．  Ｃｏｍｅｒ他著の”Ｉｎｔｅｒｎｅｔｗｏｒｋｉｎｇ  ｗｉｔｈ  ＴＣＰ／ＩＰ，    Ｖｏｌｕｍｅ  Ｉ，  ＩＩ”  （Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ）や、Ｓ．  Ｊ．  Ｌｅｆｆｌｅｒ他著の”Ｔｈｅ  Ｄｅｓｉｇｎ  ａｎｄ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  ｔｈｅ  ４．３ＢＳＤ  ＵＮＩＸ  Ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ”  （Ａｄｄｉｓｏｎ  Ｗｅｓｌｅｙ）  に示されている。このように、ルーティング・テーブルの役割は、パケットの宛先アドレスをキーにして、次にこのパケットを送出するゲートウェイなどのネットワーク・アドレスを明らかにする点にある。
【０００７】
さらに、ルーティング・テーブル・エントリの中のネットワーク・インタフェース情報テーブルのエントリへのポインタ１６３によって、ゲートウェイに到達するネットワーク・インタフェースに関する情報１７１ないし１７６を得ることができる。ネットワーク・インタフェースに関する情報として、ネットワーク・インタフェースの最大転送長（ＭＴＵ：  Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）１７２、このネットワーク・インタフェースを通過した入力・出力パケット数１７３、１７４などがある。
【０００８】
【発明が解決しようとする課題】
上記従来技術によると、クライアントとサーバのデータ通信では、サーバのネットワーク・インタフェースが複数個存在するにもかかわらず、クライアントが接続されているただ一つのネットワーク・インタフェースしか使用できないため、ネットワーク・インタフェースの負荷状況に応じて動的にネットワーク・インタフェースを選択し、負荷を分散させることができないという問題があった。これは、クライアントの多様なサービス品質（ＱＯＳ）に応ずることができないという問題につながる。例えば、昨今、音声や画像やデータなどマルチメディア・データを通信するニーズが高まっているが、容量がかなり大きくなるため、負荷が一つのネットワーク・インタフェースに集中してしまい、クライアントが要求するサービス品質（ＱＯＳ）を満たすことが困難であった。
【０００９】
さらに、上記従来技術によると、クライアントのネットワーク・インタフェースのバンド幅の方が、サーバの各ネットワーク・インタフェースのバンド幅よりも大きい場合には、サーバからクライアントへの転送に使用されるネットワーク・インタフェースがただ一つに限られるため、クライアントのネットワーク・インタフェースのバンド幅を十分に活用できないという問題があった。
【００１０】
本発明の目的は、上記課題を解決し、複数のネットワーク・インタフェースを備えたサーバにおいて、クライアントが要求するサービス品質（ＱＯＳ）に応じたネットワーク・インタフェースを用いて通信を行ったり、複数本のネットワーク・インタフェースを並列に用いて通信を行うことができるネットワーク接続システム及び並列ネットワーク接続方法を提供することにある。
【００１１】
また、本発明の他の目的は、ＡＴＭネットワークのような帯域を予約できるネットワークを用いて、複数のネットワーク・インタフェースを有するサーバに接続し、コネクション設立時にクライアントが要求するサービス品質（ＱＯＳ）を満たすネットワーク・インタフェースを使用することができるネットワーク接続システム及び並列ネットワーク接続方法を提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明は、第１の計算機（サーバ）のルーティング・テーブルの各エントリにネットワーク・インタフェースのアドレスであるネットワーク・インタフェース・アドレスを保持する。
【００１３】
また、各ネットワーク・インタフェースの使用状況を保持するサービス品質（ＱＯＳ）保持手段を備える。更に、第２の計算機（クライアント）が第１の計算機と通信路を開設するときに指定するＱＯＳパラメタを指定する手段を備える。具体的には、第２の計算機（クライアント）が、第１の計算機（サーバ）に対して通信路の開設を要求したとき、第１の計算機はルーティング・テーブルのエントリの中から、最終宛先ネットワーク・アドレスが第２の計算機のネットワーク・アドレスと等しい少なくとも１つのエントリを選択し、選択したルーティング・テーブルのエントリのネットワーク・インタフェース・アドレスで示されるネットワーク・インタフェースのＱＯＳ保持手段と第２の計算機が指定するＱＯＳパラメタを比較し、ＱＯＳパラメタで指定される条件を満たすことができるように、少なくとも１つのネットワーク・インタフェースを選択し、そのネットワーク・インタフェースを通して第１の計算機はゲートウェイにパケットを送付する。また、第１の計算機は第２の計算機に対して、通信路の開設時に送信する同期（ＳＹＮ）パケットに付随させて、選択した全てのネットワーク・インタフェースのネットワーク・アドレスを教える。
【００１４】
また、帯域の大きいネットワーク・インタフェースを備えた第２の計算機の場合には、第１の計算機の複数のネットワーク・インタフェースを並列に用いてデータ通信を行えるように構成する。
【００１５】
クライアントが複数のネットワーク・インタフェースを備えたサーバとデータ通信を行うとき、クライアントが要求するサービス品質（ＱＯＳ：Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を満たすことができるように、各ネットワーク・インタフェースの動的な負荷の大きさなどに応じて、サーバはネットワーク・インタフェースを選択できることが望ましい。
【００１６】
本発明では、まず、サーバが同一のクライアントに対して、異なるネットワーク・インタフェースを用いてデータ通信を行えるようにするために、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）スイッチのようなＬＡＮスイッチの複数の帯域予約可能な仮想チャネルを用いることとし、従来のルーティング・テーブル・エントリにネットワーク・インタフェースのアドレスを追加する。クライアントのネットワーク・アドレスとネットワーク・インタフェース・アドレスの両者によって、パケットを送出するゲートウェイのネットワーク・アドレスを求めることによって、異なる経路を選択できるようにする。
【００１７】
さらに、（ａ）サーバに、ネットワーク・インタフェースごとに仮想チャネルの帯域や動的な負荷の統計情報を保持するＱＯＳ管理テーブルを設け、データ通信路の確立要求時にこのテーブル・エントリを参照し、（ｂ）従来の３ウェイハンドシェークを拡張して、コネクション確立時において、サーバがクライアントにＳＹＮ（同期）／ＡＣＫ（応答）を返すときに、ＳＹＮのパラメタとしてサーバが選択したコネクションのネットワーク・インタフェース・アドレスを添付し、クライアントはＳＹＮで指定されたネットワーク・インタフェース・アドレスに対してＡＣＫを返すことによって、サーバが選択したネットワーク・インタフェースを用いてコネクションを確立し、以降のデータ通信を行えるようにする。また、帯域の大きいネットワーク・インタフェースを備えたクライアントの場合には、サーバの複数のネットワーク・インタフェースを並列に用いてデータ通信を行えるようにするために、３ウェイハンドシェークによるコネクション確立時において、サーバがクライアントにＳＹＮ／ＡＣＫを返すときに、ＳＹＮのパラメタとしてサーバが選択したネットワーク・インタフェース数と各々のネットワーク・アドレスを添付し、クライアントはＳＹＮで指定された全てのネットワーク・アドレスに対してＡＣＫを返し、サーバが選択したネットワーク・インタフェースを用いてコネクションを確立し、以降のデータ通信を行えるようにする。さらに、プロトコル層とアプリケーション層の間において、パケットの分割・統合を行うことによって、アプリケーション・プログラムの変更なしに、並列通信を実現することができるようにする。
【００１８】
【発明の実施の形態】
（１）実施形態例１
以下、本発明の詳細な実施形態例を説明する。
【００１９】
図３は、本発明の実施形態例１に係るネットワーク接続システムの全体構成図を示す。図３において、３０００は本発明が適用されるサーバ計算機、３０５０は例えばＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）スイッチのようなＬＡＮスイッチ、３０６０はＰＢＸ（Ｐｒｉｖａｔｅ  Ｂｒａｎｃｈ  ｅＸｃｈａｎｇｅ：構内交換機）、３０７０は公衆網、３１００、３２００、３３００、３４００はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、３１０１、３２０１、３３０１、３４０１はクライアント計算機、３１０２、３２０２は本発明が適用されるゲートウェイ計算機を示す。
【００２０】
サーバ３０００は、ワークステーションなどの単一の計算機または並列計算機で構成され、ネットワーク・インタフェース３００１、３００２、３００３、３００４を通して、それぞれ通信路３０１１、３０１２、３０１３、３０１４に接続され、これらの通信路はＬＡＮスイッチ３０５０と接続される。また、ネットワーク・インタフェース３００５、３００６を通して、通信路３０１５、３０１６に接続され、これらの通信路はそれぞれＬＡＮ３３００、３４００と接続される。ＬＡＮスイッチ３０５０は、ＡＴＭスイッチやファイバーチャネルのようなスイッチで構成され、通信路３０７４を通してＰＢＸ３０６０と接続され、ＰＢＸ３０６０は通信路３０７３を通して公衆網３０７０に接続される。ここで、通信路３０１１、３０１２、３０１３、３０１４、３０７４、３０７３は、例えばＡＴＭのように、それぞれ、１つないしは複数の帯域予約可能な仮想チャネルから構成され、ＬＡＮスイッチ３０５０やＰＢＸ３０６０は、仮想チャネル間のスイッチングを行う。ＬＡＮスイッチとサーバとの間に複数の仮想チャネルを有していることがポイントとなっている。クライアント３１０１、３２０１、３３０１、３４０１は、ＰＣやワークステーションなどの計算機で構成され、それぞれ、通信路３１１０、３２１０、３３１０、３４１０を通してＬＡＮ３１００、３２００、３３００、３４００と接続され、ゲートウェイ３１０２は、ネットワーク接続するための計算機であり、通信路３１１１、３０７１、３０８１を通して、それぞれＬＡＮ３１００、公衆網３０７０、公衆網３０８０と接続され、ゲートウェイ３２０２も同じくネットワーク接続するための計算機であり、通信路３２１１、３０７２、３０８２を通して、それぞれＬＡＮ３２００、公衆網３０７０、公衆網３０８０と接続される。尚、ネットワーク接続手段としては、ゲートウエイの他に、ルータやスイッチなども含まれる。
【００２１】
本実施形態例では、ＬＡＮスイッチ３０５０と公衆網３０７０を含むネットワークには、ネットワーク・アドレスとしてｎｅｔ１．＊が割り当てられ、公衆網３０８０を含むネットワークにはｎｅｔ２．＊、ＬＡＮ１、ＬＡＮ２、ＬＡＮ３、ＬＡＮ４にはそれぞれｎｅｔ１１．＊、ｎｅｔ１２．＊、ｎｅｔ１３．＊、ｎｅｔ１４．＊が割り当てられている。通信路３０１１ないし３０１６が接続されるサーバ３０００のネットワーク・インタフェース３００１ないし３００６には、それぞれネットワーク・アドレスｎｅｔ１．１、ｎｅｔ１．２、ｎｅｔ１．３、ｎｅｔ１．４、ｎｅｔ１３．１、ｎｅｔ１４．１が割り当てられ、クライアント３１０１、３２０１、３３０１、３４０１には、それぞれｎｅｔ１１．１０、ｎｅｔ１２．１０、ｎｅｔ１３．１０、ｎｅｔ１４．１０、ゲートウェイ３１０２の各ネットワーク・インタフェースには、ｎｅｔ１１．９、ｎｅｔ１．１１、ｎｅｔ２．１１、ゲートウェイ３２０２の各ネットワーク・インタフェースには、ｎｅｔ１２．９、ｎｅｔ１．１２、ｎｅｔ２．１２が割り当てられている。
【００２２】
図３において、サーバ３０００はクライアント３１０１とデータ通信を行う場合、複数の経路を選択することができる。サーバ３０００は、ネットワーク・インタフェース３００１、３００２、３００３、３００４のいずれを使用してもＬＡＮスイッチ３０５０、ＰＢＸ３０６０、公衆網３０７０、ゲートウェイ３１０２、ＬＡＮ３１００を経て、クライアント３１０１と通信ができる。また、公衆網３０７０からクライアント３１０１までの他の経路として、ゲートウェイ３２０２、公衆網３０８０、ゲートウェイ３１０２、ＬＡＮ３１００を経る経路がある。
【００２３】
いま、クライアント３１０１がサーバ３０００とＴＣＰ／ＩＰプロトコルを用いてコネクション指向のデータ通信を行う場合を用いて、本発明の実施形態例１を説明する。まず、図１６にプログラム記述の実施形態例を示す。本プログラムは、Ｗ．  Ｄ．  Ｓｔｅｖｅｎｓ著の”ＵＮＩＸ  ｎｅｔｗｏｒｋ  ｐｒｏｇｒａｍｍｉｎｇ”  （Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ）  にも記されているｓｏｃｋｅｔを用いたプログラムを拡張している。９００１から９０１５がサーバ３０００で実行されるプログラムを示し、９０５０から９０６１がクライアント３１０１で実行されるプログラムを示す。サーバ３０００は、ｓｏｃｋｅｔの生成（９００２）、ｓｏｃｋｅｔのアドレス付け（９００６）を行った後、ｌｉｓｔｅｎ（）コールによって、任意のクライアント（９００４）からのコネクション設立要求を待つ（９００７）。クライアント３１０１は、ｓｏｃｋｅｔを生成（９０５３）した後、サーバ３０００のネットワーク・アドレスのひとつであるｎｅｔ１．１（９０５１）を指定して（９０５５）、ｃｏｎｎｅｃｔ（）コールによってサーバとのコネクション設立を要求する（９０５８）。
【００２４】
サーバとのコネクション設立を要求するときに、通信路のＱＯＳを指定する（９０５７）。ＱＯＳは、９０５２に示すように、サービス・クラス、ピークバンド幅（Ｍｂｐｓ）、平均バンド幅（Ｍｂｐｓ）の３項目で構成される。サービス・クラスにはＢｅｓｔ  Ｅｆｆｏｒｔ  （ＢＥ）、ＧＢ  （Ｇｕａｒａｎｔｅｅｄ  Ｂｕｒｓｔ）、ＧＳ  （Ｇｕａｒａｎｔｅｅｄ  Ｓｔｒｅａｍ）の３種類がある。ＢＥは通常のデータ通信で、通信路の込み具合に応じてデータ・スループットが変化する。ＧＢはバースト転送向けのデータ通信で、バースト転送時のスループットをできる限り保証する。バースト転送開始前に帯域の予約を増減させることもできる。ＧＳはビデオや音声などのストリーム・データの通信で、あらかじめ確保されたバンド幅を保証する。サービス・クラス指定をオフにすることもできる。
【００２５】
クライアント３１０１がｃｏｎｎｃｅｔ（）コールによって通信路の開設を要求し、サーバ３０００がクライアントの要求を受け入れると、ａｃｃｅｐｔ（）コールによってクライアントとサーバ間の通信路が確立する（９００９）。サーバは新たに確立した通信路で用いるソケットの記述子ｎｅｗｆｄを割り当て（９００９）、子プロセスを生成し（９０１０）、子プロセスとクライアントとの間でデータ通信が行われる（９０１３）。親プロセスは、他のクライアントからの要求を受け付けるべく待ち状態に戻る（９０１５、９００８）。クライアント３１０１も通信路が確立すると（９０５８）、サーバとの間でデータ通信を行う（９０５９）。
【００２６】
次に図４、図１、図９、図１０、図１１、図１２を用いて、ＴＣＰ／ＩＰプロトコル層におけるクライアント３１０１とサーバ３０００との間のコネクションの確立方法の実施形態例を示す。
【００２７】
まず、図４を用いてコネクション確立方法の処理の概略を示す。図４において、３５００、３５０１、３５０２、３５０３、３５５０、３５５１、３５５２は、ＴＣＰプロトコルの状態を示し、３５７０、３５７１、３５７２はクライアント３１０１とサーバ３０００との間でコネクションを確立する３ウェイ・ハンドシェークを示す。オリジナルの３ウェイ・ハンドシェークに関しては、Ｄｏｕｇｌａｓ  Ｅ．  Ｃｏｍｅｒ他著の”Ｉｎｔｅｒｎｅｔｗｏｒｋｉｎｇ  ｗｉｔｈ  ＴＣＰ／ＩＰ，    Ｖｏｌｕｍｅ  Ｉ，  ＩＩ”  （Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ）に詳しく記されている。
【００２８】
ＣＬＯＳＥＤ状態（３５００）のサーバ３０００は、図１６に示したプログラム中のｌｉｓｔｅｎ（）コールが実行されると（９００７）ＬＩＳＴＥＮ状態になり、クライアントからのコネクション開設要求を待つ（３５０１）。ＣＬＯＳＥＤ状態３５５０のクライアント３１０１は、図１６に示したプログラム中のｃｏｎｎｅｃｔ（）コールが実行されると（９０５８）、サーバ３０００のネットワーク・インタフェースのひとつであるネットワーク・アドレスｎｅｔ１．１とのデータ通信を制御するために必要な制御ブロックＴＣＢ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）を作成する（３５６０）。次に、ｎｅｔ１．１に対してコネクション開設を要求するために（３５６１）、ＳＹＮ（同期）フラグを立てたＴＣＰパケットをサーバ３０００へ送る。このとき、クライアント３１０１は、コネクションのＱＯＳ（サービス品質）をＳＹＮフラグ付ＴＣＰパケットのパラメタとしてサーバ３０００へ送付する（３５７０）。ＱＯＳは、図１６の９０５２に示したように、サービスクラス、ピークバンド幅（Ｍｂｐｓ）、平均バンド幅（Ｍｂｐｓ）の３項目で構成される。クライアント３１０１は、ＳＹＮフラグ付ＴＣＰパケットを送ると、ＳＹＮ  ＳＥＮＴ状態になる（３５５１）。
【００２９】
ＬＩＳＴＥＮ状態のサーバ３０００は、ＱＯＳ（サービス品質）付きのＴＣＰパケットを受け取ると、クライアント３１０１のＱＯＳを満たすネットワーク・インタフェースを探す。ネットワーク・インタフェースを選択する手順の実施形態例は後述する。いま、図３におけるネットワーク・インタフェース３００３、ネットワーク・アドレスｎｅｔ１．３のインタフェースを選択した場合について述べる（３５１０）。サーバ３０００は、ネットワーク・アドレスｎｅｔ１．３に対応するＴＣＢ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）を作成する（３５１１）。ＴＣＢには、クライアント３１０１のネットワーク・アドレス、サーバ３０００の選択されたネットワーク・インタフェースのネットワーク・アドレスｎｅｔ１．３、通信プロトコル名ＴＣＰが保持されている。サーバ３０００は、ＴＣＢを作成した後、クライアント３１０１に対して、クライアントからのＳＹＮに対するＡＣＫ（応答）フラグの付いたＴＣＰパケットと、ＳＹＮフラグの付いたＴＣＰパケットをクライアント３１０１に送り（３５７１）、このＴＣＢをＳＹＮ  ＲＥＣＶＤ状態にする（３５０２）。ＳＹＮフラグには、パラメタとしてネットワーク・アドレスｎｅｔ１．３を添付する。クライアント３１０１は、パラメタとしてネットワーク・アドレスｎｅｔ１．３付随したＳＹＮフラグ付きＴＣＰパケットを受け取ると、ｎｅｔ１．１用に作成したＴＣＢを削除し（３５６２）、ｎｅｔ１．３に対応したＴＣＢを作成する（３５６３）。次に、クライアント３１０１はｎｅｔ１１．３に対して、ＡＣＫフラグ付ＴＣＰパケットを送り（３５７２）、ＥＳＴＡＢＬＩＳＨＥＤ状態となる（３５５２）。サーバ３０００もＡＣＫを受け取るとＥＳＴＡＢＬＩＳＨＥＤ状態となり（３５０３）、以降、クライアントとサーバ間でＳＥＮＤ／ＲＥＣＥＩＶＥによる通信を行うことができる（３５７３）。
【００３０】
以上図４を用いて示した本発明のコネクション確立方法の詳細を、図１、図９、図１０、図１１、図１２を用いて説明する。図９、図１０、図１１は、ＬＩＳＴＥＮ状態（３５０１）でクライアントからのコネクション設立要求を待っている状態以降のサーバ３０００の処理のフローチャート図、図１２はクライアント３１０１の処理のフローチャート図、図１は、ネットワーク・インタフェースを選択するときに用いるデータ構造を示す。
【００３１】
図９において、ＬＩＳＴＥＮ状態（３５０１）のサーバ３０００は、クライアント３１０１からＱＯＳ指定付きのＳＹＮフラグの付いたＴＣＰパケットを受信すると（３５７０）、クライアント３１０１のＱＯＳ要求を満たし、サーバ３０００のネットワーク・インタフェースの負荷を分散できるネットワーク・インタフェースを選択するため（４０１０）、以下の処理を行う。
【００３２】
図１を一緒に用いて、ネットワーク・インタフェースを選択する手順について説明する。図１は、本発明の実施形態例１にかかるルーティング・テーブル、ネットワーク・インタフェース情報テーブル、ＱＯＳ管理テーブルを示す。サーバ３０００はネットワーク・インタフェースを選択するときに、これらのテーブルを参照する。
【００３３】
図１において、１０ないし６０はルーティング・テーブルの各エントリの並びのヘッダである。クライアント３１０１のネットワーク・アドレス（サーバ３０００から見た場合には宛先アドレス）ｎｅｔ１１．１０をハッシュ関数で変換し、ルーティング・テーブル・エントリをたどる。ルーティング・テーブルの各エントリは、最終的にパケットを送り届ける先であるクライアントの宛先アドレス７０、宛先アドレスへ到達できるサーバ３０００のネットワーク・インタフェースのネットワーク・アドレス７１、宛先アドレス７０へ到達するために次ぎにパケットを送出するゲートウェイのネットワーク・アドレス７２、ゲートウェイが接続されているネットワーク・インタフェースの情報とネットワーク・インタフェースのＱＯＳ情報を保持するネットワーク・インタフェース情報テーブルへのポインタ７３、宛先が等しいルーティング・テーブル・エントリを高速にサーチするためのポインタ７４、ルーティング・テーブル・エントリのリストを作成するためのポインタ７５、その他７６から構成される。ネットワーク・インタフェース情報テーブルの各エントリは、ネットワーク・インタフェースの名前８０、当該ネットワーク・インタフェースが処理できる最大パケット長（ＭＴＵ：Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）８１、当該ネットワーク・インタフェースを通して送受信されたパケット数の累積値を保持する受信パケット数８２と送信パケット数８３、ネットワーク・インタフェース情報テーブルのエントリの線型リストを作成するためのポインタ８４、当該ネットワーク・インタフェースのＱＯＳ情報や動的負荷情報を保持するＱＯＳ管理テーブル・エントリへのポインタ８５、その他８６から構成される。ＱＯＳ管理テーブルの各エントリは、当該ネットワーク・インタフェースの最大バンド幅（メガビット／秒）９０、バーチャル・チャネル（ＶＣ）の本数９１、各バーチャル・チャネルに割り当てられているバンド幅（帯域幅）（メガビット／秒）９２、各バーチャル・チャネルのコネクションが設立されているか否かを示すフラグ９３、サービスクラスがＧＢかＧＳで、コネクションが設立されているバーチャル・チャネル本数９４、サービスクラスがＧＢかＧＳでコネクションが設立され、予約済になっているバンド幅の合計値（メガビット／秒）９５、最新１分間のピーク転送量（メガビット／秒）９６、最新１分間の平均転送量（メガビット／秒）９７などからなる。
【００３４】
図１３を用いて、図３のネットワーク接続構成における、サーバ３０００のルーティング・テーブル全体の実施形態例を示す。図１３において、３８００がルーティング・テーブルの全体、３８０１ないし３８１４の各々がルーティング・テーブル・エントリの中の宛先アドレス（７０）、ネットワーク・インタフェースのネットワーク・アドレス（７１）、ゲートウェイのネットワーク・アドレス（７２）を示す。
【００３５】
クライアント３１０１を含むＬＡＮ３１００のネットワーク・アドレスは、宛先アドレスｎｅｔ１１．＊（３８０１ないし３８０８）で示し、ＬＡＮ３２００、３３００、３４００のそれぞれのネットワーク・アドレスは、宛先アドレスｎｅｔ１２．＊（３８０９ないし３８１２）、ｎｅｔ１３．＊（３８１３）、ｎｅｔ１４．＊（３８１４）で示している。エントリ３８０１は、ｎｅｔ１１．＊へのルーティングは、サーバ３０００のネットワーク・インタフェース３００１（ネットワーク・アドレスはｎｅｔ１．１）を用いて、ゲートウェイ３１０２（ネットワーク・アドレスｎｅｔ１．１１）経由で可能であることを示している。同様に、エントリ３８０２、３８０３、３８０４は、それぞれネットワーク・インタフェース３００２、３００３、３００４（ネットワーク・アドレスはｎｅｔ１．２，  ｎｅｔ１．３，  ｎｅｔ１．４）を用いて、ゲートウェイ３１０２経由でｎｅｔ１１．＊へのルーティングが可能であることを示し、エントリ３８０５、３８０６、３８０７、３８０８は、それぞれネットワーク・インタフェース３００１、３００２、３００３、３００４（ネットワーク・アドレスはｎｅｔ１．１，  ｎｅｔ１．２，  ｎｅｔ１．３，  ｎｅｔ１．４）を用いて、ゲートウェイ３２０２（ネットワーク・アドレスｎｅｔ１．１２）経由でｎｅｔ１１．＊へのルーティングが可能であることを示す。以上のように、ルーティング・テーブルにあらかじめｎｅｔ１１．＊へ到達可能なネットワーク・インタフェースとゲートウェイ・アドレスを設定しておき、コネクション設立時に、クライアント３１０１が要求するＱＯＳやサーバ３０００のネットワーク・インタフェースの負荷やＬＡＮスイッチ３０５０の負荷に応じてデータ通信路（経路）を選択する。同様に、エントリ３８０９、３８１０、３８１１、３８１２は、それぞれネットワーク・インタフェース３００１、３００２、３００３、３００４（ネットワーク・アドレスはｎｅｔ１．１，  ｎｅｔ１．２，  ｎｅｔ１．３，  ｎｅｔ１．４）を用いて、ゲートウェイ３２０２（ネットワーク・アドレスｎｅｔ１．１２）経由でｎｅｔ１２．＊へのルーティングが可能であることを示す。
【００３６】
図３によると、ゲートウェイ３１０２経由でもｎｅｔ１２．＊へのルーティングは可能であるが、図１３のルーティング・テーブルの設定によると、ゲートウェイ３１０２経由のルーティングは行わせていない。エントリ３８１３、３８１４のネットワーク・インタフェース・アドレスが未指定なのは、ｎｅｔ１３．＊とｎｅｔ１４．＊へのルーティングは、サーバ３０００のネットワーク・インタフェースの数が１つずつしかないため、指定する必要がないためである。なお、従来のルーティング・テーブルでは、ネットワーク・インタフェースのネットワーク・アドレスのカラムが、ルーティング・テーブルには無かった。
【００３７】
コネクションが確立されると、テーブル３８２０に、データ通信を行うクライアント（宛先アドレス）とサーバのネットワークインタフェースのネットワーク・アドレス（送信元アドレス）を登録する。図１３のテーブル３８２０の場合には、クライアント３１０１とサーバ３０００のネットワーク・インタフェース３００２、３００３、３００４の間でコネクションが確立されている（３８２１、３８２２、３８３３）。
【００３８】
図９の説明に戻る。サーバ３０００は、クライアント３１０１のネットワーク・アドレスｎｅｔ１１．１０をハッシュ関数にかけ、ルーティング・テーブル・エントリのリストのヘッダ４０を求める（４０２０）。ヘッダ４０からルーティング・テーブル・エントリをたどり、そのエントリの宛先アドレス７０が、クライアント３１０１のネットワーク・アドレスｎｅｔ１１．１０もしくはクライアント３１０１のサブネットワーク・アドレスｎｅｔ１１と等しいか否かを調べる（４０３０）。もし、アドレスが不一致の場合には、ルーティング・テーブル・エントリの次エントリへのポインタ７５をたどり、次のエントリへ進み（４０３５）、クライアント３１０１のネットワーク・アドレスｎｅｔ１１．１０もしくはクライアント３１０１のサブネットワーク・アドレスｎｅｔ１１と等しい宛先アドレス７０のルーティング・テーブル・エントリが見つかるまで繰り返す（４０３０、４０３５）。
【００３９】
アドレスが等しいルーティング・テーブル・エントリが見つかった場合について説明する。
【００４０】
（Ａ）クライアント３１０１が要求するサービス・クラスがＧＢ（Ｇｕａｒａｎｔｅｅｄ  Ｂｕｒｓｔ）かＧＳ（Ｇｕａｒａｎｔｅｅｄ  Ｓｔｒｅａｍ）の場合には、ルーティング・テーブル・エントリ中のポインタ７３から、ネットワーク・インタフェース情報テーブル・エントリを調べ（４０４０）、その中のＱＯＳ管理テーブル・エントリへのポインタ８５の値をワークメモリ領域に記録する（４０５０）。ルーティング・テーブル・エントリ中のポインタ７４を用いて、同じ宛先アドレスの全てのルーティング・テーブル・エントリを求め（４０６０）、そのネットワーク・インタフェース情報テーブル・エントリの中のＱＯＳ管理テーブル・エントリへのポインタ８５の値をワークメモリ領域に記録する（４０５０）。本実施形態例の場合には、図１３のルーティング・テーブル３８００によると、エントリ３８０１ないし３８０８の８つのエントリが選択される。
【００４１】
図１０に移る。次に、４０５０で記録したＱＯＳ管理テーブル・エントリへのポインタをたどり、ＱＯＳ管理テーブル・エントリ中の記録を調べ、次の２条件を満たすサーバ３０００のネットワーク・インタフェースを選択する（４０７０）。
【００４２】
１）クライアント３１０１が要求する平均バンド幅が、最大バンド幅（９０）から予約済みバンド幅の合計（９５）を引いた値よりも小さいこと、
２）クライアント３１０１が要求するピーク・バンド幅が、未予約のバーチャル・チャネル（９３）のバンド幅の中で、最大のものよりも小さいこと、の２条件である。
【００４３】
もし該当するネットワーク・インタフェースがない場合には、最近一分間のピーク転送量（９６）が最小のネットワーク・インタフェースを選択する（４０８０）。図１０や図４には示していないが、クライアント３１０１の要求を満たすことができない場合には、サーバ３１００はＳＹＮ  ＳＥＮＴ状態のクライアント３１０１に対して、クライアント３１０１の要求を満たすことができない旨を、ＡＣＫフラグ付ＴＣＰパケットのパラメタとして伝え、クライアント３１０１とＱＯＳの協議を行い、クライアント３１０１がＱＯＳを指定し直して、再びＳＹＮフラグ付ＴＣＰパケットをサーバ３０００に送り（３５７０）、新しいＱＯＳに基づいてサーバ３０００がネットワーク・インタフェースを探す（３５１０）、というサーバ３０００とクライアント３１０１との間の協議が行われてもよい。
【００４４】
再び図１０へ戻って、４０７０において、もし該当するネットワーク・インタフェースがある場合には、条件を満たすネットワーク・インタフェースの中から、予約済みバンド幅が最小のインタフェースを選択する（４０８５）。選択したネットワーク・インタフェースのＱＯＳ管理テーブル・エントリの予約済バンド幅（９５）に、クライアント３１０１が要求している平均バンド幅を加える。
【００４５】
選択したネットワーク・インタフェースのアドレスを含むルーティング・テーブル・エントリを以下では用いる。
【００４６】
（Ｂ）４０３０に戻り、クライアント３１０１が要求するサービス・クラスがＢＥ（Ｂｅｓｔ  Ｅｆｆｏｒｔ）か未指定の場合には、最初に見つかったルーティング・テーブル・エントリを用いる。
【００４７】
選択したルーティング・テーブル・エントリから、ネットワーク・インタフェースのネットワーク・アドレス（７１）を求める（４２００）。ＴＣＰプロトコルを用いてＥｎｄ−ｔｏ−Ｅｎｄのデータ通信を行うのに必要なＴＣＢ（Ｔｒａｎｓｍｉｓｓｉｏｎ  ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）を作成する（４２１０）。ＴＣＢに記す送信元アドレスには４２００で求めたネットワーク・アドレスを指定し、宛先アドレスにはクライアント３１０１のネットワーク・アドレスを指定する。ＴＣＢを作成すると、クライアント３１０１にＡＣＫフラグ付ＴＣＰパケットと、ネットワーク・インタフェースのネットワーク・アドレスをパラメタとして付加したＳＹＮフラグ付ＴＣＰパケットを送り（４２２０）、ＳＹＮ  ＲＥＣＶＤ状態になる（３５０２）。
【００４８】
図１１に移る。ＳＹＮ  ＲＥＣＶＤ状態において、クライアント３１０１からＡＣＫフラグ付ＴＣＰパケットを受け取ると（４２５０）、コネクション確立済み通信路の管理テーブル（図１３におけるテーブル３８２０）に、当該ネットワーク・インタフェース・アドレスとクライアント３１０１のネットワーク・アドレスを登録し（４２６０）、ＥＳＴＡＢＬＩＳＨＥＤ状態になる（３５０３）。以降、クライアントとサーバ間で、ＱＯＳに従ったデータ通信を行う。
【００４９】
図１２を用いて、クライアント３１０１の詳細な処理手順を示す。ＣＬＯＳＥＤ状態（３５５０）のクライアントでは、アプリケーション・プログラムが、サーバ３０００の複数のネットワーク・インタフェースの中の一つのネットワーク・アドレスｎｅｔ１．Ａ（９０５１）とＱＯＳ（９０５７）を指定して、ｃｏｎｎｅｃｔ（）コールを実行する（９０５８）。クライアント上のＯＳは、ｃｏｎｎｅｃｔ（）コールを契機にして通信路開設要求を受ける（４３００）。ＯＳはまず、ｎｅｔ１．Ａとの通信のために必要なＴＣＢ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）を作成し、ｃｏｎｎｅｃｔ（）コールで指定されたＱＯＳ値をパラメタとする、ＳＹＮフラグ付ＴＣＰパケットを、サーバ３０００のネットワーク・インタフェースの中の一つであるｎｅｔ１．Ａ宛てに送る（４３１０）。ＳＹＮフラグ付ＴＣＰパケットを送ると、クライアント３１０１はＳＹＮ  ＳＥＮＴ状態になり、サーバ３０００から送られてくるＡＣＫフラグ付のＴＣＰパケットを待つ（３５５１）。ＡＣＫおよび、ＳＹＮフラグ付ＴＣＰパケットを受け取ると、ＳＹＮのパラメタである、サーバ３０００のネットワーク・インタフェースのアドレスのひとつであるネットワーク・アドレスｎｅｔ１．Ｂがｎｅｔ１．Ａと等しいかどうかを調べる（４３２０）。もし、等しい場合には、ｎｅｔ１．Ａ宛てでサーバ３０００へＡＣＫフラグ付ＴＣＰパケットを送る（４３４５）。もし、不一致の場合は、サーバ３０００がネットワーク・インタフェースを変更したものとみなし、４３１０で作成したｎｅｔ１．Ａとの通信のためのＴＣＢを削除し、新たにｎｅｔ１．Ｂとの通信のためのＴＣＢを作成する（４３３０）。ＴＣＢを作成後、ｎｅｔ１．Ｂ宛てでサーバ３０００へＡＣＫフラグ付ＴＣＰパケットを送る（４３４０）。ＡＣＫを返すと、次に、クライアントの中のコネクション確立済み通信路管理テーブルに、サーバ３０００のネットワーク・インタフェースのネットワーク・アドレスｎｅｔ１．Ｂと、クライアント３１０１のネットワーク・アドレスｎｅｔ１１．１０を登録し（４３５０）、ＥＳＴＡＢＬＩＳＨＥＤ状態になる（３５５２）。以降、クライアントとサーバ間で、ＱＯＳに従ったデータ通信を行う。
【００５０】
次に、図７、図８を用いて、コネクション確立方法におけるＬＡＮスイッチ３０５０の動作を説明する。
【００５１】
図７において、３０１１、３０１２、３０１３、３０１４、３０７４は、図３と同じく通信路を表す。３０１１ａ、３０１１ｂは通信路３０１１に設定されるバーチャル・チャネルを示す。図７では、図面の都合上、２本のバーチャル・チャネルを記しているだけであるが、通常はもっと多くの本数のバーチャル・チャネルが存在する。また、バーチャル・チャネルはあらかじめ設定される場合もあるが、動的に生成されてもよい。３０１２ａ、３０１２ｂは通信路３０１２に設定されるバーチャル・チャネル、３０１３ａ、３０１３ｂは通信路３０１３に設定されるバーチャル・チャネル、３０１４ａ、３０１４ｂは通信路３０１４に設定されるバーチャル・チャネル、３０７４ａ、３０７４ｂ、３０７４ｃ、３０７４ｄ、３０７４ｅ、３０７４ｆは通信路３０７４に設定されるバーチャル・チャネルである。通信路３０７４において、バーチャル・チャネル３０７４ａ（ＶＣ＝１１）、３０７４ｂ（ＶＣ＝１２）、３０７４ｃ（ＶＣ＝１３）、３０７４ｄ（ＶＣ＝１４）は、通信路３０７１のバーチャル・チャネルに接続され、バーチャル・チャネル３０７４ｅ（ＶＣ＝２１）と３０７４ｆ（ＶＣ＝２２）は、通信路３０７２のバーチャル・チャネルに接続される。
【００５２】
図７において、５０００は、サーバ３０００の各ネットワーク・インタフェースのネットワーク・アドレスとＬＡＮスイッチ３０５０のポート番号の変換テーブル、５０１０（ａ）はＬＡＮスイッチ３０５０の各ポートとバーチャル・チャネルの組が、相互にどのように接続されるかを示すスイッチング・テーブルである。変換テーブル５０００によって、ネットワーク・アドレスをＬＡＮスイッチ３０５０の物理アドレスに変換し、パケットをネットワーク・アドレスで指定されるポートへ送出することができる。スイッチング・テーブル５０１０は、コネクションが設立されるときに設定されるテーブルである。図７において、５１００、５２００、５３００、５４００、５５００は、ＬＡＮスイッチ３０５０のポート＃０、＃１、＃２、＃３、＃４のＱＯＳ管理テーブルのエントリを示す。各エントリのフォーマットは、図１の９０ないし９７と同じである。サーバ３０００が、ＬＡＮスイッチ３０５０のポート＃０のＱＯＳも管理することによって、サーバ３０００がクライアントとしてコネクションを設立するときや、サーバ３０００がゲートウェイとしてルーティングを行う場合、図３における公衆網３０７０に接続される複数のゲートウェイの中で、どのゲートウェイへルーティングすると、クライアントのＱＯＳを満たすことができるかを判断することができる。つまり、図９、図１０、図１１を用いて述べた実施形態例では、ネットワーク・インタフェース３００１、３００２、３００３、３００４のＱＯＳ管理テーブル・エントリ５１１０、５１２０、５１３０、５１４０から、クライアント３１０１とのコネクション設立時の経路を決定したが、さらにＬＡＮスイッチ３０５０のポート＃０のＱＯＳ管理テーブル・エントリ５１００も一緒に用いて、ＬＡＮスイッチ３０５０のポート＃０のバーチャル・チャネルと、ポート＃１、２、３のバーチャル・チャネルのスイッチングの設定も考慮して、サーバ３０００とＬＡＮスイッチ３０５０との経路を選択することができる。その判断のための処理手順は、図９、図１０、図１１と同様である。
【００５３】
図８を用いて、コネクション確立方法におけるＬＡＮスイッチ３０５０の動作を説明する。クライアント３１０１からサーバ３０００のｎｅｔ１．１宛のＳＹＮフラグ付ＴＣＰパケットが、ＬＡＮスイッチ３０５０のポート＃０、ＶＣ＝１１（３０７４ａ）へルーティングされて届いた場合（５５００）について説明する。ＬＡＮスイッチ３０５０は、変換テーブル５０００を調べ、ｎｅｔ１．１宛のＳＹＮフラグ付ＴＣＰパケットの送出先ポート＃が１であることを求める（５５１０）。次に、ポート＃１のバーチャル・チャネルの中からＶＣ＝１（３０１１ａ）を選択し、（ポート＃０、ＶＣ＝１１）と（ポート＃１、ＶＣ＝１）が相互にスイッチングされるように、アドレス・スイッチング・テーブル５０１０（ａ）に登録する（５５２０）。今、サーバ３０００がネットワーク・インタフェースとして通信路３０１３（ネットワーク・アドレスｎｅｔ１．３）を選択した場合、サーバ３０００は、ＬＡＮスイッチ３０５０に対して、アドレス・スイッチング・テーブル５０１０に登録されている（ポート＃０、ＶＣ＝１１）と（ポート＃１、ＶＣ＝１）の対応を記したエントリを削除させ、さらに（ポート＃０、ＶＣ＝１１）と（ポート＃３、ＶＣ＝１）の対応を記したエントリを追加させる（５５３０）。ＬＡＮスイッチ３０５０は、アドレス・スイッチング・テーブル５０１０（ａ）の内容を変更する（５５４０）。変更の結果、テーブル５０１０（ａ）は、テーブル５０１０（ｂ）に示すとおりに更新される。この結果、サーバ３０００は通信路３０１３を使って、クライアント３１０１へ、ＡＣＫフラグ付ＴＣＰパケットと、ネットワーク・アドレスｎｅｔ１．３がパラメタとして付随したＳＹＮフラグ付ＴＣＰパケットを、送ることができる（５５５０）。つまり、サーバ３０００が（ポート＃３、ＶＣ＝１）へ送り出したパケットは、クライアント３１０１がＳＹＮフラグ付ＴＣＰパケットをサーバ３０００に送るときに使用した（ポート＃０、ＶＣ＝１１）へスイッチングされるため、クライアント３１０１へ届くことができるだけでなく、クライアント３０１０からＬＡＮスイッチ３０５０までに確立された経路をそのまま使用することができる。クライアント３１０１は、サーバ３０００に対して、（ポート＃０、ＶＣ＝１１）からネットワーク・アドレスｎｅｔ１．３に対応する（ポート＃３、ＶＣ＝１）へ、ＡＣＫフラグ付ＴＣＰパケットを送出し（５５６０）、コネクションが確立される（５５７０）。
【００５４】
以上のように、上記の本発明の実施形態例１によると、クライアントが要求するＱＯＳとサーバの負荷に応じて、サーバは複数のネットワーク・インタフェースの中から、条件に見合ったネットワーク・インタフェースを選択し、データ通信を行うことができる。
【００５５】
また、上記の実施形態例１によると、クライアント３１０１は、コネクション確立時にはサーバ３０００の全てのネットワーク・インタフェースのネットワーク・アドレスを知らなくとも、クライアントが要求するＱＯＳに応じたネットワーク・インタフェースを用いてコネクションを確立でき、データ通信を行うことができる。上記の実施形態例１によると、サーバ３０００からの指示にしたがって、ＬＡＮスイッチ３０５０の中のスイッチング・テーブルを更新できるため、サーバ３０００の公衆網３０７０に接続されるネットワーク・アドレスは、ネットワーク・インタフェース３００１のアドレスをただ一つ割り当てておくだけでも、異なる経路を用いて、クライアントとデータ通信を行うことができる。
【００５６】
また、上記の実施形態例１ではネットワーク・インタフェースを選択する手順のひとつを示したに過ぎないが、ＱＯＳ管理テーブルの情報の使い方によって、種々の選択手順を考えることができる。
【００５７】
（２）実施形態例２
次に、本発明の実施形態例２である、クライアント３１０１とサーバ３０００との間の並列コネクションの確立方法について、図５、図１、図１８、図１９、図２０、図２１を用いて説明する。
【００５８】
まず、図５を用いて、おおまかな処理の流れを示す。
【００５９】
図５において、３５００、３５０１、３５０２、３５０３、３５５０、３５５１、３５５２は、ＴＣＰプロトコルの状態を示し、３５９０、３５９１、３５９２、３５９３、３５９４はクライアント３１０１とサーバ３０００との間でコネクションを確立する３ウェイ・ハンドシェークを示す。
【００６０】
ＣＬＯＳＥＤ状態３５００のサーバ３０００は、図１１に示したプログラム中のｌｉｓｔｅｎ（）コールが実行されると（９００７）ＬＩＳＴＥＮ状態になり、クライアントからのコネクション開設要求を待つ（３５０１）。ＣＬＯＳＥＤ状態３５５０のクライアント３１０１は、図１６に示したプログラム中のｃｏｎｎｅｃｔ（）コールが実行されると（９０５８）、サーバ３０００のネットワーク・インタフェースのひとつであるネットワーク・アドレスｎｅｔ１．１とのデータ通信を制御するために必要な制御ブロックＴＣＢ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）を作成する（３５８０）。次に、ｎｅｔ１．１に対してコネクション開設を要求するために（３５８１）、ＳＹＮフラグを立てたＴＣＰパケットをサーバ３０００へ送る。このとき、クライアント３１０１は、コネクションのＱＯＳ（サービス品質）をＳＹＮフラグ付ＴＣＰパケットのパラメタとしてサーバ３０００へ送付する（３５９０）。ＱＯＳは、図１６の９０５２に示したように、サービスクラス、ピークバンド幅（Ｍｂｐｓ）、平均バンド幅（Ｍｂｐｓ）の３項目で構成される。クライアント３１０１は、ＳＹＮフラグ付ＴＣＰパケットを送ると、ＳＹＮ  ＳＥＮＴ状態になる（３５５１）。
【００６１】
ＬＩＳＴＥＮ状態のサーバ３０００は、ＱＯＳ（サービス品質）付きのＴＣＰパケットを受け取ると、クライアント３１０１のＱＯＳを満たすネットワーク・インタフェースを探す。ひとつのネットワーク・インタフェースだけではクライアント３１０１が要求するＱＯＳを満たすことができない場合には、複数のネットワーク・インタフェースを選択し、それらの合計値でクライアント３１０１が要求するＱＯＳを満たすようにする。複数のネットワーク・インタフェースを選択する手順の実施形態例は後述する。いま、図３におけるネットワーク・インタフェース３００２、３００３、３００４の３個（ネットワーク・アドレスｎｅｔ１．２，  ｎｅｔ１．３，  ｎｅｔ１．４）を選択した場合について述べる（３５２０）。サーバ３０００は、ネットワーク・アドレスｎｅｔ１．２，  ｎｅｔ１．３，  ｎｅｔ１．４に対応する３個のＴＣＢ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）を作成する（３５２１）。サーバ３０００は、３個のＴＣＢを作成した後、クライアント３１０１に対して、クライアントからのＳＹＮに対するＡＣＫフラグの付いたＴＣＰパケットと、ＳＹＮフラグの付いたＴＣＰパケットをクライアント３１０１に送り（３５９１）、これらのＴＣＢをＳＹＮ  ＲＥＣＶＤ状態にする（３５０２）。ＳＹＮフラグには、パラメタとしてネットワーク・アドレスの個数３、ネットワーク・アドレスｎｅｔ１．２，  ｎｅｔ１．３，  ｎｅｔ１．４、および各経路に割り当てられたＱＯＳ（平均バンド幅）を添付する。クライアント３１０１は、パラメタが付随したＳＹＮフラグ付きＴＣＰパケットを受け取ると、ｎｅｔ１．１用に作成したＴＣＢを削除し（３５８２）、ｎｅｔ１．２，  ｎｅｔ１．３，  ｎｅｔ１．４に対応した３個のＴＣＢを作成する（３５８３）。次に、クライアント３１０１はｎｅｔ１．２，  ｎｅｔ１．３，  ｎｅｔ１．４に対して、それぞれＡＣＫフラグ付ＴＣＰパケットを送り（３５９２、３５９３、３５９４）、ＥＳＴＡＢＬＩＳＨＥＤ状態となる（３５５２）。サーバ３０００も３個のＡＣＫを受け取るとＥＳＴＡＢＬＩＳＨＥＤ状態となり（３５０３）、３本のコネクションが確立される。以降、クライアントとサーバ間では、３本のコネクションを用いて、ＳＥＮＤ／ＲＥＣＥＩＶＥによる並列通信を行うことができる（３５９５）。
【００６２】
並列通信のための分割・統合の方法の実施形態例を図１７を用いて説明する。図１７では、サーバ３０００からクライアント３１０１へデータを送る場合について示す。６０３０、６０３１、６０３２、６０３３はサーバ３０００内のバッファ、６１３０、６１３１、６１３２、６１３３はクライアント３１０１内のバッファ、６０１２、６０１３、６０１４はサーバ３０００からネットワーク６０７０に接続される通信路（図３における通信路３０１２、３０１３、３０１４に相当する）、６１１０はクライアント３１０１からネットワーク６０７０に接続される通信路（図３における通信路３１１０に相当する）を示す。今、アプリケーションからデータをＳＥＮＤすると、そのデータはＴＣＰプロトコル層のバッファ６０３０に一時的に保持される。６０３０内のデータは、アプリケーションが指定するセグメント長ごとに３つに分割し、バッファ６０３１、６０３２、６０３３に、３つの通信路に割り当てられたバンド幅に比例した個数ずつ分配する。例えば、バンド幅の比率が２：１：１の場合には、６０３１、６０３１、６０３２、６０３３の順序で振り分け、各バッファは一時的にデータを保持する。ＴＣＰ層では、サーバ３０００のバッファ６０３１、６０３２、６０３３と、クライアント３１０１のバッファ６１３１、６１３２、６１３３を１対１で対応させ、それぞれが独立したコネクションとして、互いに独立にサーバ３０００からクライアント３１０１へデータを送る（ＳＥＮＤする）。つまり、バッファ６０３１、６０３２、６０３３のデータは、それぞれ通信路６０１２、６０１３、６０１４から通信路６１１０へ送られる。クライアント３１０１内のバッファ６１３１、６１３２、６１３３へ送られてきたデータは、ひとつのデータに統合し、バッファ６１３０へ送り、クライアント３１０１上のアプリケーションがデータを受け取る。以上のように、ＴＣＰ層とアプリケーション層との間で、データの分割と統合を行うため、アプリケーション・プログラムには並列通信を隠蔽できる。そのため、シングル通信と同じプログラムを用いて並列通信を実現し、クライアントが要求するＱＯＳを満たすことができる。
【００６３】
また、分割と統合のアルゴリズムは、次のようであってもよい。バッファ６０３０内のデータをセグメント長ごとに分割するときに、各セグメントにシリアル番号を付加する。３つの通信路の負荷状態は、動的に変化するため、バッファ６０３０からバッファ６０３１、６０３２、６０３３へセグメントを分配するときには、バッファ６０３１、６０３２、６０３３の中で未送付のセグメント数が最少のバッファを選択し、未送付のセグメント数が等しければ、先頭のセグメントのシリアル番号が一番大きなバッファを選択することによって、最もＳＥＮＤ処理が進行している通信路に付加を加えることができるため、動的に負荷を分散させ、より高速な通信が可能になる。
【００６４】
以上図５を用いて示した本発明の実施形態例２の詳細を、図１、図１８、図１９、図２０、図２１を用いて説明する。図１８、図１９、図２０は、ＬＩＳＴＥＮ状態（３５０１）でクライアントからのコネクション設立要求を待っている状態以降のサーバ３０００の処理のフローチャート図、図２１はクライアント３１０１の処理のフローチャート図を示す。なお、図１８は、図９と同じフローチャート図のため、説明を省略する。
【００６５】
図１９において、図１８の４０５０で記録したＱＯＳ管理テーブル・エントリへのポインタをたどり、ＱＯＳ管理テーブル・エントリ中の記録を調べ、次の２条件を満たすサーバ３０００のネットワーク・インタフェースを選択する。
【００６６】
１）クライアント３１０１が要求する平均バンド幅が、最大バンド幅（９０）から予約済みバンド幅の合計（９５）を引いた値よりも小さいこと、
２）クライアント３１０１が要求するピーク・バンド幅が、未予約のバーチャル・チャネル（９３）のバンド幅の中で、最大のものよりも小さいこと（４０７０）、の２条件である。
【００６７】
もし該当するネットワーク・インタフェースがない場合には、複数のネットワーク・インタフェースを選択し、各インタフェースの合計値がクライアント３１０１が要求するＱＯＳを満たすようにする。つまり、４０５０で記録したＱＯＳ管理テーブル・エントリへのポインタをたどり、ＱＯＳ管理テーブル・エントリ中の記録を調べ、次の２条件を満たすサーバ３０００のネットワーク・インタフェースを選択する。
【００６８】
１）クライアント３１０１が要求する平均バンド幅が、選択した複数個のネットワーク・インタフェースの最大バンド幅（９０）の合計から、選択した複数個のネットワーク・インタフェースの予約済みバンド幅の合計（９５）の合計を引いた値よりも小さいこと、
２）選択した複数個のネットワーク・インタフェースの未予約のバーチャル・チャネル（９３）の中でバンド幅が最大のバーチャル・チャネルを１本ずつ選び、それらの合計よりもクライアント３１０１が要求するピーク・バンド幅が小さいこと（４１００）、の２条件である。
【００６９】
複数個のネットワーク・インタフェースを用いても、クライアント３１０１の要求を満たすことができない場合には、複数個のネットワーク・インタフェースは用いずに、最近一分間のピーク転送量（９６）が最小のネットワーク・インタフェースを選択する（４１１０）。図１９や図５には示していないが、クライアント３１０１の要求を満たすことができない場合には、サーバ３１００はＳＹＮＳＥＮＴ状態のクライアント３１０１に対して、クライアント３１０１の要求を満たすことができない旨を、ＡＣＫフラグ付ＴＣＰパケットのパラメタとして伝え、クライアント３１０１とＱＯＳの協議を行い、クライアント３１０１がＱＯＳを指定し直して、再びＳＹＮフラグ付ＴＣＰパケットをサーバ３０００に送り（３５９０）、新しいＱＯＳに基づいてサーバ３０００がネットワーク・インタフェースを探す（３５２０）、というサーバ３０００とクライアント３１０１との間の協議が行われてもよい。
【００７０】
再び図１９へ戻って、４０７０において、もし該当するネットワーク・インタフェースがある場合には、条件を満たすネットワーク・インタフェースの中から、予約済みバンド幅が最小のインタフェースを選択する（４０８５）。以上、４０８５、４１００、４１１０のいずれかで選択した全てのネットワーク・インタフェースのＱＯＳ管理テーブル・エントリの予約済バンド幅（９５）に、各ネットワーク・インタフェースに分割して割り当てたクライアント３１０１が要求している平均バンド幅の各ネットワーク・インタフェース担当分の値を加える（４１２０）。選択したネットワーク・インタフェースのアドレスを含むルーティング・テーブル・エントリを以下では用いる。
【００７１】
図２０に移る。選択したルーティング・テーブル・エントリから、全てのネットワーク・インタフェースのネットワーク・アドレス（７１）を求める（４５００）。次に、ＴＣＰプロトコルを用いてＥｎｄ−ｔｏ−Ｅｎｄのデータ通信を行うのに必要なＴＣＢ（Ｔｒａｎｓｍｉｓｓｉｏｎ  ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）を全ての選択したネットワーク・インタフェースに対応して作成する（４５１０）。各ＴＣＢに記す送信元アドレスには４５００で求めたネットワーク・アドレスを１つずつ指定し、宛先アドレスにはクライアント３１０１のネットワーク・アドレスｎｅｔ１１．１０を指定する。ＴＣＢを作成すると、クライアント３１０１にＡＣＫフラグ付ＴＣＰパケットと、選択したネットワーク・インタフェースの個数、全てのネットワーク・アドレス、各ネットワーク・インタフェースに割り当てた平均バンド幅をパラメタとして付加したＳＹＮフラグ付ＴＣＰパケットを送り（４５２０）、ＳＹＮ  ＲＥＣＶＤ状態になる（３５０２）。サーバ３０００は、ＡＣＫフラグ付ＴＣＰパケットとＳＹＮフラグ付ＴＣＰパケットを、サーバ３０００がクライアント３１０１からＳＹＮフラグ付ＴＣＰパケットを受け取ったのと同じネットワーク・インタフェースを用いて、クライアント３１０１に送付する。ＳＹＮ  ＲＥＣＶＤ状態において、クライアント３１０１から、４５２０のＳＹＮフラグ付ＴＣＰパケットに添付した全てのネットワーク・アドレスに対応するネットワーク・インタフェースにおいて、ＡＣＫフラグ付ＴＣＰパケットを受け取ると（４５３０）、コネクション確立済み通信路の管理テーブルに、当該全てのネットワーク・インタフェース・アドレスとクライアント３１０１のネットワーク・アドレスを登録し（４５４０）、ＥＳＴＡＢＬＩＳＨＥＤ状態になる（３５０３）。以降、クライアントとサーバ間で、ＱＯＳに従った並列データ通信を行う。
【００７２】
図２１を用いて、クライアント３１０１の詳細な処理手順を示す。ＳＹＮ  ＳＥＮＴ状態３５５１になるまでは、図１２と同じフローチャート図のため省略する。
【００７３】
ＳＹＮ  ＳＥＮＴ状態のクライアント３１０１は、サーバ３０００から送られてくるＡＣＫフラグ付のＴＣＰパケットを待つ（３５５１）。ＡＣＫおよび、ＳＹＮフラグ付ＴＣＰパケットを受け取ると、ＳＹＮのパラメタである、選択されたネットワーク・インタフェースの個数を調べる（４６００）。０個の場合にはｎｅｔ１．Ａ宛てでサーバ３０００へＡＣＫフラグ付ＴＣＰパケットを送る（４６４０）。１個の場合には、パラメタで指定されているネットワーク・アドレスが、ｎｅｔ１．Ａと等しいかどうかを調べる（４６１０）。等しい場合には、ｎｅｔ１．Ａ宛てでサーバ３０００へＡＣＫフラグ付ＴＣＰパケットを送る（４６４０）。不一致の場合、もしくは、４６００においてＳＹＮのパラメタの値が２個以上の場合には、サーバ３０００がネットワーク・インタフェースを変更したものとみなし、４３１０で作成したｎｅｔ１．Ａとの通信のためのＴＣＢを削除し、新たにＳＹＮのパラメタで指定されている全てのネットワーク・インタフェースと通信を行えるように、各々のネットワーク・アドレスに対応するＴＣＢを作成する（４６２０）。ＡＴＭのような帯域予約可能なネットワークの場合には、クライアント３１０１はサーバから知らされた３個のＱＯＳ（平均バンド幅）にしたがって、３本のバーチャル・チャネルを選択して、３本のコネクションの確立を図る。次に、ＳＹＮのパラメタで指定されていたネットワーク・アドレスの各々宛てに、ＡＣＫフラグ付ＴＣＰパケットを送る（４６３０）。ＡＴＭのようなネットワークの場合には、３本のバーチャル・チャネルのそれぞれからＡＣＫフラグ付ＴＣＰパケットを送る。ＡＣＫを返すと、次に、クライアントの中のコネクション確立済み通信路管理テーブルに、ＳＹＮのパラメタで指定されていたサーバ３０００の全てのネットワーク・アドレスと、クライアント３１０１のネットワーク・アドレスｎｅｔ１１．１０を登録し（４６５０）、ＥＳＴＡＢＬＩＳＨＥＤ状態になる（３５５２）。以降、クライアントとサーバ間で、ＱＯＳに従った並列データ通信を行う。
【００７４】
この時のサーバ３１００とクライアント３１０１のコネクション確立済み通信路管理テーブルを、それぞれ図１３と図１４に示す。図１３において、３８２０がコネクション確立済み通信路管理テーブルを示し、３８２１、３８２２、３８２３の各エントリによって、３本のコネクションが確立されていることを示す。同様に、図１４において、３９１０がコネクション確立済み通信路管理テーブルを示し、３９１１、３９１２、３９１３の各エントリによって、３本のコネクションが確立されていることを示す。このようにして、Ｅｎｄ−ｔｏ−Ｅｎｄの確立済みの通信路が管理される。
【００７５】
次に、図２２、図２３を用いて、並列コネクション確立方法におけるＬＡＮスイッチ３０５０の動作を説明する。図２２は、アドレス・スイッチング・テーブルを除いて図７と同じであるため、図の説明は省略する。図２２において、５０１１（ａ）は、クライアント３１０１がサーバ３０００に対して、ＳＹＮフラグ付ＴＣＰパケットを送出した時のアドレス・スイッチング・テーブルを示し、５０１１（ｂ）は、クライアント３１０１がサーバ３０００に対して、ＡＣＫフラグ付ＴＣＰパケットを送出してコネクションが確立したあとのアドレス・スイッチング・テーブルを示す。
【００７６】
図２３を用いて、ＬＡＮスイッチ３０５０の動作を説明する。クライアント３１０１からサーバ３０００のｎｅｔ１．１宛のＳＹＮフラグ付ＴＣＰパケットが、ＬＡＮスイッチ３０５０のポート＃０、ＶＣ＝１１（３０７４ａ）へルーティングされて届いた場合（５７００）について説明する。ＬＡＮスイッチ３０５０は、変換テーブル５０００を調べ、ｎｅｔ１．１宛のＳＹＮフラグ付ＴＣＰパケットの送出先ポート＃が１であることを求める（５７１０）。次に、ポート＃１のバーチャル・チャネルの中からＶＣ＝１（３０１１ａ）を選択し、（ポート＃０、ＶＣ＝１１）と（ポート＃１、ＶＣ＝１）が相互にスイッチングされるように、アドレス・スイッチング・テーブル５０１１（ａ）に登録する（５７２０）。今、サーバ３０００がクライアント３１０１のコネクション設立要求に対して、ＱＯＳ管理テーブル・エントリ５１１０、５１２０、５１３０、５１４０を検索し、ネットワーク・インタフェースとして通信路３０１２、３０１３、３０１４（ネットワーク・アドレスｎｅｔ１．２，  ｎｅｔ１．３  ｎｅｔ１．４）の３本を選択した場合について述べる。サーバ３０００は、まず、３本の通信路を使用できるようにするために、ＬＡＮスイッチ３０５０に対して（ポート＃２、ＶＣ＝１）、（ポート＃３、ＶＣ＝１）、（ポート＃４、ＶＣ＝１）の３つのバーチャル・チャネルをリザーブする（５７３０）。次に、サーバ３０００は、クライアント３１０１に対して、ＬＡＮスイッチ３０５０の（ポート＃１、ＶＣ＝１）から（ポート＃０、ＶＣ＝１１）を経由して、ＡＣＫフラグ付ＴＣＰパケットと、パラメタの付いたＳＹＮフラグ付ＴＣＰパケットを返す。ＳＹＮフラグには、選択したネットワーク・インタフェースのネットワーク・アドレスと各ネットワーク・インタフェースが使用できる平均バンド幅をＱＯＳとして付加する（５７４０）。その後、ＬＡＮスイッチ３０５０に対して、（ポート＃１、ＶＣ＝１）と（ポート＃０、ＶＣ＝１１）とのスイッチングを指定するエントリを削除するように要求し、この経路を他者が使用できるように解放する（５７５０）。
【００７７】
クライアント３１０１は、ＳＹＮフラグ付ＴＣＰパケットを受け、選択されたネットワーク・インタフェースのネットワーク・アドレスと、各ネットワーク・インタフェースが使用できる平均バンド幅を知ると、各ネットワーク・インタフェースに対して、ＡＣＫを返す。ＡＣＫを返す過程で、平均バンド幅の条件を満たすように、クライアント３１０１からＬＡＮスイッチ３０５０に到るまでの経路のバーチャル・チャネルを新たに確保する。  今、ＬＡＮスイッチ３０５０へは、（ポート＃０、ＶＣ＝１２）、（ポート＃０、ＶＣ＝１３）、（ポート＃０、ＶＣ＝１４）の３つの経路で到達したとする（５７６０）。ＬＡＮスイッチ３０５０は、３つのＡＣＫフラグ付ＴＣＰパケットの宛先ｎｅｔ１．２，  ｎｅｔ１．３，  ｎｅｔ１．４とポート番号変換テーブル５０００より、ネットワーク・インタフェースへ到達するポート番号＃２、＃３、＃４を得る。ＬＡＮスイッチ３０５０は、５７３０で予約されている（ポート＃２、ＶＣ＝１）、（ポート＃３、ＶＣ＝１）、（ポート＃４、ＶＣ＝１）と、それぞれ（ポート＃０、ＶＣ＝１２）、（ポート＃０、ＶＣ＝１３）、（ポート＃０、ＶＣ＝１４）をスイッチングするように、アドレス・スイッチング・テーブルのエントリを登録する（５７７０）。その結果、アドレス・スイッチング・テーブルは５０１１（ｂ）に示すように更新され（５７８０）、３本のコネクションが確立されて（５７９０）、並列のＳＥＮＤ／ＲＥＣＥＩＶＥによるデータ通信が行われる。
【００７８】
以上のように、上記の本発明の実施形態例２によると、クライアントが要求するＱＯＳとサーバの負荷に応じて、サーバは複数のネットワーク・インタフェースの中から、条件に見合ったネットワーク・インタフェースを複数個選択し、並列データ通信を行える。
【００７９】
また、上記の実施形態例２によると、クライアント３１０１は、コネクション確立時にはサーバ３０００の全てのネットワーク・インタフェースのネットワーク・アドレスを知らなくとも、クライアントが要求するＱＯＳに応じたネットワーク・インタフェースを用いてコネクションを確立でき、並列データ通信を行うことができる。
【００８０】
また、上記の実施形態例２ではネットワーク・インタフェースを選択する手順のひとつを示したに過ぎないが、ＱＯＳ管理テーブルの情報の使い方によって、種々の選択手順を考えることができる。
【００８１】
（３）実施形態例３
上記の実施形態例２では、サーバ３０００のネットワーク・インタフェース３００１、３００２、３００３、３００４には、それぞれ固有のネットワーク・アドレスが割り当てられていたが、図６と図２４に示す実施形態例によれば、単一のネットワーク・アドレスをサーバ３０００に割り当てるだけで、ネットワーク・インタフェース３００１、３００２、３００３、３００４を用いて並列通信を行うことができる。
【００８２】
図２４において、３０００はサーバ、３０５０はＬＡＮスイッチ、３０１１、３０１２、３０１３、３０１４、３０７４はそれぞれポート＃１、＃２、＃３、＃４、＃０の通信路を表し、図３の同じ番号と対応する。７０００は並列通信フラグ検出回路、７０１０はパケット・スイッチング回路、７１００はパケットのヘッダ、７１１０は送信元ネットワーク・アドレス、７１２０は宛先ネットワーク・アドレス、７１３０は並列通信フラグ、７１３５はサーバ３０００のポート番号を示す。並列通信フラグ７１３０とポート番号７１３５はパケットのオプションフィールドに追加した項目である。ネットワーク・アドレスｎｅｔ１．１は、ポート＃１ないし４の中で、ポート＃１にのみ割り当てられている。
【００８３】
図６において、３５００、３５０１、３５０２、３５０３、３５５０、３５５１、３５５２は、ＴＣＰプロトコルの状態を示し、３６９０、３６９１、３６９２、３６９３、３６９４はクライアント３１０１とサーバ３０００との間でコネクションを確立する３ウェイ・ハンドシェークを示す。図６を用いて、第２の並列コネクション確立方法の処理の流れを示す。サーバ３０００がＬＩＳＴＥＮ状態（３５０１）になるまでと、クライアント３１０１がＳＹＮ  ＳＥＮＴ状態（３５６１）になるまでは、図５と同じであるため説明を省略する。
【００８４】
ＬＩＳＴＥＮ状態（３５０１）のサーバ３０００は、ＱＯＳ（サービス品質）付きのＴＣＰパケットをクライアント３１０１から受け取ると（３６９０）、クライアント３１０１のＱＯＳを満たすネットワーク・インタフェースを探す。ひとつのネットワーク・インタフェースだけではクライアント３１０１が要求するＱＯＳを満たすことができない場合には、複数のネットワーク・インタフェースを選択し、それらの合計値でクライアント３１０１が要求するＱＯＳを満たすようにする。いま、図３におけるネットワーク・インタフェース３００２、３００３、３００４の３個（ポート番号２、３、４）を選択した場合について述べる（３６２０）。サーバ３０００は、ポート番号２、３、４に対応する３個のＴＣＢ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｂｌｏｃｋ）を作成する（３６２１）。サーバ３０００は、３個のＴＣＢを作成した後、クライアント３１０１に対して、クライアントからのＳＹＮに対するＡＣＫフラグの付いたＴＣＰパケットと、ＳＹＮフラグの付いたＴＣＰパケットをクライアント３１０１に送り（３６９１）、このＴＣＢをＳＹＮ  ＲＥＣＶＤ状態にする（３５０２）。ＳＹＮフラグには、パラメタとしてポート番号の個数３、ポート番号２、３、４）を添付する。クライアント３１０１は、パラメタが付随したＳＹＮフラグ付きＴＣＰパケットを受け取ると、ｎｅｔ１．１用に作成したＴＣＢを削除し（３６８２）、ｎｅｔ１．１かつポート番号２、ｎｅｔ１．１かつポート番号３、ｎｅｔ１．１かつポート番号４に対応した３個のＴＣＢを作成する（３６８３）。次に、クライアント３１０１はｎｅｔ１．１かつポート番号２、ｎｅｔ１．１かつポート番号３、ｎｅｔ１．１かつポート番号４に対して、それぞれＡＣＫフラグ付ＴＣＰパケットを送り（３６９２、３６９３、３６９４）、ＥＳＴＡＢＬＩＳＨＥＤ状態となる（３５５２）。サーバ３０００も３個のＡＣＫを受け取るとＥＳＴＡＢＬＩＳＨＥＤ状態となり（３５０３）、３本のコネクションが確立される。以降、クライアントとサーバ間では、３本のコネクションを用いて、ＳＥＮＤ／ＲＥＣＥＩＶＥによる並列通信を行うことができる（３６９５）。
【００８５】
図２４に、”ｎｅｔ１．１かつポート番号２”を表現できるパケットのヘッダ形式を示す。図２４において、複数のポートを並列に用いて通信を行う場合には、パケットのヘッダのオプション・フィールドのなかの並列通信フラグ７１３０を”１”にセットし、同じくオプション・フィールドのなかのポート番号７１３５に”２”を設定する。ＬＡＮスイッチ３０５０の中の並列通信フラグ検出回路は、パケットのヘッダのなかの並列通信フラグが１であることを検出すると、このパケットをパケット・スイッチング回路７０１０へ送り、パケットのヘッダのなかのポート番号を検出して、指定されたポート番号のネットワーク・インタフェースを用いて、サーバ３０００にパケットを送る。以上のように、クライアント３１０１からサーバ３０００に対して送り出すパケットに関しては、ネットワーク・インタフェース３００１、３００２、３００３、３００４を用いて並列通信を行うことができる。
【００８６】
一方、サーバ３０００からクライアント３１０１に対して送り出すパケットに関しては、図１で示したルーティング・テーブル・エントリの中のネットワーク・インタフェースのネットワーク・アドレスを、ポート番号として設定することによって、単一のネットワーク・アドレスをサーバ３０００に割り当てるだけで、ネットワーク・インタフェース３００１、３００２、３００３、３００４を用いて並列通信を行うことができる。
【００８７】
以上のように、パケットのヘッダ形式を拡張することによって、単一のネットワーク・アドレスをサーバ３０００に割り当てるだけで、クライアント３１０１とサーバ３０００は、ネットワーク・インタフェース３００１、３００２、３００３、３００４を用いて並列通信を行うことができる。
【００８８】
上記（１）ないし（３）の実施形態例では、ＴＣＰ／ＩＰプロトコル層におけるクライアントとサーバの間のコネクション確立方式について述べ、ルーティング・テーブルにネットワーク・インタフェースのネットワーク・アドレスのカラム（７１）を追加することによって、サーバはクライアントのＱＯＳ要求を満たすネットワーク・インタフェースを選択できるようになった。
【００８９】
しかし、図２５、図２６に示す実施形態例によれば、図２５に示すコネクション管理テーブルを用いることによって、クライアントのＱＯＳ要求を満たすだけではなく、サーバが自らのネットワーク・インタフェース間の通信処理の負荷を分散させるように、ネットワーク・インタフェースを選択することができる。さらに、次のパケット送出先であるゲートウェイ・アドレスは従来通りルーティング・テーブルを用いて求めるが、パケットを送出するネットワーク・インタフェースは、図２５に示すコネクション管理テーブルとＬＡＮスイッチに接続されているネットワーク・インタフェース・アドレスを記した登録テーブルを用いることによって、クライアントがサーバに接続を要求したネットワーク・インタフェースを選択できるようになる。その結果、クライアントがサーバに接続を要求したネットワーク・インタフェースを使った双方向通信が可能になる。
【００９０】
図２５は、図３のサーバ３０００上にあるコネクション管理テーブルを示す。図２５において、８０５０，８０５１，８０５２はコネクション管理テーブルの各エントリを示し、サーバ３０００がクライアントとの間で開設しているコネクションに関する情報を保持する。コネクション管理テーブル・エントリ８０５０において、８００１は通信で使用しているプロトコル名、８００２はクライアントがサーバに対して接続を要求したサーバのネットワーク・インタフェースのネットワーク・アドレス、８００３はサーバがコネクションを識別するためのポート番号、８００４はクライアントのネットワーク・アドレス、８００５はクライアント側のポート番号、８００６は図４に示したようなＣＬＯＳＥＤ、ＬＩＳＴＥＮ、ＥＳＴＡＢＬＩＳＨＥＤのようなコネクションの状態を示し、８００６は次のコネクション管理テーブル・エントリへのポインタを示す。コネクション管理テーブルのエントリは、コネクション確立時に生成される。８０４０は、コネクション管理テーブルの先頭のエントリへのポインタを示す。
【００９１】
クライアントとサーバの間で通信を行うときのコネクション識別子（ファイル記述子）８０１０ないし８０１２に対応して、コネクション管理テーブルの当該エントリへのポインタ８０１５ないし８０１７がある。ポインタ８０１５ないし８０１７は、各々のコネクション管理テーブルの各エントリ８０５０ないし８０５２を指す。
【００９２】
８０２０は、ＬＡＮスイッチに接続されているネットワーク・インタフェース・アドレスの登録テーブルを示す。エントリ８０２１ないし８０２４に登録されているネットワーク・インタフェース・アドレスのネットワーク・インタフェース３００１ないし３００４はいずれも、図３に示すようにＬＡＮスイッチ３０５０に接続される。それゆえ、８０２１ないし８０２４のいずれのネットワーク・インタフェースからパケットを送出しても、同じネットワークにパケットをルーティングできる。したがって、ネットワーク・インタフェース３００１ないし３００４の負荷を分散させるようにネットワーク・インタフェースを選択すれば、高いトータル・スループットを得ることができる。以下、詳細な実施形態例を記す。
【００９３】
図２６のフローチャートは、クライアント３１０１とサーバ３０００の間の通信をＴＣＰ／ＩＰプロトコル層の上位で実現する、本発明の並列ネットワーク接続方式の１実施形態例を示す。
【００９４】
クライアント３１０１は、コネクション開設要求をサーバ３０００に送る（８１１１）。サーバ３０００は、コネクション開設要求を待ち、クライアント３１０１からのコネクション開設要求を受け付ける（８１０１）。クライアント３１０１は、ＱＯＳパラメタをサーバ３０００に送る（８１１３）。このとき、ＱＯＳパラメタとして、複数のネットワーク・インタフェースを使用する場合にはネットワーク・インタフェースの数を指定したり、コネクションに対するピーク・バンド幅や平均バンド幅を指定する。サーバ３０００はクライアント３１０１からＱＯＳパラメタを受け取ると、図３に示すＬＡＮスイッチ３０５０からクライアント３１０１へルーティング可能かどうかを調べ、ルーティング可能ならば、図２５に示したコネクション管理テーブルのエントリをたどって、ＥＳＴＡＢＬＩＳＨＥＤ状態のコネクション数が最小のネットワーク・インタフェースを選択する（８１０３）。ＬＡＮスイッチ３０５０からクライアント３１０１へルーティング可能かどうかは、図２に示した従来のルーティング・テーブル１００ないし１５０を、クライアント３１０１のネットワーク・アドレスをキーにして検索し、得られたゲートウェイ・アドレスが、ＬＡＮスイッチ３０５０のネットワーク・アドレスと接続されるならば、ルーティング可能であると判断できる。
【００９５】
ＬＡＮスイッチ３０５０からクライアント３１０１へルーティング可能な場合について、図２５を用いてネットワーク・インタフェースの選択手順を詳細に説明する。コネクション管理テーブルの先頭エントリへのポインタ８０４０から、コネクション管理テーブル・エントリ８０５０をアクセスする。コネクションの状態８００６がＥＳＴＡＢＬＩＳＨＥＤであるコネクション数をローカル・アドレス８００２が等しいネットワーク・インタフェースごとに数える。ローカル・アドレス８００２はサーバ３０００のネットワーク・インタフェース・アドレスの中のいずれかと等しい。そこで、ＬＡＮスイッチに接続されているネットワーク・インタフェース・アドレスの登録テーブル８０２０に登録されているネットワーク・インタフェースの中から、エントリ数が最小のネットワーク・インタフェースを求める。また、実施形態例（１）と同様に、図１に示すネットワーク・インタフェース情報テーブル中の次エントリへのポインタ８４を使って各エントリをたどり、ＱＯＳ管理テーブル・エントリへのポインタで示されるＱＯＳ管理テーブル・エントリに記されている９０ないし９７の統計情報にしたがって、負荷が最小のネットワーク・インタフェースを選択してもよい。例えば、バーチャル・チャネル数９４が最小のネットワーク・インタフェースを選択したり、最近１分間の平均転送量９７が最小のネットワーク・インタフェースを選択してもよい。
【００９６】
また、ＱＯＳパラメタとして、１より大きなネットワーク・インタフェースの数が記されていた場合には、コネクション数が少ないエントリから順々に指定された数だけ選ぶ。
【００９７】
図２６のフローチャートに戻る。サーバ３０００は選択したネットワーク・インタフェースのネットワーク・アドレスと通信のためのポート番号をクライアント３１０１に送る（８１０５）。クライアント３１０１はネットワーク・アドレスとポート番号を受け取ると（８１１５）、通信用のｓｏｃｋｅｔを生成して（８１１７）、受信したサーバ３０００のネットワーク・インタフェースに対してコネクションの開設要求を送る（８１１９）。クライアントが、サーバ３０００が指定したネットワーク・インタフェースとコネクションを開設し直すことによって、サーバの各ネットワーク・インタフェースの負荷を分散できる。サーバ３０００はクライアント３１０１からのコネクション再開設要求を受付け（８１０７）ると、通信処理の負荷分散を図るために子プロセスをｆｏｒｋする。特に並列計算機のように各ノードにネットワーク・インタフェースが存在する場合には、選択したネットワーク・インタフェースに対応する各ノードに子プロセスをｆｏｒｋする（８１０８）。その後、クライアントとサーバ間でデータを送受信する（８１０９、８１２１）。サーバがクライアントへデータを送信する時には、当該コネクションに対応するサーバのコネクション識別子８０１０を用いて、コネクション管理テーブル・エントリへのポインタ８０１５からコネクション管理テーブル・エントリ８０５０を求めて、そのエントリ中のローカル・アドレス８００２で示されるネットワーク・インタフェースからパケットを送出する（８１０９）。その結果、クライアントがサーバに接続を要求したネットワーク・インタフェースを使った双方向通信が可能になる。
【００９８】
以上のように、ＬＡＮスイッチに接続されているネットワーク・インタフェース・アドレスの登録テーブルを追加し、さらにコネクション管理テーブルのローカル・アドレスを用いることによって、従来のルーティング・テーブルを変更することなしに、クライアントがサーバに接続を要求したネットワーク・インタフェースを使った双方向通信を行える。また、コネクション管理テーブルのエントリ数を数えることによって、各ネットワーク・インタフェースの負荷を判断し、サーバが主体となってクライアントとの通信で使用するネットワーク・インタフェースを選択することによって、通信処理の負荷分散を図ることができるようになり、ネットワーキング処理のシステム・スループットを向上できる。
【００９９】
【発明の効果】
以上のように、本発明によれば、複数のネットワーク・インタフェースを備えたサーバにおいて、クライアントが要求するＱＯＳに応じたネットワーク・インタフェースを用いて通信を行ったり、複数本のネットワーク・インタフェースを用いて高速かつ高効率な並列通信を行うことができる。
【図面の簡単な説明】
【図１】本発明に係わるルーティング・テーブルとそのエントリ、ネットワーク・インタフェース情報テーブルのエントリ、ＱＯＳ（サービス品質）管理テーブルのエントリの実施の形態例を示す図である。
【図２】従来のルーティング・テーブルとそのエントリ、ネットワーク・インタフェース情報テーブルのエントリを示す図である。
【図３】本発明のネットワーク接続システムの全体構成図である。
【図４】本発明のコネクション確立方法の実施の形態例を示す図である。
【図５】本発明の並列コネクション確立方法の実施の形態例を示す図である。
【図６】本発明の第２の並列コネクション確立方法の実施の形態例を示す図である。
【図７】本発明のコネクション確立方法におけるＬＡＮスイッチの動作の実施の形態例を説明するブロック図である。
【図８】本発明のコネクション確立方法におけるＬＡＮスイッチの動作の実施の形態例を説明するフローチャート図である。
【図９】本発明のコネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図１０】本発明のコネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図１１】本発明のコネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図１２】本発明のコネクション確立方法におけるクライアントの動作の実施の形態例を説明するフローチャート図である。
【図１３】本発明のネットワーク接続方法におけるサーバのルーティング・テーブルの実施の形態例を説明する図である。
【図１４】本発明のネットワーク接続方法におけるクライアントのルーティング・テーブルを説明する図である。
【図１５】従来のサーバにおけるネットワーク接続を示す図である。
【図１６】アプリケーション・プログラムにおけるクライアントとサーバのプログラムの実施の形態例を示す図である。
【図１７】並列通信のためのデータの分割・統合方法の実施の形態例を示す図である。
【図１８】本発明の並列コネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図１９】本発明の並列コネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図２０】本発明の並列コネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図２１】本発明の並列コネクション確立方法におけるクライアントの動作の実施の形態例を説明するフローチャート図である。
【図２２】本発明の並列コネクション確立方法におけるＬＡＮスイッチの動作の実施の形態例を説明するブロック図である。
【図２３】本発明の並列コネクション確立方法におけるＬＡＮスイッチの動作の実施の形態例を説明するフローチャート図である。
【図２４】本発明の第２の並列コネクション確立方法におけるＬＡＮスイッチのブロック図と、パケットのヘッダ形式の実施の形態例を示す図である。
【図２５】本発明の並列コネクション確立方法におけるサーバのルーティング方式を説明する図である。
【図２６】本発明の第４の並列コネクション確立方法の実施の形態例を示す図である。
【符号の説明】
７１：ネットワーク・インタフェースのネットワーク・アドレス、７４：同じ宛先アドレスの次エントリへのポインタ、８５：ＱＯＳ管理テーブル・エントリへのポインタ、９０：当該ネットワーク・インタフェースの最大バンド幅、９２：各バーチャル・チャネルのバンド幅、９５：既に予約されているバンド幅の合計、９６：最近１分間のピーク転送量、９７：最近１分間の平均転送量、３０００：サーバ、３０１１ないし３０１４：転送路、３０５０：ＬＡＮスイッチ、３０７０：ＰＢＸ、３１０１：クライアント１、３１０２：ゲートウェイ、３５７０：ＱＯＳパラメタ付きＳＹＮ（同期）パケット、３５７１：ＡＣＫパケット＋ネットワーク・アドレス付きＳＹＮ（同期）パケット、３５７２：ＡＣＫパケット、３８００：サーバのルーティング・テーブル、３９００：クライアント１のルーティング・テーブル、９００１ないし９０１５：サーバのプログラム例、９０５０ないし９０６１：クライアントのプログラム例、６０３０ないし６０３３：サーバのバッファ、６１３０ないし６１３３：クライアント１のバッファ。
【図１】
0003613863.tif 000002
【図２】
0003613863.tif 000003
【図３】
0003613863.tif 000004
【図４】
0003613863.tif 000005
【図５】
0003613863.tif 000006
【図６】
0003613863.tif 000007
【図７】
0003613863.tif 000008
【図８】
0003613863.tif 000009
【図９】
0003613863.tif 000010
【図１０】
0003613863.tif 000011
【図１１】
0003613863.tif 000012
【図１２】
0003613863.tif 000013
【図１３】
0003613863.tif 000014
【図１４】
0003613863.tif 000015
【図１５】
0003613863.tif 000016
【図１６】
0003613863.tif 000017
【図１７】
0003613863.tif 000018
【図１８】
0003613863.tif 000019
【図１９】
0003613863.tif 000020
【図２０】
0003613863.tif 000021
【図２１】
0003613863.tif 000022
【図２２】
0003613863.tif 000023
【図２３】
0003613863.tif 000024
【図２４】
0003613863.tif 000025
【図２５】
0003613863.tif 000026
【図２６】
0003613863.tif 000027