JP2006107095A - Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法 - Google Patents
Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【解決手段】本発明のソケット管理層はアプリケーションから接続要求があったとき現在接続中のソケット数が装置内に確保可能な通信バッファの最大数を超えているか否かを判定し、装置で確保できるバッファ数以上のソケットのオープン要求はキューに登録する。また、ソケット管理層は実行中の通信が終了しバッファが解放されたことを検知すると、キューに登録された通信要求のためのソケットのオープンをTCP層に要求する構成を有している。
【選択図】 図1
Description
図4はクライアント装置内の第1アプリケーションからサーバ装置内の第2アプリケーションに通信要求を出す場合のシステムコールと、各システムコール間の関連を示すものである。
「socket()」は、アプリケーションのために通信ポートであるソケットの作成をソケット管理層に依頼するシステムコールである。通信を要求するアプリケーションでは通信を要求する時にこのシステムコールをソケット管理層に出力する。クライアントからの通信要求を待つ第2アプリケーションは予め受け付け用のソケットを作成し、システムコール「bind()」により生成したソケットに対してアドレスファミリー、ポート番号を設定しておき、「listen()」「accept()」システムコールを実行することにより待ち受け状態となる。
通信を要求する第1アプリケーションは「socket()」を第1ソケット管理層に出力しソケットの作成を要求する。次に、作成されたソケットを介して第2アプリケーションの待機中のソケットに接続を要求するシステムコール「connect()」を出力する。
コネクションが確立した後、システムコール「read()」, 「write()」によりデータの授受を実行する。データの授受が終了すると、システムコール「close()」によりソケットをクローズする。
サーバである第2アプリケーション21は、第2ソケット管理層22に待ち受けコネクションの生成を要求する。データ通信用のソケット(S2)が生成され、そのソケットに所定のポート番号(P2)を付与され待ち受けソケットとされる。また、第2アプリケーション21自身をソケットS2によるコネクションの待ち受け状態にする。第2ソケット管理層22は、ソケットS2に対する待ち受けコネクションの開設が要求されると、第2TCP層23にその旨を通知する。第2TCP層23はソケットS2をコネクション開設待ちの状態にする。
第2ソケット管理層22は、受け取ったアプリケーションデータをソケットS2に対応する受信データバッファに格納する。受信データバッファに格納されたアプリケーションデータは、第2ソケット管理層22に対するデータ受信要求を契機に第2アプリケーション21に渡される。
(2)ソケット管理層はTCP層に対しTCPソケットのオープンを要求する。
(3)ソケット管理層は(2)の要求に先立ち、通信バッファの確保が可能か否かを検査する。即ち、ソケット管理層は現在接続中のソケットの数を検査する。この時点では、接続中のソケットは無いため、ソケットをオープンし通信が可能と判断する。ソケット管理層は通信に必要な通信バッファ1をアプリケーション1の通信要求に割り当てる。次に、(2)の要求に基づいてオープンされたソケットに自己と相手方のIPアドレスとポート番号を関連づけ、通信を開始する。
(4)アプリケーション2がソケット管理層に対し通信要求を行う。
(5)ソケット管理層はTCP層に対しソケットのオープンを要求する。
(6)ソケット管理層は通信に割り当てられている通信バッファの数を検査する。割り当てられているバッファは1つのみであり、通信バッファの新たな割り当て可能と判断される。従って、ソケット管理層は通信バッファ2をアプリケーション2の通信要求に割り当て、上記(3)と同様の処理を行い、通信を開始する。
(7)〜(9) (4)〜(5)をアプリケーシヨン3からの要求に対して繰り返し実行する。
(12)ソケット管理層はキューを検査し、キューに接続され保留状態となっている通信要求が有るか否かを検査する。キューには上記(10)の処理によりアプリケーション4からの要求が繋げられており保留状態となっている。ソケット管理層はキューから要求を1つ取り出し、キューされたデータを解析する。キューデータを解析することにより、どのアプリケーションがどのIPアドレスのどのポートに対して通信要求を出したのか等、必要な情報を取得する。その情報に基づいてTCP層に対しTCPソケットをオープンし、発側/着側のIPアドレス、発側/着側のポート番号(ソケットペア)の設定等必要な処理を要求する。当該要求に対する処理が完了し通信の開始が可能となった時、ソケット管理層はアプリケーション4にデータの送信を開始する旨通知する。
(13)アプリケーション4のデータを(11)開放された通信バッファ1を使用し通信を開始する。
図2−1は、複数の通信要求元アプリケーションからのコネクション要求を一つのキューターミナルに登録して管理する構成であり、同図(a)にキューに登録された要求が、(b)に要求をキューに登録する手順が示されている。
キュー管理部がアプリケーションからのコネクション要求をキューに登録するとき、キュー管理部は既にキューに登録されている要求の優先度と待ち時間から、所定の規則、例えば待ち時間と優先度を重み付け加算する規則に従って登録されている各要求の優先指数を判定する。また、新たに登録する要求の優先指数を要求の優先度から判定する。キュー管理部はこれらの判定結果に基づいて新たな要求を含めた各要求の登録順序を決定し、キューターミナルに登録する。
当該構成において、待ち時間は考慮せず、優先度にのみ基づいてキューへの登録を管理することも可能である。この構成では、新たな要求は同じ優先度を持つ要求の最後に登録される。
図2−2は、キュー管理部に優先度に対応した複数のキューターミナルを設け、要求元アプリケーションからのコネクション要求を、その優先度に対応するキューターミナルに、発生順に登録する構成であり、同図(a)にキューに登録された要求が、(b)に要求をキューに登録する手順が示されている。
キュー管理部がアプリケーションからのコネクション要求をキューに登録するとき、キュー管理部は新たな要求の優先度を判定し、その要求を登録するキューターミナルを決定する。次に管理部はそのキューターミナルに既に登録されている要求の最後の要求を調べ、最後の要求の次に上記新たな要求を最後の要求として登録する。
バッファを割り当てるため、キューから取り出す要求は、各要求が登録されているキュー の優先度とキュー 内の順位によって決定される。最も優先度の高いキューの先頭に登録されている要求からバッファの割り当てが行なわれる。しかし、時間の経過に伴い実行待ち要求の順位を動的に見直し、待ち時間が長い要求の登録をより順位の高いキューに変更することも可能である。
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:接続要求処理部は自己の処理を終了する。
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:キューを更新し、切断要求処理部は自己の処理を終了する。
Claims (4)
- TCP/IPを使用した情報処理装置のアプリケーション通信方法であって、
通信バッファの割り当てができなかったアプリケーションからのコネクション要求を待ち行列に登録するステップと、
使用可能な通信バッファの発生に応答して前記待ち行列に登録されたコネクション要求にソケットコネクションを確立して通信を行うステップと
からなるアプリケーション通信方法。 - 請求項1記載のアプリケーション通信方法であって、
前記待ち行列に登録するステップは、アプリケーションの優先度及び/あるいは待ち時間の長さによって登録順位を決定するステップを有する
アプリケーション通信方法。 - TCP/IPを使用したアプリケーション通信を行う情報処理装置であって、
通信バッファの割り当てができなかったアプリケーションからのコネクション要求を待ち行列に登録する手段と、
使用可能な通信バッファの発生に応答して前記待ち行列に登録されたコネクション要求にソケットコネクションを確立して通信を行う手段と
を有する情報処理装置。 - 請求項3記載の情報処理装置であって、
前記待ち行列に登録する手段は、アプリケーションの優先度及び/あるいは待ち時間の長さによって登録順位を決定する手段を有する
情報処理装置。
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)
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 | 日本電信電話株式会社 | 通信管理装置、通信管理方法、および、通信管理プログラム |
-
2004
- 2004-10-05 JP JP2004292462A patent/JP4413121B2/ja not_active Expired - Fee Related
Cited By (4)
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 |