JPWO2005020524A1 - セッション中継装置及び中継方法 - Google Patents

セッション中継装置及び中継方法 Download PDF

Info

Publication number
JPWO2005020524A1
JPWO2005020524A1 JP2005513255A JP2005513255A JPWO2005020524A1 JP WO2005020524 A1 JPWO2005020524 A1 JP WO2005020524A1 JP 2005513255 A JP2005513255 A JP 2005513255A JP 2005513255 A JP2005513255 A JP 2005513255A JP WO2005020524 A1 JPWO2005020524 A1 JP WO2005020524A1
Authority
JP
Japan
Prior art keywords
transmission
session
terminal
session relay
data
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
JP2005513255A
Other languages
English (en)
Other versions
JP4269177B2 (ja
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2005020524A1 publication Critical patent/JPWO2005020524A1/ja
Application granted granted Critical
Publication of JP4269177B2 publication Critical patent/JP4269177B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

帯域制御部(123−1)は受信バッファ(122−1)から送信バッファ(124−1)へのデータ移動を制御する。送信再開ACK生成部(126−1)は送信端末に送信再開を指示するACKパケットを生成し、重複ACK生成部(127−1)は送信端末に送信レート減少を指示する重複ACKを生成する。パケット廃棄率計算部(128−1)は受信端末へのセッションでのパケット廃棄率を求め、制御パラメータ計算部(129−1)は送信バッファ内滞留データ量及びパケット廃棄率から受信端末へのセッションの制御パラメータを変更する。

Description

本発明はセッション中継装置及びそれに用いるセッション中継方法に関し、特にTCP(Transmission Control Protocol)セッション間でデータの中継を行う装置に関する。
一般的に、通信アプリケーションにおいては、送信端末と受信端末との間で通信セッション(特に、TCPセッション)を確立し、確立したセッション上で通信を行っている。
TCPセッションの通信帯域は、ネットワークの混雑度や往復伝播遅延時間によって大きく異なる。例えば、30msecの往復伝播遅延がある場合には、送信バッファサイズを64KBとすれば、たとえ物理的な帯域幅が1Gbpsあろうとも、TCPセッションのスループットが計算上約20Mbps程度に制限される。
また、同じく往復伝播遅延が30msecある場合には、たとえ十分な送信バッファを確保できたとしても、ネットワークの廃棄率が0.0001%以下でなければ、すなわちパケット廃棄が26秒に1度の頻度以下でなければ、計算上1Gbpsのスループットを達成することができない。さらに、特定の重要なTCPセッションが帯域を必要としていても、他のTCPセッションとの競合によって、必要な帯域を確保できないという問題もある。
そこで、TCPセッションのスループットを向上させる技術としては、従来、以下のような方式が存在する。第1の方式は、TCPの送信端末に十分な送信バッファを持たせる方式である。この方式では受信確認パケット(ACKパケット)を受信しなくとも、送信することができるデータの最大量を大きくするため、帯域と伝播遅延との積(帯域遅延積)が大きい環境でのスループットを向上させることが可能である。
また、この方式では、通常、オペレーティングシステム(OS;Operating System)におけるTCPのパラメータを変更することで、容易にデータの最大量を大きくすることが可能である。例えば、下記の文献1には、64KB以上の送信バッファを持つことも可能とする方式が開示され、下記の文献2には、送信バッファ量を帯域や伝播遅延等から自動的に変更する方式が開示されている。
V.Jacobson他,“TCP Extensions for High Performance”,Internet Engineering Task Force,Request for comments 1323,May 1992 Tom Dunigan他,“A TCP Tuning Daemon”,in proceedings of SC2002,Nov.2002
第2の方式は、TCPセッションの中継を行う方式である。この方式では送信端末と受信端末との間にセッション中継装置を設置し、送信端末からのセッション中継装置までのセッションと、セッション中継装置から受信端末までのセッションとの間でデータの中継を行う。そのため、それぞれのセッションでは、送信端末と受信端末との間で直接通信を行うセッションよりも帯域遅延積が小さくなるので、スループットを向上することが可能である。この第2の方式の具体的な例が、例えば下記の文献3〜7に開示されている。
特開平11−252179号公報 特開2002−281104号公報 特開平11−112576号公報 特開2002−312261号公報 Ajay Bakre and B.R.Badrinath,“I−TCP;Indirect TCP for Mobile Host”,Department of Computer Science Rutgers University ,DSC−TR−314,1994(http://www.it.iitb.ac.in/it644/papers/i−tcp.pdf)
第3の方式は、TCPのウインドフロー制御アルゴリズムを変更する方式である。TCPセッションの帯域はパケット廃棄率によっても決まるが、これはTCPのウインドフロー制御においてパケット廃棄がない時に送信帯域、すなわち輻輳ウインドサイズを増加させ、パケット廃棄を検出することで輻輳ウインドサイズを減少させる動作を行っている。
そのため、輻輳ウインドサイズの増加量や、減少率といったTCPのパラメータを変更することによって、TCPのスループットを向上させることが可能である。これらの方式では、輻輳ウインドの上げ幅や下げ率といったTCPの制御パラメータを変更することで、スループットの向上を図っている。この第3の方式の具体的例が、例えば下記の文献8、9に開示されている。
Sally Floyd,“High−Speed TCP for Large Congestion Windows”,Internet draft draft−floyd−tcp−highspeed−01.txt,Internet Engineering Task Force,work in progress,2002 Panos Gevros他,“Analysis of a Method for Differentiated TCP Service”,In proc.of GLOBECOM99,pp1699−1708,1999)
また、単一の輻輳検出としては輻輳ウインドを縮小せず、輻輳を複数回検出した際に輻輳インドを縮小する方式が下記の文献10に開示されている。
特開平11−122296号公報
第4の方式は、キューイングによって複数のTCPセッション間で帯域の調整を行うことによって、特定のセッションに対して高いスループットを与える方式である。
この方式では、送信端末と受信端末との間に設置されたセッション中継装置において、セッション毎にキューを備え、各セッションの入力パケットはそれぞれのセッションに対応するキューに格納する。
それぞれのキューからは各セッションに設定された帯域でパケットの出力を行い、送信端末から設定帯域以上の帯域で出力されたパケットはセッション中継装置において廃棄される。この第4の方式の具体例が、例えば、下記の文献11、12に開示されている。
特開平10−126446号公報 特開平10−233802号公報
第5の方式は、送受信端末間に設置されたセッション中継装置においてACK(acknowledgement)パケットの制御を行うことによって、TCPセッション間の帯域の調整を行い、特定のセッションに対して高いスループットを与える方式である。
この方式ではセッション中継装置において、ACKパケットに書かれている広告ウインドサイズ、すなわち受信端末が受取ることのできるデータ量を小さく書換えることで、送信端末から受信端末へと送信されるデータ量を少なくし、帯域の制御を行う。
また、この方式ではACKパケットを遅延させることによって、送信端末からの次のデータ出力を遅らせ、帯域の制御を行っている。この方式としては、下記の文献13に開示されているような、ATM(Asynchronous Transfer Mode)網の輻輳情報によってACKパケットの書換えを行う方式や、下記の文献14に開示されているような、ビデオフレームの周期にしたがってACKパケットを遅延させる方式がある。
特開2001−203697号公報 特開2002−271380号公報
上述した従来のセッション中継装置では、第1の方式を用いる場合、端末の変更が必要になるという問題がある。ユーザ自身がそれぞれの端末のそれぞれのTCPセッションに対して最適なバッファサイズを設定しなければならず、またバッファサイズの自動設定を行う場合にはそのためのアプリケーションプログラムを端末に追加する必要があり、端末の管理コストが大きくなる。
従来のセッション中継装置では、第2の方式を用いる場合、ネットワークのパケット廃棄率が高いと、高いスループットを達成することができないという問題がある。
そのため、従来のセッション中継装置では、セッション中継装置を複数台用いて送信端末と受信端末との間で数多く中継を行ったとしても、ある区間で1箇所だけでもパケット廃棄率が高ければ、高いスループットを達成することができない。
従来のセッション中継装置では、第3の方式を用いる場合、場合によってはネットワークの輻輳を発生させるという問題がある。第3の方式では、通常の制御パラメータを持ったTCPに比べて、同じネットワークの混雑度でも高い帯域でパケットを送信するため、ネットワークの輻輳を発生させる可能性がある。
特に、スループットを大幅に向上させる制御パラメータの設定を行うほど、輻輳を発生させる可能性が高くなる。輻輳を発生させない制御パラメータの範囲はさまざまな条件によって変化し、一意に決定することができないため、スループットの向上を図りながら、ネットワークを輻輳させないことを保証することはできない。また、輻輳を発生させないような穏やかな制御パラメータの設定を行った場合には、スループットの向上は期待できない。
また、従来のセッション中継装置では、第3の方式を用いる場合、明示的にスループットを制御することができないという問題がある。第3の方式では、目標とするスループットに対して制御パラメータを一意に決定することができず、通信先の端末までの伝播遅延時間によらず等しく高いスループット与えることや、特定のセッションに対して特定のスループットを与えること等を実現することができない。
さらに、この第3の方式に上述した第4の方式もしくは第5の方式を組み合わせたとしても、第4の方式もしくは第5の方式ではスループットを低下させる方向の制御のみを行うため、あらゆる状況で目標とするスループットを達成することができる制御パラメータを設定しておかなければならず、この場合、ネットワークを輻輳させてしまう可能性が高い。
第4の方式もしくは第5の方式を単独で用いた場合には、スループットを向上させる方向の制御ができないため、帯域遅延積が大きい場合やネットワークが輻輳している場合に、明示的な帯域制御を行うことができない。
従来のセッション中継装置では、第3の方式及び第4の方式を用いる場合、送信端末とセッション中継装置との間の帯域が低下する場合があるという問題がある。
セッション中継装置と受信端末との間の帯域よりも、送信端末とセッション中継装置との間の帯域が小さい場合、セッション中継装置の受信バッファが頻繁に満たされ、セッション中継装置から送信端末に対して0バイトの広告ウインドサイズが通知される。送信端末では、0バイトの広告ウインドサイズが通知されると、次に1バイト以上の広告ウインドサイズが通知されるまで送信を停止するため、送信端末からの送信帯域が低下する。
従来のセッション中継装置では、この送信端末からの送信帯域が低下するという問題によって、セッション中継装置と受信端末との間でもその影響がでるという問題がある。
送信端末とセッション中継装置との間の帯域よりも、受信端末が処理できるデータの帯域が小さい場合、受信端末の受信バッファが頻繁に満たされ、受信端末からセッション中継装置に対して0バイトの広告ウインドサイズが通知される。セッション中継装置では、0バイトの広告ウインドサイズが通知されると、次に1バイト以上の広告ウインドサイズが通知されるまで送信を停止するため、セッション中継装置からの送信帯域が低下する。
そこで、本発明の目的は上記の問題点を解消し、ネットワークの輻輳状況やセッションの往復伝播遅延時間によらず、輻輳を発生させずにセッションの帯域を最適に制御することができるセッション中継装置及びそれに用いるセッション中継方法を提供することにある。
本発明によるセッション中継装置は、送信端末と受信端末との間でセッションを中継することで前記送信端末と前記受信端末との間の通信帯域を制御するセッション中継装置であって、自装置と前記受信端末との間のセッションのウインドフロー制御を変更する手段を備えている。
本発明による他のセッション中継装置は、送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記送信端末と前記受信端末との間の通信を実現するセッション中継装置であって、
前記送信端末に向けたセッションからのデータを受信する受信制御手段と、前記受信端末に向けたセッションへとデータを送信する送信制御手段と、前記受信制御手段で受信処理したデータを前記送信処理手段へと受け渡す手段と、前記送信制御手段に関する状態を観測する観測手段と、前記送信制御手段の動作を変更する変更手段とを備え、
前記観測手段の観測結果に応じて前記送信制御手段の動作を変更している。
本発明によるセッション中継方法は、送信端末と受信端末との間でセッションを中継することで前記送信端末と前記受信端末との間の通信帯域を制御するセッション中継装置のセッション中継方法であって、前記セッション中継装置側に、前記セッション中継装置と前記受信端末との間のセッションのウインドフロー制御を変更する処理を備えている。
本発明による他のセッション中継方法は、送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記送信端末と前記受信端末との間の通信を実現するセッション中継装置のセッション中継方法であって、前記セッション中継装置側に、前記送信端末に向けたセッションからのデータを受信する受信制御手段で受信処理したデータを、前記受信端末に向けたセッションへとデータを送信する送信処理手段へと受け渡す処理と、前記送信制御手段に関する状態を観測する処理と、前記送信制御手段の動作を変更する処理とを備え、前記観測の結果に応じて前記送信制御手段の動作を変更している。
すなわち、本発明のセッション中継装置は、上記の問題点を解決するために、送信端末や受信端末の変更は行わずに、セッション中継装置の送信バッファサイズやTCP(Transmission Control Protocol)の制御パラメータ等を変更することで、スループットの制御を行っている。
また、本発明のセッション中継装置では、上記の問題点を解決するために、TCPセッションの中継とセッション中継装置の送信バッファサイズやTCPの制御パラメータ等の変更とを組み合わせることによって、伝播遅延時間やネットワークの混雑度に影響されないスループットの制御を行っている。
さらに、本発明のセッション中継装置では、上記の問題点を解決するために、送信端末とのセッションから受取ったデータを、受信端末とのセッションへと受け渡す際に帯域制御を行い、受信端末へと送信を行うセッションでは受取ったデータ量と実際に送信したデータ量との差分を基にそのセッションの制御パラメータを動的に変化させている。
本発明のセッション中継装置では、例えば、受信端末へのセッションの送信バッファ内のデータ量やその平均が一定値以上となれば、制御パラメータをスループットが増加する方向に変更し、データ量やその平均が一定値以下となれば、制御パラメータをスループットが減少する方向に変更することで、動的に制御パラメータの変更を行い、目標とする帯域制御を実施している。
また、本発明のセッション中継装置では、制御パラメータをスループットが向上する方向に変化させてもスループット向上の効果が現れない時、もしくは、廃棄率が一定値以上となって輻輳と判断した時に、制御パラメータの変更を停止したり、スループットが低下する方向への変更を行っている。
本発明のセッション中継装置では、上記の問題点を解決するために、送信端末とセッション中継装置との間のセッションの受信バッファ内の滞留パケット数を監視し、パケット数あるいはその平均値がある一定値以上となれば、同じACKシーケンス番号を持つ重複ACKを送信端末に出力することで、送信端末の送信レートを低下させ、受信バッファが頻繁に満たされることを防いでいる。
また、本発明のセッション中継装置では、受信バッファが満たされた場合でも早期に送信を再開させるために、受信端末から1バイト以上の受信確認を行うACKパケットを受信した時点で、もし一定量以上の受信バッファ空き容量が確保できれば、その時点で送信端末に対して1以上の広告ウインドサイズを持つACKパケットを送信する。
本発明のセッション中継装置では、上記の問題点を解決するために、受信端末から通知される広告ウインドサイズを監視し、広告ウインドサイズの平均がある一定値以上となれば、セッション中継装置から受信端末へのセッションの制御パラメータを変更することで、セッション中継装置からの送信レートを低下させ、受信バッファが頻繁に満たされることを防いでいる。
上記で説明したように、本発明によれば、ネットワークの輻輳状況やセッションの往復伝播遅延時間によらず、輻輳を発生させずにセッションの帯域を最適に制御することができるという効果が得られる。
図1は、本発明の第1の実施形態によるセッション中継装置を含む伝送システムの構成を示すブロック図である。 図2は、本発明の第1の実施形態によるセッション中継装置の構成を示すブロック図である。 図3は、本発明の第1の実施形態によるセッション中継処理を示すフローチャートである。 図4は、本発明の第1の実施形態によるセッション中継処理を示すフローチャートである。 図5は、本発明の第1の実施形態によるACK返送処理を示すフローチャートである。 図6は、本発明の第1の実施形態による輻輳処理を示すフローチャートである。 図7は、本発明の第2の実施形態によるセッション中継装置の構成を示すブロック図である。 図8は、本発明の第3の実施形態によるセッション中継装置の構成を示すブロック図である。 図9は、本発明の第4の実施形態によるセッション中継装置の構成を示すブロック図である。 図10は、本発明の第5の実施形態によるセッション中継装置の構成を示すブロック図である。 図11は、本発明の第6の実施形態によるセッション中継装置の構成を示すブロック図である。 図12は、本発明の第7の実施形態によるセッション中継装置の構成を示すブロック図である。 図13は、本発明の第8の実施形態によるセッション中継装置の構成を示すブロック図である。 図14は、本発明の第8の実施形態におけるセッション中継装置(送信端末)とセッション中継装置(受信端末)との間のデータの流れを示すブロック図である。
次に、本発明の実施の形態について図面を参照して説明する。
(第1の実施形態)
図1は本発明の第1の実施形態によるセッション中継装置を含む伝送システムの構成を示すブロック図である。図1において、セッション中継装置1はセッション識別部11と、セッション中継部12−1〜12−Nと、出力制御部13とから構成され、受信端末2及び送信端末3に接続されている。
まず、送信端末3から受信端末2へデータを送る場合、送信端末3からのデータパケットはセッション中継部12−1の受信セッション処理部(図示せず)で処理され、その結果、ACKパケットが送信端末3へと返信される。
受信セッション処理部で受取られたデータは、セッション中継部12−1の送信セッション処理部(図示せず)へと送られ、ここから受信端末2へとデータパケットが送信される。これに対し、受信端末2が返信したACKパケットはセッション中継部12−1の送信セッション処理部で処理される。
同様に、受信端末2から送信端末3へデータを送る場合、受信端末2からのデータパケットはセッション中継部12−2の受信セッション処理部(図示せず)で処理され、その結果、ACKパケットが受信端末2へと返信される。
受信セッション処理部で受取られたデータはセッション中継部12−2の送信セッション処理部(図示せず)へと送られ、ここから送信端末3へとデータパケットが送信される。これに対し、送信端末3が返信したACKパケットはセッション中継部12−2の送信セッション処理部で処理される。
本実施形態では、送信端末3や受信端末2の変更を行わずに、セッション中継装置1の送信バッファサイズやTCP(Transmission Control Protocol)の制御パラメータ等を変更することで、スループットの制御を行っている。
また、本実施形態では、TCPセッションの中継とセッション中継装置1の送信バッファサイズやTCPの制御パラメータ等の変更とを組み合わせることによって、伝播遅延時間やネットワークの混雑度に影響されないスループットの制御を行っている。
さらに、本発明の実施の形態では、送信端末3とのセッションから受取ったデータを、受信端末2とのセッションへと受け渡す際に帯域制御を行い、受信端末2へと送信を行うセッションでは受取ったデータ量と実際に送信したデータ量との差分を基にそのセッションの制御パラメータを動的に変化させている。
本実施形態では、例えば、受信端末2へのセッションの送信バッファ内のデータ量やその平均が一定値以上となれば、制御パラメータをスループットが増加する方向に変更し、データ量やその平均が一定値以下となれば、制御パラメータをスループットが減少する方向に変更することで、動的に制御パラメータの変更を行い、目標とする帯域制御を実施している。
本実施形態では、制御パラメータをスループットが向上する方向に変化させてもスループット向上の効果が現れない時、もしくは、廃棄率が一定値以上となって輻輳と判断した時に、制御パラメータの変更を停止したり、スループットが低下する方向への変更を行っている。
本実施形態では、送信端末3とセッション中継装置1との間のセッションの受信バッファ内の滞留パケット数を監視し、パケット数あるいはその平均値がある一定値以上となれば、同じACKシーケンス番号を持つ重複ACKを送信端末に出力することで、送信端末3の送信レートを低下させ、受信バッファが頻繁に満たされることを防いでいる。
また、本実施形態では、受信バッファが満たされた場合でも早期に送信を再開させるために、受信端末2から1バイト以上の受信確認を行うACKパケットを受信した時点で、もし一定量以上の受信バッファ空き容量が確保できれば、その時点で送信端末3に対して1以上の広告ウインドサイズを持つACKパケットを送信する。
本実施形態では、受信端末2から通知される広告ウインドサイズを監視し、広告ウインドサイズの平均がある一定値以上となれば、セッション中継装置1から受信端末2へのセッションの制御パラメータを変更することで、セッション中継装置1からの送信レートを低下させ、受信バッファが頻繁に満たされることを防いでいる。
図2は本発明の第1の実施形態によるセッション中継装置の構成を示すブロック図である。図2において、本発明の第1の実施形態によるセッション中継装置は、セッション識別部11と、セッション中継部12−1〜12−Nと、出力制御部13とから構成され、受信端末2及び送信端末3に接続されている。
セッション識別部11は到着したパケットが属するセッションを決定し、セッション中継部12−1〜12−Nはセッション識別部11、送信端末3とのセッションと受信端末2とのセッションとの間で中継を行う。出力制御部13はセッション中継部12−1〜12−N各々から出力されたパケットを出力回線に出力する。
また、セッション中継部12−1〜12−Nはそれぞれ受信セッション処理部121−1〜121−N(受信セッション処理部121−2〜121−Nは図示せず)と、受信バッファ122−1〜122−N(受信バッファ122−2〜122−Nは図示せず)と、帯域制御部123−1〜123−N(帯域制御部123−2〜123−Nは図示せず)と、送信バッファ124−1〜124−N(送信バッファ124−2〜124−Nは図示せず)と、送信セッション処理部125−1〜125−N(送信セッション処理部125−2〜125−Nは図示せず)と、送信再開ACK(acknowledgement)生成部126−1〜126−N(送信再開ACK生成部126−2〜126−Nは図示せず)と、重複ACK生成部127−1〜127−N(重複ACK生成部127−2〜127−Nは図示せず)と、パケット廃棄率計算部128−1〜128−N(パケット廃棄率計算部128−2〜128−Nは図示せず)と、制御パラメータ計算部129−1〜129−N(制御パラメータ計算部129−2〜129−Nは図示せず)と、輻輳通知信号検出部130−1〜130−N(輻輳通知信号検出部130−2〜130−Nは図示せず)とから構成されている。
受信セッション処理部121−1〜121−Nは送信端末3からデータを受信するセッションの処理を行い、受信バッファ122−1〜122−Nは受信したデータを一時蓄えておく。帯域制御部123−1〜123−Nは受信バッファ122−1〜122−Nから送信バッファ124−1〜124−Nへのデータ移動を制御し、送信バッファ124−1〜124−Nは送信するデータを一時蓄えておく。送信セッション処理部125−1〜125−Nは受信端末2へとデータを送信するセッションの処理を行う。
送信再開ACK生成部126−1〜126−Nは送信端末3に対して送信再開を指示するACKパケットを生成し、重複ACK生成部127−1〜127−Nは送信端末3に対して送信レート減少を指示する重複ACKパケットを生成する。
パケット廃棄率計算部128−1〜128−Nは受信端末2へのセッションでのパケット廃棄率を求め、制御パラメータ計算部129−1〜129−Nは送信バッファ124−1〜124−N内の滞留データ量及びパケット廃棄率から受信端末2へのセッションの制御パラメータを変更する。輻輳通知信号検出部130−1〜130−Nはネットワーク(図示せず)の輻輳によって設定帯域を満足できないことを通知する。
TCPセッションでは、通常、送信端末3と受信端末2との間の双方向の通信を行う。そのため、本実施形態においては、一組の送信端末3及び受信端末2に対して2つのセッション中継部12−1〜12−Nを使用するものとし、夫々の方向へのデータ通信に対しては夫々対応するセッション中継部12−1〜12−Nを使用する。
したがって、セッション中継部12−1〜12−Nは複数の送信端末3及び受信端末2の組に対して夫々2つずつ用意され、セッション中継部12−1〜12−N各々は夫々の送信端末3からのセッションから、対応する受信端末2へのセッションへと、もしくは夫々の受信端末2からのセッションから、対応する送信端末3へのセッションへと、データを中継する処理を行う。
尚、TCPセッションにおいては、ある方向のデータパケットとその反対方向へのACKパケットが1つのパケット上に統合される場合があるが(ACKのpiggy back)、本実施形態では説明を簡単化するために、このような動作に関する説明を省略する。
図3及び図4は本発明の第1の実施形態によるセッション中継処理を示すフローチャートであり、図5は本発明の第1の実施形態によるACK返送処理を示すフローチャートであり、図6は本発明の第1の実施形態による輻輳処理を示すフローチャートである。これら図2〜図6を参照して本発明の第1の実施形態によるセッション中継装置1の動作について説明する。
セッション中継装置1にパケットが入力されると(図3ステップS1)、セッション識別部11はパケットのヘッダを参照し、送信元IP(Internet Protocol)アドレス、送信先IPアドレス、第四層プロトコル番号、送信元第四層ポート番号、送信先第四層ポート番号等に基づいて、入力したパケットが属するセッションを決定する(図3ステップS2)。
セッション識別部11は入力したパケットがデータパケットであれば(図3ステップS3)、対応するセッション中継部12−1〜12−Nの受信セッション処理部121−1〜121−Nへ渡し、入力したパケットがACKパケットであれば(図3ステップS3)、対応するセッション中継部12−1〜12−Nの送信セッション処理部125−1〜125−Nへ渡す。
受信セッション処理部121−1〜121−Nでは入力したデータパケットが正しいシーケンス番号を持つものであれば(図3ステップS4)、パケットから受信データを再構築して受信バッファ122−1〜122−Nへ格納すると同時に(図3ステップS5)、送信端末3に対してデータの受信確認及び広告ウインドサイズを通知するACKパケットを返送する(図3ステップS6)。
受信セッション処理部121−1〜121−Nでは入力したデータパケットが正しいシーケンス番号を持つものでなければ(図3ステップS4)、重複ACKを生成することで送信端末3に対してパケットの再送を促す(図3ステップS8)。
尚、この処理に関しては、TCP/IP Illustrated,Volume 1:The Protocols,Addison−Wesley,1994,ISBN0−201−63346−9(以下、文献1とする)に詳しく記載されているので、その説明については詳述しない。
帯域制御部123−1〜123−Nは受信バッファ122−1〜122−Nから送信バッファ124−1〜124−Nへとデータの移動を制御する(図3ステップS7)。このデータ移動の制御は、例えば、各セッションに設定された目標帯域にしたがってデータ移動の帯域を制御したり、または全ての帯域制御部123−1〜123−Nが等しい帯域もしくは予め設定した帯域割合でデータ移動を行うように、帯域制御部123−1〜123−N間で巡回的にデータ移動のスケジューリングを行ったりしている。この場合、帯域制御部123−1〜123−Nは受信バッファ122−1〜122−Nにデータがなければ、もしくは送信バッファ124−1〜124−nに空き容量がなければ、データの移動を一時停止する。
送信セッション処理部125−1〜125−Nでは、自ら計算した輻輳ウインドサイズもしくは受信端末2から通知された広告ウインドサイズのうちのどちらか小さい方のウインドサイズにしたがって、送信バッファ124−1〜124−Nからのデータの送信処理を行う(図4ステップS9)。
また、送信セッション処理部125−1〜125−Nでは受信端末2からACKパケットを受信した際、そのACKパケットが重複ACKであれば(図4ステップS10)、データの再送処理を行うと同時に(図4ステップS11)、輻輳ウインドサイズの変更を行う(図4ステップS12)。
送信セッション処理部125−1〜125−Nでは受信端末2からのACKパケットが重複ACKでなければ(図4ステップS10)、受信が確認されたデータを送信バッファ124−1〜124−Nから消去し(図4ステップS13)、輻輳ウインドサイズの変更を行う(図4ステップS14)。尚、この処理に関しても文献1に詳しく記載されているので、その説明については詳述しない。
受信セッション処理部121−1〜121−NはACKパケットを送信端末3に返送する際、受信バッファが満たされていると(図5ステップS21)、0バイトの広告ウインドサイズを広告するため(図5ステップS22)、送信端末3はこのACKパケットを受けて送信を停止してしまう。
そこで、本実施形態によるセッション中継装置1では、受信バッファ122−1〜122−Nの空き容量が一定以下となると(図5ステップS23)、重複ACK生成部127−1〜127−Nによって送信端末3が輻輳ウインドを引き下げるだけに十分な数(一般的に「3」)の重複ACKパケットをすぐさま、もしくはパケットを受信する度に、送信端末3に送信し(図5ステップS24)、送信端末3のデータ出力レートを引き下げさせる。
また、本発明によるセッション中継装置1では0バイトの広告ウインドサイズが広告された場合でも早期に送信端末3がデータ送信を再開することができるように、受信バッファ122−1〜122−Nに一定値(MSS;Maximum Segment Size)以上の空き容量ができると(図5ステップS25,S26)、すぐにACKパケットを生成して送信端末3に送信再開を促す(図5ステップS27)。
そのため、送信再開ACK生成部126−1〜126−Nでは、帯域制御部123−1〜123−Nによって受信バッファ122−1〜122−Nから送信バッファ124−1〜124−Nにデータが移動された際、受信バッファ122−1〜122−Nの空き容量を調べ、これがもし一定値以上となっていれば、ACKパケットを生成して送信端末3に送信する。
このセッション中継装置1から受信端末2へのセッションの帯域は、送信セッション処理部125−1〜125−Nで計算される輻輳ウインドサイズに依存し、輻輳ウインドサイズが大きいほど帯域が大きくなる。
輻輳ウインドサイズはTCPのウインドフロー制御アルゴリズムによって計算され、パケット廃棄が発生せずに正しくパケットが受信された際に線形に輻輳ウインドサイズを増加させ(図6ステップS31,S32)、パケット廃棄が発生した時には輻輳ウインドサイズに1以下の定数を乗じて減少させる(図6ステップS31,S33)。
本実施形態では、前者を輻輳ウインド上げ幅、後者を輻輳ウインド下げ率と表記することとし、本実施形態ではこれらの制御パラメータを動的に変更することで受信端末2へのセッションの帯域が設定帯域と等しくなるように制御する。
帯域制御部123−1〜123−Nから送信バッファ124−1〜124−Nへは設定帯域でデータの移動を行うため、送信バッファ124−1〜124−N内の滞留データ量が増加するということは受信端末2へのセッションの帯域が設定帯域よりも小さいことを意味し、逆に滞留データ量が減少するということは受信端末2へのセッションの帯域が設定帯域よりも大きいことを意味する。
したがって、本実施形態では、送信バッファ124−1〜124−N内の滞留データ量が予め定められた一定値A以上になれば(図6ステップS34)、輻輳ウインド上げ幅を大きくするか、もしくは輻輳ウインド下げ率を小さくするか、もしくはその両方によって受信端末へのセッションの帯域を増加させる(図6ステップS35)。
また、本実施形態では、送信バッファ124−1〜124−N内の滞留データ量が予め定められた別の一定値B以下になれば(図6ステップS34)、輻輳ウインド上げ幅を小さくするか、もしくは輻輳ウインド下げ率を大きくするか、もしくはその両方によって受信端末2へのセッションの帯域を減少させる(図6ステップS36)。
受信端末2との間のネットワークに輻輳が発生し(図6ステップS37)、制御パラメータをどのように変更しても設定帯域を満足することができないと判断した時(図6ステップS37)、すなわちパケット廃棄率計算部128−1〜128−Nで計算した受信端末2へのセッション上のパケット廃棄率が一定値以上となるか、もしくは輻輳ウインド上げ幅が一定値以上となるか、もしくは輻輳ウインド下げ幅が一定値以下となるか、もしくは再送したパケットが廃棄されて再送がタイムアウトした場合には、輻輳ウインド上げ幅を一定値A以上とはせず、輻輳ウインド下げ率を一定値B以下とはしない(図6ステップS38)。
このような場合、帯域制御部123−1〜123−Nは、設定帯域の再設定や、経路の再設定を期待して、輻輳通知信号生成部130−1〜130−Nから本セッション中継装置管理者や管理システム等に輻輳を通知する(図6ステップS39)。
(第2の実施形態)
図7は本発明の第2の実施形態によるセッション中継装置の構成を示すブロック図である。図7において、本発明の第2の実施形態によるセッション中継装置のセッション中継部14−1〜14−Nはそれぞれ、平均キュー長計算部141−1〜141−N,142−1〜142−N(平均キュー長計算部141−2〜141−N,142−2〜142−Nは図示せず)を付加した以外は図2に示す本発明の第1の実施形態と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第1の実施形態と同様である。
平均キュー長計算部141−1〜141−Nは受信バッファ122−1〜122−N内の平均滞留データ量を計算し、平均キュー長計算部142−1〜142−Nは送信バッファ124−1〜124−N内の平均滞留データ量を計算する。
この図7を参照して本発明の第2の実施形態によるセッション中継装置の動作について説明する。以下、本発明の第2の実施形態における本発明の第1の実施形態との相違点のみについて説明する。
本発明の第1の実施形態においては、重複ACK生成部127−1〜127−Nが受信バッファ122−1〜122−Nの空き容量を基に重複ACK生成の判断を行っているが、本実施形態においては平均キュー長計算部141−1〜141−Nで計算された平均受信バッファ内滞留データ量を基に重複ACK生成の判断を行っている。
また、本発明の第1の実施形態においては、制御パラメータ計算部129−1〜129−Nが送信バッファ124−1〜124−N内の滞留データ量を基に制御パラメータの更新を行っているが、本実施形態においては平均キュー長計算部142−1〜142−Nで計算された平均送信バッファ内滞留データ量を基に制御パラメータの更新を行っている。
(第3の実施形態)
図8は本発明の第3の実施形態によるセッション中継装置の構成を示すブロック図である。図8において、本発明の第3の実施形態によるセッション中継装置のセッション中継部15−1〜15−Nはそれぞれ、送信経過時間計算部151−1〜151−N(送信経過時間計算部151−2〜151−Nは図示せず)を付加した以外は図2に示す本発明の第1の実施形態と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第1の実施形態と同様である。
送信経過時間計算部151−1〜151−Nは送信セッション処理部125−1〜125−Nにおいてデータ送信を開始してからの経過時間を計算し、その計算値を制御パラメータ計算部129−1〜129−Nに渡している。
この図8を参照して本発明の第3の実施形態によるセッション中継装置の動作について説明する。以下、本発明の第3の実施形態における本発明の第1の実施形態との相違点のみについて説明する。
本発明の第1の実施形態においては、送信セッション処理部125−1〜125−Nで使用する制御パラメータが送信バッファ内滞留データ量及びパケット廃棄率で決定されているが、本実施形態においてはデータ送信を開始してからの経過時間をも用いる。
すなわち、受信端末2へのセッションの帯域を増加させる際には、データ開始からの経過時間が短ければ、輻輳ウインドの下げ率よりも上げ幅を優先して変更することで、短いデータに対する帯域制御の追従性を向上させ、データ開始からの経過時間が長ければ、輻輳ウインドの上げ幅よりも下げ率を優先して変更することで、帯域制御の安定化を図っている。
また、受信端末2へのセッションの帯域を減少させる際には、データ開始からの経過時間が短ければ、輻輳ウインドの上げ幅よりも下げ率を優先して変更することで、短いデータに対する帯域制御の追従性を向上させ、データ開始からの経過時間が長ければ、輻輳ウインドの下げ率よりも上げ幅を優先して変更することで、帯域制御の安定化を図っている。
尚、送信経過時間計算部151−1〜151−Nで計算される送信経過時間は新たな通信を開始する際、すなわちTCPセッションの輻輳ウインドがスロースタート動作する際に0へとリセットされる。
(第4の実施形態)
図9は本発明の第4の実施形態によるセッション中継装置の構成を示すブロック図である。図9において、本発明の第4の実施形態によるセッション中継装置のセッション中継部16−1〜16−Nはそれぞれ、送信帯域計算部161−1〜161−N(送信帯域計算部161−2〜161−Nは図示せず)を付加し、帯域制御部123−1〜123−Nの代わりにデータ転送部162−1〜162−N(データ転送部162−2〜162−Nは図示せず)を設けた以外は図2に示す本発明の第1の実施形態と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第1の実施形態と同様である。
送信帯域計算部161−1〜161−Nはセッション中継装置1から受信端末2へのデータ送信帯域を計測し、その計測値を制御パラメータ計算部129−1〜129−Nに渡している。
この図9を参照して本発明の第4の実施形態によるセッション中継装置の動作について説明する。以下、本発明の第4の実施形態における本発明の第1の実施形態との相違点のみについて説明する。
本発明の第1の実施形態においては、受信バッファ122−1〜122−Nから送信バッファ124−1〜124−Nへのデータ転送が帯域制御部123−1〜123−Nにて制御されているが、本実施形態においては、受信バッファ122−1〜122−Nに格納されたデータをデータ転送部162−1〜162−Nにてすぐさま送信バッファ124−1〜124−Nに転送している。
そのため、本実施形態ではデータ転送による帯域制御を行わず、送信帯域計算部161−1〜161−Nにて計算した受信端末2へのセッションの送信帯域を基にそのセッションの制御パラメータを変更することで帯域制御を行っている。
すなわち、本実施形態では、送信帯域計算部161−1〜161−Nにてセッション中継装置1から受信端末2へのセッションの帯域を計算し、この帯域が目標帯域や全セッションの平均帯域(重み付き)よりも小さければ、輻輳ウインド上げ幅を大きくするか、もしくは輻輳ウインド下げ率を小さくするか、もしくはその両方によって受信端末2へのセッションの帯域を増加させている。
さもなければ、本実施形態では、輻輳ウインド上げ幅を小さくするか、もしくは輻輳ウインド下げ率を大きくするか、もしくはその両方によって受信端末2へのセッションの帯域を減少させている。送信帯域計算部161−1〜161−Nでは受信端末2からのACKパケットを観測し、単位時間当りに受信確認されたバイト数を基に送信帯域を計算している。
また、本実施形態では、帯域制御部123−1〜123−Nではなく、データ転送部162−1〜162−Nが受信バッファ122−1〜122−Nから送信バッファ124−1〜124−Nにデータを移動した際、受信バッファ122−1〜122−Nの空き容量を調べて送信再開ACKを生成している。
(第5の実施形態)
図10は本発明の第5の実施形態によるセッション中継装置の構成を示すブロック図である。図10おいて、本発明の第5の実施形態によるセッション中継装置のセッション中継部17−1〜17−Nはそれぞれ、受信バッファ122−1〜122−Nとデータ転送部162−1〜162−Nとを除き、受信セッション処理部121−1〜121−Nが送信バッファ124−1〜124−Nに直接データを書込むようにした以外は図9に示す本発明の第4の実施形態と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第4の実施形態と同様である。
この図10を参照して本発明の第5の実施形態によるセッション中継装置の動作について説明する。以下、本発明の第5の実施形態における本発明の第4の実施形態との相違点のみについて説明する。
本発明の第4の実施形態においては、受信セッション処理部121−1〜121−Nにおいて受取られたデータは受信バッファ122−1〜122−Nとデータ転送部162−1〜162−Nとを経由して送信バッファ124−1〜124−Nへと書込まれるが、本実施形態においては、受信セッション処理部121−1〜121−Nにおいて受取られたデータを送信バッファ124−1〜124−Nに直接書込んでいる。
受信バッファ122−1〜122−Nから送信バッファ124−1〜124−Nへのデータ転送はデータ転送部162−1〜162−Nにて制御されているが、本実施形態においては受信セッション処理部121−1〜121−Nにおいて受取られたデータをすぐさま送信バッファ124−1〜124−Nに転送している。
そのため、本実施形態では、本発明の第4の実施形態と同様に、送信帯域計算部161−1〜161−Nにおいて計算した受信端末2へのセッションの帯域を基にそのセッションの制御パラメータを変更することで帯域制御を行っている。
また、本実施形態では、受信セッション処理部121−1〜21−Nから直接送信バッファ124−1〜124−Nへとデータを書込んでいるため、送信端末3に通知する広告ウインドサイズには送信バッファ124−1〜124−Nの空き容量を広告する。さらに、本実施形態では、重複ACK生成部127−1〜127−Nが送信バッファ124−1〜124−Nの空き容量にしたがって重複ACKを生成している。
さらにまた、本実施形態では、受信端末2へのセッションからACKパケットを受取った際に、送信端末3に対して送信再開ACKを生成する。すなわち、本実施形態では、送信バッファ124−1〜124−Nが満たされており、送信端末3に対して0バイトの広告ウインドが広告されている時、セッション中継装置1が受信端末2から受信確認のACKを受取れば、このACKによって確認されたデータが送信バッファ124−1〜124−Nから取り除かれ、送信バッファ124−1〜124−Nに空き容量ができることとなる。
この時、送信セッション処理部125−1〜125−Nは送信再開ACK生成部126−1〜126−Nに対してバッファ容量確認の信号を送り、送信再開ACK生成部126−1〜126−Nではこの信号を受けて送信バッファ容量を調べ、もし送信バッファ124−1〜124−Nの空き容量が一定値以上となっていれば、送信再開のためのACKを生成して送信端末3に通知する。
これに対し、本発明の第4の実施形態では、帯域制御部123−1〜123−Nではなく、データ転送部162−1〜162−Nが受信バッファ122−1〜122−Nから送信バッファ124−1〜124−Nにデータを移動した際、受信バッファ122−1〜122−Nの空き容量を調べて送信再開ACKを生成している。
(第6の実施形態)
図11は本発明の第6の実施形態によるセッション中継装置の構成を示すブロック図である。図11において、本発明の第6の実施形態によるセッション中継装置のセッション部18−1〜18−Nは、平均広告ウインド計算部181−1〜181−N(平均広告ウインド計算部181−2〜181−Nは図示せず)を付加した以外は図2に示す本発明の第1の実施形態と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第1の実施形態と同様である。
この図11を参照して本発明の第6の実施形態によるセッション中継装置の動作について説明する。以下、本発明の第6の実施形態における本発明の第1の実施形態との相違点のみについて説明する。
本実施形態においては、制御パラメータ計算部129−1〜129−Nにおいて受信端末2へのセッションの制御パラメータを計算する際、受信端末2から通知される広告ウインドサイズを用いている。すなわち、本実施形態においては、平均広告ウインド計算部181−1〜181−Nにおいて受信端末2から通知される広告ウインドサイズの平均を随時計算し、もし広告ウインドサイズの平均が予め定めた閾値以上になれば、輻輳ウインド上げ幅を小さくするか、もしくは輻輳ウインド下げ率を大きくするか、もしくはその両方によって受信端末2へのセッションの帯域を減少させている。
(第7の実施形態)
図12は本発明の第7の実施形態によるセッション中継装置の構成を示すブロック図である。図12において、本発明の第7の実施形態によるセッション中継装置のセッション中継部19−1〜19−Nは、送信帯域計算部161−1〜161−Nの代わりに平均広告ウインド計算部181−〜181−Nを設けた以外は図9に示す本発明の第4の実施形態と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第4の実施形態と同様である。
上述した本発明の第1から第6の実施形態においては、セッション中継装置1が設定帯域にしたがって送信端末3と受信端末2との間の帯域を制御しているが、本実施形態においては設定帯域を設定せず、受信端末2が受信可能な帯域を目標として送信端末3と受信端末2との間の帯域制御を行っている。
この図12を参照して本発明の第7の実施形態によるセッション中継装置の動作について説明する。以下、本発明の第7の実施形態における本発明の第4の実施形態との相違点のみについて説明する。
本実施形態においては、制御パラメータ計算部129−1〜129−Nにおいて受信端末2へのセッションの制御パラメータを計算する際、受信端末2へのセッションの帯域によって制御パラメータの変更を行うのではなく、受信端末2から通知される広告ウインドサイズによって制御パラメータの変更を行っている。
すなわち、本実施形態においては、平均広告ウインド計算部181−1〜181−Nにおいて受信端末2から通知される広告ウインドサイズの平均を随時計算し、もし広告ウインドサイズの平均が予め定めた閾値以上になれば、輻輳ウインド上げ幅を小さくするか、もしくは輻輳ウインド下げ率を大きくするか、もしくはその両方によって受信端末2へのセッションの帯域を減少させている。
また、本実施形態においては、広告ウインドサイズの平均が予め定めた別の閾値以下になれば、輻輳ウインド上げ幅を大きくするか、もしくは輻輳ウインド下げ率を小さくするか、もしくはその両方によって受信端末2へのセッションの帯域を増加させている。
(第8の実施形態)
図13は本発明の第8の実施形態によるセッション中継装置の構成を示すブロック図である。図13において、本実施形態によるセッション中継装置はセッション識別部11と、セッション送信部41−1〜41−Nと、セッション受信部42−1〜42−Nと、出力制御部13とから構成されている。
セッション識別部11は到着したパケットが属するセッションを決定し、セッション送信部41−1〜41−Nは送信端末内で受信端末へのセッションのデータ送信処理を行い、セッション受信部42−1〜42−Nは送信端末内で受信端末へのセッションからのデータ受信処理を行う。出力制御部13はセッション送信部41−1〜41−N及びセッション受信部42−1〜42−Nから出力されたパケットを出力回線に出力する。
また、セッション送信部41−1〜41−Nは送信データ生成部417−1〜417−N(送信データ生成部417−2〜417−Nは図示せず)と、送信バッファ411−1〜411−N(送信バッファ411−2〜411−Nは図示せず)と、送信セッション処理部412−1〜412−N(送信セッション処理部412−2〜412−Nは図示せず)と、送信帯域計算部416−1〜416−N(送信帯域計算部416−2〜416−Nは図示せず)と、パケット廃棄率計算部413−1〜413−N(パケット廃棄率計算部413−2〜413−Nは図示せず)と、制御パラメータ計算部414−1〜414−N(制御パラメータ計算部414−2〜414−Nは図示せず)と、輻輳通知信号検出部415−1〜415−N(輻輳通知信号検出部415−2〜415−Nは図示せず)とから構成されている。
送信データ生成部417−1〜417−Nは送信端末内のアプリケーションプログラムからの送信データを送信バッファ411−1〜411−Nへと格納し、送信バッファ411−1〜411−Nは送信するデータを一時蓄えておく。送信セッション処理部412−1〜412−Nは受信端末へとデータを送信するセッションの処理を行う。
送信帯域計算部416−1〜416−Nは受信端末へのデータ送信帯域を計測し、パケット廃棄率計算部413−1〜413−Nは受信端末へのセッションでのパケット廃棄率を求め、制御パラメータ計算部414−1〜414−Nは送信帯域及びパケット廃棄率から受信端末へのセッションの制御パラメータを変更する。輻輳通知信号検出部415−1〜415−Nはネットワークの輻輳によって設定帯域を満足することができないことを通知する。
セッション受信部42−1〜42−Nは受信セッション処理部421−1〜421−N(受信セッション処理部421−2〜421−Nは図示せず)と、受信バッファ422−1〜422−N(受信バッファ422−2〜422−Nは図示せず)と、受信データ処理部425−1〜425−N(受信データ処理部425−2〜425−Nは図示せず)と、送信再開ACK生成部423−1〜423−N(送信再開ACK生成部423−2〜423−Nは図示せず)と、重複ACK生成部424−1〜424−N(重複ACK生成部424−2〜424−Nは図示せず)とから構成されている。
受信セッション処理部421−1〜421−Nは受信端末からのデータに対して受信処理を行い、受信バッファ422−1〜422−Nは受信したデータを一時蓄えておく。受信データ処理部425−1〜425−Nは受信バッファ422−1〜422−Nからアプリケーションプログラムへ受信データを受渡す。
送信再開ACK生成部423−1〜423−Nは受信端末に対して送信再開を指示するACKパケットを生成し、重複ACK生成部424−1〜424−Nは受信端末に対して送信レート減少を指示する重複ACKを生成する。
TCPセッションでは、通常、送信端末と受信端末との間の双方向の通信を行っているため、本実施形態においては、一組の送信端末及び受信端末に対してそれぞれ1つのセッション送信部及びセッション受信部を使用する。そのため、本実施形態においては、セッション中継装置が送信端末あるいは受信端末を兼ねる。
図14は本発明の第8の実施形態におけるセッション中継装置(送信端末)とセッション中継装置(受信端末)との間のデータの流れを示すブロック図である。図14において、セッション中継装置(送信端末)4−2からセッション中継装置(受信端末)4−1へデータを送る場合、セッション中継装置(送信端末)4−2のセッション送信部41−1−2から出力されたデータパケットはセッション中継装置(受信端末)4−1のセッション受信部42−1−1で受信処理が行われる。その結果、生成されたACKパケットはセッション中継装置(送信端末)4−2のセッション送信部41−1−2へと返送される。
また、セッション中継装置(受信端末)4−1からセッション中継装置(送信端末)4−2へデータを送る場合、セッション中継装置(受信端末)4−1のセッション送信部41−1−1から出力されたデータパケットはセッション中継装置(送信端末)4−2のセッション受信部42−1−2で受信処理が行われる。その結果、生成されたACKパケットはセッション中継装置(受信端末)4−1のセッション送信部41−1−1へと返送される。
次に、図13を参照して本発明の第8の実施形態によるセッション中継装置の動作について説明する。まず、セッション中継装置(送信端末)4−2からセッション中継装置(受信端末)4−1へのデータ転送について説明する。
アプリケーションプログラムが出力した送信データは、送信データ生成部417−1〜417−Nによって送信バッファ411−1〜411−Nへと書込まれる。送信セッション処理部412−1〜412−Nは送信バッファ411−1〜411−Nに書込まれたデータのセッション中継装置(受信端末)4−1へのデータ送信処理を行う。このデータ送信処理は上述した本発明の第1の実施形態によるデータ送信処理と同様であるため、その説明については省略する。また、本実施形態におけるセッション中継装置(送信端末)4−2へのセッションの制御パラメータの変更に関しては、上述した本発明の第4の実施形態と同様であるため、その説明も省略する。
続いて、セッション中継装置(受信端末)4−1からセッション中継装置(送信端末)4−2へのデータ転送について説明する。
受信データ処理部425−1〜425−Nはセッション中継装置(受信端末)4−1から送信されたデータの受信処理を行い、正しく受取ることができたデータを受信バッファ422−1〜422−Nに格納する。このデータ受信処理は、上述した本発明の第1の実施形態によるデータ受信処理と同様であるので、その説明は省略する。
受信バッファ422−1〜422−Nに書込まれたデータは、受信データ処理部425−1〜425−Nによって取出されてアプリケーションプログラムへと渡される。
重複ACK生成部424−1〜424−Nは、上述した本発明の第1の実施形態と同様に、受信バッファ422−1〜422−Nの空き容量が一定以下となると、送信端末が輻輳ウインドを引き下げるだけに十分な数(一般的に「3」)の重複ACKパケットを送信端末に送信し、送信端末のデータ出力レートを引き下げさせる。
また、送信再開ACK生成部423−1〜423−Nは受信データ処理部425−1〜425−Nによって受信バッファ422−1〜422−Nからアプリケーションプログラムへとデータを移動した際、受信バッファ422−1〜422−Nの空き容量を調べ、これがもし一定値以上となっていれば、ACKパケットを生成して送信端末に送信する。
このように、本発明では、送信端末3と受信端末2との間でセッションを中継することによって、送信端末3と受信端末2との間の通信帯域を制御するセッション中継装置1において、セッション中継装置1と受信端末2との間のセッションのウインドフロー制御を変更することで、この間のスループットを向上し、ネットワークの混雑状況によらない帯域制御を実現することができる。
また、本発明では、セッション中継装置1において、セッション中継装置1と受信端末2との間のセッションの送信バッファ内滞留パケット数を監視し、パケット数あるいはパケット数の平均値によって動的に制御パラメータの変更を行うことで、制御パラメータを常に適切な値に保つことができる。
さらに、本発明では、送信端末3とセッション中継装置1との間のセッションの受信バッファ内滞留パケット数を監視し、パケット数あるいはその平均値がある一定値以上となれば、同じACKシーケンス番号を持つ重複ACKを送信端末3に出力することで、送信端末3の送信レートを低下させ、受信バッファが頻繁に満たされるのを防ぐことができる。
さらにまた、本発明では、受信端末2から1バイト以上の受信確認を行うACKパケットを受信した時点で、もし一定量以上の受信バッファ空き容量を確保することができれば、その時点で送信端末3に対して1以上の広告ウインドサイズを持つACKパケットを送信することで、送信端末3とセッション中継装置1との間のセッションの受信バッファが満たされた場合でも早期に送信を再開させることができる。
本発明では、受信端末2から通知される広告ウインドサイズを監視し、広告ウインドサイズの平均がある一定値以上となれば、セッション中継装置1から受信端末2へのセッションの制御パラメータを変更することで、セッション中継装置1からの送信レートを低下させ、セッション中継装置1から受信端末2へのセッションの受信バッファが頻繁に満たされるのを防ぐことができる。

Claims (33)

  1. 送信端末と受信端末との間でセッションを中継することで前記送信端末と前記受信端末との間の通信帯域を制御するセッション中継装置において、
    自装置と前記受信端末との間のセッションのウインドフロー制御を変更する手段を有することを特徴とするセッション中継装置。
  2. 自装置と前記受信端末との間のセッションの送信バッファ内滞留パケット数を監視する手段と、
    少なくとも前記送信バッファ内滞留パケット数を基に動的に前記セッションの制御パラメータの変更を行う手段とをさらに備えた請求項1記載のセッション中継装置。
  3. 自装置と前記送信端末との間のセッションの受信バッファ内滞留パケット数を監視する手段と、
    前記受信バッファ内滞留パケット数及びその平均値のいずれかが予め設定した一定値以上となった時に前記送信端末に対して送信レート減少を指示する信号を出力する手段とをさらに備えた請求項1記載のセッション中継装置。
  4. 前記受信端末から1バイト以上の受信確認を行う信号を受信する際に前記受信バッファの空き容量を予め設定された一定量以上確保可能な時に前記送信端末に対して1以上の広告ウインドサイズを広告するための信号を送信する手段をさらに備えた請求項1記載のセッション中継装置。
  5. 前記受信端末から通知される広告ウインドサイズを監視する手段と、
    前記広告ウインドサイズの平均が予め設定した一定値以上となった時に自装置から前記受信端末へのセッションの制御パラメータを変更する手段とをさらに備えた請求項1記載のセッション中継装置。
  6. 送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記送信端末と前記受信端末との間の通信を実現するセッション中継装置において、
    前記送信端末に向けたセッションからのデータを受信する受信制御手段と、
    前記受信端末に向けたセッションへとデータを送信する送信制御手段と、
    前記受信制御手段で受信処理したデータを前記送信処理手段へと受け渡す手段と、
    前記送信制御手段に関する状態を観測する観測手段と、前記送信制御手段の動作を変更する変更手段とを有し、
    前記観測手段の観測結果に応じて前記送信制御手段の動作を変更することを特徴とするセッション中継装置。
  7. 前記観測手段は、少なくとも送信データ量、送信帯域、遅延、パケット廃棄率、再送タイムアウト頻度、送信バッファ内滞留データ量のいずれかを前記送信制御手段に関する状態として観測する請求項5記載のセッション中継装置。
  8. 前記受信制御手段と前記送信制御手段との間で予め設定した少なくとも目標帯域及び帯域分配割合の設定値に応じて前記データの受け渡しを制御し、前記変更手段が前記送信制御手段において送信が完了していないデータ量に応じて前記送信制御手段の動作を変更する手段をさらに備えた請求項6記載のセッション中継装置。
  9. 前記送信制御手段において送信が完了していないデータ量及びその平均のいずれかが大きくなった時に前記送信制御手段からの送信帯域が増加する方向に前記送信制御手段の制御パラメータを変更し、前記データ量及びその平均のいずれかが小さくなった時に前記送信制御手段からの送信帯域が減少する方向に前記送信制御手段の制御パラメータを変更する手段をさらに備えた請求項8記載のセッション中継装置。
  10. 少なくとも予め設定した目標帯域及び帯域分配割合を含む設定値と前記送信制御手段において観測した値との比較結果に応じて前記送信制御手段の動作及び制御パラメータの少なくとも一方を変更する手段をさらに備えた請求項6記載のセッション中継装置。
  11. 前記設定値よりも前記観測値が小さい時に前記送信制御手段からの送信帯域が増加する方向に前記送信制御手段の制御パラメータを変更し、前記設定値よりも前記観測値が大きい時に前記送信制御部からの送信帯域が減少する方向に前記送信制御手段の制御パラメータを変更する手段をさらに備えた請求項10記載のセッション中継装置。
  12. 前記受信制御手段が受信したパケットを前記送信制御手段内の送信バッファへと直接書込むことで前記セッション間の中継を行う手段をさらに備えた請求項9記載のセッション中継装置。
  13. 前記送信制御手段において観測した送信帯域が閾値以下となった時及び前記送信制御手段において観測された遅延、パケット廃棄率、再送タイムアウト頻度、送信バッファ内滞留データ量が予め設定した閾値以上となった時のいずれかに前記送信制御手段からの送信帯域が減少する方向に前記送信制御手段の制御パラメータを変更する手段をさらに備えた請求項6記載のセッション中継装置。
  14. 前記送信制御手段において観測した送信帯域が予め設定された閾値以下となった時及び前記送信制御手段において観測された遅延、パケット廃棄率、再送タイムアウト頻度、送信バッファ内滞留データ量が予め設定された閾値以上となった時のいずれかに輻輳を外部に通知する手段をさらに備えた請求項6記載のセッション中継装置。
  15. 前記制御パラメータの変更履歴及び前記制御パラメータによる送信帯域の変化の履歴を参照し、前記制御パラメータの変更による送信帯域変化の効果に応じて前記制御パラメータの変更の停止及び前記制御パラメータの変更幅の変化のいずれかを行わせる手段をさらに備えた請求項9記載のセッション中継装置。
  16. 前記受信端末から通知される広告ウインドサイズ及びその平均のいずれかを観測する手段をさらに備え、その観測値に応じて前記送信制御手段の動作を変更する請求項6記載のセッション中継装置。
  17. 前記観測値が小さくなった時に前記送信制御手段からの送信帯域が増加する方向に前記送信制御手段の制御パラメータを変更し、前記観測値が大きくなった時に前記送信制御手段からの送信帯域が減少する方向に前記送信制御手段の制御パラメータを変更する手段をさらに備えた請求項16記載のセッション中継装置。
  18. 前記セッション上で通信を開始してからの経過時間を計算する手段をさらに備え、前記経過時間に応じて前記送信制御手段の動作を変更する手段をさらに備えた請求項6記載のセッション中継装置。
  19. 前記経過時間が短い時に前記送信制御手段からの送信帯域が急激に変化するように前記送信制御手段の制御パラメータを変更し、前記経過時間が長い時に前記送信制御手段からの送信帯域が穏やかに変化するように前記送信制御手段の制御パラメータを変更する手段をさらに備えた請求項18記載のセッション中継装置。
  20. 前記通信の開始時間をTCP(Transmission Control Protocol)によって前記セッションがスロースタート動作を行い始めてからの時間とする請求項18記載のセッション中継装置。
  21. 前記セッションの受信バッファの空き容量に応じて前記セッションに対して送信帯域を低下させることを要求する要求手段をさらに備え、
    前記要求手段は、前記受信バッファの空き容量がなくなる前に前記受信バッファの空き容量及びその平均値のいずれかに応じて送信帯域を低下させることを要求する請求項6記載のセッション中継装置。
  22. 前記要求手段は、前記送信端末に対して送信レート減少を指示する信号を1以上出力することで前記送信帯域を低下させることを要求する請求項21記載のセッション中継装置。
  23. 前記セッションの受信バッファの空き容量を観測する観測手段をさらに備え、
    前記観測手段は、前記受信バッファの空き容量及びその平均値のいずれかが予め定めた閾値以上増加することを契機として当該セッションに対して送達確認の信号を返信する請求項6記載のセッション中継装置。
  24. 前記受信バッファからデータを取出すことを契機として前記送達確認の信号を返信する請求項23記載のセッション中継装置。
  25. 前記セッションから受信したデータを中継して送信するセッションからから前記送達確認の信号を受信したことを契機として前記データの受信を行うセッションに前記送達確認の信号を返信する請求項23記載のセッション中継装置。
  26. 前記受信制御手段が少なくとTCP(Transmission Control Protocol)の第四層プロトコルを終端してデータの受信処理を行い、前記送信制御手段が前記受信制御手段と同じ第四層プロトコル及び異なる第四層プロトコルのいずれかを用いてデータの送信処理を行う請求項6記載のセッション中継装置。
  27. 送信端末と受信端末との間でセッションを中継することで前記送信端末と前記受信端末との間の通信帯域を制御するセッション中継装置のセッション中継方法において、
    前記セッション中継装置側に、前記セッション中継装置と前記受信端末との間のセッションのウインドフロー制御を変更するステップを有することを特徴とするセッション中継方法。
  28. 前記セッション中継装置側に、
    前記セッション中継装置と前記受信端末との間のセッションの送信バッファ内滞留パケット数を監視するステップと、
    少なくとも前記送信バッファ内滞留パケット数を基に動的に前記セッションの制御パラメータの変更を行うステップとを備える請求項27記載のセッション中継方法。
  29. 前記セッション中継装置側に、
    前記セッション中継装置と前記送信端末との間のセッションの受信バッファ内滞留パケット数を監視するステップと、
    前記受信バッファ内滞留パケット数及びその平均値のいずれかが予め設定した一定値以上となった時に前記送信端末に対して送信レート減少を指示する信号を出力するステップとを備える請求項27記載のセッション中継方法。
  30. 前記受信端末から1バイト以上の受信確認を行う信号を受信する際に前記受信バッファの空き容量を予め設定された一定量以上確保可能な時に前記送信端末に対して1以上の広告ウインドサイズを広告するための信号を送信するステップをさらに備えた請求項27記載のセッション中継方法。
  31. 前記受信端末から通知される広告ウインドサイズを監視し、前記広告ウインドサイズの平均が予め設定した一定値以上となった時に前記セッション中継装置から前記受信端末へのセッションの制御パラメータを変更するステップをさらに備えた請求項27記載のセッション中継方法。
  32. 送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記送信端末と前記受信端末との間の通信を実現するセッション中継装置のセッション中継方法において、
    前記セッション中継装置側に、
    前記送信端末に向けたセッションからのデータを受信する受信制御手段で受信処理したデータを、前記受信端末に向けたセッションへとデータを送信する送信処理手段へと受け渡すステップと、
    前記送信制御手段に関する状態を観測するステップと、
    前記送信制御手段の動作を変更するステップとを有し、
    前記観測の結果に応じて前記送信制御手段の動作を変更することを特徴とするセッション中継方法。
  33. 前記送信制御手段に関する状態を観測するステップは、
    少なくとも送信データ量、送信帯域、遅延、パケット廃棄率、再送タイムアウト頻度、送信バッファ内滞留データ量のいずれかを前記送信制御手段に関する状態として観測するステップをさらに備える請求項32記載のセッション中継方法。
JP2005513255A 2003-08-20 2004-07-29 セッション中継装置及び中継方法 Expired - Fee Related JP4269177B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003295759 2003-08-20
JP2003295759 2003-08-20
PCT/JP2004/010795 WO2005020524A1 (ja) 2003-08-20 2004-07-29 セッション中継装置及び中継方法

Publications (2)

Publication Number Publication Date
JPWO2005020524A1 true JPWO2005020524A1 (ja) 2007-10-04
JP4269177B2 JP4269177B2 (ja) 2009-05-27

Family

ID=34213568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005513255A Expired - Fee Related JP4269177B2 (ja) 2003-08-20 2004-07-29 セッション中継装置及び中継方法

Country Status (4)

Country Link
US (1) US20070025250A1 (ja)
JP (1) JP4269177B2 (ja)
CN (1) CN1836410A (ja)
WO (1) WO2005020524A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200816719A (en) * 2006-08-23 2008-04-01 Matsushita Electric Ind Co Ltd Communication equipment
JP4105221B2 (ja) * 2006-09-20 2008-06-25 松下電器産業株式会社 中継伝送機器および中継伝送方法
JP4382830B2 (ja) * 2007-03-16 2009-12-16 富士通株式会社 パケット転送装置
US20090303975A1 (en) * 2008-06-05 2009-12-10 Texas Instruments Incorporated Method and system for wireless coexistence
JP5146548B2 (ja) * 2009-02-06 2013-02-20 富士通株式会社 パケットバッファ装置及びパケット廃棄方法
US9548936B2 (en) * 2011-06-30 2017-01-17 The Chinese University Of Hong Kong Method and system for improved TCP performance over mobile data networks
CN103200622A (zh) * 2012-01-09 2013-07-10 株式会社Ntt都科摩 一种通信处理方法、装置及网关设备
JP5390662B2 (ja) 2012-05-31 2014-01-15 株式会社東芝 データ転送方法ならびに電子機器
US8782221B2 (en) * 2012-07-05 2014-07-15 A10 Networks, Inc. Method to allocate buffer for TCP proxy session based on dynamic network conditions
US9444741B2 (en) * 2013-03-11 2016-09-13 Broadcom Corporation Facilitating network flows
US10425371B2 (en) * 2013-03-15 2019-09-24 Trane International Inc. Method for fragmented messaging between network devices
US20140355623A1 (en) * 2013-06-03 2014-12-04 Futurewei Technologies, Inc. Transmission Control Protocol (TCP) Connection Control Parameter In-Band Signaling
CN103561020B (zh) * 2013-10-30 2017-07-21 深圳市宏智力科技有限公司 一种脑波数据传输方法、装置及***
JP6244836B2 (ja) * 2013-11-12 2017-12-13 富士通株式会社 通信装置及びパケット制御方法
JP6234236B2 (ja) 2014-01-15 2017-11-22 株式会社日立製作所 通信装置
JP6551049B2 (ja) * 2015-08-24 2019-07-31 富士通株式会社 帯域制御回路、演算処理装置、および装置の帯域制御方法
JP2017073636A (ja) * 2015-10-06 2017-04-13 富士通株式会社 中継装置、及び中継方法
WO2017207052A1 (en) * 2016-06-02 2017-12-07 Nokia Solutions And Networks Oy Apparatus and method for reliable communication in multi-connectivity
CN106878920B (zh) 2016-12-29 2017-12-22 建荣半导体(深圳)有限公司 数据转发方法、其装置、蓝牙设备及音频传输方法
CN107018484B (zh) * 2017-06-01 2019-11-12 建荣半导体(深圳)有限公司 蓝牙通信方法、其装置、蓝牙***及蓝牙设备
CN110048958A (zh) * 2018-01-16 2019-07-23 厦门亿联网络技术股份有限公司 一种***间消息流传输的缓冲区控制方法
JP7101595B2 (ja) * 2018-11-05 2022-07-15 住友電気工業株式会社 スイッチ装置、通信制御方法および通信制御プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0591144A (ja) * 1991-09-25 1993-04-09 Kawasaki Steel Corp ゲートウエイ
JP3315926B2 (ja) * 1998-05-25 2002-08-19 ケイディーディーアイ株式会社 Tcp通信高速化装置
JP2001156795A (ja) * 1999-11-29 2001-06-08 Nec Mobile Commun Ltd パケットのフロー制御装置および方法
GB0018119D0 (en) * 2000-07-24 2000-09-13 Nokia Networks Oy Flow control
WO2002019654A2 (en) * 2000-08-31 2002-03-07 The Regents Of The University Of California Method for improving tcp performance over wireless links
JP2002125002A (ja) * 2000-10-13 2002-04-26 Mitsubishi Electric Corp データ送信装置、データ受信装置、データ送信方法、及びデータ受信方法
US6990073B1 (en) * 2001-03-28 2006-01-24 Lsi Logic Corporation Data packet congestion management technique
US7000025B1 (en) * 2001-05-07 2006-02-14 Adaptec, Inc. Methods for congestion mitigation in infiniband
US7133361B2 (en) * 2001-09-26 2006-11-07 Hughes Network Systems, Inc. Method and system for improvement of network performance over asymmetic links

Also Published As

Publication number Publication date
JP4269177B2 (ja) 2009-05-27
CN1836410A (zh) 2006-09-20
US20070025250A1 (en) 2007-02-01
WO2005020524A1 (ja) 2005-03-03

Similar Documents

Publication Publication Date Title
JP4269177B2 (ja) セッション中継装置及び中継方法
KR101746629B1 (ko) 통신 장치 및 통신 방법
US8014287B2 (en) Communications apparatus
US9467390B2 (en) Method and device for data transmission
US10075382B2 (en) Communication device, relay device, and communication method for a plurality of packets
EP3255847A1 (en) Transmission control protocol data packet transmission method, transmission device and system
JP4354406B2 (ja) データユニット送信機及びこの送信機の制御方法
JP4269176B2 (ja) セッション中継装置及び中継方法
JP5867188B2 (ja) 情報処理装置、輻輳制御方法および輻輳制御プログラム
KR20140143355A (ko) 지연이 큰 네트워크들에 대한 tcp 혼잡 제어
JP5832335B2 (ja) 通信装置および通信システム
US20210266261A1 (en) Communication apparatus, communication method, and program
US20160277943A1 (en) Network system, control method of network system, communication device, and program
US9467386B2 (en) Communication terminal and communication method
JP6010502B2 (ja) パケット処理方法及びパケット処理装置
JP6417097B2 (ja) パケット伝送装置
JP4531302B2 (ja) パケット中継装置、及びその方法
JP2006087010A (ja) 通信路制御装置およびそれを用いたネットワークシステム
US11962517B2 (en) Communications method, apparatus, and system for recovering lost packets
KR101933175B1 (ko) 서버와 클라이언트간 통신을 중개하는 중개장치
WO2019004013A1 (ja) データ送信装置、方法および記録媒体
Reddy Best Practices for Deploying FCIP and IFCP Solutions Using Connectrix Multiprotocol Routers
KR20070032564A (ko) 패킷 네트워크에서 대역폭과 지연시간의 곱정보 이용장치및 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090109

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

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

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

Free format text: PAYMENT UNTIL: 20120306

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees