JP3867896B2 - Router device - Google Patents

Router device Download PDF

Info

Publication number
JP3867896B2
JP3867896B2 JP2001346918A JP2001346918A JP3867896B2 JP 3867896 B2 JP3867896 B2 JP 3867896B2 JP 2001346918 A JP2001346918 A JP 2001346918A JP 2001346918 A JP2001346918 A JP 2001346918A JP 3867896 B2 JP3867896 B2 JP 3867896B2
Authority
JP
Japan
Prior art keywords
tcp
segment
control protocol
data
transport control
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.)
Expired - Fee Related
Application number
JP2001346918A
Other languages
Japanese (ja)
Other versions
JP2003152811A (en
Inventor
仁 小幡
和久 樋口
伸次 植月
広二郎 後藤
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
SoftBank Mobile Corp
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 SoftBank Mobile Corp filed Critical SoftBank Mobile Corp
Priority to JP2001346918A priority Critical patent/JP3867896B2/en
Publication of JP2003152811A publication Critical patent/JP2003152811A/en
Application granted granted Critical
Publication of JP3867896B2 publication Critical patent/JP3867896B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、第1の通信網と第2の通信網との間に配置されると共に、トランザクション型のトランスポート制御プロトコル(T/TCP)の初回セッションにおいても3ウェイハンドシェイクを回避する機能と、通常のトランスポート制御プロトコル(TCP)とをサポートしているルータ装置に関するものである。
【0002】
【従来の技術】
従来、通信網における通信に用いるネットワーク・プロトコルとして、トランスポート制御プロトコル(以下、「TCP(Transport Control Protocol)」という)が知られている。このTCPは、OSI参照モデルの第4層のトランスポート層に位置し、再送信、パケットの順番制御およびフロー制御などの機能を有するプロトコルであり、インターネットにおける通信の標準的なプロトコルとして用いられている。また、このTCPは、携帯電話などの移動情報端末から移動通信網を介してインターネットへ接続して通信するときにも使用されている。
【0003】
ネットワーク上に位置しているクライアント100とサーバ200との間において、データの授受を1度ずつ行うときのTCPのシーケンスの一例を図8に示す。
TCPを用いてデータの授受を行う際には、まずクライアント100とサーバ200とを接続する接続確立処理が行われる。TCPの接続確立処理では、まずアクティブオープンを実行するクライアント100からパッシブオープンを実行するサーバ200へ、サーバ200を指定したSYNフラグを含むセグメント(SEG1:セグメント1)が送出される。ここで、「セグメント」とは、TCPが下位のネットワーク層との授受を行なう際の単位である。また、「SYNフラグ」とはセグメント内に設けられた複数の制御フラグのうち、シーケンス番号の同期をとるためのSYN(Synchronize)フラグであり、ここに「1」がセットされることによりSYNフラグが送られるようになる。
【0004】
サーバ200は、上記SYNフラグを含むセグメント(以下、「SYNセグメント」という)を受信したことにより、SYNに対する確認応答であるACK(SYN)を返す。さらに、サーバ200側からのシーケンス番号の同期をとるためのSYNフラグを送出する。すなわち、サーバ200の初期シーケンス番号を含む(SYN+ACK)セグメント(SEG2:セグメント2)を生成して、サーバ200はクライント100に返す。クライアント100は、サーバ200から送信されてきたセグメント2におけるSYNに対する確認応答であるACK(SYN)をセグメント3(SEG3)で返す。これにより、クライアント100とサーバ200との間においてTCPの接続が確立することになる。このように、3つのセグメントの授受により接続確立を行うことから、このような接続確立処理は3ウェイハンドシェイク(3WH)による接続確立処理と呼ばれる。
【0005】
このようにして接続確立されるとデータの授受が可能となり、クライアント100は、例えばデータをリクエストするdataセグメント(SEG4:セグメント4)をサーバ200へ送る。このdataセグメントを受信したサーバ200は、データを受信した確認応答であるACK(data)セグメント(SEG5:セグメント5)をクライアント100へ返す。そして、サーバ200はリクエストされたデータ(data)をdataセグメント(SEG6:セグメント6)によりクライアント100へ送る。クライアント100は、リプライされたデータを受信した確認応答であるACK(data)セグメント(SEG7:セグメント7)をサーバ200へ返す。
【0006】
これにより、データの授受が終了すると、次にTCPの接続終了処理が行われる。TCPの接続終了処理では、まずアクティブクローズを実行するクライアント100からパッシブクローズを実行するサーバ200へ、FINセグメント(SEG8:セグメント8)が送信される。ここで、上記「FINセグメント」は、送信者がデータの送信が終了したことを知らせるセグメントであり、FIN(Finish)フラグに「1」がセットされている。サーバ200はFINセグメント(SEG8)を受信すると、FINに対する確認応答であるACK(FIN)セグメントを返す。さらに、サーバ200からクライアント100への通信を終了させるためのFINフラグを送出する。すなわち、サーバ200は(FIN+ACK)セグメント(SEG9:セグメント9)を、クライント100に返す。クライアント100は(FIN+ACK)セグメント(SEG9)を受信すると、FINに対する確認応答であるACK(FIN)セグメント(SEG10:セグメント10)をサーバ200へ返す。これにより、サーバ200とクライアント100との間のTCP接続はクローズされる。
【0007】
上記したように、接続確立処理および接続終了処理においてクライアント100側およびサーバ200側において、それぞれSYNフラグやFINフラグを送信して接続あるいは終了しているのは、TCPが上りと下りの全2重信であり、上りと下りの通信路のオープンあるいはクローズがそれぞれ必要とされるからである。このように、転送対象データの伝送の前後で接続確立処理および接続終了処理をそれぞれ実行すると共に確認応答をすることにより、TCPにおいては信頼性のあるデータ伝送を行なえるようにしている。
【0008】
【発明が解決しようとする課題】
ところで、TCPを用いた通信を行う場合、図8に示すようにデータ伝送前後の接続開始処理および接続終了処理において、合計6つのセグメントの送受信が必要となり、一度ずつのデータの授受を行う場合であっても10個のセグメントの送受信が必要となる。このため、クライアント100からの要求に対してサーバ200が応答するというような一連の処理からなる処理単位であるトランザクション処理を行う場合は、接続確立処理および接続終了処理のオーバーヘッドが発生し、トランザクション処理の速度が低下してしまうという問題があった。特に、携帯電話通信網のような移動通信網の場合は無線系の伝送路が介在し、高速のデータ伝送速度を確保することが難しいため、より効率的なトランザクション処理を行なうことができるトランスポート層のプロトコルが望まれていた。
【0009】
そこで、接続確立処理および接続終了処理のオーバーヘッドの発生を回避し、効率的なトランザクション処理を行なうことができるトランスポート層を提供するために、トランザクション型のトランスポート制御プロトコル(以下「T/TCP」という。)を用いることが考えられる。このT/TCPは、RFC(Request For Comment)1379、1644に定義が記述されているプロトコルである。
T/TCPでは、初回の接続を行う際には3ウェイハンドシェイク(3WH)のネゴシエーションを行って接続確立を行う。この場合、T/TCPでは接続されたセッションをCC(コネクション・カウント)値という値で管理している。このため、次のセッション開始時に保持しているCC値を送ることにより、3WHを回避して接続確立を行うことができるようになる。これは古いセッションかどうかの判別に使用される。例えば、クライアントが送ったSYNセグメントのCC値が、サーバにキャッシュされているCC値を超えた場合は、サーバは新規のセッションと判断して3WHを行うことなく接続するようにする。なお、送信側が送るCC値はセッションが開始される際にインクリメントされ、サーバにはクライアントから送られたクライアント毎の最後のCC値がキャッシュされている。
【0010】
T/TCPのシーケンスの例を図9に示す。図9に示すシーケンスにおいて、クライアント100のキャッシュCC[B]にはy1がCC値としてキャッシュされており、サーバ300のキャッシュCC[A]にはx2がCC値としてキャッシュされているものとする。シーケンスを開始する際にクライアント100は、SYNフラグ+データ1(data1)のセグメント10(SEG10)のヘッダにCC値としてCC=x3を付加し、サーバ300を指定して送信する。付加するCC値は、セッションが開始される際にインクリメントされるコネクションカウンタの値とされる。このSYNフラグを含むセグメント10を受信したサーバ300は、セグメント10におけるCC値x3の大きさとキャッシュCC[A]にキャッシュされているCC値x2との大きさを比較する。この場合、x3>x2であったとするとサーバ300はクライアント100との新規のシーケンスのセグメントと判断する。そして、サーバ300は受信したデータ1でリクエストされたデータ2(data2)を用意する。
【0011】
次いで、サーバ300は、SYNフラグ+ACK(SYN、data1)フラグ+データ2(data2)のセグメント11(SEG11)を生成し、そのヘッダにCC値としてサーバ300におけるコネクションカウンタの値であるCC値CC=y2と、受信したCC値をCC.echo=x3として付加し、クライアント100を指定して送信する。この場合のACK(SYN、data1)は、SYNフラグとdata1を受信したことの応答確認であり、CC.echo=x3はセッションの初めのSYNセグメント(セグメント10)に対するセグメントであることを確認するためのエコーである。クライアント100は、セグメント11によりSYNフラグとデータ2が受信されると共に、ACK(SYN、data1)フラグとCC.echo=x3が返ってきたことから、SYNフラグとdata2を受信したことの応答確認であるACK(SYN、data2)フラグのセグメント12(SEG12)をサーバ300へ送信する。このように、T/TCPでは3WHを実行することなくデータ授受のトランザクションを実行することができるようになる。なお、初めのSYNセグメントで送られてきたCC値をキャッシュされているCC値と比較することにより、3WHを回避させるメカニズムをTAO(TCP Accelerated Open)といい、比較することをTAOテストという。すなわち、図9に示すシーケンスではTAOテストは成功している。
【0012】
次に、例えばクライアント100にIPアドレスが新規に割り当てられる等して、初回のシーケンスを行う場合のT/TCPのシーケンスを図10に示す。このような初回のシーケンスの際には、クライアント100はコネクションカウンタのCC値に代えてオプションとして用意されているCC.NEWを送ることができる。すなわち、クライアント100はSYNフラグ+データ1(data1)のセグメント1(SEG1)のヘッダにCC.NEW=xを付加し、サーバ300を指定して送信する。サーバ300のキャッシュにはx0がCC値としてキャッシュされているが、セグメント1に付加されているCCがCC.NEWとされていることから、キャッシュ内のCC値を無効としてキャッシュ内のCC値と受信したCC値との比較は行わない。また、受信したCC値がCC.NEWとされていることから、セグメント1におけるデータ1はキューに入れられる。次いで、SYNフラグ+ACK(SYN)を含むセグメント2(SEG2)が生成され、そのヘッダにサーバ300のCC値であるCC=y1とCC.ECHO=xが付加されてクライアント100へ送信される。
【0013】
セグメント2を受信したクライアント100は、ACK(SYN)フラグを確認すると共にCC.ECHO=xが返ってきたことを確認して、送られてきたCC値y1をキャッシュに保管する。次いで、サーバ300からのSYNに対する応答確認であるACK(SYN)を含むセグメント3(SEG3)を生成し、そのヘッダにCC=xを付加してサーバ300へ送信する。これにより、3WHが行われて接続確立されることから、ACK(SYN)のセグメント3を受信したサーバ300は、キューに入れていたデータ1をアプリケーションへ送る。さらに、キャッシュにCC=xをキャッシュする。次いで、サーバ300は、データ1でリクエストされたデータ2(data2)を含むセグメント4(SEG4)のヘッダにCC=y2を付加してクライアント100へ送信する。クライアント100は、セグメント4によりデータ2が受信されたことから、ACK(data2)フラグを含むセグメント5(SEG5)を生成し、そのヘッダにCC=xを付加してサーバ300へ送信する。このように、T/TCPを用いて通信を行う際にTAOテストが成功すれば、図9に示すように初回以降のセッションについては3WHを回避して、T/TCPの通信を行えるようになる。
【0014】
ところで、インターネット上のサーバにおいては、TCPだけをサポートしておりT/TCPをサポートしていないサーバも多く用いられている。一方、移動通信網のようにリソースの限られている通信網においては上記したT/TCPを用いることが有効である。そこで、移動機とインターネットとの間で通信を行う場合には、T/TCPを用いる移動通信網と、TCPあるいはT/TCPが用いられるインターネット等の通信網との間に通信プロトコルを変換可能なルータ装置を配置することになる。
しかしながら、T/TCPを用いても初回のセッションの開始時には3ウェイハンドシェイクを回避することができず、移動通信網のようにリソースの限られている通信網の効率が低下するという問題点があった。特に、移動通信網における移動機においてはルータ装置によりダイナミックにIPアドレスが割り当てられることから、IPアドレスが割り当てられてセッションを開始する毎に3ウェイハンドシェイクを実行する必要があり、T/TCPを用いても効率的なトランザクション処理を行なうことができないことになる。
【0015】
そこで、本発明は上記問題点を解決するために、初回のセッション開始時においても3ウェイハンドシェイクを回避することのできるルータ装置を提供することを目的としている。
【0016】
【課題を解決するための手段】
上記目的を達成するために、本発明のルータ装置は、第1の通信網と第2の通信網との間に配置されると共に、トランザクション型のトランスポート制御プロトコル(T/TCP)と、通常のトランスポート制御プロトコル(TCP)とをサポートしているルータ装置であって、前記第1の通信網におけるクライアントにダイナミックにIPアドレスを割り当てる割当手段と、前記第1の通信網の前記クライアントに前記割当手段から新たなIPアドレスが割り当てられた際の初回のセッションにおいて予め定められている初回コネクション・カウント値未満のコネクション・カウント値をデフォルト値としてキャッシュしているキャッシュ手段と、前記第1の通信網の前記クライアントから第1のコネクション・カウント値を含むセッション開始のセグメントを受信した際に、該第1のコネクション・カウント値と前記キャッシュ手段にキャッシュされている第2のコネクション・カウント値とを比較して、前記第1のコネクション・カウント値が前記第2のコネクション・カウント値を超えている際に、前記受信したセグメントが新規のセッションのセグメントと判断する処理手段とを備え、前記第1の通信網の前記クライアントが前記初回のセッションにおいて前記第1のコネクション・カウント値として前記初回コネクション・カウント値を含むセグメントを送信することにより、3ウェイハンドシェイクを行うことなくトランザクション型のトランスポート制御プロトコル(T/TCP)の接続確立を行えるようにしている。
【0017】
また、上記本発明のルータ装置において、トランザクション型のトランスポート制御プロトコル(T/TCP)と、通常のトランスポート制御プロトコル(TCP)とのプロトコル変換を行う変換手段を備え、該変換手段により、前記第1の通信網におけるトランザクション型のトランスポート制御プロトコル(T/TCP)をサポートしている前記クライアントとの間はトランザクション型のトランスポート制御プロトコル(T/TCP)で接続することができると共に、前記第2の通信網における通常のトランスポート制御プロトコル(TCP)をサポートしているサーバとの間は通常のトランスポート制御プロトコル(TCP)で接続することができ、前記クライアントと前記サーバとの間で通信を行う際に、3ウェイハンドシェイクを行うことなく前記クライアントとの間をトランザクション型のトランスポート制御プロトコル(T/TCP)で接続確立できるようにしてもよい。
さらに、上記本発明のルータ装置において、トランザクション型のトランスポート制御プロトコル(T/TCP)と、通常のトランスポート制御プロトコル(TCP)とのプロトコル変換を行う変換手段を備え、該変換手段により、前記第1の通信網におけるトランザクション型のトランスポート制御プロトコル(T/TCP)をサポートしている前記クライアントとの間をトランザクション型のトランスポート制御プロトコル(T/TCP)で接続することができると共に、前記第2の通信網におけるトランザクション型のトランスポート制御プロトコル(T/TCP)をサポートしているサーバとの間をトランザクション型のトランスポート制御プロトコル(T/TCP)で接続することができ、前記クライアントと前記サーバとの間で通信を行う際に、3ウェイハンドシェイクを行うことなく前記クライアントとの間、及び前記サーバとの間をトランザクション型のトランスポート制御プロトコル(T/TCP)により、それぞれ独立して接続確立できるようにしてもよい。
【0018】
このような本発明によれば、第1の通信網あるいは第2の通信網からの初回のセッションにおいて予め定められている初回コネクション・カウント値に満たないコネクション・カウント値をデフォルト値としてキャッシュしているキャッシュ手段をルータ装置に備えるようにしている。これにより、第1の通信網あるいは第2の通信網からの初回のセッションに通知されるコネクション・カウント値は、ルータ装置にキャッシュされているコネクション・カウント値を超えるようになるので、3ウェイハンドシェイクを回避してT/TCPの接続を行うことができるようになる。これにより、T/TCPを用いて効率的なトランザクション処理を行えるようになる。
また、例えば第1の通信網とされる移動通信網における移動機(クライアント)と、例えば第2の通信網とされるインターネットにおけるサーバとを接続する際に、移動機との間をT/TCPで接続すると共にサーバとの間をTCPで接続することができる。この場合においても、移動機との間においては、3ウェイハンドシェイクを回避してT/TCPの接続確立を行うことができるため、移動通信網における無線リソースを有効に使用することができるようになる。
【0019】
【発明の実施の形態】
本発明の実施の形態のルータ装置を、第1の通信網としての移動通信網と第2の通信網としてのインターネット(The Internet)との間に配置した通信システムの構成例を図1に示す。
図1に示す通信システムは、移動通信網10と、本発明にかかるTCPルータ4と、インターネット5とを備えて構成されている。移動通信網10において、携帯電話機である複数の移動機1a、1bは基地局2のサービスエリアに在圏しており、基地局2との間で無線通信回線を介して通信を行っている。基地局はセル毎に設けられており、その内の基地局2だけが示されている。これらの基地局は上位ノードである交換機3に接続されており、交換機3には基地局2を含む複数の基地局の間の交換を行っている。この移動通信網10では、伝送速度が比較的低い無線通信回線を含む場合でも高速のデータ転送が可能となるように、トランスポート層の通信プロトコルとして、トランザクション型のトランスポート制御プロトコルであるT/TCPがサポートされている。
【0020】
本発明にかかるTCPルータ4は、移動通信網10との間においてデータ送受信を行なう第1のデータ送受信部4aと、インターネット5との間においてデータ送受信を行なう第2のデータ送受信部4cと、通信プロトコル変換を含むデータ処理を行なうデータ処理部4bとを備えている。第1のデータ送受信部4aおよび第2のデータ送受信部4cは、OSI参照モデルのリンク層における信号処理を行なっている。また、データ処理部4bは、移動通信網における移動機とインターネット5におけるWEBサーバ6との間でTCPあるいはT/TCPを用いて通信を行う際のデータ処理を行っている。ところで、TCPルータ4にはグローバルアドレスが割り当てられており、各移動機にはグローバルアドレスを割り当てることができないため、IPアドレスを要求する移動機にダイナミックにIPアドレスを割り当てるIPマスカレード機能をデータ処理部4bは有している。さらに、データ処理部4bは、TCPとT/TCPとの変換時、および、タイマ制御のためのバッファリング・ウィンドウ機能も有している。このデータ処理部4bには、データ記憶部、セグメント生成部及びタイミング制御部が備えられている。データ記憶部は、移動通信網10及びインターネット5から受信したデータを一時記憶するテンポラリレジスタである。また、セグメント生成部は、移動通信網10及びインターネット5に向けて送出するTCPあるいはT/TCPのセグメントを生成している。さらに、タイミング制御部は、移動通信網10及びインターネット5に向けて送信する各セグメントの送信タイミングを制御している。
【0021】
インターネット5上に位置しているWEBサーバ6は、トランスポート層の通信プロトコルとして、インターネット5で広く用いられている通常のTCPに加えてトランザクション型のT/TCPとをサポートしているが、WEBサーバによってはT/TCPをサポートしていないサーバも存在している。
ここで、例えば基地局2に在圏する移動機1aがインターネット5上のWEBサーバ6にアクセスする際に、TCPルータ4のIPマスカレード機能により移動機1aに新たにIPアドレスが割り当てられたとする。このような場合には、CC値の設定をし直すことから、従来は初回のセッションにおいてはCCオプションとして用意されているCC.NEWを送り、3ウェイハンドシェイクを行うことにより接続確立を行うようにしていた。本発明にかかるTCPルータ4では、このような場合においては、TCPルータ4のキャッシュに設定される初回のセッションにおけるデフォルトのCC値が、例えば“0”に設定される。そして、クライアントである移動機1a、1b・・・・においては初回のセッションにおけるコネクションカウンタのデフォルト値が“1”に設定される。これにより、新たにIPアドレスが割り当てられて初回のセッションを行う際にも、3ウェイハンドシェイクを回避してT/TCP接続することができるようになる。
【0022】
以下に、例えば基地局2に在圏する新たにIPアドレスが割り当てられた移動機1aが、インターネット5上のWEBサーバ6にTCPルータ4を介してアクセスする際に、3ウェイハンドシェイクを回避することのできるシーケンスを図2に示す。ただし、図2に示すシーケンスは移動機1aおよびWEBサーバ6とがT/TCPをサポートしているものとされている。
移動機1aはT/TCPをサポートしていることから、セッションを開始する際に移動機1aは、SYN+FIN+データ1(data1)からなるセグメント1(SEG1)を生成して、そのヘッダに初回のセッション時に設定されるデフォルト値のCC値(CC=1)を付加し、WEBサーバ6を宛先として送信する。このCC=1が付加されたSYNフラグを含むセグメント1はTCPルータ4により受信され、受信したTCPルータ4は、セグメント1におけるCC値「1」の大きさとキャッシュされているCC値との大きさとを比較する。この場合、TCPルータ4にキャッシュされている移動機1aに割り当てられたIPアドレスに対応するCC値はデフォルト値の「0」とされていることから、セグメント1に付加されたCC値の値がキャッシュされたCC値を超えてTAOテストは成功し、TCPルータ4はセグメント1を移動機1aからの新規のセッションのセグメントと判断する。
【0023】
そして、TCPルータ4は、宛先であるWEBサーバ6との間のセッションを開始するように、SYN+FIN+データ1(data1)からなるセグメント10(SEG10)を生成して、そのヘッダにCC値としてCC=10を付加し、WEBサーバ6を指定して送信する。付加するCC値は、TCPルータ4におけるコネクションカウンタの値であり、この場合は「10」とされている。このSYNフラグを含むセグメント10はWEBサーバ6により受信され、受信したWEBサーバ6は、セグメント10におけるCC値「10」の大きさとキャッシュされているCC値との大きさとを比較する。この場合、WEBサーバ6にキャッシュされているTCPルータ4におけるCC値が「10」未満であったとすると、TAOテストは成功し、WEBサーバ6はセグメント10をTCPルータ4からの新規のセッションのセグメントと判断する。
【0024】
そこで、WEBサーバ6は受信したデータ1をアプリケーションに送り、データ1でリクエストされたデータ2(data2)を用意して、SYN+FIN+ACK(SYN,FIN,data1)+データ2(data2)からなるセグメント11(SEG11)を生成して、そのヘッダにCC値としてCC=5とCCecho=10を付加し、移動機1aを宛先として送信する。付加するCC値は、WEBサーバ6におけるコネクションカウンタの値であり、この場合は「5」とされている。また、CC.echo=10はCC=10が付加された初回のSYNセグメント(セグメント10)に対するSYN,ACKセグメントであることをTCPルータ4が確認するためのエコーである。なお、WEBサーバ6はSYNフラグと共にFINフラグを受信したことから、セッションの終了待ち状態となる。
【0025】
TCPルータ4では、セグメント11にCC.echo=10が付加されていることから、セグメント11はセグメント10に対するSYN,ACK(SYN,FIN,data1)セグメントであることが確認される。さらに、セグメント11によりFINフラグとデータ2が受信されることから、SYN+FIN+ACK(SYN,FIN,data1)+データ2(data2)からなるセグメント2(SEG2)を生成して、そのヘッダにCC値としてCC=5とCCecho=1を付加し、移動機1aに送信する。CC.echo=1はCC=1が付加された初回のSYNセグメント(セグメント1)に対するSYN,ACKセグメントであることを移動機1aが確認するためのエコーである。移動機1aでは、セグメント2を受信することによりSYNフラグ、FINフラグとデータ2が受信されると共に、ACK(SYN,FIN,data1)フラグとCC.echo=1が返ってきたことから、データ2をアプリケーションへ供給する。次いで、FINフラグとデータ2(data2)を受信したことの応答確認であるACK(FIN、data2)セグメント3(SEG3)を生成して、そのヘッダにCC値としてCC=1を付加してWEBサーバ6を宛先として送信する。また、FINフラグを受信したことから、セグメント1においてFINフラグを送信して終了待ちとなっていたセッションを終了させる。
【0026】
TCPルータ4は、移動機1aからCC値がCC=1とされたACK(FIN、data2)セグメント3を受信すると、移動機1aとのセッションを終了させると共に、FINフラグとデータ2(data2)を受信したことの応答確認であるACK(FIN、data2)セグメント12(SEG12)を生成して、そのヘッダにCC値としてCC=10を付加して、WEBサーバ6へ送信する。WEBサーバ6は、TCPルータ4からCC値がCC=10とされたACK(FIN、data2)セグメント12を受信すると、終了待ち状態とされていたセッションを終了させる。
このように、初回のセッションにおけるCC値を予め定めておくことにより、T/TCPを用いて初回のセッションを開く際にも3ウェイハンドシェイクを実行することなく、データ授受のトランザクションを実行することができるようになる。この場合、本発明のTCPルータ4を移動通信網10とインターネット5との間に設けていると、上述したように移動通信網10とTCPルータ4とのセッションと、TCPルータ4とインターネット5とのセッションはそれぞれ独立したセッションとなることから、それぞれのセッションにおいて3ウェイハンドシェイクを回避することができる。
【0027】
次に、例えば基地局2に在圏する移動機1aが、インターネット5上のWEBサーバ6にTCPルータ4を介してアクセスする際に、WEBサーバ6においてTAOテストが失敗した際のシーケンスを図3に示す。ただし、図3に示すシーケンスは移動機1aおよびWEBサーバ6とがT/TCPをサポートしているものとされている。
図3に示すシーケンスにおいて、移動機1aはT/TCPをサポートしていることから、セッションを開始する際に移動機1aは、SYN+FIN+データ1(data1)からなるセグメント1(SEG1)を生成して、そのヘッダにCC値としてCC=1を付加し、WEBサーバ6を宛先として送信する。このSYNフラグを含むセグメント1はTCPルータ4により受信され、受信したTCPルータ4は、セグメント1におけるCC値「1」の大きさとキャッシュされているCC値との大きさとを比較する。この場合、TCPルータ4にキャッシュされている移動機1aに割り当てられたIPアドレスに対応するCC値が「0」とされていると、TCPルータ4におけるTAOテストは成功し、TCPルータ4はセグメント1を移動機1aからの新規のシーケンスのセグメントと判断する。
【0028】
そして、TCPルータ4は、宛先であるWEBサーバ6との間のセッションを開始するように、SYN+FIN+データ1(data1)からなるセグメント10(SEG10)を生成して、そのヘッダにCC値としてCC=10を付加し、WEBサーバ6を指定して送信する。このSYNフラグを含むセグメント10はWEBサーバ6により受信され、受信したWEBサーバ6は、セグメント10におけるCC値「10」の大きさとキャッシュされているCC値との大きさとを比較することによりTAOテストを行う。この場合、WEBサーバ6にキャッシュされているTCPルータ4におけるCC値が「11」以上であったとすると、TAOテストは失敗し、T/TCPに代えてTCPで接続するように3ウェイハンドシェイクが実行されるようになる。
【0029】
そこで、WEBサーバ6は、SYN+ACK(SYN)からなるセグメント11(SEG11)を生成して、移動機1aを宛先として送信する。セグメント11を受信したTCPルータ4は、このSYN+ACK(SYN,data1)セグメントをセグメント2として、そのヘッダにCC値としてCC=11とCCecho=1を付加して移動機1aに送信する。移動機1aはセグメント2を受信すると、CC.echo=1が付加されていることから、セグメント2はセグメント1に対するSYN,ACK(SYN,data1)セグメントであることを確認する。そして、ACK(FIN)が返らなかったことから再送するFINフラグを含むFIN+ACK(SYN)からなるセグメント3(SEG3)を生成して、そのヘッダにCC値としてCC=1を付加し、WEBサーバ6を宛先として送信する。このACKセグメント3をTCPルータ4が受信することにより、移動機1aとTCPルータ4間において3ウェイハンドシェイクが行われてT/TCP接続されることになる。
【0030】
TCPルータ4は、セグメント3を受信すると、セグメント3に基づいて再送するFINフラグとキューイングされていたデータ1(data1)を含むFIN+ACK(SYN)+データ1(data1)からなるセグメント12(SEG12)を生成して、WEBサーバ6へ送信する。なお、TCPルータ4はFINフラグを受信しており、移動機1a間のセッションの終了待ち状態となる。このセグメント12をWEBサーバ6が受信することにより、TCPルータ4とWEBサーバ6間において3ウェイハンドシェイクが行われて、TCP接続されるようになる。これにより、データ1がアプリケーションに送られて、データ1でリクエストされたデータ2(data2)が用意される。そこで、WEBサーバ6は、FIN+ACK(FIN、data1)+データ2(data2)からなるセグメント13(SEG13)を作成し、TCPルータ4へ送信する。なお、WEBサーバ6はFINフラグを受信しており、TCPルータ4間のセッションの終了待ち状態となる。
【0031】
TCPルータ4は、受信したセグメント13に基づいてFIN+ACK(FIN、data1)+データ2(data2)からなるセグメント4(SEG4)を作成し、そのヘッダにCC=11のCC値を付加して移動機1aへ送信する。移動機1aはセグメント4を受信すると、FINフラグとデータ2(data2)を受信したことの応答確認であるACK(FIN、data2)セグメント5(SEG5)を生成して、そのヘッダにCC値としてCC=1を付加して、WEBサーバ6を宛先として送信する。さらに、FINフラグとACK(FIN)とを受信したことから、セッションを終了させる。セグメント5を受信したTCPルータ4は、ACK(FIN、data2)セグメント14(SEG14)を生成して、WEBサーバ6へ送信する。これにより、TCPルータ4は移動機1aおよびWEBサーバ6とのセッションをクローズする。さらに、セグメント14を受信したWEBサーバ6は、終了待ちしていたセッションをクローズする。
【0032】
次に、例えば基地局2に在圏する移動機1aが、インターネット5上のWEBサーバ6にTCPルータ4を介してアクセスする際に、WEBサーバ6がT/TCPをサポートしていない場合のシーケンスを図4に示す。ただし、図4に示すシーケンスは、TCPルータ4においてTAOテストが成功しているシーケンスとされている。
図4に示すシーケンスにおいて、移動機1aはT/TCPをサポートしていることから、セッションを開始する際に移動機1aは、SYN+FIN+データ1(data1)からなるセグメント1(SEG1)を生成して、そのヘッダにCC値としてCC=1を付加し、WEBサーバ6を宛先として送信する。このSYNフラグを含むセグメント1はTCPルータ4により受信され、受信したTCPルータ4は、セグメント1におけるCC値「1」の大きさとキャッシュされているCC値との大きさとを比較する。この場合、TCPルータ4にキャッシュされている移動機1aに割り当てられたIPアドレスに対応するCC値が「0」とされていると、TCPルータ4におけるTAOテストは成功し、TCPルータ4はセグメント1を移動機1aからの新規のシーケンスのセグメントと判断する。
【0033】
そして、TCPルータ4は、宛先であるWEBサーバ6との間のセッションを開始するように、SYN+FIN+データ1(data1)からなるセグメント10(SEG10)を生成して、そのヘッダにCC値としてCC=10を付加し、WEBサーバ6を宛先として送信する。このSYNフラグを含むセグメント10はWEBサーバ6により受信されるが、受信したWEBサーバ6は、T/TCPをサポートしていないことからCC値およびデータ1(data1)は破棄される。そして、セグメント10に基づいてSYN+ACK(SYN)からなるセグメント11(SEG11)が生成されて、移動機1aを宛先として送信される。
【0034】
このセグメント11を受信したTCPルータ4は、SYNフラグに対する応答確認であるこのACK(SYN)セグメント12を生成して、WEBサーバ6へ送信する。これにより、3ウェイハンドシェイクが行われTCPルータ4とWEBサーバ6との間がTCPにより接続されるようになる。そこで、TCPルータ4は、キューイングしていたデータ1(data1)をセグメント13によりWEBサーバ6へ再送する。このセグメント13を受信したWEBサーバ6においては、データ1がアプリケーションに送られて、データ1でリクエストされたデータ2(data2)・・・が用意される。そこで、WEBサーバ6は、データ2(data2)からなるセグメント14(SEG14)を作成し、TCPルータ4へ送信する。WEBサーバ6は、送るデータが終了するとFINセグメント15を作成してTCPルータ4へ送信する。
【0035】
TCPルータ4がFINセグメント15を受信すると、セグメント11およびセグメント15に基づくと共にセグメント14で受信したデータ2(data2)を含むSYN+FIN+ACK(SYN,FIN,data1)+データ(data2)からなるセグメントを作成する。そして、そのヘッダにCC値としてCC=11とCCecho=1を付加して移動機1aに送信する。移動機1aはセグメント2を受信すると、CC.echo=1が付加されていることから、セグメント2がセグメント1に対するSYN,ACKセグメントであることが確認される。そして、SYNフラグ、FINフラグおよびデータ2を受信したことの応答確認であるACK(SYN,FIN,data2)からなるセグメント3(SEG3)を生成して、そのヘッダにCC値としてCC=1を付加し、WEBサーバ6を宛先として送信する。なお、移動機1aは、ACK(FIN)とFINフラグとを受信したことから、セッションを終了させる。
【0036】
TCPルータ4は、セグメント3を受信すると、セグメント3に基づいてACK(FIN,data2)からなるセグメント16(SEG16)を生成して、WEBサーバ6へ送信する。これにより、TCPルータ4は移動機1aおよびWEBサーバ6とのセッションをクローズする。さらに、セグメント16を受信したWEBサーバ6もセッションをクローズする。
このように、WEBサーバ6がT/TCPをサポートしていない場合であっても、移動機1aとTCPルータ4間を3ウェイハンドシェイクを回避してT/TCPにより接続することができる。従って、WEBサーバ6がT/TCPをサポートしていない場合であっても、移動通信網10の無線リソースを有効に使用することができるようになる。
【0037】
次に、例えば基地局2に在圏する移動機1aが、インターネット5上のWEBサーバ6にTCPルータ4を介してアクセスした際に、WEBサーバ6がT/TCPをサポートしていないと共に、タイムアウトした場合のシーケンスを図5に示す。
図5に示すシーケンスは、セグメント1を受信したTCPルータ4においてタイマセットされる点を除いて図4に示すセグメント13までのシーケンスと同様とされるので、その説明は省略する。TCPルータ4から再送されたデータ1(data1)からなるセグメント13を受信したWEBサーバ6では、データ1がアプリケーションに送られて、データ1でリクエストされたデータ2(data2)が用意される。しかし、データ2の用意に時間がかかりその間に図示するようにタイムアウトしたものとする。
【0038】
この場合、TCPルータ4は、SYN+ACK(SYN,FIN,data1)からなるセグメント2(SEG2)を作成して、そのヘッダにCC値としてCC=11とCCecho=1を付加して移動機1aに送信する。移動機1aはセグメント2を受信すると、CC.echo=1が付加されていることから、セグメント2はセグメント1に対するSYN,ACKセグメントであることを確認する。そして、SYNフラグを受信したことの応答確認であるACK(SYN)からなるセグメント3(SEG3)を生成して、そのヘッダにCC値としてCC=1を付加し、WEBサーバ6を宛先として送信する。ここで、データ1でリクエストされたデータ2(data2)が用意されたとすると、WEBサーバ6はデータ2(data2)からなるセグメント14(SEG14)を作成し、TCPルータ4へ送信する。TCPルータ4がセグメント14を受信すると、セグメント14で受信したデータ2(data2)からなるセグメント4(SEG4)を作成して、そのヘッダにCC値としてCC=1を付加して移動機1aに送信する。
【0039】
この場合、TCPルータ4におけるインターネット側のタイムアウト時間は、移動通信網10側のタイムアウト時間より短くされている。これにより、図5に示すように移動機1aにおいてACKが返らないことからセグメントの再送を行う前に、移動機1aはSYN+ACKセグメントを受信することができるようになる。このため、移動通信網10においては再送による無線リソースの浪費を防止することができるようになる。
【0040】
次に、例えば基地局2に在圏する移動機1aが、インターネット5上のWEBサーバ6にTCPルータ4を介してアクセスした際に、伝送するデータが複数のセグメントにまたがる場合のシーケンスを図6に示す。ただし、図6に示すシーケンスは、WEBサーバ6がT/TCPをサポートしていない場合のシーケンスとされている。
図6に示すシーケンスにおいて、移動機1aはT/TCPをサポートしており、伝送するデータが1セグメントで伝送可能なデータ量を超えていることから、セッションを開始する際に移動機1aは、最初にSYN+データ1(data1)からなるセグメント1(SEG1)を生成して、そのヘッダにCC値としてCC=1を付加し、WEBサーバ6を宛先として送信する。次いで、残るデータ2(data2)+FINからなるセグメント2(SEG2)を生成して、そのヘッダにCC値としてCC=1を付加し、WEBサーバ6を宛先として送信する。これらのセグメント1およびセグメント2はTCPルータ4により受信され、受信したTCPルータ4はTAOテストを行う。ここでは、TAOテストは成功したものとし、TCPルータ4はSYNフラグを含むセグメント1を移動機1aからの新規のセッションのセグメントと判断する。
【0041】
そして、TCPルータ4は、宛先であるWEBサーバ6との間のセッションを開始するように、SYN+データ1(data1)からなるセグメント10(SEG10)を生成して、そのヘッダにCC値としてCC=10を付加し、WEBサーバ6を宛先として送信する。このSYNフラグを含むセグメント10はWEBサーバ6により受信されるが、受信したWEBサーバ6においては、T/TCPをサポートしていないことからCC値およびデータ1(data1)は破棄される。そして、セグメント10に基づいてSYN+ACK(SYN)からなるセグメント11(SEG11)が生成されて、移動機1aを宛先として送信される。
【0042】
このセグメント11を受信したTCPルータ4は、SYNフラグに対する応答確認であるACK(SYN)セグメント12を生成して、WEBサーバ6へ送信する。これにより、3ウェイハンドシェイクによるTCP接続確立が行われTCPルータ4とWEBサーバ6との間がTCPにより接続されるようになる。そこで、TCPルータ4は、キューイングしていたデータ1(data1)をセグメント13(SEG13)によりWEBサーバ6へ再送する。続いて、キューイングしていたデータ2(data2)とFINフラグからなるセグメント14(SEG14)を生成して、WEBサーバ6へ送信する。このセグメント13およびセグメント14を受信したWEBサーバ6においては、データ1およびデータ2がアプリケーションに送られて、データ1およびデータ2でリクエストされたデータ3(data3)およびデータ4(data4)が用意される。そこで、まずWEBサーバ6は、データ3(data3)およびデータ1,データ2およびFINフラグに対する応答確認であるACK(data1,data2,FIN)からなるセグメント15(SEG15)を作成し、TCPルータ4へ送信する。
【0043】
TCPルータ4がFINセグメント15を受信すると、セグメント11およびセグメント15に基づくと共にセグメント15で受信したデータ3(data3)を含むSYN+ACK(SYN,FIN,data1,data2)+データ3(data3)からなるセグメントを作成する。そして、そのヘッダにCC値としてCC=11とCCecho=1を付加して移動機1aに送信する。続いて、WEBサーバ6は、データ4(data4)と終了を示すFINフラグからなるセグメント16(SEG16)を作成し、TCPルータ4へ送信する。セグメント16を受信したTCPルータ4は、受信したデータ4(data4)とFINフラグからなるセグメント4(SEG4)を作成して、そのヘッダにCC値としてCC=1を付加して移動機1aに送信する。
【0044】
移動機1aはセグメント3を受信すると、CC.echo=1が付加されていることから、セグメント3がセグメント1に対するSYN,ACKセグメントであることが確認される。そして、セグメント3およびセグメント4で受信したSYNフラグ、FINフラグおよびデータ3,データ4の応答確認であるACK(SYN,data3,data4,FIN)からなるセグメント5(SEG5)を生成して、そのヘッダにCC値としてCC=1を付加し、WEBサーバ6を宛先として送信する。なお、移動機1aは、ACK(FIN)とFINフラグとを受信したことから、セッションを終了させる。TCPルータ4は、セグメント5を受信すると、セグメント5に基づいてACK(data3,data4,FIN)からなるセグメント17(SEG17)を生成して、WEBサーバ6へ送信する。これにより、TCPルータ4は移動機1aおよびWEBサーバ6とのセッションをクローズする。さらに、セグメント17を受信したWEBサーバ6もセッションをクローズする。
【0045】
このように、データが複数セグメントにわたる場合であっても、移動機1aとTCPルータ4間は3ウェイハンドシェイクを回避したT/TCPにより、少ないセグメントにより複数セグメントにわたるデータの授受を行うことができる。従って、データが複数セグメントにわたる場合であっても、移動通信網10の無線リソースを有効に活用することができるようになる。
【0046】
次に、TCPルータ4におけるバッファリング・ウィンドウ機能について図7を参照して説明する。
図7には、移動機1aとTCPルータ4との間において3つのセッションが同時に行われている場合のバッファ構成が示されている。この場合、TCPルータ4においては、セッション毎にバッファ14a,14b,14cが用意される。この3つのバッファ14a,14b,14cのサイズはそれぞれ8kバイト(8kByte)とされる。また、交換機3において移動機1aに用意されるバッファ13aのサイズは8kバイト(8kByte)とされる。さらに、移動機1aにおいては、セッション毎にバッファ11a,11b,11cが用意され、その3つのバッファ11a,11b,11cのサイズはそれぞれ8kバイト(8kByte)とされる。
【0047】
このように、交換機3においてはセッション毎のバッファが用意されないため、交換機3のウィンドウサイズに応じてTCPルータ4は、3つのセッションのデータを交換機3に送っている。例えば、セッション1におけるバッファ14aに格納されているデータは、8kバイトの内の2kバイトを交換機3に送り、セッション2におけるバッファ14bに格納されているデータは、8kバイトの内の2kバイトを交換機3に送り、セッション3におけるバッファ14cに格納されているデータは、8kバイトの内の4kバイトを交換機3に送るようにバッファ制御している。このように、TCPルータ4は交換機3におけるバッファ13aのウィンドウサイズに応じて、バッファリングされているデータの量を制御して送信している。これにより、交換機3のバッファサイズが16kバイトや32kバイトになった際にも対応させることができるようになる。なお、交換機3におけるバッファ13aに格納された3つのセッションのデータは移動機1aに送られて、セッション毎のバッファ11a,11b,11cにそれぞれ格納される。
【0048】
【発明の効果】
本発明は以上のように、第1の通信網あるいは第2の通信網からの初回のセッションにおいて予め定められている初回コネクション・カウント値に満たないコネクション・カウント値をデフォルト値としてキャッシュしているキャッシュ手段をルータ装置に備えるようにしている。これにより、第1の通信網あるいは第2の通信網からの初回のセッションに通知されるコネクション・カウント値は、ルータ装置にキャッシュされているコネクション・カウント値を超えるようになるので、3ウェイハンドシェイクを回避してT/TCPの接続を行うことができるようになる。これにより、T/TCPを用いて効率的なトランザクション処理を行えるようになる。
また、例えば第1の通信網とされる移動通信網における移動機(クライアント)と、例えば第2の通信網とされるインターネットにおけるサーバとを接続する際に、移動機との間をT/TCPで接続すると共にサーバとの間をTCPで接続することができる。この場合においても、移動機との間においては、3ウェイハンドシェイクを回避してT/TCPの接続確立を行うことができるため、移動通信網における無線リソースを有効に使用することができるようになる。
【図面の簡単な説明】
【図1】本発明の実施の形態のルータ装置を、第1の通信網としての移動通信網と第2の通信網としてのインターネットとの間に配置した通信システムの構成例を示す図である。
【図2】本発明の実施の形態のルータ装置において、3ウェイハンドシェイクを回避することのできるシーケンス図である。
【図3】本発明の実施の形態のルータ装置において、TAOテストが失敗した場合のシーケンス図である。
【図4】本発明の実施の形態のルータ装置において、WEBサーバがT/TCPをサポートしていない場合のシーケンス図である。
【図5】本発明の実施の形態のルータ装置において、タイムアウトした場合のシーケンス図である。
【図6】本発明の実施の形態のルータ装置において、伝送するデータが複数のセグメントにまたがる場合のシーケンス図である。
【図7】本発明の実施の形態のルータ装置におけるバッファリング・ウィンドウ機能を説明するための図である。
【図8】TCPのシーケンス図である。
【図9】3ウェイハンドシェイクを回避することのできるT/TCPのシーケンス図である。
【図10】初回のセッションにおけるT/TCPのシーケンス図である。
【符号の説明】
1a,1b 移動機、2 基地局、3 交換機、4 TCPルータ、4a データ送受信部、4b データ処理部、4c データ送受信部、5 インターネット、6 WEBサーバ、10 移動通信網、11a,11b,11c バッファ、13a バッファ、14a,14b,14c バッファ、100 クライアント、100 クライント、200 サーバ、300 サーバ
[0001]
BACKGROUND OF THE INVENTION
The present invention is arranged between a first communication network and a second communication network, and has a function of avoiding a 3-way handshake even in an initial session of a transaction type transport control protocol (T / TCP). The present invention relates to a router device that supports a normal transport control protocol (TCP).
[0002]
[Prior art]
Conventionally, a transport control protocol (hereinafter referred to as “TCP (Transport Control Protocol)”) is known as a network protocol used for communication in a communication network. This TCP is a protocol that is located in the fourth transport layer of the OSI reference model and has functions such as retransmission, packet order control and flow control, and is used as a standard protocol for communication on the Internet. Yes. TCP is also used when a mobile information terminal such as a cellular phone is connected to the Internet via a mobile communication network for communication.
[0003]
FIG. 8 shows an example of a TCP sequence when data is exchanged once between the client 100 and the server 200 located on the network.
When data is exchanged using TCP, first, connection establishment processing for connecting the client 100 and the server 200 is performed. In the TCP connection establishment processing, first, a segment (SEG1: segment 1) including a SYN flag designating the server 200 is sent from the client 100 that executes active open to the server 200 that executes passive open. Here, the “segment” is a unit used when TCP exchanges with a lower network layer. The “SYN flag” is a SYN (Synchronize) flag for synchronizing the sequence numbers among a plurality of control flags provided in the segment. When “1” is set here, the SYN flag is set. Will be sent.
[0004]
Upon receiving the segment including the SYN flag (hereinafter referred to as “SYN segment”), the server 200 returns ACK (SYN), which is an acknowledgment response to SYN. Further, a SYN flag for synchronizing the sequence number from the server 200 side is transmitted. That is, a (SYN + ACK) segment (SEG2: segment 2) including the initial sequence number of the server 200 is generated, and the server 200 returns it to the client 100. The client 100 returns an ACK (SYN), which is an acknowledgment response to the SYN in the segment 2 transmitted from the server 200, in the segment 3 (SEG3). As a result, a TCP connection is established between the client 100 and the server 200. As described above, since the connection is established by exchanging three segments, such a connection establishment process is called a connection establishment process by a 3-way handshake (3WH).
[0005]
When the connection is established in this way, data can be exchanged, and the client 100 sends, for example, a data segment (SEG4: segment 4) for requesting data to the server 200. The server 200 that has received this data segment returns an ACK (data) segment (SEG5: segment 5), which is an acknowledgment of the received data, to the client 100. Then, the server 200 sends the requested data (data) to the client 100 through the data segment (SEG6: segment 6). The client 100 returns an ACK (data) segment (SEG7: segment 7), which is an acknowledgment response to the reply data, to the server 200.
[0006]
As a result, when the data transmission / reception is completed, a TCP connection termination process is performed next. In the TCP connection termination process, first, a FIN segment (SEG8: Segment 8) is transmitted from the client 100 that performs active close to the server 200 that performs passive close. Here, the “FIN segment” is a segment that informs the sender that transmission of data has ended, and “1” is set in the FIN (Finish) flag. When the server 200 receives the FIN segment (SEG8), the server 200 returns an ACK (FIN) segment that is an acknowledgment response to the FIN. Further, a FIN flag for terminating communication from the server 200 to the client 100 is transmitted. That is, the server 200 returns the (FIN + ACK) segment (SEG9: segment 9) to the client 100. When the client 100 receives the (FIN + ACK) segment (SEG9), the client 100 returns an ACK (FIN) segment (SEG10: segment 10), which is an acknowledgment response to the FIN, to the server 200. As a result, the TCP connection between the server 200 and the client 100 is closed.
[0007]
As described above, in the connection establishment process and the connection end process, the client 100 side and the server 200 side transmit or send a SYN flag and a FIN flag, respectively, because TCP is connected to the upstream and downstream full duplex signals. This is because it is necessary to open or close the upstream and downstream communication paths. As described above, the connection establishment process and the connection end process are executed before and after the transmission of the transfer target data, and a confirmation response is made so that reliable data transmission can be performed in TCP.
[0008]
[Problems to be solved by the invention]
By the way, when performing communication using TCP, as shown in FIG. 8, in the connection start process and connection end process before and after data transmission, a total of six segments need to be transmitted and received, and data is exchanged once by one. Even if it exists, transmission / reception of 10 segments is required. For this reason, when performing transaction processing, which is a processing unit consisting of a series of processes in which the server 200 responds to a request from the client 100, overhead of connection establishment processing and connection termination processing occurs, and transaction processing There was a problem that the speed of the machine would decrease. In particular, in the case of a mobile communication network such as a cellular phone communication network, it is difficult to ensure a high data transmission rate because a wireless transmission path is interposed, and therefore a transport that can perform more efficient transaction processing. A layer protocol was desired.
[0009]
Therefore, in order to provide a transport layer that can avoid the overhead of connection establishment processing and connection termination processing and perform efficient transaction processing, a transaction-type transport control protocol (hereinafter referred to as “T / TCP”). Can be used. This T / TCP is a protocol whose definition is described in RFC (Request For Comment) 1379 and 1644.
In T / TCP, when the first connection is made, a three-way handshake (3WH) is negotiated to establish a connection. In this case, in T / TCP, the connected session is managed by a value called a CC (connection count) value. For this reason, by sending the CC value held at the start of the next session, connection establishment can be performed while avoiding 3WH. This is used to determine if it is an old session. For example, if the CC value of the SYN segment sent by the client exceeds the CC value cached in the server, the server determines that it is a new session and connects without performing 3WH. The CC value sent from the transmission side is incremented when the session is started, and the last CC value for each client sent from the client is cached in the server.
[0010]
An example of a T / TCP sequence is shown in FIG. In the sequence shown in FIG. 9, it is assumed that y1 is cached as a CC value in the cache CC [B] of the client 100 and x2 is cached as a CC value in the cache CC [A] of the server 300. When starting the sequence, the client 100 adds CC = x3 as the CC value to the header of the segment 10 (SEG10) of the SYN flag + data 1 (data1), and designates the server 300 for transmission. The CC value to be added is a connection counter value that is incremented when the session is started. The server 300 that has received the segment 10 including the SYN flag compares the size of the CC value x3 in the segment 10 with the size of the CC value x2 cached in the cache CC [A]. In this case, if x3> x2, the server 300 determines that the segment is a new sequence with the client 100. Then, the server 300 prepares the requested data 2 (data2) with the received data 1.
[0011]
Next, the server 300 generates a segment 11 (SEG11) of a SYN flag + ACK (SYN, data1) flag + data 2 (data2), and a CC value CC = CC = a connection counter value in the server 300 as a CC value in the header. y2 and the received CC value are added as CC.echo = x3, and the client 100 is designated and transmitted. In this case, ACK (SYN, data1) is a response confirmation that the SYN flag and data1 have been received, and CC.echo = x3 is for confirming that it is a segment for the first SYN segment (segment 10) of the session. Is the echo. The client 100 receives the SYN flag and data 2 by the segment 11, and also returns an ACK (SYN, data1) flag and CC.echo = x3. Therefore, the client 100 confirms that it has received the SYN flag and data2. A segment 12 (SEG12) of a certain ACK (SYN, data2) flag is transmitted to the server 300. As described above, in T / TCP, a data transfer transaction can be executed without executing 3WH. A mechanism for avoiding 3WH by comparing the CC value sent in the first SYN segment with the cached CC value is called TAO (TCP Accelerated Open), and the comparison is called TAO test. That is, the TAO test is successful in the sequence shown in FIG.
[0012]
Next, FIG. 10 shows a T / TCP sequence when an initial sequence is performed, for example, when an IP address is newly assigned to the client 100. In such an initial sequence, the client 100 can send CC.NEW prepared as an option instead of the CC value of the connection counter. That is, the client 100 adds CC.NEW = x to the header of the segment 1 (SEG1) of the SYN flag + data 1 (data1), and designates the server 300 for transmission. In the cache of the server 300, x0 is cached as the CC value. However, since the CC added to the segment 1 is CC.NEW, the CC value in the cache is invalidated and the CC value in the cache is No comparison is made with the received CC value. Since the received CC value is CC.NEW, data 1 in segment 1 is queued. Next, a segment 2 (SEG2) including a SYN flag + ACK (SYN) is generated, and CC = y1 and CC.ECHO = x which are CC values of the server 300 are added to the header and transmitted to the client 100.
[0013]
The client 100 having received the segment 2 confirms the ACK (SYN) flag and confirms that CC.ECHO = x is returned, and stores the sent CC value y1 in the cache. Next, segment 3 (SEG3) including ACK (SYN), which is a response confirmation to SYN from server 300, is generated, and CC = x is added to the header and transmitted to server 300. As a result, since the connection is established by performing 3WH, the server 300 that has received the segment 3 of ACK (SYN) sends the data 1 that has been queued to the application. Furthermore, CC = x is cached in the cache. Next, the server 300 adds CC = y2 to the header of the segment 4 (SEG4) including the data 2 (data2) requested by the data 1 and transmits it to the client 100. Since the data 2 is received by the segment 4, the client 100 generates the segment 5 (SEG5) including the ACK (data2) flag, adds CC = x to the header thereof, and transmits it to the server 300. In this way, if the TAO test is successful when performing communication using T / TCP, as shown in FIG. 9, it is possible to perform T / TCP communication while avoiding 3WH for the first and subsequent sessions. .
[0014]
By the way, many servers on the Internet that support only TCP and do not support T / TCP are also used. On the other hand, it is effective to use T / TCP described above in a communication network with limited resources such as a mobile communication network. Therefore, when communication is performed between a mobile device and the Internet, a communication protocol can be converted between a mobile communication network using T / TCP and a communication network such as the Internet using TCP or T / TCP. A router device is arranged.
However, even if T / TCP is used, a three-way handshake cannot be avoided at the start of the first session, and the efficiency of a communication network with limited resources such as a mobile communication network is reduced. there were. In particular, in a mobile station in a mobile communication network, an IP address is dynamically assigned by a router device. Therefore, it is necessary to execute a 3-way handshake every time an IP address is assigned and a session is started. Even if it is used, efficient transaction processing cannot be performed.
[0015]
Accordingly, an object of the present invention is to provide a router device capable of avoiding the 3-way handshake even at the start of the first session in order to solve the above-described problems.
[0016]
[Means for Solving the Problems]
  In order to achieve the above object, a router device according to the present invention is arranged between a first communication network and a second communication network, and is equipped with a transaction type transport control protocol (T / TCP), A router device supporting the transport control protocol (TCP) ofAssigning means for dynamically assigning an IP address to a client in the first communication network;The first communication networkWhen a new IP address is assigned to the client by the assigning means.A cache means for caching a connection count value less than a predetermined initial connection count value in a first session as a default value; and the first communication networkOf the clientWhen the session start segment including the first connection count value is received from the first connection count value and the second connection count value cached in the cache means are compared, Processing means for determining that the received segment is a segment of a new session when the first connection count value exceeds the second connection count value;Of the clientsIn the first sessionBy transmitting a segment including the initial connection count value as the first connection count valueConnection establishment of a transaction type transport control protocol (T / TCP) can be performed without performing a three-way handshake.
[0017]
  In the router device of the present invention,A conversion unit that performs protocol conversion between a transaction-type transport control protocol (T / TCP) and a normal transport control protocol (TCP) is provided.Supports transactional transport control protocol (T / TCP) in the first communication networkAboveConnect with clients using transactional transport control protocol (T / TCP)As you canThe server that supports the normal transport control protocol (TCP) in the second communication network is connected using the normal transport control protocol (TCP).CanWhen communication is performed between the client and the server, a connection with the client can be established using a transaction-type transport control protocol (T / TCP) without performing a three-way handshake. Good.
  Furthermore, the router device of the present invention further includes conversion means for performing protocol conversion between a transaction type transport control protocol (T / TCP) and a normal transport control protocol (TCP). It is possible to connect with the client that supports the transaction type transport control protocol (T / TCP) in the first communication network using the transaction type transport control protocol (T / TCP), and A server that supports a transactional transport control protocol (T / TCP) in the second communication network can be connected by a transactional transport control protocol (T / TCP), and the client and With the server When performing communication, it is possible to establish a connection independently between the client and the server by a transactional transport control protocol (T / TCP) without performing a three-way handshake. May be.
[0018]
According to the present invention, a connection count value that does not satisfy a predetermined initial connection count value in a first session from the first communication network or the second communication network is cached as a default value. The cache device is provided in the router device. As a result, the connection count value notified to the first session from the first communication network or the second communication network exceeds the connection count value cached in the router device. A T / TCP connection can be performed while avoiding a shake. As a result, efficient transaction processing can be performed using T / TCP.
For example, when connecting a mobile device (client) in a mobile communication network, which is a first communication network, and a server in the Internet, which is a second communication network, for example, T / TCP is connected between the mobile devices. And a TCP connection between the server and the server. Even in this case, since the T / TCP connection can be established while avoiding the 3-way handshake with the mobile device, radio resources in the mobile communication network can be used effectively. Become.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 shows a configuration example of a communication system in which a router device according to an embodiment of the present invention is arranged between a mobile communication network as a first communication network and the Internet as a second communication network. .
The communication system shown in FIG. 1 includes a mobile communication network 10, a TCP router 4 according to the present invention, and the Internet 5. In the mobile communication network 10, a plurality of mobile devices 1 a and 1 b that are mobile phones are located in the service area of the base station 2 and communicate with the base station 2 via a wireless communication line. A base station is provided for each cell, and only the base station 2 is shown. These base stations are connected to an exchange 3 that is an upper node, and the exchange 3 exchanges a plurality of base stations including the base station 2. This mobile communication network 10 is a transaction-type transport control protocol T / T as a transport layer communication protocol so that high-speed data transfer is possible even when a wireless communication line with a relatively low transmission rate is included. TCP is supported.
[0020]
The TCP router 4 according to the present invention includes a first data transmission / reception unit 4a that performs data transmission / reception with the mobile communication network 10 and a second data transmission / reception unit 4c that performs data transmission / reception with the Internet 5. And a data processing unit 4b that performs data processing including protocol conversion. The first data transmission / reception unit 4a and the second data transmission / reception unit 4c perform signal processing in the link layer of the OSI reference model. The data processing unit 4b performs data processing when communication is performed between the mobile device in the mobile communication network and the WEB server 6 in the Internet 5 using TCP or T / TCP. By the way, since a global address is assigned to the TCP router 4 and a global address cannot be assigned to each mobile device, an IP masquerade function for dynamically assigning an IP address to a mobile device that requests an IP address is provided as a data processing unit. 4b has. Further, the data processing unit 4b has a buffering window function for conversion between TCP and T / TCP and for timer control. The data processing unit 4b includes a data storage unit, a segment generation unit, and a timing control unit. The data storage unit is a temporary register that temporarily stores data received from the mobile communication network 10 and the Internet 5. The segment generation unit generates a TCP or T / TCP segment to be transmitted to the mobile communication network 10 and the Internet 5. Further, the timing control unit controls the transmission timing of each segment transmitted toward the mobile communication network 10 and the Internet 5.
[0021]
The WEB server 6 located on the Internet 5 supports a transaction type T / TCP in addition to a normal TCP widely used in the Internet 5 as a transport layer communication protocol. Some servers do not support T / TCP.
Here, for example, when the mobile device 1 a located in the base station 2 accesses the WEB server 6 on the Internet 5, it is assumed that an IP address is newly assigned to the mobile device 1 a by the IP masquerade function of the TCP router 4. In such a case, since the CC value is reset, CC.NEW, which was conventionally prepared as a CC option, is sent in the first session so that a connection is established by performing a 3-way handshake. I was doing. In the TCP router 4 according to the present invention, in such a case, the default CC value in the first session set in the cache of the TCP router 4 is set to “0”, for example. In the mobile devices 1a, 1b,... That are clients, the default value of the connection counter in the first session is set to “1”. As a result, even when a new IP address is assigned and the first session is performed, the T / TCP connection can be established while avoiding the 3-way handshake.
[0022]
Below, for example, when a mobile station 1a newly assigned with an IP address located in the base station 2 accesses the WEB server 6 on the Internet 5 via the TCP router 4, a 3-way handshake is avoided. A possible sequence is shown in FIG. However, in the sequence shown in FIG. 2, it is assumed that the mobile device 1a and the WEB server 6 support T / TCP.
Since the mobile device 1a supports T / TCP, when starting a session, the mobile device 1a generates a segment 1 (SEG1) composed of SYN + FIN + data 1 (data1), and the first session in the header. A default CC value (CC = 1) set at the time is added, and the WEB server 6 is transmitted as the destination. The segment 1 including the SYN flag to which CC = 1 is added is received by the TCP router 4, and the received TCP router 4 determines the size of the CC value “1” in the segment 1 and the size of the cached CC value. Compare In this case, since the CC value corresponding to the IP address assigned to the mobile device 1a cached in the TCP router 4 is the default value “0”, the value of the CC value added to the segment 1 is The TAO test succeeds beyond the cached CC value, and the TCP router 4 determines that the segment 1 is a segment of a new session from the mobile device 1a.
[0023]
Then, the TCP router 4 generates a segment 10 (SEG10) composed of SYN + FIN + data 1 (data1) so as to start a session with the destination WEB server 6, and CC = CC = 10 is added, and the WEB server 6 is designated and transmitted. The CC value to be added is the value of the connection counter in the TCP router 4 and is set to “10” in this case. The segment 10 including the SYN flag is received by the WEB server 6, and the received WEB server 6 compares the size of the CC value “10” in the segment 10 with the size of the cached CC value. In this case, if the CC value in the TCP router 4 cached in the WEB server 6 is less than “10”, the TAO test is successful, and the WEB server 6 determines that the segment 10 is a segment of a new session from the TCP router 4. Judge.
[0024]
Therefore, the WEB server 6 sends the received data 1 to the application, prepares the data 2 (data2) requested by the data 1, and creates a segment 11 (SYN + FIN + ACK (SYN, FIN, data1) + data 2 (data2) 11 SEG11) is generated, CC = 5 and CCecho = 10 are added to the header as CC values, and the mobile station 1a is transmitted as the destination. The CC value to be added is the value of the connection counter in the WEB server 6, and in this case is “5”. CC.echo = 10 is an echo for the TCP router 4 to confirm that it is a SYN, ACK segment for the first SYN segment (segment 10) to which CC = 10 is added. Since the WEB server 6 receives the FIN flag together with the SYN flag, the WEB server 6 enters a session end waiting state.
[0025]
In the TCP router 4, since CC.echo = 10 is added to the segment 11, it is confirmed that the segment 11 is a SYN, ACK (SYN, FIN, data1) segment for the segment 10. Further, since the FIN flag and the data 2 are received by the segment 11, a segment 2 (SEG2) composed of SYN + FIN + ACK (SYN, FIN, data1) + data 2 (data2) is generated, and CC is set as the CC value in the header. = 5 and CCecho = 1 are added and transmitted to the mobile station 1a. CC.echo = 1 is an echo for the mobile station 1a to confirm that it is a SYN, ACK segment for the first SYN segment (segment 1) to which CC = 1 is added. The mobile station 1a receives the segment 2, the SYN flag, the FIN flag, and the data 2 are received, and the ACK (SYN, FIN, data1) flag and CC.echo = 1 are returned. To the application. Next, an ACK (FIN, data2) segment 3 (SEG3), which is a response confirmation that the FIN flag and data 2 (data2) have been received, is generated, and CC = 1 is added as a CC value to the header of the WEB server. 6 is sent as a destination. Further, since the FIN flag has been received, the FIN flag is transmitted in segment 1 and the session that has been waiting for termination is terminated.
[0026]
When the TCP router 4 receives the ACK (FIN, data2) segment 3 with the CC value CC = 1 from the mobile device 1a, the TCP router 4 terminates the session with the mobile device 1a, and sets the FIN flag and data 2 (data2). An ACK (FIN, data2) segment 12 (SEG12), which is a response confirmation of reception, is generated, CC = 10 is added to the header as a CC value, and transmitted to the WEB server 6. When receiving the ACK (FIN, data2) segment 12 with the CC value CC = 10 from the TCP router 4, the WEB server 6 terminates the session that has been waiting for termination.
In this way, by setting the CC value in the first session in advance, even when the first session is opened using T / TCP, the data transfer transaction is executed without executing the 3-way handshake. Will be able to. In this case, when the TCP router 4 of the present invention is provided between the mobile communication network 10 and the Internet 5, as described above, the session between the mobile communication network 10 and the TCP router 4, the TCP router 4 and the Internet 5 Since each session becomes an independent session, 3-way handshake can be avoided in each session.
[0027]
Next, for example, when the mobile device 1a located in the base station 2 accesses the WEB server 6 on the Internet 5 via the TCP router 4, a sequence when the TAO test in the WEB server 6 fails is shown in FIG. Shown in However, in the sequence shown in FIG. 3, the mobile device 1a and the WEB server 6 support T / TCP.
In the sequence shown in FIG. 3, since the mobile device 1a supports T / TCP, when starting a session, the mobile device 1a generates a segment 1 (SEG1) composed of SYN + FIN + data 1 (data1). Then, CC = 1 is added to the header as the CC value, and the WEB server 6 is transmitted as the destination. The segment 1 including the SYN flag is received by the TCP router 4, and the received TCP router 4 compares the size of the CC value “1” in the segment 1 with the size of the cached CC value. In this case, if the CC value corresponding to the IP address assigned to the mobile device 1a cached in the TCP router 4 is “0”, the TAO test in the TCP router 4 is successful, and the TCP router 4 1 is determined as a segment of a new sequence from the mobile station 1a.
[0028]
Then, the TCP router 4 generates a segment 10 (SEG10) composed of SYN + FIN + data 1 (data1) so as to start a session with the destination WEB server 6, and CC = CC = 10 is added, and the WEB server 6 is designated and transmitted. The segment 10 including the SYN flag is received by the WEB server 6, and the received WEB server 6 compares the size of the CC value “10” in the segment 10 with the size of the cached CC value to test the TAO test. I do. In this case, if the CC value in the TCP router 4 cached in the WEB server 6 is equal to or greater than “11”, the TAO test fails, and a 3-way handshake is made so as to connect by TCP instead of T / TCP. Will be executed.
[0029]
Therefore, the WEB server 6 generates a segment 11 (SEG11) composed of SYN + ACK (SYN) and transmits the mobile device 1a as a destination. The TCP router 4 that has received the segment 11 sets the SYN + ACK (SYN, data1) segment as the segment 2, adds CC = 11 and CCecho = 1 as CC values to the header, and transmits the segment to the mobile device 1a. When the mobile station 1a receives the segment 2, since CC.echo = 1 is added, the mobile station 1a confirms that the segment 2 is a SYN, ACK (SYN, data1) segment for the segment 1. Then, since ACK (FIN) is not returned, segment 3 (SEG3) including FIN + ACK (SYN) including the FIN flag to be retransmitted is generated, CC = 1 is added to the header as CC value, and WEB server 6 Is sent as a destination. When the TCP router 4 receives the ACK segment 3, a 3-way handshake is performed between the mobile device 1a and the TCP router 4 to establish a T / TCP connection.
[0030]
When the TCP router 4 receives the segment 3, the segment 12 (SEG12) includes FIN + ACK (SYN) + data 1 (data1) including the FIN flag to be retransmitted based on the segment 3 and the queued data 1 (data1). Is transmitted to the WEB server 6. Note that the TCP router 4 has received the FIN flag, and enters a session waiting state between the mobile devices 1a. When the WEB server 6 receives this segment 12, a 3-way handshake is performed between the TCP router 4 and the WEB server 6 to establish a TCP connection. Thereby, data 1 is sent to the application, and data 2 (data 2) requested by data 1 is prepared. Therefore, the WEB server 6 creates a segment 13 (SEG 13) composed of FIN + ACK (FIN, data1) + data 2 (data2) and transmits it to the TCP router 4. Note that the WEB server 6 has received the FIN flag, and enters a state of waiting for termination of the session between the TCP routers 4.
[0031]
The TCP router 4 creates a segment 4 (SEG4) composed of FIN + ACK (FIN, data1) + data 2 (data2) based on the received segment 13, and adds a CC value of CC = 11 to the header to add the mobile station. Send to 1a. When the mobile station 1a receives the segment 4, the mobile station 1a generates an ACK (FIN, data2) segment 5 (SEG5), which is a response confirmation that the FIN flag and data 2 (data2) have been received. = 1 is added, and the WEB server 6 is transmitted as the destination. Furthermore, since the FIN flag and ACK (FIN) are received, the session is terminated. The TCP router 4 that has received the segment 5 generates an ACK (FIN, data2) segment 14 (SEG 14) and transmits it to the WEB server 6. Thereby, the TCP router 4 closes the session with the mobile device 1a and the WEB server 6. Further, the WEB server 6 that has received the segment 14 closes the session waiting for termination.
[0032]
Next, for example, when the mobile device 1a located in the base station 2 accesses the WEB server 6 on the Internet 5 via the TCP router 4, the sequence when the WEB server 6 does not support T / TCP. Is shown in FIG. However, the sequence shown in FIG. 4 is a sequence in which the TAO test is successful in the TCP router 4.
In the sequence shown in FIG. 4, since the mobile device 1a supports T / TCP, when starting a session, the mobile device 1a generates a segment 1 (SEG1) composed of SYN + FIN + data 1 (data1). Then, CC = 1 is added to the header as the CC value, and the WEB server 6 is transmitted as the destination. The segment 1 including the SYN flag is received by the TCP router 4, and the received TCP router 4 compares the size of the CC value “1” in the segment 1 with the size of the cached CC value. In this case, if the CC value corresponding to the IP address assigned to the mobile device 1a cached in the TCP router 4 is “0”, the TAO test in the TCP router 4 is successful, and the TCP router 4 1 is determined as a segment of a new sequence from the mobile station 1a.
[0033]
Then, the TCP router 4 generates a segment 10 (SEG10) composed of SYN + FIN + data 1 (data1) so as to start a session with the destination WEB server 6, and CC = CC = 10 is added, and the WEB server 6 is transmitted as the destination. The segment 10 including the SYN flag is received by the WEB server 6, but the CC value and data 1 (data1) are discarded because the received WEB server 6 does not support T / TCP. Then, a segment 11 (SEG11) composed of SYN + ACK (SYN) is generated based on the segment 10, and transmitted to the mobile device 1a as a destination.
[0034]
The TCP router 4 that has received this segment 11 generates this ACK (SYN) segment 12 that is a response confirmation to the SYN flag, and transmits it to the WEB server 6. As a result, a 3-way handshake is performed, and the TCP router 4 and the WEB server 6 are connected by TCP. Therefore, the TCP router 4 retransmits the queued data 1 (data1) to the WEB server 6 through the segment 13. In the WEB server 6 that has received the segment 13, data 1 is sent to the application, and data 2 (data2)... Requested by the data 1 is prepared. Therefore, the WEB server 6 creates a segment 14 (SEG 14) composed of data 2 (data 2) and transmits it to the TCP router 4. When the data to be sent ends, the WEB server 6 creates a FIN segment 15 and sends it to the TCP router 4.
[0035]
When the TCP router 4 receives the FIN segment 15, it creates a segment consisting of SYN + FIN + ACK (SYN, FIN, data1) + data (data2) based on the segments 11 and 15 and including the data 2 (data2) received in the segment 14. . Then, CC = 11 and CCecho = 1 are added to the header as CC values and transmitted to the mobile device 1a. When mobile station 1a receives segment 2, since CC.echo = 1 is added, it is confirmed that segment 2 is a SYN, ACK segment for segment 1. Then, segment 3 (SEG3) consisting of ACK (SYN, FIN, data2), which is a response confirmation that the SYN flag, FIN flag, and data 2 have been received, is generated, and CC = 1 is added to the header as CC value The WEB server 6 is transmitted as the destination. Note that the mobile device 1a terminates the session because it has received ACK (FIN) and the FIN flag.
[0036]
When the TCP router 4 receives the segment 3, it generates a segment 16 (SEG 16) composed of ACK (FIN, data 2) based on the segment 3, and transmits it to the WEB server 6. Thereby, the TCP router 4 closes the session with the mobile device 1a and the WEB server 6. Further, the WEB server 6 that has received the segment 16 also closes the session.
As described above, even when the WEB server 6 does not support T / TCP, the mobile device 1a and the TCP router 4 can be connected by T / TCP while avoiding the 3-way handshake. Therefore, even when the WEB server 6 does not support T / TCP, the radio resources of the mobile communication network 10 can be used effectively.
[0037]
Next, for example, when the mobile station 1a located in the base station 2 accesses the WEB server 6 on the Internet 5 via the TCP router 4, the WEB server 6 does not support T / TCP and time-out FIG. 5 shows the sequence in the case of the above.
The sequence shown in FIG. 5 is the same as the sequence up to the segment 13 shown in FIG. 4 except that the timer is set in the TCP router 4 that has received the segment 1, and the description thereof will be omitted. In the WEB server 6 that has received the segment 13 composed of the data 1 (data 1) retransmitted from the TCP router 4, the data 1 is sent to the application, and the data 2 requested by the data 1 (data 2) is prepared. However, preparation of the data 2 takes time, and it is assumed that time-out occurs as shown in the figure.
[0038]
In this case, the TCP router 4 creates a segment 2 (SEG2) composed of SYN + ACK (SYN, FIN, data1), adds CC = 11 and CCecho = 1 as CC values to the header, and transmits them to the mobile station 1a. To do. When the mobile device 1a receives the segment 2, since CC.echo = 1 is added, the mobile device 1a confirms that the segment 2 is a SYN, ACK segment for the segment 1. Then, segment 3 (SEG3) consisting of ACK (SYN), which is a response confirmation that the SYN flag has been received, is generated, CC = 1 is added to the header, and WEB server 6 is transmitted as the destination. . Here, assuming that data 2 (data 2) requested by data 1 is prepared, the WEB server 6 creates a segment 14 (SEG 14) composed of data 2 (data 2) and transmits it to the TCP router 4. When the TCP router 4 receives the segment 14, it creates a segment 4 (SEG4) composed of the data 2 (data2) received in the segment 14, adds CC = 1 as a CC value to the header, and transmits it to the mobile device 1a. To do.
[0039]
In this case, the timeout time on the Internet side in the TCP router 4 is shorter than the timeout time on the mobile communication network 10 side. Thereby, as shown in FIG. 5, since ACK is not returned in the mobile station 1a, the mobile station 1a can receive the SYN + ACK segment before retransmitting the segment. For this reason, in the mobile communication network 10, waste of radio resources due to retransmission can be prevented.
[0040]
Next, for example, when the mobile device 1a located in the base station 2 accesses the WEB server 6 on the Internet 5 via the TCP router 4, the sequence in the case where the data to be transmitted extends over a plurality of segments is shown in FIG. Shown in However, the sequence shown in FIG. 6 is a sequence when the WEB server 6 does not support T / TCP.
In the sequence shown in FIG. 6, since the mobile device 1a supports T / TCP and the data to be transmitted exceeds the amount of data that can be transmitted in one segment, the mobile device 1a First, a segment 1 (SEG1) composed of SYN + data 1 (data1) is generated, CC = 1 is added to the header as a CC value, and the WEB server 6 is transmitted as a destination. Next, a segment 2 (SEG2) consisting of the remaining data 2 (data2) + FIN is generated, CC = 1 is added to the header, and the WEB server 6 is transmitted as the destination. These segment 1 and segment 2 are received by the TCP router 4, and the received TCP router 4 performs a TAO test. Here, it is assumed that the TAO test is successful, and the TCP router 4 determines that the segment 1 including the SYN flag is a segment of a new session from the mobile device 1a.
[0041]
Then, the TCP router 4 generates a segment 10 (SEG10) composed of SYN + data 1 (data1) so as to start a session with the WEB server 6 which is the destination, and CC = CC = 10 is added, and the WEB server 6 is transmitted as the destination. The segment 10 including the SYN flag is received by the WEB server 6, but the CC value and data 1 (data1) are discarded because the received WEB server 6 does not support T / TCP. Then, a segment 11 (SEG11) composed of SYN + ACK (SYN) is generated based on the segment 10, and transmitted to the mobile device 1a as a destination.
[0042]
The TCP router 4 that has received this segment 11 generates an ACK (SYN) segment 12 that is a response confirmation to the SYN flag, and transmits it to the WEB server 6. As a result, a TCP connection is established by a three-way handshake, and the TCP router 4 and the WEB server 6 are connected by TCP. Therefore, the TCP router 4 retransmits the queued data 1 (data1) to the WEB server 6 by the segment 13 (SEG13). Subsequently, a segment 14 (SEG 14) including the queued data 2 (data 2) and the FIN flag is generated and transmitted to the WEB server 6. In the WEB server 6 that has received the segment 13 and the segment 14, the data 1 and the data 2 are sent to the application, and the data 3 (data3) and the data 4 (data4) requested by the data 1 and the data 2 are prepared. The Therefore, the WEB server 6 first creates a segment 15 (SEG 15) composed of data 3 (data 3), data 1, data 2, and ACK (data 1, data 2, FIN), which is a response confirmation to the FIN flag, and sends it to the TCP router 4. Send.
[0043]
When the TCP router 4 receives the FIN segment 15, the segment is composed of SYN + ACK (SYN, FIN, data1, data2) + data 3 (data3) based on the segments 11 and 15 and including the data 3 (data3) received in the segment 15. Create Then, CC = 11 and CCecho = 1 are added to the header as CC values and transmitted to the mobile device 1a. Subsequently, the WEB server 6 creates a segment 16 (SEG 16) including data 4 (data 4) and a FIN flag indicating the end, and transmits the segment 16 (SEG 16) to the TCP router 4. The TCP router 4 that has received the segment 16 creates the segment 4 (SEG4) composed of the received data 4 (data4) and the FIN flag, adds CC = 1 as a CC value to the header, and transmits it to the mobile device 1a. To do.
[0044]
When the mobile station 1a receives the segment 3, since CC.echo = 1 is added, it is confirmed that the segment 3 is a SYN, ACK segment for the segment 1. Then, a segment 5 (SEG5) composed of the SYN flag, the FIN flag and the ACK (SYN, data3, data4, FIN) which is the response confirmation of the data 3 and data 4 received in the segment 3 and the segment 4 is generated, and its header Is added with CC = 1 as the CC value, and the WEB server 6 is transmitted as the destination. Note that the mobile device 1a terminates the session because it has received ACK (FIN) and the FIN flag. When the TCP router 4 receives the segment 5, it generates a segment 17 (SEG 17) composed of ACK (data 3, data 4, FIN) based on the segment 5 and transmits it to the WEB server 6. Thereby, the TCP router 4 closes the session with the mobile device 1a and the WEB server 6. Further, the WEB server 6 that has received the segment 17 also closes the session.
[0045]
As described above, even when the data covers a plurality of segments, the T / TCP that avoids the 3-way handshake between the mobile device 1a and the TCP router 4 can exchange data over a plurality of segments with a small number of segments. . Therefore, even when data covers a plurality of segments, the radio resources of the mobile communication network 10 can be used effectively.
[0046]
Next, the buffering window function in the TCP router 4 will be described with reference to FIG.
FIG. 7 shows a buffer configuration when three sessions are simultaneously performed between the mobile device 1 a and the TCP router 4. In this case, in the TCP router 4, buffers 14a, 14b, and 14c are prepared for each session. The sizes of the three buffers 14a, 14b, and 14c are 8 kbytes (8 kByte), respectively. In the exchange 3, the size of the buffer 13a prepared in the mobile station 1a is 8 kbytes (8 kbytes). Furthermore, in the mobile device 1a, buffers 11a, 11b, and 11c are prepared for each session, and the sizes of the three buffers 11a, 11b, and 11c are each 8 kbytes (8 kbytes).
[0047]
As described above, since the buffer for each session is not prepared in the exchange 3, the TCP router 4 sends data of three sessions to the exchange 3 according to the window size of the exchange 3. For example, the data stored in the buffer 14a in the session 1 sends 2 kbytes out of 8 kbytes to the switch 3, and the data stored in the buffer 14b in the session 2 sends 2 kbytes in the 8 kbytes The data stored in the buffer 14 c in the session 3 is buffer-controlled so that 4 k bytes out of 8 k bytes are sent to the exchange 3. In this way, the TCP router 4 controls the amount of buffered data according to the window size of the buffer 13a in the exchange 3, and transmits it. As a result, it is possible to cope with the case where the buffer size of the exchange 3 becomes 16 kbytes or 32 kbytes. The data of the three sessions stored in the buffer 13a in the exchange 3 is sent to the mobile station 1a and stored in the buffers 11a, 11b, and 11c for each session.
[0048]
【The invention's effect】
As described above, the present invention caches, as a default value, a connection count value that does not satisfy a predetermined initial connection count value in an initial session from the first communication network or the second communication network. Cache means is provided in the router device. As a result, the connection count value notified to the first session from the first communication network or the second communication network exceeds the connection count value cached in the router device. A T / TCP connection can be performed while avoiding a shake. As a result, efficient transaction processing can be performed using T / TCP.
For example, when connecting a mobile device (client) in a mobile communication network, which is a first communication network, and a server in the Internet, which is a second communication network, for example, T / TCP is connected between the mobile devices. And a TCP connection between the server and the server. Even in this case, since the T / TCP connection can be established while avoiding the 3-way handshake with the mobile device, radio resources in the mobile communication network can be used effectively. Become.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration example of a communication system in which a router device according to an embodiment of the present invention is arranged between a mobile communication network as a first communication network and the Internet as a second communication network. .
FIG. 2 is a sequence diagram capable of avoiding a 3-way handshake in the router device according to the embodiment of the present invention.
FIG. 3 is a sequence diagram when the TAO test fails in the router device according to the embodiment of the present invention.
FIG. 4 is a sequence diagram when the WEB server does not support T / TCP in the router device according to the embodiment of this invention.
FIG. 5 is a sequence diagram when a timeout occurs in the router device according to the embodiment of this invention.
FIG. 6 is a sequence diagram in a case where data to be transmitted extends over a plurality of segments in the router device according to the embodiment of this invention.
FIG. 7 is a diagram for explaining a buffering window function in the router device according to the embodiment of the present invention;
FIG. 8 is a sequence diagram of TCP.
FIG. 9 is a sequence diagram of T / TCP that can avoid a 3-way handshake.
FIG. 10 is a sequence diagram of T / TCP in the first session.
[Explanation of symbols]
1a, 1b mobile station, 2 base station, 3 switch, 4 TCP router, 4a data transmission / reception unit, 4b data processing unit, 4c data transmission / reception unit, 5 internet, 6 WEB server, 10 mobile communication network, 11a, 11b, 11c buffer , 13a buffer, 14a, 14b, 14c buffer, 100 clients, 100 clients, 200 servers, 300 servers

Claims (3)

第1の通信網と第2の通信網との間に配置されると共に、トランザクション型のトランスポート制御プロトコル(T/TCP)と、通常のトランスポート制御プロトコル(TCP)とをサポートしているルータ装置であって、
前記第1の通信網におけるクライアントにダイナミックにIPアドレスを割り当てる割当手段と、
前記第1の通信網の前記クライアントに前記割当手段から新たなIPアドレスが割り当てられた際の初回のセッションにおいて予め定められている初回コネクション・カウント値未満のコネクション・カウント値をデフォルト値としてキャッシュしているキャッシュ手段と、
前記第1の通信網の前記クライアントから第1のコネクション・カウント値を含むセッション開始のセグメントを受信した際に、該第1のコネクション・カウント値と前記キャッシュ手段にキャッシュされている第2のコネクション・カウント値とを比較して、前記第1のコネクション・カウント値が前記第2のコネクション・カウント値を超えている際に、前記受信したセグメントが新規のセッションのセグメントと判断する処理手段とを備え、
前記第1の通信網の前記クライアントが前記初回のセッションにおいて前記第1のコネクション・カウント値として前記初回コネクション・カウント値を含むセグメントを送信することにより、3ウェイハンドシェイクを行うことなくトランザクション型のトランスポート制御プロトコル(T/TCP)の接続確立を行えるようにしたことを特徴とするルータ装置。
A router arranged between the first communication network and the second communication network and supporting a transactional transport control protocol (T / TCP) and a normal transport control protocol (TCP) A device,
Assigning means for dynamically assigning an IP address to a client in the first communication network;
A connection count value less than a predetermined initial connection count value is cached as a default value in an initial session when a new IP address is assigned to the client of the first communication network by the assigning means Caching means,
When the session start segment including the first connection count value is received from the client of the first communication network , the first connection count value and the second connection cached in the cache means Processing means for comparing the count value and determining that the received segment is a segment of a new session when the first connection count value exceeds the second connection count value; Prepared,
The client of the first communication network transmits a segment including the initial connection count value as the first connection count value in the initial session, thereby enabling a transaction type without performing a three-way handshake. A router apparatus characterized in that a connection of a transport control protocol (T / TCP) can be established.
トランザクション型のトランスポート制御プロトコル(T/TCP)と、通常のトランスポート制御プロトコル(TCP)とのプロトコル変換を行う変換手段を備え、
該変換手段により、前記第1の通信網におけるトランザクション型のトランスポート制御プロトコル(T/TCP)をサポートしている前記クライアントとの間はトランザクション型のトランスポート制御プロトコル(T/TCP)で接続することができると共に、前記第2の通信網における通常のトランスポート制御プロトコル(TCP)をサポートしているサーバとの間は通常のトランスポート制御プロトコル(TCP)で接続することができ、前記クライアントと前記サーバとの間で通信を行う際に、3ウェイハンドシェイクを行うことなく前記クライアントとの間をトランザクション型のトランスポート制御プロトコル(T/TCP)で接続確立できるようにしたことを特徴とする請求項1記載のルータ装置。
A conversion means for performing protocol conversion between a transactional transport control protocol (T / TCP) and a normal transport control protocol (TCP);
By the conversion means, between the clients that support the first transaction type transport control protocol in the communication network (T / TCP) is connected with a transaction-oriented transport control protocol (T / TCP) it it is, and from the server that supports normal transport control protocol in the second communication network (TCP) can be connected in a conventional transport control protocol (TCP), and the client When communicating with the server, it is possible to establish a connection with the client by a transactional transport control protocol (T / TCP) without performing a three-way handshake. The router device according to claim 1.
トランザクション型のトランスポート制御プロトコル(T/TCP)と、通常のトランスポート制御プロトコル(TCP)とのプロトコル変換を行う変換手段を備え、A conversion means for performing protocol conversion between a transactional transport control protocol (T / TCP) and a normal transport control protocol (TCP);
該変換手段により、前記第1の通信網におけるトランザクション型のトランスポート制御プロトコル(T/TCP)をサポートしている前記クライアントとの間をトランザクション型のトランスポート制御プロトコル(T/TCP)で接続することができると共に、前記第2の通信網におけるトランザクション型のトランスポート制御プロトコル(T/TCP)をサポートしているサーバとの間をトランザクション型のトランスポート制御プロトコル(T/TCP)で接続することができ、前記クライアントと前記サーバとの間で通信を行う際に、3ウェイハンドシェイクを行うことなく前記クライアントとの間、及び前記サーバとの間をトランザクション型のトランスポート制御プロトコル(T/TCP)により、それぞれ独立して接続確立できるようにしたことを特徴とする請求項1記載のルータ装置。  The conversion means connects the client supporting the transaction type transport control protocol (T / TCP) in the first communication network with the transaction type transport control protocol (T / TCP). And connecting with a server supporting the transaction type transport control protocol (T / TCP) in the second communication network using the transaction type transport control protocol (T / TCP). When performing communication between the client and the server, a transaction-type transport control protocol (T / TCP) is established between the client and the server without performing a three-way handshake. ) Router device according to claim 1, characterized in that to allow.
JP2001346918A 2001-11-13 2001-11-13 Router device Expired - Fee Related JP3867896B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001346918A JP3867896B2 (en) 2001-11-13 2001-11-13 Router device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001346918A JP3867896B2 (en) 2001-11-13 2001-11-13 Router device

