(57)【要約】【課題】パケットロスを防ぐこと。【解決手段】第一サーバ装置１０において、ＮＩＣ１５は、第一通信帯域Ｂ１を有する第一通信路Ｃ１で第二サーバ装置２０と接続されている。第一プロセッサＰ１は、第一通信帯域Ｂ１より大きい第二通信帯域Ｂ２を有する第二通信路Ｃ２でＮＩＣ１５と接続されている。第二プロセッサＰ２は、第一通信帯域Ｂ１より小さい第三通信帯域Ｂ３を有する第三通信路Ｃ３でＮＩＣ１５と接続されている。そして、第一プロセッサＰ１は、第二サーバ装置２０から送信されたＡＲＰリクエストを受信し、受信したＡＲＰリクエストに対するＡＲＰリプライを第二プロセッサＰ２の代わりに第二サーバ装置２０へ送信する。また、第一プロセッサＰ１は、ＡＲＰリプライに応じて第二サーバ装置２０から送信されたユーザデータパケットを受信し、受信したユーザデータパケットを第二プロセッサＰ２へ転送する。【選択図】図１
2020145616.tif 000002
【特許請求の範囲】
【請求項１】
第一通信帯域を有する第一通信路で他のサーバ装置と接続されたネットワークインタフェースカードと、
前記第一通信帯域より大きい第二通信帯域を有する第二通信路で前記ネットワークインタフェースカードと接続された第一プロセッサと、
前記第一通信帯域より小さい第三通信帯域を有する第三通信路で前記ネットワークインタフェースカードと接続された第二プロセッサと、を有し、
前記第一プロセッサは、
前記他のサーバ装置から送信されたＡＲＰリクエストを前記ネットワークインタフェースカードを介して受信し、
受信した前記ＡＲＰリクエストに対するＡＲＰリプライを前記ネットワークインタフェースカードを介して前記第二プロセッサの代わりに前記他のサーバ装置へ送信し、
前記ＡＲＰリプライに応じて前記他のサーバ装置から送信されたパケットを前記ネットワークインタフェースカードを介して受信し、
受信した前記パケットを前記ネットワークインタフェースカードを介して前記第二プロセッサへ転送する、
サーバ装置。
【請求項２】
前記パケットは、送信先ＭＡＣアドレスとして前記第一プロセッサの第一ＭＡＣアドレスを含み、
前記第一プロセッサは、前記パケットの前記送信先ＭＡＣアドレスを、前記第一ＭＡＣアドレスから、前記第二プロセッサの第二ＭＡＣアドレスに付け替える、
請求項１に記載のサーバ装置。
【請求項３】
前記パケットは、送信元ＭＡＣアドレスとして前記他のサーバ装置の第三ＭＡＣアドレスを含み、
前記第一プロセッサは、前記パケットの前記送信元ＭＡＣアドレスを、前記第三ＭＡＣアドレスから、前記第一プロセッサの第一ＭＡＣアドレスに付け替える、
請求項１に記載のサーバ装置。
【請求項４】
前記第二プロセッサは、前記第一プロセッサが停止しているときに、前記ＡＲＰリプライを前記ネットワークインタフェースカードを介して前記他のサーバ装置へ送信する、
請求項１に記載のサーバ装置。
【請求項５】
前記第一プロセッサは、
前記第一プロセッサから転送された前記パケットを受信した前記第二プロセッサから送信された受信応答であって、前記第一通信路におけるウィンドサイズとして第一ウィンドサイズを含む前記受信応答を前記ネットワークインタフェースカードを介して受信し、
前記第一通信路における通信量が閾値以上のときは、受信した前記受信応答に含まれる前記ウィンドサイズを、前記第一ウィンドサイズより小さい第二ウィンドサイズに変更する、
請求項１に記載のサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、サーバ装置に関する。
【背景技術】
【０００２】
オペレーティングシステムを実行する第一プロセッサと、自装置を管理するプログラム（以下では「管理プログラム」と呼ぶことがある）を実行する第二プロセッサとの２つのプロセッサを有するサーバ装置が知られている。オペレーティングシステムの一例としてLinux（登録商標）が挙げられ、管理プログラムの一例としてＢＭＣ（Base  Management  Controller）が挙げられる。このような第一プロセッサ及び第二プロセッサの２つのプロセッサを有するサーバ装置では、第一プロセッサ及び第二プロセッサは、自装置が有するネットワークインタフェースカード（ＮＩＣ：Network  Interface  Card）を共用して他のサーバ装置と通信する。例えば、自装置のＮＩＣと他のサーバ装置とはイーサネット（登録商標）で接続され、自装置においてＮＩＣと第二プロセッサとはＮＣＳＩ（Network  Controller  Sideband  Interface）で接続される。
【０００３】
以下では、自装置のＮＩＣと他のサーバ装置とを接続する通信路を「第一通信路」と呼び、第一通信路の通信帯域を「第一通信帯域」と呼ぶことがある。また、自装置においてＮＩＣと第一プロセッサとを接続する通信路を「第二通信路」と呼び、第二通信路の通信帯域を「第二通信帯域」と呼ぶことがある。また、自装置においてＮＩＣと第二プロセッサとを接続する通信路を「第三通信路」と呼び、第三通信路の通信帯域を「第三通信帯域」と呼ぶことがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−０７４７０５号公報
【特許文献２】特開２００８−０９２４６５号公報
【特許文献３】特開２００８−１０９３５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、一般に、第二通信帯域は第一通信帯域より大きいのに対し、第三通信帯域は第一通信帯域より小さい。例えば、第一通信帯域が１Gbpsであるのに対し、第二通信帯域は１Gbpsより大きく、第三通信帯域は１００Mbps以下である。このように、第三通信帯域は第一通信帯域より小さい（例えば、第一通信帯域の１０分の１以下である）ため、他のサーバ装置から自装置の第二プロセッサへ大量のパケットが連続して送信されると、第一通信路と第三通信路との間に存在するＮＩＣが有するバッファにおいて第一通信帯域の大きさと第三通信帯域の大きさとの差を吸収しきれなくなってパケットロスが生じてしまう。
【０００６】
なお、自装置の第一プロセッサから他のサーバ装置へのパケットの送信時には、一般に、ＮＩＣが有するバッファの状態を監視しながら、第二通信路から第一通信路へ流入するパケットに対するフロー制御を行うことによりパケットロスを防止している。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、パケットロスを防ぐことを目的とする。
【課題を解決するための手段】
【０００８】
開示の態様では、サーバ装置は、ネットワークインタフェースカードと、第一プロセッサと、第二プロセッサとを有する。前記ネットワークインタフェースカードは、第一通信帯域を有する第一通信路で他のサーバ装置と接続されている。前記第一プロセッサは、前記第一通信帯域より大きい第二通信帯域を有する第二通信路で前記ネットワークインタフェースカードと接続されている。前記第二プロセッサは、前記第一通信帯域より小さい第三通信帯域を有する第三通信路で前記ネットワークインタフェースカードと接続されている。そして、前記第一プロセッサは、前記他のサーバ装置から送信されたＡＲＰリクエストを前記ネットワークインタフェースカードを介して受信し、受信した前記ＡＲＰリクエストに対するＡＲＰリプライを前記ネットワークインタフェースカードを介して前記第二プロセッサの代わりに前記他のサーバ装置へ送信する。また、前記第一プロセッサは、前記ＡＲＰリプライに応じて前記他のサーバ装置から送信されたパケットを前記ネットワークインタフェースカードを介して受信し、受信した前記パケットを前記ネットワークインタフェースカードを介して前記第二プロセッサへ転送する。
【発明の効果】
【０００９】
開示の態様によれば、パケットロスを防ぐことができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１のネットワークシステムの構成例を示す図である。
【図２】図２は、実施例１のネットワークシステムの処理シーケンスの一例を示す図である。
【図３】図３は、実施例１のパケットの一例を示す図である。
【図４】図４は、実施例１のパケットの一例を示す図である。
【図５】図５は、実施例１のパケットの一例を示す図である。
【図６】図６は、実施例１のパケットの一例を示す図である。
【図７】図７は、実施例１のパケットの一例を示す図である。
【図８】図８は、実施例１のパケットの一例を示す図である。
【図９】図９は、実施例１のパケットの一例を示す図である。
【図１０】図１０は、実施例２のネットワークシステムの処理シーケンスの一例を示す図である。
【図１１】図１１は、実施例２のパケットの一例を示す図である。
【図１２】図１２は、実施例３のネットワークシステムの処理シーケンスの一例を示す図である。
【図１３】図１３は、実施例３のパケットの一例を示す図である。
【図１４】図１４は、実施例３のパケットの一例を示す図である。
【図１５】図１５は、実施例３のパケットの一例を示す図である。
【図１６】図１６は、実施例４のネットワークシステムの処理シーケンスの一例を示す図である。
【図１７】図１７は、実施例４のパケットの一例を示す図である。
【図１８】図１８は、実施例４のパケットの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するサーバ装置の実施例を図面に基づいて説明する。なお、この実施例により本願の開示するサーバ装置が限定されるものではない。また、実施例において同一の機能を有する構成には同一の符号を付す。
【００１２】
［実施例１］
＜ネットワークシステムの構成＞
図１は、実施例１のネットワークシステムの構成例を示す図である。図１において、ネットワークシステム１は、第一サーバ装置１０と、第二サーバ装置２０とを有する。第一サーバ装置１０は、ＮＩＣ１５と、第一プロセッサＰ１と、第一メモリＭ１と、第二プロセッサＰ２と、第二メモリＭ２とを有する。第一プロセッサＰ１はオペレーティングシステムを実行し、第二プロセッサＰ２は管理プログラムを実行する。オペレーティングシステムの一例としてLinux（登録商標）が挙げられ、管理プログラムの一例としてＢＭＣが挙げられる。第一メモリＭ１は、第一プロセッサＰ１によって使用されるメモリであり、第二メモリＭ２は、第二プロセッサＰ２によって使用されるメモリである。第二サーバ装置２０は、自装置である第一サーバ装置１０に対する他のサーバ装置の一例である。
【００１３】
ＮＩＣ１５と第二サーバ装置２０とは、第一通信帯域Ｂ１を有する第一通信路Ｃ１によって接続されている。ＮＩＣ１５と第一プロセッサＰ１とは、第二通信帯域Ｂ２を有する第二通信路Ｃ２によって接続されている。ＮＩＣ１５と第二プロセッサＰ２とは、第三通信帯域Ｂ３を有する第三通信路Ｃ３によって接続されている。例えば、ＮＩＣ１５と第二サーバ装置２０とはイーサネット（登録商標）で接続され、ＮＩＣ１５と第二プロセッサＰ２とはＮＣＳＩで接続される。また、第二通信帯域Ｂ２は第一通信帯域Ｂ１より大きいのに対し、第三通信帯域Ｂ３は第一通信帯域Ｂ１より小さい。例えば、第一通信帯域Ｂ１が１Gbpsであるのに対し、第二通信帯域Ｂ２は１Gbpsより大きく、第三通信帯域Ｂ３は１００Mbps以下である。
【００１４】
＜ネットワークシステムの処理＞
図２は、実施例１のネットワークシステムの処理シーケンスの一例を示す図であり、図３〜図９は、実施例１のパケットの一例を示す図である。図２において、括弧内の「Ｂ」はブロードキャスト通信を示し、括弧内の「Ｕ」はユニキャスト通信を示す。
【００１５】
また、以下では、第二サーバ装置２０のＭＡＣアドレスを「MAC-X」、第二サーバ装置２０のＩＰアドレスを「IP-X」、第一プロセッサＰ１のＭＡＣアドレスを「MAC-main」、第一プロセッサＰ１のＩＰアドレスを「IP-main」、第二プロセッサＰ２のＭＡＣアドレスを「MAC-bmc」、第二プロセッサＰ２のＩＰアドレスを「IP-bmc」として説明する。
【００１６】
図２において、ステップＳ１０１では、第二プロセッサＰ２宛てにユーザデータパケットを送信したい第二サーバ装置２０は、図３に示すＡＲＰ（Address  Resolution  Protocol）リクエスト（Ｂ）０１をブロードキャストで送信する。ＡＲＰリクエスト（Ｂ）０１は、第一通信路Ｃ１、ＮＩＣ１５及び第二通信路Ｃ２を介して第一プロセッサＰ１によって受信されるとともに（ステップＳ１０１，Ｓ１０３）、第一通信路Ｃ１、ＮＩＣ１５及び第三通信路Ｃ３を介して第二プロセッサＰ２によって受信される（ステップＳ１０１，Ｓ１０５）。第二サーバ装置２０から送信されるＡＲＰリクエスト（Ｂ）０１は、ブロードキャストで第二プロセッサＰ２に到達することを意図したものである。このため、ＡＲＰリクエスト（Ｂ）０１は、図３に示すように、送信先ＭＡＣアドレス「FF:FF:FF:FF:FF:FF」と、送信元ＭＡＣアドレス「MAC-X」と、送信先ＩＰアドレス「IP-bmc」と、送信元ＩＰアドレス「IP-X」と、パケットタイプ「ＡＲＰリクエスト」とを含む。
【００１７】
次いで、ステップＳ１０７では、ステップＳ１０３でＡＲＰリクエスト（Ｂ）０１を受信した第一プロセッサＰ１は、第二プロセッサＰ２の代わりに、ＡＲＰリクエスト（Ｂ）０１に対して、図４に示すＡＲＰリプライ（Ｕ）０１をユニキャストで第二サーバ装置２０へ送信する。ＡＲＰリプライ（Ｕ）０１は、第二通信路Ｃ２、ＮＩＣ１５及び第一通信路Ｃ１を介して第二サーバ装置２０によって受信される（ステップＳ１０７，Ｓ１０９）。第一プロセッサＰ１から送信されるＡＲＰリプライ（Ｕ）０１は、ＡＲＰリクエスト（Ｂ）０１に対するリプライであり、また、ユニキャストで第二サーバ装置２０に到達することを意図したものである。このため、ＡＲＰリプライ（Ｕ）０１は、図４に示すように、送信先ＭＡＣアドレス「MAC-X」と、送信元ＭＡＣアドレス「MAC-main」と、送信先ＩＰアドレス「IP-X」と、送信元ＩＰアドレス「IP-bmc」と、パケットタイプ「ＡＲＰリプライ」とを含む。IP-bmcは予め第一メモリＭ１に記憶されており、第一プロセッサＰ１は、第一メモリＭ１からIP-bmcを取得してＡＲＰリプライ（Ｕ）０１の送信元ＩＰアドレスにセットする。
【００１８】
また、ステップＳ１１１では、ステップＳ１０７でＡＲＰリプライ（Ｕ）０１を送信した第一プロセッサＰ１は、ＡＲＰリクエスト（Ｂ）０１に対するＡＲＰリプライを第二プロセッサＰ２の代わりに第一プロセッサＰ１が第二サーバ装置２０へ送信したことを第二プロセッサＰ２に通知するために、図５に示すＡＲＰリプライ（Ｂ）０１をブロードキャストで送信する。ＡＲＰリプライ（Ｂ）０１は、図５に示すように、送信先ＭＡＣアドレス「FF:FF:FF:FF:FF:FF」と、送信元ＭＡＣアドレス「MAC-main」と、送信先ＩＰアドレス「FF:FF:FF:FF:FF:FF」と、送信元ＩＰアドレス「IP-bmc」と、パケットタイプ「ＡＲＰリプライ」とを含む。ＡＲＰリプライ（Ｂ）０１は、第二通信路Ｃ２、ＮＩＣ１５及び第三通信路Ｃ３を介して第二プロセッサＰ２によって受信されるとともに（ステップＳ１１１，Ｓ１１３）、第二通信路Ｃ２、ＮＩＣ１５及び第一通信路Ｃ１を介して第二サーバ装置２０によって受信される（ステップＳ１１１，Ｓ１１５）。第二プロセッサＰ２は、受信したＡＲＰリプライ（Ｂ）０１の送信元ＩＰアドレスに「IP-bmc」がセットされていることを検出することにより、ＡＲＰリクエスト（Ｂ）０１に対するＡＲＰリプライを、第二プロセッサＰ２の代わりに第一プロセッサＰ１が第二サーバ装置２０へ送信したことを認識する。
【００１９】
ステップＳ１０９でＡＲＰリプライ（Ｕ）０１を受信した第二サーバ装置２０は、ステップＳ１１７において、第二プロセッサＰ２宛てのユーザデータパケット（Ｕ）０１（図６）をユニキャストで送信する。第二サーバ装置２０は、ステップＳ１０９で受信したＡＲＰリプライ（Ｕ）０１の送信元ＭＡＣアドレスが「MAC-main」であったため、図６に示すように、ユーザデータパケット（Ｕ）０１の送信先ＭＡＣアドレスに「MAC-main」をセットする。よって、ユーザデータパケット（Ｕ）０１は、図６に示すように、送信先ＭＡＣアドレス「MAC-main」と、送信元ＭＡＣアドレス「MAC-X」と、送信先ＩＰアドレス「IP-bmc」と、送信元ＩＰアドレス「IP-X」と、パケットタイプ「ユーザデータ」とを含む。また、ユーザデータパケット（Ｕ）０１は、ユーザデータを含む（図示省略）。送信先ＭＡＣアドレスが「MAC-main」であるため、ユーザデータパケット（Ｕ）０１は、第一通信路Ｃ１、ＮＩＣ１５及び第二通信路Ｃ２を介して第一プロセッサＰ１によって受信される（ステップＳ１１７，Ｓ１１９）。
【００２０】
ステップＳ１１９でユーザデータパケット（Ｕ）０１を受信した第一プロセッサＰ１は、ユーザデータパケット（Ｕ）０１を第一メモリＭ１に一旦記憶することにより、第一メモリＭ１をユーザデータパケット（Ｕ）０１のＦＩＦＯ（First-In  First-Out）バッファとして利用する。
【００２１】
次いで、ステップＳ１２１では、第一プロセッサＰ１は、第一メモリＭ１からユーザデータパケット（Ｕ）０１を取得し、取得したユーザデータパケット（Ｕ）０１を第二プロセッサＰ２宛てに送信するために、ユーザデータパケット（Ｕ）０１の送信先ＭＡＣアドレス及び送信元ＭＡＣアドレスを付け替える。第一プロセッサＰ１は、送信先ＭＡＣアドレスを「MAC-main」から「MAC-bmc」に付け替え、送信元ＭＡＣアドレスを「MAC-X」から「MAC-main」に付け替える。よって、ステップＳ１２１でのＭＡＣアドレス付け替え後のユーザデータパケット（Ｕ）０３は、図７に示すように、送信先ＭＡＣアドレス「MAC-bmc」と、送信元ＭＡＣアドレス「MAC-main」と、送信先ＩＰアドレス「IP-bmc」と、送信元ＩＰアドレス「IP-X」と、パケットタイプ「ユーザデータ」とを含む。また、ユーザデータパケット（Ｕ）０１とユーザデータパケット（Ｕ）０３とでは、ＭＡＣアドレスが付け替えられただけで、ユーザデータの内容は同一である。
【００２２】
次いで、ステップＳ１２３では、第一プロセッサＰ１は、ユーザデータパケット（Ｕ）０３をユニキャストで第二プロセッサＰ２へ送信する。ユーザデータパケット（Ｕ）０３は、第二通信路Ｃ２、ＮＩＣ１５及び第三通信路Ｃ３を介して第二プロセッサＰ２によって受信され、第二メモリＭ２に保存される（ステップＳ１２３，Ｓ１２５）。
【００２３】
このように、第二サーバ装置２０から送信された第二プロセッサＰ２宛てのユーザデータパケット（Ｕ）０１を第二プロセッサＰ２の代わりに第一プロセッサＰ１が受信する。そして、第一プロセッサＰ１は、受信したユーザデータパケット（Ｕ）０１を第一メモリＭ１に一旦バッファリングしてから第二プロセッサＰ２へ転送する。これにより、第三通信路Ｃ３におけるパケットの流量を調節することができるため、第一通信帯域Ｂ１の大きさと第三通信帯域Ｂ３の大きさとの差を吸収して、第一通信帯域Ｂ１の大きさと第三通信帯域Ｂ３大きさとの差に起因して発生するパケットロスを防止することができる。
【００２４】
次いで、ステップＳ１２７では、ステップＳ１２５でユーザデータパケット（Ｕ）０３を受信した第二プロセッサＰ２は、ユーザデータパケット（Ｕ）０３に対して、図８に示す受信応答であるＡＣＫパケット（Ｕ）０１をユニキャストで、ユーザデータパケット（Ｕ）０３の送信元である第一プロセッサＰ１へ送信する。ＡＣＫパケット（Ｕ）０１は、第三通信路Ｃ３、ＮＩＣ１５及び第二通信路Ｃ２を介して第一プロセッサＰ１によって受信される（ステップＳ１２７，Ｓ１２９）。第二プロセッサＰ２から送信されるＡＣＫパケット（Ｕ）０１は、図８に示すように、送信先ＭＡＣアドレス「MAC-main」と、送信元ＭＡＣアドレス「MAC-bmc」と、送信先ＩＰアドレス「IP-X」と、送信元ＩＰアドレス「IP-bmc」と、パケットタイプ「ＡＣＫ」とを含む。
【００２５】
次いで、ステップＳ１３１では、第一プロセッサＰ１は、受信したＡＣＫパケット（Ｕ）０１を第二サーバ装置２０宛てに送信するために、ＡＣＫパケット（Ｕ）０１の送信先ＭＡＣアドレス及び送信元ＭＡＣアドレスを付け替える。第一プロセッサＰ１は、送信先ＭＡＣアドレスを「MAC-main」から「MAC-X」に付け替え、送信元ＭＡＣアドレスを「MAC-bmc」から「MAC-main」に付け替える。よって、ステップＳ１３１でのＭＡＣアドレス付け替え後のＡＣＫパケット（Ｕ）０３は、図９に示すように、送信先ＭＡＣアドレス「MAC-X」と、送信元ＭＡＣアドレス「MAC-main」と、送信先ＩＰアドレス「IP-X」と、送信元ＩＰアドレス「IP-bmc」と、パケットタイプ「ＡＣＫ」とを含む。
【００２６】
次いで、ステップＳ１３３では、第一プロセッサＰ１は、ＡＣＫパケット（Ｕ）０３をユニキャストで第二サーバ装置２０へ送信する。ＡＣＫパケット（Ｕ）０３は、第二通信路Ｃ２、ＮＩＣ１５及び第一通信路Ｃ１を介して第二サーバ装置２０によって受信される（ステップＳ１３３，Ｓ１３５）。
【００２７】
以上のように、実施例１では、第一サーバ装置１０は、ＮＩＣ１５と、第一プロセッサＰ１と、第二プロセッサＰ２とを有する。ＮＩＣ１５は、第一通信帯域Ｂ１を有する第一通信路Ｃ１で第二サーバ装置２０と接続されている。第一プロセッサＰ１は、第一通信帯域Ｂ１より大きい第二通信帯域Ｂ２を有する第二通信路Ｃ２でＮＩＣ１５と接続されている。第二プロセッサＰ２は、第一通信帯域Ｂ１より小さい第三通信帯域Ｂ３を有する第三通信路Ｃ３でＮＩＣ１５と接続されている。そして、第一プロセッサＰ１は、第二サーバ装置２０から送信されたＡＲＰリクエストをＮＩＣ１５を介して受信し、受信したＡＲＰリクエストに対するＡＲＰリプライをＮＩＣ１５を介して第二プロセッサＰ２の代わりに第二サーバ装置２０へ送信する。また、第一プロセッサＰ１は、ＡＲＰリプライに応じて第二サーバ装置２０から送信されたユーザデータパケットをＮＩＣ１５を介して受信し、受信したユーザデータパケットをＮＩＣ１５を介して第二プロセッサＰ２へ転送する。
【００２８】
こうすることで、第二プロセッサＰ２は、第三通信路Ｃ３におけるパケットの流量を調節することが可能になるため、第一通信帯域Ｂ１の大きさと第三通信帯域Ｂ３の大きさとの差を吸収することができるので、パケットロスを防止することができる。
【００２９】
また、実施例１では、ユーザデータパケットは、送信先ＭＡＣアドレスとして第一プロセッサＰ１のＭＡＣアドレスである「MAC-main」を含む。そして、第一プロセッサＰ１は、ユーザデータパケットの送信先ＭＡＣアドレスを「MAC-main」から、第二プロセッサＰ２のＭＡＣアドレスである「MAC-bmc」に付け替える。
【００３０】
こうすることで、第一プロセッサＰ１は、第一プロセッサＰ１宛てに送信されたユーザデータパケットを第二プロセッサＰ２宛てに転送することができる。
【００３１】
また、実施例１では、ユーザデータパケットは、送信元ＭＡＣアドレスとして第二サーバ装置２０のＭＡＣアドレスである「MAC-X」を含む。そして、第一プロセッサＰ１は、ユーザデータパケットの送信元ＭＡＣアドレスを「MAC-X」から、第一プロセッサＰ１のＭＡＣアドレスである「MAC-main」に付け替える。
【００３２】
こうすることで、第一プロセッサＰ１は、受信したユーザデータパケットを第二プロセッサＰ２宛てに転送するにあたって、ユーザデータパケットも転送元が第一プロセッサＰ１であることを第二プロセッサＰ２に認識させることができる。
【００３３】
以上、実施例１について説明した。
【００３４】
［実施例２］
＜ネットワークシステムの処理＞
図１０は、実施例２のネットワークシステムの処理シーケンスの一例を示す図であり、図１１は、実施例２のパケットの一例を示す図である。図２と同様に、図１０において、括弧内の「Ｂ」はブロードキャスト通信を示し、括弧内の「Ｕ」はユニキャスト通信を示す。以下、実施例１と異なる点について説明する。
【００３５】
図１０において、ステップＳ２０１では、ステップＳ１０７でＡＲＰリプライ（Ｕ）０１を送信した第一プロセッサＰ１は、ＡＲＰリクエスト（Ｂ）０１に対するＡＲＰリプライを第二プロセッサＰ２の代わりに第一プロセッサＰ１が第二サーバ装置２０へ送信したことを第二プロセッサＰ２に通知するために、図１１に示すＡＲＰリプライ（Ｕ）０３をユニキャストで第二プロセッサＰ２へ送信する。ＡＲＰリプライ（Ｕ）０３は、図１１に示すように、送信先ＭＡＣアドレス「MAC-bmc」と、送信元ＭＡＣアドレス「MAC-main」と、送信先ＩＰアドレス「IP-bmc」と、送信元ＩＰアドレス「IP-bmc」と、パケットタイプ「ＡＲＰリプライ」とを含む。ＡＲＰリプライ（Ｕ）０３は、第二通信路Ｃ２、ＮＩＣ１５及び第三通信路Ｃ３を介して第二プロセッサＰ２によって受信される（ステップＳ２０１，Ｓ２０３）。第二プロセッサＰ２は、受信したＡＲＰリプライ（Ｕ）０３の送信元ＩＰアドレスに「IP-bmc」がセットされていることを検出することにより、ＡＲＰリクエスト（Ｂ）０１に対するＡＲＰリプライを第二プロセッサＰ２の代わりに第一プロセッサＰ１が第二サーバ装置２０へ送信したことを認識する。
【００３６】
このように、第一プロセッサＰ１が、ＡＲＰリプライ（Ｂ）０１の送信（図２のステップＳ１０７）に代えてＡＲＰリプライ（Ｕ）０３を送信しても（図１０のステップＳ２０１）、実施例１と同様の効果を得ることができる。
【００３７】
以上、実施例２について説明した。
【００３８】
［実施例３］
＜ネットワークシステムの処理＞
図１２は、実施例３のネットワークシステムの処理シーケンスの一例を示す図であり、図１３〜図１５は、実施例３のパケットの一例を示す図である。図２と同様に、図１２において、括弧内の「Ｂ」はブロードキャスト通信を示し、括弧内の「Ｕ」はユニキャスト通信を示す。以下、実施例１と異なる点について説明する。
【００３９】
図１２において、第二プロセッサＰ２は、ステップＳ１０５でＡＲＰリクエスト（Ｂ）０１を受信したときに、ステップＳ３０１において、所定の時間を計時するタイマＴＭを起動する。
【００４０】
次いで、ステップＳ３０３では、第二プロセッサＰ２は、ステップＳ１０５でのＡＲＰリクエスト（Ｂ）０１の受信後にＡＲＰリプライを受信したか否かを判定する。第二プロセッサＰ２がＡＲＰリプライを受信しているときは（ステップＳ３０３：Ｙｅｓ）、処理はステップＳ１１７（図２）へ進む。
【００４１】
一方で、第二プロセッサＰ２がＡＲＰリプライを受信していないときは（ステップＳ３０３：Ｎｏ）、ステップＳ３０５において、第二プロセッサＰ２は、タイマＴＭが満了したか否かを判定する。タイマＴＭが満了していないときは（ステップＳ３０５：Ｎｏ）、処理はステップＳ３０３に戻る。
【００４２】
一方で、タイマＴＭが満了しているとき、つまり、第二プロセッサＰ２がＡＲＰリクエスト（Ｂ）０１を受信してから所定の時間内にＡＲＰリプライを受信しないときは（ステップＳ３０５：Ｙｅｓ）、第二プロセッサＰ２は、ＡＲＰリクエスト（Ｂ）０１に対するＡＲＰリプライを第二プロセッサＰ２の代わりに送信することになっている第一プロセッサＰ１が、例えば故障等により停止しているために、ＡＲＰリプライを送信できなくなっていると判定する。そこで、タイマＴＭが満了しているときは（ステップＳ３０５：Ｙｅｓ）、ステップＳ３０７において、第二プロセッサＰ２は、ＡＲＰリクエスト（Ｂ）０１に対して、図１３に示すＡＲＰリプライ（Ｂ）０３をブロードキャストで送信する。ＡＲＰリプライ（Ｂ）０３は、第三通信路Ｃ３、ＮＩＣ１５及び第二通信路Ｃ２を介して第一プロセッサＰ１に到達するとともに（ステップＳ３０７，Ｓ３０９）、第三通信路Ｃ３、ＮＩＣ１５及び第一通信路Ｃ１を介して第二サーバ装置２０によって受信される（ステップＳ３０７，Ｓ３１１）。ＡＲＰリプライ（Ｂ）０３は、図１３に示すように、送信先ＭＡＣアドレス「FF:FF:FF:FF:FF:FF」と、送信元ＭＡＣアドレス「MAC-bmc」と、送信先ＩＰアドレス「FF:FF:FF:FF:FF:FF」と、送信元ＩＰアドレス「IP-bmc」と、パケットタイプ「ＡＲＰリプライ」とを含む。
【００４３】
ステップＳ３１１でＡＲＰリプライ（Ｂ）０３を受信した第二サーバ装置２０は、ステップＳ３１３において、第二プロセッサＰ２宛てのユーザデータパケット（Ｕ）０５（図１４）をユニキャストで送信する。第二サーバ装置２０は、ステップＳ３１１で受信したＡＲＰリプライ（Ｂ）０３の送信元ＭＡＣアドレスが「MAC-bmc」であったため、図１４に示すように、ユーザデータパケット（Ｕ）０５の送信先ＭＡＣアドレスに「MAC-bmc」をセットする。よって、ユーザデータパケット（Ｕ）０５は、図１４に示すように、送信先ＭＡＣアドレス「MAC-bmc」と、送信元ＭＡＣアドレス「MAC-X」と、送信先ＩＰアドレス「IP-bmc」と、送信元ＩＰアドレス「IP-X」と、パケットタイプ「ユーザデータ」とを含む。また、ユーザデータパケット（Ｕ）０５は、ユーザデータを含む（図示省略）。送信先ＭＡＣアドレスが「MAC-bmc」であるため、ユーザデータパケット（Ｕ）０５は、第一通信路Ｃ１、ＮＩＣ１５及び第三通信路Ｃ３を介して第二プロセッサＰ２によって受信される（ステップＳ３１３，Ｓ３１５）。
【００４４】
次いで、ステップＳ３１７は、ステップＳ３１５でユーザデータパケット（Ｕ）０５を受信した第二プロセッサＰ２は、ユーザデータパケット（Ｕ）０５に対して、図１５に示す受信応答であるＡＣＫパケット（Ｕ）０５をユニキャストで第二サーバ装置２０へ送信する。ＡＣＫパケット（Ｕ）０５は、第三通信路Ｃ３、ＮＩＣ１５及び第一通信路Ｃ１を介して第二サーバ装置２０によって受信される（ステップＳ３１７，Ｓ３１９）。第二プロセッサＰ２から送信されるＡＣＫパケット（Ｕ）０５は、図１５に示すように、送信先ＭＡＣアドレス「MAC-X」と、送信元ＭＡＣアドレス「MAC-bmc」と、送信先ＩＰアドレス「IP-X」と、送信元ＩＰアドレス「IP-bmc」と、パケットタイプ「ＡＣＫ」とを含む。
【００４５】
以上のように、実施例３では、第二プロセッサＰ２は、第一プロセッサＰ１が停止しているときに、ＡＲＰリプライをＮＩＣ１５を介して第二サーバ装置２０へ送信する。
【００４６】
こうすることで、第二プロセッサＰ２は、第一プロセッサＰ１が停止していて第二プロセッサ宛てのユーザデータパケットを第一プロセッサＰ１が第二プロセッサＰ２へ転送できない場合でも、第二プロセッサＰ２宛てのユーザデータパケットを第二サーバ装置２０から直接受信することができる。
【００４７】
なお、上記説明では、第二プロセッサＰ２は、所定時間内でのＡＲＰリプライの受信の有無により、第一プロセッサＰ１が停止しているか否かを判定した。しかし、第二プロセッサＰ２は、第一プロセッサＰ１の動作を直接監視して第一プロセッサＰ１が停止しているか否かを判定しても良い。
【００４８】
以上、実施例３について説明した。
【００４９】
［実施例４］
＜ネットワークシステムの処理＞
図１６は、実施例４のネットワークシステムの処理シーケンスの一例を示す図であり、図１７及び図１８は、実施例４のパケットの一例を示す図である。図２と同様に、図１６において、括弧内の「Ｂ」はブロードキャスト通信を示し、括弧内の「Ｕ」はユニキャスト通信を示す。以下、実施例１と異なる点について説明する。
【００５０】
図１６において、ステップＳ１２９で第一プロセッサＰ１が受信するＡＣＫパケット（Ｕ）０１には、図１７に示すように、図８に示す各項目に加えて、ウィンドサイズ「ｗ１」が含まれている。ここで、第二プロセッサＰ２から第二サーバ装置２０宛てに送信されるＡＣＫパケットに含まれるウィンドサイズは、ＡＣＫの送信元である第二プロセッサＰ２からのＡＣＫを待たずに第二サーバ装置２０が第二プロセッサＰ２宛てに連続して送信可能なデータ量を示す。よって、ウィンドサイズが大きくなるほど、第二サーバ装置２０から第二プロセッサＰ２宛てに送信されるユーザデータパケットによる第一通信帯域Ｂ１及び第二通信帯域Ｂ２の単位時間あたりの消費量がより大きくなる。
【００５１】
ステップＳ１３１では、第一プロセッサＰ１は、受信したＡＣＫパケット（Ｕ）０１を第二サーバ装置２０宛てに送信するために、実施例１と同様に、ＡＣＫパケット（Ｕ）０１の送信先ＭＡＣアドレス及び送信元ＭＡＣアドレスを付け替える。
【００５２】
さらに、第一プロセッサＰ１は、第一通信路Ｃ１における通信量が閾値ＴＨ以上のときに、ステップＳ４０１において、ＡＣＫパケット（Ｕ）０１のウィンドサイズを「ｗ１」から「ｗ２」に変更する（ｗ２＜ｗ１）。よって、ステップＳ４０１でのウィンドサイズ変更後のＡＣＫパケット（Ｕ）０７は、図１８に示すように、送信先ＭＡＣアドレス「MAC-X」と、送信元ＭＡＣアドレス「MAC-main」と、送信先ＩＰアドレス「IP-X」と、送信元ＩＰアドレス「IP-bmc」と、パケットタイプ「ＡＣＫ」と、ウィンドサイズ「ｗ２」とを含む。
【００５３】
なお、第一プロセッサＰ１は、第一通信路Ｃ１における通信量が閾値ＴＨ未満のときは、ＡＣＫパケット（Ｕ）０１のウィンドサイズを変更しない。
【００５４】
次いで、ステップＳ４０３では、第一プロセッサＰ１は、ＡＣＫパケット（Ｕ）０７をユニキャストで第二サーバ装置２０へ送信する。ＡＣＫパケット（Ｕ）０７は、第二通信路Ｃ２、ＮＩＣ１５及び第一通信路Ｃ１を介して第二サーバ装置２０によって受信される（ステップＳ４０３，Ｓ４０５）。
【００５５】
以上のように、実施例４では、第一プロセッサＰ１は、第一プロセッサＰ１から転送されたユーザデータパケットを受信した第二プロセッサＰ２から送信されたＡＣＫパケットをＮＩＣ１５を介して受信する。ＡＣＫパケットには、第一通信路Ｃ１におけるウィンドサイズ「ｗ１」が含まれる。そして、第一プロセッサＰ１は、第一通信路Ｃ１における通信量が閾値ＴＨ以上のときに、ＡＣＫパケットに含まれるウィンドサイズを「ｗ１」から「ｗ２」（ｗ２＜ｗ１）に変更する。
【００５６】
こうすることで、第二サーバ装置２０から第二プロセッサＰ２宛てに送信されるユーザデータパケットによる第一通信帯域Ｂ１及び第二通信帯域Ｂ２の消費量を抑制することができるため、第一通信路Ｃ１及び第二通信路Ｃ２に第一プロセッサＰ１用の通信帯域を確保することができる。
【００５７】
なお、上記の閾値ＴＨは、第一通信路Ｃ１及び第二通信路Ｃ２に確保したい第一プロセッサＰ１用の最低限の通信帯域に基づいて設定されると良い。
【００５８】
以上、実施例４について説明した。
【００５９】
［実施例５］
第一サーバ装置１０での上記説明における各処理の全部または一部は、各処理に対応するプログラムを第一プロセッサＰ１または第二プロセッサＰ２に実行させることによって実現しても良い。例えば、上記説明における各処理に対応するプログラムが第一メモリＭ１、第二メモリＭ２、または、第一サーバ装置１０が有するディスクドライブに記憶され、プログラムが第一プロセッサＰ１または第二プロセッサＰ２によって、第一メモリＭ１、第二メモリＭ２、または、ディスクドライブから読み出されて実行されても良い。また、プログラムは、任意のネットワークを介して第一サーバ装置１０に接続されたプログラムサーバに記憶され、そのプログラムサーバから第一サーバ装置１０にダウンロードされて実行されたり、第一サーバ装置１０が読み取り可能な記録媒体に記憶され、その記録媒体から読み出されて実行されても良い。第一サーバ装置１０が読み取り可能な記録媒体には、例えば、メモリカード、ＵＳＢメモリ、ＳＤカード、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、及び、Ｂｌｕ−ｒａｙ（登録商標）ディスク等の可搬の記憶媒体が含まれる。また、プログラムは、任意の言語や任意の記述方法にて記述されたデータ処理方法であり、ソースコードやバイナリコード等の形式を問わない。また、プログラムは必ずしも単一的に構成されるものに限られず、複数のモジュールや複数のライブラリとして分散構成されるものや、ＯＳに代表される別個のプログラムと協働してその機能を達成するものも含む。
【００６０】
以上、実施例５について説明した。
【符号の説明】
【００６１】
１  ネットワークシステム
１０  第一サーバ装置
１５  ＮＩＣ
Ｐ１  第一プロセッサ
Ｍ１  第一メモリ
Ｐ２  第二プロセッサ
Ｍ２  第二メモリ
２０  第二サーバ装置
【図１】
2020145616.tif 000003
【図２】
2020145616.tif 000004
【図３】
2020145616.tif 000005
【図４】
2020145616.tif 000006
【図５】
2020145616.tif 000007
【図６】
2020145616.tif 000008
【図７】
2020145616.tif 000009
【図８】
2020145616.tif 000010
【図９】
2020145616.tif 000011
【図１０】
2020145616.tif 000012
【図１１】
2020145616.tif 000013
【図１２】
2020145616.tif 000014
【図１３】
2020145616.tif 000015
【図１４】
2020145616.tif 000016
【図１５】
2020145616.tif 000017
【図１６】
2020145616.tif 000018
【図１７】
2020145616.tif 000019
【図１８】
2020145616.tif 000020