(57)【要約】【課題】  断続的にデータの送受信を行う場合に、通信モードがスローモードに遷移することを回避し、最適なスループット性能を維持することが可能なＴＣＰコネクション中継方法を提供する。【解決手段】  データを中継するＴＣＰコネクションとして使用された時刻を記憶し、ＴＣＰコネクションの最近の使用時刻からの経過時間を計測し、所定のＴＣＰコネクションがスロースタートモードヘ遷移する経過時間となる前に、前記所定のＴＣＰコネクションの送信バッファが空であるかどうかを確認し、前記送信バッファが空である場合に前記所定のＴＣＰコネクションを通してデータを送信してスロースタートモードヘの遷移を回避するとともに、前記所定のＴＣＰコネクションの最近の使用時刻を現在時刻に更新し、前記送信バッファが空でない場合に前記所定のＴＣＰコネクションの最近の使用時刻を現在時刻に更新する。【選択図】        図４
2006100919.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰ網上に確立したＴＣＰコネクションを介してデータを中継するＴＣＰコネクション中継方法であって、
ＴＣＰコネクションとして使用された時刻を記憶する第１のステップと、
ＴＣＰコネクションの最近の使用時刻からの経過時間を計測する第２のステップと、
所定のＴＣＰコネクションがスロースタートモードヘ遷移する経過時間となる前に、前記所定のＴＣＰコネクションの送信バッファが空であるかどうかを確認する第３のステップと、
前記第３のステップにおいて、前記送信バッファが空である場合に前記所定のＴＣＰコネクションを通してデータを送信してスロースタートモードヘの遷移を回避するとともに、前記所定のＴＣＰコネクションの最近の使用時刻を現在時刻に更新する第４のステップと、
前記第３のステップにおいて、前記送信バッファが空でない場合に前記所定のＴＣＰコネクションの最近の使用時刻を現在時刻に更新する第５のステップとを有することを特徴とするＴＣＰコネクション中継方法。
【請求項２】
ＩＰ網上に確立したＴＣＰコネクションを介してデータを中継するＴＣＰコネクション中継装置であって、
ＴＣＰコネクションとして使用された時刻を記憶する手段１と、
所定のＴＣＰコネクションの最近の使用時刻からの経過時間を計測する手段２と、
前記所定のＴＣＰコネクションがスロースタートモードヘ遷移する経過時間となる前に、前記所定のＴＣＰコネクションの送信バッファが空であるかどうかを確認する手段３と、
前記手段３で確認した結果、前記送信バッファが空である場合に前記所定のＴＣＰコネクションを通してデータを送信してスロースタートモードヘの遷移を回避し、前記所定のＴＣＰコネクションの最近の使用時刻を現在時刻に更新する手段４と、
前記手段３で確認した結果、当該送信バッファが空でない場合に前記所定のＴＣＰコネクションの最近の使用時刻を現在時刻に更新する手段５とを備えることを特徴とするＴＣＰコネクション中継装置。
【請求項３】
ＩＰ網上に確立したＴＣＰコネクションを介してデータを中継するＴＣＰコネクション中継装置であって、
自ＴＣＰコネクション中継装置が確立し収容するＴＣＰコネクションを管理するＴＣＰコネクション管理部と、自ＴＣＰコネクション中継装置が確立しているＴＣＰコネクション毎にＴＣＰコネクションを制御するＴＣＰコネクション制御部とを有し、
前記ＴＣＰコネクション管理部は、ＴＣＰコネクション使用履歴管理部と、ＴＣＰコネクションＲＴＯ回避データ送信部とを有し、
前記ＴＣＰコネクション使用履歴管理部は、ＴＣＰコネクションとして使用された時刻を記憶するとともに、ＴＣＰコネクションの最近の使用時刻からの経過時間を計測し、所定のＴＣＰコネクションがスロースタートモードヘ遷移する経過時間となる前に、前記ＴＣＰコネクション管理部へ、前記所定のＴＣＰコネクションのＲＴＯ回避処理を要求し、さらに、前記ＴＣＰコネクション管理部からの前記所定のＴＣＰコネクションが使用中である通知、あるいは、前記ＴＣＰコネクションＲＴＯ回避データ送信部からのＲＴＯ回避データの送信の通知を受けて、前記所定のＴＣＰコネクションの使用時刻を現在時刻に更新し、
前記ＴＣＰコネクションＲＴＯ回避データ送信部は、前記ＴＣＰコネクション管理部からのＲＴＯ回避データ送信要求を受け付け、ＲＴＯ回避データを作成し、対応するＴＣＰコネクション制御部へ送信するとともに、ＲＴＯ回避データの送信を前記ＴＣＰコネクション使用履歴管理部に通知し、
ＴＣＰコネクション管理部は、前記ＴＣＰコネクション使用履歴管理部からの前記所定のＴＣＰコネクションのＲＴＯ回避処理の要求を受けると、対応するＴＣＰコネクション制御部の送信バッファ内が空であるかどうかを確認し、送信バッファ内部が空でない場合に前記所定のＴＣＰコネクションが使用中である通知を前記ＴＣＰコネクション使用履歴管理部へ行い、また、送信バッファが空である場合に前記ＴＣＰコネクションＲＴＯ回避データ送信部へ、前記所定のＴＣＰコネクションヘのＲＴＯ回避データ送信要求を行うことを特徴とするＴＣＰコネクション中継装置。
【請求項４】
前記ＴＣＰコネクション制御部は、ＲＴＯタイマー管理部を有し、
前記ＴＣＰコネクション管理部は、ＴＣＰコネクションＲＴＯ時間管理部を有し、
前記ＴＣＰコネクションＲＴＯ時間管理部は、各ＴＣＰコネクションのＲＴＯ時間を各ＴＣＰコネクションに対応したＴＣＰコネクション制御部のＲＴＯタイマー制御部より取得して管理し、
前記ＴＣＰコネクション使用履歴管理部は、前記ＴＣＰコネクションＲＴＯ時間管理部の管理する各ＴＣＰコネクションのＲＴＯ時間と計測した経過時間から、経過時間がＲＴＯ時間×α（０＜α＜１）以上となった場合、前記ＴＣＰコネクション管理部へ、前記所定のＴＣＰコネクションのＲＴＯ回避処理を要求することを特徴とする請求項３に記載のＴＣＰコネクション中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＣＰコネクション中継方法およびＴＣＰコネクション中継装置に係り、特に、ＩＰ網上に確立したＴＣＰコネクションを介して遠隔地にあるストレージヘアクセス行うＩＰストレージネットワークにおいて、ストレージヘのアクセスデータをＴＣＰコネクションで中継を行う際の、ＴＣＰコネクションのスループットの高速化に関する。
【背景技術】
【０００２】
ＩＰ網を利用して遠隔地にあるＳＡＮ（Storage Area Network）およびストレージヘのアクセスを可能にするＩＰストレージネットワークがある。
ＳＡＮとは、ファイバチャネル網（以下、ＦＣ網という）に複数のストレージ・サーバを接続して共有するストレージエリアネットワークを意味する。
通常、サーバとストレージ間では、ＳＣＳＩ（Small Computer System Interface）プロトコルによるブロック単位データのWRITE／READ操作を行うが、ＳＡＮにおいては、サーバとストレージはＳＣＳＩプロトコルを、一旦ファイバチャネルフレームにカプセル化するＳＣＳＩファイバチャネルプロトコル（ＦＣＰ）を用いてブロック単位データのWRITE／READ操作を行う。
図５（ａ）、図５（ｂ）は、従来のＴＣＰコネクション中継装置を用いて構築したＩＰストレージネットワークの概略構成を示すブロック図である。
図５（ａ）は、ｉＳＣＳＩあるいはＳＣＳＩ over ＩＰと呼ばれる構成例である。
図５（ａ）では、ＴＣＰコネクション中継装置（11，21）を組み込んだサーバ10とストレージ20が、従来のＴＣＰコネクション中継装置（11，21）によってＩＰ網30に確立されたＴＣＰコネクションを介してＳＣＳＩプロトコルのデータを送受する。
図５（ｂ）は、ＦＣＩＰ、ｉＦＣＰと呼ばれる構成例である。
図５（ｂ）では、ＦＣ網（60，80）上に構築された各ＳＡＮに従来のＴＣＰコネクション中継装置（41，51）を設置し、ＴＣＰコネクション中継装置（41，51）同士がＩＰ網７０上に確立したＴＣＰコネクションを介して異なるＦＣ網（60，80）上に構築されたＳＡＮにあるサーバ４０とストレージ50がＦＣＰプロトコルデータ（ＳＣＳＩプロトコルデータ）を送受する形態である。
【０００３】
図６は、従来のＴＣＰコネクション中継装置の概略構成を示すブロック図である。
ＴＣＰコネクション中継装置40000は、ＳＡＮのＦＣ網と接続する機能を持つＦＣインターフェース部、あるいはサーバ・ストレージに接続する機能を持つ内部バスインターフェース部41000と、ＩＰ網と接続する機能を有するＩＰ網インターフェース部42000、ＴＣＰコネクションを制御・管理する機能を有するＴＣＰ処理部43000から構成される。
図７は、従来のＴＣＰコネクション中継装置40000における、ＴＣＰ処理部43000の概略構成を示すブロック図である。
ＴＣＰ処理部43000は、ＴＣＰコネクション中継装置40000が確立し、収容するＴＣＰコネクションを管理するＴＣＰコネクション管理部43100と、ＴＣＰコネクション中継装置40000が確立しているＴＣＰコネクション毎にＴＣＰコネクションを制御するＴＣＰコネクション制御部43200から構成される。
ＴＣＰコネクション制御部43200は、ＴＣＰコネクション中継装置40000が確立しているＴＣＰコネクション数と同数だけ存在し得るが、それぞれは一意に識別されるポート番号が付与されている。
ＴＣＰコネクション管理部43100は、ＴＣＰコネクション中継装置40000のＦＣインターフェース部あるいは内部バスインターフェース部41000より受信したデータ（ＦＣＰプロトコルデータ、あるいは、ＳＣＳＩプロトコルデータ）を、当該データに含まれる宛先の情報から適切なＴＣＰコネクションを選択する機能を有するＴＣＰコネクション選択部43110を有し、ＴＣＰコネクション選択部43110で選択されたＴＣＰコネクションに対応したＴＣＰコネクション制御部43200へ、当該データ（ＦＣＰプロトコルデータ、あるいは、ＳＣＳＩプロトコルデータ）を転送する。
【０００４】
ＴＣＰコネクション制御部43200は、ＴＣＰコネクション管理部43100より受け取ったデータ（ＦＣＰプロトコルデータ、あるいは、ＳＣＳＩプロトコルデータ）をＴＣＰの最大セグメントサイズ毎に分割して、ＴＣＰヘッダを付与してＴＣＰセグメントとし、以降は、RFC2001“TCP Slow Start,Congestion Avoidance,Fast Retransmit,and Fast Recovely Algorithms”に則ったＴＣＰプロトコルのウィンド制御・フロー制御にしたがって宛先のＴＣＰコネクション中継装置へ送信する。
ＴＣＰプロトコルとは、送信側と受信側で誤りのないデータ転送を保証するプロトコルであり、受信側はデータを受け取ると受信確認応答（ＡＣＫ）を返送し、送信側ではある一定時間（タイムアウト時間；以下、ＲＴＯという）経過してもＡＣＫを受け取れない場合、もしくは重複したＡＣＫを受け取った場合に、そのデータを再送信するフロー制御を行うプロトコルである。
また、ＴＣＰは、ネットワークの輻輳の状態に応じて、ネットワークを効率的に利用して通信を行うためのウィンドサイズ制御機能を備えており、ネットワークの輻輳状態に応じて、ウィンドサイズが増減さえることにより、ＴＣＰのデータ転送速度を増減させるウィンド制御を行うプロトコルでもある。
ＴＣＰコネクション制御部43200は、ＲＴＯタイマー管理部43210、ウィンドサイズ管理部43220、送信バッファ管理部43230、および受信バッファ管理部43240から構成される。
ウィンドサイズ管理部43220は、ＡＣＫ（受信応答）を受信しなくとも送信できるＴＣＰセグメント数であるウィンドサイズを動的に制御する機能を有する。
ウィンドサイズは、ＡＣＫ（受信応答）とともに告知される受信側のＴＣＰコネクション制御部の受信バッファ管理部で判断される受信可能容量（告知ウィンドサイズ）と、送信側でネットワークの輻輳の状態に応じて調整する輻輳ウィンドサイズ（以下、cwndという）のいずれか小さい方の値に設定される。
【０００５】
以下に、送信側のｃｗｎｄの調整方法について説明する。
cwndの調整方法は、２つのモード、スロースタートモードと輻輳回避モードに分かれる。これらのモードは閾値（slow start threshold：以下、ssthreshという）によって切り替えられる。
cwnd＜ssthreshの間はスロースタートモードであり、cwnd≧ssthreshとなると、輻輳回避モードとなる。
スロースタートモードは、データ送信開始時およびＡＣＫがＲＴＯ時間内に戻ってこない時、あるいは、最後にデータを送信してからＲＴＯ時間経過しても送信するデータがなく、ＴＣＰコネクションが遊休状態の時に開始される。
スロースタート開始時において、cwndは最小値（例えば、１）に設定され、ＡＣＫを受信する度に、cwndは１ずつ増加する。
cwnd≧ssthreshとなると、輻輳回避モードとなり、以降は、ＡＣＫを受信する度に、cwndは１／cwndずつ増加する。
ssthreshの値は、最初ある程度大きな値に設定されているが、ＲＴＯ時間内にＡＣＫが戻ってこない場合や、重複ＡＣＫ受信の通知を受けた場合は、ＴＣＰセグメントの損失と判断し、現在のcwndの半分の値に再設定する。
また、最後にデータを送信してからＲＴＯ時間経過してもデータがなく、ＴＣＰコネクションが遊休状態であると判断された場合も、ssthreshの値は、現在のcwndの半分の値に再設定する。
なお、重複ＡＣＫ受信の通知を受けた時、cwndの値は、新しいssthresh＋３の値に設定する。
【０００６】
送信バッファ管理部43230は、送信バッファを有し、未送信のＴＣＰセグメントおよびＡＣＫを受信していない未確認応答ＴＣＰセグメントを送信バッファに管理している。
送信バッファ管理部43230は、ＡＣＫ受信の通知を受けると、ＡＣＫに対応した送信済ＴＣＰセグメントを送信バッファから削除する。
受信したＡＣＫが重複ＡＣＫであった場合、送信バッファ管理部43230は、ＴＣＰコネクション制御部43200に重複ＡＣＫの受信を通知する。
ＲＴＯタイマー管理部43210は、ＴＣＰセグメント送信時から計測したＡＣＫが戻ってくるまでの時間（Round Trip Time：RTT）を基に、タイムアウト時間（ＲＴＯ）を計算し、ＲＴＯ時間内に、ＴＣＰセグメントのＡＣＫが戻ってこない場合に、当該ＴＣＰセグメントが損失したと判断し、ＴＣＰコネクション制御部43200へＴＣＰセグメント損失を通知する。
また、最後にデータを送信してから現在のＲＴＯを超過後も送信するデータがない場合にも、ＴＣＰコネクション制御部43200へＴＣＰコネクションが遊休状態であることを通知する。
受信バッファ管理部43240は、ＴＣＰセグメントを受信するとＡＣＫとともに、告知ウィンドサイズをＴＣＰセグメント送信元のＴＣＰコネクション制御部43200へ送信する。
ＴＣＰコネクション制御部43200は、送信バッファ管理部43230において管理されている未受信応答ＴＣＰセグメント数がウィンドサイズ管理部43220で管理されているウィンドサイズに達すると送信バッファ管理部43230で管理されている未送信ＴＣＰセグメントの送信を一時停止する機能を有する。
また、ＡＣＫとともに告知ウィンドサイズを受信すると、送信バッファ管理部43230へＡＣＫ受信を通知するとともに、ウィンドサイズ管理部43220へ告知ウィンドサイズを通知する機能を有する。
ＲＴＯタイマー管理部43210よりＲＴＯ時間内にＴＣＰセグメントのＡＣＫが戻ってこない通知や、送信バッファ管理部43230より重複ＡＣＫ受信の通知を受けると、通知をウィンドサイズ管理部43220へ通知するとともに、送信バッファ管理部43230で管理されている、ＴＣＰセグメントを再送信する機能を有する。
ＲＴＯタイマー管理部43210より、最後にデータを送信してからＲＴＯ時間経過しても送信するデータがなくＴＣＰコネクションが遊休状態であるという通知を受けると、通知をウィンドサイズ管理部43220へ通知する機能を有する。
【０００７】
なお、本願発明に関連する先行技術文献としては以下のものがある。
【非特許文献１】JDSFファイバチャネル技術部会,ファイバチャネル技術解説書II
【非特許文献２】RFC2001 "TCP Slow Start,Congestion Avoidance,Fast Retransmit,               and Fast Recovery Algorithms"
【非特許文献３】RFC2414 "Increasing TCP's Initial Window"
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前述した様に、ＩＰ網を利用して遠隔地にあるＳＡＮ（Storage Area Network）およびストレージヘブロック単位でアクセスする際のデータ（ＦＣＰプロトコルデータ、あるいは、ＳＣＳＩプロトコルデータ）は、送信側のＴＣＰコネクション中継装置が、ＦＣインターフェース部あるいは内部バスインターフェース部41000で受信し、当該データに含まれる宛先の情報から選択されたＴＣＰコネクションを通して、当該ＴＣＰコネクションを終端する遠隔にある受信側のＴＣＰコネクション中継装置へと中継していた。
この送信側のＴＣＰコネクション中継装置と受信側のＴＣＰコネクション中継装置の間に確立されているＴＣＰコネクションは、これらのデータ（ＦＣＰプロトコルデータ、あるいは、ＳＣＳＩプロトコルデータ）を中継している間は、ＴＣＰのウィンドサイズ制御機能に従い、ネットワークの輻輳の状態に応じて、ウィンドサイズを調節して、ネットワークを効率的に利用できるスループットに保ち、該データを効率的に転送する。
しかしながら、最後にデータを送信してからＲＴＯ時間以上経過しても送信するデータがなく、ＴＣＰコネクションが遊休状態になるとスロースタートモードとなり、ウィンドサイズは最小となりＴＣＰのスループットは最小となる。
ＩＰ網を利用して遠隔地にあるＳＡＮおよびストレージヘのアクセスする間隔は、アクセスするユーザあるいはアプリケーションの動作に依存し、前述したようなＲＴＯ時間以上のアクセス間隔が発生することは十分に有り得る。
したがって、ＲＴＯ時間以上のアクセス間隔が発生し、ＴＣＰコネクションがＲＴＯ時間の遊休状態になる度に、ＴＣＰのスループットが最小となり、当該ＴＣＰコネクションを利用してデータの転送を再開しても、ＴＣＰコネクションはスロースタートモードに遷移している。
そのため、ＴＣＰのウィンドサイズの制御にしたがって、ネットワークを効率的に利用できるＴＣＰ転送速度となるウィンドサイズになるまで、ＴＣＰセグメントと何度か送信してＡＣＫを受け取らなければならず、その間、ネットワークを効率的に利用できず、ネットワークの状態に応じた本来のＴＣＰのスループット性能が享受できないために、従来のＴＣＰコネクション中継装置を利用した遠隔地にあるＳＡＮおよびストレージヘのアクセスに対して十分なレスポンス時間が得られないという問題点があった。
【０００９】
本発明は、前記従来技術の問題点を解決するためになされたものであり、本発明の目的は、ＴＣＰコネクション中継方法およびＴＣＰコネクション中継装置において、断続的にデータの送受信を行う場合に、通信モードがスローモードに遷移することを回避し、最適なスループット性能を維持することが可能となる技術を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面によって明らかにする。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記の通りである。
前述の課題を解決するために、本発明に係る、ＩＰ網上に確立したＴＣＰコネクションを介してデータを中継するＴＣＰコネクション中継方法および中継装置では、データを中継するＴＣＰコネクションとして使用された時刻を記憶し、ＴＣＰコネクションの最近の使用時刻からの経過時間を計測し、経過時間がスロースタートモードヘ遷移するＲＴＯ時間になる前、即ち、係数α（０＜α＜１）を乗じたＲＴＯ時間×α以上になったＴＣＰコネクションについて送信バッファが空であるかどうかを確認し、当該送信バッファが空である時に、ＴＣＰコネクションが遊休状態であると判断し、ＲＴＯ回避のためのＴＣＰセグメントを該ＴＣＰコネクションを通して送信するとともに、ＴＣＰコネクションの最近の使用時刻を現在時刻に更新し、また、前記送信バッファが空でない時に、ＴＣＰコネクションは遊休状態でないと判断し、ＴＣＰコネクションの最近の使用時刻を現在時刻に更新することを特徴とする。
【発明の効果】
【００１１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
本発明によれば、ＴＣＰコネクションを利用して断続的にデータの送受信を行う場合に、通信モードがスローモードに遷移することを回避できるため、ウィンドサイズが最小値に更新されることなく、最適なスループット性能を維持することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施例を詳細に説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
図１は、本発明の実施例のＴＣＰコネクション中継装置の概略構成を示すブロック図である。
本実施例のＴＣＰコネクション中継装置20000は、ＳＡＮ（Storage Area Network）のＦＣ網と接続する機能を持つＦＣインターフェース部、あるいはサーバ・ストレージに接続する機能を持つ内部バスインターフェース部21000と、ＩＰ網と接続する機能を有するＩＰ網インターフェース部22000、ＴＣＰコネクションを制御・管理する機能を有するＴＣＰ処理部23000から構成される。
ＳＡＮのＦＣ網と接続する機能を持つＦＣインターフェース部、あるいはサーバ・ストレージに接続する機能を持つ内部バスインターフェース部21000と、ＩＰ網と接続する機能を有するＩＰ網インターフェース部22000は、従来のＴＣＰコネクション中継装置40000における、ＦＣインターフェース部、あるいはサーバ・ストレージに接続する機能を持つ内部バスインターフェース部41000と、ＩＰ網インターフェース部42000と同じであるので詳細な説明は省略する。
【００１３】
図２は、本実施例のＴＣＰコネクション中継装置におけるＴＣＰ処理部23000の概略構成を示すブロック図である。
ＴＣＰ処理部23000は、ＴＣＰコネクション中継装置20000が確立し収容するＴＣＰコネクションを管理するＴＣＰコネクション管理部23100と、ＴＣＰコネクション中継装置20000が確立しているＴＣＰコネクション毎にＴＣＰコネクションを制御するＴＣＰコネクション制御部23200から構成される。
ＴＣＰコネクション制御部23200は、ＲＴＯタイマー管理部23210、ウィンドサイズ管理部23220、送信バッファ管理部23230、および受信バッファ管理部23240を有する。
それぞれの機能は、従来のＴＣＰコネクション中継装置40000のＴＣＰコネクション制御部43200におけるＲＴＯタイマー管理部43210、ウィンドサイズ管理部43220、送信バッファ管理部43230、および受信バッファ管理部43240と同様であるので、再度の詳細な説明を省略する。
【００１４】
ＴＣＰコネクション管理部23000は、ＴＣＰコネクション選択部23100、ＴＣＰコネクション使用履歴管理部23120、ＴＣＰコネクションＲＴＯ時間管理部23130およびＴＣＰコネクションＲＴＯ回避データ送信部23140を有する。
ＴＣＰコネクション管理部23100は、ＴＣＰコネクション中継装置20000のＦＣインターフェース部あるいは内部バスインターフェース部21000より受信したデータ（ＦＣＰプロトコルデータ、あるいは、ＳＣＳＩプロトコルデータ）を、ＴＣＰコネクション選択部23110が選択したＴＣＰコネクションに対応したＴＣＰコネクション制御部23200へ転送する機能と、ＴＣＰコネクション使用履歴管理部23120より、ＴＣＰコネクションのポート番号とともに当該ＴＣＰコネクションのＲＴＯ回避処理の要求を受けると対応するＴＣＰコネクション制御部23200の送信バッファ管理部23230の送信バッファが空であるかどうかを確認し、送信バッファが空であった時、ＴＣＰコネクションＲＴＯ回避データ送信部23140へ、当該ＴＣＰコネクションのポート番号とともに、当該ＴＣＰコネクションヘのＲＴＯ回避データ送信要求を行う機能を有する。
ＴＣＰコネクション選択部23110は、ＴＣＰコネクション中継装置20000がＦＣインターフェース部あるいは内部バスインターフェース部21000より受信したデータ（ＦＣＰプロトコルデータ、あるいは、ＳＣＳＩプロトコルデータ）を、当該データに含まれる宛先の情報から適切なＴＣＰコネクションを選択する機能を有するとともに、ＴＣＰコネクション使用履歴管理部23120へ選択したＴＣＰコネクションを識別するポート番号を通知する機能を有する。
ＴＣＰコネクションＲＴＯ時間管理部23130は、各ＴＣＰコネクションのＲＴＯ時間を各ＴＣＰコネクションに対応したＴＣＰコネクション制御部23200のＲＴＯタイマー制御部23210より取得し、ＴＣＰコネクションのポート番号とともに管理する機能を有する。
【００１５】
ＴＣＰコネクション使用履歴管理部23120は、ＴＣＰコネクション選択部23110より通知を受けたＴＣＰコネクションのポート番号と通知を受けた時刻をＴＣＰコネクションの最近の使用時刻として記憶（管理）する機能を有するとともに、各ＴＣＰコネクションの最近の使用時刻から現在時刻までの経過時間と、ＴＣＰコネクションＲＴＯ時間管理部23130が管理する各ＴＣＰコネクションのＲＴＯ時間を比較する機能を有し、最近の使用時刻からＲＴＯ時間×α（０＜α＜１）の時間が経過していた場合、ＴＣＰコネクション管理部23100へ、当該ＴＣＰコネクションのポート番号とともに、当該ＴＣＰコネクションのＲＴＯ回避処理を要求する機能を有する。
ＴＣＰコネクションＲＴＯ回避データ送信部23140は、ＴＣＰコネクション管理部23100より、任意のＴＣＰコネクションのＲＴＯ回避データ送信要求を、当該ＴＣＰコネクションのポート番号より受けるとＲＴＯ回避データを作成し、当該ポート番号を持つＴＣＰコネクション制御部へ送信する機能を有する。
なお、ＲＴＯ回避データはＲＴＯ回避データであることが識別できるコードのみが付与されていればよく、ＲＴＯ回避データを受信したＴＣＰコネクション中継装置では該識別コードからＲＴＯ回避データであることを判断し、ＦＣインターフェース部あるいは内部バスインターフェース部21000へ転送せず廃棄される。
【００１６】
図３は、本実施例のＴＣＰコネクション中継装置におけるＴＣＰコネクション使用履歴記憶処理の処理手順を示すフローチャートである。
ＴＣＰコネクション中継装置20000は、ＦＣインターフェース部あるいは内部バスインターフェース部21000より受信したストレージアクセスデータ（ＦＣＰプロトコルデータ、あるいは、ＳＣＳＩプロトコルデータ）を、ＴＣＰ処理部23000に転送する（ステップＳ１１０）。
ストレージアクセスデータが転送されたＴＣＰ処理部23000のＴＣＰコネクション管理部23100は、ＴＣＰコネクション選択部23110に、当該ストレージアクセスデータの宛先情報から適切なＴＣＰコネクションの選択を依頼し、ＴＣＰコネクションの選択の依頼を受けたＴＣＰコネクション選択部23110は、当該ストレージアクセスデータの宛先情報から適切なＴＣＰコネクションを選択するとともに、選択したＴＣＰコネクションを識別するポート番号をＴＣＰコネクション管理部23100に応答し、さらに、ＴＣＰコネクション使用履歴管理部23120へ選択したＴＣＰコネクションを識別するポート番号を通知する（ステップＳ１２０）。
ＴＣＰコネクション選択部23110よりＴＣＰコネクションを識別するポート番号の通知を受けたＴＣＰコネクション使用履歴管理部23120は、通知を受けたＴＣＰコネクションのポート番号と通知を受けた時刻をＴＣＰコネクションの最近の使用時刻として記憶する（ステップＳ１３０）。
ＴＣＰコネクション選択部23110より選択したＴＣＰコネクションのポート番号の通知を受けたＴＣＰコネクション管理部23100は、当該ストレージアクセスデータを、通知を受けたポート番号に対応したＴＣＰコネクション制御部23200へ転送する。
ストレージアクセスデータの転送を受けたＴＣＰコネクション制御部23200は、当該データにＴＣＰプロトコルヘッダ情報を付与して送信バッファに一旦バッファリングし（ステップＳ１４０）、ＴＣＰのウィンド制御に従い、ＴＣＰコネクションを通して、宛先のＴＣＰコネクション中継装置へ転送する（ステップＳ１５０）。
【００１７】
図４は、本実施例のＴＣＰコネクション中継装置におけるＴＣＰコネクションのスロースタート回避処理の処理手順を示すフローチャートである。
ＴＣＰコネクション使用履歴管理部23120は、管理しているＴＣＰコネクションの最近の使用時刻から現在時刻までの経過時間を計測しており（ステップＳ２１０）、ＴＣＰコネクションＲＴＯ時間管理部23130の管理する各ＴＣＰコネクションのＲＴＯ時間と計測した経過時間から、経過時間がＲＴＯ時間×α（０＜α＜１）以上となった場合、ＴＣＰコネクション管理部23100へ、当該ＴＣＰコネクションのポート番号とともに、当該ＴＣＰコネクションのＲＴＯ回避処理を要求する（ステップＳ２２０）。
ＴＣＰコネクション使用履歴管理部23120より、ＴＣＰコネクションのポート番号とともに、ＴＣＰコネクションのＲＴＯ回避処理の要求を受けたＴＣＰコネクション管理部23100は、対応するＴＣＰコネクション制御部23200の送信バッファ内が空であるかどうかを確認する（ステップＳ２３０）。
ステップＳ２３０において、送信バッファ内部が空でないと確認された場合、ＴＣＰコネクションは遊休状態でなく、ＴＣＰウィンド制御に従って送信バッファ内のデータを送信中であり、ＲＴＯ時間経過によるスロースタートの恐れはないと判断され、当該ポート番号とともに、当該ＴＣＰコネクションが使用中である通知をＴＣＰコネクション使用履歴管理部23120へ行い、通知を受けたＴＣＰコネクション使用履歴管理部23120は、当該ポート番号のＴＣＰコネクションの使用時刻を現在時刻に更新する（ステップＳ２５０）。
ステップＳ２３０において、送信バッファが空であると確認された場合、ＴＣＰコネクションが遊休状態であると判断し、ＴＣＰコネクションＲＴＯ回避データ送信部23140へ当該ＴＣＰコネクションのポート番号とともに、当該ＴＣＰコネクションヘのＲＴＯ回避データ送信要求を行い、ＲＴＯ回避データ送信要求を受けたＴＣＰコネクションＲＴＯ回避データ送信部23140はＲＴＯ回避データを作成し、当該ポート番号を持つＴＣＰコネクション制御部23200へ送信し、ＴＣＰコネクションのＲＴＯ時間以上の遊休時間によるスロースタートを回避する（ステップＳ２４０）。
ＲＴＯ回避データを送信したＲＴＯ回避データ送信部23140は、当該ポート番号とともに、ＲＴＯ回避データの送信をＴＣＰコネクション使用履歴管理部23120に通知し、通知を受けたＴＣＰコネクション使用履歴管理部23120は、当該ポート番号のＴＣＰコネクションの使用時刻を現在時刻に更新する（ステップＳ２５０）。
【００１８】
以上説明したように、本実施例によれば、ＩＰ網上に確立したＴＣＰコネクションを介して遠隔地にあるストレージヘアクセス行うＩＰストレージネットワークにおいて、ストレージアクセスデータの送信側のＴＣＰコネクション中継装置と受信側のＴＣＰコネクション中継装置の間に確立されているＴＣＰコネクションを利用してデータを断続的に送受する際、送信側のＴＣＰコネクション中継装置において、ＴＣＰコネクションの遊休時間がＲＴＯ時間となる前に当該ＴＣＰコネクションにＲＴＯ回避データの送信を行う。
これにより、ＴＣＰコネクションを利用するユーザあるいはアプリケーションのデータ送信間隔が、ＲＴＯ時間以上になる度にＴＣＰコネクションがスロースタートモード（スロースタートモードでは、該ＴＣＰコネクションのウィンドサイズが最小値に更新されるためＴＣＰコネクションの転送能力は最小になる）に遷移することを回避し、ＴＣＰコネクションは輻輳回避モードに維持され、最後にデータ送信してからＲＴＯ時間以上経過した後にデータ送信を再開したユーザあるいはアプリケーションであっても、ウィンドサイズがネットワークを効率的に利用できるサイズに維持されているため、ネットワークの状態に応じた本来のＴＣＰコネクションのスループット性能を享受することが可能となる。
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施例のＴＣＰコネクション中継装置の概略構成を示すブロック図である。
【図２】本発明の実施例のＴＣＰコネクション中継装置におけるＴＣＰ処理部の概略構成を示すブロック図である。
【図３】本発明の実施例のＴＣＰコネクション中継装置におけるＴＣＰコネクション使用履歴記憶処理の処理手順を示すフローチャートである。
【図４】本発明の実施例のＴＣＰコネクション中継装置におけるＴＣＰコネクションのスロースタート回避処理の処理手順を示すフローチャートである。
【図５（ａ）】従来のＴＣＰコネクション中継装置を用いて構築したＩＰストレージネットワークの一例の概略構成を示すブロック図である。
【図５（ｂ）】従来のＴＣＰコネクション中継装置を用いて構築したＩＰストレージネットワークの他の例の概略構成を示すブロック図である。
【図６】従来のＴＣＰコネクション中継装置の概略構成を示すブロック図である。
【図７】従来のＴＣＰコネクション中継装置おけるＴＣＰ処理部の概略構成を示すブロック図である。
【符号の説明】
【００２０】
10，40  サーバ
11，21，41，51，20000，40000  ＴＣＰコネクション中継装置
20，50  ストレージ
30，70  ＩＰ網
60，80  ＦＣ網
21000，41000  ＦＣインターフェース部あるいは内部バスインターフェース部
22000，42000  ＩＰ網インターフェース部
23000，43000  ＴＣＰ処理部
23100，43100  ＴＣＰコネクション管理部
23110，43110  ＴＣＰコネクション選択部
23120  ＴＣＰコネクション使用履歴管理部
23130  ＴＣＰコネクションＲＴＯ時間管理部
23140  ＴＣＰコネクションＲＴＯ回避データ送信部
23200，43200  ＴＣＰコネクション制御部
23210，43210  ＲＴＯタイマー管理部
23220，43220  ウィンドサイズ管理部
23230，43230  送信バッファ管理部
23240，43240  受信バッファ管理部
【図１】
2006100919.tif 000003
【図２】
2006100919.tif 000004
【図３】
2006100919.tif 000005
【図４】
2006100919.tif 000006
【図５（ａ）】
2006100919.tif 000007
【図５（ｂ）】
2006100919.tif 000008
【図６】
2006100919.tif 000009
【図７】
2006100919.tif 000010