Publications (2)

Publication Number Publication Date
JP2003152811A JP2003152811A (en) 2003-05-23
JP3867896B2 true JP3867896B2 (en) 2007-01-17

Family

ID=19159997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001346918A Expired - Fee Related JP3867896B2 (en) 2001-11-13 2001-11-13 Router device

Country Status (1)

Country Link
JP (1) JP3867896B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100910018B1 (en) 2007-08-29 2009-07-30 포스데이타 주식회사 Method and System for Handshaking in Wireless Communication System

Also Published As

Publication number Publication date
JP2003152811A (en) 2003-05-23

Similar Documents

Publication Publication Date Title
US10237153B2 (en) Packet retransmission method and apparatus
US7965674B2 (en) Sub-segment based transport layer protocol for wireless medium
JP4164365B2 (en) Technology for improving TCP performance over a wireless interface by providing a dual proxy device
JP5038515B2 (en) Data transmission
WO2018205688A1 (en) Method, apparatus and system for data transmission
WO2021063147A1 (en) Packet forwarding method and apparatus for heterogeneous network
WO2012051963A1 (en) Method and device for data transmission
US9571409B2 (en) Maximum transmission unit negotiation method and data terminal
WO2011100911A2 (en) Detection processing method, data transmitter, data receiver and communication system
WO2010028593A1 (en) A transmission method, device and communication equipment for transmission control protocol data packets
US20030158959A1 (en) Establishment of communications using point to point protocols such that duplicate negotiations are avoided
CN102769520A (en) Wireless network congestion control method based on stream control transmission protocol (SCTP)
CN111865940A (en) Transmission optimization method and device
WO2013152614A1 (en) System and method for network access based on application layer data
JP4384676B2 (en) Method for controlling data communication apparatus
US20200084130A1 (en) Transmission control protocol timestamp rewriting
US7286546B2 (en) Method and system for providing reliable and fast communications with mobile entities
CN116074401B (en) Method for realizing transmission layer protocol on programmable exchanger
JP3727198B2 (en) Gateway device
JP3867896B2 (en) Router device
JP3998649B2 (en) Wireless terminal, access point device, data communication system, and data communication method
JP3741421B2 (en) Data communication method and communication terminal device
JP3830352B2 (en) Communication protocol conversion method and apparatus
JP3929452B2 (en) Efficient data transmission / reception method using transport layer in mobile ad hoc network and network device using the method
JP3665309B2 (en) COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND COMMUNICATION METHOD

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20041012

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041015

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060825

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: 20060926

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061005

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: 20101020

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees