(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-26
(45)【発行日】2022-08-03
(54)【発明の名称】サーバ装置
(51)【国際特許分類】
H04L 61/103 20220101AFI20220727BHJP
H04L 12/28 20060101ALI20220727BHJP
【FI】
H04L61/103
H04L12/28 200Z
(21)【出願番号】P 2019041769
(22)【出願日】2019-03-07
【審査請求日】2021-09-16
(73)【特許権者】
【識別番号】000136136
【氏名又は名称】株式会社PFU
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】七野 伸幸
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開2014-241545(JP,A)
【文献】特開2017-187814(JP,A)
【文献】特開2018-157513(JP,A)
【文献】特開2017-163361(JP,A)
【文献】特開2006-50152(JP,A)
【文献】特開2009-88918(JP,A)
【文献】米国特許出願公開第2017/0155573(US,A1)
【文献】中国特許出願公開第107592340(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/28-12/46
H04L 61/103
(57)【特許請求の範囲】
【請求項1】
第一通信帯域を有する第一通信路で他のサーバ装置と接続されたネットワークインタフェースカードと、
前記第一通信帯域より大きい第二通信帯域を有する第二通信路で前記ネットワークインタフェースカードと接続された第一プロセッサと、
前記第一通信帯域より小さい第三通信帯域を有する第三通信路で前記ネットワークインタフェースカードと接続された第二プロセッサと、を有し、
前記第一プロセッサは、
前記他のサーバ装置から送信されたARPリクエストを前記ネットワークインタフェースカードを介して受信し、
受信した前記ARPリクエストに対するARPリプライを前記ネットワークインタフェースカードを介して前記第二プロセッサの代わりに前記他のサーバ装置へ送信し、
前記ARPリプライに応じて前記他のサーバ装置から送信されたパケットを前記ネットワークインタフェースカードを介して受信し、
受信した前記パケットを前記ネットワークインタフェースカードを介して前記第二プロセッサへ転送する、
サーバ装置。
【請求項2】
前記パケットは、送信先MACアドレスとして前記第一プロセッサの第一MACアドレスを含み、
前記第一プロセッサは、前記パケットの前記送信先MACアドレスを、前記第一MACアドレスから、前記第二プロセッサの第二MACアドレスに付け替える、
請求項1に記載のサーバ装置。
【請求項3】
前記パケットは、送信元MACアドレスとして前記他のサーバ装置の第三MACアドレスを含み、
前記第一プロセッサは、前記パケットの前記送信元MACアドレスを、前記第三MACアドレスから、前記第一プロセッサの第一MACアドレスに付け替える、
請求項1に記載のサーバ装置。
【請求項4】
前記第二プロセッサは、前記第一プロセッサが停止しているときに、前記ARPリプライを前記ネットワークインタフェースカードを介して前記他のサーバ装置へ送信する、
請求項1に記載のサーバ装置。
【請求項5】
前記第一プロセッサは、
前記第一プロセッサから転送された前記パケットを受信した前記第二プロセッサから送信された受信応答であって、前記第一通信路におけるウィンドサイズとして第一ウィンドサイズを含む前記受信応答を前記ネットワークインタフェースカードを介して受信し、
前記第一通信路における通信量が閾値以上のときは、受信した前記受信応答に含まれる前記ウィンドサイズを、前記第一ウィンドサイズより小さい第二ウィンドサイズに変更する、
請求項1に記載のサーバ装置。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、サーバ装置に関する。
【背景技術】
【0002】
オペレーティングシステムを実行する第一プロセッサと、自装置を管理するプログラム(以下では「管理プログラム」と呼ぶことがある)を実行する第二プロセッサとの2つのプロセッサを有するサーバ装置が知られている。オペレーティングシステムの一例としてLinux(登録商標)が挙げられ、管理プログラムの一例としてBMC(Base Management Controller)が挙げられる。このような第一プロセッサ及び第二プロセッサの2つのプロセッサを有するサーバ装置では、第一プロセッサ及び第二プロセッサは、自装置が有するネットワークインタフェースカード(NIC:Network Interface Card)を共用して他のサーバ装置と通信する。例えば、自装置のNICと他のサーバ装置とはイーサネット(登録商標)で接続され、自装置においてNICと第二プロセッサとはNCSI(Network Controller Sideband Interface)で接続される。
【0003】
以下では、自装置のNICと他のサーバ装置とを接続する通信路を「第一通信路」と呼び、第一通信路の通信帯域を「第一通信帯域」と呼ぶことがある。また、自装置においてNICと第一プロセッサとを接続する通信路を「第二通信路」と呼び、第二通信路の通信帯域を「第二通信帯域」と呼ぶことがある。また、自装置においてNICと第二プロセッサとを接続する通信路を「第三通信路」と呼び、第三通信路の通信帯域を「第三通信帯域」と呼ぶことがある。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2006-074705号公報
【文献】特開2008-092465号公報
【文献】特開2008-109357号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、一般に、第二通信帯域は第一通信帯域より大きいのに対し、第三通信帯域は第一通信帯域より小さい。例えば、第一通信帯域が1Gbpsであるのに対し、第二通信帯域は1Gbpsより大きく、第三通信帯域は100Mbps以下である。このように、第三通信帯域は第一通信帯域より小さい(例えば、第一通信帯域の10分の1以下である)ため、他のサーバ装置から自装置の第二プロセッサへ大量のパケットが連続して送信されると、第一通信路と第三通信路との間に存在するNICが有するバッファにおいて第一通信帯域の大きさと第三通信帯域の大きさとの差を吸収しきれなくなってパケットロスが生じてしまう。
【0006】
なお、自装置の第一プロセッサから他のサーバ装置へのパケットの送信時には、一般に、NICが有するバッファの状態を監視しながら、第二通信路から第一通信路へ流入するパケットに対するフロー制御を行うことによりパケットロスを防止している。
【0007】
開示の技術は、上記に鑑みてなされたものであって、パケットロスを防ぐことを目的とする。
【課題を解決するための手段】
【0008】
開示の態様では、サーバ装置は、ネットワークインタフェースカードと、第一プロセッサと、第二プロセッサとを有する。前記ネットワークインタフェースカードは、第一通信帯域を有する第一通信路で他のサーバ装置と接続されている。前記第一プロセッサは、前記第一通信帯域より大きい第二通信帯域を有する第二通信路で前記ネットワークインタフェースカードと接続されている。前記第二プロセッサは、前記第一通信帯域より小さい第三通信帯域を有する第三通信路で前記ネットワークインタフェースカードと接続されている。そして、前記第一プロセッサは、前記他のサーバ装置から送信されたARPリクエストを前記ネットワークインタフェースカードを介して受信し、受信した前記ARPリクエストに対するARPリプライを前記ネットワークインタフェースカードを介して前記第二プロセッサの代わりに前記他のサーバ装置へ送信する。また、前記第一プロセッサは、前記ARPリプライに応じて前記他のサーバ装置から送信されたパケットを前記ネットワークインタフェースカードを介して受信し、受信した前記パケットを前記ネットワークインタフェースカードを介して前記第二プロセッサへ転送する。
【発明の効果】
【0009】
開示の態様によれば、パケットロスを防ぐことができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施例1のネットワークシステムの構成例を示す図である。
【
図2】
図2は、実施例1のネットワークシステムの処理シーケンスの一例を示す図である。
【
図3】
図3は、実施例1のパケットの一例を示す図である。
【
図4】
図4は、実施例1のパケットの一例を示す図である。
【
図5】
図5は、実施例1のパケットの一例を示す図である。
【
図6】
図6は、実施例1のパケットの一例を示す図である。
【
図7】
図7は、実施例1のパケットの一例を示す図である。
【
図8】
図8は、実施例1のパケットの一例を示す図である。
【
図9】
図9は、実施例1のパケットの一例を示す図である。
【
図10】
図10は、実施例2のネットワークシステムの処理シーケンスの一例を示す図である。
【
図11】
図11は、実施例2のパケットの一例を示す図である。
【
図12】
図12は、実施例3のネットワークシステムの処理シーケンスの一例を示す図である。
【
図13】
図13は、実施例3のパケットの一例を示す図である。
【
図14】
図14は、実施例3のパケットの一例を示す図である。
【
図15】
図15は、実施例3のパケットの一例を示す図である。
【
図16】
図16は、実施例4のネットワークシステムの処理シーケンスの一例を示す図である。
【
図17】
図17は、実施例4のパケットの一例を示す図である。
【
図18】
図18は、実施例4のパケットの一例を示す図である。
【発明を実施するための形態】
【0011】
以下に、本願の開示するサーバ装置の実施例を図面に基づいて説明する。なお、この実施例により本願の開示するサーバ装置が限定されるものではない。また、実施例において同一の機能を有する構成には同一の符号を付す。
【0012】
[実施例1]
<ネットワークシステムの構成>
図1は、実施例1のネットワークシステムの構成例を示す図である。
図1において、ネットワークシステム1は、第一サーバ装置10と、第二サーバ装置20とを有する。第一サーバ装置10は、NIC15と、第一プロセッサP1と、第一メモリM1と、第二プロセッサP2と、第二メモリM2とを有する。第一プロセッサP1はオペレーティングシステムを実行し、第二プロセッサP2は管理プログラムを実行する。オペレーティングシステムの一例としてLinux(登録商標)が挙げられ、管理プログラムの一例としてBMCが挙げられる。第一メモリM1は、第一プロセッサP1によって使用されるメモリであり、第二メモリM2は、第二プロセッサP2によって使用されるメモリである。第二サーバ装置20は、自装置である第一サーバ装置10に対する他のサーバ装置の一例である。
【0013】
NIC15と第二サーバ装置20とは、第一通信帯域B1を有する第一通信路C1によって接続されている。NIC15と第一プロセッサP1とは、第二通信帯域B2を有する第二通信路C2によって接続されている。NIC15と第二プロセッサP2とは、第三通信帯域B3を有する第三通信路C3によって接続されている。例えば、NIC15と第二サーバ装置20とはイーサネット(登録商標)で接続され、NIC15と第二プロセッサP2とはNCSIで接続される。また、第二通信帯域B2は第一通信帯域B1より大きいのに対し、第三通信帯域B3は第一通信帯域B1より小さい。例えば、第一通信帯域B1が1Gbpsであるのに対し、第二通信帯域B2は1Gbpsより大きく、第三通信帯域B3は100Mbps以下である。
【0014】
<ネットワークシステムの処理>
図2は、実施例1のネットワークシステムの処理シーケンスの一例を示す図であり、
図3~
図9は、実施例1のパケットの一例を示す図である。
図2において、括弧内の「B」はブロードキャスト通信を示し、括弧内の「U」はユニキャスト通信を示す。
【0015】
また、以下では、第二サーバ装置20のMACアドレスを「MAC-X」、第二サーバ装置20のIPアドレスを「IP-X」、第一プロセッサP1のMACアドレスを「MAC-main」、第一プロセッサP1のIPアドレスを「IP-main」、第二プロセッサP2のMACアドレスを「MAC-bmc」、第二プロセッサP2のIPアドレスを「IP-bmc」として説明する。
【0016】
図2において、ステップS101では、第二プロセッサP2宛てにユーザデータパケットを送信したい第二サーバ装置20は、
図3に示すARP(Address Resolution Protocol)リクエスト(B)01をブロードキャストで送信する。ARPリクエスト(B)01は、第一通信路C1、NIC15及び第二通信路C2を介して第一プロセッサP1によって受信されるとともに(ステップS101,S103)、第一通信路C1、NIC15及び第三通信路C3を介して第二プロセッサP2によって受信される(ステップS101,S105)。第二サーバ装置20から送信されるARPリクエスト(B)01は、ブロードキャストで第二プロセッサP2に到達することを意図したものである。このため、ARPリクエスト(B)01は、
図3に示すように、送信先MACアドレス「FF:FF:FF:FF:FF:FF」と、送信元MACアドレス「MAC-X」と、送信先IPアドレス「IP-bmc」と、送信元IPアドレス「IP-X」と、パケットタイプ「ARPリクエスト」とを含む。
【0017】
次いで、ステップS107では、ステップS103でARPリクエスト(B)01を受信した第一プロセッサP1は、第二プロセッサP2の代わりに、ARPリクエスト(B)01に対して、
図4に示すARPリプライ(U)01をユニキャストで第二サーバ装置20へ送信する。ARPリプライ(U)01は、第二通信路C2、NIC15及び第一通信路C1を介して第二サーバ装置20によって受信される(ステップS107,S109)。第一プロセッサP1から送信されるARPリプライ(U)01は、ARPリクエスト(B)01に対するリプライであり、また、ユニキャストで第二サーバ装置20に到達することを意図したものである。このため、ARPリプライ(U)01は、
図4に示すように、送信先MACアドレス「MAC-X」と、送信元MACアドレス「MAC-main」と、送信先IPアドレス「IP-X」と、送信元IPアドレス「IP-bmc」と、パケットタイプ「ARPリプライ」とを含む。IP-bmcは予め第一メモリM1に記憶されており、第一プロセッサP1は、第一メモリM1からIP-bmcを取得してARPリプライ(U)01の送信元IPアドレスにセットする。
【0018】
また、ステップS111では、ステップS107でARPリプライ(U)01を送信した第一プロセッサP1は、ARPリクエスト(B)01に対するARPリプライを第二プロセッサP2の代わりに第一プロセッサP1が第二サーバ装置20へ送信したことを第二プロセッサP2に通知するために、
図5に示すARPリプライ(B)01をブロードキャストで送信する。ARPリプライ(B)01は、
図5に示すように、送信先MACアドレス「FF:FF:FF:FF:FF:FF」と、送信元MACアドレス「MAC-main」と、送信先IPアドレス「FF:FF:FF:FF:FF:FF」と、送信元IPアドレス「IP-bmc」と、パケットタイプ「ARPリプライ」とを含む。ARPリプライ(B)01は、第二通信路C2、NIC15及び第三通信路C3を介して第二プロセッサP2によって受信されるとともに(ステップS111,S113)、第二通信路C2、NIC15及び第一通信路C1を介して第二サーバ装置20によって受信される(ステップS111,S115)。第二プロセッサP2は、受信したARPリプライ(B)01の送信元IPアドレスに「IP-bmc」がセットされていることを検出することにより、ARPリクエスト(B)01に対するARPリプライを、第二プロセッサP2の代わりに第一プロセッサP1が第二サーバ装置20へ送信したことを認識する。
【0019】
ステップS109でARPリプライ(U)01を受信した第二サーバ装置20は、ステップS117において、第二プロセッサP2宛てのユーザデータパケット(U)01(
図6)をユニキャストで送信する。第二サーバ装置20は、ステップS109で受信したARPリプライ(U)01の送信元MACアドレスが「MAC-main」であったため、
図6に示すように、ユーザデータパケット(U)01の送信先MACアドレスに「MAC-main」をセットする。よって、ユーザデータパケット(U)01は、
図6に示すように、送信先MACアドレス「MAC-main」と、送信元MACアドレス「MAC-X」と、送信先IPアドレス「IP-bmc」と、送信元IPアドレス「IP-X」と、パケットタイプ「ユーザデータ」とを含む。また、ユーザデータパケット(U)01は、ユーザデータを含む(図示省略)。送信先MACアドレスが「MAC-main」であるため、ユーザデータパケット(U)01は、第一通信路C1、NIC15及び第二通信路C2を介して第一プロセッサP1によって受信される(ステップS117,S119)。
【0020】
ステップS119でユーザデータパケット(U)01を受信した第一プロセッサP1は、ユーザデータパケット(U)01を第一メモリM1に一旦記憶することにより、第一メモリM1をユーザデータパケット(U)01のFIFO(First-In First-Out)バッファとして利用する。
【0021】
次いで、ステップS121では、第一プロセッサP1は、第一メモリM1からユーザデータパケット(U)01を取得し、取得したユーザデータパケット(U)01を第二プロセッサP2宛てに送信するために、ユーザデータパケット(U)01の送信先MACアドレス及び送信元MACアドレスを付け替える。第一プロセッサP1は、送信先MACアドレスを「MAC-main」から「MAC-bmc」に付け替え、送信元MACアドレスを「MAC-X」から「MAC-main」に付け替える。よって、ステップS121でのMACアドレス付け替え後のユーザデータパケット(U)03は、
図7に示すように、送信先MACアドレス「MAC-bmc」と、送信元MACアドレス「MAC-main」と、送信先IPアドレス「IP-bmc」と、送信元IPアドレス「IP-X」と、パケットタイプ「ユーザデータ」とを含む。また、ユーザデータパケット(U)01とユーザデータパケット(U)03とでは、MACアドレスが付け替えられただけで、ユーザデータの内容は同一である。
【0022】
次いで、ステップS123では、第一プロセッサP1は、ユーザデータパケット(U)03をユニキャストで第二プロセッサP2へ送信する。ユーザデータパケット(U)03は、第二通信路C2、NIC15及び第三通信路C3を介して第二プロセッサP2によって受信され、第二メモリM2に保存される(ステップS123,S125)。
【0023】
このように、第二サーバ装置20から送信された第二プロセッサP2宛てのユーザデータパケット(U)01を第二プロセッサP2の代わりに第一プロセッサP1が受信する。そして、第一プロセッサP1は、受信したユーザデータパケット(U)01を第一メモリM1に一旦バッファリングしてから第二プロセッサP2へ転送する。これにより、第三通信路C3におけるパケットの流量を調節することができるため、第一通信帯域B1の大きさと第三通信帯域B3の大きさとの差を吸収して、第一通信帯域B1の大きさと第三通信帯域B3大きさとの差に起因して発生するパケットロスを防止することができる。
【0024】
次いで、ステップS127では、ステップS125でユーザデータパケット(U)03を受信した第二プロセッサP2は、ユーザデータパケット(U)03に対して、
図8に示す受信応答であるACKパケット(U)01をユニキャストで、ユーザデータパケット(U)03の送信元である第一プロセッサP1へ送信する。ACKパケット(U)01は、第三通信路C3、NIC15及び第二通信路C2を介して第一プロセッサP1によって受信される(ステップS127,S129)。第二プロセッサP2から送信されるACKパケット(U)01は、
図8に示すように、送信先MACアドレス「MAC-main」と、送信元MACアドレス「MAC-bmc」と、送信先IPアドレス「IP-X」と、送信元IPアドレス「IP-bmc」と、パケットタイプ「ACK」とを含む。
【0025】
次いで、ステップS131では、第一プロセッサP1は、受信したACKパケット(U)01を第二サーバ装置20宛てに送信するために、ACKパケット(U)01の送信先MACアドレス及び送信元MACアドレスを付け替える。第一プロセッサP1は、送信先MACアドレスを「MAC-main」から「MAC-X」に付け替え、送信元MACアドレスを「MAC-bmc」から「MAC-main」に付け替える。よって、ステップS131でのMACアドレス付け替え後のACKパケット(U)03は、
図9に示すように、送信先MACアドレス「MAC-X」と、送信元MACアドレス「MAC-main」と、送信先IPアドレス「IP-X」と、送信元IPアドレス「IP-bmc」と、パケットタイプ「ACK」とを含む。
【0026】
次いで、ステップS133では、第一プロセッサP1は、ACKパケット(U)03をユニキャストで第二サーバ装置20へ送信する。ACKパケット(U)03は、第二通信路C2、NIC15及び第一通信路C1を介して第二サーバ装置20によって受信される(ステップS133,S135)。
【0027】
以上のように、実施例1では、第一サーバ装置10は、NIC15と、第一プロセッサP1と、第二プロセッサP2とを有する。NIC15は、第一通信帯域B1を有する第一通信路C1で第二サーバ装置20と接続されている。第一プロセッサP1は、第一通信帯域B1より大きい第二通信帯域B2を有する第二通信路C2でNIC15と接続されている。第二プロセッサP2は、第一通信帯域B1より小さい第三通信帯域B3を有する第三通信路C3でNIC15と接続されている。そして、第一プロセッサP1は、第二サーバ装置20から送信されたARPリクエストをNIC15を介して受信し、受信したARPリクエストに対するARPリプライをNIC15を介して第二プロセッサP2の代わりに第二サーバ装置20へ送信する。また、第一プロセッサP1は、ARPリプライに応じて第二サーバ装置20から送信されたユーザデータパケットをNIC15を介して受信し、受信したユーザデータパケットをNIC15を介して第二プロセッサP2へ転送する。
【0028】
こうすることで、第二プロセッサP2は、第三通信路C3におけるパケットの流量を調節することが可能になるため、第一通信帯域B1の大きさと第三通信帯域B3の大きさとの差を吸収することができるので、パケットロスを防止することができる。
【0029】
また、実施例1では、ユーザデータパケットは、送信先MACアドレスとして第一プロセッサP1のMACアドレスである「MAC-main」を含む。そして、第一プロセッサP1は、ユーザデータパケットの送信先MACアドレスを「MAC-main」から、第二プロセッサP2のMACアドレスである「MAC-bmc」に付け替える。
【0030】
こうすることで、第一プロセッサP1は、第一プロセッサP1宛てに送信されたユーザデータパケットを第二プロセッサP2宛てに転送することができる。
【0031】
また、実施例1では、ユーザデータパケットは、送信元MACアドレスとして第二サーバ装置20のMACアドレスである「MAC-X」を含む。そして、第一プロセッサP1は、ユーザデータパケットの送信元MACアドレスを「MAC-X」から、第一プロセッサP1のMACアドレスである「MAC-main」に付け替える。
【0032】
こうすることで、第一プロセッサP1は、受信したユーザデータパケットを第二プロセッサP2宛てに転送するにあたって、ユーザデータパケットも転送元が第一プロセッサP1であることを第二プロセッサP2に認識させることができる。
【0033】
以上、実施例1について説明した。
【0034】
[実施例2]
<ネットワークシステムの処理>
図10は、実施例2のネットワークシステムの処理シーケンスの一例を示す図であり、
図11は、実施例2のパケットの一例を示す図である。
図2と同様に、
図10において、括弧内の「B」はブロードキャスト通信を示し、括弧内の「U」はユニキャスト通信を示す。以下、実施例1と異なる点について説明する。
【0035】
図10において、ステップS201では、ステップS107でARPリプライ(U)01を送信した第一プロセッサP1は、ARPリクエスト(B)01に対するARPリプライを第二プロセッサP2の代わりに第一プロセッサP1が第二サーバ装置20へ送信したことを第二プロセッサP2に通知するために、
図11に示すARPリプライ(U)03をユニキャストで第二プロセッサP2へ送信する。ARPリプライ(U)03は、
図11に示すように、送信先MACアドレス「MAC-bmc」と、送信元MACアドレス「MAC-main」と、送信先IPアドレス「IP-bmc」と、送信元IPアドレス「IP-bmc」と、パケットタイプ「ARPリプライ」とを含む。ARPリプライ(U)03は、第二通信路C2、NIC15及び第三通信路C3を介して第二プロセッサP2によって受信される(ステップS201,S203)。第二プロセッサP2は、受信したARPリプライ(U)03の送信元IPアドレスに「IP-bmc」がセットされていることを検出することにより、ARPリクエスト(B)01に対するARPリプライを第二プロセッサP2の代わりに第一プロセッサP1が第二サーバ装置20へ送信したことを認識する。
【0036】
このように、第一プロセッサP1が、ARPリプライ(B)01の送信(
図2のステップS107)に代えてARPリプライ(U)03を送信しても(
図10のステップS201)、実施例1と同様の効果を得ることができる。
【0037】
以上、実施例2について説明した。
【0038】
[実施例3]
<ネットワークシステムの処理>
図12は、実施例3のネットワークシステムの処理シーケンスの一例を示す図であり、
図13~
図15は、実施例3のパケットの一例を示す図である。
図2と同様に、
図12において、括弧内の「B」はブロードキャスト通信を示し、括弧内の「U」はユニキャスト通信を示す。以下、実施例1と異なる点について説明する。
【0039】
図12において、第二プロセッサP2は、ステップS105でARPリクエスト(B)01を受信したときに、ステップS301において、所定の時間を計時するタイマTMを起動する。
【0040】
次いで、ステップS303では、第二プロセッサP2は、ステップS105でのARPリクエスト(B)01の受信後にARPリプライを受信したか否かを判定する。第二プロセッサP2がARPリプライを受信しているときは(ステップS303:Yes)、処理はステップS117(
図2)へ進む。
【0041】
一方で、第二プロセッサP2がARPリプライを受信していないときは(ステップS303:No)、ステップS305において、第二プロセッサP2は、タイマTMが満了したか否かを判定する。タイマTMが満了していないときは(ステップS305:No)、処理はステップS303に戻る。
【0042】
一方で、タイマTMが満了しているとき、つまり、第二プロセッサP2がARPリクエスト(B)01を受信してから所定の時間内にARPリプライを受信しないときは(ステップS305:Yes)、第二プロセッサP2は、ARPリクエスト(B)01に対するARPリプライを第二プロセッサP2の代わりに送信することになっている第一プロセッサP1が、例えば故障等により停止しているために、ARPリプライを送信できなくなっていると判定する。そこで、タイマTMが満了しているときは(ステップS305:Yes)、ステップS307において、第二プロセッサP2は、ARPリクエスト(B)01に対して、
図13に示すARPリプライ(B)03をブロードキャストで送信する。ARPリプライ(B)03は、第三通信路C3、NIC15及び第二通信路C2を介して第一プロセッサP1に到達するとともに(ステップS307,S309)、第三通信路C3、NIC15及び第一通信路C1を介して第二サーバ装置20によって受信される(ステップS307,S311)。ARPリプライ(B)03は、
図13に示すように、送信先MACアドレス「FF:FF:FF:FF:FF:FF」と、送信元MACアドレス「MAC-bmc」と、送信先IPアドレス「FF:FF:FF:FF:FF:FF」と、送信元IPアドレス「IP-bmc」と、パケットタイプ「ARPリプライ」とを含む。
【0043】
ステップS311でARPリプライ(B)03を受信した第二サーバ装置20は、ステップS313において、第二プロセッサP2宛てのユーザデータパケット(U)05(
図14)をユニキャストで送信する。第二サーバ装置20は、ステップS311で受信したARPリプライ(B)03の送信元MACアドレスが「MAC-bmc」であったため、
図14に示すように、ユーザデータパケット(U)05の送信先MACアドレスに「MAC-bmc」をセットする。よって、ユーザデータパケット(U)05は、
図14に示すように、送信先MACアドレス「MAC-bmc」と、送信元MACアドレス「MAC-X」と、送信先IPアドレス「IP-bmc」と、送信元IPアドレス「IP-X」と、パケットタイプ「ユーザデータ」とを含む。また、ユーザデータパケット(U)05は、ユーザデータを含む(図示省略)。送信先MACアドレスが「MAC-bmc」であるため、ユーザデータパケット(U)05は、第一通信路C1、NIC15及び第三通信路C3を介して第二プロセッサP2によって受信される(ステップS313,S315)。
【0044】
次いで、ステップS317は、ステップS315でユーザデータパケット(U)05を受信した第二プロセッサP2は、ユーザデータパケット(U)05に対して、
図15に示す受信応答であるACKパケット(U)05をユニキャストで第二サーバ装置20へ送信する。ACKパケット(U)05は、第三通信路C3、NIC15及び第一通信路C1を介して第二サーバ装置20によって受信される(ステップS317,S319)。第二プロセッサP2から送信されるACKパケット(U)05は、
図15に示すように、送信先MACアドレス「MAC-X」と、送信元MACアドレス「MAC-bmc」と、送信先IPアドレス「IP-X」と、送信元IPアドレス「IP-bmc」と、パケットタイプ「ACK」とを含む。
【0045】
以上のように、実施例3では、第二プロセッサP2は、第一プロセッサP1が停止しているときに、ARPリプライをNIC15を介して第二サーバ装置20へ送信する。
【0046】
こうすることで、第二プロセッサP2は、第一プロセッサP1が停止していて第二プロセッサ宛てのユーザデータパケットを第一プロセッサP1が第二プロセッサP2へ転送できない場合でも、第二プロセッサP2宛てのユーザデータパケットを第二サーバ装置20から直接受信することができる。
【0047】
なお、上記説明では、第二プロセッサP2は、所定時間内でのARPリプライの受信の有無により、第一プロセッサP1が停止しているか否かを判定した。しかし、第二プロセッサP2は、第一プロセッサP1の動作を直接監視して第一プロセッサP1が停止しているか否かを判定しても良い。
【0048】
以上、実施例3について説明した。
【0049】
[実施例4]
<ネットワークシステムの処理>
図16は、実施例4のネットワークシステムの処理シーケンスの一例を示す図であり、
図17及び
図18は、実施例4のパケットの一例を示す図である。
図2と同様に、
図16において、括弧内の「B」はブロードキャスト通信を示し、括弧内の「U」はユニキャスト通信を示す。以下、実施例1と異なる点について説明する。
【0050】
図16において、ステップS129で第一プロセッサP1が受信するACKパケット(U)01には、
図17に示すように、
図8に示す各項目に加えて、ウィンドサイズ「w1」が含まれている。ここで、第二プロセッサP2から第二サーバ装置20宛てに送信されるACKパケットに含まれるウィンドサイズは、ACKの送信元である第二プロセッサP2からのACKを待たずに第二サーバ装置20が第二プロセッサP2宛てに連続して送信可能なデータ量を示す。よって、ウィンドサイズが大きくなるほど、第二サーバ装置20から第二プロセッサP2宛てに送信されるユーザデータパケットによる第一通信帯域B1及び第二通信帯域B2の単位時間あたりの消費量がより大きくなる。
【0051】
ステップS131では、第一プロセッサP1は、受信したACKパケット(U)01を第二サーバ装置20宛てに送信するために、実施例1と同様に、ACKパケット(U)01の送信先MACアドレス及び送信元MACアドレスを付け替える。
【0052】
さらに、第一プロセッサP1は、第一通信路C1における通信量が閾値TH以上のときに、ステップS401において、ACKパケット(U)01のウィンドサイズを「w1」から「w2」に変更する(w2<w1)。よって、ステップS401でのウィンドサイズ変更後のACKパケット(U)07は、
図18に示すように、送信先MACアドレス「MAC-X」と、送信元MACアドレス「MAC-main」と、送信先IPアドレス「IP-X」と、送信元IPアドレス「IP-bmc」と、パケットタイプ「ACK」と、ウィンドサイズ「w2」とを含む。
【0053】
なお、第一プロセッサP1は、第一通信路C1における通信量が閾値TH未満のときは、ACKパケット(U)01のウィンドサイズを変更しない。
【0054】
次いで、ステップS403では、第一プロセッサP1は、ACKパケット(U)07をユニキャストで第二サーバ装置20へ送信する。ACKパケット(U)07は、第二通信路C2、NIC15及び第一通信路C1を介して第二サーバ装置20によって受信される(ステップS403,S405)。
【0055】
以上のように、実施例4では、第一プロセッサP1は、第一プロセッサP1から転送されたユーザデータパケットを受信した第二プロセッサP2から送信されたACKパケットをNIC15を介して受信する。ACKパケットには、第一通信路C1におけるウィンドサイズ「w1」が含まれる。そして、第一プロセッサP1は、第一通信路C1における通信量が閾値TH以上のときに、ACKパケットに含まれるウィンドサイズを「w1」から「w2」(w2<w1)に変更する。
【0056】
こうすることで、第二サーバ装置20から第二プロセッサP2宛てに送信されるユーザデータパケットによる第一通信帯域B1及び第二通信帯域B2の消費量を抑制することができるため、第一通信路C1及び第二通信路C2に第一プロセッサP1用の通信帯域を確保することができる。
【0057】
なお、上記の閾値THは、第一通信路C1及び第二通信路C2に確保したい第一プロセッサP1用の最低限の通信帯域に基づいて設定されると良い。
【0058】
以上、実施例4について説明した。
【0059】
[実施例5]
第一サーバ装置10での上記説明における各処理の全部または一部は、各処理に対応するプログラムを第一プロセッサP1または第二プロセッサP2に実行させることによって実現しても良い。例えば、上記説明における各処理に対応するプログラムが第一メモリM1、第二メモリM2、または、第一サーバ装置10が有するディスクドライブに記憶され、プログラムが第一プロセッサP1または第二プロセッサP2によって、第一メモリM1、第二メモリM2、または、ディスクドライブから読み出されて実行されても良い。また、プログラムは、任意のネットワークを介して第一サーバ装置10に接続されたプログラムサーバに記憶され、そのプログラムサーバから第一サーバ装置10にダウンロードされて実行されたり、第一サーバ装置10が読み取り可能な記録媒体に記憶され、その記録媒体から読み出されて実行されても良い。第一サーバ装置10が読み取り可能な記録媒体には、例えば、メモリカード、USBメモリ、SDカード、フレキシブルディスク、光磁気ディスク、CD-ROM、DVD、及び、Blu-ray(登録商標)ディスク等の可搬の記憶媒体が含まれる。また、プログラムは、任意の言語や任意の記述方法にて記述されたデータ処理方法であり、ソースコードやバイナリコード等の形式を問わない。また、プログラムは必ずしも単一的に構成されるものに限られず、複数のモジュールや複数のライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものも含む。
【0060】
以上、実施例5について説明した。
【符号の説明】
【0061】
1 ネットワークシステム
10 第一サーバ装置
15 NIC
P1 第一プロセッサ
M1 第一メモリ
P2 第二プロセッサ
M2 第二メモリ
20 第二サーバ装置