(57)【特許請求の範囲】
【請求項１】
第１の処理装置と第２の処理装置とを接続し、ネットワークを介して他の中継装置と接続する中継装置であって、
前記他の中継装置への送信データの送信タイミングを制御するスケジューラと、
前記送信データを前記他の中継装置に送信する送信部と、
前記他の中継装置にデータを送信してから応答を受信するまでの時間であるラウンドトリップタイム（ＲＴＴ）を測定し、測定したＲＴＴに基づいて送信タイミング時間を算出する算出部と、
を備え、
前記スケジューラは、
前記送信データが検出されると、検出された送信データのサイズが所定値以下である場合、前記送信データが検出されてから経過した時間が、前記送信タイミング時間に達した後に、前記送信データを前記送信部に出力することを特徴とする中継装置。
【請求項２】
前記所定値は、トランスミッションコントロールプロトコルにおける最大セグメントサイズであることを特徴とする請求項１記載の中継装置。
【請求項３】
前記算出部は、測定された複数のＲＴＴの平均値を前記送信タイミング時間として算出することを特長とする請求項１または２記載の中継装置。
【請求項４】
前記算出部は、定期的にＲＴＴを測定することを特徴とする請求項１乃至３のいずれか１項に記載の中継装置。
【請求項５】
前記算出部は、前記測定したＲＴＴが許容値より大きい場合、前記測定したＲＴＴを前記送信タイミング時間の算出に用いないことを特徴とする請求項１乃至４のいずれか１項に記載の中継装置。
【請求項６】
第１の処理装置と第２の処理装置とを接続し、ネットワークを介して他の中継装置と接続する中継装置の通信方法であって、
前記他の中継装置にデータを送信してから応答を受信するまでの時間であるラウンドトリップタイム（ＲＴＴ）を測定し、
測定したＲＴＴに基づいて送信タイミング時間を算出し、
前記送信データが検出されると、検出された送信データのサイズが所定値以下である場合、前記送信データが検出されてから経過した時間が、前記送信タイミング時間に達した後に、前記送信データを前記他の中継装置に送信することを特徴とする通信方法。
【請求項７】
前記所定値は、トランスミッションコントロールプロトコルにおける最大セグメントサイズであることを特徴とする請求項６記載の通信方法。
【請求項８】
前記送信タイミング時間を算出する処理において、測定された複数のＲＴＴの平均値を前記送信タイミング時間として算出することを特長とする請求項６または７記載の通信方法。
【請求項９】
定期的にＲＴＴを測定することをさらに行うことを特徴とする請求項６乃至８のいずれか１項に記載の通信方法。
【請求項１０】
前記測定したＲＴＴが許容値より大きい場合、前記測定したＲＴＴを前記送信タイミング時間の算出に用いないことを特徴とする請求項６乃至９のいずれか１項に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置および中継装置間のデータの通信方法に関する。
【背景技術】
【０００２】
現在、ホストと入出力（ＩＯ）装置間の通信路を延長装置を用いて延長することで、ホストとＩＯ装置間の物理的距離を延長することが行われている。
図１に示すようなチャネル延長システム１１において、ホスト１２とチャネル延長装置１３は、チャネルインタフェースで接続し、チャネル延長装置１３とチャネル延長装置１４はネットワーク１６を介して接続し、チャネル延長装置１４とＩＯ装置１５は、チャネルインタフェースで接続している。
【０００３】
チャネル延長装置１３、１４を介して接続されたホスト１２とＩＯ装置１５間のデータ転送において、チャネル延長装置１３、１４間では、コネクション指向型トランスポートプロトコルにより通信を行う。
【０００４】
コネクション指向型トランスポートプロトコルでは、一般的に転送効率向上アルゴリズムを用いている。例えば、Transmission Control Protocol （TCP）においては、Nagleアルゴリズムや遅延確認応答（Delay ACK）アルゴリズムが用いられる。
【０００５】
Nagleアルゴリズムにおいては、データ送信を下記のいずれかのタイミングで行う。
（１）送信データのサイズがMaximum Segment Size（MSS）以上になった。あるいは、
（２）前回送信したデータの確認応答を受信した。あるいは、
（３）送信データの検出から一定時間（例えば、２００ミリ秒）経過した。
【０００６】
すなわち、ＭＳＳ以下のデータを１個送信する場合、送信は一定時間待たされることになる。
一般的に転送効率向上アルゴリズムの“一定時間”、すなわち送信待ち時間は、ネットワークの遅延より大きく設定されている。例えば、TCPのNagleアルゴリズムでの送信待ち時間は200ミリ秒が一般的なのに対して、ネットワークの遅延は実用レベル（日本国内）で最大でも50ミリ秒である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１２９４８７号公報
【特許文献２】特開２０００−２７８３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ホストとＩＯ装置間のデータの送受信において、データサイズがＭＳＳ以下の小サイズデータと、ＭＳＳ以上の大サイズデータとが混在している。
例えば、ＩＯ装置をテープ装置とすると、テープ装置へのデータの書き込みを行う場合、テープデータの書き込みの前後で制御用のコマンドやステータスがホストとＩＯ装置間送信される。
【０００９】
チャネル延長装置間で、制御用コマンドを転送する際、制御用コマンドはＭＳＳ以下のサイズになる。また、ＩＯ装置は処理が完了するたびにステータスをホストに応答する。ステータスをチャネル延長装置間で転送する場合も該ステータスのデータサイズはＭＳＳ以下となる。
【００１０】
チャネル延長装置間のデータ通信において、Nagleアルゴリズムのような既存の転送効率向上アルゴリズムを使用すると、小サイズのデータを送信する際に必要以上の遅れが発生するという問題があった。それにより、チャネル延長システム全体の転送性能低下につながるという問題があった。
【００１１】
また、転送効率向上アルゴリズムを用いない場合、送信間隔が０になるため、少サイズのデータがネットワーク上に頻発しネットワークの輻輳が発生してしまうという問題、データが細切れに送信される可能性があるため、大きいサイズのデータを送信する際の転送効率が下がるという問題があった。
【００１２】
本発明の課題は、ネットワークの輻輳を回避しつつ小サイズのデータの送信待ち時間を減らすことが可能な装置を提供することである。
【課題を解決するための手段】
【００１３】
実施の形態の中継装置は、第１の処理装置と第２の処理装置とを接続し、ネットワークを介して他の中継装置と接続する中継装置であって、前記他の中継装置への送信データの送信タイミングを制御するスケジューラと、前記送信データを前記他の中継装置に送信する送信部と、前記他の中継装置にデータを送信してから応答を受信するまでの時間であるラウンドトリップタイム(RTT)を測定し、測定したＲＴＴに基づいて送信タイミング時間を算出する算出部と、を備える。
【００１４】
前記スケジューラは、前記送信データが検出されると、検出された送信データのサイズが所定値以下である場合、前記送信データが検出されてからの時間が、前記送信タイミング時間を経過した後に、前記送信データを前記送信部に出力する。
【発明の効果】
【００１５】
実施の形態の中継装置によれば、ネットワークの輻輳を回避しつつ小サイズのデータの送信待ち時間を減らすことが可能となる。
【図面の簡単な説明】
【００１６】
【図１】従来のチャネル延長システムの構成図である。
【図２】実施の形態に係るチャネル延長システムの構成図である。
【図３】実施の形態に係るチャネル延長装置の構成図である。
【図４】実施の形態に係るトランスポートプロトコル処理部の構成図である。
【図５】グローバルテーブルの例である。
【図６】ＲＴＴ記録テーブルの例である。
【図７】実施の形態に係るＲＴＴ計測パケットの送信処理のフローチャートである。
【図８】実施の形態に係るＲＴＴ算出処理のフローチャートである。
【図９】実施の形態に係る送信処理のフローチャートである。
【図１０】従来技術および実施の形態のデータ書き込みのシーケンス図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照しながら実施の形態について説明する。
図２は、実施の形態に係るチャネル延長システムの構成図である。
チャネル延長システム１０１は、ホスト１０２、チャネル延長装置１０３、１０４、および入出力（ＩＯ）装置１０５を備える。
【００１８】
ホスト１０２およびＩＯ装置１０５は、処理装置の一例である。
チャネル延長装置１０３、１０４は、中継装置の一例である。
ホスト１０２は、ＩＯ装置１０５へのデータの入出力要求を行う情報処理装置である。
【００１９】
ホスト１０２は、延長装置１０３とチャネルインタフェースで接続している。チャネルインタフェースは、例えば、電気チャネル（Block Multiplexer Channel (BMC)）や光チャネル（Optical Channel LINK (OCLINK)）である。
【００２０】
チャネル延長装置１０３は、ホスト１０２に対して擬似ＩＯ装置として動作する。チャネル延長装置１０３は、チャネル延長装置１０４とネットワーク１０６を介して接続している。ネットワーク１０６は、例えば、Local Area Network(LAN)やWide Area Network (WAN)である。
【００２１】
チャネル延長装置１０３、１０４間はInternet Protocol(IP)接続により接続され、  チャネル延長装置１０３、１０４は、送信先のチャネル延長装置へのデータ送達を保証するためコネクション指向型トランスポートプロトコルを用いた通信を行う。
【００２２】
チャネル延長装置１０４は、ＩＯ装置１０５とチャネルインタフェースで接続している。チャネル延長装置１０４は、ＩＯ装置１０５に対して擬似ホストとして動作する。
チャネル延長装置１０３、１０４は、ホスト１０２とＩＯ装置１０５間のデータを中継する。
【００２３】
ＩＯ装置１０５は、ホスト１０２からのデータの入力およびホスト１０２へのデータの出力を行う。ＩＯ装置１０５は、例えば、テープ装置、磁気ディスク装置、またはプリンタ等である。
【００２４】
図３は、実施の形態に係るチャネル延長装置の構成図である。
チャネル延長装置２０１は、チャネルインタフェース送受信部２０２、データ変換部２０３、トランスポートプロトコル処理部２０４、ＩＰプロトコル処理部２０５、およびネットワーク送受信部２０６を備える。
【００２５】
なお、チャネル延長装置２０１は、図２のチャネル延長装置１０３、１０４に対応する。
チャネルインタフェース送受信部２０２は、データ変換部２０３から受信したデータをホスト１０２またはＩＯ装置１０５に送信、およびホスト１０２またはＩＯ装置１０５から受信したデータをデータ変換部２０３に送信する。
【００２６】
データ変換部２０３は、チャネルインタフェースとネットワーク間のプロトコルの変換を行う。データ変換部２０３は、チャネルインタフェース送受信部２０２またはトランスポートプロトコル処理部２０４からデータを受信し、プロトコル変換を行い、トランスポートプロトコル処理部２０４またはチャネルインタフェース送受信部２０２に変換したデータを送信する。
【００２７】
トランスポートプロトコル処理部２０４は、往復遅延時間（Round Trip Time:RTT）の計測やＲＴＴに基づいたデータの送信タイミングの制御などを行う。ＲＴＴは、送信先にデータを送ってから、該送信先からの確認応答（ACK）を受信するまでにかかる時間である。
【００２８】
実施の形態において、ＲＴＴを用いる理由は下記のとおりである。
ＲＴＴは、コネクション指向型プロトコルにおいて、送信相手へのデータ送達確認に最低限必要な時間である。ＲＴＴより小さい時間でデータを送信するということは、冗長したデータを送信する行為となり、限りあるネットワーク資源の浪費となる。よって、これを回避することはネットワーク輻輳回避につながる。
【００２９】
またＲＴＴは、送信相手の距離に依存（詳細には機器性能にも依存）して変化する値である。送信相手との距離が遠ければＲＴＴは大きくなり、反対に近ければＲＴＴは小さくなる。送信タイミングをＲＴＴ分あけて送信できれば、送信相手の場所にあわせた送信タイミングの最適化につながる。
【００３０】
上記事項を考慮し、実施の形態において、ネットワークの輻輳を極力回避しつつ、小サイズのデータ送信タイミングを最適にする方法としてＲＴＴに基づいたデータ送信タイミングを採用している。
【００３１】
トランスポートプロトコル処理部２０４は、データ変換部２０３からデータを受信してＩＰプロトコル処理部２０５へ送信、またはＩＰプロトコル処理部２０５からデータを受信してデータ変換部２０３へ送信する。
【００３２】
ＩＰプロトコル処理部２０５は、送信データに対してＩＰヘッダを付加、または受信データに対してＩＰヘッダの削除を行う。ＩＰプロトコル処理部２０５は、トランスポートプロトコル処理部２０４からデータを受信し、該データにＩＰヘッダを付加してネットワーク送受信部２０６へ送信、またはネットワーク送受信部２０６からデータを受信し、該データからＩＰヘッダを削除してトランスポートプロトコル処理部２０４へ送信する。
【００３３】
ネットワーク送受信部２０６は、ＩＰプロトコル処理部２０５から入力されたデータをネットワーク１０６を介して接続している対向するチャネル延長装置に送信、または対向するチャネル延長装置からデータを受信してＩＰプロトコル処理部２０５に出力する。
【００３４】
図３の実線矢印はホスト１０２またはＩＯ装置１０５からデータを受信した際のデータの処理ルートを示し、点線矢印はホスト１０２またはＩＯ装置１０５へデータを送信する際のデータの処理ルートを示す。
【００３５】
図４は、実施の形態に係るトランスポートプロトコル処理部の構成図である。
トランスポートプロトコル処理部２０４は、送信バッファ２１１、格納部２１２、送信スケジューラ２１３、データ送信部２１４、データ受信部２１５、ＲＴＴ算出部２１６、受信バッファ２１７、およびＲＴＴ計測パケット送信部２１８を備える。
【００３６】
送信バッファ２１１は、データ変換部２０３から受信した送信データを一時的に格納するバッファである。
格納部２１２は、各種データを格納する記憶手段である。格納部２１２は、例えば、Random Access Memory(RAM)が用いられる。格納部２１２は、グローバルテーブル２１９を格納している。グローバルテーブル２１９には、許容ＲＴＴ値および平均ＲＴＴ値が記述されている。なお、グローバルテーブル２１９の詳細については後述する。
【００３７】
送信スケジューラ２１３は、データサイズに基づいたデータ送信、および平均ＲＴＴ値に基づいたタイミングによるデータ送信を行う。送信スケジューラ２１３は、スケジューラバッファ２２０を備える。送信スケジューラ２１３は、送信バッファ２１１からデータを読み出し、スケジューラバッファ２２０に格納する。送信スケジューラ２１３は、適宜、スケジューラバッファ２２０のデータをデータ送信部２１４に出力する。
【００３８】
データ送信部２１４は、送信スケジューラ２１３、ＲＴＴ算出部２１６、またはＲＴＴ計測パケット送信部２１８から入力されたデータをＩＰプロトコル処理部２０５に出力する。
【００３９】
データ受信部２１５は、ＩＰプロトコル処理部２０５からデータを受信し、該データをＲＴＴ算出部２１６または受信バッファ２１７に出力する。データ受信部２１５は、受信したデータがＲＴＴ計測パケットの場合はＲＴＴ算出部２１６に出力し、受信したデータがホスト１０２またはＩＯ装置１０５へのデータの場合は受信バッファ２１７に出力する。
【００４０】
ＲＴＴ算出部２１６は、ＲＴＴ記録テーブル２２１を有する。ＲＴＴ算出部２１６は、ＲＴＴを測定し、ＲＴＴ記録テーブル２２１に記述する。ＲＴＴ算出部２１６は、ＲＴＴの平均値を算出し、平均ＲＴＴ値をグローバルテーブル２１９に記述する。
【００４１】
受信バッファ２１７は、データ受信部２１５から受信した受信データを一時的に格納するバッファである。
ＲＴＴ計測パケット送信部２１８は、ＲＴＴを計測するためのパケット（ＲＴＴ計測パケット）をデータ送信部２１４に出力する。
【００４２】
図５は、グローバルテーブルの例である。
グローバルテーブル２１９には、許容ＲＴＴ値および平均ＲＴＴ値が記述される。なお、ＲＴＴ値の単位はミリ秒としている。
【００４３】
許容ＲＴＴ値は、平均ＲＴＴ値を算出する際に使用するＲＴＴ測定値の最大値を示す。許容ＲＴＴ値は、例えばネットワークのキャリアにより保証されるＲＴＴを許容ＲＴＴ値とすることができる。また、一時的なネットワークの輻輳が発生していると経験的に判断されるＲＴＴを許容ＲＴＴ値とすることもできる。
【００４４】
平均ＲＴＴ値は、所定数のＲＴＴの平均値である。なお、平均ＲＴＴ値の算出の詳細については後述する。
例えば、図５のグローバルテーブル２１９において、許容ＲＴＴ値は６０（ミリ秒）、平均ＲＴＴ値は２０（ミリ秒）である。
【００４５】
図６は、ＲＴＴ記録テーブルの例である。
ＲＴＴ記録テーブル２２１には、複数のＲＴＴ測定値とＲＴＴ測定値格納域No.が記述されている。
【００４６】
ＲＴＴ測定値は、ＲＴＴ算出部２１６で測定されたＲＴＴである。
図６においては、１０個のＲＴＴ測定値が記述されており、各ＲＴＴ測定値の記述箇所にはNo.0からNo.9までの番号が割り当てられている。
【００４７】
例えば、図６において、ＲＴＴ測定値No.0のＲＴＴ測定値は２０（ミリ秒）である。
ＲＴＴ測定値格納域No.は、次に測定したＲＴＴを書き込む場所を示す。すなわち、未書き込みのＲＴＴ測定値No.もしくは最古のＲＴＴ測定値No.を示している。
【００４８】
実施の形態において、ＲＴＴ測定値格納域No.は０から９の値をとり、９でラップアラウンドして０に戻る。
例えば、図６において、ＲＴＴ測定値格納域No.は１であるので、次に測定されたＲＴＴ測定値は、ＲＴＴ測定値No.1の箇所に上書きされる。
【００４９】
次に、ＲＴＴの測定および管理について説明する。
先ず、ＲＴＴを測定するためのＲＴＴ計測パケットの送信処理について説明する。
図７は、実施の形態に係るＲＴＴ計測パケットの送信処理のフローチャートである。
【００５０】
ステップＳ５０１において、ＲＴＴ計測パケット送信部２１８は、ＲＴＴ計測パケット送信契機タイマを起動する。なお、ＲＴＴ計測パケット送信契機タイマは、ＲＴＴ計測パケット送信部２１８に備えられている。ＲＴＴ計測パケット送信契機タイマは、所定時間（例えば、１０秒）で満了する。
【００５１】
ステップＳ５０２において、ＲＴＴ計測パケット送信部２１８は、ＲＴＴ計測パケット送信契機タイマが満了したかチェックする。ＲＴＴ計測パケット送信契機タイマが満了した場合、制御はステップＳ５０３に進み、ＲＴＴ計測パケット送信契機タイマが満了していない場合、制御はステップＳ５０２に戻る。なお、ＲＴＴ計測パケット送信契機タイマは満了後、リセットされ、再度、所定時間で満了する。
【００５２】
ステップＳ５０３において、ＲＴＴ計測パケット送信部２１８は、ＲＴＴ計測パケットをデータ送信部２１４に送信する。ＲＴＴ計測パケットには、送信時の時刻や計測パケットを送信した延長装置を識別するための識別子が含まれている。ＲＴＴ計測パケットは、データ送信部２１４からＩＰプロトコル処理部２０５に出力され、さらにネットワーク送受信部２０６を経由してネットワーク１６を介して接続されたチャネル延長装置に送信される。
【００５３】
ＲＴＴはネットワークの中継経路やネットワーク内の中継装置により変動するので、実施の形態の延長装置２０４は、定期的にＲＴＴ計測パケットを送信してＲＴＴを測定し、その時々のＲＴＴを採用している。
【００５４】
次に、ＲＴＴの測定および平均の算出について説明する。
図８は、実施の形態に係るＲＴＴ算出処理のフローチャートである。
ステップＳ６０１において、ＲＴＴ算出部２１６は、ＲＴＴ計測パケットを受信する。
【００５５】
ステップＳ６０２において、ＲＴＴ算出部２１６は、受信したＲＴＴ計測パケットが自身が送信したパケットであるか否か、すなわち受信したＲＴＴ計測パケットが過去に自身が自身と接続する他の延長装置に送信し、該他の延長装置から折り返されたパケットであるか否か判定する。受信したＲＴＴ計測パケットが自身が送信したパケットである場合、制御はステップＳ６０４に進み、自身が送信したパケットでない場合、制御はステップＳ６０３に進む。受信したＲＴＴ計測パケットが自身が送信したパケットであるか否かは、ＲＴＴ計測パケット内に記述された識別子により判定する。
【００５６】
ステップＳ６０３において、ＲＴＴ算出部２１６は、受信したＲＴＴ計測パケットを発信元、すなわち対向のチャネル延長装置へ折り返す。
ステップＳ６０４において、ＲＴＴ算出部２１６は、ＲＴＴ計測パケット内に記述された時刻と現時刻との差分を算出し、該差分をＲＴＴ測定値とする。
【００５７】
ステップＳ６０５において、ＲＴＴ算出部２１６は、グローバルテーブル２１９を参照し、許容ＲＴＴ値を読み出す。
ステップＳ６０６において、ＲＴＴ算出部２１６は、ＲＴＴ測定値が許容ＲＴＴより大きいか否か判定する。ＲＴＴ測定値が許容ＲＴＴより大きい場合、処理を終了し、ＲＴＴ測定値が許容ＲＴＴより大きくない場合、制御はステップＳ６０７に進む。
【００５８】
ステップＳ６０７において、ＲＴＴ算出部２１６は、ＲＴＴ記録テーブル２２１に記録されたＲＴＴ測定値の数が閾値以上であるか否か判定する。実施の形態において、閾値は１０としている。ＲＴＴ測定値の数が閾値以上である場合、制御はステップＳ６０８に進み、閾値未満である場合、制御はステップＳ６０９に進む。
【００５９】
ステップＳ６０８において、ＲＴＴ算出部２１６は、ＲＴＴ記録テーブル２２１に記録されたＲＴＴ測定値のうち、最古のＲＴＴ測定値を削除する。
ステップＳ６０９において、ＲＴＴ算出部２１６は、ステップＳ６０４で算出したＲＴＴ測定値をＲＴＴ記録テーブル２２１に書き込む。
【００６０】
ステップＳ６１０において、ＲＴＴ算出部２１６は、ＲＴＴ記録テーブル２２１に記録されたＲＴＴ測定値の平均値を算出し、該平均値をＲＴＴ平均値としてグローバルテーブル２１９に書き込む。
【００６１】
図９は、実施の形態に係る送信処理のフローチャートである。
ステップＳ７０１において、送信スケジューラ２１３は、送信バッファ２１１に送信データがあるか否かチェックする。送信データがある場合は、制御はステップＳ７０３に進み、送信データがない場合は、制御はステップＳ７０２に進む。
【００６２】
ステップＳ７０２において、送信スケジューラ２１３は、スケジューラバッファ２２０が空であるか否かチェックする。スケジューラバッファ２２０が空である場合、ステップＳ７０１に戻り、スケジューラバッファ２２０が空でない場合、制御はステップＳ７０６に進む。
【００６３】
ステップＳ７０３において、送信スケジューラ２１３は、スケジューラバッファ２２０が空であるか否かチェックする。スケジューラバッファ２２０が空である場合、ステップＳ７０４に進み、スケジューラバッファ２２０が空でない場合、制御はステップＳ７０５に進む。
【００６４】
ステップＳ７０４において、送信スケジューラ２１３は、グローバルテーブル２１９を参照し、ＲＴＴ平均値を読み出す。そして、送信スケジューラ２１３は、送信契機タイマを起動し、送信契機タイマの満了時間をＲＴＴ平均値にセットする。それにより、送信契機タイマは、起動してからＲＴＴ平均値経過すると、満了する。なお、送信契機タイマは、送信スケジューラ２１３に備えられている。
【００６５】
ステップＳ７０５において、送信スケジューラ２１３は、送信バッファ２１１の送信データをスケジューラバッファ２２０に格納する。
ステップＳ７０６において、送信スケジューラ２１３は、スケジューラバッファ２２０に格納されているデータのサイズがMaximum Segment Size（ＭＳＳ）以上であるか判定する。スケジューラバッファ２２０のデータのサイズがＭＳＳ以上の場合、制御はステップＳ７０８に進み、ＭＳＳ未満の場合、制御はステップＳ７０７に進む。なお、ＭＳＳは、ＴＣＰにおけるデータの送信単位(セグメント)の最大値である。
【００６６】
ステップＳ７０７において、送信スケジューラ２１３は、スケジューラバッファ２２０に格納されているデータのうち、ＭＳＳ分のデータをデータ送信部２１４に出力する。
ステップＳ７０８において、送信スケジューラ２１３は、確認応答を受信しているか否か判定する。確認応答を受信している場合、制御はステップＳ７１０に進み、確認応答を受信していない場合、制御はステップＳ７０９に進む。
【００６７】
なお、確認応答は、スケジューラバッファ２２０が空になる前の前回送信したデータに対する応答である。
ステップＳ７０９において、送信スケジューラ２１３は、送信契機タイマが満了したかチェックする。送信契機タイマが満了した場合、制御はステップＳ７１０に進み、送信契機タイマが満了していない場合、制御はステップＳ７０１に戻る。
【００６８】
ステップＳ７１０において、送信スケジューラ２１３は、スケジューラバッファ２２０に格納されている全データをデータ送信部２１４に出力する。
【００６９】
図１０は、従来技術および実施の形態のデータ書き込みのシーケンス図である。
図１０の左側は従来のデータ書き込みのシーケンス図であり、右側は実施の形態のデータ書き込みのシーケンス図である。
【００７０】
図１０は、ホストからＩＯ装置へデータを書き込んだ場合のシーケンスを示している。
ここで、ＩＯ装置１５、１０５はテープ装置としている。
従来技術において、先ず、ホスト１２はチャネル延長装置１３に制御コマンドを送信し（ステップＳ８０１）、チャネル延長装置１３はチャネル延長装置１４に制御コマンドを送信し（ステップＳ８０２）、チャネル延長装置１４はＩＯ装置１５に制御コマンドを送信する（ステップＳ８０３）。
【００７１】
ＩＯ装置１５は、制御コマンドに対する応答、すなわちステータス（例えば、書き込み準備ＯＫ）をチャネル延長装置１４に送信し（ステップＳ８０４）、チャネル延長装置１４はチャネル延長装置１２にステータスを送信し（ステップＳ８０５）、チャネル延長装置１３はホスト１２にステータスを送信する（ステップＳ８０６）。
【００７２】
ホスト１２はチャネル延長装置１３にテープデータを送信し（ステップＳ８０７）、チャネル延長装置１３はチャネル延長装置１４にテープデータを送信し（ステップＳ８０８）、チャネル延長装置１４はＩＯ装置１５にテープデータを送信する（ステップＳ８０９）。そして、ＩＯ装置１５はテープデータを書き込む。
【００７３】
ＩＯ装置１５は、書き込み完了後、書き込みを完了した旨をステータスとして、チャネル延長装置１４に送信し（ステップＳ８１０）、チャネル延長装置１４はチャネル延長装置１２にステータスを送信し（ステップＳ８１１）、チャネル延長装置１３はホスト１２にステータスを送信する（ステップＳ８１２）。
【００７４】
実施の形態において、先ず、ホスト１０２はチャネル延長装置１０３に制御コマンドを送信し（ステップＳ９０１）、チャネル延長装置１３はチャネル延長装置１０４に制御コマンドを送信し（ステップＳ９０２）、チャネル延長装置１０４はＩＯ装置１０５に制御コマンドを送信する（ステップＳ９０３）。
【００７５】
ＩＯ装置１０５は、制御コマンドに対する応答、すなわちステータス（例えば、書き込み準備ＯＫ）をチャネル延長装置１０４に送信し（ステップＳ９０４）、チャネル延長装置１０４はチャネル延長装置１０２にステータスを送信し（ステップＳ９０５）、チャネル延長装置１０３はホスト１０２にステータスを送信する（ステップＳ９０６）。
【００７６】
ホスト１０２はチャネル延長装置１０３にテープデータを送信し（ステップＳ９０７）、チャネル延長装置１３はチャネル延長装置１０４にテープデータを送信し（ステップＳ９０８）、チャネル延長装置１０４はＩＯ装置１０５にテープデータを送信する（ステップＳ９０９）。そして、ＩＯ装置１０５はテープデータを書き込む。
【００７７】
ＩＯ装置１０５は、書き込み完了後、書き込みを完了した旨をステータスとして、チャネル延長装置１０４に送信し（ステップＳ９１０）、チャネル延長装置１０４はチャネル延長装置１０２にステータスを送信し（ステップＳ９１１）、チャネル延長装置１０３はホスト１０２にステータスを送信する（ステップＳ９１２）。
【００７８】
図１０においては、制御コマンドおよびステータスのサイズはＭＳＳ以下であり、テープデータのサイズはＭＳＳより大きいとする。
図１０の従来技術において、チャネル延長装置１３、１４間の通信は、Nagleアルゴリズムを用いている。
【００７９】
したがって、従来技術の＊で示されているステップＳ８０２での制御コマンドの送信およびステップＳ８０５、Ｓ８１１でのステータスの送信において、制御コマンドまたはステータスの検出から送信まで２００ミリ秒要する。
【００８０】
対して、実施の形態の＊＊で示されているステップＳ９０２での制御コマンドの送信およびステップＳ９０５、Ｓ９１１でのステータスの送信において、制御コマンドまたはステータスの検出から送信までの待ち時間は平均ＲＴＴ値で済む。
【００８１】
通常、ＲＴＴは、日本国内では最大でも５０ミリ秒程度なので、平均ＲＴＴ値は、２００ミリ秒よりも小さくなる。
したがって、実施の形態においては、チャネル延長装置間で送信される制御コマンドおよびステータスの送信待ち時間が従来技術に比べて短縮される。それにより、全体のデータの書き込み処理の時間は短縮される。
【００８２】
実施の形態のチャネル延長装置によれば、延長装置間の小サイズデータの送信待ち時間が減少するため、ホストからＩＯ装置へのデータ書き込み時間は短縮される。
実施の形態のチャネル延長装置によれば、ＲＴＴに基づいた送信スケジュール制御を行うことで小サイズデータの送信間隔を短縮できる。特に小サイズデータと大サイズデータが混在する場合に大サイズデータの転送効率を維持しつつ小サイズのデータ送信間隔を最適に保つことができる。その結果、一連のデータ転送を高速に行うことが可能となる。
【００８３】
また、実施の形態のチャネル延長装置によれば、ＲＴＴを定期的に測定して平均ＲＴＴ値を算出し、ＲＴＴ平均値をその時点での最適な送信タイミングとして送信の制御を行っている。それにより、ネットワーク輻輳により一時的に遅延が大きくなったとしても、ＲＴＴ平均値は過敏に変化しないので安定した転送性能を維持することが可能となる。
【００８４】
また、実施の形態のチャネル延長装置によれば、測定したＲＴＴを許容値と比較し、許容値より大きいＲＴＴをＲＴＴ平均値の算出に用いない機能を有している。それにより、チャネル延長装置間に点在するネットワーク機器の問題等で突発的かつ一時的に大きな遅延が発生しても、ＲＴＴ平均値は変化しないので転送性能を損なうことがなくなる。
【００８５】
以上の効果により、チャネル延長装置を介したホストコンピュータ−ＩＯ装置間のリモート転送において、制御コマンド・ステータスのような小サイズデータとテープデータ・印字データのような大サイズデータが混在しても、小サイズデータの送信待ち時間の効率低下を抑えることができ、システム全体の通信性能を向上できる。
【符号の説明】
【００８６】
１１    チャネル延長システム
１２    ホスト
１３、１４    チャネル延長装置
１５    ＩＯ装置
１６    ネットワーク
１０１    チャネル延長システム
１０２    ホスト
１０３、１０４    チャネル延長装置
１０５    ＩＯ装置
１０６    ネットワーク
２０１    チャネル延長装置
２０２    チャネルインタフェース送受信部
２０３    データ変換部
２０４    トランスポートプロトコル処理部
２０５    IPプロトコル処理部
２０６    ネットワーク送受信部
２１１    送信バッファ
２１２    格納部
２１３    送信スケジューラ
２１４    データ送信部
２１５    データ受信部
２１６    ＲＴＴ算出部
２１７    受信バッファ
２１８    ＲＴＴ計測パケット送信部
２１９    グローバルテーブル
２２０    スケジューラバッファ
２２１    ＲＴＴ記録テーブル
【図１】
0005598306.tif 000002
【図２】
0005598306.tif 000003
【図３】
0005598306.tif 000004
【図４】
0005598306.tif 000005
【図５】
0005598306.tif 000006
【図６】
0005598306.tif 000007
【図７】
0005598306.tif 000008
【図８】
0005598306.tif 000009
【図９】
0005598306.tif 000010
【図１０】
0005598306.tif 000011