(57)【要約】【課題】  他の通信装置から切断要求を受信した後に、切断要求の再送に対応できると共にメモリ領域を有効に利用できるようにすることを目的とする。【解決手段】  他の通信装置からの通信の切断要求を通信情報に基づいて受信する受信手段と、前記他の通信装置との通信を開始する場合、前記通信情報を記憶する第１のメモリ領域と、前記他の通信装置と通信するデータをバッファする第２のメモリ領域と、を確保する確保手段と、前記切断要求を受信した際に、前記確保手段が確保した前記第２のメモリ領域を解放する解放手段とを有し、前記第２のメモリ領域が解放された後に前記他の通信装置が前記通信装置に前記切断要求を送信した場合、前記受信手段は、前記第１のメモリ領域に記憶された前記通信情報に基づいて前記切断要求を受信する。【選択図】  図４
2013219406.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
他の通信装置からの通信の切断要求を通信情報に基づいて受信する受信手段と、
前記他の通信装置との通信を開始する場合、前記通信情報を記憶する第１のメモリ領域と、前記他の通信装置と通信するデータをバッファする第２のメモリ領域と、を確保する確保手段と、
前記切断要求を受信した際に、前記確保手段が確保した前記第２のメモリ領域を解放する解放手段とを有し、
前記第２のメモリ領域が解放された後に前記他の通信装置が前記通信装置に前記切断要求を送信した場合、前記受信手段は、前記第１のメモリ領域に記憶された前記通信情報に基づいて前記切断要求を受信する
ことを特徴とする通信装置。
【請求項２】
前記確保手段は、前記他の通信装置との通信を開始する場合、更に、前記第１のメモリ領域とは異なる前記第３のメモリ領域を前記通信情報の記憶のために確保し、
前記解放手段は、前記第の２メモリ領域を解放すると共に前記第３のメモリを解放する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記解放手段により前記第３のメモリを解放する際に、前記第３のメモリに記憶された前記通信情報を前記第１のメモリ領域にコピーするコピー手段を更に有することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記受信手段により前記切断要求を受信してから所定時間の間に前記切断要求を再受信しなかった場合、前記解放手段は前記第１のメモリ領域を解放することを特徴とする請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
前記受信手段による前記切断要求の受信に応じて、前記他の通信装置に対する応答を送信する送信手段を更に有し、
前記解放手段は、前記送信手段による前記応答の送信に応じて前記第２のメモリ領域を解放することを特徴とする１乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記通信情報は、前記通信装置のアドレス情報とポート番号、および、前記他の通信装置のアドレス情報とポート番号を少なくとも含むことを特徴とする請求項１乃至５のいずれか１項に記載の通信装置。
【請求項７】
前記受信手段は、前記切断要求の宛先と前記通信情報に含まれる前記通信装置のアドレス情報とが一致している場合には前記切断要求を受信し、前記切断要求の宛先と前記通信情報に含まれる前記通信装置のアドレス情報とが一致していない場合には前記切断要求を破棄することを特徴とする請求項６に記載の通信装置。
【請求項８】
通信装置の制御方法であって、
他の通信装置からの通信の切断要求を通信情報に基づいて受信する第１の受信工程と、
前記他の通信装置との通信を開始する場合、前記通信情報を記憶する第１のメモリ領域と、前記他の通信装置と通信するデータをバッファする第２のメモリ領域と、を確保する確保工程と、
前記切断要求を受信した際に、前記確保手段が確保した前記第２のメモリ領域を解放する解放工程と、
前記第２のメモリ領域が解放された後に前記他の通信装置が前記通信装置に前記切断要求を送信した場合、前記第１のメモリ領域に記憶された前記通信情報に基づいて前記切断要求を受信する第２の受信工程と、
を有することを特徴とする通信装置。
【請求項９】
コンピュータを請求項１乃至７のいずれか１項に記載の通信装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他の通信装置と通信する際のメモリ確保に関する。
【背景技術】
【０００２】
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）に準拠した通信では、通信装置は通信相手装置（以下、相手装置と称する）との通信に必要な通信情報をメモリ領域に確保しておく必要がある。ここで、通信情報とは、自装置のアドレス情報やポート番号、および、相手装置のアドレス情報やポート番号等である。更に、通信装置は相手装置に送信するデータを一時保存するための送信バッファや、相手装置から受信したデータを一時保存するための受信バッファのためのメモリ領域を確保する必要がある。通信速度の向上に伴い、送信バッファや受信バッファとして更に多くのメモリ領域を確保することが求められている。これらのメモリ領域は、相手装置との通信を確立する際に確保される。
【０００３】
また、ＴＣＰに準拠した通信を切断する場合、通信装置と相手装置は通信の切断要求を送信し合い、これを受信するとＡｃｋ（到達確認）パケットを送信する。そして、通信装置と相手装置が各々該Ａｃｋパケットを受信したことをもって、通信の切断が完了する。
【０００４】
ここで、相手装置がＡｃｋパケットを受信できなかった場合には、相手装置は切断要求を再送する。この再送される切断要求の受信には通信情報が必要となるため、通信装置は相手装置からの切断要求の再送に備えて、切断要求を受信してから所定時間、通信の確立の際に確保したメモリ領域を確保したまま維持していた。
【０００５】
しかしながら、通信装置が有するメモリの総容量が少ない場合や、接続と切断が多数繰り返された場合、通信の確立の際に確保したメモリ領域を長時間維持しておくと、メモリ不足となり、新たな通信確立の妨げとなる可能性がある。そこで、特許文献１ではメモリ不足により新たな通信確立ができない場合、相手装置との通信の為に確保していたメモリ領域を切断要求の受信順に順次解放することで、新たな通信確立ができるようにしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−３４９８５６
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の技術では、メモリ領域を有効に利用しているものの、メモリ領域を解放し相手装置との通信に利用する通信情報を破棄した後に当該相手装置が切断要求を再送した場合、切断要求を正しく受信できない虞がある。
上記課題を鑑み、他の通信装置から切断要求を受信した後に、切断要求の再送に対応できると共にメモリ領域を有効に利用できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本願の通信装置は、他の通信装置からの通信の切断要求を通信情報に基づいて受信する受信手段と、前記他の通信装置との通信を開始する場合、前記通信情報を記憶する第１のメモリ領域と、前記他の通信装置と通信するデータをバッファする第２のメモリ領域と、を確保する確保手段と、前記切断要求を受信した際に、前記確保手段が確保した前記第２のメモリ領域を解放する解放手段とを有し、前記第２のメモリ領域が解放された後に前記他の通信装置が前記通信装置に前記切断要求を送信した場合、前記受信手段は、前記第１のメモリ領域に記憶された前記通信情報に基づいて前記切断要求を受信する。
【発明の効果】
【０００９】
本発明によれば、他の通信装置から切断要求を受信した後に、切断要求の再送に対応できると共にメモリ領域を有効に利用することができる。
【図面の簡単な説明】
【００１０】
【図１】ネットワーク構成図
【図２】通信装置１のハードウェア構成図
【図３】通信装置１が相手装置２と接続する際のフローチャート
【図４】通信装置１が相手装置２と切断する際のフローチャート
【図５】通信エントリとＴＷエントリの関係を示す図
【発明を実施するための形態】
【００１１】
図１に、本実施形態のネットワーク構成を示す。通信装置１および相手装置２は、ＴＣＰ／ＩＰに準拠した通信を行う。なお、図１では無線を利用した通信を図示しているが、これに限らず有線を利用した通信を行うようにしてもよい。通信装置１は、ＴＣＰに準拠した通信（ＴＣＰ通信）を利用して相手装置２に画像データを通信する。
【００１２】
通信装置１のハードウェア構成を図２（ａ）に示す。ＣＰＵ１０１は、メモリ１０２に記憶された各種プログラムを読み出すことで通信装置１を制御する。メモリ１０２は相手装置２に転送する画像データの記憶や、後述する各種プログラムを記憶する。更にメモリ１０２は、通信装置１と相手装置２との間の通信に利用するメモリ領域の提供を行う。当該メモリ領域は図５（ａ）に示す通信エントリおよびＴＷ（Ｔｉｍｅ  Ｗａｉｔ）エントリにより管理される。
【００１３】
通信装置１の通信エントリは、ＴＣＰに準拠した通信（画像データの送受信等）や切断要求の受信に利用される通信情報と再送タイマとを管理する。ここで通信情報とは、通信装置１のアドレス情報とポート番号、相手装置２のアドレス情報とポート番号、および、通信装置１が送信するパケットのシーケンス番号とＡｃｋ番号である。また、再送タイマは、通信装置１が送信したデータに対するＡｃｋを受信しなかった場合に、通信装置１が当該データを再送するまでの時間の計測に利用される。
【００１４】
通信エントリは更に、相手装置２に送信する画像データを一時保存するための送信バッファと、相手装置２から受信した画像データを一時保存するための受信バッファとを管理する。なお、送信バッファおよび受信バッファはメモリ１０２における領域の一部分である。送信バッファや受信バッファは高速な通信環境になるほど、通信性能を引き出すためにより大きなサイズが望まれ、それぞれが３２ＫＢやそれ以上のサイズになる場合もあり、メモリ１０２において、通信情報を記憶するメモリ領域と比して、多大なメモリ領域を占有することになる。従って、通信エントリは多大なメモリ領域を管理することになる。
【００１５】
一方、ＴＷエントリは、相手装置２との間の通信エントリが解放された後に、相手装置２からＴＣＰに準拠した切断要求の受信に利用される通信情報および待受タイマを管理する。なお、ＴＷエントリが管理する通信情報は、通信エントリが管理する通信情報と同じく、通信装置１のアドレス情報とポート番号、相手装置２のアドレス情報とポート番号、および、通信装置１が送信するパケットのシーケンス番号とＡｃｋ番号である。また、ＴＷエントリが管理する通信情報は、メモリ１０２において通信エントリが管理する通信情報とは別々の領域で記憶される。また、待受タイマとは、相手装置２からの切断要求を待ち受ける時間の計測に利用される。ＴＷエントリは、通信エントリとは異なり、送信バッファおよび受信バッファ（これらのバッファは上述したように、多大なメモリ領域を占有する）を管理しない。従って、通信エントリが管理するメモリ領域よりも非常に小さいメモリ領域を管理することになる。
【００１６】
なお、本実施形態においては、図５（ｂ）に示すように、Ｍ個の通信エントリと、Ｎ個（Ｍ＜Ｎ）のＴＷエントリのためのメモリ領域が予め用意されている。後述するように、通信装置１は相手装置２との通信確立の際に通信エントリとＴＷエントリを獲得し、その後、相手装置２から切断要求を受信した際に通信装置１は通信エントリを解放するがＴＷエントリは解放しない。従って、必ず「通信エントリの数≦ＴＷエントリの数」となるため、Ｍ＜Ｎとしている。これにより、ＴＷエントリのためのメモリ領域不足により、新たな通信の確立ができなくなる可能性を低減することができる。
【００１７】
ＵＩ（ユーザインタフェース）１０３は、ユーザに対して各種情報の提示や、ユーザからの各種入力の受付けを行う。タッチディスプレイや、ディスプレイとボタンの組み合わせ等により実現される。タイマ１０４は相手装置２との間のＴＣＰ通信に利用するタイマである。タイマ１０４は、例えば、データを再送するまでの時間や、相手装置２から切断要求を受信し、その応答（Ａｃｋ）を返した後に、切断要求の再受信を待ち受ける時間を計測する。ここでは、切断要求の再受信を待ち受けるのに十分な所定時間（１〜４分）を計測する。通信制御部１０５は、通信デバイス１０６を介して相手装置２とＴＣＰ通信を行うための各種制御を行う。
【００１８】
次に、通信装置１のソフトウェア構成を図２（ｂ）に示す。図２（ｂ）に示した各ソフトウェアモジュールは、ＣＰＵ１０１がメモリ１０２に記憶されたプログラムを読み出して実行することにより実現されるものとする。しかしこれに限らず、これらのソフトウェアモジュールの一部または全部をハードウェア構成として実現するようにしてもよい。
【００１９】
第１確保部２０１は、相手装置２とＴＣＰ通信するために通信エントリが管理する第１のメモリ領域を確保する。即ち、通信情報の記憶、送信バッファ、および、受信バッファのためのメモリ領域を確保する。
【００２０】
受信部２０２は、相手装置２からのＴＣＰ通信に準拠した切断要求を受信する。ここで、受信部２０２は、相手装置２からの切断要求のヘッダに含まれる宛先情報が、通信情報として記憶されている通信装置１のアドレス情報およびポート番号と一致している場合には、当該切断要求を受信する。一方で、宛先情報が、通信情報として記憶されている通信装置１のアドレス情報またはポート番号と一致していない場合には、当該切断要求を破棄する。
【００２１】
第２確保部はＴＷエントリが管理する第２のメモリ領域を確保する。即ち、通信情報を記憶するためのメモリ領域を確保する。第２のメモリ領域には、第１のメモリ領域と比べて送信バッファと受信バッファのためのメモリ領域が含まれないため、第２確保部が確保する第２のメモリ領域は、第１確保部が確保する第１のメモリ領域と比べて著しく小さい。
【００２２】
解放部２０４は、第１確保部２０１、および、第２確保部２０３が確保したメモリ領域を解放する。送信部２０５は、相手装置２から受信した切断要求に対する応答信号（Ａｃｋ）を送信する。
【００２３】
次に、通信装置１のＵＩ１０３を介してユーザから画像データの転送を指示された際に、通信装置１のＣＰＵ１０１がメモリ１０２に記憶されたプログラムを読み出して実現するフローチャートを図３に示す。なお、画像データの転送を指示された際、相手装置２との通信は確立されていない（切断状態）ものとする。そして、当該指示に応じて、相手装置２との通信を確立するための処理が開始される。
【００２４】
ステップＳ３０１において、第１確保部２０１は、新たに確立するＴＣＰ通信に利用する通信エントリが管理するメモリ領域（即ち、通信情報と送信バッファ、受信バッファのための第１のメモリ領域）を確保する。更に、タイマ１０４は、新たに確立するＴＣＰ通信で利用するタイマの管理を開始する。
【００２５】
次に、ステップＳ３０２において、第２確保部２０３は、新たに確立するＴＣＰ通信が切断される際に、相手装置２からの切断要求を受信するために利用するＴＷエントリが管理するメモリ領域（即ち、通信情報のための第２のメモリ領域）を確保する。更に、タイマ１０４は、相手装置２からの切断要求の再受信を待ち受ける時間を計測する待受タイマの管理を開始する。
【００２６】
次に、ステップＳ３０３において、ＣＰＵ１０１の指示により通信制御部１０５は、通信デバイス１０６を用いて、外部のネットワークの先にある相手装置２とＴＣＰプロトコルに従って接続処理（ＴＣＰ通信の確立処理）を実行する。
【００２７】
そして、メモリ１０２は、このＴＣＰ通信の確立処理の中で得た情報をステップＳ３０１で獲得した通信エントリが管理する第１のメモリ領域に記憶する。ここでは、通信用エントリに記憶する情報としては、通信装置１のＩＰアドレスとＴＣＰポート番号、および相手装置２のＩＰアドレスとＴＣＰポート番号である。
【００２８】
以上の処理フローにより、切断状態から接続状態に移行する。接続状態では通信装置１は通信エントリが管理する第１のメモリ領域を利用することにより、相手装置２とＴＣＰ通信することができる。
【００２９】
次に、接続状態から切断状態に移行する際に、通信装置１のＣＰＵ１０１がメモリ１０２に記憶されたプログラムを読み出して実現するフローチャートを図４に示す。
【００３０】
ステップＳ４０１では、ＣＰＵ１０１の指示により通信制御部１０５は、アクティブクローズにより切断状態に移行するか、パッシブクローズにより切断状態に移行するかを判定する。ここで、アクティブクローズとは、ＵＩ１０３を介したユーザ指示等により相手装置２よりも先に通信装置１が切断要求を送信することで切断状態に移行する方法である。また、パッシブクローズとは、通信装置１よりも先に相手装置２が切断要求を送信することで切断状態に移行する方法である。
【００３１】
アクティブクローズの場合、Ｓ４０２においてＣＰＵ１０１の指示により通信制御部１０５は、相手装置２に切断要求を送信する。そして、受信部２０２は、相手装置２から当該切断要求に対するＡｃｋを受信する。更に通信制御部１０５が相手装置２からの切断要求を受信すると、送信部２０５は、当該切断要求に対するＡｃｋを送信する。
【００３２】
そして、Ｓ４０３において、ＣＰＵ１０１の指示により通信制御部１０５は、通信エントリが管理する通信情報を、対応するＴＷエントリが管理する通信情報にコピーする。即ち、通信情報に含まれるシーケンス番号とＡｃｋ番号は、通信装置１と相手装置２とがＴＣＰ通信を行っている間に更新される値であるため、このタイミングで通信情報をコピーする（ムーブを含む）ことにより、ＴＷエントリの通信情報に適切な値を設定することができる。
【００３３】
次に、ステップＳ４０４において、ＣＰＵ１０１の指示により通信制御部１０５は、相手装置２からの切断要求に対するＡｃｋを送信してから所定時間の間、相手装置２との通信ではＴＷエントリを参照するように設定する。これにより、受信部２０２が相手装置２からの切断要求を再受信する場合には、ＴＷエントリが管理する通信情報が利用される。
【００３４】
一方、パッシブクローズの場合、相手装置２が通信装置１に送信した切断要求を受信部２０２が受信し、送信部２０５は当該切断要求に対するＡｃｋを送信する。更にＣＰＵ１０１の指示により通信制御部１０５は、相手装置２に切断要求を送信し、当該切断要求に対するＡｃｋを相手装置２から受信する。
【００３５】
ステップＳ４０６において、解放部２０４は第１確保部２０１が確保していた第１のメモリ領域を解放する。そして、アクティブクローズであれば受信部２０２は相手装置２からの切断要求の再送を所定時間待ち受け、切断要求が再送されなければＴＷエントリを解放する（Ｓ４０７‐Ｙｅｓ、４０８、４０９）。ここで、相手装置２から切断要求が再送され、受信部２０２が当該切断要求を受信した場合には、送信部２０５は切断要求に対するＡｃｋを送信する。ここで、受信部２０２はＴＷエントリにより管理された通信情報に基づいて切断要求の受信を行い、送信部２０５はＴＷエントリにより管理された通信情報に基づいてＡｃｋの送信を行う。
【００３６】
一方、パッシブクローズであればＴＣＰ／ＩＰ処理部１０３は所定時間待つことなくＴＷエントリを解放する（Ｓ４０７‐Ｎｏ、４０９）。これによりＴＣＰ通信の切断処理が完全に完了し、切断状態となる。
【００３７】
上述のように、アクティブクローズにおいて、相手装置２からの切断要求の再送を待ち受ける際に通信エントリが管理する第１のメモリ領域を解放するので、当該通信エントリが管理していた第１のメモリ領域を次の新たなＴＣＰ通信のために利用でき、メモリを効率的に利用することができる。また、ＴＷエントリが管理する第２のメモリ領域については解放しないので、ＴＷエントリを利用して相手装置２からの切断要求の再送に対応することができる。このように切断要求の受信に必要なメモリ領域を維持しつつ、切断要求の受信には利用しないメモリ領域を解放するので、メモリ領域を効率的に利用することができる。
【００３８】
また、通信装置１が次のように動作しても、本願の目的を達成することができる。即ち、ＴＣＰ通信を確立する際に、通信情報、送信バッファおよび受信バッファを含むメモリ領域を確保する。そして、アクティブクローズである場合には、確保したメモリ領域のうち通信情報を記憶するためのメモリ領域（第１のメモリ領域）を残して、送信バッファおよび受信バッファを含むメモリ領域（第２のメモリ領域）を解放する。このようにすることによっても、上述の目的及び効果を達成することができる。
【符号の説明】
【００３９】
１  通信装置
２  相手装置
１０１  ＣＰＵ
１０２  メモリ
１０３  ＴＣＰ／ＩＰ処理部
１０４  通信デバイス
１０３  通信デバイス制御部
１０６  タイマ管理部
１０７  通信エントリ管理部
１０８  ＴＷエントリ管理部
１０９  ＵＩ
【図１】
2013219406.tif 000003
【図２】
2013219406.tif 000004
【図３】
2013219406.tif 000005
【図４】
2013219406.tif 000006
【図５】
2013219406.tif 000007