(58)【調査した分野】(Int.Cl.,DB名)
前記通信制御手段は、前記パケットを再送する際に、前記負荷状態の監視結果を再度、参照して前記パケットの割当先の前記ポートを決定することを特徴とする請求項1または2いずれかに記載の通信装置。
複数の通信経路を有する単一のネットワークに接続された複数のポートのうち所定のポートと、接続先の通信装置に備えられた複数のポートのうち所定のポートとの対応を基に、前記通信経路の情報を生成し、
前記通信経路ごとの負荷状態を監視し、
前記負荷状態の監視結果に基づいて、複数の前記通信経路からパケットの送信を行う前記通信経路を選択し、複数の前記ポート間において連続したアドレスまたは規則性を有するアドレスとなるように設定されているアドレスの情報を、選択した前記通信経路に基づいて前記パケットに付加して、選択した前記通信経路に応じた前記ポートに出力し、
前記ポートから前記ネットワークに前記パケットを送信することを特徴とする通信方法。
【発明を実施するための形態】
【0013】
(第1の実施形態)
本発明の第1の実施形態について図を参照して詳細に説明する。
図1は、本実施形態の通信装置の構成の概要を示したものである。本実施形態の通信装置は、通信手段1と、経路情報生成手段2と、負荷監視手段3と、通信制御手段4を備えている。通信手段1は、複数の通信経路を有する単一のネットワークに接続された複数のポートを介して、データの送受信を行う。経路情報生成手段2は、複数のポートのうち所定のポートと、接続先の通信装置に備えられた複数のポートのうち所定のポートとの対応を基に、通信経路の情報を生成する。負荷監視手段3は、通信経路ごとの負荷状態を監視する。通信制御手段4は、負荷状態の監視結果に基づいて、複数の通信経路からパケットの送信を行う通信経路を選択し、選択した通信経路に基づいたアドレスの情報をパケットに付加して、選択した通信経路に応じたポートに出力する。
【0014】
本実施形態の通信装置は、経路情報生成手段2において複数の通信経路の情報を取得し、負荷監視手段3において通信経路ごとの負荷状態を監視している。本実施形態の通信装置では、通信制御手段4が通信経路の情報および負荷状態を基にパケットの送信を行う通信経路を選択し、対応したポートからパケットの送信が行われている。そのため、本実施形態の通信装置は、通信経路の情報および通信経路ごとの負荷情報を基に、通信経路を選択してパケットを送信することで、適切な通信経路を選択して負荷分散を行うことができる。また、本実施形態の通信装置は、通信経路上で障害や負荷の増大が発生した際に、他の通信経路を選択して通信を行うことができ、パケットのロスや送信の遅延を抑制することができる。その結果、本実施形態の通信装置は、複数の通信経路を用いた通信において、負荷分散を行いつつパケットのロスや送信の遅延を抑制することができる。
【0015】
(第2の実施形態)
本発明の第2の実施形態について図を参照して詳細に説明する。
図2は、本実施形態の通信システムの構成の概要を示したものである。本実施形態の通信システムは、送信装置10と、受信装置20を備えている。また、送信装置10と受信装置20は、ネットワーク30を介して接続されている。本実施形態の通信システムは、複数の通信経路で構成されたネットワーク30を介して送信装置10から受信装置20にデータの送信を行うネットワークシステムである。
【0016】
図3は、本実施形態の送信装置10の構成の概要を示したものである。送信装置10は、データ送信部11と、SEQ(sequence)付与部12と、再送バッファ部13と、再送タイマ部14と、通信制御部15と、経路状態監視部16と、帯域監視部17と、第1のポート41と、第2のポート42を備えている。通信制御部15は、アドレス変換部61をさらに備えている。
【0017】
データ送信部11は、受信装置20に送信するデータを生成する機能を有する。データ送信部11は、受信装置20に送信するデータを生成し、生成したデータをSEQ付与部12に送る。データ送信部11は、例えば、サーバにおけるアプリケーションプログラムの実行ユニットが相当する。
【0018】
SEQ付与部12は、受信装置20に送信するパケットを生成する機能を有する。SEQ付与部12は、データ送信部11から送られてきたデータをネットワーク30で伝送する際の所定の大きさのパケットに分割する。SEQ付与部12は、データを分割して生成したパケットに、パケットの転送に必要なアドレスやシーケンス番号の情報を付加する。SEQ付与部12は、例えば、送信先となる受信装置20と送信元となる自装置のいずれかのポートに対応したMAC(Media Access Control)アドレスを送信先および送信元のアドレスとしてパケットのヘッダに付加する。SEQ付与部12で付加されるMACアドレスは、ダミーのアドレス情報でもよい。
【0019】
SEQ付与部12は、ヘッダ等の情報を付加すると、ヘッダ等の情報を付加したパケットを再送バッファ部13に送る。
【0020】
再送バッファ部13は、SEQ付与部12から送られてくるパケットのデータを保存し、所定のタイミングで通信制御部15に出力する機能を有する。再送バッファ部13は、SEQ付与部12からパケットのデータが送られてくると、送られてきたデータを保存する。再送バッファ部13は、あらかじめ定められた速さと個数で保存したパケットのデータのコピーを通信制御部15に出力する。また、一連のデータを分割したパケットのうち最初のパケットのデータのコピーを出力すると、再送バッファ部13は、再送タイマ部14の動作を開始させる。再送バッファ部13は、先に保存されたパケットから順に通信制御部15に出力する。すなわち、再送バッファ部13はFIFO(First In, First Out)バッファとして動作する。
【0021】
再送バッファ部13は、受信装置20からACK(acknowledge)パケットとして送られてくる送達確認パケットに示されているシーケンス番号よりも小さいシーケンス番号のパケットのデータを消去する。また、再送バッファ部13は、再送要求を受け取ると、再送要求に示されているシーケンス番号以下のシーケンス番号のパケットのデータのコピーを通信制御部15に出力する。
【0022】
再送バッファ部13は、所定の時間が経過したことを示す情報を再送タイマ部14から受け取ると、再送が必要であると判断して保持しているパケットのデータのコピーを通信制御部15に出力する。
【0023】
再送タイマ部14は、再送バッファ部13の制御に基づいて所定の時間を計測する機能を有する。再送タイマ部14は、再送バッファ部13から時間の計測の開始またはリセットの制御信号を受け取ると、所定の時間の計測を開始する。再送タイマ部14は、計測の開始から所定の時間が経過すると、所定の時間が経過したことを示す信号を再送バッファ部13に送る。所定の時間は、受信装置20からパケットの送達確認の通知として受け取るACKパケットを、受信装置20が送信する間隔よりも長くなるように設定されている。所定の時間は、ACKパケットの送信間隔を基にあらかじめ設定されている。
【0024】
通信制御部15は、再送バッファ部13から送られてくるパケットを各ポートに振り分ける機能を有する。通信制御部15は、経路情報および帯域監視部17が行っているネットワーク30の負荷状態の監視結果に基づいてパケットの送信に用いる通信経路を選択する。通信制御部15は、選択した通信経路に応じたポートにパケットを振り分ける。パケットの振り分けを行う際に、通信制御部15は、アドレス変換部61においてパケットの送信元と送信先のアドレスの情報を、経路情報に基づいて振り分け先の送信元のポートおよび送信先のポートに応じたアドレスに書き換える。アドレス変換部61は、経路状態監視部16が生成した経路情報を保存している。経路情報とは、送信元のポートのMACアドレスと、送信先の受信装置20のポートのMACアドレスと、通信経路の使用可否の情報が互いに関連づけられた情報のことをいう。
【0025】
通信制御部15は、アドレスの情報を書き換えたパケットを送信元のMACアドレスに対応するポートにそれぞれ出力する。また、本実施形態の通信制御部15は、第1の実施形態の通信制御手段4に相当する。
【0026】
経路状態監視部16は、経路情報の管理を行う機能を有する。経路状態監視部16は、受信装置20からブロードキャストパケットとして送信されてくるパケットを基に、送信元である受信装置20のMACアドレスと、パケットを受信した自装置のポート間の経路情報を生成し、経路情報テーブルとして保存する。経路情報テーブルでは、通信先のMACアドレスと、自装置のMACアドレスと、経路の使用可否の情報が関連づけられて経路情報として保存されている。
【0027】
経路状態監視部16は、パケットを全く受け取っていない経路および前回、パケットを受け取ってから所定の時間以上、継続して受け取っていない経路については、使用不可として経路情報テーブルを更新する。経路状態監視部16は、一度、使用不可とした経路について、再度、パケットを受信した場合には、使用可として経路情報テーブルを更新する。経路状態監視部16は、経路情報テーブルを更新すると、更新した経路情報テーブルをアドレス変換部61に送る。また、本実施形態の経路状態監視部16は、第1の実施形態の経路情報生成手段2に相当する。
【0028】
帯域監視部17は、ネットワーク30の負荷状態を監視する機能を有する。帯域監視部17は、送信装置10のポートと受信装置20のポートの組み合わせごとにデータ通信量を監視する。本実施形態の帯域監視部17は、送信装置10の側で管理可能な送信帯域と、受信装置20から送られてくる情報を基に得られるネットワーク帯域を監視する。本実施形態において、送信帯域は、時間当たりの送信データ量のことをいう。また、ネットワーク帯域は、時間当たりに送信することのできるデータ量のことをいう。ネットワーク帯域は、例えば、時間当たりに送信を完了したデータ量の最大値として設定される。ネットワーク帯域の初期値は、送信装置10のリンク速度を超えない範囲で設定される。
【0029】
帯域監視部17は、例えば、第1のポート41および第2のポート42から送信されたパケットのデータ量を監視し、時間当たりのデータ量を算出することで送信帯域の情報を生成する。単位時間は、例えば、1秒として設定される。また、帯域監視部17は、例えば、一定期間内に送信を完了したデータの最大値を保存し、最大値の値をネットワーク帯域とする。例えば、ネットワーク帯域は、時間あたりに送達完了通知を受け取ったパケットのデータ量の最大値とすることができる。帯域監視部17は、受信装置20から送信される通信経路ごとに受信したデータ量を基に、ネットワーク帯域の情報を得るようにしてもよい。また、ネットワーク帯域は、送信装置10と受信装置20の間で試験信号を送受信することによって計測されてもよい。
【0030】
帯域監視部17は、ネットワーク帯域から送信帯域を引いて余剰ネットワーク帯域を算出する。帯域監視部17は、所定の時間ごとに送信帯域、ネットワーク帯域および余剰ネットワーク帯域を互いに関連づけたデータテーブルを負荷情報として生成し通信制御部15に送る。また、経路情報が更新された際に、通信経路ごとの負荷状態を示す帯域情報が更新されるようにしてもよい。本実施形態の帯域監視部17は、第1の実施形態の負荷監視手段3に相当する。
【0031】
第1のポート41は、ネットワーク30を介して受信装置20との通信を行う機能を有する。第1のポート41は、通信制御部15から送られてきたパケットのデータをネットワーク30の通信規格に合わせた信号に変換して、ネットワーク30に送信する。また、第1のポート41は、ネットワーク30を介して受信したデータを、送信装置10の内部で用いる形態の信号に変換して通信制御部15に送る。
【0032】
第2のポート42は、ネットワーク30を介して受信装置20との通信を行う機能を有する。第2のポート42は、通信制御部15から送られてきたパケットのデータをネットワーク30の通信規格に合わせた信号に変換して、ネットワーク30に送信する。また、第2のポート42は、ネットワーク30を介して受信したデータを、送信装置10の内部で用いる形態の信号に変換して通信制御部15に送る。
【0033】
本実施形態の第1のポート41および第2のポート42は、連続した番号のMACアドレスをそれぞれ有している。MACアドレスを連続した番号にすることで、受信側での管理が容易になる。MACアドレスには、通常、48bitの文字列が用いられるが、例えば連続した番号の2つのMACアドレスを使うと、下位1bitを無視して、上位47bitのみで送信元の送信装置10を特定することが可能になる。第1のポート41および第2のポート42のMACアドレスは、連続した番号でなくてもよい。連続した番号では無い場合には、受信側での特定を容易にするため第1のポート41および第2のポート42のMACアドレスに規則性があることが望ましい。また、本実施形態の第1のポート41および第2のポート42は、第1の実施形態の通信手段1に相当する。
【0034】
図4は、本実施形態の受信装置20の構成の概要を示したものである。受信装置20は、データ受信部21と、SEQ削除部22と、出力バッファ部23と、取出制御部24と、第1の順序バッファ部25と、第2の順序バッファ部26を備えている。また、受信装置20は、ブロードキャスト送信部27と、ACK送信部28と、欠落検出部29をさらに備えている。また、受信装置20は、第1のポート51と、第2のポート52をさらに備えている。出力バッファ部23は、アドレス変換部71をさらに備えている。
【0035】
データ受信部21は、送信装置10から受信したデータを処理する機能を有する。データ受信部21は、SEQ削除部22から入力されるデータを基に、各処理を行う。データ受信部21は、例えば、クライアント側の情報処理装置のアプリケーションプログラムの実行ユニットが相当する。
【0036】
SEQ削除部22は、パケットのデータからヘッダ情報等を削除する機能を有する。SEQ削除部22は、出力バッファ部23から入力されるパケットからアドレスの情報やシーケンス番号等を削除する。SEQ削除部22は、ヘッダ情報等を削除したパケットのデータをデータ受信部21に出力する。
【0037】
出力バッファ部23は、各順序バッファ部からパケットを受け取り、一時保存する機能を有する。出力バッファ部23は、第1の順序バッファ部25および第2の順序バッファ部26からシーケンス番号の順にパケットを受け取り、一時保存する。出力バッファ部23は、取出制御部24の制御に基づいて、保存したパケットを保存した順にSEQ削除部22に出力する。すなわち、出力バッファ部23はFIFOバッファとして動作する。
【0038】
また、出力バッファ部23のアドレス変換部71は、一時保存されたパケットのヘッダの情報の送信先と送信元のMACアドレスの情報を変換する。例えば、2つのポートのMACアドレスが連続した番号であるとき、出力バッファ部23のアドレス変換部71は、MACアドレスの下位1bitを「0」に変換する。各ポートのMACアドレスが連続した番号でないときは、MACアドレスの採番の規則性に従って変換が行われる。アドレス変換の規則は、アドレス変換部71にあらかじめ保存されている。 取出制御部24は、各順序バッファ部から出力バッファ部23にパケットがシーケンス番号の順に送られるように各順序バッファ部を制御する機能を有する。取出制御部24は、第1の順序バッファ部25および第2の順序バッファ部26の先頭に保存されているパケットのシーケンス番号を参照し、出力バッファ部23にパケットが出力されるように制御する。また、取出制御部24は、第1の順序バッファ部25および第2の順序バッファ部26に出力を終えたパケットのシーケンス番号の次の番号のパケットが存在しないとき、欠落検出部29にパケットの出力が完了したことを示す情報を完了通知として送る。
【0039】
第1の順序バッファ部25は、ネットワーク30を介して送信装置10から受信したパケットのデータを、保存の要否を判断して一時保存する機能を有する。また、第1の順序バッファ部25は、取出制御部24の制御に基づいて出力バッファ部23に出力する機能を有する。第1の順序バッファ部25は、ネットワーク30を介して受信したパケットのデータを第1のポート51から受け取ると、受け取ったデータを保存する。第1の順序バッファ部25は、パケットのデータを保存するとパケットを保存したことを示す情報を格納完了通知として取出制御部24に送る。
【0040】
第1の順序バッファ部25は、パケットを保存すると、新たに受け取ったパケットのシーケンス番号と既に保存しているパケットのシーケンス番号を比較する。新たに受け取ったパケットのシーケンス番号が既に保存しているシーケンス番号以下のとき、第1の順序バッファ部25はパケットの再送が発生したと判断して、既に保存されているパケットのデータを廃棄する。新たに受け取ったパケットのシーケンス番号が既に保存しているシーケンス番号より大きいとき、新たに受け取ったパケットのデータを保持する。
【0041】
第1の順序バッファ部25は、取出制御部24の制御に基づいて保存された順にパケットのデータを出力バッファ部23に出力する。すなわち、第1の順序バッファ部25は、FIFOバッファとして機能する。
【0042】
第2の順序バッファ部26は、第1の順序バッファ部25と同様の機能を有する。第2の順序バッファ部26は、ネットワーク30を介して受信したパケットのデータを第2のポート52から受け取ると、受け取ったデータを保存する。第2の順序バッファ部26は、パケットのデータを保存すると、パケットを保存したことを示す情報を格納完了通知として取出制御部24に送る。
【0043】
第2の順序バッファ部26は、パケットを保存すると、新たに受け取ったパケットのシーケンス番号と既に保存しているパケットのシーケンス番号を比較する。新たに受け取ったパケットのシーケンス番号が既に保存しているシーケンス番号以下のとき第2の順序バッファ部26はパケットの再送が発生したと判断して、既に保存されているパケットのデータを廃棄する。新たに受け取ったパケットのシーケンス番号が既に保存しているシーケンス番号より大きいとき、新たに受け取ったパケットのデータを保持する。第2の順序バッファ部26は、取出制御部24の制御に基づいて保存された順にパケットのデータを出力バッファ部23に出力する。
【0044】
第1の順序バッファ部25、第2の順序バッファ部26および取出制御部24は、送信装置10から各ポートが単位時間あたりに受信したデータ量を計測する機能を備えていてもよい。各ポートが単位時間あたりに送信装置10から受信したデータ量を計測する機能を備える構成とした場合には、所定の時間ごとに単位時間あたりに受信したデータ量の情報が、各ポートを介して送信装置10に送られる。単位時間あたりに送信装置10から受信したデータ量の情報は、送信装置10においてネットワーク帯域の情報を生成する際に用いられる。
【0045】
ブロードキャスト送信部27は、受信装置20の各ポートのMACアドレスの情報を、ネットワーク30を介してブロードキャストで送信する機能を有する。ブロードキャスト送信部27は、第1のポート51および第2のポート52を制御して、それぞれのMACアドレスの情報をブロードキャストでネットワーク30に送信する。ブロードキャスト送信部27は、所定の時間ごとにMACアドレスの情報を送信する。所定の時間はあらかじめ設定されている。
【0046】
ACK送信部28は、送信装置10に再送要求または送達確認の通知を送る機能を有する。ACK送信部28は、取出制御部24から出力バッファ部23に出力したパケットのシーケンス番号を受け取ると、受け取ったシーケンス番号を含む送達確認の通知を第1のポート51または第2のポート52を介して送信装置10にACKパケットとして送る。ACK送信部28は、第1のポート51または第2のポート52のうちいずれかを選択してACKパケットを送信する。ACK送信部28は、例えば、パケットの受信が行われている側のポートを選択してACKパケットの送信を行う。ACK送信部28は、正常に動作している第1のポート51または第2のポート52のうち、データ通信が行われていない側を選択してACKパケットを送信してもよい。送達確認の通知は、1パケットごとに行われてもよく、また、あらかじめ定められたパケット数ごとに行われてもよい。ACKパケットとして送達確認の通知を送信する間隔は、あらかじめ設定されている。
【0047】
また、ACK送信部28は、欠落検出部29から欠落を検出したパケットのシーケンス番号を受け取ると、受け取ったシーケンス番号を含む再送要求を第1のポート51または第2のポート52のいずれかを選択して送信装置10に送信する。ACK送信部28は、送達確認の通知を送信する際と同様に送信するポートを選択する。
【0048】
欠落検出部29は、出力バッファ部23に出力されたパケットの欠落を検出する機能を有する。欠落検出部29は、出力バッファ部23に出力されたパケットのシーケンス番号を監視し、欠落している番号が生じたときにパケットが欠落していると判断する。パケットが欠落していると判断すると、欠落しているシーケンス番号とパケットの再送要求をACK送信部28に送る。
【0049】
第1のポート51は、ネットワーク30を介して送信装置10との通信を行う機能を有する。第1のポート51は、ネットワーク30を介して受信したデータを、受信装置20の内部で用いる形態の信号に変換して第1の順序バッファ部25に送る。
【0050】
第2のポート52は、ネットワーク30を介して送信装置10との通信を行う機能を有する。第2のポート52は、ネットワーク30を介して受信したデータを、受信装置20の内部で用いる形態の信号に変換して第2の順序バッファ部26に送る。
【0051】
また、第1のポート51および第2のポート52は、送信装置10に送るブロードキャストパケット、送達確認および再送要求のACKパケット等をネットワーク30に送信する。本実施形態の第1のポート51および第2のポート52は、連続した番号のMACアドレスをそれぞれ有している。第1のポート51および第2のポート52のMACアドレスは、連続した番号でなくてもよい。連続した番号では無い場合には、第1のポート51および第2のポート52のMACアドレスに規則性があることが望ましい。
【0052】
送信装置10および受信装置20の各部位は、それぞれ複数または単数の半導体装置を備えた電子回路によって構成することができる。
【0053】
ネットワーク30は、送信装置10と受信装置20が複数の通信経路を介して互いにデータの送受信をすることができる単一の通信ネットワークとして構成されている。単一の通信ネットワークであるネットワーク30では、互いに接続した複数の通信回線によって送信装置10と受信装置20の間に複数の通信経路が形成されている。本実施形態のネットワーク30は、イーサネット(登録商標)として構成されている。ネットワーク30の各通信経路上にはスイッチングハブ等の通信装置が備えられている。
【0054】
本実施形態の通信システムの動作について説明する。始めに送信装置10が、接続先の受信装置20の各ポートのMACアドレスの情報を収集する際の動作について説明する。
【0055】
受信装置20のブロードキャスト送信部27は、装置の起動時や所定の時間ごとに、送信装置10に自装置の各ポートのMACアドレスの情報を送信するためのパケットを生成する。本実施形態では、各ポートのMACアドレスの情報を送信するためのパケットをブロードキャストパケットとよぶ。ブロードキャストパケットは、ブロードキャストであることを示す情報と、送信元となるポートのMACアドレスによって構成されている。
【0056】
ブロードキャストパケットを生成すると、ブロードキャスト送信部27は、第1のポート51および第2のポート52からそれぞれブロードキャストパケットをネットワーク30に送信する。
【0057】
受信装置20の第1のポート51および第2のポート52から送信されたブロードキャストパケットは、ネットワーク30を伝送され、ネットワーク30に接続されている各ポートにそれぞれ送られる。受信装置20の第1のポート51および第2のポート52は、自装置から送信されたブロードキャストパケットを受け取ると、送信元のMACアドレスとして自装置のポートのMACアドレスが記載されているので、受信したパケットを破棄する。
【0058】
送信装置10の第1のポート41は、受信装置20からネットワーク30を介してブロードキャストパケットを受信すると、受け取ったブロードキャストパケットのデータを経路状態監視部16に送る。経路状態監視部16は、第1のポート41からブロードキャストパケットのデータを受け取ると、第1のポート41と、送信元のMACアドレスの情報を関連づけて経路情報テーブルに保存する。
【0059】
また、送信装置10の第2のポート42は、ブロードキャストパケットを受信すると、受け取ったブロードキャストパケットのデータを経路状態監視部16に送る。経路状態監視部16は、第2のポート42からブロードバンドパケットのデータを受け取ると、第2のポート42と、送信元のMACアドレスの情報を関連づけて経路情報テーブルに保存する。経路情報テーブルに経路情報が保存されると、送信装置10は、経路情報テーブルの経路情報に基づいて、受信装置20との通信を行う。
【0060】
本実施形態の通信システムの送信装置10において生成される経路情報テーブルの具体的な例について説明する。
図5、
図6および
図7は、本実施形態の通信システムにおいて生成される経路情報の例を模式的に示したものである。
図5、
図6および
図7において、送信装置10の第1のポート41のMACアドレスは「A0」、第2のポート42のMACアドレスは「A1」としてそれぞれ設定されているとする。また、受信装置20の第1のポート51のMACアドレスは「B0」、第2のポート52のMACアドレスは「B1」としてそれぞれ設定されているとする。
【0061】
図5の上側の図は、受信装置20の第1のポート51からブロードキャストパケットが送信された例を示している。
図5の上側の図では、受信装置20の第1のポート51から送信されたブロードキャストパケットが受信装置20の第2のポート52、並びに、送信装置10の第1のポート41および第2のポート42にそれぞれ送られている。このとき、MACアドレスが「A0」の送信装置10の第1のポート41およびMACアドレスが「A1」の第2のポート42は、MACアドレス「B0」からパケットを受け取っている。そのため、
図5の下側に示す送信装置10の経路情報を示す経路情報のテーブルでは、「A0」と「B0」間および「A1」と「B0」間が、使用可能なことを示す「○」として設定されている。
【0062】
図6の上側の図は、
図5の状態からさらに受信装置20の第2のポート52からブロードキャストパケットが送信された例を示している。
図6の上側の図では、受信装置20の第2のポート52から送信されたブロードキャストパケットが受信装置20の第1のポート51、並びに、送信装置10の第1のポート41および第2のポート42にそれぞれ送られている。このとき、MACアドレスが「A0」の送信装置10の第1のポート41およびMACアドレスが「A1」の第2のポート42は、MACアドレス「B1」からパケットを受け取っている。そのため、
図6の下側に示す送信装置10の経路情報を示す経路情報テーブルでは、「A0」と「B0」間および「A1」と「B0」間に加え、「A0」と「B1」間および「A1」と「B1」間が、使用可能なことを示す「○」として設定されている。
【0063】
図7の上側の図は、
図6の状態からさらに受信装置20の第1のポート51からブロードキャストパケットが送信された例を示している。
図7の上側の図では、受信装置20の第2のポート52から送信されたブロードキャストパケットが受信装置20の第1のポート51、および、送信装置10の第1のポート41にそれぞれ送られている。しかし、障害等によって送信装置10の第2のポート42にはブロードバンドパケットが送られていない。そのため、
図7の下側に示す送信装置10の経路情報を示す経路情報のテーブルでは、「A1」と「B0」間が、使用不可なことを示す「×」として設定されている。送信装置10は、上記のように生成された経路情報テーブルの経路情報に基づいて、通信経路の使用可否を判断して受信装置20との通信を行う。
【0064】
次に送信装置10が受信装置20にネットワーク30を介してデータを送信する際の動作について
図8および
図9を参照して説明する。
図8は、送信装置10がデータ送信を行う際の動作フローの概要を示したものである。
図9は、受信装置20がデータ受信を行う際の動作フローの概要を示したものである。
【0065】
始めに、
図8を参照して送信装置10がデータ送信を行う際の動作について説明する。送信装置10のデータ送信部11は、アプリケーションプログラムの処理結果等を基に受信装置20に送信するデータを生成する。受信装置20に送信するデータを生成すると、データ送信部11は、生成したデータをSEQ付与部12に送る。
【0066】
SEQ付与部12は、受信装置20に送るデータを受け取ると、受け取ったデータを所定のデータ量ごとに分割しパケットを生成する。所定のデータ量は、ネットワーク30で伝送される1パケットのデータ量に基づいて設定されている。SEQ付与部12は、分割によってパケットのデータを生成すると、分割前のデータの並び順に基づいて分割して生成した各パケットのデータにアドレス情報およびシーケンス番号を付加し送信用のパケットを生成する(ステップ101)。
【0067】
シーケンス番号等を付加すると、SEQ付与部12は、パケットをシーケンス番号の順に再送バッファ部13に送る。再送バッファ部13は、パケットのデータを受け取ると、受け取った順に保存する(ステップ102)。
【0068】
パケットのデータを保存すると、再送バッファ部13は、保存した順にパケットのデータのコピーを通信制御部15に出力する。本実施形態では、再送バッファ部13は、一定の時間ごとにパケットのデータのコピーを通信制御部15に出力する(ステップ103)。パケットのデータのコピーを出力する間隔である一定の時間は、パケットの送信処理に要する時間に基づいてあらかじめ設定されている。パケットのデータのコピーを通信制御部15に出力すると、再送バッファ部13は、再送タイマ部14を作動させる。
【0069】
通信制御部15は、受信装置20に送るパケットのデータを受け取ると、経路状態監視部16が生成した経路情報テーブルおよび帯域監視部17が生成する負荷状態の情報を参照して、送信に使用する通信経路を決定する(ステップ104)。通信制御部15は、使用可能な通信経路のうち、余剰ネットワーク帯域が最も大きい通信経路に対応するポートを送信に使用するポートとして選択する。
【0070】
送信に使用するポートを選択すると、通信制御部15は、パケットのアドレスの情報を送信先の受信装置20のポートのMACアドレスと、送信元となる自装置のポートのMACアドレスの情報に変換する。送信先の受信装置20のポートのMACアドレスは、経路情報テーブルを参照して付加される。パケットのMACアドレスの情報を変換すると、通信制御部15は、パケットを選択したポートに送信する。ステップ104で決定された通信経路に対応する第1のポート41または第2のポート42は、パケットを受け取ると、受け取ったパケットをネットワーク30に送信する(ステップ105)。
【0071】
次に
図9を参照して受信装置20がデータを受信する際の動作について説明する。送信装置10から送信されたパケットは、送信先のMACアドレスで指定された受信装置20のポートで受信される(ステップ121)。ここでは、例えば、第1のポート51でパケットを受信したとする。第1のポート51は自身のMACアドレスが指定されたパケットを受信すると、受信したパケットを第1の順序バッファ部25に送る。パケットを受け取ると、第1の順序バッファ部25は、パケットを受け取った順に保存する(ステップ122)。パケットを保存すると第1の順序バッファ部25は、パケットを保存したことを示す情報を格納完了通知として取出制御部24に送る。第2のポート52および第2の順序バッファ部26もパケットを受け取った際には、第1のポート51および第1の順序バッファ部25と同様に動作する。
【0072】
取出制御部24は、格納完了通知を受け取ると各順序バッファ部の先頭に保存されているパケットのシーケンス番号を確認する。シーケンス番号を確認すると取出制御部24は、出力バッファ部23へ未出力のパケットのうちもっともシーケンス番号が小さいパケットを保存している順序バッファ部に、パケットを出力バッファ部23に出力する制御信号を送る。
【0073】
第1の順序バッファ部25および第2の順序バッファ部26は、パケットを出力する制御信号を受け取ると、先頭に保存されているパケットを出力バッファ部23に送る(ステップ123)。取出制御部24は、出力バッファ部23にパケットを出力すると、出力が行われたパケットのシーケンス番号をACK送信部28に通知する。シーケンス番号の通知を受け取ると、ACK送信部28は、受け取ったシーケンス番号を含む送達完了通知を、第1のポート51または第2のポート52を介して送信装置10にACKパケットとして送信する(ステップ124)。
【0074】
出力バッファ部23へ未出力のパケットのうちシーケンス番号がもっとも小さいパケットの出力を終えると、取出制御部24は、出力したパケットよりもシーケンス番号が1つ大きいパケットがいずれかの順序バッファ部に保存されているかを確認する。
【0075】
シーケンス番号が1つ大きいパケットがあるとき(ステップ125でYes)、ステップ123に戻り、取出制御部24は、出力したパケットよりシーケンス番号が1つ大きいパケットを保存している順序バッファ部に、パケットを出力する制御信号を送る。パケットを出力する制御信号を受け取った順序バッファ部は、先頭に保存されているパケットを出力バッファ部23に出力する。
【0076】
取出制御部24は、出力バッファ部23にパケットを出力すると、出力が行われたパケットのシーケンス番号をACK送信部28に通知する。シーケンス番号の通知を受け取ると、ACK送信部28は、受け取ったシーケンス番号を含む送達完了通知を、第1のポート51または第2のポート52を介して送信装置10にACKパケットとして送信する。パケットが出力バッファ部に出力されると、上記の動作がさらに繰り返し行われる。
【0077】
シーケンス番号が1つ大きいパケットがないとき(ステップ125でNo)、取出制御部24は、受信したパケットの出力が完了したことを示す完了通知を欠落検出部29に送る。欠落検出部29は、完了通知を受け取ると、パケットの欠落の有無を確認する(ステップ126)。
【0078】
欠落検出部29は、パケットの欠落の有無の確認の動作を開始すると、各順序バッファ部にデータが保存されていないかを確認する。順序バッファ部にデータが保存されていないとき、欠落検出部29は、出力バッファ部23に正常にデータの受信が正常に完了していることを示す情報を通知する。また、パケットの欠落は、第1のポート51および第2のポート52のいずれを参照してもシーケンス番号に不連続が生じた際に検出されるようにしてもよい。
【0079】
欠落しているパケットが無く、データの受信が正常に完了しているとき(ステップ127でNo)、出力バッファ部23は、保存したパケットを保存した順にSEQ削除部22に送る。また、出力バッファ部23は、パケットを出力する際に保存しているパケットのアドレスの情報を変換する。SEQ削除部22は、パケットを受け取ると、受け取ったパケットからヘッダ情報等を削除してデータ受信部21に送る(ステップ128)。データ受信部21は、パケットのデータを順次、受け取ると受け取ったデータを基にアプリケーションプログラムによる処理等を行う。
【0080】
パケットが欠落してシーケンス番号の不連続等が生じ順序バッファ部にパケットが残っているとき(ステップ127でYes)、出力バッファ部23は、再送が必要なパケットのシーケンス番号とともにパケットの再送要求をACK送信部28に送る。再送要求を受け取ると、ACK送信部28は、第1のポート51または第2のポート52を介して送信装置10に再送要求を送信する(ステップ129)。
【0081】
次に再び、
図8を参照して送信装置10が送達確認パケットまたは再送要求パケットを受け取った後の動作について説明する。ACK送信部28から送信された再送要求および送達完了通知の情報を示すACKパケットは、送信装置10の第1のポート41または第2のポート42によって受信される(ステップ106)。再送要求または送達完了通知の情報を受け取ると、第1のポート41および第2のポート42は、受け取った再送要求または送達完了通知の情報を、通信制御部15を介して再送バッファ部13に送る。
【0082】
受け取った情報が再送要求ではなく、送達完了通知であるとき(ステップ107でNo)、再送バッファ部13は、保存しているパケットのデータのうち送達完了通知に示されたシーケンス番号以下のパケットのデータを消去する(ステップ108)。パケットのデータを消去すると、再送バッファ部13は、パケットのデータを保存していないかを確認する。パケットのデータがある場合には(ステップ109でNo)、ステップ104からの動作が繰り返し行われる。パケットのデータがなく送信を完了しているとき(ステップ109でYes)、再送バッファ部13は、次の送信用のパケットが生成されて入力されるまで待機する(ステップ110)。
【0083】
受け取った情報が再送要求であるとき(ステップ107でYes)、再送バッファ部13は、保存しているパケットのデータのうち再送要求に示されたシーケンス番号以上のパケットのデータのコピーを、再度、通信制御部15に出力する(ステップ111)。パケットのデータのコピーを、再度、通信制御部15に出力されると、ステップ104に戻り、通信制御部15は、経路情報および負荷状態を基に送信に使用する通信経路を判断して受信装置20にパケットのデータを送信する。
【0084】
本実施形態の送信装置10の帯域監視部17が、ネットワーク30の負荷状態を監視して生成した帯域情報の例を
図10および
図11を参照して説明する。
図10は、MACアドレスが「A0」である送信装置10の第1のポート41と、MACアドレスが「B0」である受信装置20の第1のポート51の間の通信経路における負荷状態を示す帯域情報の例を示した図である。
図10の上側では、通信可能な最大のネットワーク帯域を示すNW帯域が40Gbps(Giga bit per second)、使用されている帯域を示す送信帯域が10Gbpsである例を示している。このとき、余剰帯域は、NW帯域の値から送信帯域の値を引いた30Gbpsとなる。
図10の下側の図は、上側の図の状態からデータ転送速度が増大し、送信帯域が30Gbpsにまで増加した場合の例を示している。
図10の下側の図の例では、送信帯域が増大したので、余剰帯域が10Gbpsまで減少している。
【0085】
図11は、
図10と同様にMACアドレスが「A0」である送信装置10の第1のポート41と、MACアドレスが「B0」である受信装置20の第1のポート51の間の通信経路における負荷状態を示す帯域情報の例を示した図である。
図11の上側では、NW帯域が40Gbps、送信帯域が10Gbpsである例を示している。このとき、余剰帯域は、NW帯域の値から送信帯域の値を引いた30Gbpsとなる。
図11の下側の図は、上側の図の状態からネットワーク30で伝送されるデータ量が増大して混雑化し、使用可能なNW帯域が20Gbpsにまで減少した場合の例を示している。
図11の下側の図の例では、使用可能なNW帯域が減少したので、余剰帯域も10Gbpsまで減少している。
【0086】
本実施形態の通信システムにおける通信経路や負荷状態の変動による余剰帯域等の変化の例について
図12、
図13および
図14を参照して説明する。
図12、
図13および
図14は、送信装置10が有している経路情報と、負荷状態を示す帯域情報の例をそれぞれ示した図である。
図12、
図13および
図14の左側の図が、通信経路の情報である経路情報を示し、右側の図が負荷状態の情報である帯域情報を示している。
【0087】
図12の左側の経路情報は、送信装置10の第1のポート41および第2のポート42と、受信装置20の第1のポート51および第2のポート52との全ての組み合わせの通信経路で通信可能な状態を示している。また、
図12の右側の帯域情報は、各ポート間で形成される通信経路における送信帯域、NW待機および余剰帯域をそれぞれ示している。
図12の例では、MACアドレスが「A0」である送信装置10の第1のポート41と、MACアドレスが「B0」である受信装置20の第1のポート51の間の通信経路の余剰帯域が最大である。そのため、送信装置10の通信制御部15は、送信装置10の第1のポート41と、受信装置20の第1のポート51の間の通信経路を選択してパケットの送信を行う。
【0088】
図13は、
図12の状態でMACアドレスが「A0」である送信装置10の第1のポート41と、MACアドレスが「B1」である受信装置20の第2のポート52の間の通信経路で異常が検知され使用不可と判断された例を示している。
図13では、
図12の状態から開始された送信装置10の第1のポート41と、受信装置20の第1のポート51の間の通信経路によるパケットの送信によって、該当する通信経路の送信帯域の増加と余剰帯域の減少が生じている。
【0089】
通信経路の異常の検出は、例えば、送信装置10の第1のポート41が受信装置20の第2のポート52からのブロードキャストパケットを所定の時間以上検知できなかったときに、通信経路に異常が生じていると判断されて行われる。このとき、送信装置10の第1のポート41と、受信装置20の第2のポート52の間の通信経路の余剰帯域が最大になるが使用不可のため選択することはできない。そのため、2番目に余剰帯域の値が大きいMACアドレスが「A1」である送信装置10の第2のポート42と、MACアドレスが「B1」である受信装置20の第2のポート52の間の通信経路が選択され、パケットの送信が行われる。
【0090】
図14は、
図13で送信装置10の第2のポート42と、受信装置20の第2のポート52の間の通信経路で通信が行われているときの帯域の変化を示したものである。
図14では、送信装置10の第1のポート41と、受信装置20の第1のポート51の間の通信経路を選択する通信が停止しているので送信帯域が
図13よりも減少している。また、新たに選択された送信装置10の第2のポート42と、受信装置20の第2のポート52の間の通信経路の送信帯域が増加し、余剰帯域が減少している。このように、余剰帯域を参照して動的に通信経路を選択して通信を行うことで、パケットの送信の遅延等を抑制することができる。
【0091】
本実施形態の通信システムは、受信装置20から送信されたMACアドレスの情報を基に、送信装置10の経路状態監視部16が通信経路の情報を示す経路情報を生成している。経路情報を基に、送信装置10の通信制御部15が使用可能な通信経路を判断することで通信経路上で障害が発生したときなどに、他の通信経路を選択して通信を行うことができる。
【0092】
本実施形態の通信システムは、送信装置10の帯域監視部17が通信経路ごとの負荷状態を監視し、通信制御部15が負荷状態を基にパケットの送信を行う通信経路を判断している。このような構成とすることで、負荷状態に応じて動的に通信経路を選択することができ、パケットのロスや送信の遅延を抑制することが可能となる。また、通信経路上で障害が発生したときなどに、他の通信経路を選択してする際に負荷状態を参照して、パケットのロスや送信の遅延が生じにくい通信経路を選択することができる。
【0093】
本実施形態の通信システムの受信装置20は、各通信経路を介して受信したパケットを受信したポートごとに備えられた順序バッファに保存し、欠落検出部29においてパケットの欠落の有無を検出している。欠落したパケットの再送を要求することで、複数の通信経路を介して通信を行う場合にもパケットのロスを抑制することができる。また、本実施形態の通信システムの送信装置10は、パケットの再送の際に、再度、経路情報および負荷状態に基づいて通信経路を選択することができる。そのため、障害の発生や負荷の増大でパケットのロスが生じた際に、使用な通信経路のうち負荷の小さい通信経路を選択してパケットの再送を行うことで、送信装置10から受信装置20により確実にパケットを送信することができる。そのため、本実施形態の通信システムでは通信の信頼性が向上する。以上より、本実施形態の通信システムは、複数の通信経路を用いた通信において、負荷分散を行いつつパケットのロスや送信の遅延を抑制することができる。
【0094】
第2の実施形態の通信システムは送信装置10と受信装置20をそれぞれ1台ずつ備えているが、送信装置10と受信装置20の両方、またはいずれか一方が複数、備えられていてもよい。また、第2の実施形態の通信システムにおいて、送信装置10と受信装置20は、それぞれ2つのポートによってネットワークに接続されていたが、各装置のポートは3つ以上備えられていてもよい。
【0095】
第2の実施形態の通信システムでは、送信装置10から受信装置20側へのデータの送信が行われていたが、データの送受信が双方向に行われてもよい。そのような構成とする場合には、送信装置10と受信装置20の機能を併せて備える通信装置を用いて通信システムを構成することができる。