JP3613863B2 - ネットワーク接続システム及び並列ネットワーク接続方法 - Google Patents

ネットワーク接続システム及び並列ネットワーク接続方法 Download PDF

Info

Publication number
JP3613863B2
JP3613863B2 JP33302895A JP33302895A JP3613863B2 JP 3613863 B2 JP3613863 B2 JP 3613863B2 JP 33302895 A JP33302895 A JP 33302895A JP 33302895 A JP33302895 A JP 33302895A JP 3613863 B2 JP3613863 B2 JP 3613863B2
Authority
JP
Japan
Prior art keywords
network
computer
server
client
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP33302895A
Other languages
English (en)
Other versions
JPH0993304A (ja
Inventor
克佳 北井
聡 吉沢
豊彦 鍵政
文雄 野田
義政 増岡
良史 高本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP33302895A priority Critical patent/JP3613863B2/ja
Priority to US08/684,572 priority patent/US5948069A/en
Publication of JPH0993304A publication Critical patent/JPH0993304A/ja
Application granted granted Critical
Publication of JP3613863B2 publication Critical patent/JP3613863B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Description

【0001】
【発明の属する技術分野】
本発明は、複数のネットワーク・インタフェースを備えた計算機のネットワーク接続システム及び並列ネットワーク接続方法に関し、特に、ATMネットワークのような多様なサービス品質(QOS)に応えることが要求されるネットワーク接続システムに係わる。
【0002】
【従来の技術】
図15に、複数のネットワーク・インタフェースを備えたサーバにおける従来のネットワーク接続を示す。複数のネットワーク・インタフェースを備えたサーバとしては、例えば、Auspex社のNFSサーバや、Maximum Strategy社のストレージサーバが知られている。
【0003】
図15において、500はサーバ、501、502、503はネットワーク・インタフェース、505はルーティング・テーブル、510、520、530はそれぞれネットワーク・インタフェース501、502、503に接続されるネットワーク、511ないし513、521ないし523、531ないし533は、それぞれネットワーク510、520、530に接続されるクライアント(ワークステーションやPCなど)を示す。540は公衆網570に接続されるネットワーク、541は、ネットワーク540に接続されるクライアントを示す。尚、サーバに備えられるネットワーク・インタフェースは、実体としてはインターフェース用のカード及び関連するソフトウエアなどで構成される。
【0004】
サーバ500は、ネットワーク510に接続されたゲートウェイ550とPBX(Private Branch Exchange:構内交換機)560を介して、公衆網570と接続される。クライアント511、512、513にはそれぞれ、ネットワーク510のネットワーク・アドレスnet1.1、net1.2、net1.3が割り当てられ、ネットワーク・インタフェース501には、ネットワーク510のネットワーク・アドレスnet1.11が割り当てられている。クライアント511、512、513は、net1.11を使ってのみ、つまりネットワーク510を通してのみサーバ500とデータ通信を行うことができる。同様に、クライアント521、522、523はネットワーク520を通してサーバ500とデータ通信を行い、クライアント531、532、533はネットワーク530を通してサーバ500とデータ通信を行う。公衆網570に接続されたクライアント541は、PBX560、ゲートウェイ550、ネットワーク510を経由してサーバ500とデータ通信を行う。LAN1〜LAN3に接続されているクライアントは、あらかじめ接続されているネットワーク510、520、530を通じてのみ、データ通信を行なうことができる。
【0005】
サーバ500からクライアント511、512、513、クライアント521、522、523、またはクライアント531、532、533へデータを転送するときには、サーバ500のオペレーティング・システムが管理するルーティング・テーブル505の指定にしたがって、ネットワーク・インタフェース501、502、503(ネットワーク510、520、530)のいずれか一つが使われる。一方、サーバ500からクライアント541へデータを転送するときには、ルーティング・テーブル505の指定にしたがって、ネットワーク510に接続されているゲートウエイ550が選択され、ゲートウエイ550はサーバ500から送られてきたパケットをネットワーク540に送る。この場合には、ネットワーク・インタフェース501のみが使用されることになる。
【0006】
図2に従来のルーティング・テーブルの構成を示す。図2において、161ないし165はルーティング・テーブルのエントリの項目を示す。各々のエントリは、宛先アドレスをハッシュ関数180で変換した値で定まるエントリ100ないし150をヘッダとする線型リストに接続される。宛先アドレスをキーにして線型リストをたどり、宛先アドレス161がキーと一致するエントリを見つける。最初に見つかったエントリのネットワーク・アドレスであるゲートウェイ・アドレス162からパケットを送出する。例えば、図15では、サーバ500からは、ネットワーク・インタフェース501を介し、ゲートウェイ550に接続されているネットワーク510を使ってクライアント541と通信することができる。(尚、サーバ500のネットワーク・インタフェース501、502、503を介して、ネットワーク510、520、530に接続されている各クライアントと通信を行う場合には、ゲートウエイ・アドレス162の代わりにネットワーク・アドレスnet1.11、net2.11、net3.11を直接指定することになる。)
ルーティング・テーブルの詳細は、Douglas E. Comer他著の”Internetworking with TCP/IP, Volume I, II” (Prentice Hall)や、S. J. Leffler他著の”The Design and Implementation of the 4.3BSD UNIX Operating system” (Addison Wesley) に示されている。このように、ルーティング・テーブルの役割は、パケットの宛先アドレスをキーにして、次にこのパケットを送出するゲートウェイなどのネットワーク・アドレスを明らかにする点にある。
【0007】
さらに、ルーティング・テーブル・エントリの中のネットワーク・インタフェース情報テーブルのエントリへのポインタ163によって、ゲートウェイに到達するネットワーク・インタフェースに関する情報171ないし176を得ることができる。ネットワーク・インタフェースに関する情報として、ネットワーク・インタフェースの最大転送長(MTU: Maximum Transmission Unit)172、このネットワーク・インタフェースを通過した入力・出力パケット数173、174などがある。
【0008】
【発明が解決しようとする課題】
上記従来技術によると、クライアントとサーバのデータ通信では、サーバのネットワーク・インタフェースが複数個存在するにもかかわらず、クライアントが接続されているただ一つのネットワーク・インタフェースしか使用できないため、ネットワーク・インタフェースの負荷状況に応じて動的にネットワーク・インタフェースを選択し、負荷を分散させることができないという問題があった。これは、クライアントの多様なサービス品質(QOS)に応ずることができないという問題につながる。例えば、昨今、音声や画像やデータなどマルチメディア・データを通信するニーズが高まっているが、容量がかなり大きくなるため、負荷が一つのネットワーク・インタフェースに集中してしまい、クライアントが要求するサービス品質(QOS)を満たすことが困難であった。
【0009】
さらに、上記従来技術によると、クライアントのネットワーク・インタフェースのバンド幅の方が、サーバの各ネットワーク・インタフェースのバンド幅よりも大きい場合には、サーバからクライアントへの転送に使用されるネットワーク・インタフェースがただ一つに限られるため、クライアントのネットワーク・インタフェースのバンド幅を十分に活用できないという問題があった。
【0010】
本発明の目的は、上記課題を解決し、複数のネットワーク・インタフェースを備えたサーバにおいて、クライアントが要求するサービス品質(QOS)に応じたネットワーク・インタフェースを用いて通信を行ったり、複数本のネットワーク・インタフェースを並列に用いて通信を行うことができるネットワーク接続システム及び並列ネットワーク接続方法を提供することにある。
【0011】
また、本発明の他の目的は、ATMネットワークのような帯域を予約できるネットワークを用いて、複数のネットワーク・インタフェースを有するサーバに接続し、コネクション設立時にクライアントが要求するサービス品質(QOS)を満たすネットワーク・インタフェースを使用することができるネットワーク接続システム及び並列ネットワーク接続方法を提供することにある。
【0012】
【課題を解決するための手段】
上記目的を達成するために、本発明は、第1の計算機(サーバ)のルーティング・テーブルの各エントリにネットワーク・インタフェースのアドレスであるネットワーク・インタフェース・アドレスを保持する。
【0013】
また、各ネットワーク・インタフェースの使用状況を保持するサービス品質(QOS)保持手段を備える。更に、第2の計算機(クライアント)が第1の計算機と通信路を開設するときに指定するQOSパラメタを指定する手段を備える。具体的には、第2の計算機(クライアント)が、第1の計算機(サーバ)に対して通信路の開設を要求したとき、第1の計算機はルーティング・テーブルのエントリの中から、最終宛先ネットワーク・アドレスが第2の計算機のネットワーク・アドレスと等しい少なくとも1つのエントリを選択し、選択したルーティング・テーブルのエントリのネットワーク・インタフェース・アドレスで示されるネットワーク・インタフェースのQOS保持手段と第2の計算機が指定するQOSパラメタを比較し、QOSパラメタで指定される条件を満たすことができるように、少なくとも1つのネットワーク・インタフェースを選択し、そのネットワーク・インタフェースを通して第1の計算機はゲートウェイにパケットを送付する。また、第1の計算機は第2の計算機に対して、通信路の開設時に送信する同期(SYN)パケットに付随させて、選択した全てのネットワーク・インタフェースのネットワーク・アドレスを教える。
【0014】
また、帯域の大きいネットワーク・インタフェースを備えた第2の計算機の場合には、第1の計算機の複数のネットワーク・インタフェースを並列に用いてデータ通信を行えるように構成する。
【0015】
クライアントが複数のネットワーク・インタフェースを備えたサーバとデータ通信を行うとき、クライアントが要求するサービス品質(QOS:Quality of Service)を満たすことができるように、各ネットワーク・インタフェースの動的な負荷の大きさなどに応じて、サーバはネットワーク・インタフェースを選択できることが望ましい。
【0016】
本発明では、まず、サーバが同一のクライアントに対して、異なるネットワーク・インタフェースを用いてデータ通信を行えるようにするために、ATM(Asynchronous Transfer Mode)スイッチのようなLANスイッチの複数の帯域予約可能な仮想チャネルを用いることとし、従来のルーティング・テーブル・エントリにネットワーク・インタフェースのアドレスを追加する。クライアントのネットワーク・アドレスとネットワーク・インタフェース・アドレスの両者によって、パケットを送出するゲートウェイのネットワーク・アドレスを求めることによって、異なる経路を選択できるようにする。
【0017】
さらに、(a)サーバに、ネットワーク・インタフェースごとに仮想チャネルの帯域や動的な負荷の統計情報を保持するQOS管理テーブルを設け、データ通信路の確立要求時にこのテーブル・エントリを参照し、(b)従来の3ウェイハンドシェークを拡張して、コネクション確立時において、サーバがクライアントにSYN(同期)/ACK(応答)を返すときに、SYNのパラメタとしてサーバが選択したコネクションのネットワーク・インタフェース・アドレスを添付し、クライアントはSYNで指定されたネットワーク・インタフェース・アドレスに対してACKを返すことによって、サーバが選択したネットワーク・インタフェースを用いてコネクションを確立し、以降のデータ通信を行えるようにする。また、帯域の大きいネットワーク・インタフェースを備えたクライアントの場合には、サーバの複数のネットワーク・インタフェースを並列に用いてデータ通信を行えるようにするために、3ウェイハンドシェークによるコネクション確立時において、サーバがクライアントにSYN/ACKを返すときに、SYNのパラメタとしてサーバが選択したネットワーク・インタフェース数と各々のネットワーク・アドレスを添付し、クライアントはSYNで指定された全てのネットワーク・アドレスに対してACKを返し、サーバが選択したネットワーク・インタフェースを用いてコネクションを確立し、以降のデータ通信を行えるようにする。さらに、プロトコル層とアプリケーション層の間において、パケットの分割・統合を行うことによって、アプリケーション・プログラムの変更なしに、並列通信を実現することができるようにする。
【0018】
【発明の実施の形態】
(1)実施形態例1
以下、本発明の詳細な実施形態例を説明する。
【0019】
図3は、本発明の実施形態例1に係るネットワーク接続システムの全体構成図を示す。図3において、3000は本発明が適用されるサーバ計算機、3050は例えばATM(Asynchronous Transfer Mode)スイッチのようなLANスイッチ、3060はPBX(Private Branch eXchange:構内交換機)、3070は公衆網、3100、3200、3300、3400はLAN(Local Area Network)、3101、3201、3301、3401はクライアント計算機、3102、3202は本発明が適用されるゲートウェイ計算機を示す。
【0020】
サーバ3000は、ワークステーションなどの単一の計算機または並列計算機で構成され、ネットワーク・インタフェース3001、3002、3003、3004を通して、それぞれ通信路3011、3012、3013、3014に接続され、これらの通信路はLANスイッチ3050と接続される。また、ネットワーク・インタフェース3005、3006を通して、通信路3015、3016に接続され、これらの通信路はそれぞれLAN3300、3400と接続される。LANスイッチ3050は、ATMスイッチやファイバーチャネルのようなスイッチで構成され、通信路3074を通してPBX3060と接続され、PBX3060は通信路3073を通して公衆網3070に接続される。ここで、通信路3011、3012、3013、3014、3074、3073は、例えばATMのように、それぞれ、1つないしは複数の帯域予約可能な仮想チャネルから構成され、LANスイッチ3050やPBX3060は、仮想チャネル間のスイッチングを行う。LANスイッチとサーバとの間に複数の仮想チャネルを有していることがポイントとなっている。クライアント3101、3201、3301、3401は、PCやワークステーションなどの計算機で構成され、それぞれ、通信路3110、3210、3310、3410を通してLAN3100、3200、3300、3400と接続され、ゲートウェイ3102は、ネットワーク接続するための計算機であり、通信路3111、3071、3081を通して、それぞれLAN3100、公衆網3070、公衆網3080と接続され、ゲートウェイ3202も同じくネットワーク接続するための計算機であり、通信路3211、3072、3082を通して、それぞれLAN3200、公衆網3070、公衆網3080と接続される。尚、ネットワーク接続手段としては、ゲートウエイの他に、ルータやスイッチなども含まれる。
【0021】
本実施形態例では、LANスイッチ3050と公衆網3070を含むネットワークには、ネットワーク・アドレスとしてnet1.*が割り当てられ、公衆網3080を含むネットワークにはnet2.*、LAN1、LAN2、LAN3、LAN4にはそれぞれnet11.*、net12.*、net13.*、net14.*が割り当てられている。通信路3011ないし3016が接続されるサーバ3000のネットワーク・インタフェース3001ないし3006には、それぞれネットワーク・アドレスnet1.1、net1.2、net1.3、net1.4、net13.1、net14.1が割り当てられ、クライアント3101、3201、3301、3401には、それぞれnet11.10、net12.10、net13.10、net14.10、ゲートウェイ3102の各ネットワーク・インタフェースには、net11.9、net1.11、net2.11、ゲートウェイ3202の各ネットワーク・インタフェースには、net12.9、net1.12、net2.12が割り当てられている。
【0022】
図3において、サーバ3000はクライアント3101とデータ通信を行う場合、複数の経路を選択することができる。サーバ3000は、ネットワーク・インタフェース3001、3002、3003、3004のいずれを使用してもLANスイッチ3050、PBX3060、公衆網3070、ゲートウェイ3102、LAN3100を経て、クライアント3101と通信ができる。また、公衆網3070からクライアント3101までの他の経路として、ゲートウェイ3202、公衆網3080、ゲートウェイ3102、LAN3100を経る経路がある。
【0023】
いま、クライアント3101がサーバ3000とTCP/IPプロトコルを用いてコネクション指向のデータ通信を行う場合を用いて、本発明の実施形態例1を説明する。まず、図16にプログラム記述の実施形態例を示す。本プログラムは、W. D. Stevens著の”UNIX network programming” (Prentice Hall) にも記されているsocketを用いたプログラムを拡張している。9001から9015がサーバ3000で実行されるプログラムを示し、9050から9061がクライアント3101で実行されるプログラムを示す。サーバ3000は、socketの生成(9002)、socketのアドレス付け(9006)を行った後、listen()コールによって、任意のクライアント(9004)からのコネクション設立要求を待つ(9007)。クライアント3101は、socketを生成(9053)した後、サーバ3000のネットワーク・アドレスのひとつであるnet1.1(9051)を指定して(9055)、connect()コールによってサーバとのコネクション設立を要求する(9058)。
【0024】
サーバとのコネクション設立を要求するときに、通信路のQOSを指定する(9057)。QOSは、9052に示すように、サービス・クラス、ピークバンド幅(Mbps)、平均バンド幅(Mbps)の3項目で構成される。サービス・クラスにはBest Effort (BE)、GB (Guaranteed Burst)、GS (Guaranteed Stream)の3種類がある。BEは通常のデータ通信で、通信路の込み具合に応じてデータ・スループットが変化する。GBはバースト転送向けのデータ通信で、バースト転送時のスループットをできる限り保証する。バースト転送開始前に帯域の予約を増減させることもできる。GSはビデオや音声などのストリーム・データの通信で、あらかじめ確保されたバンド幅を保証する。サービス・クラス指定をオフにすることもできる。
【0025】
クライアント3101がconncet()コールによって通信路の開設を要求し、サーバ3000がクライアントの要求を受け入れると、accept()コールによってクライアントとサーバ間の通信路が確立する(9009)。サーバは新たに確立した通信路で用いるソケットの記述子newfdを割り当て(9009)、子プロセスを生成し(9010)、子プロセスとクライアントとの間でデータ通信が行われる(9013)。親プロセスは、他のクライアントからの要求を受け付けるべく待ち状態に戻る(9015、9008)。クライアント3101も通信路が確立すると(9058)、サーバとの間でデータ通信を行う(9059)。
【0026】
次に図4、図1、図9、図10、図11、図12を用いて、TCP/IPプロトコル層におけるクライアント3101とサーバ3000との間のコネクションの確立方法の実施形態例を示す。
【0027】
まず、図4を用いてコネクション確立方法の処理の概略を示す。図4において、3500、3501、3502、3503、3550、3551、3552は、TCPプロトコルの状態を示し、3570、3571、3572はクライアント3101とサーバ3000との間でコネクションを確立する3ウェイ・ハンドシェークを示す。オリジナルの3ウェイ・ハンドシェークに関しては、Douglas E. Comer他著の”Internetworking with TCP/IP, Volume I, II” (Prentice Hall)に詳しく記されている。
【0028】
CLOSED状態(3500)のサーバ3000は、図16に示したプログラム中のlisten()コールが実行されると(9007)LISTEN状態になり、クライアントからのコネクション開設要求を待つ(3501)。CLOSED状態3550のクライアント3101は、図16に示したプログラム中のconnect()コールが実行されると(9058)、サーバ3000のネットワーク・インタフェースのひとつであるネットワーク・アドレスnet1.1とのデータ通信を制御するために必要な制御ブロックTCB(Transmission Control Block)を作成する(3560)。次に、net1.1に対してコネクション開設を要求するために(3561)、SYN(同期)フラグを立てたTCPパケットをサーバ3000へ送る。このとき、クライアント3101は、コネクションのQOS(サービス品質)をSYNフラグ付TCPパケットのパラメタとしてサーバ3000へ送付する(3570)。QOSは、図16の9052に示したように、サービスクラス、ピークバンド幅(Mbps)、平均バンド幅(Mbps)の3項目で構成される。クライアント3101は、SYNフラグ付TCPパケットを送ると、SYN SENT状態になる(3551)。
【0029】
LISTEN状態のサーバ3000は、QOS(サービス品質)付きのTCPパケットを受け取ると、クライアント3101のQOSを満たすネットワーク・インタフェースを探す。ネットワーク・インタフェースを選択する手順の実施形態例は後述する。いま、図3におけるネットワーク・インタフェース3003、ネットワーク・アドレスnet1.3のインタフェースを選択した場合について述べる(3510)。サーバ3000は、ネットワーク・アドレスnet1.3に対応するTCB(Transmission Control Block)を作成する(3511)。TCBには、クライアント3101のネットワーク・アドレス、サーバ3000の選択されたネットワーク・インタフェースのネットワーク・アドレスnet1.3、通信プロトコル名TCPが保持されている。サーバ3000は、TCBを作成した後、クライアント3101に対して、クライアントからのSYNに対するACK(応答)フラグの付いたTCPパケットと、SYNフラグの付いたTCPパケットをクライアント3101に送り(3571)、このTCBをSYN RECVD状態にする(3502)。SYNフラグには、パラメタとしてネットワーク・アドレスnet1.3を添付する。クライアント3101は、パラメタとしてネットワーク・アドレスnet1.3付随したSYNフラグ付きTCPパケットを受け取ると、net1.1用に作成したTCBを削除し(3562)、net1.3に対応したTCBを作成する(3563)。次に、クライアント3101はnet11.3に対して、ACKフラグ付TCPパケットを送り(3572)、ESTABLISHED状態となる(3552)。サーバ3000もACKを受け取るとESTABLISHED状態となり(3503)、以降、クライアントとサーバ間でSEND/RECEIVEによる通信を行うことができる(3573)。
【0030】
以上図4を用いて示した本発明のコネクション確立方法の詳細を、図1、図9、図10、図11、図12を用いて説明する。図9、図10、図11は、LISTEN状態(3501)でクライアントからのコネクション設立要求を待っている状態以降のサーバ3000の処理のフローチャート図、図12はクライアント3101の処理のフローチャート図、図1は、ネットワーク・インタフェースを選択するときに用いるデータ構造を示す。
【0031】
図9において、LISTEN状態(3501)のサーバ3000は、クライアント3101からQOS指定付きのSYNフラグの付いたTCPパケットを受信すると(3570)、クライアント3101のQOS要求を満たし、サーバ3000のネットワーク・インタフェースの負荷を分散できるネットワーク・インタフェースを選択するため(4010)、以下の処理を行う。
【0032】
図1を一緒に用いて、ネットワーク・インタフェースを選択する手順について説明する。図1は、本発明の実施形態例1にかかるルーティング・テーブル、ネットワーク・インタフェース情報テーブル、QOS管理テーブルを示す。サーバ3000はネットワーク・インタフェースを選択するときに、これらのテーブルを参照する。
【0033】
図1において、10ないし60はルーティング・テーブルの各エントリの並びのヘッダである。クライアント3101のネットワーク・アドレス(サーバ3000から見た場合には宛先アドレス)net11.10をハッシュ関数で変換し、ルーティング・テーブル・エントリをたどる。ルーティング・テーブルの各エントリは、最終的にパケットを送り届ける先であるクライアントの宛先アドレス70、宛先アドレスへ到達できるサーバ3000のネットワーク・インタフェースのネットワーク・アドレス71、宛先アドレス70へ到達するために次ぎにパケットを送出するゲートウェイのネットワーク・アドレス72、ゲートウェイが接続されているネットワーク・インタフェースの情報とネットワーク・インタフェースのQOS情報を保持するネットワーク・インタフェース情報テーブルへのポインタ73、宛先が等しいルーティング・テーブル・エントリを高速にサーチするためのポインタ74、ルーティング・テーブル・エントリのリストを作成するためのポインタ75、その他76から構成される。ネットワーク・インタフェース情報テーブルの各エントリは、ネットワーク・インタフェースの名前80、当該ネットワーク・インタフェースが処理できる最大パケット長(MTU:Maximum Transmission Unit)81、当該ネットワーク・インタフェースを通して送受信されたパケット数の累積値を保持する受信パケット数82と送信パケット数83、ネットワーク・インタフェース情報テーブルのエントリの線型リストを作成するためのポインタ84、当該ネットワーク・インタフェースのQOS情報や動的負荷情報を保持するQOS管理テーブル・エントリへのポインタ85、その他86から構成される。QOS管理テーブルの各エントリは、当該ネットワーク・インタフェースの最大バンド幅(メガビット/秒)90、バーチャル・チャネル(VC)の本数91、各バーチャル・チャネルに割り当てられているバンド幅(帯域幅)(メガビット/秒)92、各バーチャル・チャネルのコネクションが設立されているか否かを示すフラグ93、サービスクラスがGBかGSで、コネクションが設立されているバーチャル・チャネル本数94、サービスクラスがGBかGSでコネクションが設立され、予約済になっているバンド幅の合計値(メガビット/秒)95、最新1分間のピーク転送量(メガビット/秒)96、最新1分間の平均転送量(メガビット/秒)97などからなる。
【0034】
図13を用いて、図3のネットワーク接続構成における、サーバ3000のルーティング・テーブル全体の実施形態例を示す。図13において、3800がルーティング・テーブルの全体、3801ないし3814の各々がルーティング・テーブル・エントリの中の宛先アドレス(70)、ネットワーク・インタフェースのネットワーク・アドレス(71)、ゲートウェイのネットワーク・アドレス(72)を示す。
【0035】
クライアント3101を含むLAN3100のネットワーク・アドレスは、宛先アドレスnet11.*(3801ないし3808)で示し、LAN3200、3300、3400のそれぞれのネットワーク・アドレスは、宛先アドレスnet12.*(3809ないし3812)、net13.*(3813)、net14.*(3814)で示している。エントリ3801は、net11.*へのルーティングは、サーバ3000のネットワーク・インタフェース3001(ネットワーク・アドレスはnet1.1)を用いて、ゲートウェイ3102(ネットワーク・アドレスnet1.11)経由で可能であることを示している。同様に、エントリ3802、3803、3804は、それぞれネットワーク・インタフェース3002、3003、3004(ネットワーク・アドレスはnet1.2, net1.3, net1.4)を用いて、ゲートウェイ3102経由でnet11.*へのルーティングが可能であることを示し、エントリ3805、3806、3807、3808は、それぞれネットワーク・インタフェース3001、3002、3003、3004(ネットワーク・アドレスはnet1.1, net1.2, net1.3, net1.4)を用いて、ゲートウェイ3202(ネットワーク・アドレスnet1.12)経由でnet11.*へのルーティングが可能であることを示す。以上のように、ルーティング・テーブルにあらかじめnet11.*へ到達可能なネットワーク・インタフェースとゲートウェイ・アドレスを設定しておき、コネクション設立時に、クライアント3101が要求するQOSやサーバ3000のネットワーク・インタフェースの負荷やLANスイッチ3050の負荷に応じてデータ通信路(経路)を選択する。同様に、エントリ3809、3810、3811、3812は、それぞれネットワーク・インタフェース3001、3002、3003、3004(ネットワーク・アドレスはnet1.1, net1.2, net1.3, net1.4)を用いて、ゲートウェイ3202(ネットワーク・アドレスnet1.12)経由でnet12.*へのルーティングが可能であることを示す。
【0036】
図3によると、ゲートウェイ3102経由でもnet12.*へのルーティングは可能であるが、図13のルーティング・テーブルの設定によると、ゲートウェイ3102経由のルーティングは行わせていない。エントリ3813、3814のネットワーク・インタフェース・アドレスが未指定なのは、net13.*とnet14.*へのルーティングは、サーバ3000のネットワーク・インタフェースの数が1つずつしかないため、指定する必要がないためである。なお、従来のルーティング・テーブルでは、ネットワーク・インタフェースのネットワーク・アドレスのカラムが、ルーティング・テーブルには無かった。
【0037】
コネクションが確立されると、テーブル3820に、データ通信を行うクライアント(宛先アドレス)とサーバのネットワークインタフェースのネットワーク・アドレス(送信元アドレス)を登録する。図13のテーブル3820の場合には、クライアント3101とサーバ3000のネットワーク・インタフェース3002、3003、3004の間でコネクションが確立されている(3821、3822、3833)。
【0038】
図9の説明に戻る。サーバ3000は、クライアント3101のネットワーク・アドレスnet11.10をハッシュ関数にかけ、ルーティング・テーブル・エントリのリストのヘッダ40を求める(4020)。ヘッダ40からルーティング・テーブル・エントリをたどり、そのエントリの宛先アドレス70が、クライアント3101のネットワーク・アドレスnet11.10もしくはクライアント3101のサブネットワーク・アドレスnet11と等しいか否かを調べる(4030)。もし、アドレスが不一致の場合には、ルーティング・テーブル・エントリの次エントリへのポインタ75をたどり、次のエントリへ進み(4035)、クライアント3101のネットワーク・アドレスnet11.10もしくはクライアント3101のサブネットワーク・アドレスnet11と等しい宛先アドレス70のルーティング・テーブル・エントリが見つかるまで繰り返す(4030、4035)。
【0039】
アドレスが等しいルーティング・テーブル・エントリが見つかった場合について説明する。
【0040】
(A)クライアント3101が要求するサービス・クラスがGB(Guaranteed Burst)かGS(Guaranteed Stream)の場合には、ルーティング・テーブル・エントリ中のポインタ73から、ネットワーク・インタフェース情報テーブル・エントリを調べ(4040)、その中のQOS管理テーブル・エントリへのポインタ85の値をワークメモリ領域に記録する(4050)。ルーティング・テーブル・エントリ中のポインタ74を用いて、同じ宛先アドレスの全てのルーティング・テーブル・エントリを求め(4060)、そのネットワーク・インタフェース情報テーブル・エントリの中のQOS管理テーブル・エントリへのポインタ85の値をワークメモリ領域に記録する(4050)。本実施形態例の場合には、図13のルーティング・テーブル3800によると、エントリ3801ないし3808の8つのエントリが選択される。
【0041】
図10に移る。次に、4050で記録したQOS管理テーブル・エントリへのポインタをたどり、QOS管理テーブル・エントリ中の記録を調べ、次の2条件を満たすサーバ3000のネットワーク・インタフェースを選択する(4070)。
【0042】
1)クライアント3101が要求する平均バンド幅が、最大バンド幅(90)から予約済みバンド幅の合計(95)を引いた値よりも小さいこと、
2)クライアント3101が要求するピーク・バンド幅が、未予約のバーチャル・チャネル(93)のバンド幅の中で、最大のものよりも小さいこと、の2条件である。
【0043】
もし該当するネットワーク・インタフェースがない場合には、最近一分間のピーク転送量(96)が最小のネットワーク・インタフェースを選択する(4080)。図10や図4には示していないが、クライアント3101の要求を満たすことができない場合には、サーバ3100はSYN SENT状態のクライアント3101に対して、クライアント3101の要求を満たすことができない旨を、ACKフラグ付TCPパケットのパラメタとして伝え、クライアント3101とQOSの協議を行い、クライアント3101がQOSを指定し直して、再びSYNフラグ付TCPパケットをサーバ3000に送り(3570)、新しいQOSに基づいてサーバ3000がネットワーク・インタフェースを探す(3510)、というサーバ3000とクライアント3101との間の協議が行われてもよい。
【0044】
再び図10へ戻って、4070において、もし該当するネットワーク・インタフェースがある場合には、条件を満たすネットワーク・インタフェースの中から、予約済みバンド幅が最小のインタフェースを選択する(4085)。選択したネットワーク・インタフェースのQOS管理テーブル・エントリの予約済バンド幅(95)に、クライアント3101が要求している平均バンド幅を加える。
【0045】
選択したネットワーク・インタフェースのアドレスを含むルーティング・テーブル・エントリを以下では用いる。
【0046】
(B)4030に戻り、クライアント3101が要求するサービス・クラスがBE(Best Effort)か未指定の場合には、最初に見つかったルーティング・テーブル・エントリを用いる。
【0047】
選択したルーティング・テーブル・エントリから、ネットワーク・インタフェースのネットワーク・アドレス(71)を求める(4200)。TCPプロトコルを用いてEnd−to−Endのデータ通信を行うのに必要なTCB(Transmission control Block)を作成する(4210)。TCBに記す送信元アドレスには4200で求めたネットワーク・アドレスを指定し、宛先アドレスにはクライアント3101のネットワーク・アドレスを指定する。TCBを作成すると、クライアント3101にACKフラグ付TCPパケットと、ネットワーク・インタフェースのネットワーク・アドレスをパラメタとして付加したSYNフラグ付TCPパケットを送り(4220)、SYN RECVD状態になる(3502)。
【0048】
図11に移る。SYN RECVD状態において、クライアント3101からACKフラグ付TCPパケットを受け取ると(4250)、コネクション確立済み通信路の管理テーブル(図13におけるテーブル3820)に、当該ネットワーク・インタフェース・アドレスとクライアント3101のネットワーク・アドレスを登録し(4260)、ESTABLISHED状態になる(3503)。以降、クライアントとサーバ間で、QOSに従ったデータ通信を行う。
【0049】
図12を用いて、クライアント3101の詳細な処理手順を示す。CLOSED状態(3550)のクライアントでは、アプリケーション・プログラムが、サーバ3000の複数のネットワーク・インタフェースの中の一つのネットワーク・アドレスnet1.A(9051)とQOS(9057)を指定して、connect()コールを実行する(9058)。クライアント上のOSは、connect()コールを契機にして通信路開設要求を受ける(4300)。OSはまず、net1.Aとの通信のために必要なTCB(Transmission Control Block)を作成し、connect()コールで指定されたQOS値をパラメタとする、SYNフラグ付TCPパケットを、サーバ3000のネットワーク・インタフェースの中の一つであるnet1.A宛てに送る(4310)。SYNフラグ付TCPパケットを送ると、クライアント3101はSYN SENT状態になり、サーバ3000から送られてくるACKフラグ付のTCPパケットを待つ(3551)。ACKおよび、SYNフラグ付TCPパケットを受け取ると、SYNのパラメタである、サーバ3000のネットワーク・インタフェースのアドレスのひとつであるネットワーク・アドレスnet1.Bがnet1.Aと等しいかどうかを調べる(4320)。もし、等しい場合には、net1.A宛てでサーバ3000へACKフラグ付TCPパケットを送る(4345)。もし、不一致の場合は、サーバ3000がネットワーク・インタフェースを変更したものとみなし、4310で作成したnet1.Aとの通信のためのTCBを削除し、新たにnet1.Bとの通信のためのTCBを作成する(4330)。TCBを作成後、net1.B宛てでサーバ3000へACKフラグ付TCPパケットを送る(4340)。ACKを返すと、次に、クライアントの中のコネクション確立済み通信路管理テーブルに、サーバ3000のネットワーク・インタフェースのネットワーク・アドレスnet1.Bと、クライアント3101のネットワーク・アドレスnet11.10を登録し(4350)、ESTABLISHED状態になる(3552)。以降、クライアントとサーバ間で、QOSに従ったデータ通信を行う。
【0050】
次に、図7、図8を用いて、コネクション確立方法におけるLANスイッチ3050の動作を説明する。
【0051】
図7において、3011、3012、3013、3014、3074は、図3と同じく通信路を表す。3011a、3011bは通信路3011に設定されるバーチャル・チャネルを示す。図7では、図面の都合上、2本のバーチャル・チャネルを記しているだけであるが、通常はもっと多くの本数のバーチャル・チャネルが存在する。また、バーチャル・チャネルはあらかじめ設定される場合もあるが、動的に生成されてもよい。3012a、3012bは通信路3012に設定されるバーチャル・チャネル、3013a、3013bは通信路3013に設定されるバーチャル・チャネル、3014a、3014bは通信路3014に設定されるバーチャル・チャネル、3074a、3074b、3074c、3074d、3074e、3074fは通信路3074に設定されるバーチャル・チャネルである。通信路3074において、バーチャル・チャネル3074a(VC=11)、3074b(VC=12)、3074c(VC=13)、3074d(VC=14)は、通信路3071のバーチャル・チャネルに接続され、バーチャル・チャネル3074e(VC=21)と3074f(VC=22)は、通信路3072のバーチャル・チャネルに接続される。
【0052】
図7において、5000は、サーバ3000の各ネットワーク・インタフェースのネットワーク・アドレスとLANスイッチ3050のポート番号の変換テーブル、5010(a)はLANスイッチ3050の各ポートとバーチャル・チャネルの組が、相互にどのように接続されるかを示すスイッチング・テーブルである。変換テーブル5000によって、ネットワーク・アドレスをLANスイッチ3050の物理アドレスに変換し、パケットをネットワーク・アドレスで指定されるポートへ送出することができる。スイッチング・テーブル5010は、コネクションが設立されるときに設定されるテーブルである。図7において、5100、5200、5300、5400、5500は、LANスイッチ3050のポート#0、#1、#2、#3、#4のQOS管理テーブルのエントリを示す。各エントリのフォーマットは、図1の90ないし97と同じである。サーバ3000が、LANスイッチ3050のポート#0のQOSも管理することによって、サーバ3000がクライアントとしてコネクションを設立するときや、サーバ3000がゲートウェイとしてルーティングを行う場合、図3における公衆網3070に接続される複数のゲートウェイの中で、どのゲートウェイへルーティングすると、クライアントのQOSを満たすことができるかを判断することができる。つまり、図9、図10、図11を用いて述べた実施形態例では、ネットワーク・インタフェース3001、3002、3003、3004のQOS管理テーブル・エントリ5110、5120、5130、5140から、クライアント3101とのコネクション設立時の経路を決定したが、さらにLANスイッチ3050のポート#0のQOS管理テーブル・エントリ5100も一緒に用いて、LANスイッチ3050のポート#0のバーチャル・チャネルと、ポート#1、2、3のバーチャル・チャネルのスイッチングの設定も考慮して、サーバ3000とLANスイッチ3050との経路を選択することができる。その判断のための処理手順は、図9、図10、図11と同様である。
【0053】
図8を用いて、コネクション確立方法におけるLANスイッチ3050の動作を説明する。クライアント3101からサーバ3000のnet1.1宛のSYNフラグ付TCPパケットが、LANスイッチ3050のポート#0、VC=11(3074a)へルーティングされて届いた場合(5500)について説明する。LANスイッチ3050は、変換テーブル5000を調べ、net1.1宛のSYNフラグ付TCPパケットの送出先ポート#が1であることを求める(5510)。次に、ポート#1のバーチャル・チャネルの中からVC=1(3011a)を選択し、(ポート#0、VC=11)と(ポート#1、VC=1)が相互にスイッチングされるように、アドレス・スイッチング・テーブル5010(a)に登録する(5520)。今、サーバ3000がネットワーク・インタフェースとして通信路3013(ネットワーク・アドレスnet1.3)を選択した場合、サーバ3000は、LANスイッチ3050に対して、アドレス・スイッチング・テーブル5010に登録されている(ポート#0、VC=11)と(ポート#1、VC=1)の対応を記したエントリを削除させ、さらに(ポート#0、VC=11)と(ポート#3、VC=1)の対応を記したエントリを追加させる(5530)。LANスイッチ3050は、アドレス・スイッチング・テーブル5010(a)の内容を変更する(5540)。変更の結果、テーブル5010(a)は、テーブル5010(b)に示すとおりに更新される。この結果、サーバ3000は通信路3013を使って、クライアント3101へ、ACKフラグ付TCPパケットと、ネットワーク・アドレスnet1.3がパラメタとして付随したSYNフラグ付TCPパケットを、送ることができる(5550)。つまり、サーバ3000が(ポート#3、VC=1)へ送り出したパケットは、クライアント3101がSYNフラグ付TCPパケットをサーバ3000に送るときに使用した(ポート#0、VC=11)へスイッチングされるため、クライアント3101へ届くことができるだけでなく、クライアント3010からLANスイッチ3050までに確立された経路をそのまま使用することができる。クライアント3101は、サーバ3000に対して、(ポート#0、VC=11)からネットワーク・アドレスnet1.3に対応する(ポート#3、VC=1)へ、ACKフラグ付TCPパケットを送出し(5560)、コネクションが確立される(5570)。
【0054】
以上のように、上記の本発明の実施形態例1によると、クライアントが要求するQOSとサーバの負荷に応じて、サーバは複数のネットワーク・インタフェースの中から、条件に見合ったネットワーク・インタフェースを選択し、データ通信を行うことができる。
【0055】
また、上記の実施形態例1によると、クライアント3101は、コネクション確立時にはサーバ3000の全てのネットワーク・インタフェースのネットワーク・アドレスを知らなくとも、クライアントが要求するQOSに応じたネットワーク・インタフェースを用いてコネクションを確立でき、データ通信を行うことができる。上記の実施形態例1によると、サーバ3000からの指示にしたがって、LANスイッチ3050の中のスイッチング・テーブルを更新できるため、サーバ3000の公衆網3070に接続されるネットワーク・アドレスは、ネットワーク・インタフェース3001のアドレスをただ一つ割り当てておくだけでも、異なる経路を用いて、クライアントとデータ通信を行うことができる。
【0056】
また、上記の実施形態例1ではネットワーク・インタフェースを選択する手順のひとつを示したに過ぎないが、QOS管理テーブルの情報の使い方によって、種々の選択手順を考えることができる。
【0057】
(2)実施形態例2
次に、本発明の実施形態例2である、クライアント3101とサーバ3000との間の並列コネクションの確立方法について、図5、図1、図18、図19、図20、図21を用いて説明する。
【0058】
まず、図5を用いて、おおまかな処理の流れを示す。
【0059】
図5において、3500、3501、3502、3503、3550、3551、3552は、TCPプロトコルの状態を示し、3590、3591、3592、3593、3594はクライアント3101とサーバ3000との間でコネクションを確立する3ウェイ・ハンドシェークを示す。
【0060】
CLOSED状態3500のサーバ3000は、図11に示したプログラム中のlisten()コールが実行されると(9007)LISTEN状態になり、クライアントからのコネクション開設要求を待つ(3501)。CLOSED状態3550のクライアント3101は、図16に示したプログラム中のconnect()コールが実行されると(9058)、サーバ3000のネットワーク・インタフェースのひとつであるネットワーク・アドレスnet1.1とのデータ通信を制御するために必要な制御ブロックTCB(Transmission Control Block)を作成する(3580)。次に、net1.1に対してコネクション開設を要求するために(3581)、SYNフラグを立てたTCPパケットをサーバ3000へ送る。このとき、クライアント3101は、コネクションのQOS(サービス品質)をSYNフラグ付TCPパケットのパラメタとしてサーバ3000へ送付する(3590)。QOSは、図16の9052に示したように、サービスクラス、ピークバンド幅(Mbps)、平均バンド幅(Mbps)の3項目で構成される。クライアント3101は、SYNフラグ付TCPパケットを送ると、SYN SENT状態になる(3551)。
【0061】
LISTEN状態のサーバ3000は、QOS(サービス品質)付きのTCPパケットを受け取ると、クライアント3101のQOSを満たすネットワーク・インタフェースを探す。ひとつのネットワーク・インタフェースだけではクライアント3101が要求するQOSを満たすことができない場合には、複数のネットワーク・インタフェースを選択し、それらの合計値でクライアント3101が要求するQOSを満たすようにする。複数のネットワーク・インタフェースを選択する手順の実施形態例は後述する。いま、図3におけるネットワーク・インタフェース3002、3003、3004の3個(ネットワーク・アドレスnet1.2, net1.3, net1.4)を選択した場合について述べる(3520)。サーバ3000は、ネットワーク・アドレスnet1.2, net1.3, net1.4に対応する3個のTCB(Transmission Control Block)を作成する(3521)。サーバ3000は、3個のTCBを作成した後、クライアント3101に対して、クライアントからのSYNに対するACKフラグの付いたTCPパケットと、SYNフラグの付いたTCPパケットをクライアント3101に送り(3591)、これらのTCBをSYN RECVD状態にする(3502)。SYNフラグには、パラメタとしてネットワーク・アドレスの個数3、ネットワーク・アドレスnet1.2, net1.3, net1.4、および各経路に割り当てられたQOS(平均バンド幅)を添付する。クライアント3101は、パラメタが付随したSYNフラグ付きTCPパケットを受け取ると、net1.1用に作成したTCBを削除し(3582)、net1.2, net1.3, net1.4に対応した3個のTCBを作成する(3583)。次に、クライアント3101はnet1.2, net1.3, net1.4に対して、それぞれACKフラグ付TCPパケットを送り(3592、3593、3594)、ESTABLISHED状態となる(3552)。サーバ3000も3個のACKを受け取るとESTABLISHED状態となり(3503)、3本のコネクションが確立される。以降、クライアントとサーバ間では、3本のコネクションを用いて、SEND/RECEIVEによる並列通信を行うことができる(3595)。
【0062】
並列通信のための分割・統合の方法の実施形態例を図17を用いて説明する。図17では、サーバ3000からクライアント3101へデータを送る場合について示す。6030、6031、6032、6033はサーバ3000内のバッファ、6130、6131、6132、6133はクライアント3101内のバッファ、6012、6013、6014はサーバ3000からネットワーク6070に接続される通信路(図3における通信路3012、3013、3014に相当する)、6110はクライアント3101からネットワーク6070に接続される通信路(図3における通信路3110に相当する)を示す。今、アプリケーションからデータをSENDすると、そのデータはTCPプロトコル層のバッファ6030に一時的に保持される。6030内のデータは、アプリケーションが指定するセグメント長ごとに3つに分割し、バッファ6031、6032、6033に、3つの通信路に割り当てられたバンド幅に比例した個数ずつ分配する。例えば、バンド幅の比率が2:1:1の場合には、6031、6031、6032、6033の順序で振り分け、各バッファは一時的にデータを保持する。TCP層では、サーバ3000のバッファ6031、6032、6033と、クライアント3101のバッファ6131、6132、6133を1対1で対応させ、それぞれが独立したコネクションとして、互いに独立にサーバ3000からクライアント3101へデータを送る(SENDする)。つまり、バッファ6031、6032、6033のデータは、それぞれ通信路6012、6013、6014から通信路6110へ送られる。クライアント3101内のバッファ6131、6132、6133へ送られてきたデータは、ひとつのデータに統合し、バッファ6130へ送り、クライアント3101上のアプリケーションがデータを受け取る。以上のように、TCP層とアプリケーション層との間で、データの分割と統合を行うため、アプリケーション・プログラムには並列通信を隠蔽できる。そのため、シングル通信と同じプログラムを用いて並列通信を実現し、クライアントが要求するQOSを満たすことができる。
【0063】
また、分割と統合のアルゴリズムは、次のようであってもよい。バッファ6030内のデータをセグメント長ごとに分割するときに、各セグメントにシリアル番号を付加する。3つの通信路の負荷状態は、動的に変化するため、バッファ6030からバッファ6031、6032、6033へセグメントを分配するときには、バッファ6031、6032、6033の中で未送付のセグメント数が最少のバッファを選択し、未送付のセグメント数が等しければ、先頭のセグメントのシリアル番号が一番大きなバッファを選択することによって、最もSEND処理が進行している通信路に付加を加えることができるため、動的に負荷を分散させ、より高速な通信が可能になる。
【0064】
以上図5を用いて示した本発明の実施形態例2の詳細を、図1、図18、図19、図20、図21を用いて説明する。図18、図19、図20は、LISTEN状態(3501)でクライアントからのコネクション設立要求を待っている状態以降のサーバ3000の処理のフローチャート図、図21はクライアント3101の処理のフローチャート図を示す。なお、図18は、図9と同じフローチャート図のため、説明を省略する。
【0065】
図19において、図18の4050で記録したQOS管理テーブル・エントリへのポインタをたどり、QOS管理テーブル・エントリ中の記録を調べ、次の2条件を満たすサーバ3000のネットワーク・インタフェースを選択する。
【0066】
1)クライアント3101が要求する平均バンド幅が、最大バンド幅(90)から予約済みバンド幅の合計(95)を引いた値よりも小さいこと、
2)クライアント3101が要求するピーク・バンド幅が、未予約のバーチャル・チャネル(93)のバンド幅の中で、最大のものよりも小さいこと(4070)、の2条件である。
【0067】
もし該当するネットワーク・インタフェースがない場合には、複数のネットワーク・インタフェースを選択し、各インタフェースの合計値がクライアント3101が要求するQOSを満たすようにする。つまり、4050で記録したQOS管理テーブル・エントリへのポインタをたどり、QOS管理テーブル・エントリ中の記録を調べ、次の2条件を満たすサーバ3000のネットワーク・インタフェースを選択する。
【0068】
1)クライアント3101が要求する平均バンド幅が、選択した複数個のネットワーク・インタフェースの最大バンド幅(90)の合計から、選択した複数個のネットワーク・インタフェースの予約済みバンド幅の合計(95)の合計を引いた値よりも小さいこと、
2)選択した複数個のネットワーク・インタフェースの未予約のバーチャル・チャネル(93)の中でバンド幅が最大のバーチャル・チャネルを1本ずつ選び、それらの合計よりもクライアント3101が要求するピーク・バンド幅が小さいこと(4100)、の2条件である。
【0069】
複数個のネットワーク・インタフェースを用いても、クライアント3101の要求を満たすことができない場合には、複数個のネットワーク・インタフェースは用いずに、最近一分間のピーク転送量(96)が最小のネットワーク・インタフェースを選択する(4110)。図19や図5には示していないが、クライアント3101の要求を満たすことができない場合には、サーバ3100はSYNSENT状態のクライアント3101に対して、クライアント3101の要求を満たすことができない旨を、ACKフラグ付TCPパケットのパラメタとして伝え、クライアント3101とQOSの協議を行い、クライアント3101がQOSを指定し直して、再びSYNフラグ付TCPパケットをサーバ3000に送り(3590)、新しいQOSに基づいてサーバ3000がネットワーク・インタフェースを探す(3520)、というサーバ3000とクライアント3101との間の協議が行われてもよい。
【0070】
再び図19へ戻って、4070において、もし該当するネットワーク・インタフェースがある場合には、条件を満たすネットワーク・インタフェースの中から、予約済みバンド幅が最小のインタフェースを選択する(4085)。以上、4085、4100、4110のいずれかで選択した全てのネットワーク・インタフェースのQOS管理テーブル・エントリの予約済バンド幅(95)に、各ネットワーク・インタフェースに分割して割り当てたクライアント3101が要求している平均バンド幅の各ネットワーク・インタフェース担当分の値を加える(4120)。選択したネットワーク・インタフェースのアドレスを含むルーティング・テーブル・エントリを以下では用いる。
【0071】
図20に移る。選択したルーティング・テーブル・エントリから、全てのネットワーク・インタフェースのネットワーク・アドレス(71)を求める(4500)。次に、TCPプロトコルを用いてEnd−to−Endのデータ通信を行うのに必要なTCB(Transmission control Block)を全ての選択したネットワーク・インタフェースに対応して作成する(4510)。各TCBに記す送信元アドレスには4500で求めたネットワーク・アドレスを1つずつ指定し、宛先アドレスにはクライアント3101のネットワーク・アドレスnet11.10を指定する。TCBを作成すると、クライアント3101にACKフラグ付TCPパケットと、選択したネットワーク・インタフェースの個数、全てのネットワーク・アドレス、各ネットワーク・インタフェースに割り当てた平均バンド幅をパラメタとして付加したSYNフラグ付TCPパケットを送り(4520)、SYN RECVD状態になる(3502)。サーバ3000は、ACKフラグ付TCPパケットとSYNフラグ付TCPパケットを、サーバ3000がクライアント3101からSYNフラグ付TCPパケットを受け取ったのと同じネットワーク・インタフェースを用いて、クライアント3101に送付する。SYN RECVD状態において、クライアント3101から、4520のSYNフラグ付TCPパケットに添付した全てのネットワーク・アドレスに対応するネットワーク・インタフェースにおいて、ACKフラグ付TCPパケットを受け取ると(4530)、コネクション確立済み通信路の管理テーブルに、当該全てのネットワーク・インタフェース・アドレスとクライアント3101のネットワーク・アドレスを登録し(4540)、ESTABLISHED状態になる(3503)。以降、クライアントとサーバ間で、QOSに従った並列データ通信を行う。
【0072】
図21を用いて、クライアント3101の詳細な処理手順を示す。SYN SENT状態3551になるまでは、図12と同じフローチャート図のため省略する。
【0073】
SYN SENT状態のクライアント3101は、サーバ3000から送られてくるACKフラグ付のTCPパケットを待つ(3551)。ACKおよび、SYNフラグ付TCPパケットを受け取ると、SYNのパラメタである、選択されたネットワーク・インタフェースの個数を調べる(4600)。0個の場合にはnet1.A宛てでサーバ3000へACKフラグ付TCPパケットを送る(4640)。1個の場合には、パラメタで指定されているネットワーク・アドレスが、net1.Aと等しいかどうかを調べる(4610)。等しい場合には、net1.A宛てでサーバ3000へACKフラグ付TCPパケットを送る(4640)。不一致の場合、もしくは、4600においてSYNのパラメタの値が2個以上の場合には、サーバ3000がネットワーク・インタフェースを変更したものとみなし、4310で作成したnet1.Aとの通信のためのTCBを削除し、新たにSYNのパラメタで指定されている全てのネットワーク・インタフェースと通信を行えるように、各々のネットワーク・アドレスに対応するTCBを作成する(4620)。ATMのような帯域予約可能なネットワークの場合には、クライアント3101はサーバから知らされた3個のQOS(平均バンド幅)にしたがって、3本のバーチャル・チャネルを選択して、3本のコネクションの確立を図る。次に、SYNのパラメタで指定されていたネットワーク・アドレスの各々宛てに、ACKフラグ付TCPパケットを送る(4630)。ATMのようなネットワークの場合には、3本のバーチャル・チャネルのそれぞれからACKフラグ付TCPパケットを送る。ACKを返すと、次に、クライアントの中のコネクション確立済み通信路管理テーブルに、SYNのパラメタで指定されていたサーバ3000の全てのネットワーク・アドレスと、クライアント3101のネットワーク・アドレスnet11.10を登録し(4650)、ESTABLISHED状態になる(3552)。以降、クライアントとサーバ間で、QOSに従った並列データ通信を行う。
【0074】
この時のサーバ3100とクライアント3101のコネクション確立済み通信路管理テーブルを、それぞれ図13と図14に示す。図13において、3820がコネクション確立済み通信路管理テーブルを示し、3821、3822、3823の各エントリによって、3本のコネクションが確立されていることを示す。同様に、図14において、3910がコネクション確立済み通信路管理テーブルを示し、3911、3912、3913の各エントリによって、3本のコネクションが確立されていることを示す。このようにして、End−to−Endの確立済みの通信路が管理される。
【0075】
次に、図22、図23を用いて、並列コネクション確立方法におけるLANスイッチ3050の動作を説明する。図22は、アドレス・スイッチング・テーブルを除いて図7と同じであるため、図の説明は省略する。図22において、5011(a)は、クライアント3101がサーバ3000に対して、SYNフラグ付TCPパケットを送出した時のアドレス・スイッチング・テーブルを示し、5011(b)は、クライアント3101がサーバ3000に対して、ACKフラグ付TCPパケットを送出してコネクションが確立したあとのアドレス・スイッチング・テーブルを示す。
【0076】
図23を用いて、LANスイッチ3050の動作を説明する。クライアント3101からサーバ3000のnet1.1宛のSYNフラグ付TCPパケットが、LANスイッチ3050のポート#0、VC=11(3074a)へルーティングされて届いた場合(5700)について説明する。LANスイッチ3050は、変換テーブル5000を調べ、net1.1宛のSYNフラグ付TCPパケットの送出先ポート#が1であることを求める(5710)。次に、ポート#1のバーチャル・チャネルの中からVC=1(3011a)を選択し、(ポート#0、VC=11)と(ポート#1、VC=1)が相互にスイッチングされるように、アドレス・スイッチング・テーブル5011(a)に登録する(5720)。今、サーバ3000がクライアント3101のコネクション設立要求に対して、QOS管理テーブル・エントリ5110、5120、5130、5140を検索し、ネットワーク・インタフェースとして通信路3012、3013、3014(ネットワーク・アドレスnet1.2, net1.3 net1.4)の3本を選択した場合について述べる。サーバ3000は、まず、3本の通信路を使用できるようにするために、LANスイッチ3050に対して(ポート#2、VC=1)、(ポート#3、VC=1)、(ポート#4、VC=1)の3つのバーチャル・チャネルをリザーブする(5730)。次に、サーバ3000は、クライアント3101に対して、LANスイッチ3050の(ポート#1、VC=1)から(ポート#0、VC=11)を経由して、ACKフラグ付TCPパケットと、パラメタの付いたSYNフラグ付TCPパケットを返す。SYNフラグには、選択したネットワーク・インタフェースのネットワーク・アドレスと各ネットワーク・インタフェースが使用できる平均バンド幅をQOSとして付加する(5740)。その後、LANスイッチ3050に対して、(ポート#1、VC=1)と(ポート#0、VC=11)とのスイッチングを指定するエントリを削除するように要求し、この経路を他者が使用できるように解放する(5750)。
【0077】
クライアント3101は、SYNフラグ付TCPパケットを受け、選択されたネットワーク・インタフェースのネットワーク・アドレスと、各ネットワーク・インタフェースが使用できる平均バンド幅を知ると、各ネットワーク・インタフェースに対して、ACKを返す。ACKを返す過程で、平均バンド幅の条件を満たすように、クライアント3101からLANスイッチ3050に到るまでの経路のバーチャル・チャネルを新たに確保する。 今、LANスイッチ3050へは、(ポート#0、VC=12)、(ポート#0、VC=13)、(ポート#0、VC=14)の3つの経路で到達したとする(5760)。LANスイッチ3050は、3つのACKフラグ付TCPパケットの宛先net1.2, net1.3, net1.4とポート番号変換テーブル5000より、ネットワーク・インタフェースへ到達するポート番号#2、#3、#4を得る。LANスイッチ3050は、5730で予約されている(ポート#2、VC=1)、(ポート#3、VC=1)、(ポート#4、VC=1)と、それぞれ(ポート#0、VC=12)、(ポート#0、VC=13)、(ポート#0、VC=14)をスイッチングするように、アドレス・スイッチング・テーブルのエントリを登録する(5770)。その結果、アドレス・スイッチング・テーブルは5011(b)に示すように更新され(5780)、3本のコネクションが確立されて(5790)、並列のSEND/RECEIVEによるデータ通信が行われる。
【0078】
以上のように、上記の本発明の実施形態例2によると、クライアントが要求するQOSとサーバの負荷に応じて、サーバは複数のネットワーク・インタフェースの中から、条件に見合ったネットワーク・インタフェースを複数個選択し、並列データ通信を行える。
【0079】
また、上記の実施形態例2によると、クライアント3101は、コネクション確立時にはサーバ3000の全てのネットワーク・インタフェースのネットワーク・アドレスを知らなくとも、クライアントが要求するQOSに応じたネットワーク・インタフェースを用いてコネクションを確立でき、並列データ通信を行うことができる。
【0080】
また、上記の実施形態例2ではネットワーク・インタフェースを選択する手順のひとつを示したに過ぎないが、QOS管理テーブルの情報の使い方によって、種々の選択手順を考えることができる。
【0081】
(3)実施形態例3
上記の実施形態例2では、サーバ3000のネットワーク・インタフェース3001、3002、3003、3004には、それぞれ固有のネットワーク・アドレスが割り当てられていたが、図6と図24に示す実施形態例によれば、単一のネットワーク・アドレスをサーバ3000に割り当てるだけで、ネットワーク・インタフェース3001、3002、3003、3004を用いて並列通信を行うことができる。
【0082】
図24において、3000はサーバ、3050はLANスイッチ、3011、3012、3013、3014、3074はそれぞれポート#1、#2、#3、#4、#0の通信路を表し、図3の同じ番号と対応する。7000は並列通信フラグ検出回路、7010はパケット・スイッチング回路、7100はパケットのヘッダ、7110は送信元ネットワーク・アドレス、7120は宛先ネットワーク・アドレス、7130は並列通信フラグ、7135はサーバ3000のポート番号を示す。並列通信フラグ7130とポート番号7135はパケットのオプションフィールドに追加した項目である。ネットワーク・アドレスnet1.1は、ポート#1ないし4の中で、ポート#1にのみ割り当てられている。
【0083】
図6において、3500、3501、3502、3503、3550、3551、3552は、TCPプロトコルの状態を示し、3690、3691、3692、3693、3694はクライアント3101とサーバ3000との間でコネクションを確立する3ウェイ・ハンドシェークを示す。図6を用いて、第2の並列コネクション確立方法の処理の流れを示す。サーバ3000がLISTEN状態(3501)になるまでと、クライアント3101がSYN SENT状態(3561)になるまでは、図5と同じであるため説明を省略する。
【0084】
LISTEN状態(3501)のサーバ3000は、QOS(サービス品質)付きのTCPパケットをクライアント3101から受け取ると(3690)、クライアント3101のQOSを満たすネットワーク・インタフェースを探す。ひとつのネットワーク・インタフェースだけではクライアント3101が要求するQOSを満たすことができない場合には、複数のネットワーク・インタフェースを選択し、それらの合計値でクライアント3101が要求するQOSを満たすようにする。いま、図3におけるネットワーク・インタフェース3002、3003、3004の3個(ポート番号2、3、4)を選択した場合について述べる(3620)。サーバ3000は、ポート番号2、3、4に対応する3個のTCB(Transmission Control Block)を作成する(3621)。サーバ3000は、3個のTCBを作成した後、クライアント3101に対して、クライアントからのSYNに対するACKフラグの付いたTCPパケットと、SYNフラグの付いたTCPパケットをクライアント3101に送り(3691)、このTCBをSYN RECVD状態にする(3502)。SYNフラグには、パラメタとしてポート番号の個数3、ポート番号2、3、4)を添付する。クライアント3101は、パラメタが付随したSYNフラグ付きTCPパケットを受け取ると、net1.1用に作成したTCBを削除し(3682)、net1.1かつポート番号2、net1.1かつポート番号3、net1.1かつポート番号4に対応した3個のTCBを作成する(3683)。次に、クライアント3101はnet1.1かつポート番号2、net1.1かつポート番号3、net1.1かつポート番号4に対して、それぞれACKフラグ付TCPパケットを送り(3692、3693、3694)、ESTABLISHED状態となる(3552)。サーバ3000も3個のACKを受け取るとESTABLISHED状態となり(3503)、3本のコネクションが確立される。以降、クライアントとサーバ間では、3本のコネクションを用いて、SEND/RECEIVEによる並列通信を行うことができる(3695)。
【0085】
図24に、”net1.1かつポート番号2”を表現できるパケットのヘッダ形式を示す。図24において、複数のポートを並列に用いて通信を行う場合には、パケットのヘッダのオプション・フィールドのなかの並列通信フラグ7130を”1”にセットし、同じくオプション・フィールドのなかのポート番号7135に”2”を設定する。LANスイッチ3050の中の並列通信フラグ検出回路は、パケットのヘッダのなかの並列通信フラグが1であることを検出すると、このパケットをパケット・スイッチング回路7010へ送り、パケットのヘッダのなかのポート番号を検出して、指定されたポート番号のネットワーク・インタフェースを用いて、サーバ3000にパケットを送る。以上のように、クライアント3101からサーバ3000に対して送り出すパケットに関しては、ネットワーク・インタフェース3001、3002、3003、3004を用いて並列通信を行うことができる。
【0086】
一方、サーバ3000からクライアント3101に対して送り出すパケットに関しては、図1で示したルーティング・テーブル・エントリの中のネットワーク・インタフェースのネットワーク・アドレスを、ポート番号として設定することによって、単一のネットワーク・アドレスをサーバ3000に割り当てるだけで、ネットワーク・インタフェース3001、3002、3003、3004を用いて並列通信を行うことができる。
【0087】
以上のように、パケットのヘッダ形式を拡張することによって、単一のネットワーク・アドレスをサーバ3000に割り当てるだけで、クライアント3101とサーバ3000は、ネットワーク・インタフェース3001、3002、3003、3004を用いて並列通信を行うことができる。
【0088】
上記(1)ないし(3)の実施形態例では、TCP/IPプロトコル層におけるクライアントとサーバの間のコネクション確立方式について述べ、ルーティング・テーブルにネットワーク・インタフェースのネットワーク・アドレスのカラム(71)を追加することによって、サーバはクライアントのQOS要求を満たすネットワーク・インタフェースを選択できるようになった。
【0089】
しかし、図25、図26に示す実施形態例によれば、図25に示すコネクション管理テーブルを用いることによって、クライアントのQOS要求を満たすだけではなく、サーバが自らのネットワーク・インタフェース間の通信処理の負荷を分散させるように、ネットワーク・インタフェースを選択することができる。さらに、次のパケット送出先であるゲートウェイ・アドレスは従来通りルーティング・テーブルを用いて求めるが、パケットを送出するネットワーク・インタフェースは、図25に示すコネクション管理テーブルとLANスイッチに接続されているネットワーク・インタフェース・アドレスを記した登録テーブルを用いることによって、クライアントがサーバに接続を要求したネットワーク・インタフェースを選択できるようになる。その結果、クライアントがサーバに接続を要求したネットワーク・インタフェースを使った双方向通信が可能になる。
【0090】
図25は、図3のサーバ3000上にあるコネクション管理テーブルを示す。図25において、8050,8051,8052はコネクション管理テーブルの各エントリを示し、サーバ3000がクライアントとの間で開設しているコネクションに関する情報を保持する。コネクション管理テーブル・エントリ8050において、8001は通信で使用しているプロトコル名、8002はクライアントがサーバに対して接続を要求したサーバのネットワーク・インタフェースのネットワーク・アドレス、8003はサーバがコネクションを識別するためのポート番号、8004はクライアントのネットワーク・アドレス、8005はクライアント側のポート番号、8006は図4に示したようなCLOSED、LISTEN、ESTABLISHEDのようなコネクションの状態を示し、8006は次のコネクション管理テーブル・エントリへのポインタを示す。コネクション管理テーブルのエントリは、コネクション確立時に生成される。8040は、コネクション管理テーブルの先頭のエントリへのポインタを示す。
【0091】
クライアントとサーバの間で通信を行うときのコネクション識別子(ファイル記述子)8010ないし8012に対応して、コネクション管理テーブルの当該エントリへのポインタ8015ないし8017がある。ポインタ8015ないし8017は、各々のコネクション管理テーブルの各エントリ8050ないし8052を指す。
【0092】
8020は、LANスイッチに接続されているネットワーク・インタフェース・アドレスの登録テーブルを示す。エントリ8021ないし8024に登録されているネットワーク・インタフェース・アドレスのネットワーク・インタフェース3001ないし3004はいずれも、図3に示すようにLANスイッチ3050に接続される。それゆえ、8021ないし8024のいずれのネットワーク・インタフェースからパケットを送出しても、同じネットワークにパケットをルーティングできる。したがって、ネットワーク・インタフェース3001ないし3004の負荷を分散させるようにネットワーク・インタフェースを選択すれば、高いトータル・スループットを得ることができる。以下、詳細な実施形態例を記す。
【0093】
図26のフローチャートは、クライアント3101とサーバ3000の間の通信をTCP/IPプロトコル層の上位で実現する、本発明の並列ネットワーク接続方式の1実施形態例を示す。
【0094】
クライアント3101は、コネクション開設要求をサーバ3000に送る(8111)。サーバ3000は、コネクション開設要求を待ち、クライアント3101からのコネクション開設要求を受け付ける(8101)。クライアント3101は、QOSパラメタをサーバ3000に送る(8113)。このとき、QOSパラメタとして、複数のネットワーク・インタフェースを使用する場合にはネットワーク・インタフェースの数を指定したり、コネクションに対するピーク・バンド幅や平均バンド幅を指定する。サーバ3000はクライアント3101からQOSパラメタを受け取ると、図3に示すLANスイッチ3050からクライアント3101へルーティング可能かどうかを調べ、ルーティング可能ならば、図25に示したコネクション管理テーブルのエントリをたどって、ESTABLISHED状態のコネクション数が最小のネットワーク・インタフェースを選択する(8103)。LANスイッチ3050からクライアント3101へルーティング可能かどうかは、図2に示した従来のルーティング・テーブル100ないし150を、クライアント3101のネットワーク・アドレスをキーにして検索し、得られたゲートウェイ・アドレスが、LANスイッチ3050のネットワーク・アドレスと接続されるならば、ルーティング可能であると判断できる。
【0095】
LANスイッチ3050からクライアント3101へルーティング可能な場合について、図25を用いてネットワーク・インタフェースの選択手順を詳細に説明する。コネクション管理テーブルの先頭エントリへのポインタ8040から、コネクション管理テーブル・エントリ8050をアクセスする。コネクションの状態8006がESTABLISHEDであるコネクション数をローカル・アドレス8002が等しいネットワーク・インタフェースごとに数える。ローカル・アドレス8002はサーバ3000のネットワーク・インタフェース・アドレスの中のいずれかと等しい。そこで、LANスイッチに接続されているネットワーク・インタフェース・アドレスの登録テーブル8020に登録されているネットワーク・インタフェースの中から、エントリ数が最小のネットワーク・インタフェースを求める。また、実施形態例(1)と同様に、図1に示すネットワーク・インタフェース情報テーブル中の次エントリへのポインタ84を使って各エントリをたどり、QOS管理テーブル・エントリへのポインタで示されるQOS管理テーブル・エントリに記されている90ないし97の統計情報にしたがって、負荷が最小のネットワーク・インタフェースを選択してもよい。例えば、バーチャル・チャネル数94が最小のネットワーク・インタフェースを選択したり、最近1分間の平均転送量97が最小のネットワーク・インタフェースを選択してもよい。
【0096】
また、QOSパラメタとして、1より大きなネットワーク・インタフェースの数が記されていた場合には、コネクション数が少ないエントリから順々に指定された数だけ選ぶ。
【0097】
図26のフローチャートに戻る。サーバ3000は選択したネットワーク・インタフェースのネットワーク・アドレスと通信のためのポート番号をクライアント3101に送る(8105)。クライアント3101はネットワーク・アドレスとポート番号を受け取ると(8115)、通信用のsocketを生成して(8117)、受信したサーバ3000のネットワーク・インタフェースに対してコネクションの開設要求を送る(8119)。クライアントが、サーバ3000が指定したネットワーク・インタフェースとコネクションを開設し直すことによって、サーバの各ネットワーク・インタフェースの負荷を分散できる。サーバ3000はクライアント3101からのコネクション再開設要求を受付け(8107)ると、通信処理の負荷分散を図るために子プロセスをforkする。特に並列計算機のように各ノードにネットワーク・インタフェースが存在する場合には、選択したネットワーク・インタフェースに対応する各ノードに子プロセスをforkする(8108)。その後、クライアントとサーバ間でデータを送受信する(8109、8121)。サーバがクライアントへデータを送信する時には、当該コネクションに対応するサーバのコネクション識別子8010を用いて、コネクション管理テーブル・エントリへのポインタ8015からコネクション管理テーブル・エントリ8050を求めて、そのエントリ中のローカル・アドレス8002で示されるネットワーク・インタフェースからパケットを送出する(8109)。その結果、クライアントがサーバに接続を要求したネットワーク・インタフェースを使った双方向通信が可能になる。
【0098】
以上のように、LANスイッチに接続されているネットワーク・インタフェース・アドレスの登録テーブルを追加し、さらにコネクション管理テーブルのローカル・アドレスを用いることによって、従来のルーティング・テーブルを変更することなしに、クライアントがサーバに接続を要求したネットワーク・インタフェースを使った双方向通信を行える。また、コネクション管理テーブルのエントリ数を数えることによって、各ネットワーク・インタフェースの負荷を判断し、サーバが主体となってクライアントとの通信で使用するネットワーク・インタフェースを選択することによって、通信処理の負荷分散を図ることができるようになり、ネットワーキング処理のシステム・スループットを向上できる。
【0099】
【発明の効果】
以上のように、本発明によれば、複数のネットワーク・インタフェースを備えたサーバにおいて、クライアントが要求するQOSに応じたネットワーク・インタフェースを用いて通信を行ったり、複数本のネットワーク・インタフェースを用いて高速かつ高効率な並列通信を行うことができる。
【図面の簡単な説明】
【図1】本発明に係わるルーティング・テーブルとそのエントリ、ネットワーク・インタフェース情報テーブルのエントリ、QOS(サービス品質)管理テーブルのエントリの実施の形態例を示す図である。
【図2】従来のルーティング・テーブルとそのエントリ、ネットワーク・インタフェース情報テーブルのエントリを示す図である。
【図3】本発明のネットワーク接続システムの全体構成図である。
【図4】本発明のコネクション確立方法の実施の形態例を示す図である。
【図5】本発明の並列コネクション確立方法の実施の形態例を示す図である。
【図6】本発明の第2の並列コネクション確立方法の実施の形態例を示す図である。
【図7】本発明のコネクション確立方法におけるLANスイッチの動作の実施の形態例を説明するブロック図である。
【図8】本発明のコネクション確立方法におけるLANスイッチの動作の実施の形態例を説明するフローチャート図である。
【図9】本発明のコネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図10】本発明のコネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図11】本発明のコネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図12】本発明のコネクション確立方法におけるクライアントの動作の実施の形態例を説明するフローチャート図である。
【図13】本発明のネットワーク接続方法におけるサーバのルーティング・テーブルの実施の形態例を説明する図である。
【図14】本発明のネットワーク接続方法におけるクライアントのルーティング・テーブルを説明する図である。
【図15】従来のサーバにおけるネットワーク接続を示す図である。
【図16】アプリケーション・プログラムにおけるクライアントとサーバのプログラムの実施の形態例を示す図である。
【図17】並列通信のためのデータの分割・統合方法の実施の形態例を示す図である。
【図18】本発明の並列コネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図19】本発明の並列コネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図20】本発明の並列コネクション確立方法におけるサーバの動作の実施の形態例を説明するフローチャート図である。
【図21】本発明の並列コネクション確立方法におけるクライアントの動作の実施の形態例を説明するフローチャート図である。
【図22】本発明の並列コネクション確立方法におけるLANスイッチの動作の実施の形態例を説明するブロック図である。
【図23】本発明の並列コネクション確立方法におけるLANスイッチの動作の実施の形態例を説明するフローチャート図である。
【図24】本発明の第2の並列コネクション確立方法におけるLANスイッチのブロック図と、パケットのヘッダ形式の実施の形態例を示す図である。
【図25】本発明の並列コネクション確立方法におけるサーバのルーティング方式を説明する図である。
【図26】本発明の第4の並列コネクション確立方法の実施の形態例を示す図である。
【符号の説明】
71:ネットワーク・インタフェースのネットワーク・アドレス、74:同じ宛先アドレスの次エントリへのポインタ、85:QOS管理テーブル・エントリへのポインタ、90:当該ネットワーク・インタフェースの最大バンド幅、92:各バーチャル・チャネルのバンド幅、95:既に予約されているバンド幅の合計、96:最近1分間のピーク転送量、97:最近1分間の平均転送量、3000:サーバ、3011ないし3014:転送路、3050:LANスイッチ、3070:PBX、3101:クライアント1、3102:ゲートウェイ、3570:QOSパラメタ付きSYN(同期)パケット、3571:ACKパケット+ネットワーク・アドレス付きSYN(同期)パケット、3572:ACKパケット、3800:サーバのルーティング・テーブル、3900:クライアント1のルーティング・テーブル、9001ないし9015:サーバのプログラム例、9050ないし9061:クライアントのプログラム例、6030ないし6033:サーバのバッファ、6130ないし6133:クライアント1のバッファ。

