JP2006107095A - Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法 - Google Patents

Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法 Download PDF

Info

Publication number
JP2006107095A
JP2006107095A JP2004292462A JP2004292462A JP2006107095A JP 2006107095 A JP2006107095 A JP 2006107095A JP 2004292462 A JP2004292462 A JP 2004292462A JP 2004292462 A JP2004292462 A JP 2004292462A JP 2006107095 A JP2006107095 A JP 2006107095A
Authority
JP
Japan
Prior art keywords
communication
socket
application
request
tcp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004292462A
Other languages
English (en)
Other versions
JP4413121B2 (ja
Inventor
Shinji Uetsuki
伸次 植月
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SoftBank Corp
Original Assignee
Vodafone KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vodafone KK filed Critical Vodafone KK
Priority to JP2004292462A priority Critical patent/JP4413121B2/ja
Publication of JP2006107095A publication Critical patent/JP2006107095A/ja
Application granted granted Critical
Publication of JP4413121B2 publication Critical patent/JP4413121B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】メモリ容量の小さい携帯端末において、限られたメモリの中で多くのTCP/IPを使用した通信を行うことが可能であり、重要な通信要求が長時間待たされることがない装置を提供する。
【解決手段】本発明のソケット管理層はアプリケーションから接続要求があったとき現在接続中のソケット数が装置内に確保可能な通信バッファの最大数を超えているか否かを判定し、装置で確保できるバッファ数以上のソケットのオープン要求はキューに登録する。また、ソケット管理層は実行中の通信が終了しバッファが解放されたことを検知すると、キューに登録された通信要求のためのソケットのオープンをTCP層に要求する構成を有している。
【選択図】 図1

Description

本発明は、モバイルコンピューティングのような、通信端末装置のアプリケーションからのアクセスに対してスループットが良好なTCP/IP通信を可能にするデータ通信装置及びデータ通信方法に関する。
近年、コンピュータなどの端末装置間でデータ通信を行なうためのネットワークとしてインターネットが普及している。また、それと共に携帯電話等の無線電話回線等との通信が可能な通信機能を備えた情報処理機器を用いるモバイルコンピューティングやリモートアクセスと呼ばれる利用形態が普及している。また、インターネットに接続される端末装置やルータは、インターネットプロトコル(IP)と呼ばれる経路制御プロトコルを提供するプログラムを有し、IPによって異なるLANに接続された任意の端末装置間のパケット通信を可能にしている。さらに、パケットの消失等のエラーに対処し信頼性を高めるため、トランスミッションコントロールプロトコル(TCP)と呼ばれる通信プロトコルが採用されている。TCP及びIPは、有線のLANに接続された端末装置間におけるデータ通信のみならず、現在はモバイルコンピューティングやリモートアクセスでも一般的に利用されている。
TCP/IPによる通信では一台の端末装置から複数の通信コネクションを設定し、各コネクションを介して複数の通信を同時に行うことが可能である。しかし、データの送信を途切れることなく確実に行うため、あるいは送信エラーが発生した時にエラーとなったパケットを再送するため等の理由により、送信データを一時的に保持するバッファを必要とする。このバッファは設定されたコネクション毎に独立に設定するものであり、通信コネクションの数が増加すると、必要とするバッファメモリの量も増加する。しかし、移動電話機等モバイルコンピューティングに使用される機器は小型化、小電力消費の要求のため、内蔵するメモリの容量も小さくせざるを得ない。そのため、すでに通信コネクションが設定され通信が行われている時、新たに通信コネクションを設定する必要が発生したにもかかわらず、機器搭載のメモリ容量が少なく、新たなコネクション用のバッファとして利用可能なメモリが確保できず、必要とするコネクションが設定できない状況が発生する。
TCP/IP通信におけるソケット管理に関する技術文献には以下の文献が存在する。
特開平7−210485号公報 特開平11−514117号公報 特開2000−165469号公報
本発明は、割り当て可能な通信バッファの数以上の通信要求の受付を可能にし、携帯型の通信端末のように、装置内に設定可能な通信バッファの数が限られている装置であっても、効率の良い通信要求の管理が可能な装置と方法に関するものである。
図4はクライアント装置内の第1アプリケーションからサーバ装置内の第2アプリケーションに通信要求を出す場合のシステムコールと、各システムコール間の関連を示すものである。
「socket()」は、アプリケーションのために通信ポートであるソケットの作成をソケット管理層に依頼するシステムコールである。通信を要求するアプリケーションでは通信を要求する時にこのシステムコールをソケット管理層に出力する。クライアントからの通信要求を待つ第2アプリケーションは予め受け付け用のソケットを作成し、システムコール「bind()」により生成したソケットに対してアドレスファミリー、ポート番号を設定しておき、「listen()」「accept()」システムコールを実行することにより待ち受け状態となる。
通信を要求する第1アプリケーションは「socket()」を第1ソケット管理層に出力しソケットの作成を要求する。次に、作成されたソケットを介して第2アプリケーションの待機中のソケットに接続を要求するシステムコール「connect()」を出力する。
コネクションが確立した後、システムコール「read()」, 「write()」によりデータの授受を実行する。データの授受が終了すると、システムコール「close()」によりソケットをクローズする。
図5乃至図8はTCP/IPプロトコルを用いるデータ通信システムの構成を示す。図5には、クライアント端末装置10、ルータ30、サーバ端末装置20、無線ネットワーク40、及びインターネット50から構成され、端末装置10とルータ30は無線電話回線等の無線ネットワーク40で接続され、ルータ30とサーバ端末装置20はインターネット50で接続されており、各々TCP/IPを用いて通信するデータ通信システムが示されている。
クライアントの端末装置10は、無線ネットワーク40に接続された情報処理装置であり、第1アプリケーション11、第1ソケット管理層12、第1TCP層13、第1IP層14、第1PPP層15、及び第1無線回線アクセス装置16を有している。ルータ30は、無線ネットワーク40に接続された装置及びインターネット50に接続されるイーサネットインタフェースを備えた情報処理装置であり、第2IP層31、第2PPP層32、第2無線回線アクセス装置33、及びイーサネットアクセス装置34を有している。サーバ端末装置20は、インターネット50に接続可能なイーサネットインタフェースを備えた情報処理装置であり、第2アプリケーション21、第2ソケット管理層22、第2TCP層23、第3IP層24、及び第2イーサネットアクセス装置25を有している。
第1アプリケーション11及び第2アプリケーション21はWeb閲覧ソフト、FTP、メール等、相互にデータの授受を行うアプリケーションプログラムである。アプリケーションプログラムから相手に送信するアプリケーションデータは、パケットで伝送可能な所定のデータ量から成る複数のサブデータ、例えば、図6のサブアプリケーションデータに分割され、サブアプリケーションデータ毎に送信先を示すアドレスや制御情報からなる各種ヘッダが付与されて送信される。なお、図6のPPPトレイラはパケットの最後を示すデータである。
第1アプリケーション11は、第2アプリケーション21との間で通信を行う際に、第1ソケット管理層12によって提供されるソケットを通して通信を行う。第1アプリケーション11から第2アプリケーション21にアプリケーションデータを送信する場合、第1アプリケーション11は第1ソケット管理層12にアプリケーションデータを転送すると共にデータ送信要求を行う。また、第1アプリケーション11で第2アプリケーション21から送信されたアプリケーションデータを受信する場合、第1アプリケーション11は第1ソケット管理層12にデータ受信要求を行い、受信したアプリケーションデータを転送させる。
「ソケット」は、自己のIPアドレスとアプリケーションプログラム識別用のポート番号によって特定され、データ通信を実現するコネクションと呼ばれる仮想的な通信路へのアクセスポイントとなる。第1アプリケーション11と第2アプリケーション21間でアプリケーションデータの通信を行う場合、第1アプリケーション11と第2アプリケーション21間にコネクションが開設され、そのコネクションを介してアプリケーションデータが伝送される。また、アプリケーションデータの通信が終了したらコネクションも閉じられる。また、第1ソケット管理層12は、第1アプリケーション11から渡されたアプリケーションデータを、一時的に保持する送信データバッファを有する。
第1ソケット管理層12がソケットとコネクションを対応付けることにより、第1アプリケーション11は通信に用いるコネクションをソケットによって識別する。また、第1ソケット管理層12は第1TCP層13にソケットの識別子を指定してデータの転送を要求する。第1TCP層13はソケット識別子により対応するコネクションを識別する。第1TCP層13及び第2TCP層23はTCPプロトコルの制御部であり、コネクション制御やデータ通信を実現するためのトランスポート層のプロトコル層として機能する。第1TCP層13は、受信したアプリケーションデータを送信された順序に並べ替える順序制御機能と、パケット損失時に再送処理を行うデータ通信保証機能と、第2TCP層23とのフロー制御機能とを有している。
第1TCP層13は、第1ソケット管理層12からアプリケーションデータを受け取ると、TCPセグメントを生成して第1IP層14に渡す。TCPセグメントとは、図6に示すTCPヘッダのみ、あるいはTCPヘッダとアプリケーションデータから構成される。なお、TCPヘッダは図8に示すようにサブアプリケーションデータの先頭に付加される。また、第1TCP層13は、第1IP層14からTCPセグメントを受け取ると、それに含まれるTCPヘッダから対応するコネクションを識別し、TCPプロトコル制御を行なう。
第1IP層14、第2IP層31、及び第3IP層24は、IPプロトコル制御を行うネットワーク層プロトコル層である。各IP層は、ネットワークにアクセスし識別するためのIPアドレスが付与されている。また、IP層はIPデータグラムをどのネットワークインタフェースに送出するかを記録した経路テーブルを有している。上位のTCP層からTCPセグメントを受け取るとIPデータグラムを生成し下位の、例えばPPP層に渡す。
IP層は、下位層からIPデータグラムを受け取ると、そのIPデータグラムに含まれるIPヘッダから自己の端末装置宛てのIPデータグラムであるか否かを判断する。受け取ったIPデータグラムが自己の端末装置宛ての場合は、IPデータグラムからTCPセグメントを取り出し、上位TCP層に渡す。また、IPデータグラムが自己の端末装置宛てでない場合は、経路制御テーブルを参照してIPデータグラムの宛先に対応するネットワークインタフェースに送出する。または破棄もしくはエラーメッセージで応答する。
コネクションの機能は、第1TCP層13及び第2TCP層23によって実現され、それより下位の層はIPデータグラムを送信先の装置に転送する機能を有するのみである。TCPでは二つのソケット間にコネクションが設定され、TCPセグメントは各コネクションの二つのソケット間で送受信される。TCPセグメントとコネクションとの対応は、TCPセグメントのTCPヘッダ中の送信元ポート番号部に送信元のソケットのポート番号を格納し、送信先ポート番号部に送信先のソケットのポート番号を格納することで識別する。また、IPヘッダ中の送信元IPアドレス部に送信元のソケットのIPアドレスを格納し、送信先IPアドレス部に送信先のソケットのIPアドレスを格納することで識別する。
任意のコネクションの一方のソケットS1のIPアドレスをA1、ポート番号をP1とし、他方のソケットS2のIPアドレスをA2、ポート番号をP2とすると、第1TCP層は、TCPヘッダ中の送信元ポート番号部にP1を格納し、送信先ポート番号部にP2を格納したTCPセグメントを生成する。さらに、IP層は、IPヘッダ中の送信元IPアドレス部にA1を格納し、送信先IPアドレス部にA2を格納したIPデータグラムを生成する。
データ通信システムのコネクション開設動作が図7に示されている。
サーバである第2アプリケーション21は、第2ソケット管理層22に待ち受けコネクションの生成を要求する。データ通信用のソケット(S2)が生成され、そのソケットに所定のポート番号(P2)を付与され待ち受けソケットとされる。また、第2アプリケーション21自身をソケットS2によるコネクションの待ち受け状態にする。第2ソケット管理層22は、ソケットS2に対する待ち受けコネクションの開設が要求されると、第2TCP層23にその旨を通知する。第2TCP層23はソケットS2をコネクション開設待ちの状態にする。
クライアントである第1アプリケーション11から第2アプリケーション21にコネクションを開設する場合、第1アプリケーション11は、第1ソケット管理層12に、データ通信用のソケット(S1)を生成し、ソケットS1を通じてサーバ端末装置20のIPアドレス及びポート番号P2を指定しソケットS2へのコネクション開設を要求する。この要求に基づき、第1ソケット管理層12はソケットS1とソケットS2の関係を記録し、第1TCP層13に対してソケットS2へのコネクション開設を要求する。第1TCP層13はソケットS2に対するコネクション開設要求を受け取ると、未使用のポート番号をソケットS1のポート番号に設定する(P1)。さらに、第1TCP層13は、コネクション開設を要求するため、コネクション設定用のTCPセグメントA1を生成し第2TCP層23に渡す。
第2TCP層23は、第1TCP層13からコネクション設定用のTCPセグメントA1を受け取ると、TCPセグメントA1に対する確認応答のTCPセグメントA2を生成して第1TCP層13に渡す。第1TCP層13は、TCPセグメントA2に対する確認応答TCPセグメントA3を第2TCP層23に渡す。第2TCP層23は、第1TCP層13からTCPセグメントA3を受け取ると、第1TCP層13との間でコネクションの開設の確認がとれたと判断する。
第2TCP層23は、第2ソケット管理層22にそのコネクション端点と共にコネクションの開設の完了を通知する。第2ソケット管理層22は、コネクションの開設が通知されると当該コネクションに対してソケットS2と共に第2アプリケーション21にコネクションの開設の完了を通知する。
端末装置10のソケットS1とサーバ端末装置20のソケットS2からなるコネクションを通じて第1アプリケーション11から第2アプリケーション21にアプリケーションデータを送信する場合、第1アプリケーション11がソケットS1を通じて第1ソケット管理層12にアプリケーションデータと共にデータ送信要求を渡すと、第1ソケット管理層12はアプリケーションデータをソケットS1に対応する送信データバッファに格納し、第1TCP層13にデータ送信要求を行う。
第1TCP層13は、送信データバッファの先頭からサブアプリケーションデータ(約1500バイト)を切り出し、切り出したサブアプリケーションデータの先頭にTCPヘッダを付加してTCPセグメントを生成し、IP層、PPP層等を介して第2TCP層23に送信する。以上の処理は、送信データバッファの中のアプリケーションデータが無くなるか、送達確認されていないアプリケーションデータのサイズが送信ウィンドウサイズに達するか、第2TCP層23からの受信データバッファの空き容量不足の通知によるフロー制御の実行まで繰り返される。
第2TCP層23は、TCPセグメントを受信すると、TCPヘッダ中の送信元ポート番号部の値及び送信先ポート番号部の値から対応するコネクションを識別し、受信したアプリケーションデータをソケットS2に対応する受信データとして第2ソケット管理層22に渡す。
第2ソケット管理層22は、受け取ったアプリケーションデータをソケットS2に対応する受信データバッファに格納する。受信データバッファに格納されたアプリケーションデータは、第2ソケット管理層22に対するデータ受信要求を契機に第2アプリケーション21に渡される。
図8にコネクションの終了処理のフローが示されている。コネクションの終了処理は、送信元となるCPUからの終了処理要求を契機に実行される。第1ソケット管理層12は、第1アプリケーション11からコネクションの終了要求を受け取ると、第1TCP層13にソケットの識別子と共にコネクションの終了要求を通知する。第1TCP層13は、コネクションの終了要求を受け取ると、そのソケットに対応するコネクションを終了するため、終了フラグを設定したTCPセグメントB1を第2TCP層23に渡す。第2TCP層23はTCPセグメントB1を受け取ると、確認応答のためのTCPセグメントB2を生成し第1TCP層13に渡す。第1TCP層13はTCPセグメントB2を受け取ると、第1アプリケーション11から第2アプリケーション21に対するコネクションの終了動作を完了する。
以上のように、アプリケーションがネットワーク上の他の装置に在るアプリケーションと通信する際、通信を希望するアプリケーションはソケット管理層にソケットの作成を要求する。要求を受けたソケット管理層はソケットを作成し、通信用のバッファを確保すると共にTCP層に相手側のTCP層とコネクションを形成することを要求する。通信バッファは1つのコネクションに対して例えば32Kバイト確保される。コネクションが確立されると2つのアプリケーション間でアプリケーションデータの授受が行われる。アプリケーションデータは1500バイト程度のパケットに分割されて順次通信バッファに蓄積さる。TCP層は通信バッファからパケットを1つずつ取り出し、図9に示されるTCPヘッダを付加してIP層に転送する。通信バッファに蓄積され送信されたパケットは、送信先より正常に受信された旨の報告を受けた後破棄される。破棄され空きとなった通信バッファには、アプリケーションデータの次のデータ部分が取り出され格納される。送信先より正常に受信された旨の報告が無かった等、送信に失敗したと判断されると送信に失敗したパケットを再送信する。転送を要求されたアプリケーションデータの全ての送信が完了すると、前記のコネクションは解除され、通信バッファは解放される。
通信端末装置は、装置の収容筐体の大きさ、電気容量の制限等から、装置内に設けられているメモリの容量に限度があり、コネクション用に確保可能な通信バッファの数にも限りがある。Webの閲覧とメールの送信を同時に行う等、通信装置内で複数の通信が行われている時に、アプリケーションに新たな通信が必要となり、そのアプリケーションがソケット管理層に新たな通信の要求を出すことがある。このような場合、メモリ中に新たな通信の要求のために新たなバッファを確保し得る空き容量が存在しないと、ソケット管理層は通信の要求を出したアプリケーションに、通信は不可能である旨通知し、処理を終了する。通信は不可能である旨の通知を受けた通信端末装置のユーザーは、しばらく待った後再度アプリケーションを実行し通信要求を出すことになる。また、通信を急ぐ時には、通信不可能の通知を受けた後直ちに通信要求を出す行動を採る場合がしばしばある。この様な状況では、通信不可能の通知と通信要求を繰り返することになり、装置に不必要な負担をかけることになる。
本発明は、確保可能な通信バッファの数が少なく、通信要求が拒否されることによるユーザーの負担増加、或いは無駄な処理の増加を防止することを目的としている。本目的を達成するため、本発明に係るソケット管理層は、装置内に設定可能な通信バッファが全て使用中であり、アプリケーションから出された新たな通信の要求に対して通信バッファが確保できない場合、アプリケーションからの要求を一時的に保存するキュー手段が設けられている。受け付けることが不可能なアプリケーションからの通信要求は前記キュー手段に接続される。TCP層が行っている通信が終了すると、TCP層は使用していた通信バッファを解放する。ソケット管理層はTCP層が実行中のアプリケーションが終了したことを検知すると、キューに繋がれている通信要求から最も優先度の高い通信要求を取り出し、その要求に基づいてソケットを作成し、TCP層に通信を要求する。TCP層は直前に解放された通信バッファを用いて要求された通信処理を実行する。
図1はアプリケーション、ソケット管理層、TCP/IP層、及び通信バッファ間で授受される要求あるいは応答を示すものである。同図に示される構成の通信端末装置は3つの通信バッファが確保可能であり、従ってアプリケーションからの3つまでの通信要求を同時に処理可能である。
(1)アプリケーション1がソケット管理層に対し通信要求を行う。
(2)ソケット管理層はTCP層に対しTCPソケットのオープンを要求する。
(3)ソケット管理層は(2)の要求に先立ち、通信バッファの確保が可能か否かを検査する。即ち、ソケット管理層は現在接続中のソケットの数を検査する。この時点では、接続中のソケットは無いため、ソケットをオープンし通信が可能と判断する。ソケット管理層は通信に必要な通信バッファ1をアプリケーション1の通信要求に割り当てる。次に、(2)の要求に基づいてオープンされたソケットに自己と相手方のIPアドレスとポート番号を関連づけ、通信を開始する。
(4)アプリケーション2がソケット管理層に対し通信要求を行う。
(5)ソケット管理層はTCP層に対しソケットのオープンを要求する。
(6)ソケット管理層は通信に割り当てられている通信バッファの数を検査する。割り当てられているバッファは1つのみであり、通信バッファの新たな割り当て可能と判断される。従って、ソケット管理層は通信バッファ2をアプリケーション2の通信要求に割り当て、上記(3)と同様の処理を行い、通信を開始する。
(7)〜(9) (4)〜(5)をアプリケーシヨン3からの要求に対して繰り返し実行する。
(10)アプリケーション4がソケット管理層に接続要求を行う。ソケット管理層は通信に割り当てられている通信バッファの数を検査する。この時点で既に3つの通信バッファが割り当てられており、装置内に設定可能な通信バッファは全て使用さけていることになる。ソケット管理層はアプリケーション4からの通信要求に対して通信バッファを割り当てることはできないと判断し、要求をキューに接続し保留状態とする。アプリケーション4に対しは、従来のように通信が不可能であることを応答しない。従って、アプリケーション4は接続要求を出した状態で待ち続け、ソケット管理層から相手方とのコネクションが完了し通信が可能となったことの通知がなされるのを待つ。キューには、どのアプリケーションからの接続要求か(ソケット識別子)、接続要求がなされた時刻、優先順位等の情報がキューイングされる。
(11)アプリケーション1の通信が終了し、TCPセッションが終了したことがソケット管理層に通知される。ソケット管理層はアプリケーション1にセッションが終了したことを通知し通信バッファ1を開放する。
(12)ソケット管理層はキューを検査し、キューに接続され保留状態となっている通信要求が有るか否かを検査する。キューには上記(10)の処理によりアプリケーション4からの要求が繋げられており保留状態となっている。ソケット管理層はキューから要求を1つ取り出し、キューされたデータを解析する。キューデータを解析することにより、どのアプリケーションがどのIPアドレスのどのポートに対して通信要求を出したのか等、必要な情報を取得する。その情報に基づいてTCP層に対しTCPソケットをオープンし、発側/着側のIPアドレス、発側/着側のポート番号(ソケットペア)の設定等必要な処理を要求する。当該要求に対する処理が完了し通信の開始が可能となった時、ソケット管理層はアプリケーション4にデータの送信を開始する旨通知する。
(13)アプリケーション4のデータを(11)開放された通信バッファ1を使用し通信を開始する。
図2−1及び図2−2にはキューに登録された通信要求が示されている。キューには通信の要求を出したにもかかわらず、通信バッファの割り当てが受けられず保留状態とされたアプリケーションの情報がブロック化されて登録される。登録情報には、通信を要求したアプリケーションのコード、要求の優先度、要求を出した時刻、要求したポート番号、及び相手方のIPアドレスとポーと番号等が含まれる。新たな通信要求がキューに登録された時、登録されているキューの優先順位、或いは登録さてからの待ち時間等を調査し、予め定められた規則に従って登録順次を調整する構成を採ることも可能である。この処理により、緊急の通信要求が待たされる、あるいは優先順位が低いことにより長時間待たされる要求の発生を防止することが可能となる。
図2−1は、複数の通信要求元アプリケーションからのコネクション要求を一つのキューターミナルに登録して管理する構成であり、同図(a)にキューに登録された要求が、(b)に要求をキューに登録する手順が示されている。
キュー管理部がアプリケーションからのコネクション要求をキューに登録するとき、キュー管理部は既にキューに登録されている要求の優先度と待ち時間から、所定の規則、例えば待ち時間と優先度を重み付け加算する規則に従って登録されている各要求の優先指数を判定する。また、新たに登録する要求の優先指数を要求の優先度から判定する。キュー管理部はこれらの判定結果に基づいて新たな要求を含めた各要求の登録順序を決定し、キューターミナルに登録する。
当該構成において、待ち時間は考慮せず、優先度にのみ基づいてキューへの登録を管理することも可能である。この構成では、新たな要求は同じ優先度を持つ要求の最後に登録される。
図2−2は、キュー管理部に優先度に対応した複数のキューターミナルを設け、要求元アプリケーションからのコネクション要求を、その優先度に対応するキューターミナルに、発生順に登録する構成であり、同図(a)にキューに登録された要求が、(b)に要求をキューに登録する手順が示されている。
キュー管理部がアプリケーションからのコネクション要求をキューに登録するとき、キュー管理部は新たな要求の優先度を判定し、その要求を登録するキューターミナルを決定する。次に管理部はそのキューターミナルに既に登録されている要求の最後の要求を調べ、最後の要求の次に上記新たな要求を最後の要求として登録する。
バッファを割り当てるため、キューから取り出す要求は、各要求が登録されているキュー の優先度とキュー 内の順位によって決定される。最も優先度の高いキューの先頭に登録されている要求からバッファの割り当てが行なわれる。しかし、時間の経過に伴い実行待ち要求の順位を動的に見直し、待ち時間が長い要求の登録をより順位の高いキューに変更することも可能である。
図3にはソケット管理層に在って、アプリケーションプログラムから通信要求を受付けると起動され、TCP層に通信を依頼する接続要求処理部と、通信が終了したことの通知を受けると起動され、通信の終了処理を実行する切断要求処理部のフローの例が示されている。同図において「c」はアプリケーションから要求されたソケット数であり、通信を実行中の要求とキューイングされ実行待ちの状態にある要求の総数である。「m」は無線装置に確保可能な通信バッファの最大数である。
図3(a)は接続要求処理部の処理フローを示している。
S200:メールプログラム、Web閲覧プログラム等のアプリケーションプログラムがTCP/IPプロトコルによる通信を装置のソケット管理プログラムに要求すると、ソケット管理プログラムは接続要求処理部を起動する。
S201:起動された接続要求処理部は「c」に1加算し、装置内の通信要求が1つ増加したことを表示する。
S202:通信の要求数「c」が装置に確保可能な通信バッファの最大数「m」を超えるか否かを検査する。「c>m」ではない時は空きのバッファが存在しており、新たな通信要求にバッファを割り当てることが可能である。
S203:S202で割り当て可能とされると、通信を要求したアプリケーションプログラムのポート番号、自己のIPアドレス、相手方のIPアドレス、相手方のポート番号に基づいた新たなソケットのオープンをTCP層に要求する。
S204:S203で作成されたソケットに通信バッファを割り当てる。
S205:接続要求処理部は、通信バッファの割り当てが終了したソケットによる通信をTCP層に要求する。TCP層は作成されたソケットに基づいて相手方TCP層とコネクションの設定処理を開始する。
S206:接続要求処理部は自己の処理を終了する。
S207:S202の判断が「c>m」の時は、通信要求の総数が割り当て可能な通信バッファ数を超えたことを意味し、今回の通信要求に通信バッファを割り当てることはできない。従って、今回の通信要求をキューに登録する処理を行う。
S208:キューに登録されている通信要求を、アプリケーションの優先度、待ち時間の長短等、予め定められた規則に従って各要求の優先順位を判定し、キューに登録する順序を変更する。この処理により重要な通信要求が長時間待ち状態とされることを防止する。
S209:接続要求処理部は自己の処理を終了する。
図3(b)は切断要求処理部の処理フローを示している。
S220:アプリケーションプログラムの通信が終了したことにより、ソケット管理プログラムは切断要求処理部を起動する。
S221:切断要求処理部はTCP層に通信が終了したアプリケーションプログラムに割り付けられているソケットのクローズを要求する。
S222:クローズするソケットに割り付けられている通信バッファを解放する。この処理により、解放された通信バッファは他のソケットに割付けることが可能となる。
S223:切断要求が有ったことは、装置内の通信が1つ終了し通信要求が1つ減ったことを意味する。従って、通信の要求数「c」から1減算する。
S224:通信の要求数「c」が装置に確保可能な通信バッファの最大数「m」以上であるか否かを検査する。「c」が「m」未満の時は、切断の要求がなされた時点で、キューに登録された通信要求は存在していないことを示している。
S225:待機中の通信要求は存在せず、切断要求処理部は切断処理以外の処理をする必要がないため、自己の処理を終了する。
S226:「c」が「m」以上であることは、切断の要求がなされた時に少なくとも1つの通信要求がキューに登録されていることを表している。通信の要求キューから登録されている要求を1つ取り出す。
S227:キューから取り出した要求の情報を解析し、通信を要求したアプリケーションプログラムのポート番号、自己のIPアドレス、相手方のIPアドレス、相手方のポート番号を知り、それら情報に基づいた新たなソケットのオープンをTCP層に要求する。
S228:S227で作成されたソケットに通信バッファを割り当てる。
S229:通信バッファの割り当てたソケットによる通信をTCP層に要求する。この要求により、TCP層は相手方TCP層とコネクションの設定処理を開始する。
S230:キューを更新し、切断要求処理部は自己の処理を終了する。
本発明はTCP/IPプロトコルを用いる通信を要求するアプリケーションとTCP層の間に、TCP層にソケットのオープンを要求すると共にメモリ内に設定される通信バッファの管理を行うソケット管理層を備えている。ソケット管理層はアプリケーションから接続要求があったとき現在接続中のソケット数が装置内に確保可能な通信バッファの最大数を超えているか否かを判定し、装置で確保できるバッファ数以上のソケットのオープン要求はキューに登録する。また、ソケット管理層は実行中の通信が終了しバッファが解放されたことを検知すると、キューに登録された通信要求のためのソケットのオープンをTCP層に要求する構成を有している。この構成により、限られたメモリの中で多くのTCP/IPを使用した通信を行うことが可能となる。また、キューに登録された通信要求の実行順序を要求の優先度、あるいは待ち時間に従って決定することにより、重要な通信要求が長時間待たされることがない装置の実現が可能となる。
本発明に係るソケット管理層とTCP/IP層の図 本発明に係るソケット管理層におけるキュー管理の第1の例を示す図 本発明に係るソケット管理層におけるキュー管理の第2の例を示す図 本発明に係るソケット管理層の接続要求と切断要求の処理部フローの図 クライアントとサーバ間の通信要求の流れ図 TCP/IPによる通信の説明図 TCP/IPにおれるアプリケーションデータの変化図 第1及び第2アプリケーションプログラム間のセクション設定処理のフロー図 セクション終了のフロー図

Claims (4)

  1. TCP/IPを使用した情報処理装置のアプリケーション通信方法であって、
    通信バッファの割り当てができなかったアプリケーションからのコネクション要求を待ち行列に登録するステップと、
    使用可能な通信バッファの発生に応答して前記待ち行列に登録されたコネクション要求にソケットコネクションを確立して通信を行うステップと
    からなるアプリケーション通信方法。
  2. 請求項1記載のアプリケーション通信方法であって、
    前記待ち行列に登録するステップは、アプリケーションの優先度及び/あるいは待ち時間の長さによって登録順位を決定するステップを有する
    アプリケーション通信方法。
  3. TCP/IPを使用したアプリケーション通信を行う情報処理装置であって、
    通信バッファの割り当てができなかったアプリケーションからのコネクション要求を待ち行列に登録する手段と、
    使用可能な通信バッファの発生に応答して前記待ち行列に登録されたコネクション要求にソケットコネクションを確立して通信を行う手段と
    を有する情報処理装置。
  4. 請求項3記載の情報処理装置であって、
    前記待ち行列に登録する手段は、アプリケーションの優先度及び/あるいは待ち時間の長さによって登録順位を決定する手段を有する
    情報処理装置。


JP2004292462A 2004-10-05 2004-10-05 Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法 Expired - Fee Related JP4413121B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004292462A JP4413121B2 (ja) 2004-10-05 2004-10-05 Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004292462A JP4413121B2 (ja) 2004-10-05 2004-10-05 Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法

Publications (2)

Publication Number Publication Date
JP2006107095A true JP2006107095A (ja) 2006-04-20
JP4413121B2 JP4413121B2 (ja) 2010-02-10

Family

ID=36376767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004292462A Expired - Fee Related JP4413121B2 (ja) 2004-10-05 2004-10-05 Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法

Country Status (1)

Country Link
JP (1) JP4413121B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008219714A (ja) * 2007-03-07 2008-09-18 Nec Corp 通信装置
JP2010134871A (ja) * 2008-12-08 2010-06-17 Fujitsu Ltd 情報処理装置、プログラムおよび情報処理装置の制御方法
US8024445B2 (en) 2008-03-28 2011-09-20 Seiko Epson Corporation Socket management device and socket management method
JP2018036962A (ja) * 2016-09-01 2018-03-08 日本電信電話株式会社 通信管理装置、通信管理方法、および、通信管理プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008219714A (ja) * 2007-03-07 2008-09-18 Nec Corp 通信装置
US8024445B2 (en) 2008-03-28 2011-09-20 Seiko Epson Corporation Socket management device and socket management method
JP2010134871A (ja) * 2008-12-08 2010-06-17 Fujitsu Ltd 情報処理装置、プログラムおよび情報処理装置の制御方法
JP2018036962A (ja) * 2016-09-01 2018-03-08 日本電信電話株式会社 通信管理装置、通信管理方法、および、通信管理プログラム

Also Published As

Publication number Publication date
JP4413121B2 (ja) 2010-02-10

Similar Documents

Publication Publication Date Title
US7554992B2 (en) Mobile device communications system and method
US7817634B2 (en) Network with a constrained usage model supporting remote direct memory access
US7571247B2 (en) Efficient send socket call handling by a transport layer
US9537786B2 (en) Method, device, and system for information processing based on distributed buses
US20070220183A1 (en) Receive Queue Descriptor Pool
JP2014524092A (ja) 単一ソケットポイントツーマルチポイント性能による高信頼性仮想双方向データストリーム通信のためのシステムおよび方法
EP3298739B1 (en) Lightweight transport protocol
US20030225889A1 (en) Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports
JP2005537764A (ja) 優先度及びリザーブ帯域幅プロトコルを利用したネットワークにおけるQoSを提供する機構
US8539089B2 (en) System and method for vertical perimeter protection
JP2013511884A (ja) 動的接続された移送サービス
EP4319310A1 (en) Message forwarding method, apparatus and system, and computer-readable storage medium
CN114363351A (zh) 一种代理连接抑制方法、网络架构及代理服务器
CN108809549B (zh) 一种传输数据的方法及设备
CN112398754B (zh) 数据传输方法、装置、介质、电子设备及网络接入设备
JP4413121B2 (ja) Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法
US7363383B2 (en) Running a communication protocol state machine through a packet classifier
WO2022268137A1 (zh) Tcp连接方法、系统、网络设备及存储介质
EP1575236B1 (en) Connectivity confirmation method for network storage device and host computer
US20050188070A1 (en) Vertical perimeter framework for providing application services
JP2009278297A (ja) ゲートウエイ装置およびそれを含む通信システムならびに通信方法
CN108966319B (zh) 数据包传输控制方法、移动终端以及装置
JP2000235536A (ja) データ通信方式及び装置
CN114201311A (zh) 数据处理方法及装置
US7290055B2 (en) Multi-threaded accept mechanism in a vertical perimeter communication environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090310

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091026

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091117

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091117

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121127

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121127

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151127

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees