(57)【要約】      （修正有）【課題】最適なフレームサイズで通信を行う通信方法、通信装置及び通信プログラムを提供する。【解決手段】本通信方法は、第１の装置が、複数のデータサイズで第２の装置にデータを送信し、第２の装置が、第１の装置からの受信に成功したデータのデータサイズの情報を、第１の装置に送信し、第１の装置が、第２の装置から受信したデータサイズの情報に基づき選択したデータサイズで、第２の装置にデータを送信する処理を含む。【選択図】図２
2018101878.tif 000002
【特許請求の範囲】
【請求項１】
第１の装置が、複数のデータサイズで第２の装置にデータを送信し、
前記第２の装置が、前記第１の装置からの受信に成功したデータのデータサイズの情報を、前記第１の装置に送信し、
前記第１の装置が、前記第２の装置から受信した前記データサイズの情報に基づき選択したデータサイズで、前記第２の装置にデータを送信する、
処理を実行する通信方法。
【請求項２】
前記第１の装置および前記第２の装置がレイヤ２のネットワークスイッチであり、
前記データサイズはフレームサイズである、
請求項１記載の通信方法。
【請求項３】
前記複数のデータサイズでデータを送信する処理において、
データサイズの降順でデータを前記第２の装置に送信する、
請求項１又は２記載の通信方法。
【請求項４】
前記複数のデータサイズでデータを送信する処理において、
所定数のデータを送信したのち一定時間送信を停止することを繰り返す、
請求項１乃至３のいずれか１つ記載の通信方法。
【請求項５】
前記データサイズの情報を前記第１の装置に送信する処理において、
受信に成功したデータのデータサイズのうち最大のデータサイズを特定し、特定した当該最大のデータサイズの情報を前記第１の装置に送信する、
請求項１乃至４のいずれか１つ記載の通信方法。
【請求項６】
前記第２の装置から受信した前記データサイズの情報に基づき選択したデータサイズで前記第２の装置にデータを送信する処理において、
前記第１の装置が前記第２の装置に送信すべきデータを有していない場合、当該データを有する装置から当該データを取得する、
請求項１乃至５のいずれか１つ記載の通信方法。
【請求項７】
複数のデータサイズで他の通信装置にデータを送信する送信部と、
前記複数のデータサイズのうち特定のデータサイズでの送信に対する応答を前記他の通信装置から受信した場合、前記特定のデータサイズに基づき、前記他の通信装置にデータを送信する場合のデータサイズを決定する決定部と、
を有する通信装置。
【請求項８】
コンピュータに、
複数のデータサイズで他の通信装置にデータを送信し、
前記複数のデータサイズのうち特定のデータサイズでの送信に対する応答を前記他の通信装置から受信した場合、前記特定のデータサイズに基づき、前記他の通信装置にデータを送信する場合のデータサイズを決定する、
処理を実行させる通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置間の通信技術に関する。
【背景技術】
【０００２】
地震や台風等の自然災害に備えてネットワークの耐久性を向上させるため、ネットワークがメッシュ化されるようになっている。それに伴い、ネットワークに配置される機器の数が増え、また多様な機器がネットワークに配置されるようになっている。
【０００３】
図１に、メッシュ化された広域ネットワークの一例を示す。図１において、Ｌ（Layer）２スイッチ間における通信は、ＬＡＮ（Local Area Network）或いはＷＡＮ（Wide Area Network）等のネットワークを介して行われる。但し、Ｌ２スイッチ間におけるネットワークがどのようなネットワークであるかは、図１のような広域ネットワークの場合には必ずしも明らかではない。そして、このようなネットワーク（以下、不明ネットワークと呼ぶ）内でフレームが転送されると、フレームが破棄されることがある。その原因として、特定のサイズ以上のフレームを破棄する機器が不明ネットワークに存在することが挙げられる。不明ネットワークにおいてフレームが破棄されると、Ｌ２スイッチは他のＬ２スイッチからデータ（例えば、障害からの復旧に使用するデータ）を取得することができず、障害からの復旧が遅れるといった事態が生じうる。
【０００４】
通信に使用するパケットのサイズを決定する技術を開示する文献は存在する。しかし、この技術は、通信品質の安定およびビットエラー率の低減等を目的としており、通信の途中の不明ネットワークにおいてフレームが破棄されるという問題の解決には適していない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００８／１０８３７９号
【特許文献２】特開２００３−２０９５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、１つの側面では、最適なフレームサイズで通信を行うための技術を提供することである。
【課題を解決するための手段】
【０００７】
第１の態様に係る通信方法は、第１の装置が、複数のデータサイズで第２の装置にデータを送信し、第２の装置が、第１の装置からの受信に成功したデータのデータサイズの情報を、第１の装置に送信し、第１の装置が、第２の装置から受信したデータサイズの情報に基づき選択したデータサイズで、第２の装置にデータを送信する処理を含む。
【０００８】
第２の態様に係る通信方法は、複数のデータサイズで他の通信装置にデータを送信し、複数のデータサイズのうち特定のデータサイズでの送信に対する応答を他の通信装置から受信した場合、特定のデータサイズに基づき、他の通信装置にデータを送信する場合のデータサイズを決定する処理を含む。
【発明の効果】
【０００９】
１つの側面では、最適なフレームサイズで通信を行えるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、広域ネットワークの一例を示す図である。
【図２】図２は、Ｌ２スイッチの機能ブロック図である。
【図３】図３は、本実施の形態の概要を説明するための図である。
【図４】図４は、Ｒ装置が実行する処理の処理フローを示す図である。
【図５】図５は、Ｒ装置が実行する処理の処理フローを示す図である。
【図６】図６は、第１の実施の形態のＳ装置が実行する処理の処理フローを示す図である。
【図７】図７は、ＤＬデータ格納部に格納されるデータの一例を示す図である。
【図８】図８は、設定パラメータ格納部に格納されるデータの一例を示す図である。
【図９】図９は、第１の実施の形態のＳ装置が実行する処理の処理フローを示す図である。
【図１０】図１０は、サイズ調整フレームの送信について説明するための図である。
【図１１】図１１は、コントローラの機能ブロック図である。
【図１２】図１２は、第２の実施の形態のＳ装置が実行する処理の処理フローを示す図である。
【図１３】図１３は、第２の実施の形態のＳ装置が実行する処理の処理フローを示す図である。
【図１４】図１４は、コンピュータのハードウエア構成図である。
【図１５】図１５は、中継装置のハードウエア構成図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
本実施の形態においては、図１に示したような広域ネットワークに複数のＬ２スイッチが配置され、Ｌ２スイッチ間での通信が行われる。各Ｌ２スイッチは、１又は複数の他のＬ２スイッチの設定データおよびファームウエア等を有している。例えば障害の発生によりＬ２スイッチが交換された場合、交換後のＬ２スイッチは他のＬ２スイッチから設定データおよびファームウエア等をダウンロードすることで、運用を再開することができる。このようなダウンロードのことを、本実施の形態においては「隣接ＤＬ（DownLoad）」と呼ぶ。また、上記の設定データ及びファームウエア等を含むデータのことを「隣接ＤＬデータ」と呼ぶ。
【００１２】
図２に、本実施の形態のＬ２スイッチの機能ブロック図を示す。Ｌ２スイッチは、通信部１０１と、ＤＬ要求部１０３と、サイズ調整部１０５と、ＤＬデータ管理部１０７と、通信バッファ１１１と、ＤＬデータ格納部１１３と、設定パラメータ格納部１１５とを含む。通信部１０１、ＤＬ要求部１０３、サイズ調整部１０５及びＤＬデータ管理部１０７は、本実施の形態の処理を実行するためのプログラムがメモリ（具体的には、図１５におけるメモリ２６０１）にロードされてハードウエアのプロセッサ（具体的には、図１５におけるＣＰＵ（Central Processing Unit）２６０３）により実行されることにより実現される。通信バッファ１１１、ＤＬデータ格納部１１３及び設定パラメータ格納部１１５は、メモリ（具体的には、図１５におけるメモリ２６０１）又はその他の記憶装置（例えば、図１５におけるＨＤＤ（Hard Disk Drive）２６０５）上に設けられる。
【００１３】
通信部１０１は、ＤＬ要求部１０３及びＤＬデータ管理部１０７からの要求に応じてフレームを送信する。また、通信部１０１は、他のＬ２スイッチ等からフレームを受信する。なお、通信部１０１は、送信前のフレーム又は受信したフレームを通信バッファ１１１に格納する。
【００１４】
ＤＬ要求部１０３は、隣接ＤＬデータの要求フレームを通信部１０１を介して他のＬ２スイッチに送信する。また、ＤＬ要求部１０３は、他のＬ２スイッチから通信部１０１を介して隣接ＤＬデータの要求フレームを受信した場合、当該他のＬ２スイッチ用の隣接ＤＬデータを提供することができれば、応答フレームを通信部１０１を介して当該他のＬ２スイッチに対して送信する。
【００１５】
サイズ調整部１０５は、設定パラメータ格納部１１５に格納されている設定パラメータに従って複数のサイズ調整フレームを生成し、生成した複数のサイズ調整フレームを、設定パラメータに従って、通信部１０１を介してサイズ調整の要求フレームの送信元に送信する。また、サイズ調整部１０５は、他のＬ２スイッチから通信部１０１を介してサイズ調整フレームを受信した場合、受信したサイズ調整フレームに基づきフレームサイズの情報を含む応答フレームを生成し、生成した応答フレームを通信部１０１を介して当該他のＬ２スイッチに送信する。
【００１６】
ＤＬデータ管理部１０７は、他のＬ２スイッチから通信部１０１を介してフレームの形式で受信した隣接ＤＬデータをＤＬデータ格納部１１３に格納する。ＤＬデータ管理部１０７は、隣接ＤＬデータの受信が完了した場合、完了通知フレームを、通信部１０１を介して隣接ＤＬデータの送信元のＬ２スイッチに対して送信する。また、ＤＬデータ管理部１０７は、隣接ＤＬデータを要求する他のＬ２スイッチに対して、ＤＬデータ格納部１１３から読み出した隣接ＤＬデータを、サイズ調整部１０５により決定されたサイズのフレームで送信する。
【００１７】
図３を用いて、本実施の形態の概要を説明する。ここでは、Ｌ２スイッチ１ｓの運用中に障害が発生したためにＬ２スイッチ１ｓが交換され、運用を再開するためＬ２スイッチ１ｓが隣接ＤＬデータをＬ２スイッチ２ｓから取得する状況を考える。以下では、保守対象であるＬ２スイッチ１ｓをＲ装置と呼び、Ｒ装置に対して隣接ＤＬデータを提供するＬ２スイッチ２ｓをＳ装置と呼ぶ。
【００１８】
まず、Ｒ装置は、隣接ＤＬデータの要求フレームをＳ装置に対して送信する（図３における（１））。Ｓ装置は、Ｒ装置用の隣接ＤＬデータをＳ装置がＲ装置に対して提供することができる場合、応答フレームをＲ装置に対して送信する（図３における（２））。
【００１９】
Ｒ装置は、応答フレームを送信したＳ装置に対して、サイズ調整の要求フレームを送信する（図３における（３））。Ｓ装置は、設定パラメータに従って、複数のサイズでサイズ調整フレームをＲ装置に対して送信する（図３における（４））。
【００２０】
サイズによっては、フレームはＲ装置とＳ装置との間の不明ネットワークにおいて破棄されることがあるが、Ｒ装置は少なくとも１つのサイズ調整フレームをＳ装置から受信することに成功したものとする。すると、Ｒ装置は、受信に成功したサイズ調整フレームのうち最大のサイズ調整フレームのサイズの情報を含む応答フレームを、Ｓ装置に対して送信する（図３における（５））。Ｓ装置は、応答フレームを受信すると、応答フレームに含まれるサイズの情報に従って、Ｓ装置がＲ装置にフレームを送信する際のフレームサイズを決定する。そして、Ｓ装置は、決定したフレームサイズで隣接ＤＬデータをＲ装置に送信する（図３における（６））。
【００２１】
Ｒ装置は、隣接ＤＬデータを漏れなく受信することができた場合、完了通知フレームをＳ装置に対して送信する（図３における（７））。
【００２２】
なお、隣接ＤＬデータの要求フレーム及びその応答フレーム、サイズ調整の要求フレーム及びその応答フレーム、並びに完了通知フレームは、隣接ＤＬデータのフレームと比較してサイズが十分に小さいため、サイズ調整を行うことなく送信されるものとする。
【００２３】
次に、図４及び図５を用いて、Ｒ装置が実行する処理をより詳細に説明する。
【００２４】
まず、Ｒ装置のＤＬ要求部１０３は、Ｒ装置の物理ポートのうちリンクアップしたポートの各々から、隣接ＤＬデータの要求フレームを通信部１０１を介して送信する（図４：ステップＳ１）。隣接ＤＬデータの要求フレームを受信したＬ２スイッチの処理については、後で説明する。
【００２５】
Ｒ装置のＤＬ要求部１０３は、隣接ＤＬデータの応答フレームを通信部１０１を介して受信する（ステップＳ３）。但し、Ｒ装置用の隣接ＤＬデータを有するＬ２スイッチが無い場合にはＲ装置のＤＬ要求部１０３は応答フレームを受信しない。
【００２６】
Ｒ装置のＤＬ要求部１０３は、Ｒ装置用の隣接ＤＬデータを提供するＳ装置を特定する（ステップＳ５）。例えば、応答フレームを複数のＬ２スイッチから受信した場合には、複数のＬ２スイッチのうちいずれかのＬ２スイッチをＳ装置とする。ＤＬ要求部１０３は、特定したＳ装置の情報をサイズ調整部１０５に対して通知する。
【００２７】
Ｒ装置のサイズ調整部１０５は、サイズ調整の要求フレームを、ステップＳ５において特定したＳ装置に対して通信部１０１を介して送信し（ステップＳ７）、Ｓ装置からのサイズ調整フレームの受信待ちを行う（ステップＳ９）。
【００２８】
Ｒ装置のサイズ調整部１０５は、サイズ調整フレームを受信したか判定する（ステップＳ１１）。サイズ調整フレームを受信した場合（ステップＳ１１：Ｙｅｓルート）、処理は端子Ａを介して図５のステップＳ１５に移行する。
【００２９】
一方、サイズ調整フレームを受信していない場合（ステップＳ１１：Ｎｏルート）、リトライを所定回数行ったか判定する（ステップＳ１３）。リトライを所定回数行っていない場合（ステップＳ１３：Ｎｏルート）、リトライするため、処理はステップＳ７に戻る。リトライを所定回数行った場合（ステップＳ１３：Ｙｅｓルート）、処理は端子Ｂを介して図５に移行し終了する。
【００３０】
端子Ａ以降の処理について説明する。Ｒ装置のサイズ調整部１０５は、Ｓ装置から受信したサイズ調整フレームのうち最大サイズのサイズ調整フレームを特定する（図５：ステップＳ１５）。なお、サイズ調整フレームのサイズはＲ装置において測られる。ステップＳ１５において最大サイズのサイズ調整フレームを特定することで、隣接ＤＬデータを受信する際のフレーム数を減らすことができるので、効率的な受信が可能になる。
【００３１】
Ｒ装置のサイズ調整部１０５は、ステップＳ１５において特定した最大サイズのサイズ調整フレームのサイズ情報を含む、サイズ調整の応答フレームを、通信部１０１を介してＳ装置に対して送信する（ステップＳ１７）。
【００３２】
その後、Ｒ装置のＤＬデータ管理部１０７は、Ｓ装置が送信した隣接ＤＬデータを、通信部１０１を介して上記の最大サイズに基づき決定されたフレームサイズで受信し、受信した隣接ＤＬデータをＤＬデータ格納部１１３に格納する（ステップＳ１９）。
【００３３】
Ｒ装置のＤＬデータ管理部１０７は、受信すべき隣接ＤＬデータを漏れなく受信した場合、完了通知フレームをＳ装置に対して通信部１０１を介して送信する（ステップＳ２１）。
【００３４】
そして、Ｒ装置は再起動を行う（ステップＳ２３）。そして処理は終了する。これにより、Ｒ装置は隣接ＤＬデータに含まれるファームウエアに基づき動作を行い、また、隣接ＤＬデータに含まれる設定データが反映されるので、適切に運用を再開できるようになる。
【００３５】
次に、図６乃至図１０を用いて、Ｓ装置が実行する処理をより詳細に説明する。
【００３６】
まず、Ｓ装置のＤＬ要求部１０３は、隣接ＤＬデータの要求フレームを通信部１０１を介してＲ装置から受信する（図６：ステップＳ３１）。
【００３７】
Ｓ装置のＤＬ要求部１０３は、Ｒ装置用の隣接ＤＬデータがＤＬデータ格納部１１３に有るか判定する（ステップＳ３３）。
【００３８】
Ｒ装置用の隣接ＤＬデータがＤＬデータ格納部１１３に無い場合（ステップＳ３３：Ｎｏルート）、Ｓ装置のＤＬ要求部１０３は、ネットワークにおける他のＬ２スイッチにＲ装置用の隣接ＤＬデータが有るか判定する（ステップＳ３５）。
【００３９】
Ｓ装置は、図７に示すようなデータをＤＬデータ格納部１１３において管理しており、ステップＳ３５においてＤＬ要求部１０３は図７に示すようなデータを使用して判定を行う。図７の例では、他のＬ２スイッチのＩＤ（IDentifier）と、そのＬ２スイッチが有する他のＬ２スイッチ用の隣接ＤＬデータとについてデータが格納される。例えば１行目のエントリは、Ｌ２スイッチ１０ｓがＬ２スイッチ１１ｓ用の隣接ＤＬデータとＬ２スイッチ１４ｓ用の隣接ＤＬデータとを有することを表す。本実施の形態においては、各Ｌ２スイッチは図７に示すようなデータをＤＬデータ格納部１１３において管理する。
【００４０】
ネットワークにおける他のＬ２スイッチにＲ装置用の隣接ＤＬデータが有る場合（ステップＳ３５：Ｙｅｓルート）、処理はステップＳ３７に移行する。一方、ネットワークにおける他のＬ２スイッチにＲ装置用の隣接ＤＬデータが無い場合（ステップＳ３５：Ｎｏルート）、処理は端子Ｃを介して図９に移行し終了する。
【００４１】
一方、Ｒ装置用の隣接ＤＬデータがＤＬデータ格納部１１３に有る場合（ステップＳ３３：Ｙｅｓルート）、Ｓ装置のＤＬ要求部１０３は、隣接ＤＬデータの要求フレームに対する応答フレームを、Ｒ装置に対して通信部１０１を介して送信する（ステップＳ３７）。
【００４２】
Ｓ装置のサイズ調整部１０５は、サイズ調整の要求フレームを、例えばステップＳ３７の処理を実行してから所定時間内に受信したか判定する（ステップＳ３９）。サイズ調整の要求フレームを受信していない場合（ステップＳ３９：Ｎｏルート）、処理は端子Ｃを介して図９に移行し終了する。
【００４３】
一方、サイズ調整の要求フレームを受信した場合（ステップＳ３９：Ｙｅｓルート）、Ｓ装置のサイズ調整部１０５は、サイズ調整についての設定パラメータを、設定パラメータ格納部１１５から読み出す（ステップＳ４１）。処理は端子Ｄを介して図９のステップＳ４３に移行する。
【００４４】
図８に、設定パラメータ格納部１１５に格納されるデータの一例を示す。図８の例では、設定パラメータ「ＳｔａｒｔＦｒａｍｅＳｉｚｅ」と、設定パラメータ「ＥｎｄＦｒａｍｅＳｉｚｅ」と、設定パラメータ「ＦｒａｍｅＵｎｉｔＳｉｚｅ」と、設定パラメータ「ＯｎｅＳｈｏｔＮｕｍｂｅｒ」と、設定パラメータ「ＯｎｅＳｈｏｔＩｎｔｅｒｖａｌ」とが格納される。各設定パラメータの意味については、後で説明する。
【００４５】
図９の説明に移行し、Ｓ装置のサイズ調整部１０５は、ステップＳ４１において読み出した設定パラメータに従って、サイズが異なる複数（ここでは、設定パラメータ「ＯｎｅＳｈｏｔＮｕｍｂｅｒ」の数）のサイズ調整フレームを通信部１０１を介してＲ装置に送信する（図９：ステップＳ４３）。
【００４６】
図１０を用いて、サイズ調整フレームの送信について説明する。本実施の形態においては、サイズの降順でサイズ調整フレームが送信される。図１０の例では、最初に１００００バイトのサイズ調整フレームが送信され、次に９９００バイトのサイズ調整フレームが送信され、・・・、というように送信が行われる。設定パラメータ「ＦｒａｍｅＵｎｉｔＳｉｚｅ」はフレームサイズの変化量を設定するためのパラメータである。設定パラメータ「ＳｔａｒｔＦｒａｍｅＳｉｚｅ」は最初に送信されるサイズ調整フレームのフレームサイズを設定するためのパラメータである。１００００バイトから９６００バイトまでの５つのフレームが送信されると、設定パラメータ「ＯｎｅＳｈｏｔＩｎｔｅｒｖａｌ」の時間送信が停止される。設定パラメータは「ＯｎｅＳｈｏｔＮｕｍｂｅｒ」は、送信の停止が終了してから次に送信が停止するまでに送信されるサイズ調整フレームの数である。送信の停止が終了すると、９５００バイトから９１００バイトまでのサイズ調整フレームが送信される。サイズ調整フレームのサイズが設定パラメータ「ＥｎｄＦｒａｍｅＳｉｚｅ」以下になると、送信は終了する。
【００４７】
図９の説明に戻り、Ｓ装置のサイズ調整部１０５は、設定パラメータ「ＯｎｅＳｈｏｔＩｎｔｅｒｖａｌ」の時間待機する（ステップＳ４５）。
【００４８】
Ｓ装置のサイズ調整部１０５は、サイズ調整フレームの応答フレームを通信部１０１を介して受信したか判定する（ステップＳ４７）。応答フレームには、Ｒ装置により生成されたサイズ情報が含まれる。
【００４９】
サイズ調整フレームの応答フレームを通信部１０１を介して受信した場合（ステップＳ４７：Ｙｅｓルート）、処理はステップＳ５１に移行する。一方、サイズ調整フレームの応答フレームを通信部１０１を介して受信していない場合（ステップＳ４７：Ｎｏルート）、サイズ調整部１０５は、最後に送信したサイズ調整フレームのサイズが設定パラメータ「ＥｎｄＦｒａｍｅＳｉｚｅ」が示すサイズ以下であるか判定する（ステップＳ４９）。
【００５０】
最後に送信したサイズ調整フレームのサイズが設定パラメータ「ＥｎｄＦｒａｍｅＳｉｚｅ」が示すサイズ以下ではない場合（ステップＳ４９：Ｎｏルート）、処理はステップＳ４３に戻る。
【００５１】
一方、最後に送信したサイズ調整フレームのサイズが設定パラメータ「ＥｎｄＦｒａｍｅＳｉｚｅ」が示すサイズ以下である場合（ステップＳ４９：Ｙｅｓルート）、サイズ調整部１０５は、サイズ調整が完了したか判定する（ステップＳ５１）。ステップＳ５１においては、サイズ調整フレームの応答フレームを受信したか否かに基づき判定が行われる。
【００５２】
サイズ調整が完了していない場合（ステップＳ５１：Ｎｏルート）、処理は終了する。一方、サイズ調整が完了した場合（ステップＳ５１：Ｙｅｓルート）、サイズ調整部１０５は、サイズ調整が完了したことを通信部１０１に通知する。これに応じ、通信部１０１は、Ｒ装置用の隣接ＤＬデータがＤＬデータ格納部１１３に格納されている（すなわち、Ｒ装置用の隣接ＤＬデータが自装置に有る）か判定する（ステップＳ５３）。
【００５３】
Ｒ装置用の隣接ＤＬデータがＤＬデータ格納部１１３に格納されている場合（ステップＳ５３：Ｙｅｓルート）、処理はステップＳ５６に移行する。一方、Ｒ装置用の隣接ＤＬデータがＤＬデータ格納部１１３に格納されていない場合（ステップＳ５３：Ｎｏルート）、通信部１０１は、以下の処理を実行する。具体的には、通信部１０１は、Ｒ装置用の隣接ＤＬデータをネットワーク内の他のＬ２スイッチから取得する（ステップＳ５５）。そして処理はステップＳ５６に移行する。ステップＳ５５においては、図７に示したデータを用いてＲ装置用の隣接ＤＬデータを有する他のＬ２スイッチが特定され、特定されたＬ２スイッチからＲ装置用の隣接ＤＬデータが取得される。
【００５４】
Ｓ装置のサイズ調整部１０５は、受信した応答フレームに含まれるサイズ情報に基づき、Ｒ装置にフレームを送信する場合のフレームサイズを決定する（ステップＳ５６）。例えば、サイズ情報が示すフレームサイズ以下のサイズであってＳ装置が送信可能な最大サイズのフレームサイズが採用される。サイズ調整部１０５は、決定されたフレームサイズをＤＬデータ管理部１０７に通知する。
【００５５】
Ｓ装置のＤＬデータ管理部１０７は、Ｒ装置用の隣接ＤＬデータをＤＬデータ格納部１１３から読み出し、読み出した隣接ＤＬデータを、通知されたフレームサイズのフレームで通信部１０１を介して送信する（ステップＳ５７）。
【００５６】
Ｓ装置のＤＬデータ管理部１０７は、通信部１０１を介してＲ装置から完了通知フレームを受信する（ステップＳ５９）。そして処理は終了する。
【００５７】
以上のような処理を実行すれば、実際にＲ装置が受信することが可能な最大のフレームサイズでＳ装置が隣接ＤＬデータを送信することができるようになる。すなわち、最適なフレームサイズで効率的に隣接ＤＬデータのダウンロードを行うことができるようになる。
【００５８】
［実施の形態２］
第１の実施の形態においては、ネットワークにおける各Ｌ２スイッチが他のＬ２スイッチ用の隣接ＤＬデータを有しているが、各Ｌ２スイッチ用の隣接ＤＬデータを一元的に管理するコントローラ（例えば物理サーバ）をネットワークに配置し、各Ｌ２スイッチはコントローラから隣接ＤＬデータを取得してもよい。そこで、以下ではネットワークにコントローラを導入する例について説明する。
【００５９】
図１１に、第２の実施の形態におけるコントローラ３の機能ブロック図を示す。コントローラ３は、ＤＬデータ格納部３０１を含む。ＤＬデータ格納部３０１には、ネットワーク内の各Ｌ２スイッチ用の隣接ＤＬデータが格納されている。
【００６０】
図１２及び図１３を用いて、Ｓ装置がコントローラ３から隣接ＤＬデータを取得する場合の動作について説明する。まず、Ｓ装置のＤＬ要求部１０３は、隣接ＤＬデータの要求フレームを通信部１０１を介してＲ装置から受信する（図１２：ステップＳ６１）。
【００６１】
Ｓ装置のＤＬ要求部１０３は、Ｒ装置用の隣接ＤＬデータを有するかについて、ネットワークにおけるコントローラ３に問い合わせを通信部１０１を介して送信する（ステップＳ６３）。
【００６２】
Ｓ装置のＤＬ要求部１０３は、ステップＳ６３において送信した問い合わせに対する回答に基づき、コントローラ３にＲ装置用の隣接ＤＬデータが有るか判定する（ステップＳ６５）。
【００６３】
コントローラ３にＲ装置用の隣接ＤＬデータが無い場合（ステップＳ６５：Ｎｏルート）、処理は端子Ｅを介して図１３に移行し終了する。一方、コントローラ３にＲ装置用の隣接ＤＬデータが有る場合（ステップＳ６５：Ｙｅｓルート）、Ｓ装置のＤＬ要求部１０３は、隣接ＤＬデータの要求フレームに対する応答フレームを、Ｒ装置に対して通信部１０１を介して送信する（ステップＳ６７）。
【００６４】
Ｓ装置のサイズ調整部１０５は、サイズ調整の要求フレームを、例えばステップＳ６７の処理を実行してから所定時間内に受信したか判定する（ステップＳ６９）。サイズ調整の要求フレームを受信していない場合（ステップＳ６９：Ｎｏルート）、処理は端子Ｅを介して図１３に移行し終了する。
【００６５】
一方、サイズ調整の要求フレームを受信した場合（ステップＳ６９：Ｙｅｓルート）、Ｓ装置のサイズ調整部１０５は、サイズ調整についての設定パラメータを、設定パラメータ格納部１１５から読み出す（ステップＳ７１）。処理は端子Ｆを介して図１３のステップＳ７３に移行する。
【００６６】
図１３の説明に移行し、Ｓ装置のサイズ調整部１０５は、ステップＳ７１において読み出した設定パラメータに従って、サイズが異なる複数（ここでは、設定パラメータ「ＯｎｅＳｈｏｔＮｕｍｂｅｒ」の数）のサイズ調整フレームを通信部１０１を介してＲ装置に送信する（図１３：ステップＳ７３）。
【００６７】
Ｓ装置のサイズ調整部１０５は、設定パラメータ「ＯｎｅＳｈｏｔＩｎｔｅｒｖａｌ」の時間待機する（ステップＳ７５）。
【００６８】
Ｓ装置のサイズ調整部１０５は、サイズ調整フレームの応答フレームを通信部１０１を介して受信したか判定する（ステップＳ７７）。応答フレームには、Ｒ装置により生成されたサイズ情報が含まれる。
【００６９】
サイズ調整フレームの応答フレームを通信部１０１を介して受信した場合（ステップＳ７７：Ｙｅｓルート）、処理はステップＳ８１に移行する。一方、サイズ調整フレームの応答フレームを通信部１０１を介して受信していない場合（ステップＳ７７：Ｎｏルート）、サイズ調整部１０５は、最後に送信したサイズ調整フレームのサイズが設定パラメータ「ＥｎｄＦｒａｍｅＳｉｚｅ」が示すサイズ以下であるか判定する（ステップＳ７９）。
【００７０】
最後に送信したサイズ調整フレームのサイズが設定パラメータ「ＥｎｄＦｒａｍｅＳｉｚｅ」が示すサイズ以下ではない場合（ステップＳ７９：Ｎｏルート）、処理はステップＳ７３に戻る。
【００７１】
一方、最後に送信したサイズ調整フレームのサイズが設定パラメータ「ＥｎｄＦｒａｍｅＳｉｚｅ」が示すサイズ以下である場合（ステップＳ７９：Ｙｅｓルート）、サイズ調整部１０５は、サイズ調整が完了したか判定する（ステップＳ８１）。ステップＳ８１においては、サイズ調整フレームの応答フレームを受信したか否かに基づき判定が行われる。
【００７２】
サイズ調整が完了していない場合（ステップＳ８１：Ｎｏルート）、処理は終了する。一方、サイズ調整が完了した場合（ステップＳ８１：Ｙｅｓルート）、サイズ調整部１０５は、サイズ調整が完了したことを通信部１０１に通知する。これに応じ、通信部１０１は、Ｒ装置用の隣接ＤＬデータをコントローラ３から取得する（ステップＳ８３）。
【００７３】
Ｓ装置のサイズ調整部１０５は、受信した応答フレームに含まれるサイズ情報に基づき、Ｒ装置にフレームを送信する場合のフレームサイズを決定する（ステップＳ８５）。例えば、サイズ情報が示すフレームサイズ以下のサイズであってＳ装置が送信可能な最大サイズのフレームサイズが採用される。サイズ調整部１０５は、決定されたフレームサイズをＤＬデータ管理部１０７に通知する。
【００７４】
Ｓ装置のＤＬデータ管理部１０７は、ステップＳ８３においてコントローラ３から取得した隣接ＤＬデータを、通知されたフレームサイズのフレームで通信部１０１を介して送信する（ステップＳ８７）。
【００７５】
Ｓ装置のＤＬデータ管理部１０７は、通信部１０１を介してＲ装置から完了通知フレームを受信する（ステップＳ８９）。そして処理は終了する。
【００７６】
以上のように、ネットワークにコントローラ３を導入する場合であっても、Ｓ装置は隣接ＤＬデータを最適なフレームサイズでＲ装置に送信することができるようになる。
【００７７】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したＬ２スイッチの機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７８】
また、上で説明したデータ構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７９】
なお、上で述べたコントローラ３は、コンピュータ装置であって、図１４に示すように、メモリ２５０１とＣＰＵ２５０３とＨＤＤ２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８０】
また、上で述べたＬ２スイッチ（例えば、Ｒ装置およびＳ装置）は、中継装置であって、例えば図１５に示すように、メモリ２６０１とＣＰＵ２６０３とＨＤＤ２６０５と表示装置２６０９に接続される表示制御部２６０７とリムーバブル・ディスク２６１１用のドライブ装置２６１３と入力装置２６１５とネットワークに接続するための通信制御部２６１７（図１５では、２６１７ａ乃至２６１７ｃ）とがバス２６１９で接続されている構成の場合もある。なお、場合によっては、表示制御部２６０７、表示装置２６０９、ドライブ装置２６１３、入力装置２６１５は含まれない場合もある。オペレーティング・システム及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２６０５に格納されており、ＣＰＵ２６０３により実行される際にはＨＤＤ２６０５からメモリ２６０１に読み出される。必要に応じてＣＰＵ２６０３は、表示制御部２６０７、通信制御部２６１７、ドライブ装置２６１３を制御して、必要な動作を行わせる。なお、通信制御部２６１７のいずれかを介して入力されたデータは、他の通信制御部２６１７を介して出力される。ＣＰＵ２６０３は、通信制御部２６１７を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ２６０１に格納され、必要があればＨＤＤ２６０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２６１１に格納されて頒布され、ドライブ装置２６１３からＨＤＤ２６０５にインストールされる。インターネットなどのネットワーク及び通信制御部２６１７を経由して、ＨＤＤ２６０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２６０３、メモリ２６０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００８１】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００８２】
本実施の形態の第１の態様に係る通信方法は、（Ａ）第１の装置が、複数のデータサイズで第２の装置にデータを送信し、（Ｂ）第２の装置が、第１の装置からの受信に成功したデータのデータサイズの情報を、第１の装置に送信し、（Ｃ）第１の装置が、第２の装置から受信したデータサイズの情報に基づき選択したデータサイズで、第２の装置にデータを送信する処理を含む。
【００８３】
データサイズによっては通信経路上でデータが破棄される場合があるが、上で述べたようにすれば、最適なデータサイズで通信を行うことができるようになる。
【００８４】
また、第１の装置および第２の装置がレイヤ２のネットワークスイッチであってもよく、データサイズはフレームサイズであってもよい。
【００８５】
また、複数のデータサイズでデータを送信する処理において、（ａ１）データサイズの降順でデータを第２の装置に送信してもよい。送信可能な最大のデータサイズを早期に特定できるようになる。
【００８６】
また、複数のデータサイズでデータを送信する処理において、（ａ２）所定数のデータを送信したのち一定時間送信を停止することを繰り返してもよい。第２の装置からデータサイズの情報が送信されるのを待つ時間をつくることができるようになる。
【００８７】
また、データサイズの情報を第１の装置に送信する処理において、（ｂ１）受信に成功したデータのデータサイズのうち最大のデータサイズを特定し、特定した当該最大のデータサイズの情報を第１の装置に送信してもよい。データサイズを最大にすることで、効率的に通信を行うことができるようになる。
【００８８】
また、第２の装置から受信したデータサイズの情報に基づき選択したデータサイズで第２の装置にデータを送信する処理において、（ｃ１）第１の装置が第２の装置に送信すべきデータを有していない場合、当該データを有する装置から当該データを取得してもよい。各装置がデータを有していなくてもよいので、装置の記憶容量を節約できるようになる。また、管理者によるネットワーク管理が容易になる。
【００８９】
本実施の形態の第２の態様に係る通信装置は、（Ｄ）複数のデータサイズで他の通信装置にデータを送信する送信部（例えば通信部１０１）と、（Ｅ）複数のデータサイズのうち特定のデータサイズでの送信に対する応答を他の装置から受信した場合、特定のデータサイズに基づき、他の装置にデータを送信する場合のデータサイズを決定する決定部（例えばサイズ調整部１０５）とを有する。
【００９０】
本実施の形態の第３の態様に係る通信方法は、（Ｆ）複数のデータサイズで他の通信装置にデータを送信し、（Ｇ）複数のデータサイズのうち特定のデータサイズでの送信に対する応答を他の通信装置から受信した場合、特定のデータサイズに基づき、他の通信装置にデータを送信する場合のデータサイズを決定する処理を含む。
【００９１】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００９２】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９３】
（付記１）
第１の装置が、複数のデータサイズで第２の装置にデータを送信し、
前記第２の装置が、前記第１の装置からの受信に成功したデータのデータサイズの情報を、前記第１の装置に送信し、
前記第１の装置が、前記第２の装置から受信した前記データサイズの情報に基づき選択したデータサイズで、前記第２の装置にデータを送信する、
処理を実行する通信方法。
【００９４】
（付記２）
前記第１の装置および前記第２の装置がレイヤ２のネットワークスイッチであり、
前記データサイズはフレームサイズである、
付記１記載の通信方法。
【００９５】
（付記３）
前記複数のデータサイズでデータを送信する処理において、
データサイズの降順でデータを前記第２の装置に送信する、
付記１又は２記載の通信方法。
【００９６】
（付記４）
前記複数のデータサイズでデータを送信する処理において、
所定数のデータを送信したのち一定時間送信を停止することを繰り返す、
付記１乃至３のいずれか１つ記載の通信方法。
【００９７】
（付記５）
前記データサイズの情報を前記第１の装置に送信する処理において、
受信に成功したデータのデータサイズのうち最大のデータサイズを特定し、特定した当該最大のデータサイズの情報を前記第１の装置に送信する、
付記１乃至４のいずれか１つ記載の通信方法。
【００９８】
（付記６）
前記第２の装置から受信した前記データサイズの情報に基づき選択したデータサイズで前記第２の装置にデータを送信する処理において、
前記第１の装置が前記第２の装置に送信すべきデータを有していない場合、当該データを有する装置から当該データを取得する、
付記１乃至５のいずれか１つ記載の通信方法。
【００９９】
（付記７）
複数のデータサイズで他の通信装置にデータを送信する送信部と、
前記複数のデータサイズのうち特定のデータサイズでの送信に対する応答を前記他の通信装置から受信した場合、前記特定のデータサイズに基づき、前記他の通信装置にデータを送信する場合のデータサイズを決定する決定部と、
を有する通信装置。
【０１００】
（付記８）
コンピュータに、
複数のデータサイズで他の通信装置にデータを送信し、
前記複数のデータサイズのうち特定のデータサイズでの送信に対する応答を前記他の通信装置から受信した場合、前記特定のデータサイズに基づき、前記他の通信装置にデータを送信する場合のデータサイズを決定する、
処理を実行させる通信プログラム。
【符号の説明】
【０１０１】
１ｓ，２ｓ  Ｌ２スイッチ    １０１  通信部
１０３  ＤＬ要求部    １０５  サイズ調整部
１０７  ＤＬデータ管理部    １１１  通信バッファ
１１３  ＤＬデータ格納部    １１５  設定パラメータ格納部
３  コントローラ    ３０１  ＤＬデータ格納部
【図１】
2018101878.tif 000003
【図２】
2018101878.tif 000004
【図３】
2018101878.tif 000005
【図４】
2018101878.tif 000006
【図５】
2018101878.tif 000007
【図６】
2018101878.tif 000008
【図７】
2018101878.tif 000009
【図８】
2018101878.tif 000010
【図９】
2018101878.tif 000011
【図１０】
2018101878.tif 000012
【図１１】
2018101878.tif 000013
【図１２】
2018101878.tif 000014
【図１３】
2018101878.tif 000015
【図１４】
2018101878.tif 000016
【図１５】
2018101878.tif 000017