Claims (13)

  1. 複数のネットワーク・インタフェースを持つサーバ計算機から、ネットワークに接続されたネットワーク接続手段を介して、クライアント計算機に対してデータ通信を行うネットワーク接続システムにおいて、
    前記ネットワーク接続手段として
    前記ネットワークと前記サーバ計算機との間に設けられ、前記サーバ計算機の複数のネットワーク・インタフェースにそれぞれ対応した帯域予約可能な複数の通信路により前記サーバ計算機と前記ネットワークとの接続を行うLANスイッチと、
    前記クライアント計算機から要求されるサービス品質(QOS)に応じて、前記複数の帯域予約可能な通信路の一つを選択する選択手段を備え、
    前記選択手段は、前記サーバ計算機内のルーチング・テーブルを用い、そのルーチング・テーブル中の、前記クライアント計算機が接続されるネットワークのアドレスと、前記複数の通信路に対応した前記サーバ計算機のネットワーク・インターフェースのアドレスを用いて、パケットを送出する前記ネットワーク接続手段のネットワーク・アドレスを求めることにより、通信路を選択することを特徴とするネットワーク接続システム。
  2. 請求項1記載において、前記LANスイッチは、ATMスイッチで構成されることを特徴とするネットワークネットワーク接続システム。
  3. 請求項1記載において、前記サーバ計算機内に、前記ネットワーク・インタフェースごとに仮想チャネルの帯域及び動的な負荷の統計情報を保持するQOS管理テーブルを設け、通信路の確立要求時にこのテーブルQOS管理テーブルを参照することを特徴とするネットワーク接続システム。
  4. 請求項1または3記載において、前記サービス品質(QOS)は、通常のデータ通信であるBE(Best Effort)、バースト転送向けのデータ通信であるGB(Guaranteed Burst)、ビデオや音声などのストリーム・データの通信であるGS(Guaranteed Stream)の3種類からなるサービス・クラス、ピークバンド幅(Mbps)、平均バンド幅(Mbps)の3項目で構成することを特徴とするネットワーク接続システム。
  5. 複数のネットワーク・インタフェースを備え、他の計算機とネットワーク通信を行う計算機において、
    前記計算機に、パケットの最終宛先ネットワーク・アドレスと、前記ネットワーク・インタフェースのアドレスと、両者のアドレスから求められる、パケットの次の送付先であるゲートウェイのネットワーク・アドレスとを各エントリに保持するルーティング・テーブルを備え、
    少なくとも1つのネットワーク・インタフェースを選択し、選択されたネットワーク・インタフェースから上記ゲートウエイにパケットを送付することを特徴とする計算機。
  6. 請求項5記載において、前記計算機は、前記ネットワーク・インタフェースのそれぞれの使用状況を保持するサービス品質(QOS)保持手段を備え、前記ネットワーク・インタフェースを選択するときには、前記ルーティング・テーブルのエントリの中から、最終宛先ネットワーク・アドレスが前記他の計算機のネットワーク・アドレスと等しい少なくとも1つのエントリを選択し、選択されたルーティング・テーブルのエントリのネットワーク・インタフェースのアドレスで示されるネットワーク・インタフェースの上記QOS保持手段を比較した結果に基づいて、少なくとも1つのネットワーク・インタフェースを選択することを特徴とする計算機。
  7. 請求項6記載において、前記他の計算機が、前記計算機に対して通信路を開設することを要求する時に、前記他の計算機から指定された、通信路のサービス・クラスと平均通信量とピーク通信量からなるQOSパラメタの指定に対し、前記計算機は、前記ルーティング・テーブルのエントリの中から、最終宛先ネットワーク・アドレスが前記他の計算機のネットワーク・アドレスと等しい少なくとも1つのエントリを選択し、選択されたルーティング・テーブルのエントリのネットワーク・インタフェースのアドレスで示されるネットワーク・インタフェースの前記QOS保持手段と前記QOSパラメタを比較し、前記QOSパラメタで指定される条件を満たすことができるように、少なくとも1つのネットワーク・インタフェースを選択することを特徴とする計算機。
  8. 請求項6記載において、前記他の計算機と前記計算機が通信路を開設するときに、通信路の開設時に送信する同期(SYN)パケットに付随させて、前記計算機が選択した少なくとも1つの前記ネットワーク・インタフェースのネットワーク・インタフェースのアドレスを前記他の計算機に送付することを特徴とする計算機。
  9. 請求項6記載において、前記計算機は、前記複数のネットワーク・インタフェースに接続される複数の第1の通信路を第2の通信路に束ねて公衆網へ送付するLANスイッチを備え、前記LANスイッチは、第1の通信路と第2の通信路とのスイッチングを指定するスイッチング保持手段を備え、前記計算機が選択した第1の通信路が、前記他の計算機が指定した第1の通信路とは異なった場合には、前記第1の計算機が、前記スイッチング保持手段を、前記第1の計算機が選択した第1の通信路になるように、前記LANスイッチに指示することを特徴とする計算機。
  10. 複数のネットワーク・インタフェースを備えた第1の計算機と、ネットワークにゲートウエイ計算機を介して接続された第2の計算機を備え、ネットワーク通信を行う際に、
    前記第1の計算機に、パケットの最終宛先ネットワーク・アドレスと、前記ネットワーク・インタフェースのアドレスと、両者のアドレスから求められる、パケットの次の送付先であるゲートウェイ計算機のネットワーク・アドレスとを各エントリに保持するルーティング・テーブルを備え、
    前記第1の計算機は、少なくとも1つのネットワーク・インタフェースを選択し、選択されたネットワーク・インタフェースから上記ゲートウエイにパケットを送付することを特徴とする並列ネットワーク接続方法。
  11. 請求項10記載において、前記第2の計算機が、前記第1の計算機に対して通信路の開設を要求したとき、前記第1の計算機はルーティング・テーブルのエントリの中から、最終宛先ネットワーク・アドレスが第2の計算機のネットワーク・アドレスと等しい少なくとも1つのエントリを選択し、選択したルーティング・テーブルのエントリのネットワーク・インタフェース・アドレスで示されるネットワーク・インタフェースのQOS保持手段と前記第2の計算機が指定するQOSパラメタを比較し、QOSパラメタで指定される条件を満たすことができるように、少なくとも1つのネットワーク・インタフェースを選択し、そのネットワーク・インタフェースを通して前記第1の計算機はゲートウェイにパケットを送付することを特徴とする並列ネットワーク接続方法。
  12. 請求項10記載において、前記第1の計算機は前記第2の計算機に対して、通信路の開設時に送信する同期(SYN)パケットに付随させて、選択した全てのネットワーク・インタフェースのネットワーク・アドレスを教えることを特徴とする並列ネットワーク接続方法。
  13. 請求項10記載において、帯域の大きいネットワーク・インタフェースを備えた第2の計算機の場合に、前記第1の計算機は複数のネットワーク・インタフェースを選択し、前記第2の計算機に対して、通信路の開設時に送信する同期(SYN)パケットに付随させて、選択した複数のネットワーク・インタフェースのネットワーク・アドレスを教え、もって前記選択した複数のネットワーク・インタフェース並列に用いてデータ通信を行なうことを特徴とする並列ネットワーク接続方法。
