(57)【特許請求の範囲】
【請求項１】
クライアント計算機とネットワークを介して接続されるサーバ計算機であって、
複数のポートと、
サービスを提供する複数のサーバアプリケーションが属する複数のアプリケーショングループと、
前記アプリケーショングループの識別情報と、前記アプリケーショングループに属するサーバアプリケーションが使用するＩＰアドレスを示す第１の識別情報とを対応付ける第１の管理情報と、
前記複数のポートを識別する第２の識別情報と、受信アドレス、前記サーバアプリケーションの識別情報及び前記アプリケーショングループの識別情報とを対応付ける第２の管理情報と、
前記複数のポートの何れかによって受信される通信パケットに含まれる前記第１の識別情報と前記第１の管理情報とから前記通信パケットの振分け先であるアプリケーショングループを取得し、前記通信パケットに含まれる前記第２の識別情報と前記第２の管理情報とから複数の前記第２の識別情報と前記受信アドレスとの組を示すエンドポイントを取得し、前記取得された複数のエンドポイントのいずれかと対応し且つ前記取得したアプリケーショングループに属するサーバアプリケーションに前記通信パケットを振り分けるパケット振分け処理部とを有する
ことを特徴とするサーバ計算機。
【請求項２】
前記パケット振分け処理部は、
前記通信パケットに含まれる前記第１の識別情報がループバックアドレスである場合には、前記第１の識別情報と前記第１の管理情報とから前記通信パケットの振分け先であるアプリケーショングループを取得する代わりに、前記通信パケットを送信したアプリケーショングループを取得する
ことを特徴とする請求項１記載のサーバ計算機。
【請求項３】
前記パケット振分け処理部は、
前記通信パケットに含まれる前記第１の識別情報、前記第２の識別情報及び前記第２の管理情報から前記エンドポイントが受信できるＩＰアドレスか否かを判断し、当該エンドポイントに対応付けられる前記サーバアプリケーションに前記通信パケットを振り分ける
ことを特徴とする請求項１記載のサーバ計算機。
【請求項４】
前記受信アドレスは、ＡＮＹアドレスである
ことを特徴とする請求項１記載のサーバ計算機。
【請求項５】
前記第１の管理情報は、
前記第１の識別情報と付与されたネットワークインタフェースの情報とをさらに対応付ける
ことを特徴とする請求項１記載のサーバ計算機。
【請求項６】
前記通信パケットを送信するための送信元のアプリケーショングループと前記ネットワークインタフェースとが前記第１の管理情報として管理されている場合には、前記第１の管理情報として管理されている前記第１の識別情報を前記通信パケットの送信元のアドレスとして設定する
ことを特徴とする請求項５記載のサーバ計算機。
【請求項７】
設定対象の第１の識別情報が前記第１の管理情報として管理されていない場合には、前記設定対象の第１の識別情報と、当該第１の識別情報が付与されたネットワークインタフェースと、前記ネットワークインタフェースの使用を要求した送信元のサーバアプリケーションが属するアプリケーショングループと、を登録するネットワークインタフェース有効化処理部をさらに有する
ことを特徴とする請求項５記載のサーバ計算機。
【請求項８】
削除対象の第１の識別情報が前記第１の管理情報として管理されている場合には、前記削除対象の第１の識別情報と、当該第１の識別情報が付与されたネットワークインタフェースと、前記ネットワークインタフェースの使用を要求した送信元のサーバアプリケーションが属するアプリケーショングループと、を削除するネットワークインタフェース無効化処理部をさらに有する
ことを特徴とする請求項５記載のサーバ計算機。
【請求項９】
クライアント計算機とネットワークを介して接続されるサーバ計算機のネットワーク処理方法であって、
サービスを提供する複数のサーバアプリケーションが属する複数のアプリケーショングループの識別情報と、前記アプリケーショングループに属するサーバアプリケーションが使用できるＩＰアドレスを示す第１の識別情報とを第１の管理情報として対応付ける第１の対応付けステップと、
複数のポートを識別する第２の識別情報と、受信アドレス、前記サーバアプリケーションの識別情報及び前記アプリケーショングループの識別情報とを第２の管理情報として対応付ける第２の対応付けステップと、
前記複数のポートのいずれかによって受信される通信パケットに含まれる前記第１の識別情報と前記第１の管理情報とから前記通信パケットの振分け先であるアプリケーショングループを取得し、前記通信パケットに含まれる前記第２の識別情報と前記第２の管理情報とから複数の前記第２の識別情報と前記受信アドレスとの組を示すエンドポイントを取得し、前記取得された複数のエンドポイントのいずれかと対応し且つ前記取得したアプリケーショングループに属するサーバアプリケーションに前記通信パケットを振り分けるパケット振分け処理ステップとを有する
ことを特徴とするネットワーク処理方法。
【請求項１０】
前記パケット振分け処理ステップでは、
前記通信パケットに含まれる前記第１の識別情報がループバックアドレスである場合には、前記第１の識別情報と前記第１の管理情報とから前記通信パケットの振分け先であるアプリケーショングループを取得する代わりに、前記通信パケットを送信したアプリケーショングループを取得する
ことを特徴とする請求項９記載のネットワーク処理方法。
【請求項１１】
前記パケット振分け処理ステップでは、
前記通信パケットに含まれる前記第１の識別情報、前記第２の識別情報及び前記第２の管理情報から前記エンドポイントが受信できるＩＰアドレスか否かを判断し、当該エンドポイントに対応付けられる前記サーバアプリケーションに前記通信パケットを振り分ける
ことを特徴とする請求項９記載のネットワーク処理方法。
【請求項１２】
前記受信アドレスは、ＡＮＹアドレスである
ことを特徴とする請求項９記載のネットワーク処理方法。
【請求項１３】
前記第１の管理情報では、
前記第１の識別情報と付与されたネットワークインタフェースの情報とをさらに対応付ける
ことを特徴とする請求項９記載のネットワーク処理方法。
【請求項１４】
前記通信パケットを送信するための送信元のアプリケーショングループと前記ネットワークインタフェースとが前記第１の管理情報として管理されている場合には、前記第１の管理情報として管理されている前記第１の識別情報を前記通信パケットの送信元のアドレスとして設定する
ことを特徴とする請求項１３記載のネットワーク処理方法。
【請求項１５】
設定対象の第１の識別情報が前記第１の管理情報として管理されていない場合には、前記設定対象の第１の識別情報と、当該第１の識別情報が付与されたネットワークインタフェースと、前記ネットワークインタフェースの使用を要求した送信元のサーバアプリケーションが属するアプリケーショングループと、を登録するネットワークインタフェース有効化処理ステップをさらに有する
ことを特徴とする請求項１３記載のネットワーク処理方法。
【請求項１６】
削除対象の第１の識別情報が前記第１の管理情報として管理されている場合には、前記削除対象の第１の識別情報と、当該第１の識別情報が付与されたネットワークインタフェースと、前記ネットワークインタフェースの使用を要求した送信元のサーバアプリケーションが属するアプリケーショングループと、を削除するネットワークインタフェース無効化処理ステップをさらに有する
ことを特徴とする請求項１３記載のネットワーク処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーティングシステム（OS）のネットワーク処理に関する発明である。ウェブサーバ、ファイルサーバなどのサーバアプリケーションやＮＡＳ（Network Attached Storage）のコンソリデーションに適用可能な技術である。
【背景技術】
【０００２】
サーバ計算機の運用管理を一元化し、管理コストを削減するため、複数のサーバ計算機内のサーバアプリケーションがそれぞれ提供している同じ種類のサービスを一台のサーバ計算機に集約して提供するコンソリデーションが提案されている。サービスとは、例えばＷＥＢサービスやＮＦＳサービス等をいい、ソフトウエアの機能を、ネットワークを通じて利用できるようにしたものをいう。
【０００３】
一般に各サーバ計算機内のサーバアプリケーションは、クライアントが発行するリクエストを待ち受けるアドレスとして、ＡＮＹアドレスという特殊アドレスを用いる。ＡＮＹアドレスは、例えば非特許文献１に開示される技術であり、サーバ計算機が保持する全てのＩＰアドレス宛のリクエストを待ち受けることができる。
【０００４】
ここで各サーバ計算機が同じ種類のサービスを提供していたサーバアプリケーション（以下では、同一サーバアプリケーションと呼ぶ）をコンソリデーションする場合に、単純に一台のサーバ計算機上で複数の同一サーバアプリケーションを動かすことはできない。
【０００５】
単純に一台のサーバ計算機上で複数の同一サーバアプリケーションを動かすと、サーバ計算機内ではＡＮＹアドレスを用いてリクエストを待ち受けるサーバアプリケーションが複数あることになり、サーバ計算機は、どのサーバアプリケーションでリクエストを受け取れば良いか判別できないことになるからである。
【０００６】
そこで例えばコンソリデーションは、次のような方法で行うことが提案されている。まず、非特許文献２から４に開示されるような仮想マシンソフトウエアを使う方法である。仮想マシンソフトウエアは、一台のサーバ計算機上で複数の仮想マシンを提供可能とするソフトウエアである。夫々の仮想マシンでは独立したＯＳを動かすことができる。集約元のサーバ計算機一台について一つの仮想マシンを用意し、各仮想マシン上で同じ種類のサーバアプリケーションを動かすことでコンソリデーションを実現する。
【０００７】
また、別の方法では、複数のサーバ計算機で提供していたサービスの設定情報を統合し、一台のサーバ計算機上の単一のサーバアプリケーションでコンソリデーションを実現する方法がある。例えば、各サーバ計算機で個別にサービスのユーザ情報を管理していた場合には、予めユーザ情報を統合する。
【非特許文献１】W. Richard Stevens, UNIX Network Programming, p.p.278-289 Prentice Hall PTR, 1990
【非特許文献２】http://www.vmware.com/pdf/virtualization.pdf
【非特許文献３】http://www.vmware.com/files/pdf/VMware＿paravirtualization.pdf
【非特許文献４】http://www.vmware.com/pdf/virtualization＿considerations.pdf
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、コンソリデーションを実現するためには、単純に一台のサーバ計算機上で複数の同一サーバアプリケーションを動かすことはできず、上述の如く、仮想マシンを使用するか、単一のアプリケーションにサービスの設定情報を統合するか、の方法を採用するしかなかった。
【０００９】
そこで、本発明では、サーバ計算機のメモリの使用量及びＣＰＵに対する負担が大きくなってしまう仮想マシンによる方法や、単一のアプリケーションにサービスの設定情報を統合する方法を採用することなく、一台のサーバ計算機内にある単一のＯＳ上で同一サーバアプリケーションを複数同時に動かすことのできるサーバ計算機及びネットワーク処理方法を提案しようとするものである。
【課題を解決するための手段】
【００１０】
本発明は、１又は複数のクライアント計算機とネットワークを介して接続されるサーバ計算機であって、複数のポートと、サービスを提供する複数のサーバアプリケーションが属する複数のアプリケーショングループと、アプリケーショングループと、アプリケーショングループに属するサーバアプリケーションが使用する第１の識別情報と、を対応付ける第１の管理情報と、複数のポートを識別する第２の識別情報と、第１の識別情報と第２の識別情報との組から構成される複数のエンドポイントと、を対応付ける第２の管理情報と、複数のポートの何れかによって受信される通信パケットに含まれる第１の識別情報と第１の管理情報とから通信パケットの振分け先であるアプリケーショングループを取得し、通信パケットに含まれる第２の識別情報と第２の管理情報とから複数のエンドポイントを取得し、取得された複数のエンドポイントのいずれかと対応し且つ取得したアプリケーショングループに属するサーバアプリケーションに通信パケットを振り分けるパケット振分け処理部と、を有することを特徴とする。
【００１１】
この結果、サーバ計算機内に複数の同一サーバアプリケーションを有していても、通信パケットを指定のサーバアプリケーションに振り分けることができる。これにより、本発明のサーバ計算機は、単一のＯＳ上で同時に複数の同一サーバアプリケーションを動かすことができる。
【００１２】
また本発明は、１又は複数のクライアント計算機とネットワークを介して接続されるサーバ計算機のネットワーク処理方法であって、サービスを提供する複数のサーバアプリケーションが属する複数のアプリケーショングループと、アプリケーショングループに属するサーバアプリケーションが使用できる第１の識別情報と、を第１の管理情報として対応付ける第１の対応付けステップと、複数のポートを識別する第２の識別情報と、第１の識別情報と第２の識別情報との組から構成される複数のエンドポイントと、を第２の管理情報として対応付ける第２の対応付けステップと、複数のポートのいずれかによって受信される通信パケットに含まれる第１の識別情報と第１の管理情報とから通信パケットの振分け先であるアプリケーショングループを取得し、通信パケットに含まれる第２の識別情報と第２の管理情報とから複数のエンドポイントを取得し、取得された複数のエンドポイントのいずれかと対応し且つ取得したアプリケーショングループに属するサーバアプリケーションに通信パケットを振り分けるパケット振分け処理ステップと、を有することを特徴とする。
【００１３】
この結果、サーバ計算機内に複数の同一サーバアプリケーションを有していても、通信パケットを指定のサーバアプリケーションに振り分けることができる。これにより、本発明のサーバ計算機は、単一のＯＳ上で同時に複数の同一サーバアプリケーションを動かすことができる。
【発明の効果】
【００１４】
本発明によれば、一台のサーバ計算機内にある単一のＯＳ上でＡＮＹアドレスを用いてリクエストを待ち受ける同一サーバアプリケーションを複数同時に動かすことができる。
【００１５】
また、一台のサーバ計算機はクライアントからのリクエストを判別して、同一のサーバアプリケーションが複数あっても確実にリクエストを振り分けることができる。
【００１６】
複数のサーバ計算機上で運用していた同一サービスを、既存のサーバアプリケーション自体を改変することなく１台のサーバ計算機上に集約する、サーバコンソリデーションとして利用することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明の実施の形態を説明する。
【００１８】
（１）計算機システムの構成
図１に示す、１は、第１の実施の形態における計算機システムを示す。計算機システム１は、サーバ計算機１００がＬＡＮ１０２を介して複数のクライアント計算機（以下、単にクライアントという）１０１と接続する構成である。
【００１９】
クライアント１０１は、サーバ計算機１００のサーバアプリケーション１０７が提供するサービスにアクセスする計算機である。
【００２０】
サーバ計算機１００は、ネットワークインタフェース１０３、ＣＰＵ１０５、メモリ１０４から主に構成される。
【００２１】
ネットワークインタフェース１０３、ＣＰＵ１０５、メモリ１０４はそれぞれ複数あっても良い。
【００２２】
ネットワークインタフェース１０３は、ＬＡＮ１０２と接続しており、サーバ計算機１００がＴＣＰ（Transmission Control Protocol）やＵＤＰ（User Datagram Protocol）等のネットワークプロトコルを使ってクライアント１０１と通信を行うためのインタフェースである。
【００２３】
メモリ１０４は、例えば半導体メモリであり、ＣＰＵ１０５が実行するプログラム及びＣＰＵ１０５が参照するデータを格納する。具体的にはメモリ１０４には、オペレーティングシステム（図中ＯＳと表記）１０６内のサーバアプリケーション１０７Ａ〜１０７Ｃ、プログラムであるネットワーク処理部１０８、プロセス管理テーブル１０９、ＡＮＹアドレス管理テーブル１１０、ソケット管理テーブル１１１、ルーティングテーブル１１２、及び、ネットワークインタフェースのＩＰアドレスの設定や削除をＯＳ１０６に要求するネットワークインタフェース設定プログラム１１４、を格納する。
【００２４】
ＣＰＵ１０５は、サーバ計算機１００の動作を制御するプロセッサである。ＣＰＵ１０５は、メモリ１０４に格納されたＯＳ１０６上のサーバアプリケーション１０７Ａ〜１０７Ｃやネットワーク処理部１０８といったプログラムを実行する。
【００２５】
サーバアプリケーション１０７Ａ〜１０７Ｃは、クライアント１０１にファイル、ウェブ、メール、ftpなどのサービスを提供するアプリケーションである。サーバアプリケーション１０７Ａ〜１０７Ｃは、ＯＳ１０６内のユーザ空間のアプリケーションでも良いし、カーネル空間のアプリケーションでも良い。またアプリケーションの数も限定していない。
【００２６】
本実施の形態では、サーバアプリケーションは、１０７Ａ、１０７Ｂ、１０７Ｃの３種類のサービスを提供するサーバアプリケーションが複数動作している。
【００２７】
ＯＳ１０６は、サーバアプリケーション１０７も含めて、全てのプロセスにＶＮＡＳ（Virtual NAS）−ＩＤと呼ぶ識別番号を付与して、プロセス群をグループ化している。ここで、プロセスとは、サーバアプリケーション１０７も含めて、サーバ計算機１００が実行中のプログラムをいう。図１では、異なる種類のサービスを提供する３つのサーバアプリケーション１０７Ａ、１０７Ｂ、１０７Ｃを１組とするＶＮＡＳが３つ１１３Ａ、１１３Ｂ、１１３Ｃ形成されている。ＶＮＡＳ１１３は、異種のサーバアプリケーションを１つのグループとしてグループ化したものであり、単一のＯＳ１０６内に複数有するものである。また、ＶＮＡＳ１１３は、本来ならば３台のサーバ計算機にそれぞれ個別に提供されるプロセス群である。なお各グループのプロセスの構成は、必ずしも一致している必要はない。また特に区別する場合を除いて、サーバアプリケーション１０７、ＶＮＡＳ１１３、と記載する。
【００２８】
クライアント１０１からのリクエストは、通信パケット（以下、単にパケットという）１２００に含まれてサーバ計算機１００に送信される。リクエストがＬＡＮ１０２を経由してサーバ計算機１００のネットワークインタフェース１０３に届くと、ＯＳ１０６内のネットワーク処理部１０８がネットワークインタフェース１０３に届いたリクエストを各種管理テーブル１０９〜１１１の情報に基づき、複数あるＶＮＡＳ１１３内の、どのサーバアプリケーション１０７Ａ〜１０７Ｃに対するリクエストか判定して配信する。
【００２９】
（２）ネットワーク処理部
図２に、ネットワーク処理部１０８の構成図を示す。
【００３０】
ネットワーク処理部１０８は、パケット１２００の送受信とネットワークインタフェース１０３との管理を行うためのプログラムである。ネットワーク処理部１０８は、パケット受信処理部２０１、パケット送信処理部２０３及びネットワークインタフェース管理部２０５で構成される。
【００３１】
パケット受信処理部２０１は、ネットワークインタフェース１０３を介してクライアント１０１から受信したリクエストのパケット１２００をサーバアプリケーション１０７Ａ〜１０７Ｃへ配信する処理を行う。パケット受信処理部２０１は、パケット振分け処理部２０２を有する。
【００３２】
パケット振分け処理部２０２では、どの種類のサーバアプリケーション１０７Ａ〜１０７Ｃへパケット１２００を配信するか、同一種類のサーバアプリケーション１０７が複数ある場合にどのＶＮＡＳ１１３のサーバアプリケーション１０７へパケット１２００を配信するかを決定する。パケット振分け処理部２０２は、後述のフローチャートで説明する。
【００３３】
パケット送信処理部２０３は、サーバアプリケーション１０７のパケット送信要求に基づき、ネットワークインタフェース１０３を介して、クライアント１０１へパケット１２００を送信する処理を行う。パケット送信処理部２０３は、送信元アドレス設定処理部２０４を有する。
【００３４】
送信元アドレス設定処理部２０４では、パケット送信の要求を出したサーバアプリケーション１０７が使用可能なＩＰアドレス（第１の識別情報）を送信元アドレスとして設定する処理を行う。送信元アドレス設定処理部２０４は、後述のフローチャートで説明する。
【００３５】
ネットワークインタフェース管理部２０５は、ＩＰアドレスを割り当ててネットワークインタフェース１０３を使用可能な状態にする（以下、これを有効化という）処理、又は、ＩＰアドレスを削除してネットワークインタフェース１０３を使用不可能な状態にする（以下、これを無効化という）処理を行う。
【００３６】
また、ネットワークインタフェース管理部２０５は、ネットワークインタフェース１０３の有効化・無効化と同時にＡＮＹアドレス管理テーブル１１０内の登録又は削除処理を行う。ネットワークインタフェース管理部２０５は、インタフェース有効化処理部２０６及びインタフェース無効化処理部２０７を有する。インタフェース有効化処理部２０６及びインタフェース無効化処理部２０７は、後述のフローチャートで説明する。
【００３７】
（３）プロセス管理テーブル
図３は、プロセス管理テーブル１０９の説明図である。
【００３８】
プロセス管理テーブル１０９は、サーバアプリケーション１０７のプロセスも含め、ＯＳ１０６上で動作中の全プロセス情報を管理するテーブルである。
【００３９】
プロセス管理テーブル１０９は、各プロセスの動作順に一意に付与されたプロセス識別番号である「ＰＩＤ」欄１０９０及び所属するＶＮＡＳ１１３の識別番号である「ＶＮＡＳ−ＩＤ」欄１０９１から主に構成されている。なお、その他の欄１０９２は、プロセスが使用するリソース等の管理情報が格納されている。
【００４０】
ＶＮＡＳ１１３の識別番号は、各プロセスが使用可能なＩＰアドレスを区別するために用いる。サーバ計算機１００がＡＮＹアドレスを用いてリクエストを待ち受ける同一サーバアプリケーション１０７を複数動かす場合には、夫々のサーバアプリケーション１０７が異なるＩＰアドレスでリクエストを待ち受けることができるように、予め異なるＶＮＡＳ１１３の識別番号でプロセスを生成する。
【００４１】
ここで、プロセス群をＶＮＡＳ１１３のグループに分ける一例について説明する。図４には、本実施の形態におけるプロセスツリー（プロセス間の親子関係を示す木構造）の模式図を示す。
【００４２】
１３０１〜１３０８は、夫々のプロセスを示している。また、夫々のプロセス１３０１〜１３０８にはＶＮＡＳ１１３のＩＤが割り当てられている。
【００４３】
例えばプロセス１３０１にはＶＮＡＳ１のＩＤが割り当てられているとする。新たなプロセス１３０２は、新たなプロセス１３０２のコピー元となるプロセス１３０１がｆｏｒｋシステムコール１３０９を呼び出すことで生成される。このとき、コピー元となるプロセス１３０１は親プロセス、新しく生成されたプロセス１３０２は子プロセスと呼ばれる。引き続き、新しいプロセス１３０３、１３０４を生成させる場合には、コピー元となるプロセス１３０２がｆｏｒｋシステムコール１３０９を呼び出す。このとき、コピー元となるプロセス１３０２が親プロセス、新しく生成されたプロセス１３０３、１３０４は子プロセスと呼ばれる。このように、親プロセスからｆｏｒｋシステムコール１３０９を使用して子プロセスを生成した場合、ＯＳ１０６は、親プロセスに割り当てられたＶＮＡＳ１１３のＩＤを付与する。
【００４４】
一方、本実施の形態で用意したvnas_startシステムコール１３１０を用いて親プロセスから子プロセスを生成する場合には、子プロセスに割り当てるＶＮＡＳ１１３の識別番号を指定することができる。例えば、ＶＮＡＳ１のＩＤが割り当てられたプロセス１３０１がvnas_startシステムコール１３１０を呼び出して、ＶＮＡＳ１１３のＩＤを指定すると、指定したＩＤ（ＶＮＡＳ２）が割り当てられた新たなプロセス１３０５が生成される。このとき、コピー元となるプロセス１３０１が親プロセス、新しく生成されたプロセス１３０５は子プロセスと呼ばれる。
【００４５】
その後は、上述したプロセス生成と同様に、プロセス１３０５がｆｏｒｋシステムコール１３０９でプロセス１３０６を生成し、プロセス１３０６がｆｏｒｋシステムコール１３０９でプロセス１３０７、１３０８を生成する。
【００４６】
プロセス群１３０１〜１３０８は、同じＶＮＡＳ１１３のＩＤをもつプロセス群にグループ分けされる。こうしてグループ分けされたプロセスグループが１１３Ａ〜１１３Ｃに該当する。そして、例えば、ＶＮＡＳ１に属するプロセス１３０３とＶＮＡＳ２に属するプロセス１３０７が同じサーバアプリケーション１０７Ａであり、ＶＮＡＳ１に属するプロセス１３０４とＶＮＡＳ２に属するプロセス１３０８が同じサーバアプリケーション１０７Ｂに対応する。
【００４７】
本実施の形態では、ＯＳ１０６のプロセス生成方法としてｆｏｒｋシステムコール１３０９を例示したが、プロセス生成用のＡＰＩ（Application Programming Interface）であれば、どのようなＡＰＩを用いても良い。また、親プロセスが所属するＶＮＡＳ１１３のＩＤとは異なるＩＤを付与する際にvnas_startシステムコール１３１０を用いたが、親プロセスが所属するＶＮＡＳ１１３のＩＤとは異なるＩＤを付与して子プロセスが生成されればよく、このシステムコール１３１０に限ることはない。
【００４８】
（４）ＡＮＹアドレス管理テーブル
図５は、ＡＮＹアドレス管理テーブル１１０の説明図である。
【００４９】
ＡＮＹアドレス管理テーブル１１０は、ＶＮＡＳ１１３とＩＰアドレスとの対応を管理するテーブルである。ＡＮＹアドレス管理テーブル１１０は、「ＩＰアドレス」欄１１００、「ＶＮＡＳ−ＩＤ」欄１１０１及び「ネットワークインタフェース」欄１１０２から構成される。
【００５０】
各欄１１００、１１０１、１１０２に登録される情報をＡＮＹアドレス管理情報ＩＮＦＯ１〜ＩＮＦＯ４と呼ぶ。
【００５１】
例えば、図５の例では、ＶＮＡＳ１はＩＰ１とＩＰ２が使用可能で、ＶＮＡＳ２はＩＰ３が使用可能であることを示している。また、ｅｔｈ１にはＩＰ１が設定されており、同様にｅｔｈ２にはＩＰ２、ｅｔｈ３にはＩＰ３が設定されていることを示している。
【００５２】
なお、ネットワークインタフェース１１０２に記録するインタフェースは、物理的なインタフェースに限定しない。ネットワークインタフェース１１０２に記録するインタフェースは、ＯＳ１０６内に作成された仮想インタフェースであっても良い。具体的には、複数の物理インタフェースを束ね（bonding）一つにしたインタフェースや、ＶＬＡＮ（Virtual LAN）の識別番号によって複製されたインタフェースや、同じ物理/仮想インタフェースに異なるＩＰアドレスをつける（alias）ためにソフトウエア的に複製されたインタフェース、であってもよい。
【００５３】
また、本実施の形態では、ＡＮＹアドレス管理テーブル１１０の形式でＡＮＹアドレス管理情報を保持しているが、テーブル構造ではなくリスト構造となっていても良い。具体的には、ＡＮＹアドレス管理情報ＩＮＦＯを一つのデータ構造として、このデータ構造が複数繋がっているリスト構造となっていても良い。また、ＶＬＡＮの識別番号ごとに複数のテーブル構造や複数のリスト構造となっても良い。
【００５４】
（５）ソケット管理テーブル
図６は、ソケット管理テーブル１１１の説明図である。
【００５５】
ソケット管理テーブル１１１は、サーバアプリケーション１０７がパケット１２００を待ち受けるときの送受信口を管理するテーブルであり、ソケットと、送信先ポート番号（第２の識別情報）と、ＶＮＡＳ１１３と、の対応関係を管理するテーブルである。ここで、ソケットとは、ＩＰアドレスと送信先ポート番号との組で構成されたエンドポイントであって、サーバアプリケーション１０７ごとに設けられ、サーバアプリケーション１０７とクライアント１０１とのネットワーク通信路の端点（送受信口）をいう。
【００５６】
またソケット管理テーブル１１１は、ポートテーブル５００と、このポートテーブル５００内にエントリされた送信先ポート番号に対応づけられたソケットテーブル５０２とから構成される。
【００５７】
（５−１）ポートテーブル
ポートテーブル５００は、サーバアプリケーション１０７が提供するサービスの種類を特定するために付与される送信先ポート番号を管理するテーブルであり、「送信先ポート番号」欄５０１から構成される。例えば、複数のサーバアプリケーション１０７のうち、同じポート番号を付与されたサーバアプリケーション１０７は、同一のサービスを提供する同一のサーバアプリケーション１０７である。
【００５８】
具体的には、ウェブサービスを提供するサーバアプリケーション１０７にはポート番号８０番が付与され、ＣＩＦＳサービスを提供するサーバアプリケーション１０７にはポート番号３０２０番が付与され、ＮＦＳサービスを提供するサーバアプリケーション１０７にはポート番号２０４９番が付与される。
【００５９】
このように、サーバアプリケーション１０７が提供するサービスの種類応じて使用するポート番号が決められている。このため、クライアント１０１は、送信先ポート番号を指定した(サービスの種類を指定した)リクエストをサーバ計算機１００に送信する。
【００６０】
（５−２）ソケットテーブル
ソケットテーブル５０２は、ポート番号ごとに設けられるテーブルであり、同一のポート番号のソケットを管理するテーブルである。
【００６１】
ソケットテーブル５０２は、パケット１２００を受信できるＩＰアドレスを示す「受信アドレス」欄５０３、ソケットを生成したプロセスの識別番号を記録する「ＰＩＤ」欄５０４及びＶＮＡＳ１１３の識別番号を登録する「ＶＮＡＳ−ＩＤ」欄５０５から主に構成される。
【００６２】
「ＶＮＡＳ−ＩＤ」欄５０５には、プロセス管理テーブル１０９の「ＶＮＡＳ−ＩＤ」欄１０９１に登録される識別番号と同じ識別番号が登録される。
【００６３】
なお、その他の欄は、ソケットが使用するリソース等の管理情報が格納されている。また、図６に示すソケットテーブル５０２は、ポート番号ごとに設けられるため、５０２Ａ、５０２Ｂ及び５０２Ｃとそれぞれ区別をしているが、説明する上で、特に区別をしない場合には単に５０２と記載する。各欄５０３、５０４、５０５の記載についても、同様である。
【００６４】
各ソケットは、「受信アドレス」欄５０３に登録されているＩＰアドレス宛のパケット１２００しか受け取ることができない。しかし、ＡＮＹアドレスは、例外として、全ての宛先のパケット１２００を受信可能なことを示している。通常のサーバアプリケーション１０７は、ＡＮＹアドレスをソケットに設定することで、サーバ計算機１００内の全てのＩＰアドレス宛てのリクエスト（パケット１２００）を受信可能とする実装となっている。
【００６５】
従来のサーバ計算機では、同一のポート番号に対応するソケットテーブルに、ＡＮＹアドレスを指定したソケットを複数保持することはできないため、同一のサーバアプリケーション（同じポート番号を使用するサーバアプリケーション）を複数実行することはできなかった。
【００６６】
本実施の形態のサーバ計算機１００においては、ＡＮＹアドレスを指定したソケットを複数保持することが許可されるので、異なるＶＮＡＳに属する同一のサーバアプリケーション１０７を複数実行することを可能としている。
【００６７】
このため、同一のポート番号ごとに設けられるソケットテーブル５０２にＡＮＹアドレスを指定したソケットが複数登録される。
【００６８】
ソケットテーブル５０２は、ＡＮＹアドレスを受信アドレスとする複数のソケットのうち、どのソケットのサーバアプリケーション１０７に対して、クライアント１０１からのパケット１２００を配信するか、を決定するために用いる。
【００６９】
（６）ルーティングテーブル
図７は、ルーティングテーブル１１２の説明図である。
【００７０】
ルーティングテーブル１１２は、サーバ計算機１００がクライアント１０１へパケット１２００を送信する際に使用できるネットワークインタフェース１０３を管理するためのテーブルである。ルーティングテーブル１１２は、ＬＡＮ１０２の識別番号を意味する「ネットワーク識別番号」欄１１２０と「ネットワークインタフェース」欄１１２１とから構成される。例えば、図７の例では、サーバ計算機１００が「192.168.10.0」のＬＡＮ１０２上にあるクライアント１０１へパケット１２００を送信する場合には「eth1」のネットワークインタフェース１０３を使用するように設定されている。なお、テーブル中に該当するネットワーク識別番号が無かった場合には「default」の「eth0」のインタフェース１０３を使用する。
【００７１】
（７）パケットの構成
図８は、サーバ計算機１００内のサーバアプリケーション１０７とクライアント１０１の通信に用いるＩＰｖ４のパケット形式図である。
【００７２】
パケット１２００の先頭には必ずヘッダが付加され、ヘッダにより経路選択ができるようになっている。本実施の形態において、クライアント１０１からサーバ計算機１００へパケット１２００を送信する場合、具体的なパケット１２００の領域のうち、送信元アドレス領域１２０１には、送信元であるクライアント１０１のＩＰアドレスが格納される。また、送信先アドレス領域１２０２には、送信先であるサーバ計算機１００のＩＰアドレスが格納される。逆にサーバ計算機１００からクライアント１０１へパケットを返信する場合には、サーバ計算機とクライアント計算機のＩＰアドレスの格納位置が入れ替わることになる。なお、送信元・送信先がサーバ計算機１００の場合には、サーバ計算機１００のＩＰアドレスが送信元・送信先アドレス領域１２０１，１２０２に格納される。そして、データ領域１２０３には、ＩＰで通信を行うデータが格納される。本実施の形態のデータ領域１２０３には、ＴＣＰ、ＵＤＰなどの上位プロトコルのパケットが格納されている。
【００７３】
図９は、ＩＰｖ４パケットのデータ領域１２０３に格納されているデータの一例として上位プロトコルであるＴＣＰのネットワークパケットのデータ形式を示す。本実施の形態において、クライアント１０１からサーバ計算機１００へパケット１２００を送信する場合、具体的なパケット１２００の領域のうち、送信元ポート番号領域１２０４には、送信元であるクライアント１０１のポート番号が格納される。また、送信先ポート番号領域１２０５には、送信先であるサーバ計算機１００のポート番号が格納される。逆にサーバ計算機１００からクライアント１０１へパケットを返信する場合には、サーバ計算機１００とクライアント計算機１０１のポート番号の格納位置が入れ替わることになる。
【００７４】
本実施の形態では、ネットワーク通信のプロトコルとしてＩＰｖ４パケット１２００を使用しているが、必ずしもＩＰｖ４パケット１２００である必要はなく、ＩＰｖ６やそれに類似したプロトコル仕様のパケットでも良い。また、実施の形態ではＩＰｖ４の上位プロトコルとしてＴＣＰを使用しているが、送信先サービスの種類を区別するための情報（送信先ポート番号１２０２）があればＵＤＰなど他のプロトコルでも良い。
【００７５】
（８）パケット振分け処理
それでは上述した各種テーブルを用いて、サーバ計算機１００がクライアント１０１からのパケット１２００を各ソケットへ振り分けるパケット振分け処理について説明する。パケット振分け処理は、ＣＰＵ１０５がパケット受信処理部２０１の中のパケット振分け処理部２０２に基づいて実行する。
【００７６】
具体的には、図１０及び図１１に示すように、クライアント１０１からのパケット１２００がサーバ計算機１００に到着した場合に、ＣＰＵ１０５がパケット振分け処理を開始する（Ｓ０）。
【００７７】
まずＣＰＵ１０５は、パケット１２００の送信先ＩＰアドレス１２０２がループバックアドレスか否かを確認する(Ｓ１)。ループバックアドレスとは、サーバ計算機１００内のプロセスが、同じサーバ計算機１００内のプロセス（サーバアプリケーション１０７）と通信するために指定する特殊なＩＰアドレスをいう。
【００７８】
パケット１２００の送信先ＩＰアドレス１２０２がループバックアドレスである場合には（Ｓ１：ＹＥＳ）、ＣＰＵ１０５はパケット１２００の送信元であるプロセスが属するＶＮＡＳ１１３の識別番号を振分け先のＶＮＡＳ１１３の識別番号として取得する（Ｓ２）。送信先ＩＰアドレス１２０２がループバックアドレスであるため、ＣＰＵ１０５は、パケット１２００の送信先ＩＰアドレス１２０２をキーとして、どのＶＮＡＳ１１３宛の通信かを特定することはできない。そのため、ＣＰＵ１０５は、パケット送信元のプロセスと同じＶＮＡＳ１１３の識別番号をもつソケットに振り分ける。
【００７９】
一方、パケット１２００の送信先ＩＰアドレス１２０２がループバックアドレスではない場合には（Ｓ１：ＮＯ）、ＣＰＵ１０５はパケット１２００の送信先ＩＰアドレス１２０２をキーとして、ＡＮＹアドレス管理テーブル１１０を参照して、送信先ＩＰアドレス１２０２と対応付けられるＶＮＡＳ１１３の識別番号を振分け先のＶＮＡＳ１１３の識別番号として取得する（Ｓ３）。
【００８０】
振分け先のＶＮＡＳ１１３の識別番号が決定すると、ＣＰＵ１０５はパケット１２００の送信先ポート番号１２０５をキーとして、ポートテーブル５００を参照して、送信先ポート番号１２０５を検索する。そしてＣＰＵ１０５は、送信先ポート番号１２０５を検索すると、当該ポート番号に対応付けられたソケットテーブル５０２を取得する（Ｓ４）。
【００８１】
ＣＰＵ１０５は、ソケットテーブル５０２内に登録された登録順にソケット情報を取り出すと（Ｓ５）、ソケットの受信アドレスがＡＮＹアドレスとして登録されているか否かを判断する（Ｓ６）。
【００８２】
ＣＰＵ１０５は、ソケットの受信アドレスがＡＮＹアドレスとして登録されていると判断すると（Ｓ６：ＹＥＳ）、引き続き、ソケットテーブル５０２内のＶＮＡＳ１１３の識別番号とパケットの振分け先ＶＮＡＳ１１３の識別番号とが等しいか否かを判断する（Ｓ７）。
【００８３】
ＣＰＵ１０５が、等しくないと判断すると（Ｓ７：ＮＯ）、再びソケットテーブル５０２内に登録された次のソケット情報を取り出して（Ｓ５）、ステップＳ６の処理を実行する。
【００８４】
ＣＰＵ１０５が、等しいと判断すると（Ｓ７：ＹＥＳ）、等しいと判断されたソケットにパケット１２００を配信し（Ｓ９）、パケット振分け処理を終了する（Ｓ１０）。
【００８５】
一方、ステップＳ６において、ＣＰＵ１０５は、ソケットの受信アドレスがＡＮＹアドレスとして登録されていないと判断すると（Ｓ６：ＮＯ）、ソケットの受信アドレスとパケット１２００の送信先ＩＰアドレス１２０２とが等しいか否かを判断する（Ｓ８）。
【００８６】
そしてＣＰＵ１０５が、等しくないと判断すると（Ｓ８：ＮＯ）、再びソケットテーブル５０２内に登録された次のソケット情報を取り出して（Ｓ５）、ステップＳ６の処理を実行する。
【００８７】
ＣＰＵ１０５が、等しいと判断すると（Ｓ８：ＹＥＳ）、等しいと判断されたソケットにパケット１２００を配信し（Ｓ９）、パケット振分け処理を終了する（Ｓ１０）。
【００８８】
以上のフローチャートによって、クライアント１０１またはサーバ計算機１００内のプロセスから受信したパケット１２００を送信先ＩＰアドレス１２０２又はＶＮＡＳ１１３の識別番号に基づいて、特定のＶＮＡＳ１１３の識別番号を持つサーバアプリケーション１０７に振分けることが可能となる。
【００８９】
（９）送信元アドレス設定処理
それでは次に、クライアント１０１またはサーバ計算機１００内からのリクエストを受信したプロセス（サーバアプリケーション１０７）が返信する際に設定する、送信元アドレス設定処理について説明する。送信元アドレス設定処理は、ＣＰＵ１０５が送信元アドレス設定処理部２０４に基づいて設定する。
【００９０】
図１２に示すように、ＣＰＵ１０５が、クライアント１０１またはサーバ計算機１００内からのリクエストに対して、振り分けられたプロセス（サーバアプリケーション１０７）が返信する際に送信元アドレス設定処理を開始する（Ｓ２０）。
【００９１】
ＣＰＵ１０５は、パケット１２００の送信元プロセス（サーバアプリケーション１０７）のＶＮＡＳ１１３の識別番号を、プロセス管理テーブル１０９から取得する(Ｓ２１)。
【００９２】
次にＣＰＵ１０５は、ルーティングテーブル１１２を参照し、クライアント１０１またはサーバ計算機１００内からのリクエストに対して返信するパケット１２００に使用するネットワークインタフェース１０３の情報を取得する（Ｓ２２）。
【００９３】
ＣＰＵ１０５は、ＡＮＹアドレス管理テーブル１１０からＡＮＹアドレス管理情報ＩＮＦＯを取得する（Ｓ２３）。
【００９４】
そしてＣＰＵ１０５は、ステップＳ２１で取得したＶＮＡＳ１１３の識別番号とステップＳ２２で取得したネットワークインタフェース１０３が、ＡＮＹアドレス管理情報ＩＮＦＯのＶＮＡＳ１１３の識別番号とネットワークインタフェース１０３に等しいか否かを判断する（Ｓ２４）。
【００９５】
ＣＰＵ１０５は、等しくないと判断すると（Ｓ２４：ＮＯ）再びステップＳ２３に戻り、次のＡＮＹアドレス管理情報ＩＮＦＯを取得してステップＳ２４の処理を実行する。
【００９６】
一方、ＣＰＵ１０５は、等しいと判断すると（Ｓ２４：ＹＥＳ）、ＡＮＹアドレス管理情報ＩＮＦＯのＩＰアドレスを送信するパケット１２００の送信元アドレスに設定して（Ｓ２５）、送信元アドレス設定処理を終了する（Ｓ２６）。
【００９７】
以上のフローチャートによって、ＣＰＵ１０５は、パケット１２００の送信元ＩＰアドレス１２０１を、送信元サーバアプリケーション１０７が属するＶＮＡＳ１１３の識別番号に基づいて設定することができる。
【００９８】
（１０）インタフェース有効化処理
次に、ネットワークインタフェース１０３にＩＰアドレスを付与して使用可能な状態にするインタフェース有効化処理について説明する。インタフェース有効化処理は、ＣＰＵ１０５がインタフェース有効化処理部２０６に基づいて実行する。
【００９９】
図１３に示すように、ＣＰＵ１０５は、ネットワークインタフェース設定プログラム１１４のプロセスが生成されてＩＰアドレスの設定が要求された場合に、インタフェース有効化処理を開始する（Ｓ３０）。
【０１００】
ＣＰＵ１０５は、ネットワークインタフェース１０３に付与する予定のＩＰアドレスがＡＮＹアドレス管理テーブル１１０に登録済か否かを判断する（Ｓ３１）。
【０１０１】
未登録の場合には（Ｓ３１：ＮＯ）、ＣＰＵ１０５はネットワークインタフェース１０３にＩＰアドレスを付与して、ネットワークインタフェース１０３を使用可能な状態にする（Ｓ３２）。
【０１０２】
次に、ＣＰＵ１０５は、インタフェース有効化処理を要求したプロセスが属するＶＮＡＳ１１３の識別番号をプロセス管理テーブル１０９から取得する（Ｓ３３）。ここで、インタフェース有効化処理を要求したプロセスとは、インタフェース設定プログラム１１４のプロセスをいう。
【０１０３】
ＣＰＵ１０５は、設定したＩＰアドレスと、インタフェース有効化処理を要求したプロセスが属するＶＮＡＳ１１３の識別番号と、ＩＰアドレスを付与したネットワークインタフェース１０３と、の組を新たなＡＮＹアドレス管理情報ＩＮＦＯとしてＡＮＹアドレス管理テーブル１１０に登録すると（Ｓ３４）インタフェース有効化処理を終了する（Ｓ３５）。
【０１０４】
なお、ステップＳ３１において、既に登録済の場合には（Ｓ３１：ＹＥＳ）、ＣＰＵ１０５は、そのままインタフェース有効化処理を終了する（Ｓ３５）。
【０１０５】
以上のフローチャートによって、ネットワークインタフェース１０３が有効化され使用可能な状態になる。同時に、有効化処理を要求したプロセスと同じＶＮＡＳ１１３に属するプロセス群は、ネットワークインタフェース１０３に設定したＩＰアドレスの使用が可能となる。
【０１０６】
（１１）インタフェース無効化処理
次に、同じＶＮＡＳ１１３に属する全てのプロセス群を停止させる場合に、ネットワークインタフェース１０３に付与されるＩＰアドレスを削除して使用不可能な状態にするインタフェース無効化処理について説明する。インタフェース無効化処理は、ＣＰＵ１０５がインタフェース無効化処理部２０７に基づいて実行する。
【０１０７】
図１４に示すように、ＣＰＵ１０５は、ネットワークインタフェース設定プログラム１１４のプロセスが生成されてＩＰアドレスの削除を要求された場合に、インタフェース無効化処理を開始する（Ｓ４０）。
【０１０８】
まず、ＣＰＵ１０５は、インタフェース無効化処理を要求したプロセスが属するＶＮＡＳ１１３の識別番号をプロセス管理テーブル１０９から取得する（Ｓ４１）。ＣＰＵ１０５は、無効化の対象となるネットワークインタフェース１０３に付与されたＩＰアドレスと、ＶＮＡＳ１１３の識別番号と、の組はＡＮＹアドレス管理テーブル１１０に登録済か否かを判断する（Ｓ４２）。
【０１０９】
登録済の場合には（Ｓ４２：ＹＥＳ）、ＣＰＵ１０５はネットワークインタフェース１０３に付与されたＩＰアドレスを取り外して、ネットワークインタフェース１０３を使用不可能な無効化の状態にする（Ｓ４３）。
【０１１０】
そしてＣＰＵ１０５は、無効化したネットワークインタフェースのＩＰアドレスと、ＶＮＡＳ１１３の識別番号と、ＩＰアドレスを付与したネットワークインタフェース１０３と、の組をＡＮＹアドレス管理テーブル１１０から削除すると（Ｓ４４）インタフェース無効化処理を終了する（Ｓ４５）。
【０１１１】
なお、ステップＳ４２において、未登録の場合には（Ｓ４２：ＮＯ）、ＣＰＵ１０５は、そのままインタフェース無効化処理を終了する（Ｓ４５）。
【０１１２】
以上のフローチャートによって、ネットワークインタフェース１０３が無効化され使用不可能な状態になる。同時に、無効化処理を要求したプロセスと同じＶＮＡＳ１１３に属するプロセス群は、ネットワークインタフェース１０３に設定していたＩＰアドレスの使用が不可能となる。
する。
【０１１３】
（１２）その他のＡＮＹアドレス管理テーブル
図１５に示すように、ＡＮＹアドレス管理テーブル１００１Ａ〜１００１Ｃを、ＶＮＡＳ１１３ごとに作成してもよい。
【０１１４】
この場合のＡＮＹアドレス管理テーブル１００１Ａ〜１００１Ｃは、「ＩＰアドレス欄」１００２Ａ〜１００２Ｃ、「ネットワークインタフェース」欄１００３Ａ〜１００３Ｃとから構成される。各欄１００２、１００３は、図５で説明した各欄１１００、１１０２と同様の内容である。
【０１１５】
また、ポートごとに作成されるソケット管理テーブル５０２´の項目欄は、「受信アドレス」欄５０３と「ＰＩＤ」欄５０４から主に構成されることになる。このように、その他のＡＮＹアドレス管理テーブル１００１では、パケット１２００を受信できるＩＰアドレスをテーブルとして保持し、このＩＰアドレスとＶＮＡＳ１１３とを対応付けてもよい。
【０１１６】
（１３）本実施の形態の効果
本実施の形態によれば、一台のサーバ計算機内にある単一のＯＳ上でＡＮＹアドレスを用いてリクエストを待ち受ける同一サーバアプリケーションを複数同時に動かすことができる。
【０１１７】
また、一台のサーバ計算機がクライアントからのリクエストを判別して、同一のサーバアプリケーションが複数あっても確実にリクエストを振り分けることができる。
【０１１８】
複数のサーバ計算機上で運用していた同一サービスを、既存のサーバアプリケーション自体を改変することなく１台のサーバ計算機上に集約する、サーバコンソリデーションとして利用することができる。
【産業上の利用可能性】
【０１１９】
本発明は、１又は複数のサーバ計算機を有する計算機システムや、その他の形態の計算機システムに広く適用することができる。
【図面の簡単な説明】
【０１２０】
【図１】本実施の形態における計算機システムの構成を示すブロック図である。
【図２】ネットワーク処理部の内部構成を示すブロック図である。
【図３】プロセス管理テーブルの説明図である。
【図４】プロセスの生成とＶＮＡＳの識別番号との対応を示す概念図である。
【図５】ＡＮＹアドレス管理テーブルの説明図である。
【図６】ソケット管理テーブルの説明図である。
【図７】ルーティングテーブルの説明図である。
【図８】パケットの内部構成を示す説明図である。
【図９】パケットのデータ領域の内部構成を示す説明図である。
【図１０】パケット振分け処理のフローチャートである。
【図１１】パケット振分け処理のフローチャートである。
【図１２】送信元アドレス設定処理のフローチャートである。
【図１３】ネットワークインタフェース有効化処理のフローチャートである。
【図１４】ネットワークインタフェース無効化処理のフローチャートである。
【図１５】ＡＮＹアドレス管理テーブルの別の形態を示す説明図である。
【符号の説明】
【０１２１】
１……計算機システム、１００……サーバ計算機、１０１……クライアント、１０２……ＬＡＮ、１０３……ネットワークインタフェース、１０４……メモリ、１０５……ＣＰＵ、１０６……オペレーティングシステム（ＯＳ)、１０７……サーバアプリケーション、１０８……ネットワーク処理部、１０９……プロセス管理テーブル、１１０……ＡＮＹアドレス管理テーブル、１１１……ソケット管理テーブル、１１２……ルーティングテーブル、２０１……パケット受信処理部、２０２……パケット振分け処理部、２０３……パケット送信処理部、２０４……送信元アドレス設定処理部、２０５……ネットワークインタフェース管理部、２０６……インタフェース有効化処理部、２０７……インタフェース無効化処理部。
【図１】
0005222573.tif 000002
【図２】
0005222573.tif 000003
【図３】
0005222573.tif 000004
【図４】
0005222573.tif 000005
【図５】
0005222573.tif 000006
【図６】
0005222573.tif 000007
【図７】
0005222573.tif 000008
【図８】
0005222573.tif 000009
【図９】
0005222573.tif 000010
【図１０】
0005222573.tif 000011
【図１１】
0005222573.tif 000012
【図１２】
0005222573.tif 000013
【図１３】
0005222573.tif 000014
【図１４】
0005222573.tif 000015
【図１５】
0005222573.tif 000016