(57)【特許請求の範囲】
【請求項１】
送信可能数の範囲で所定単位のデータを他の通信装置に送信する通信装置であって、
前記送信可能数を記憶する記憶部と、
前記データの送信により前記送信可能数から前記データの送信数を減算して更新し、
前記データの送達確認により前記送信可能数に前記データの送達確認数を加算して更新し、
前記送信可能数の所定の減少状態を検出した場合に、前記送信可能数から前記データの送信数を減算しないダミーデータを送信し、
前記ダミーデータの送達確認により前記送信可能数に前記ダミーデータの送達確認数を加算して更新する、
制御部と、
を備える通信装置。
【請求項２】
前記制御部は、所定の監視期間において前記送信可能数が所定数まで復帰しないことの検出により、前記減少状態を検出する、
請求項１記載の通信装置。
【請求項３】
前記制御部は、前記送信可能数の初期値と、前記所定の監視期間における前記送信可能数の最大値との差分が１より大きい場合に、前記減少状態を検出する、
請求項２記載の通信装置。
【請求項４】
前記制御部は、前記減少状態の検出ごとに前記ダミーデータを１つ送信する、
請求項３記載の通信装置。
【請求項５】
前記制御部は、前記送信可能数の初期値と、前記所定の監視期間における前記送信可能数の最大値との差分が１以上である場合に、前記減少状態を検出し、
前記ダミーデータを送信後に、所定時間経過または前記ダミーデータの送達確認まで前記データの送信を待機する、
請求項２記載の通信装置。
【請求項６】
コンピュータに、
通信装置から他の通信装置に所定単位のデータを、記憶部が記憶する送信可能数の範囲で送信させ、
前記データの送信により前記送信可能数から前記データの送信数を減算して更新し、
前記データの送達確認により前記送信可能数に前記データの送達確認数を加算して更新し、
前記送信可能数の所定の減少状態を検出した場合に、前記送信可能数から前記データの送信数を減算しないダミーデータを送信し、
前記ダミーデータの送達確認により前記送信可能数に前記ダミーデータの送達確認数を加算して更新する、
処理を実行させる通信制御プログラム。
【請求項７】
コンピュータが、
通信装置から他の通信装置に所定単位のデータを、記憶部が記憶する送信可能数の範囲で送信させ、
前記データの送信により前記送信可能数から前記データの送信数を減算して更新し、
前記データの送達確認により前記送信可能数に前記データの送達確認数を加算して更新し、
前記送信可能数の所定の減少状態を検出した場合に、前記送信可能数から前記データの送信数を減算しないダミーデータを送信し、
前記ダミーデータの送達確認により前記送信可能数に前記ダミーデータの送達確認数を加算して更新する、
処理を実行する通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信制御プログラム、および通信制御方法に関する。
【背景技術】
【０００２】
ファイバチャネルは、ＢＢクレジット（Buffer-to-Buffer Credit）という仕組みを用いてフロー制御をおこなう。通信装置は、リンク確立時におこなうネゴシエーションによって、フレームバッファサイズとしてクレジットを設定する。通信装置は、受信ポートが受信可能なフレーム数をクレジットによって管理し、クレジットの範囲で送信ポートからフレームを送信することでフレームロストのないデータ通信を実現している。
【０００３】
また、通信障害など何らかの理由によりクレジットが「０」の状態のままとなり、送信ポートがフレームを送信できなくなる場合があるが、通信装置は、所定の監視時間を経てリカバリ処理により通信を復旧できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２２７４２号公報
【特許文献２】特開２００２−１４１９６４号公報
【特許文献３】特開平９−２３３０８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、たとえばクレジットが「０」と「１」を繰返すような状態、すなわちクレジットが減少して最大値まで復帰しない状態において、通信装置は、必ずしもリカバリ処理を実行しない。これにより、送信ポートは、クレジットが減少した状態で通信を継続することとなり通信性能を低下させる。
【０００６】
１つの側面では、本発明は、通信性能が低下した状態から復帰可能な通信装置、通信制御プログラム、および通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、以下に示すような、通信装置が提供される。通信装置は、送信可能数の範囲で所定単位のデータを他の通信装置に送信する。通信装置は、記憶部と制御部とを備える。記憶部は、送信可能数を記憶する。制御部は、データの送信により送信可能数からデータの送信数を減算して更新し、データの送達確認により送信可能数にデータの送達確認数を加算して更新し、送信可能数の所定の減少状態を検出した場合に、送信可能数からデータの送信数を減算しないダミーデータを送信し、ダミーデータの送達確認により送信可能数にダミーデータの送達確認数を加算して更新する。
【発明の効果】
【０００８】
１態様によれば、通信装置、通信制御プログラム、および通信制御方法において、通信性能が低下した状態から復帰できる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態の通信システムの構成の一例を示す図である。
【図２】第２の実施形態のストレージシステムの構成の一例を示す図である。
【図３】第２の実施形態のＦＣスイッチの構成の一例を示す図である。
【図４】第２の実施形態の通信制御部のハードウェア構成の一例を示す図である。
【図５】第２の実施形態のＦＣスイッチの通信バッファの一例を示す図である。
【図６】第２の実施形態のクレジット監視処理のフローチャートを示す図である。
【図７】第２の実施形態の正常な通信におけるクレジット値の更新シーケンスの一例を示す図である。
【図８】第２の実施形態の通常フレームをフレームロストした通信におけるクレジット値の更新シーケンスの一例を示す図である。
【図９】第２の実施形態の通常フレームに対する応答フレームをフレームロストした通信におけるクレジット値の更新シーケンスの一例を示す図である。
【図１０】第２の実施形態のクレジット復旧処理のフローチャートを示す図である。
【図１１】第２の実施形態のクレジット値非減少状態とクレジット値減少状態における通信シーケンスの一例を示す図である。
【図１２】第２の実施形態のダミーフレームの送信によるクレジット値減少状態からの復旧時における通信シーケンスの一例を示す図である。
【図１３】第２の実施形態のクレジット復旧処理におけるクレジット値減少状態の監視と判定のタイミングチャートの一例を示す図である。
【図１４】第３の実施形態の第２クレジット復旧処理のフローチャートを示す図である。
【図１５】第３の実施形態の第２クレジット復旧処理におけるクレジット値減少状態の監視と判定のタイミングチャートの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、実施の形態について、図面を参照しながら詳細に説明する。
［第１の実施形態］
まず、第１の実施形態の通信システムについて図１を用いて説明する。図１は、第１の実施形態の通信システムの構成の一例を示す図である。
【００１１】
通信システム１は、通信装置２と、通信装置２と通信可能に接続する通信装置３を含む。通信システム１は、通信装置２を送信元とし、通信装置３を通信装置２の送信先とする。たとえば、通信システム１は、ストレージネットワークを構成するＦＣ−ＳＡＮ（Fibre Channel − Storage Area Network）であり、通信装置２，３は、通信を中継するＦＣスイッチ（中継装置）である。
【００１２】
通信装置２は、所定単位（たとえば、フレーム単位）のデータを送信可能数２ｃの範囲で通信装置３に送信する。
通信装置２は、記憶部２ａと制御部２ｂを含む。記憶部２ａは、送信可能数２ｃを記憶する。送信可能数２ｃは、通信装置２が通信装置３に送信できる所定単位のデータ数を示す。たとえば、送信可能数２ｃは、通信装置３が用意する受信バッファのサイズに対応する。
【００１３】
制御部２ｂは、データの送信により送信可能数２ｃからデータの送信数を減算して送信可能数２ｃを更新する。また、制御部２ｂは、データの送達確認により送信可能数２ｃにデータの送達確認数を加算して送信可能数２ｃを更新する。これにより、通信装置２は、送信可能数２ｃの範囲で所定単位のデータを通信装置３に送信できる。
【００１４】
たとえば、送信可能数２ｃが「３」であるとき、制御部２ｂは、通信装置２から通信装置３宛てに３単位のデータ４ａ，４ｂ，４ｃを送信できる。制御部２ｂは、１単位のデータ４ａを送信することで送信可能数２ｃから「１」を減算して送信可能数２ｃを「３」から「２」に更新する。同様にして、制御部２ｂは、データ４ｂ，４ｃの送信により送信可能数２ｃを「２」から「１」、さらに「１」から「０」に更新する。制御部２ｂは、データ４ａ，４ｂ，４ｃのいずれかの送達確認５ａにより送信可能数２ｃに「１」を加算して送信可能数２ｃを「０」から「１」に更新する。
【００１５】
なお、図示しないが、制御部２ｂは、データ４ａ，４ｂ，４ｃに対応する送達確認を順次受信すれば、送信可能数２ｃに「１」を加算して送信可能数２ｃを「２」に、さらに「３」へと更新する。
【００１６】
制御部２ｂは、送信可能数２ｃを監視する。制御部２ｂは、送信可能数２ｃの監視により、所定の減少状態を検出できる。たとえば、制御部２ｂは、送信可能数２ｃが「０」と「１」とを推移して「２以上」に復帰しない状態を所定の減少状態として検出できる。このような状態は、通信装置２から通信装置３宛ての送信量を制限することとなり、通信性能が低下した状態である。
【００１７】
制御部２ｂは、送信可能数２ｃの所定の減少状態を検出した場合に、ダミーデータを送信する。ダミーデータは、制御部２ｂが通信装置３宛てに送信しても、送信可能数２ｃからデータの送信数を減算する対象としないデータである。なお、ダミーデータは、通信装置３によって破棄されてもよいデータである。
【００１８】
たとえば、送信可能数２ｃが「１」であるとき、制御部２ｂは、通信装置２から通信装置３宛てに２単位のダミーデータ６ａ，６ｂを送信できる。制御部２ｂは、２単位のダミーデータ６ａ，６ｂを送信するが、送信可能数２ｃを「１」のままにして更新しない。
【００１９】
制御部２ｂは、ダミーデータの送達確認により送信可能数２ｃにダミーデータの送達確認数を加算して更新する。たとえば、制御部２ｂは、ダミーデータ６ａ，６ｂのいずれかの送達確認７ａにより送信可能数２ｃに「１」を加算して送信可能数２ｃを「２」に更新し、さらなる送達確認７ｂにより送信可能数２ｃを「３」に更新する。
【００２０】
このようにして、通信装置２は、送信可能数２ｃの所定の減少状態に起因して通信性能が低下した状態から復帰できる。
［第２の実施形態］
次に、第２の実施形態のストレージシステムについて図２を用いて説明する。図２は、第２の実施形態のストレージシステムの構成の一例を示す図である。
【００２１】
ストレージシステム１０は、ＦＣ−ＳＡＮである。ストレージシステム１０は、サーバ１１，１２と、ＦＣスイッチ２０，２１と、ＦＣスイッチ２０とＦＣスイッチ２１とを接続するＦＣケーブル１３と、ストレージアレイ１４，１５とを含む。ストレージアレイ１４，１５は、大容量の記憶装置である。サーバ１１，１２は、ＦＣスイッチ２０，２１を介してストレージアレイ１４，１５にアクセスできる。
【００２２】
次に、第２の実施形態のＦＣスイッチ２０，２１について図３を用いて説明する。図３は、第２の実施形態のＦＣスイッチの構成の一例を示す図である。ＦＣスイッチ２０，２１は、通信装置の一形態である。なお、ＦＣスイッチ２０を例示して説明するが、ＦＣスイッチ２１もＦＣスイッチ２０と同様の構成を有する。
【００２３】
ＦＣスイッチ２０は、全体制御部２０ａと、通信制御部２２と、フラッシュメモリ２３と、管理用ＬＡＮ（Local Area Network）ポート２４と、複数のＦＣポート２００ａ，２００ｂ，２００ｃ，２００ｄを含む。全体制御部２０ａは、ＦＣスイッチ２０を統括的に制御する。全体制御部２０ａは、ユーザからの命令（コマンド）を受け付けて、通信制御部２２が実現する各種機能を動作させる。全体制御部２０ａは、管理用ＬＡＮポート２４を介して操作用端末装置と接続し、操作用端末装置からユーザが入力する命令を受け付けることができる。たとえば、ユーザは、操作用端末装置からＦＣスイッチ２０にアクセスし、ｔｅｌｎｅｔ、ｈｔｔｐ（Hypertext Transfer Protocol）、ＳＳＨ（Secure Shell）などのプロトコルを用いてゾーニング（Zoning）設定を含む各種設定をおこなうことができる。
【００２４】
フラッシュメモリ２３は、不揮発性のメモリであり、ゾーニングデータベース２３ａやネームサーバ２３ｂなどの情報を保持する。全体制御部２０ａは、ゾーニングデータベース２３ａやネームサーバ２３ｂなどの情報を生成または更新できる。
【００２５】
ゾーニングデータベース２３ａは、ユーザが設定したアクセス制御の定義情報を保持するデータベースである。ゾーニングデータベース２３ａは、アクセスを許可するデバイス間の組み合わせを保持する。ゾーニングデータベース２３ａは、たとえば、アクセスを許可するデバイス間の組み合わせとして、「ＦＣポート２００ａ、ＦＣポート２００ｃ」、「ＦＣポート２００ｂ、ＦＣポート２００ｄ」を保持する。
【００２６】
ネームサーバ２３ｂは、ＦＣスイッチ２０に接続されたデバイスの識別情報、製造ベンダー名、製品型名などの情報を保持するデータベースである。ネームサーバ２３ｂは、ＦＣスイッチ２０内での転送に用いるアドレス情報を付与してデバイスを登録する。
【００２７】
通信制御部２２は、通信制御およびゾーニング制御をおこなう。通信制御部２２は、ゾーニング制御として、ユーザが設定したゾーニングデータベース２３ａのゾーニング情報にもとづいてアクセス制限をおこなう。通信制御部２２は、受信バッファにデータを一時的に格納した後、ゾーニング制御によりアクセス制御情報と通信データ内の宛先情報とを照合して、適切な宛先ポートの送信バッファに転送する。これにより、通信制御部２２は、通信元から通信先へのデータ転送をおこなうことができるとともに、不正なアクセスを制限することができる。
【００２８】
通信制御部２２は、通信データ内の宛先情報から適切な送信先を選択し、選択した送信先宛てにデータを転送する。通信制御部２２は、ネームサーバ２３ｂが保持するアドレス情報を用いてＦＣスイッチ２０内でのデータ通信を制御できる。
【００２９】
通信制御部２２は、送受信のための一時的なデータを格納する格納領域として通信バッファを有する。通信バッファは、ＦＣスイッチ２０が送受信するデータを格納するためのメモリ領域である。通信制御部２２は、ＦＣポート２００ａ，２００ｂ，２００ｃ，２００ｄごとの通信バッファを内部メモリに用意する。通信バッファは、受信データを格納する受信バッファと、送信データを格納する送信バッファとを含む。なお、通信制御部２２は、通信バッファに加えて、受信バッファの空き領域の大きさを示すクレジット（第１の実施形態の送信可能数２ｃに相当）を受信バッファごとに内部メモリに用意する。
【００３０】
次に、通信制御部２２のハードウェア構成について図４を用いて説明する。図４は、第２の実施形態の通信制御部のハードウェア構成の一例を示す図である。
通信制御部２２は、プロセッサ１００と、バス１０１と、ＲＡＭ（Random Access Memory）１０２と、フラッシュメモリ１０３と、外部インタフェース１０４を含む。
【００３１】
プロセッサ１００は、通信制御部２２の制御部として機能する。プロセッサ１００には、バス１０１を介して、ＲＡＭ１０２とフラッシュメモリ１０３と外部インタフェース１０４が接続されている。プロセッサ１００は、２以上のプロセッサからなるマルチコアプロセッサであってもよい。
【００３２】
プロセッサ１００は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。なお、通信制御部２２は、プロセッサ１００に限らず、通信制御部２２が含む構成要素の一部または全部をＡＳＩＣによって実現するものであってもよい。
【００３３】
ＲＡＭ１０２とフラッシュメモリ１０３は、通信制御部２２の記憶部として機能する。フラッシュメモリ１０３には、ＯＳ（Operating System）のプログラム、アプリケーションプログラム、および各種データが格納される。
【００３４】
ＲＡＭ１０２には、プロセッサ１００に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時格納される。また、ＲＡＭ１０２には、プロセッサ１００による処理に必要な各種データが格納される。また、ＲＡＭ１０２は、プロセッサ１００のキャッシュメモリや、ＦＣポート２００ａ，２００ｂ，２００ｃ，２００ｄの通信バッファとして機能する。また、ＲＡＭ１０２は、ＦＣポート２００ａ，２００ｂ，２００ｃ，２００ｄのクレジットを記憶する。
【００３５】
なお、外部インタフェース１０４は、全体制御部２０ａとＦＣポート２００ａ，２００ｂ，２００ｃ，２００ｄを接続する他、通信制御部２２に周辺機器を接続するための通信インタフェースである。たとえば、外部インタフェース１０４には、図示しないメモリ装置やメモリリーダライタを接続することができる。メモリ装置は、外部インタフェース１０４との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなう装置である。メモリカードは、たとえば、カード型の記録媒体である。
【００３６】
また、外部インタフェース１０４には、図示しないモニタを接続してもよい。その場合、外部インタフェース１０４は、プロセッサ１００からの命令にしたがって、画像をモニタの画面に表示させるグラフィック処理機能を有する。
【００３７】
また、外部インタフェース１０４は、図示しないキーボードやマウスを接続してもよい。その場合、外部インタフェース１０４は、キーボードやマウスから送られてくる信号をプロセッサ１００に送信する。なお、マウスは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３８】
また、外部インタフェース１０４は、図示しない光学ドライブ装置を接続してもよい。光学ドライブ装置は、レーザ光などを利用して、光ディスクに記録されたデータの読み取りをおこなう。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３９】
以上のようなハードウェア構成によって、第２の実施形態の通信制御部２２の処理機能を実現することができる。
なお、全体制御部２０ａや第１の実施形態に示した通信装置２も、図４に示した通信制御部２２と同様のハードウェアにより実現することができる。
【００４０】
通信制御部２２は、たとえば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施形態の処理機能を実現する。通信制御部２２に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、通信制御部２２に実行させるプログラムをフラッシュメモリ１０３に格納しておくことができる。プロセッサ１００は、フラッシュメモリ１０３内のプログラムの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。また、通信制御部２２に実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ１００からの制御により、フラッシュメモリ１０３にインストールされた後、実行可能となる。またプロセッサ１００が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４１】
次に、ＦＣスイッチ２０，２１の通信バッファについて図５を用いて説明する。図５は、第２の実施形態のＦＣスイッチの通信バッファの一例を示す図である。
ＦＣスイッチ２０が有するＦＣポート２００ａは、ＦＣスイッチ２１が有するＦＣポート２１０ａとＦＣケーブル１３で接続する。ＦＣケーブル１３は、送信ライン（ＴＸ）と受信ライン（ＲＸ）とを含み、光信号が相互干渉しないように設計されている。ＦＣポート２００ａのＴＸ２００ｄは、ＦＣポート２１０ａのＲＸ２１０ｅと接続し、ＦＣポート２００ａのＲＸ２００ｅは、ＦＣポート２１０ａのＴＸ２１０ｄと接続する。
【００４２】
ＦＣポート２００ａは、ＦＣポート２００ａ用の通信バッファとして送信バッファ２０１ａと受信バッファ２０２ａを、ＦＣスイッチ２０のＲＡＭ１０２に有する。ＦＣポート２１０ａは、ＦＣポート２１０ａ用の通信バッファとして送信バッファ２１１ａと受信バッファ２１２ａを、ＦＣスイッチ２１のＲＡＭ１０２に有する。
【００４３】
送信バッファ２０１ａ，２１１ａは、ＦＩＦＯ（First In First Out）バッファであり、送信対象のフレームを一時的に格納する。一時格納されたフレームは、通信相手（送信先）への送信後に送信バッファ２０１ａ，２１１ａからクリアされる。
【００４４】
受信バッファ２０２ａ，２１２ａは、ＦＩＦＯバッファであり、通信相手（送信元）から受信したフレームを一時的に格納する。一時格納されたフレームは、ＦＣスイッチ２０，２１内で読み出された後に受信バッファ２０２ａ，２１２ａからクリアされる。
【００４５】
次に、クレジット監視処理について図６を用いて説明する。図６は、第２の実施形態のクレジット監視処理のフローチャートを示す図である。
クレジット監視処理は、クレジットの設定条件や更新条件を監視して、クレジットの設定や更新をおこなう処理である。クレジット監視処理は、ＦＣスイッチ２０，２１間の通信開始時に、データ送信側の通信制御部２２が実行する処理である。
【００４６】
［ステップＳ１１］通信制御部２２は、通信相手（たとえば、ＦＣスイッチ２１）からクレジット値を受信する。通信制御部２２は、受信したクレジット値を初期値として記憶する。なお、クレジットの初期値は、クレジットの最大値である。
【００４７】
［ステップＳ１２］通信制御部２２は、通信相手に向けてフレーム（１単位のデータ）を送信したか否かを判定する。通信制御部２２は、通信相手に向けてフレームを送信した場合にステップＳ１３にすすみ、通信相手に向けてフレームを送信していない場合にステップＳ１５にすすむ。
【００４８】
［ステップＳ１３］通信制御部２２は、送信したフレームがダミーフレームであるか否かを判定する。通信制御部２２は、送信したフレームがダミーフレームである場合にステップＳ１７にすすみ、送信したフレームがダミーフレームでない場合、すなわち通常フレームである場合にステップＳ１４にすすむ。
【００４９】
［ステップＳ１４］通信制御部２２は、通信相手に向けて通常フレームを送信したことから、クレジット値から「１」減算する。すなわち、通信制御部２２は、送信したフレームが通常フレームである場合にクレジット値から「１」を減算し、送信したフレームがダミーフレームである場合にステップＳ１４をパスしてクレジット値を更新しない。
【００５０】
なお、通信制御部２２は、クレジット値が「１以上」の場合に通信相手に向けて通常フレームを送信し、クレジット値が「０以上」の場合に通信相手に向けてダミーフレームを送信するので、クレジット値は常に「０以上」である。
【００５１】
［ステップＳ１５］通信制御部２２は、通信相手から応答フレームの受信があったか否かを判定する。応答フレームの受信は、通常フレームの送信に対する応答フレームの受信と、ダミーフレームの送信に対する応答フレームの受信とがある。通信制御部２２は、通信相手から応答フレームの受信があった場合にステップＳ１６にすすみ、通信相手から応答フレームの受信がない場合にステップＳ１７にすすむ。
【００５２】
［ステップＳ１６］通信制御部２２は、通信相手から応答フレームの受信があったことから、クレジット値に「１」加算する。すなわち、通信制御部２２は、通信相手から応答フレームの受信があった場合に、通常フレームの送信に対する応答フレームの受信であるか、ダミーフレームの送信に対する応答フレームの受信であるかにかかわらず、クレジット値に「１」を加算する。
【００５３】
これにより、通常フレームの送信に対する応答フレームの受信によるクレジット値への「１」加算は、通常フレームの送信によるクレジット値からの「１」減算と相殺する。すなわち、正常に通信がおこなえた場合、クレジット値は、通信終了時に初期値に復帰する。
【００５４】
一方、ダミーフレームの送信に対する応答フレームの受信によるクレジット値への「１」加算は、ダミーフレームによるクレジット値からの「１」減算がないことから、クレジット値を増大させる作用を有する。したがって、何らかの通信異常によりクレジット値が小さな値となってしまった場合に、通信制御部２２は、ダミーフレームの送信によってクレジット値の復旧を図ることができる。
【００５５】
［ステップＳ１７］通信制御部２２は、通信終了であるか否かを判定する。通信制御部２２は、通信終了である場合にクレジット監視処理を終了し、通信終了でない場合にステップＳ１８にすすむ。
【００５６】
［ステップＳ１８］通信制御部２２は、所定のリカバリ条件の成立を判定する。リカバリは、異常な通信状態からの復帰処理である。リカバリ条件は、リカバリ実行契機の判定条件である。たとえば、リカバリ条件は、所定の監視時間中、クレジット値が「０」の状態を検出することである。このリカバリ条件は、通信相手から一切の応答フレームを受信できないときに成立し得る。通信制御部２２は、所定のリカバリ条件が成立した場合にステップＳ１９にすすみ、所定のリカバリ条件が成立しない場合にステップＳ１２にすすむ。
【００５７】
［ステップＳ１９］通信制御部２２は、リカバリをおこなう。たとえば、通信制御部２２は、通信バッファ内のフレームを破棄して処理中の通信をクリアすることで、クレジット値を初期値に復帰させる。
【００５８】
このように、通信制御部２２は、クレジット値を管理することができる。これにより、通信制御部２２は、受信側で受信可能なフレーム数を認識して、送信するフレーム数を制御することができ、ストレージシステム１０におけるフレームロストしないデータ転送を実現する。
【００５９】
次に、正常な通信時のクレジット値の更新について図７を用いて説明する。図７は、第２の実施形態の正常な通信におけるクレジット値の更新シーケンスの一例を示す図である。
【００６０】
［シーケンスｓｑ１１］通信制御部２２は、ＦＣスイッチ２１のＦＣポート２１０ａからクレジット値の通知を受けてＦＣスイッチ２０のＦＣポート２００ａのクレジット値を初期化する。これにより、ＦＣポート２００ａのクレジット値とＦＣポート２１０ａのクレジット値とは、通信開始時において「４」で一致する。なお、初期値となるクレジット値は、ＦＣポート２００ａとＦＣポート２１０ａとの間のネゴシエーションによって決定される。
【００６１】
［シーケンスｓｑ１２］通信制御部２２は、ＦＣポート２００ａからＦＣポート２１０ａに通常フレームを送信し、クレジット値を「３」に更新する。このとき、ＦＣポート２１０ａのクレジット値は、受信した通常フレームが受信バッファ２１２ａに格納されることから「３」に更新される。
【００６２】
［シーケンスｓｑ１３］通信制御部２２は、ＦＣポート２００ａからＦＣポート２１０ａに通常フレームを送信し、クレジット値を「２」に更新する。このとき、ＦＣポート２１０ａのクレジット値は、「２」に更新される。
【００６３】
［シーケンスｓｑ１４］通信制御部２２は、シーケンスｓｑ１２で送信した通常フレームに対応する応答フレームをＦＣポート２１０ａから受信することにより、クレジット値を「３」に更新する。ＦＣポート２１０ａのクレジット値は、応答フレームの送信とともに受信バッファ２１２ａのフレーム格納領域が１つクリアされて「３」に更新される。
【００６４】
［シーケンスｓｑ１５］通信制御部２２は、シーケンスｓｑ１３で送信した通常フレームに対応する応答フレームをＦＣポート２１０ａから受信することにより、クレジット値を「４」に更新する。ＦＣポート２１０ａのクレジット値は、応答フレームの送信とともに受信バッファ２１２ａのフレーム格納領域が１つクリアされて「４」に更新される。
【００６５】
［シーケンスｓｑ１６］通信制御部２２は、ＦＣポート２００ａからＦＣポート２１０ａに通常フレームを送信し、クレジット値を「３」に更新する。このとき、ＦＣポート２１０ａのクレジット値は、「３」に更新される。
【００６６】
このように、正常な通信時のクレジット値は、送信元と送信先とで同期して更新される。したがって、送信元となるＦＣスイッチ２０は、受信できない量のフレームを、送信先となるＦＣスイッチ２１に送信することを防止できる。
【００６７】
次に、通常フレームをフレームロストした通信時のクレジット値の更新について図８を用いて説明する。図８は、第２の実施形態の通常フレームをフレームロストした通信におけるクレジット値の更新シーケンスの一例を示す図である。
【００６８】
［シーケンスｓｑ２１］通信制御部２２は、ＦＣポート２００ａからＦＣポート２１０ａに通常フレームを送信し、クレジット値を「３」から「２」に更新する。ＦＣポート２００ａから送信された通常フレームが何らかの理由でフレームロストする。ＦＣポート２１０ａのクレジット値は、ＦＣポート２１０ａが通常フレームを受信することがないのでクレジット値を「３」のままとする。
【００６９】
［シーケンスｓｑ２２］通信制御部２２は、送信した通常フレームに対応する応答フレームを監視時間ｔ１の経過前に受信しない場合に、ＦＣポート２００ａからＦＣポート２１０ａに通常フレームをリトライ送信する。通信制御部２２は、リトライ送信時にクレジット値を更新しない。ＦＣポート２１０ａのクレジット値は、リトライ送信された通常フレームの受信によって「３」から「２」に更新される。
【００７０】
［シーケンスｓｑ２３］通信制御部２２は、シーケンスｓｑ２２で送信した通常フレームに対応する応答フレームをＦＣポート２１０ａから受信することにより、クレジット値を「２」から「３」に更新する。ＦＣポート２１０ａのクレジット値は、応答フレームの送信とともに受信バッファ２１２ａのフレーム格納領域が１つクリアされて「２」から「３」に更新される。
【００７１】
このように、通常フレームをフレームロストすることがあっても、送信元のクレジット値と送信先のクレジット値とは、送信した通常フレームに対応する応答時に一致する。
次に、通常フレームに対する応答フレームをフレームロストした通信時のクレジット値の更新について図９を用いて説明する。図９は、第２の実施形態の通常フレームに対する応答フレームをフレームロストした通信におけるクレジット値の更新シーケンスの一例を示す図である。
【００７２】
［シーケンスｓｑ３１］通信制御部２２は、ＦＣポート２００ａからＦＣポート２１０ａに通常フレームを送信し、クレジット値を「１」から「０」に更新する。このとき、ＦＣポート２１０ａのクレジット値は、「１」から「０」に更新される。
【００７３】
［シーケンスｓｑ３２］ＦＣポート２１０ａから送信された応答フレームが何らかの理由でフレームロストする。ＦＣポート２１０ａのクレジット値は、応答フレームの送信とともに受信バッファ２１２ａのフレーム格納領域が１つクリアされて「０」から「１」に更新される。一方、通信制御部２２は、ＦＣポート２００ａが応答フレームを受信することがないのでクレジット値を「０」のままとする。
【００７４】
監視時間ｔ２中にＦＣポート２００ａが応答フレームを受信することがない場合、通信制御部２２は、リカバリをおこなう。なお、通信制御部２２は、リカバリに至る前に後述するクレジット復旧処理によって通信状態の回復を図ることができる。
【００７５】
次に、クレジット復旧処理について図１０を用いて説明する。図１０は、第２の実施形態のクレジット復旧処理のフローチャートを示す図である。
クレジット復旧処理は、クレジット値が減少したままの状態を検出して、減少したクレジット値を復旧する処理である。クレジット復旧処理は、ＦＣスイッチ２０，２１間の通信開始時に、データ送信側の通信制御部２２によって実行される。
【００７６】
［ステップＳ２１］通信制御部２２は、復旧監視タイマをスタートする。復旧監視タイマは、クレジット値が減少したままの状態の検出期間の設定に用いるタイマである。
［ステップＳ２２］通信制御部２２は、クレジット値を監視する。
【００７７】
［ステップＳ２３］通信制御部２２は、復旧監視タイマがタイムアップ（たとえば、復旧監視タイマのスタートから５００ｍｓ経過）したか否かを判定する。通信制御部２２は、復旧監視タイマがタイムアップした場合にステップＳ２４にすすみ、復旧監視タイマがタイムアップしていない場合にステップＳ２２にすすむ。
【００７８】
［ステップＳ２４］通信制御部２２は、クレジットの初期値と監視期間中のクレジットの最大値とを比較して差分が「１」より大きいか否かを判定する。差分が「１」より大きい状態は、復旧監視タイマがタイムアップするまでの間、クレジット値が減少したままの状態であり、クレジット値が「初期値−１」まで復帰しない状態であることを示す。
【００７９】
通信制御部２２は、差分が「１」より大きい場合にステップＳ２５にすすみ、差分が「１」より大きくない場合にステップＳ２１にすすむ。
［ステップＳ２５］通信制御部２２は、ダミーフレームを送信してステップＳ２１にすすむ。ダミーフレームは、受信側によって破棄されてもよいデータであり、たとえば、ＳＣＳＩ（Small Computer System Interface）やＦＣＰ（Fibre Channel Protocol）が提供するコマンドである。なお、ダミーフレームの送信数は、クレジット値が減少したままの状態を検出するごとに「１」とする。
【００８０】
これにより、通信制御部２２は、ダミーフレームに対応する応答フレームの受信によるクレジット値の復旧を期待できる。また、通信制御部２２が受信側のクレジット値を超えてダミーフレームを送信しても、ダミーフレームが受信側によって破棄されるだけである。
【００８１】
なお、通信制御部２２は、ダミーフレームの送信条件、すなわちクレジット値が減少したままの状態から、差分が「１」に等しい場合を除外する。これは、通常フレームとダミーフレームがバッティングして受信側によって通常フレームが破棄されることを防止するためである。
【００８２】
また、ダミーフレームの送信数は、クレジット値が減少したままの状態を検出するごとに「１」としたが、差分が「ｎ」より大きい状態をクレジット値が減少したままの状態とすることでダミーフレームの送信数を「ｎ」としてもよい。ただし、「ｎ」は、クレジットの初期値より小さい自然数とする。
【００８３】
次に、応答フレームをフレームロストした通信時のクレジット値の復旧について説明する。まず、クレジット値が減少したままの状態（クレジット値減少状態）の検出について図１１を用いて説明する。図１１は、第２の実施形態のクレジット値非減少状態とクレジット値減少状態における通信シーケンスの一例を示す図である。
【００８４】
通信制御部２２は、タイミングｔ１１で復旧監視タイマをスタートし、タイミングｔ１２で復旧監視タイマがタイムアップするまでクレジット値を監視する。なお、クレジット値の初期値は、「４」である。通信制御部２２は、タイミングｔ１１からタイミングｔ１２までの監視期間中に、シーケンスｓｑ４１からｓｑ４３における通常フレームの送信と応答フレームの受信とによって、クレジット値を「４」、「３」、「４」、「３」と更新する。通信制御部２２は、監視期間中のクレジット値の最大値が「４」であることから、クレジット値の初期値「４」との差分が「１」を超えないことを判定する。したがって、通信制御部２２は、タイミングｔ１１からタイミングｔ１２までの監視期間中のクレジット値減少状態を検出しない。
【００８５】
一方、通信制御部２２は、タイミングｔ１３で復旧監視タイマをスタートし、タイミングｔ１４で復旧監視タイマがタイムアップするまでクレジット値を監視する。通信制御部２２は、タイミングｔ１３からタイミングｔ１４までの監視期間中に、シーケンスｓｑ４４からｓｑ４６における通常フレームの送信と応答フレームの受信とによって、クレジット値を「１」、「０」、「１」、「０」と更新する。
【００８６】
ＦＣポート２００ａのクレジット値は、タイミングｔ１３からタイミングｔ１４までの監視期間中、応答フレームのフレームロストによりＦＣポート２１０ａのクレジット値と不一致となっている。また、ＦＣポート２００ａのクレジット値は、「１」までしか復帰しないため、通信制御部２２は、送信できるフレーム数に制約を受ける。このような状態は、ＦＣポート２００ａとＦＣポート２１０ａとの間の通信性能が低下した状態である。
【００８７】
通信制御部２２は、タイミングｔ１３からタイミングｔ１４までの監視期間中のクレジット値の最大値が「１」であることから、クレジット値の初期値「４」との差分が「１」を超えることを判定する。したがって、通信制御部２２は、タイミングｔ１３からタイミングｔ１４までの監視期間中のクレジット値減少状態を検出する。
【００８８】
次に、ダミーフレームの送信によるクレジット値減少状態からの復旧について図１２を用いて説明する。図１２は、第２の実施形態のダミーフレームの送信によるクレジット値減少状態からの復旧時における通信シーケンスの一例を示す図である。
【００８９】
［シーケンスｓｑ５１］通信制御部２２は、クレジット値減少状態にあることを検出して、ＦＣポート２００ａからＦＣポート２１０ａにダミーフレームを送信する。このとき、ＦＣポート２００ａのクレジット値は、更新されず、ＦＣポート２１０ａのクレジット値は、ダミーフレームの受信により「３」から「２」に更新される。
【００９０】
［シーケンスｓｑ５２］通信制御部２２は、シーケンスｓｑ５１で送信したダミーフレームに対応する応答フレームをＦＣポート２１０ａから受信することにより、クレジット値を「１」から「２」に更新する。ＦＣポート２１０ａのクレジット値は、応答フレームの送信とともに受信バッファ２１２ａのフレーム格納領域が１つクリアされて「２」から「３」に更新される。
【００９１】
このように、通信制御部２２は、クレジット値をクレジット値減少状態から「１」だけ復旧する。なお、通信制御部２２は、未だクレジット値減少状態にあることを検出した場合、ダミーフレームを再度送信する。
【００９２】
［シーケンスｓｑ５３］通信制御部２２は、クレジット値減少状態にあることを検出して、ＦＣポート２００ａからＦＣポート２１０ａにダミーフレームを送信する。このとき、ＦＣポート２００ａのクレジット値は、更新されず、ＦＣポート２１０ａのクレジット値は、ダミーフレームの受信により「３」から「２」に更新される。
【００９３】
［シーケンスｓｑ５４］通信制御部２２は、シーケンスｓｑ５２で送信したダミーフレームに対応する応答フレームをＦＣポート２１０ａから受信することにより、クレジット値を「２」から「３」に更新する。ＦＣポート２１０ａのクレジット値は、応答フレームの送信とともに受信バッファ２１２ａのフレーム格納領域が１つクリアされて「２」から「３」に更新される。
【００９４】
これにより、通信制御部２２は、クレジット値減少状態を解消したクレジット値の範囲で通常フレームを送信することができる（シーケンスｓｑ５５からｓｑ５７）。このようにして、通信制御部２２は、ダミーフレームの送信を繰返すことによって、クレジット値減少状態を解消し、通信性能が低下した状態から復帰できる。
【００９５】
なお、通信制御部２２は、クレジット値減少状態にあることを検出して、ダミーフレームを１つ送信するようにしたが、クレジット値減少状態に応じて２以上のダミーフレームを送信するものであってもよい。
【００９６】
次に、クレジット復旧処理におけるクレジット値減少状態の監視と判定のタイミングについて図１３を用いて説明する。図１３は、第２の実施形態のクレジット復旧処理におけるクレジット値減少状態の監視と判定のタイミングチャートの一例を示す図である。
【００９７】
通信制御部２２は、復旧監視タイマをタイミングｔ２１にスタートし、復旧監視タイマがタイムアップするタイミングｔ２２までのクレジット値を監視し、タイミングｔ２２を判定タイミングとする。通信制御部２２は、タイミングｔ２１からタイミングｔ２２までの監視期間中にクレジット値に「４」または「３」があることから、クレジット値減少状態を検出しない。通信制御部２２は、タイミングｔ２２を始期としてタイミングｔ２３を終期として次の監視期間を設定する。以降、通信制御部２２は、間断なくクレジット値を監視する。
【００９８】
［第３の実施形態］
次に、第３の実施形態のストレージシステムについて説明する。第３の実施形態のストレージシステムは、ダミーフレームの送信基準が第２の実施形態と異なる。具体的には、第２の実施形態の通信制御部２２が実行するクレジット復旧処理に代えて、第３の実施形態の通信制御部２２は、第２クレジット復旧処理を実行する点で相違する。以下、第３の実施形態の説明では、第２の実施形態と同様の構成について符号を同じにして説明を省略する。
【００９９】
まず、第２クレジット復旧処理について図１４を用いて説明する。図１４は、第３の実施形態の第２クレジット復旧処理のフローチャートを示す図である。第２クレジット復旧処理は、クレジット値が減少したままの状態を検出して、減少したクレジット値を復旧する処理である。第２クレジット復旧処理は、ＦＣスイッチ２０，２１間の通信開始時に、データ送信側の通信制御部２２によって実行される。
【０１００】
［ステップＳ３１］通信制御部２２は、第１監視タイマをスタートする。第１監視タイマは、クレジット値が減少したままの状態の検出期間の設定に用いるタイマである。
［ステップＳ３２］通信制御部２２は、クレジット値を監視する。
【０１０１】
［ステップＳ３３］通信制御部２２は、第１監視タイマがタイムアップ（たとえば、第１監視タイマのスタートから５００ｍｓ経過）したか否かを判定する。通信制御部２２は、第１監視タイマがタイムアップした場合にステップＳ３４にすすみ、第１監視タイマがタイムアップしていない場合にステップＳ３２にすすむ。
【０１０２】
［ステップＳ３４］通信制御部２２は、クレジットの初期値と監視期間中のクレジットの最大値とを比較して差分が「１以上」であるか否かを判定する。差分が「１以上」である状態は、第１監視タイマがタイムアップするまでの間、クレジット値が減少したままの状態、あるいはクレジット値が「初期値（最大値）」まで復帰しない状態であることを示す。
【０１０３】
通信制御部２２は、差分が「１以上」の場合にステップＳ３５にすすみ、差分が「１以上」でない場合にステップＳ３１にすすむ。
なお、第３の実施形態は、差分が「１」の場合を含めて、クレジット値が減少したままの状態と判定する点で、第２の実施形態と相違する。第２の実施形態は、差分が「１」の場合を、クレジット値が減少したままの状態と判定しないことで、通常フレームの送信とダミーフレームの送信のバッティングを防止した。第３の実施形態は、以下の処理によって通常フレームの送信とダミーフレームの送信のバッティングを防止する。
【０１０４】
［ステップＳ３５］通信制御部２２は、ダミーフレームを送信する。なお、ダミーフレームの送信数は、クレジット値が減少したままの状態を検出するごとに「１」とする。
これにより、通信制御部２２は、ダミーフレームに対応する応答フレームの受信によるクレジット値の復旧を期待できる。また、通信制御部２２が受信側のクレジット値を超えてダミーフレームを送信しても、ダミーフレームが受信側によって破棄されるだけである。
【０１０５】
［ステップＳ３６］通信制御部２２は、第２監視タイマをスタートする。第２監視タイマは、ダミーフレーム送信後の通常フレームの送信待ち合わせに用いるタイマである。
［ステップＳ３７］通信制御部２２は、通常フレームの送信を待機する。これにより、通信制御部２２は、通常フレームの送信とダミーフレームの送信のバッティングを防止し、通常フレームが受信側によって破棄されることを防止する。
【０１０６】
［ステップＳ３８］通信制御部２２は、ダミーフレームに対する応答フレームを受信したか否かを判定する。通信制御部２２は、応答フレームを受信した場合にステップＳ４４にすすみ、応答フレームを受信していない場合にステップＳ３９にすすむ。
【０１０７】
［ステップＳ３９］通信制御部２２は、第２監視タイマがタイムアップ（たとえば、第２監視タイマのスタートから１００ｍｓ経過）したか否かを判定する。通信制御部２２は、第２監視タイマがタイムアップした場合にステップＳ４０にすすみ、第２監視タイマがタイムアップしていない場合にステップＳ３８にすすむ。これにより、通信制御部２２は、ダミーフレームに対する応答フレームの受信を、最大で第２監視タイマの監視時間だけ待ち合わせることができる。
【０１０８】
［ステップＳ４０］通信制御部２２は、ダミーフレームが破棄されたと判断して、ダミーフレームをリトライ送信する。
［ステップＳ４１］通信制御部２２は、第２監視タイマをスタートする。
【０１０９】
［ステップＳ４２］通信制御部２２は、リトライ送信したダミーフレームに対する応答フレームを受信したか否かを判定する。通信制御部２２は、応答フレームを受信した場合にステップＳ４４にすすみ、応答フレームを受信していない場合にステップＳ４３にすすむ。
【０１１０】
［ステップＳ４３］通信制御部２２は、第２監視タイマがタイムアップしたか否かを判定する。通信制御部２２は、第２監視タイマがタイムアップした場合にステップＳ４４にすすみ、第２監視タイマがタイムアップしていない場合にステップＳ４２にすすむ。
【０１１１】
なお、リトライ送信したダミーフレームに対する応答がない場合、ＦＣスイッチ２０，２１は、クレジットが枯渇した状態から復旧できない、あるいは経路異常によりダミーフレームが相手側に届いていない状態である可能性がある。このような場合、通信制御部２２は、ＦＣスイッチ２０より上位のデバイス（たとえば、図示しない管理装置）による復旧に委ねるものとして、上位のデバイスに所要の状態情報を報知するようにしてもよい。
【０１１２】
［ステップＳ４４］通信制御部２２は、通常フレームの送信待機を解除して、ステップＳ３１にすすむ。
これにより、通信制御部２２は、通常フレームの送信とダミーフレームの送信のバッティングを防止しながら、ダミーフレームに対応する応答フレームの受信によるクレジット値の復旧を期待できる。また、第３の実施形態の通信制御部２２は、差分が「１」の場合を含めて、クレジット値が減少したままの状態と判定することで、第２の実施形態の通信制御部２２よりも早くクレジット値が減少したままの状態を検出して早期の復帰を図ることができる。
【０１１３】
次に、第２クレジット復旧処理におけるクレジット値減少状態の監視と判定のタイミングについて図１５を用いて説明する。図１５は、第３の実施形態の第２クレジット復旧処理におけるクレジット値減少状態の監視と判定のタイミングチャートの一例を示す図である。
【０１１４】
通信制御部２２は、第１監視タイマをタイミングｔ３１にスタートし、第１監視タイマがタイムアップするタイミングｔ３２までのクレジット値を監視し、タイミングｔ３２を判定タイミングとする。通信制御部２２は、タイミングｔ３１からタイミングｔ３２までの監視期間中にクレジット値に「４」があることから、クレジット値減少状態を検出しない。
【０１１５】
通信制御部２２は、第１監視タイマをタイミングｔ３２にスタートし、第１監視タイマがタイムアップするタイミングｔ３３までのクレジット値を監視し、タイミングｔ３３を判定タイミングとする。通信制御部２２は、タイミングｔ３２からタイミングｔ３３までの監視期間中にクレジット値に「４」がないことから、クレジット値減少状態を検出して、ダミーフレームを送信する。通信制御部２２は、第２監視タイマをタイミングｔ３３にスタートし、第２監視タイマがタイムアップすることで、またはダミーフレームに対する応答フレームを受信することで、タイミングｔ３４をクレジット値減少状態の次の監視期間とする。
【０１１６】
なお、第２の実施形態および第３の実施形態において、通信制御部２２は、クレジットの初期値と監視期間中のクレジットの最大値とを比較して両者の差分によりクレジット値が減少したままの状態を検出した。しかしながら、差分によるクレジット値が減少したままの状態の検出は、一例であってこれに限らず、その他の方法によって検出するものであってもよい。たとえば、通信制御部２２は、クレジットの最大値がクレジットの初期値まで復帰しない状態と、スループットの低下状態などその他の条件との組み合わせにより、クレジット値が減少したままの状態を検出してもよい。
【０１１７】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、通信装置２，３、全体制御部２０ａおよび通信制御部２２が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１１８】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１９】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１２０】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１２１】
１  通信システム
２，３  通信装置
２ａ  記憶部
２ｂ  制御部
２ｃ  送信可能数
４ａ，４ｂ，４ｃ  データ
５ａ，７ａ，７ｂ  送達確認
６ａ，６ｂ  ダミーデータ
１０  ストレージシステム
１１，１２  サーバ
１３  ＦＣケーブル
１４，１５  ストレージアレイ
２０，２１  ＦＣスイッチ
２０ａ  全体制御部
２２  通信制御部
２３，１０３  フラッシュメモリ
２３ａ  ゾーニングデータベース
２３ｂ  ネームサーバ
２４  管理用ＬＡＮポート
１００  プロセッサ
１０１  バス
１０２  ＲＡＭ
１０４  外部インタフェース
２００ａ，２００ｂ，２００ｃ，２００ｄ，２１０ａ  ＦＣポート
２０１ａ，２１１ａ  送信バッファ
２０２ａ，２１２ａ  受信バッファ
【図１】
0006404129.tif 000002
【図２】
0006404129.tif 000003
【図３】
0006404129.tif 000004
【図４】
0006404129.tif 000005
【図５】
0006404129.tif 000006
【図６】
0006404129.tif 000007
【図７】
0006404129.tif 000008
【図８】
0006404129.tif 000009
【図９】
0006404129.tif 000010
【図１０】
0006404129.tif 000011
【図１１】
0006404129.tif 000012
【図１２】
0006404129.tif 000013
【図１３】
0006404129.tif 000014
【図１４】
0006404129.tif 000015
【図１５】
0006404129.tif 000016