JP33302895A 1995-07-19 1995-12-21 ネットワーク接続システム及び並列ネットワーク接続方法 Expired - Fee Related JP3613863B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP33302895A JP3613863B2 (ja) 1995-07-19 1995-12-21 ネットワーク接続システム及び並列ネットワーク接続方法
US08/684,572 US5948069A (en) 1995-07-19 1996-07-19 Networking system and parallel networking method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7-182429 1995-07-19
JP18242995 1995-07-19
JP33302895A JP3613863B2 (ja) 1995-07-19 1995-12-21 ネットワーク接続システム及び並列ネットワーク接続方法

Publications (2)

Publication Number Publication Date
JPH0993304A JPH0993304A (ja) 1997-04-04
JP3613863B2 true JP3613863B2 (ja) 2005-01-26

Family

ID=26501236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33302895A Expired - Fee Related JP3613863B2 (ja) 1995-07-19 1995-12-21 ネットワーク接続システム及び並列ネットワーク接続方法

Country Status (2)

Country Link
US (1) US5948069A (ja)
JP (1) JP3613863B2 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL116989A (en) 1996-01-31 1999-10-28 Galileo Technology Ltd Switching ethernet controller
US8117298B1 (en) 1996-02-26 2012-02-14 Graphon Corporation Multi-homed web server
JP3224745B2 (ja) * 1996-07-09 2001-11-05 株式会社日立製作所 高信頼化ネットワークシステム及びサーバ切り替え方法
JP2993444B2 (ja) * 1996-10-25 1999-12-20 日本電気株式会社 Atm網におけるコネクション設定および復旧方式
US6016307A (en) 1996-10-31 2000-01-18 Connect One, Inc. Multi-protocol telecommunications routing optimization
US6052718A (en) * 1997-01-07 2000-04-18 Sightpath, Inc Replica routing
JP3652834B2 (ja) * 1997-04-30 2005-05-25 富士通株式会社 クライアント主導のネットワーク・コンピューティングシステムおよび方法
GB2326055B (en) * 1997-06-04 2002-03-13 Northern Telecom Ltd Communication system
JPH114292A (ja) * 1997-06-12 1999-01-06 Hitachi Ltd 通信システム
US6006268A (en) * 1997-07-31 1999-12-21 Cisco Technology, Inc. Method and apparatus for reducing overhead on a proxied connection
US6018770A (en) * 1997-10-13 2000-01-25 Research In Motion Limited System and method for managing packet-switched connections
SG118132A1 (en) 1997-11-13 2006-01-27 Hyperspace Communications Inc File transfer system
US6308216B1 (en) * 1997-11-14 2001-10-23 International Business Machines Corporation Service request routing using quality-of-service data and network resource information
US6718387B1 (en) 1997-12-10 2004-04-06 Sun Microsystems, Inc. Reallocating address spaces of a plurality of servers using a load balancing policy and a multicast channel
US6560227B1 (en) * 1998-02-23 2003-05-06 International Business Machines Corporation LAN frame copy decision for LAN switches
US6600724B1 (en) 1998-04-28 2003-07-29 Cisco Technology, Inc. Routing table structures
US6563798B1 (en) * 1998-06-29 2003-05-13 Cisco Technology, Inc. Dynamically created service class-based routing tables
US6529498B1 (en) * 1998-04-28 2003-03-04 Cisco Technology, Inc. Routing support for point-to-multipoint connections
US6154778A (en) * 1998-05-19 2000-11-28 Hewlett-Packard Company Utility-based multi-category quality-of-service negotiation in distributed systems
US6757290B1 (en) * 1998-08-04 2004-06-29 At&T Corp. Method for performing gate coordination on a per-call basis
US6430610B1 (en) * 1998-09-02 2002-08-06 Steeleye Technology, Inc. TCP/IP address protection mechanism in a clustered server environment
US6643705B1 (en) * 1999-03-29 2003-11-04 Microsoft Corporation Routing of electronic messages using a routing map and a stateful script engine
JP2000349827A (ja) 1999-06-09 2000-12-15 Nec Corp Tcp/ip通信ネットワークから移動通信ネットワークへの発信方法及び発着信システム
US6667980B1 (en) * 1999-10-21 2003-12-23 Sun Microsystems, Inc. Method and apparatus for providing scalable services using a packet distribution table
WO2001040954A1 (en) * 1999-12-06 2001-06-07 Warp Solutions, Inc. System and method for directing a client to a content source
FR2803406B1 (fr) * 1999-12-30 2002-03-29 Cit Alcatel Dispositif pour changer dynamiquement le moyen de communication utilise pour une communication entre deux agents logiciels
US6493341B1 (en) 1999-12-31 2002-12-10 Ragula Systems Combining routers to increase concurrency and redundancy in external network access
US6735205B1 (en) * 2000-01-10 2004-05-11 Sun Microsystems, Inc. Method and apparatus for fast packet forwarding in cluster networking
JP4035806B2 (ja) * 2000-01-31 2008-01-23 株式会社日立製作所 映像配信システム
JP4091723B2 (ja) * 2000-02-04 2008-05-28 富士通株式会社 データ転送方法及びその装置
US20050021862A1 (en) * 2000-03-31 2005-01-27 Dickens Coal Llc Automatic selection of content-delivery provider using link mapping database
US20020059378A1 (en) * 2000-08-18 2002-05-16 Shakeel Mustafa System and method for providing on-line assistance through the use of interactive data, voice and video information
US6775235B2 (en) 2000-12-29 2004-08-10 Ragula Systems Tools and techniques for directing packets over disparate networks
US20020087724A1 (en) * 2000-12-29 2002-07-04 Ragula Systems D/B/A Fatpipe Networks Combining connections for parallel access to multiple frame relay and other private networks
SE521190C2 (sv) * 2001-02-16 2003-10-07 Ericsson Telefon Ab L M Metod system och anordning för att styra bandbreddsanvändningen i ett datakommunikationsnät
US7542419B2 (en) * 2001-04-02 2009-06-02 International Business Machines Corporation Method and apparatus for managing aggregate bandwidth at a server
JP4192446B2 (ja) * 2001-06-29 2008-12-10 株式会社日立製作所 通信サービス取引方法および通信システム
US20030061405A1 (en) * 2001-08-15 2003-03-27 Open Technologies Group, Inc. System, method and computer program product for protocol-independent processing of information in an enterprise integration application
US7444506B1 (en) * 2001-12-28 2008-10-28 Ragula Systems Selective encryption with parallel networks
EP1335535A1 (en) * 2002-01-31 2003-08-13 BRITISH TELECOMMUNICATIONS public limited company Network service selection
US6781990B1 (en) * 2002-02-11 2004-08-24 Extreme Networks Method and system for managing traffic in a packet network environment
WO2004072772A2 (en) * 2003-02-12 2004-08-26 Silverback Systems, Inc. An architecture and api for of transport and upper layer protocol processing acceleration
US7934020B1 (en) * 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US7308505B2 (en) * 2003-12-17 2007-12-11 International Business Machines Corporation Method, system and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
US7756008B2 (en) * 2003-12-19 2010-07-13 At&T Intellectual Property Ii, L.P. Routing protocols with predicted outrage notification
US7688723B1 (en) * 2004-09-16 2010-03-30 Avaya Inc. Procedural XML-based telephony traffic flow analysis and configuration tool
US7830813B1 (en) 2004-09-30 2010-11-09 Avaya Inc. Traffic based availability analysis
US8281031B2 (en) 2005-01-28 2012-10-02 Standard Microsystems Corporation High speed ethernet MAC and PHY apparatus with a filter based ethernet packet router with priority queuing and single or multiple transport stream interfaces
EP1808993A3 (en) * 2005-12-08 2007-08-01 Electronics and Telecommunications Research Institute Transmission apparatus having a plurality of network interfaces and transmission method using the same
US8364653B2 (en) * 2006-04-05 2013-01-29 Sap Ag Triggering server state changes with references
US8099343B1 (en) 2006-04-20 2012-01-17 At&T Intellectual Property I, L.P. Distribution schemes and related payment models for subscriber-created content
JP4953965B2 (ja) * 2007-07-30 2012-06-13 三菱電機株式会社 通信システム、通信装置およびパケット伝送方法
US20100011230A1 (en) * 2008-07-08 2010-01-14 Olaf Mater Link aggregation with dynamic bandwidth management to reduce power consumption
CN101631110B (zh) * 2008-07-15 2013-01-02 国际商业机器公司 基于相对位置动态确定连接建立机制的装置和方法
JP5601041B2 (ja) 2009-07-23 2014-10-08 セイコーエプソン株式会社 記録システム、及び、記録システムにおける通信制御方法
TW201132163A (en) * 2010-03-12 2011-09-16 Gemtek Technology Co Ltd Network interface selection method and network device thereof
US8862660B1 (en) 2011-08-04 2014-10-14 Wyse Technology L.L.C. System and method for facilitating processing of communication
JP5992267B2 (ja) * 2012-09-05 2016-09-14 富士通株式会社 イーサネットスイッチおよび通信方法
TWI510063B (zh) * 2013-10-30 2015-11-21 Vivotek Inc 媒體串流提供裝置、連線至媒體串流提供裝置的方法、媒體串流系統與電腦可讀取媒體
WO2015174883A1 (en) * 2014-05-15 2015-11-19 Oracle International Corporation Test bundling and batching optimizations
US10726389B2 (en) * 2015-04-21 2020-07-28 Walmart Apollo, Llc Inventory information distribution systems, devices and methods

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2856050B2 (ja) * 1993-11-30 1999-02-10 日本電気株式会社 ルーティング制御方法
US5519836A (en) * 1994-03-25 1996-05-21 At&T Corp. Method of on-line permanent virtual circuit routing
US5570355A (en) * 1994-11-17 1996-10-29 Lucent Technologies Inc. Method and apparatus enabling synchronous transfer mode and packet mode access for multiple services on a broadband communication network
US5732080A (en) * 1995-07-12 1998-03-24 Bay Networks, Inc. Method and apparatus for controlling data flow within a switching device
US5610910A (en) * 1995-08-17 1997-03-11 Northern Telecom Limited Access to telecommunications networks in multi-service environment
US5651005A (en) * 1995-08-29 1997-07-22 Microsoft Corporation System and methods for supplying continuous media data over an ATM public network
CA2186795A1 (en) * 1995-11-17 1997-05-18 Cormac John Sreenan Resource management system for a broadband multipoint bridge

