(58)【調査した分野】(Int.Cl.,DB名)
制御手段は、ネットワークを介して機器から受信したデータから受信MACアドレスまたは送信MACアドレスを取得して、前記受信MACアドレスまたは前記送信MACアドレスをもとに、メモリ機器における前記データの格納領域を決定する
請求項1または請求項2に記載の通信装置。
制御手段は、記憶手段に記憶されたデータの容量が予め設定された閾値を下回った場合には、メモリ機器に対してデータの送信開始要求を送信し、前記送信開始要求を送信した後に前記記憶手段に記憶されたデータの容量が予め設定された閾値を超えた場合には、前記メモリ機器に対してデータの送信停止要求を送信する
請求項1から請求項3のうちのいずれか1項に記載の通信装置。
機器から受信したデータを記憶手段に記憶し、前記記憶手段に記憶されたデータをネットワークを介して他の機器に対して送信する通信装置におけるパケット廃棄軽減方法であって、
前記記憶手段に記憶されたデータの容量が予め設定された閾値を超えた場合には、前記機器から受信したデータをメモリ機器に転送し、前記記憶手段に記憶されたデータの容量が予め設定された閾値を下回ったときに前記メモリ機器に記憶されたデータを前記メモリ機器から取得して前記他の機器に送信し、
前記機器から受信したデータを前記メモリ機器に転送する際に、当該データのプロトコルタイプを判定し、当該データがデータ転送の即時性が求められるパケットであった場合に、当該データを前記メモリ機器に転送しない
ことを特徴とするパケット廃棄軽減方法。
【背景技術】
【0002】
ホームゲートウェイ(HGW)などのネットワーク機器に接続されたパーソナルコンピュータ(PC)などの機器から、ネットワークに接続された映像サーバなどに対してHGWを介してデータを送信するときに、データの廃棄や、データの再送が生じる場合がある。
【0003】
図7は、HGWを含むネットワーク環境の一般的な構成の一例を示す説明図である。
図7に示すように、HGW600のLAN(Local Area Network)インタフェース610には、パーソナルコンピュータ(PC)701、プリンタ702、メモリ機器703などの通信機器が接続されている。また、HGW600のWAN(Wide Area Network)インタフェース620には、ネットワーク800を介して、映像サーバ901およびセキュリティサーバ902が接続されている。
【0004】
例えば、HGW600のデータの処理能力に対して、映像サーバ901などへデータを送信するネットワーク800側のデータの転送速度が低い場合に、ユーザが、PC701からHGW600およびネットワーク800を介して映像サーバ901にデータを送信すると、HGW600のバッファ(内部メモリ)にPC701が送信したデータが一時的に滞留する。HGW600の受信バッファに一時的に滞留したデータの容量が受信バッファの容量を超えた場合には、HGW600内でデータが廃棄される。このとき、通信プロトコルが送達確認を行うTCPであった場合には、PC701は、送信先から送達確認を得られないため、送信に失敗したと判断してデータの再送を行う。
【0005】
また、HGW600は、データの廃棄を軽減させるために、IEEE802.3xで規格化されているポーズフレームをPC701に送信して、PC701の送信処理を一旦停止させる。
【0006】
このように、HGW600のデータの処理能力とネットワーク800側のデータの処理能力が異なる場合には、データを再送させたり、データの廃棄を軽減させたりするために、PC701およびHGW600の処理負担が増加する。また、データの再送によって、データの転送に要する時間も増加するため、ユーザにストレスを与える。
【0007】
単位時間当たりの伝送量を、受信側の相手先装置との間で決定した通信速度にみあうデータ伝送量に調整して、通信バッファをオーバーフローさせることなく安定した通信を行うことができる装置がある(例えば、特許文献1参照。)。また、主バスを介して装置の内部に接続された記憶装置を、受信バッファメモリ満杯時のバックアップとして使用することによって、データ欠損を防止する装置がある(例えば、特許文献2参照。)。また、ビデオオンデマンドシステムにおけるセットトップボックスなどのゲートウェイ装置に外部記憶装置と接続可能なネットワークインタフェースを含ませ、ゲートウェイ装置がネットワークから受信したデータを、ネットワークインタフェースを介して外部記憶装置に保存させる記憶システムがある(例えば、特許文献3参照。)。
【0008】
さらに、IPパケットの輻輳が発生した時にパケット単位でデータの優先情報を確認し、優先度の低いパケットを廃棄することによって、優先度の高いパケットの遅延や廃棄を防ぐ装置がある(例えば、特許文献4参照。)。
【発明を実施するための形態】
【0016】
実施形態1.
以下、本発明の第1の実施形態を図面を参照して説明する。
【0017】
図1は、本発明による通信装置を含むネットワーク環境の構成の一例を示す説明図である。
【0018】
本発明による通信装置を含む通信システムは、通信装置としてのHGW100とメモリ機器200とを含む。
【0019】
HGW100は、制御部110と、LANインターフェース120と、WANインタフェース130と、内部メモリ140とを備える。
【0020】
制御部110は、LANインターフェース120およびWANインタフェース130を介して送受信されるデータの制御を行う。
【0021】
LANインタフェース120は、複数のポートを備える。LANインタフェース120のポートには、メモリ機器200の他に、PC300が接続されている。WANインタフェース130には、ネットワーク400を介してサーバ500が接続されている。なお、LANインタフェース120には、PCなどの通信機器がいくつ接続されていてもよい。また、WANインタフェース130には、サーバがいくつ接続されていてもよい。
【0022】
内部メモリ140は、LANインタフェース120およびWANインタフェース130を介して送受信されるデータを一時的に記憶するバッファである。
【0023】
メモリ機器200は、ネットワークに接続可能な機器であって、ハードディスクなどの記憶装置(図示せず)を備える。メモリ機器200は、例えば、NAS(Network Attached Strage)などのネットワーク機器である。本実施形態では、メモリ機器200がNASである場合について説明する。
【0024】
メモリ機器200は、メモリ機器200をNASとしてアクセスするPCなどから転送されるデータ(以下、NAS用データという。)を記憶装置に格納する。メモリ機器200が備える記憶装置は、HGW100から転送されたデータを格納する領域とNAS用データを格納する領域とを含む。
【0025】
メモリ機器200は、HGW100から送信開始要求/送信停止要求を受信した場合には、記憶装置に格納されているデータに対して送信開始/送信停止を行う。なお、送信開始要求/送信停止要求は、既存のイーサネット(登録商標)インタフェースを介して行われる。
【0026】
次に、本実施形態の動作について説明する。
【0027】
図2は、第1の実施形態の通信装置の動作を示すフローチャートである。
図2を参照して、PC300からサーバ500にデータを送信する場合の通信装置の動作について説明する。
【0028】
ここでは、HGW100、PC300およびメモリ機器200のデータ転送能力が1000Mbpsであって、ネットワーク400の通信速度が100Mbpsである場合を例とする。
【0029】
HGW100の制御部110は、PC300から送信されるデータをLANインタフェース120を介して受信する(ステップS201)。このとき、制御部110が受信したデータは、内部メモリ140に一旦格納される。ネットワーク400の通信速度が100Mbpsであるため、制御部110は、PC300から受信したデータを1000Mbpsの転送速度でネットワーク400側に転送できない。そのため、制御部110は、ネットワーク400の通信速度に合わせて、内部メモリ140に格納されたデータをWANインタフェース130を介してネットワーク400側に送信する。
【0030】
PC300から受信するデータの転送速度と同等の速度でネットワーク400に対してデータを送信できる場合は、内部メモリ140に一時保存されるデータの量は多くならない。しかし、本実施形態のように、PC300から受信するデータの転送速度よりネットワーク400の通信速度が遅い場合は、内部メモリ140に格納されたデータがネットワーク400に対して送信されるまで滞留するので、データが連続して格納されたときに蓄積されたデータの容量が内部メモリ140の容量を超えて、データが廃棄される可能性がある。
【0031】
制御部110は、内部メモリ140に蓄積されたデータの容量が内部メモリ140の容量を超えないように、内部メモリ140の使用状況を監視する。具体的には、内部メモリ140に蓄積されたデータの容量が予め設定された閾値を超えていないかを確認する(ステップS202)。
【0032】
蓄積されたデータの容量が閾値を超えていない場合は(ステップS202のNo)、制御部110は、メモリ機器200への転送は行わずに、受信データを内部メモリ140に格納する。
【0033】
蓄積されたデータの容量が閾値を超えている場合は(ステップS202のYes)、制御部110は、蓄積されたデータの容量が内部メモリ140の容量を超えるおそれがあると判断する。そして、それ以降に受信するデータのIPヘッダに含まれるパケット情報を解析し、データのプロトコルタイプを確認する(ステップS203)。
【0034】
制御部110は、プロトコルタイプの確認の結果、データが送達確認を行うTCPのデータであった場合は(ステップS203のYes)、受信データを内部メモリ140に格納せずに、メモリ機器200に転送する。このとき、制御部110は、データおよびヘッダをそのまま変更せずに、すなわち、データに加工を施すことなくメモリ機器200に転送する(ステップS204)。制御部110は、受信データをNAS用データと区別できるようにするために、メモリ機器200の記憶装置内のNAS用データが格納される領域とは別の領域に受信データを格納させる。このとき、制御部110は、受信データを解析し、受信データの送信元のMACアドレス、つまり受信MACアドレスを取得して、そのMACアドレスにもとづいて受信データを管理、保存する。
【0035】
ステップS203において、データが送達確認を行わないUDPのデータであった場合は(ステップS203のNo)、メモリ機器200への転送を行わずに、受信データを内部メモリ140に格納する。UDPは、音声や画像などの配信に用いられ、データの到達の確実性よりもリアルタイム性(データ転送の即時性)を要求される通信プロトコルであるので、制御部110は、内部メモリ140に蓄積されるデータの容量が内部メモリ140の容量を超えてUDPデータが破棄される可能性があっても、メモリ機器200への転送を行わない。
【0036】
HGW100は、受信したデータごとにステップS201〜S204の処理を繰り返す。
【0037】
図3は、ステップS204の後のHGW100の送信開始要求および送信停止要求の制御を示すフローチャートである。
【0038】
ステップS204の後、制御部110は、内部メモリ140に蓄積されたデータの容量が予め設定された閾値を下回っているかを確認する(ステップS301)。内部メモリ140に蓄積されたデータの容量が閾値を下回っている場合には(ステップS301のYes)、制御部110は、メモリ機器200に対して送信開始要求を送信する(ステップS302)。メモリ機器200が送信開始要求を受信すると、ステップS204において記憶装置に格納されたデータが、メモリ機器200から格納された順番に従ってHGW100に送信される。
【0039】
制御部110は、メモリ機器200から受信したデータを変更せずにそのままWANインタフェース130を介してネットワーク400側に転送する。このとき、内部メモリ140に蓄積されるデータの容量が再び閾値を超えた場合など、メモリ機器200からの受信データを処理しきれなくなった場合には(ステップS303のYes)、メモリ機器200に対して送信停止要求を送信して、メモリ機器200の送信処理を停止させ(ステップS304)、ステップS301の処理に戻る。
【0040】
制御部110は、送信開始要求を送信してから一定時間経過してもメモリ機器200からデータが受信されない場合には、メモリ機器200内にデータが無いものと判断して(ステップS305のYes)、送信開始要求および送信停止要求の制御を終了する。
【0041】
以上に説明したように、本実施形態によれば、PC300などの機器からHGW100を介してネットワークに接続されたサーバ500などの他の機器に対してデータを送信する際に、送信元の機器のデータ転送能力より、送信先の他の機器が接続されたネットワークの通信速度のほうが遅い場合であっても、データの再送やHGW100内におけるデータの廃棄を軽減させることができる。
【0042】
また、制御部110は、受信したデータのデータおよびヘッダをそのまま変更せずに、メモリ機器200に転送しているので、転送処理にかかるオーバヘッドを小さくすることができる。
【0043】
また、外部に設置されたメモリ機器200を予備のバッファとして使用しているので、HGW100の内部に記憶装置などを設置する必要がない。そのため、既存のゲートウェイ装置に対してハードウェアの構成を変更することなく、本発明を適用することができる。また、メモリ機器200の記憶装置内のNAS用データが格納される領域とは別の領域に受信データを格納させているので、既存のNASを使用することができる。また、NASなどをメモリ機器として使用することができるので、
図7に示すような既存のネットワーク環境に対しても、ネットワークの構成を変更することなく、本発明を適用することができる。
【0044】
また、メモリ機器200に対して、既存のイーサネットインタフェースを介して、送信開始要求/送信停止要求を行うことができるので、メモリ機器200を制御するための新たなインタフェースを追加する必要がない。
【0045】
実施形態2.
以下、本発明の第2の実施形態を図面を参照して説明する。
【0046】
第2の実施形態の通信装置の構成および通信装置を含む通信システムの構成は、第1の実施形態と同様である。
【0047】
しかし、HGW100は、メモリ機器200に対して、送信速度情報をメモリ機器200に対して送信する機能を備える。送信速度情報は、メモリ機器200のデータ送信速度を設定するための情報である。また、メモリ機器200は、HGW100から受信した送信速度情報で指定された送信速度に従ってデータを送信する機能を備える。
【0048】
図4は、第2の実施形態の通信装置の動作を示すフローチャートである。
図4を参照して、
図1に示すネットワーク環境において、サーバ500からPC300にデータを送信する場合の通信装置の動作について説明する。
【0049】
ここでは、PC300のデータ転送能力が100Mbpsであって、サーバ500やメモリ機器200など、PC300以外の機器のデータ転送能力が1000Mbpsである場合を例とする。
【0050】
HGW100の制御部110は、サーバ500から送信されるデータを、WANインタフェース130を介して1000Mbpsの転送速度で受信する(ステップS401)。このとき、制御部110が受信したデータは、内部メモリ140に一旦格納される。PC300のデータ転送能力が100Mbpsであるため、制御部110は、サーバ500から受信したデータを1000Mbpsの転送速度でPC300に転送できない。そのため、内部メモリ140に格納されたデータは、PC300に転送されるまで滞留する。
【0051】
制御部110は、内部メモリ140の使用状況を監視する。具体的には、内部メモリ140に蓄積されたデータの容量が予め設定された閾値を超えていないかを確認する(ステップS402)。
【0052】
蓄積されたデータの容量が閾値を超えていない場合は(ステップS402のNo)、制御部110は、メモリ機器200への転送は行わずに、受信データを内部メモリ140に格納する。
【0053】
蓄積されたデータの容量が閾値を超えている場合は(ステップS402のYes)、制御部110は、蓄積されたデータの容量が内部メモリ140の容量を超えるおそれがあると判断する。そして、制御部110は、それ以降に受信するデータのIPヘッダに含まれるパケット情報を解析し、データのプロトコルタイプを確認する(ステップS403)。
【0054】
制御部110は、プロトコル確認の結果、データがTCPのデータであった場合は(ステップS403のYes)、受信データを内部メモリ140に格納せずに、メモリ機器200に転送する。このとき、制御部110は、データおよびヘッダをそのまま変更せずに、メモリ機器200に転送する(ステップS404)。制御部110は、受信データをNAS用データと区別できるようにするために、NAS用データが格納される領域とは別の領域に受信データを転送する。このとき、制御部110は、受信データを解析し、受信データの送信先のMACアドレス、つまり送信MACアドレスを取得して、そのMACアドレスにもとづいて受信データを管理、保存する。
【0055】
データが送達確認を行わないUDPのデータであった場合は(ステップS403のNo)、メモリ機器200への転送を行わずに、受信データを内部メモリ140に格納する。
【0056】
HGW100は、受信したデータごとにステップS401〜S404の処理を繰り返す。
【0057】
図5は、ステップS404の後のHGW100の送信開始要求および送信停止要求の制御を示すフローチャートである。
【0058】
ステップS404の後、制御部110は、内部メモリ140に蓄積されたデータの容量が予め設定された閾値を下回っているかを確認する。内部メモリ140に蓄積されたデータの容量が閾値を下回っている場合には(ステップS501のYes)、制御部110は、メモリ機器200に対して送信開始要求を送信する(ステップS502)。このとき、制御部110は、送信要求とともに送信速度情報をメモリ機器200に対して送信する。以降、メモリ機器200は、受信した送信速度情報で指定された送信速度でデータを送信する。
【0059】
制御部110は、メモリ機器200から受信したデータを変更せずにそのままPC300に対して転送する。制御部110は、PC300からポーズフレームなどのフロー制御を受けた場合には(ステップS503のYes)、メモリ機器200に対して送信停止要求を送信して、メモリ機器200の送信処理を停止させる(ステップS504)。制御部110は、PC300からポーズ解除フレームなどを受け付けるまでメモリ機器200の送信処理を停止させた状態を維持する。そして、ステップS501の処理に戻る。
【0060】
制御部110は、送信開始要求を送信してから一定時間経過してもメモリ機器200からデータが受信されない場合には、メモリ機器200内にデータが無いものと判断して(ステップS505のYes)、送信開始要求および送信停止要求の制御を終了する。
【0061】
以上に説明したように、本実施形態によれば、データの送信先の機器からポーズフレームなどのフロー制御を受けた場合にも、データの廃棄やデータの再送を軽減させることができる。
【0062】
また、メモリ機器200のデータ送信速度を指定することができるので、PC300などの送信先の機器のデータ転送能力とメモリ機器200のデータ転送能力とが異なる場合であっても、送信先の機器とメモリ機器200とのデータ転送速度を合わせることによって、ポーズフレームなどによる送信先の機器とHGW100との間のフロー制御を減らすことができ、送信先の機器およびHGW100の処理負担を軽減させることができる。
【0063】
図6は、本発明による通信装置の主要部を示すブロック図である。
図6に示すように、通信装置10(
図1に示すHGW100に相当。)は、ネットワークを介してデータを送信して、メモリ機器20(
図1に示すメモリ機器200に相当。)と接続可能な通信装置であって、記憶手段12(
図1に示すHGW100における内部メモリ140に相当。)と、機器から受信したデータを記憶手段12に記憶し、記憶手段12に記憶されたデータをネットワークを介して他の機器に対して送信する制御手段11(
図1に示すHGW100における制御部110に相当。)とを備え、制御手段11は、記憶手段12に記憶されたデータの容量が予め設定された閾値を超えた場合には、機器から受信したデータをメモリ機器20に転送し、記憶手段12に記憶されたデータの容量が予め設定された閾値を下回ったときにメモリ機器20に記憶されたデータをメモリ機器20から取得して他の機器に送信する。
【0064】
上記の実施形態には、以下のような通信装置も開示されている。
【0065】
(1)制御手段11は、機器から受信したデータに加工を施さずにメモリ機器20に転送する通信装置。
【0066】
(2)制御手段11は、機器から受信したデータのプロトコルタイプを判定し、データがデータ転送の即時性が求められるパケットであった場合に、データをメモリ機器20に転送しない通信装置。
【0067】
(3)制御手段11は、ネットワークを介して機器から受信したデータから受信MACアドレスまたは送信MACアドレスを取得して、受信MACアドレスまたは送信MACアドレスをもとに、メモリ機器20におけるデータの格納領域を決定する通信装置。
【0068】
(4)制御手段11は、記憶手段12に記憶されたデータの容量が予め設定された閾値を下回った場合には、メモリ機器20に対してデータの送信開始要求を送信し、送信開始要求を送信した後に記憶手段12に記憶されたデータの容量が予め設定された閾値を超えた場合には、メモリ機器20に対してデータの送信停止要求を送信する通信装置。
【0069】
(5)制御手段11は、メモリ機器20に対して、データの出力速度を指定する送信速度情報を出力する通信装置。