(57)【要約】【課題】メモリ容量の小さい携帯端末において、限られたメモリの中で多くのＴＣＰ／ＩＰを使用した通信を行うことが可能であり、重要な通信要求が長時間待たされることがない装置を提供する。【解決手段】本発明のソケット管理層はアプリケーションから接続要求があったとき現在接続中のソケット数が装置内に確保可能な通信バッファの最大数を超えているか否かを判定し、装置で確保できるバッファ数以上のソケットのオープン要求はキューに登録する。また、ソケット管理層は実行中の通信が終了しバッファが解放されたことを検知すると、キューに登録された通信要求のためのソケットのオープンをＴＣＰ層に要求する構成を有している。【選択図】  図１
2006107095.tif 000002
【特許請求の範囲】
【請求項１】
ＴＣＰ／ＩＰを使用した情報処理装置のアプリケーション通信方法であって、
通信バッファの割り当てができなかったアプリケーションからのコネクション要求を待ち行列に登録するステップと、
使用可能な通信バッファの発生に応答して前記待ち行列に登録されたコネクション要求にソケットコネクションを確立して通信を行うステップと
からなるアプリケーション通信方法。
【請求項２】
請求項１記載のアプリケーション通信方法であって、
前記待ち行列に登録するステップは、アプリケーションの優先度及び／あるいは待ち時間の長さによって登録順位を決定するステップを有する
アプリケーション通信方法。
【請求項３】
ＴＣＰ／ＩＰを使用したアプリケーション通信を行う情報処理装置であって、
通信バッファの割り当てができなかったアプリケーションからのコネクション要求を待ち行列に登録する手段と、
使用可能な通信バッファの発生に応答して前記待ち行列に登録されたコネクション要求にソケットコネクションを確立して通信を行う手段と
を有する情報処理装置。
【請求項４】
請求項３記載の情報処理装置であって、
前記待ち行列に登録する手段は、アプリケーションの優先度及び／あるいは待ち時間の長さによって登録順位を決定する手段を有する
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モバイルコンピューティングのような、通信端末装置のアプリケーションからのアクセスに対してスループットが良好なＴＣＰ／ＩＰ通信を可能にするデータ通信装置及びデータ通信方法に関する。
【０００２】
近年、コンピュータなどの端末装置間でデータ通信を行なうためのネットワークとしてインターネットが普及している。また、それと共に携帯電話等の無線電話回線等との通信が可能な通信機能を備えた情報処理機器を用いるモバイルコンピューティングやリモートアクセスと呼ばれる利用形態が普及している。また、インターネットに接続される端末装置やルータは、インターネットプロトコル（ＩＰ)と呼ばれる経路制御プロトコルを提供するプログラムを有し、ＩＰによって異なるＬＡＮに接続された任意の端末装置間のパケット通信を可能にしている。さらに、パケットの消失等のエラーに対処し信頼性を高めるため、トランスミッションコントロールプロトコル(ＴＣＰ)と呼ばれる通信プロトコルが採用されている。ＴＣＰ及びＩＰは、有線のＬＡＮに接続された端末装置間におけるデータ通信のみならず、現在はモバイルコンピューティングやリモートアクセスでも一般的に利用されている。
【背景技術】
【０００３】
ＴＣＰ／ＩＰによる通信では一台の端末装置から複数の通信コネクションを設定し、各コネクションを介して複数の通信を同時に行うことが可能である。しかし、データの送信を途切れることなく確実に行うため、あるいは送信エラーが発生した時にエラーとなったパケットを再送するため等の理由により、送信データを一時的に保持するバッファを必要とする。このバッファは設定されたコネクション毎に独立に設定するものであり、通信コネクションの数が増加すると、必要とするバッファメモリの量も増加する。しかし、移動電話機等モバイルコンピューティングに使用される機器は小型化、小電力消費の要求のため、内蔵するメモリの容量も小さくせざるを得ない。そのため、すでに通信コネクションが設定され通信が行われている時、新たに通信コネクションを設定する必要が発生したにもかかわらず、機器搭載のメモリ容量が少なく、新たなコネクション用のバッファとして利用可能なメモリが確保できず、必要とするコネクションが設定できない状況が発生する。
【０００４】
ＴＣＰ／ＩＰ通信におけるソケット管理に関する技術文献には以下の文献が存在する。
【特許文献１】特開平７−２１０４８５号公報
【特許文献２】特開平１１−５１４１１７号公報
【特許文献３】特開２０００−１６５４６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、割り当て可能な通信バッファの数以上の通信要求の受付を可能にし、携帯型の通信端末のように、装置内に設定可能な通信バッファの数が限られている装置であっても、効率の良い通信要求の管理が可能な装置と方法に関するものである。
図４はクライアント装置内の第１アプリケーションからサーバ装置内の第２アプリケーションに通信要求を出す場合のシステムコールと、各システムコール間の関連を示すものである。
「socket()」は、アプリケーションのために通信ポートであるソケットの作成をソケット管理層に依頼するシステムコールである。通信を要求するアプリケーションでは通信を要求する時にこのシステムコールをソケット管理層に出力する。クライアントからの通信要求を待つ第２アプリケーションは予め受け付け用のソケットを作成し、システムコール「bind()」により生成したソケットに対してアドレスファミリー、ポート番号を設定しておき、「listen()」「accept()」システムコールを実行することにより待ち受け状態となる。
通信を要求する第１アプリケーションは「socket()」を第１ソケット管理層に出力しソケットの作成を要求する。次に、作成されたソケットを介して第２アプリケーションの待機中のソケットに接続を要求するシステムコール「connect()」を出力する。
コネクションが確立した後、システムコール「read（）」, 「write（）」によりデータの授受を実行する。データの授受が終了すると、システムコール「close()」によりソケットをクローズする。
【０００６】
図５乃至図８はＴＣＰ／ＩＰプロトコルを用いるデータ通信システムの構成を示す。図５には、クライアント端末装置１０、ルータ３０、サーバ端末装置２０、無線ネットワーク４０、及びインターネット５０から構成され、端末装置１０とルータ３０は無線電話回線等の無線ネットワーク４０で接続され、ルータ３０とサーバ端末装置２０はインターネット５０で接続されており、各々ＴＣＰ／ＩＰを用いて通信するデータ通信システムが示されている。
【０００７】
クライアントの端末装置１０は、無線ネットワーク４０に接続された情報処理装置であり、第１アプリケーション１１、第１ソケット管理層１２、第１ＴＣＰ層１３、第１ＩＰ層１４、第１ＰＰＰ層１５、及び第１無線回線アクセス装置１６を有している。ルータ３０は、無線ネットワーク４０に接続された装置及びインターネット５０に接続されるイーサネットインタフェースを備えた情報処理装置であり、第２ＩＰ層３１、第２ＰＰＰ層３２、第２無線回線アクセス装置３３、及びイーサネットアクセス装置３４を有している。サーバ端末装置２０は、インターネット５０に接続可能なイーサネットインタフェースを備えた情報処理装置であり、第２アプリケーション２１、第２ソケット管理層２２、第２ＴＣＰ層２３、第３ＩＰ層２４、及び第２イーサネットアクセス装置２５を有している。
【０００８】
第１アプリケーション１１及び第２アプリケーション２１はＷｅｂ閲覧ソフト、ＦＴＰ、メール等、相互にデータの授受を行うアプリケーションプログラムである。アプリケーションプログラムから相手に送信するアプリケーションデータは、パケットで伝送可能な所定のデータ量から成る複数のサブデータ、例えば、図６のサブアプリケーションデータに分割され、サブアプリケーションデータ毎に送信先を示すアドレスや制御情報からなる各種ヘッダが付与されて送信される。なお、図６のＰＰＰトレイラはパケットの最後を示すデータである。
【０００９】
第１アプリケーション１１は、第２アプリケーション２１との間で通信を行う際に、第１ソケット管理層１２によって提供されるソケットを通して通信を行う。第１アプリケーション１１から第２アプリケーション２１にアプリケーションデータを送信する場合、第１アプリケーション１１は第１ソケット管理層１２にアプリケーションデータを転送すると共にデータ送信要求を行う。また、第１アプリケーション１１で第２アプリケーション２１から送信されたアプリケーションデータを受信する場合、第１アプリケーション１１は第１ソケット管理層１２にデータ受信要求を行い、受信したアプリケーションデータを転送させる。
【００１０】
「ソケット」は、自己のＩＰアドレスとアプリケーションプログラム識別用のポート番号によって特定され、データ通信を実現するコネクションと呼ばれる仮想的な通信路へのアクセスポイントとなる。第１アプリケーション１１と第２アプリケーション２１間でアプリケーションデータの通信を行う場合、第１アプリケーション１１と第２アプリケーション２１間にコネクションが開設され、そのコネクションを介してアプリケーションデータが伝送される。また、アプリケーションデータの通信が終了したらコネクションも閉じられる。また、第１ソケット管理層１２は、第１アプリケーション１１から渡されたアプリケーションデータを、一時的に保持する送信データバッファを有する。
【００１１】
第１ソケット管理層１２がソケットとコネクションを対応付けることにより、第１アプリケーション１１は通信に用いるコネクションをソケットによって識別する。また、第１ソケット管理層１２は第１ＴＣＰ層１３にソケットの識別子を指定してデータの転送を要求する。第１ＴＣＰ層１３はソケット識別子により対応するコネクションを識別する。第１ＴＣＰ層１３及び第２ＴＣＰ層２３はＴＣＰプロトコルの制御部であり、コネクション制御やデータ通信を実現するためのトランスポート層のプロトコル層として機能する。第１ＴＣＰ層１３は、受信したアプリケーションデータを送信された順序に並べ替える順序制御機能と、パケット損失時に再送処理を行うデータ通信保証機能と、第２ＴＣＰ層２３とのフロー制御機能とを有している。
【００１２】
第１ＴＣＰ層１３は、第１ソケット管理層１２からアプリケーションデータを受け取ると、ＴＣＰセグメントを生成して第１ＩＰ層１４に渡す。ＴＣＰセグメントとは、図６に示すＴＣＰヘッダのみ、あるいはＴＣＰヘッダとアプリケーションデータから構成される。なお、ＴＣＰヘッダは図８に示すようにサブアプリケーションデータの先頭に付加される。また、第１ＴＣＰ層１３は、第１ＩＰ層１４からＴＣＰセグメントを受け取ると、それに含まれるＴＣＰヘッダから対応するコネクションを識別し、ＴＣＰプロトコル制御を行なう。
【００１３】
第１ＩＰ層１４、第２ＩＰ層３１、及び第３ＩＰ層２４は、ＩＰプロトコル制御を行うネットワーク層プロトコル層である。各ＩＰ層は、ネットワークにアクセスし識別するためのＩＰアドレスが付与されている。また、ＩＰ層はＩＰデータグラムをどのネットワークインタフェースに送出するかを記録した経路テーブルを有している。上位のＴＣＰ層からＴＣＰセグメントを受け取るとＩＰデータグラムを生成し下位の、例えばＰＰＰ層に渡す。
【００１４】
ＩＰ層は、下位層からＩＰデータグラムを受け取ると、そのＩＰデータグラムに含まれるＩＰヘッダから自己の端末装置宛てのＩＰデータグラムであるか否かを判断する。受け取ったＩＰデータグラムが自己の端末装置宛ての場合は、ＩＰデータグラムからＴＣＰセグメントを取り出し、上位ＴＣＰ層に渡す。また、ＩＰデータグラムが自己の端末装置宛てでない場合は、経路制御テーブルを参照してＩＰデータグラムの宛先に対応するネットワークインタフェースに送出する。または破棄もしくはエラーメッセージで応答する。
【００１５】
コネクションの機能は、第１ＴＣＰ層１３及び第２ＴＣＰ層２３によって実現され、それより下位の層はＩＰデータグラムを送信先の装置に転送する機能を有するのみである。ＴＣＰでは二つのソケット間にコネクションが設定され、ＴＣＰセグメントは各コネクションの二つのソケット間で送受信される。ＴＣＰセグメントとコネクションとの対応は、ＴＣＰセグメントのＴＣＰヘッダ中の送信元ポート番号部に送信元のソケットのポート番号を格納し、送信先ポート番号部に送信先のソケットのポート番号を格納することで識別する。また、ＩＰヘッダ中の送信元ＩＰアドレス部に送信元のソケットのＩＰアドレスを格納し、送信先ＩＰアドレス部に送信先のソケットのＩＰアドレスを格納することで識別する。
【００１６】
任意のコネクションの一方のソケットＳ１のＩＰアドレスをＡ１、ポート番号をＰ１とし、他方のソケットＳ２のＩＰアドレスをＡ２、ポート番号をＰ２とすると、第１ＴＣＰ層は、ＴＣＰヘッダ中の送信元ポート番号部にＰ１を格納し、送信先ポート番号部にＰ２を格納したＴＣＰセグメントを生成する。さらに、ＩＰ層は、ＩＰヘッダ中の送信元ＩＰアドレス部にＡ１を格納し、送信先ＩＰアドレス部にＡ２を格納したＩＰデータグラムを生成する。
【００１７】
データ通信システムのコネクション開設動作が図７に示されている。
サーバである第２アプリケーション２１は、第２ソケット管理層２２に待ち受けコネクションの生成を要求する。データ通信用のソケット（Ｓ２）が生成され、そのソケットに所定のポート番号(Ｐ２)を付与され待ち受けソケットとされる。また、第２アプリケーション２１自身をソケットＳ２によるコネクションの待ち受け状態にする。第２ソケット管理層２２は、ソケットＳ２に対する待ち受けコネクションの開設が要求されると、第２ＴＣＰ層２３にその旨を通知する。第２ＴＣＰ層２３はソケットＳ２をコネクション開設待ちの状態にする。
【００１８】
クライアントである第１アプリケーション１１から第２アプリケーション２１にコネクションを開設する場合、第１アプリケーション１１は、第１ソケット管理層１２に、データ通信用のソケット（Ｓ１）を生成し、ソケットＳ１を通じてサーバ端末装置２０のＩＰアドレス及びポート番号Ｐ２を指定しソケットＳ２へのコネクション開設を要求する。この要求に基づき、第１ソケット管理層１２はソケットＳ１とソケットＳ２の関係を記録し、第１ＴＣＰ層１３に対してソケットＳ２へのコネクション開設を要求する。第１ＴＣＰ層１３はソケットＳ２に対するコネクション開設要求を受け取ると、未使用のポート番号をソケットＳ１のポート番号に設定する（Ｐ１）。さらに、第１ＴＣＰ層１３は、コネクション開設を要求するため、コネクション設定用のＴＣＰセグメントＡ１を生成し第２ＴＣＰ層２３に渡す。
【００１９】
第２ＴＣＰ層２３は、第１ＴＣＰ層１３からコネクション設定用のＴＣＰセグメントＡ１を受け取ると、ＴＣＰセグメントＡ１に対する確認応答のTＣＰセグメントＡ２を生成して第１ＴＣＰ層１３に渡す。第１ＴＣＰ層１３は、ＴＣＰセグメントＡ２に対する確認応答ＴＣＰセグメントＡ３を第２ＴＣＰ層２３に渡す。第２ＴＣＰ層２３は、第１ＴＣＰ層１３からＴＣＰセグメントＡ３を受け取ると、第１ＴＣＰ層１３との間でコネクションの開設の確認がとれたと判断する。
【００２０】
第２ＴＣＰ層２３は、第２ソケット管理層２２にそのコネクション端点と共にコネクションの開設の完了を通知する。第２ソケット管理層２２は、コネクションの開設が通知されると当該コネクションに対してソケットＳ２と共に第２アプリケーション２１にコネクションの開設の完了を通知する。
【００２１】
端末装置１０のソケットＳ１とサーバ端末装置２０のソケットＳ２からなるコネクションを通じて第１アプリケーション１１から第２アプリケーション２１にアプリケーションデータを送信する場合、第１アプリケーション１１がソケットＳ１を通じて第１ソケット管理層１２にアプリケーションデータと共にデータ送信要求を渡すと、第１ソケット管理層１２はアプリケーションデータをソケットＳ１に対応する送信データバッファに格納し、第１ＴＣＰ層１３にデータ送信要求を行う。
【００２２】
第１ＴＣＰ層１３は、送信データバッファの先頭からサブアプリケーションデータ（約１５００バイト）を切り出し、切り出したサブアプリケーションデータの先頭にＴＣＰヘッダを付加してＴＣＰセグメントを生成し、ＩＰ層、ＰＰＰ層等を介して第２ＴＣＰ層２３に送信する。以上の処理は、送信データバッファの中のアプリケーションデータが無くなるか、送達確認されていないアプリケーションデータのサイズが送信ウィンドウサイズに達するか、第２ＴＣＰ層２３からの受信データバッファの空き容量不足の通知によるフロー制御の実行まで繰り返される。
【００２３】
第２ＴＣＰ層２３は、ＴＣＰセグメントを受信すると、ＴＣＰヘッダ中の送信元ポート番号部の値及び送信先ポート番号部の値から対応するコネクションを識別し、受信したアプリケーションデータをソケットＳ２に対応する受信データとして第２ソケット管理層２２に渡す。
第２ソケット管理層２２は、受け取ったアプリケーションデータをソケットＳ２に対応する受信データバッファに格納する。受信データバッファに格納されたアプリケーションデータは、第２ソケット管理層２２に対するデータ受信要求を契機に第２アプリケーション２１に渡される。
【００２４】
図８にコネクションの終了処理のフローが示されている。コネクションの終了処理は、送信元となるＣＰＵからの終了処理要求を契機に実行される。第１ソケット管理層１２は、第１アプリケーション１１からコネクションの終了要求を受け取ると、第１ＴＣＰ層１３にソケットの識別子と共にコネクションの終了要求を通知する。第１ＴＣＰ層１３は、コネクションの終了要求を受け取ると、そのソケットに対応するコネクションを終了するため、終了フラグを設定したＴＣＰセグメントＢ１を第２ＴＣＰ層２３に渡す。第２ＴＣＰ層２３はＴＣＰセグメントＢ１を受け取ると、確認応答のためのＴＣＰセグメントＢ２を生成し第１ＴＣＰ層１３に渡す。第１ＴＣＰ層１３はＴＣＰセグメントＢ２を受け取ると、第１アプリケーション１１から第２アプリケーション２１に対するコネクションの終了動作を完了する。
【課題を解決するための手段】
【００２５】
以上のように、アプリケーションがネットワーク上の他の装置に在るアプリケーションと通信する際、通信を希望するアプリケーションはソケット管理層にソケットの作成を要求する。要求を受けたソケット管理層はソケットを作成し、通信用のバッファを確保すると共にＴＣＰ層に相手側のＴＣＰ層とコネクションを形成することを要求する。通信バッファは１つのコネクションに対して例えば３２Ｋバイト確保される。コネクションが確立されると２つのアプリケーション間でアプリケーションデータの授受が行われる。アプリケーションデータは１５００バイト程度のパケットに分割されて順次通信バッファに蓄積さる。ＴＣＰ層は通信バッファからパケットを１つずつ取り出し、図９に示されるＴＣＰヘッダを付加してＩＰ層に転送する。通信バッファに蓄積され送信されたパケットは、送信先より正常に受信された旨の報告を受けた後破棄される。破棄され空きとなった通信バッファには、アプリケーションデータの次のデータ部分が取り出され格納される。送信先より正常に受信された旨の報告が無かった等、送信に失敗したと判断されると送信に失敗したパケットを再送信する。転送を要求されたアプリケーションデータの全ての送信が完了すると、前記のコネクションは解除され、通信バッファは解放される。
【００２６】
通信端末装置は、装置の収容筐体の大きさ、電気容量の制限等から、装置内に設けられているメモリの容量に限度があり、コネクション用に確保可能な通信バッファの数にも限りがある。Ｗｅｂの閲覧とメールの送信を同時に行う等、通信装置内で複数の通信が行われている時に、アプリケーションに新たな通信が必要となり、そのアプリケーションがソケット管理層に新たな通信の要求を出すことがある。このような場合、メモリ中に新たな通信の要求のために新たなバッファを確保し得る空き容量が存在しないと、ソケット管理層は通信の要求を出したアプリケーションに、通信は不可能である旨通知し、処理を終了する。通信は不可能である旨の通知を受けた通信端末装置のユーザーは、しばらく待った後再度アプリケーションを実行し通信要求を出すことになる。また、通信を急ぐ時には、通信不可能の通知を受けた後直ちに通信要求を出す行動を採る場合がしばしばある。この様な状況では、通信不可能の通知と通信要求を繰り返することになり、装置に不必要な負担をかけることになる。
【発明の効果】
【００２７】
本発明は、確保可能な通信バッファの数が少なく、通信要求が拒否されることによるユーザーの負担増加、或いは無駄な処理の増加を防止することを目的としている。本目的を達成するため、本発明に係るソケット管理層は、装置内に設定可能な通信バッファが全て使用中であり、アプリケーションから出された新たな通信の要求に対して通信バッファが確保できない場合、アプリケーションからの要求を一時的に保存するキュー手段が設けられている。受け付けることが不可能なアプリケーションからの通信要求は前記キュー手段に接続される。ＴＣＰ層が行っている通信が終了すると、ＴＣＰ層は使用していた通信バッファを解放する。ソケット管理層はＴＣＰ層が実行中のアプリケーションが終了したことを検知すると、キューに繋がれている通信要求から最も優先度の高い通信要求を取り出し、その要求に基づいてソケットを作成し、ＴＣＰ層に通信を要求する。ＴＣＰ層は直前に解放された通信バッファを用いて要求された通信処理を実行する。
【発明を実施するための最良の形態】
【００２８】
図１はアプリケーション、ソケット管理層、ＴＣＰ／ＩＰ層、及び通信バッファ間で授受される要求あるいは応答を示すものである。同図に示される構成の通信端末装置は３つの通信バッファが確保可能であり、従ってアプリケーションからの３つまでの通信要求を同時に処理可能である。
【００２９】
（１）アプリケーション１がソケット管理層に対し通信要求を行う。
（２）ソケット管理層はＴＣＰ層に対しＴＣＰソケットのオープンを要求する。
（３）ソケット管理層は（２）の要求に先立ち、通信バッファの確保が可能か否かを検査する。即ち、ソケット管理層は現在接続中のソケットの数を検査する。この時点では、接続中のソケットは無いため、ソケットをオープンし通信が可能と判断する。ソケット管理層は通信に必要な通信バッファ１をアプリケーション１の通信要求に割り当てる。次に、（２）の要求に基づいてオープンされたソケットに自己と相手方のＩＰアドレスとポート番号を関連づけ、通信を開始する。
（４）アプリケーション２がソケット管理層に対し通信要求を行う。
（５）ソケット管理層はＴＣＰ層に対しソケットのオープンを要求する。
（６）ソケット管理層は通信に割り当てられている通信バッファの数を検査する。割り当てられているバッファは１つのみであり、通信バッファの新たな割り当て可能と判断される。従って、ソケット管理層は通信バッファ２をアプリケーション２の通信要求に割り当て、上記（３）と同様の処理を行い、通信を開始する。
（７）〜（９）  （４）〜（５）をアプリケーシヨン３からの要求に対して繰り返し実行する。
【００３０】
（１０）アプリケーション４がソケット管理層に接続要求を行う。ソケット管理層は通信に割り当てられている通信バッファの数を検査する。この時点で既に３つの通信バッファが割り当てられており、装置内に設定可能な通信バッファは全て使用さけていることになる。ソケット管理層はアプリケーション４からの通信要求に対して通信バッファを割り当てることはできないと判断し、要求をキューに接続し保留状態とする。アプリケーション４に対しは、従来のように通信が不可能であることを応答しない。従って、アプリケーション４は接続要求を出した状態で待ち続け、ソケット管理層から相手方とのコネクションが完了し通信が可能となったことの通知がなされるのを待つ。キューには、どのアプリケーションからの接続要求か（ソケット識別子）、接続要求がなされた時刻、優先順位等の情報がキューイングされる。
【００３１】
（１１）アプリケーション１の通信が終了し、ＴＣＰセッションが終了したことがソケット管理層に通知される。ソケット管理層はアプリケーション１にセッションが終了したことを通知し通信バッファ１を開放する。
（１２）ソケット管理層はキューを検査し、キューに接続され保留状態となっている通信要求が有るか否かを検査する。キューには上記（１０）の処理によりアプリケーション４からの要求が繋げられており保留状態となっている。ソケット管理層はキューから要求を１つ取り出し、キューされたデータを解析する。キューデータを解析することにより、どのアプリケーションがどのＩＰアドレスのどのポートに対して通信要求を出したのか等、必要な情報を取得する。その情報に基づいてＴＣＰ層に対しＴＣＰソケットをオープンし、発側/着側のＩＰアドレス、発側/着側のポート番号（ソケットペア）の設定等必要な処理を要求する。当該要求に対する処理が完了し通信の開始が可能となった時、ソケット管理層はアプリケーション４にデータの送信を開始する旨通知する。
（１３）アプリケーション４のデータを（１１）開放された通信バッファ１を使用し通信を開始する。
【００３２】
図２−１及び図２−２にはキューに登録された通信要求が示されている。キューには通信の要求を出したにもかかわらず、通信バッファの割り当てが受けられず保留状態とされたアプリケーションの情報がブロック化されて登録される。登録情報には、通信を要求したアプリケーションのコード、要求の優先度、要求を出した時刻、要求したポート番号、及び相手方のＩＰアドレスとポーと番号等が含まれる。新たな通信要求がキューに登録された時、登録されているキューの優先順位、或いは登録さてからの待ち時間等を調査し、予め定められた規則に従って登録順次を調整する構成を採ることも可能である。この処理により、緊急の通信要求が待たされる、あるいは優先順位が低いことにより長時間待たされる要求の発生を防止することが可能となる。
図２−１は、複数の通信要求元アプリケーションからのコネクション要求を一つのキューターミナルに登録して管理する構成であり、同図（ａ）にキューに登録された要求が、（ｂ）に要求をキューに登録する手順が示されている。
キュー管理部がアプリケーションからのコネクション要求をキューに登録するとき、キュー管理部は既にキューに登録されている要求の優先度と待ち時間から、所定の規則、例えば待ち時間と優先度を重み付け加算する規則に従って登録されている各要求の優先指数を判定する。また、新たに登録する要求の優先指数を要求の優先度から判定する。キュー管理部はこれらの判定結果に基づいて新たな要求を含めた各要求の登録順序を決定し、キューターミナルに登録する。
当該構成において、待ち時間は考慮せず、優先度にのみ基づいてキューへの登録を管理することも可能である。この構成では、新たな要求は同じ優先度を持つ要求の最後に登録される。
図２−２は、キュー管理部に優先度に対応した複数のキューターミナルを設け、要求元アプリケーションからのコネクション要求を、その優先度に対応するキューターミナルに、発生順に登録する構成であり、同図（ａ）にキューに登録された要求が、（ｂ）に要求をキューに登録する手順が示されている。
キュー管理部がアプリケーションからのコネクション要求をキューに登録するとき、キュー管理部は新たな要求の優先度を判定し、その要求を登録するキューターミナルを決定する。次に管理部はそのキューターミナルに既に登録されている要求の最後の要求を調べ、最後の要求の次に上記新たな要求を最後の要求として登録する。
バッファを割り当てるため、キューから取り出す要求は、各要求が登録されているキュー の優先度とキュー 内の順位によって決定される。最も優先度の高いキューの先頭に登録されている要求からバッファの割り当てが行なわれる。しかし、時間の経過に伴い実行待ち要求の順位を動的に見直し、待ち時間が長い要求の登録をより順位の高いキューに変更することも可能である。
【００３３】
図３にはソケット管理層に在って、アプリケーションプログラムから通信要求を受付けると起動され、ＴＣＰ層に通信を依頼する接続要求処理部と、通信が終了したことの通知を受けると起動され、通信の終了処理を実行する切断要求処理部のフローの例が示されている。同図において「ｃ」はアプリケーションから要求されたソケット数であり、通信を実行中の要求とキューイングされ実行待ちの状態にある要求の総数である。「ｍ」は無線装置に確保可能な通信バッファの最大数である。
【００３４】
図３（ａ）は接続要求処理部の処理フローを示している。
Ｓ２００：メールプログラム、Ｗｅｂ閲覧プログラム等のアプリケーションプログラムがＴＣＰ／ＩＰプロトコルによる通信を装置のソケット管理プログラムに要求すると、ソケット管理プログラムは接続要求処理部を起動する。
Ｓ２０１：起動された接続要求処理部は「ｃ」に１加算し、装置内の通信要求が１つ増加したことを表示する。
Ｓ２０２：通信の要求数「ｃ」が装置に確保可能な通信バッファの最大数「ｍ」を超えるか否かを検査する。「ｃ＞ｍ」ではない時は空きのバッファが存在しており、新たな通信要求にバッファを割り当てることが可能である。
Ｓ２０３：Ｓ２０２で割り当て可能とされると、通信を要求したアプリケーションプログラムのポート番号、自己のＩＰアドレス、相手方のＩＰアドレス、相手方のポート番号に基づいた新たなソケットのオープンをＴＣＰ層に要求する。
Ｓ２０４：Ｓ２０３で作成されたソケットに通信バッファを割り当てる。
Ｓ２０５：接続要求処理部は、通信バッファの割り当てが終了したソケットによる通信をＴＣＰ層に要求する。ＴＣＰ層は作成されたソケットに基づいて相手方ＴＣＰ層とコネクションの設定処理を開始する。
Ｓ２０６：接続要求処理部は自己の処理を終了する。
Ｓ２０７：Ｓ２０２の判断が「ｃ＞ｍ」の時は、通信要求の総数が割り当て可能な通信バッファ数を超えたことを意味し、今回の通信要求に通信バッファを割り当てることはできない。従って、今回の通信要求をキューに登録する処理を行う。
Ｓ２０８：キューに登録されている通信要求を、アプリケーションの優先度、待ち時間の長短等、予め定められた規則に従って各要求の優先順位を判定し、キューに登録する順序を変更する。この処理により重要な通信要求が長時間待ち状態とされることを防止する。
Ｓ２０９：接続要求処理部は自己の処理を終了する。
【００３５】
図３（ｂ）は切断要求処理部の処理フローを示している。
Ｓ２２０：アプリケーションプログラムの通信が終了したことにより、ソケット管理プログラムは切断要求処理部を起動する。
Ｓ２２１：切断要求処理部はＴＣＰ層に通信が終了したアプリケーションプログラムに割り付けられているソケットのクローズを要求する。
Ｓ２２２：クローズするソケットに割り付けられている通信バッファを解放する。この処理により、解放された通信バッファは他のソケットに割付けることが可能となる。
Ｓ２２３：切断要求が有ったことは、装置内の通信が１つ終了し通信要求が１つ減ったことを意味する。従って、通信の要求数「ｃ」から１減算する。
Ｓ２２４：通信の要求数「ｃ」が装置に確保可能な通信バッファの最大数「ｍ」以上であるか否かを検査する。「ｃ」が「ｍ」未満の時は、切断の要求がなされた時点で、キューに登録された通信要求は存在していないことを示している。
Ｓ２２５：待機中の通信要求は存在せず、切断要求処理部は切断処理以外の処理をする必要がないため、自己の処理を終了する。
Ｓ２２６：「ｃ」が「ｍ」以上であることは、切断の要求がなされた時に少なくとも１つの通信要求がキューに登録されていることを表している。通信の要求キューから登録されている要求を１つ取り出す。
Ｓ２２７：キューから取り出した要求の情報を解析し、通信を要求したアプリケーションプログラムのポート番号、自己のＩＰアドレス、相手方のＩＰアドレス、相手方のポート番号を知り、それら情報に基づいた新たなソケットのオープンをＴＣＰ層に要求する。
Ｓ２２８：Ｓ２２７で作成されたソケットに通信バッファを割り当てる。
Ｓ２２９：通信バッファの割り当てたソケットによる通信をＴＣＰ層に要求する。この要求により、ＴＣＰ層は相手方ＴＣＰ層とコネクションの設定処理を開始する。
Ｓ２３０：キューを更新し、切断要求処理部は自己の処理を終了する。
【産業上の利用可能性】
【００３６】
本発明はＴＣＰ／ＩＰプロトコルを用いる通信を要求するアプリケーションとＴＣＰ層の間に、ＴＣＰ層にソケットのオープンを要求すると共にメモリ内に設定される通信バッファの管理を行うソケット管理層を備えている。ソケット管理層はアプリケーションから接続要求があったとき現在接続中のソケット数が装置内に確保可能な通信バッファの最大数を超えているか否かを判定し、装置で確保できるバッファ数以上のソケットのオープン要求はキューに登録する。また、ソケット管理層は実行中の通信が終了しバッファが解放されたことを検知すると、キューに登録された通信要求のためのソケットのオープンをＴＣＰ層に要求する構成を有している。この構成により、限られたメモリの中で多くのＴＣＰ／ＩＰを使用した通信を行うことが可能となる。また、キューに登録された通信要求の実行順序を要求の優先度、あるいは待ち時間に従って決定することにより、重要な通信要求が長時間待たされることがない装置の実現が可能となる。
【図面の簡単な説明】
【００３７】
【図１】本発明に係るソケット管理層とＴＣＰ／ＩＰ層の図
【図２−１】本発明に係るソケット管理層におけるキュー管理の第１の例を示す図
【図２−２】本発明に係るソケット管理層におけるキュー管理の第２の例を示す図
【図３】本発明に係るソケット管理層の接続要求と切断要求の処理部フローの図
【図４】クライアントとサーバ間の通信要求の流れ図
【図５】ＴＣＰ／ＩＰによる通信の説明図
【図６】ＴＣＰ／ＩＰにおれるアプリケーションデータの変化図
【図７】第１及び第２アプリケーションプログラム間のセクション設定処理のフロー図
【図８】セクション終了のフロー図
【図１】
2006107095.tif 000003
【図２−１】
2006107095.tif 000004
【図２−２】
2006107095.tif 000005
【図３】
2006107095.tif 000006
【図４】
2006107095.tif 000007
【図５】
2006107095.tif 000008
【図６】
2006107095.tif 000009
【図７】
2006107095.tif 000010
【図８】
2006107095.tif 000011