Also Published As

Publication number Publication date
JPH0993304A (ja) 1997-04-04
US5948069A (en) 1999-09-07

Similar Documents

Publication Publication Date Title
JP3613863B2 (ja) ネットワーク接続システム及び並列ネットワーク接続方法
US6950436B2 (en) Network data communication system
US6195355B1 (en) Packet-Transmission control method and packet-transmission control apparatus
JP3266534B2 (ja) 通信ネットワークのオペレーティング方法
US6466985B1 (en) Method and apparatus for providing quality of service using the internet protocol
US5600644A (en) Method and apparatus for interconnecting LANs
EP0941010B1 (en) Method and apparatus for provisioned and dynamic quality of service in a communications network
US6356553B1 (en) Network node and method of packet transfer
US7257646B2 (en) Method and arrangement for handling information packets via user selectable relay nodes
US6570875B1 (en) Automatic filtering and creation of virtual LANs among a plurality of switch ports
EP1018822A2 (en) Mechanism to guarantee quality of service to real-time traffic on IP networks
US6212185B1 (en) Multiple network address resolution
JP2003078556A (ja) ネットワークシステム、ネットワーク中継装置、ネットワーク中継監視装置およびネットワーク運用方法
JP2004048661A (ja) ネットワークのパス構成のための方法および装置
JP3923533B2 (ja) Atmの部分的なカットスルー
US7136382B1 (en) System and method for providing quality of service operations using IP addresses
US6504821B2 (en) Flexible bandwidth negotiation for the block transfer of data
JP3634201B2 (ja) ネットワーク間データ伝送方法
US6819673B1 (en) Method and system for establishing SNA sessions over wide area networks
JP2000354068A (ja) テルネット3270サーバとテルネット3270クライアントとの間のファイル交換中の総ネットワーク応答時間を改善するための方法およびシステム
US20020159391A1 (en) Packet-transmission control method and packet-transmission control apparatus
JP2004088658A (ja) パケット転送装置及びパケット処理方法
KR20010016690A (ko) 멀티캐스트 통신 서비스 제공 시스템 및 멀티캐스트 서비스제어방법
US6816479B1 (en) Method and system for pre-loading in an NBBS network the local directory database of network nodes with the location of the more frequently requested resources
JP2001156779A (ja) 通信システム間のサービスの品質をマッピングするシステムと方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040906

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041025

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071112

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091112

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121112

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121112

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131112

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees