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

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

Info

Publication number
JP4269176B2
JP4269176B2 JP2005513252A JP2005513252A JP4269176B2 JP 4269176 B2 JP4269176 B2 JP 4269176B2 JP 2005513252 A JP2005513252 A JP 2005513252A JP 2005513252 A JP2005513252 A JP 2005513252A JP 4269176 B2 JP4269176 B2 JP 4269176B2
Authority
JP
Japan
Prior art keywords
session
transmission
data
packet
output
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
JP2005513252A
Other languages
English (en)
Other versions
JPWO2005020523A1 (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 JPWO2005020523A1 publication Critical patent/JPWO2005020523A1/ja
Application granted granted Critical
Publication of JP4269176B2 publication Critical patent/JP4269176B2/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing

Landscapes

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

Description

本発明はセッション中継装置及びそれに用いるセッション中継方法に関し、特にTCP(Transmission Control Protocol)セッション間でデータの中継を行う装置に関する。
一般的に、通信アプリケーションにおいては、送信端末と受信端末との間で通信セッションを確立し、確立したセッション上で通信を行う。しかしながら、送信端末と受信端末との間の伝播遅延時間が非常に長い場合、もしくは有線と無線とのように特性の異なるネットワークを横断して通信する場合には、送信端末と受信端末との間の通信のスループットが低下する。
この問題を解決するための方法としては、下記の文献1〜3に開示されているような方式が存在する。この方式では、送信端末と受信端末との間を一つのセッションで通信を行うのではなく、送信端末と受信端末との間に中継装置を設置する。そして、送信端末から中継装置へのセッションと中継装置から受信端末へのセッションの2つのセッション間でデータの中継を行うことによって通信が行われる。
[文献1]特開平11−252179号公報
[文献2]特開2002−281104号公報
[文献3]jay 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)
中継装置においては、伝播遅延時間が非常に長い場合でもスループットを低下させないために、大きな送信バッファを持つことが有効であることが知られている。しかしながら、大きな送信バッファを持った場合、特にTCPのスロースタート(Slow Start)時において、パケットがバースト的に出力されるためにネットワークの輻輳を発生させ、結果としてスループットの低下を招く場合がある。
このような問題を解決する方法としては、下記の文献4に開示されているような、TCPセッションからバースト的にパケットを出力しないように出力するパケットの間隔を調整する方法がある。
[文献4]A.Aagarwal,S.Savage,and T.Anderson.“Understanding the Performance of TCP Pacing”,in proceedings of IEEE INFOCOM´2000
また、他の方法としては、TCPセッションからの出力パケットをキューイングしてスケジューラで出力制御を行うことによって、任意の帯域でのパケット出力が可能となり、他のTCPセッションのスループットを制限し、特定のセッションのスループットを向上させることも可能である。
セッションの中継を行う場合、最も問題となることは、一般的にTCPセッションの処理において処理負荷が高く、高速な中継処理が難しいという問題がある。また、TCPセッションからのパケット出力間隔を調整する場合には、処理負荷がさらに高くなる。
上記のTCPセッションの処理を高速化する方式としては、以下に示すような方式が存在する。第1の方式としては、OS(Operation System)のカーネルとアプリケーションプログラムとの間のデータ転送にゼロコピー方式を用いることによって、中継装置の処理負荷を下げる方式がある。この第1の方式では、実際にデータの送受信処理を行うカーネルプログラムと、データの中継処理を行うアプリケーションプログラムとの間で、データの受け渡しを行う際、物理的なデータのコピーを行わず、ページマッピングによる仮想的なデータの移動を行う。
第2の方式としては、中継処理を行う際、再送制御のみを行う方式がある。この第2の方式では、中継装置でセッションの終端を行わず、送受信端末間で1本のセッションを設定する。そして、中継装置においては送信端末から受信したパケットを受信端末へと出力する際、単にパケットを転送するだけでなく、パケットを中継装置内に保存しておく。
中継装置では受信端末から送信端末に返されるACK(acknowledgement)パケットを監視し、もし中継装置と受信端末との間でパケット廃棄を検出すると、保存しておいたパケットを受信端末に出力することで、送信端末からのパケットの再送を防ぎ、パケット廃棄による送信端末と受信端末との間のスループットの低下を防いでいる。
この第2の方式では、セッション間の中継処理を行わず、再送処理を行うのみであり、中継処理を行う場合に比べて中継装置の負荷を下げることができる。
第3の方式としては、中継の必要が無いセッションの中継処理を行わず、中継を行う必要があるセッションのみ中継処理を行うことで、中継装置の処理負荷を下げる方式がある。例えば、この方式としては、下記の文献5に開示されているような、セッションのスループットを計測し、中継処理を行うことで、スループットが向上するセッションのみを選択して中継処理を行う方式がある。
[文献5]特開平11−112576号公報
また、上記の方式としては、下記の文献6に開示されているように、HTTP(Hyper Text Transfer Protocol)のリクエストを送信する際に中継処理を行わず、データ転送を行う際のみ中継処理を行う方式がある。
[文献6]特開2002−312261号公報
上述した従来のセッション中継方式では、第1の方式の場合、データコピー以外の処理負荷も高いという問題がある。TCP pacing方式やスケジューラによる出力制御を行う場合、TCPの処理負荷に加えて、パケット出力制御の負荷が加わるため、全体の処理負荷が高くなる。
また、TCPセッションの中継だけではなく、例えばiSCSI(internet Small Computer System Interface)のような上位レイヤプロトコルの中継処理を行う場合、さらに上位レイヤでの輻輳制御に基づくパケット出力制御が加わり、さらに処理負荷が高くなる。特に、中継するセッション数が多い場合には、セッション間でパケットの出力制御を行う処理の負荷が高くなる。
さらに、従来のセッション中継方式では、第1の方式の場合、パケット長に制限があるという問題がある。TCPレイヤとアプリケーションとの間でページマッピングによる仮想的なデータの移動を行うためには、CPU(中央処理装置)のページサイズとパケット長とが一致している必要がある。
一般的に、セッション中継装置は送受信端末とは独立して存在し、送信端末及び受信端末が用いるパケット長を予め想定しておくことはできないため、帯域制御装置のページサイズと異なるパケット長を用いる送信端末及び受信端末に対しては、ゼロコピーによる処理負荷低減が期待できない。
一方、従来のセッション中継方式では、第2の方式の場合、パケット廃棄以外の要因によるスループット低下を改善することができないという問題がある。セッションの中継処理を行う場合には、セッション中継装置では送信端末からのパケット受信に対してすぐさま送信端末に対して受信確認のためのACKパケットを返送するが、この第2の方式では受信端末が送信端末に対してACKパケットを返すのみであり、セッション中継装置自身はACKパケットを返さない。そのため、伝播遅延が大きな環境では第2の方式によるスループット向上の効果が小さい。
また、従来のセッション中継方式では、第3の方式の場合、中継する必要のあるセッション数が多い場合に処理負荷が軽減されないという問題がある。
そこで、本発明の目的は上記の問題点を解消し、中継するセッション数が多く、パケットの出力制御を行う場合でも、高速にセッション間の中継処理を行うことができるセッション中継装置及びそれに用いるセッション中継方法を提供することにある。
本発明による他のセッション中継装置は、送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記受信端末と前記受信端末との間の通信を実現するセッション中継装置であって、
前記送信端末に向けたセッションからのデータを受信する受信セッション処理手段と、前記受信端末に向けたセッションへとデータを送信する送信セッション処理手段と、前記送信端末へと出力するデータを一時蓄えておく送信バッファと、前記送信バッファからのパケット出力を制御するパケットスケジューラと、前記パケットスケジューラの制御に応答して前記送信バッファに蓄えられたデータを出力制御する出力制御手段とを備え、
前記送信セッション処理手段において当該レイヤで出力が許可されているデータ量を計算し、これに基づいて前記パケットスケジューラが前記パケット出力を制御している。
本発明セッション中継装置は、送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記送信端末と前記受信端末との間の通信を実現するセッション中継装置において、
複数のレイヤに対応して設けられ、かつ、前記送信端末に向けたセッションからのデータを受信する受信セッション処理手段と、
複数のレイヤに対応して設けられ、かつ、前記受信端末に向けたセッションへとデータを送信する送信セッション処理手段と、
前記送信端末へと出力するデータを一時蓄えておく送信バッファと、
前記複数のレイヤのうちの1つのレイヤに対応して設けられ、前記送信バッファからのパケット出力を制御するパケットスケジューラと、
前記パケットスケジューラの制御に応答して前記送信バッファに蓄えられたデータを出力制御する出力制御手段とを有し、
前記パケットスケジューラが対応するレイヤとは異なる少なくとも1つのレイヤに対応して設けられた前記送信セッション処理手段が、出力が許可されているデータ量を計算し、これに基づいて前記パケットスケジューラが前記パケット出力を制御することを特徴とする
本発明セッション中継方法は、送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記送信端末と前記受信端末との間の通信を実現するセッション中継装置のセッション中継方法において、
前記セッション中継装置側で行われる
複数のレイヤに対応して設けられた受信セッション処理手段が前記送信端末に向けたセッションからのデータを受信する受信セッションステップと、
複数のレイヤに対応して設けられた送信セッション処理手段が前記受信端末に向けたセッションへとデータを送信する送信セッションステップと、
前記送信端末へと出力するデータを送信バッファに一時蓄えておくステップと、
前記複数のレイヤのうち1つのレイヤに対応して設けられたパケットスケジューラが前記送信バッファからのパケット出力を制御するステップと、
前記パケットスケジューラの制御に応答して前記送信バッファに蓄えられたデータを出力制御手段にて出力制御するステップとを有し、
前記送信セッションステップにおいては、前記パケットスケジューラが対応するレイヤとは異なる少なくとも1つのレイヤに対応して設けられた前記送信セッション処理手段が、出力が許可されているデータ量を計算し、前記送信バッファからのパケット出力を制御するステップにおいては、該計算されたデータ量に基づいて前記パケットスケジューラが前記パケット出力を制御することを特徴とする
本発明による別のセッション中継方法は、送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記送信端末と前記受信端末との間の通信を実現するセッション中継装置のセッション中継方法であって、前記セッション中継装置側に、複数のレイヤ各々において前記送信端末に向けたセッションからのデータを受信する受信セッション処理と、前記複数のレイヤ各々において前記受信端末に向けたセッションへとデータを送信する送信セッション処理と、前記送信端末へと出力するデータを送信バッファに一時蓄えておく処理と、前記送信バッファからのパケット出力をパケットスケジューラにて制御する処理とを備え、前記送信セッション処理各々において当該レイヤで出力が許可されているデータ量を計算し、前記複数のレイヤ全てで共通に許可されるデータ量に基づいて前記パケットスケジューラが前記パケット出力を制御している。
すなわち、本発明のセッション中継装置は、TCP(Transmission Control Protocol)レイヤにおいてパケット出力の制御を行わず、TCPレイヤでパケット出力のための制御情報を生成するのみとし、IP(Internet Protocol)レイヤにおいてパケットスケジューラを用いてパケット出力の制御を行う。
また、本発明のセッション中継装置では、iSCSI(internet Small Computer System Interface)のような上位レイヤプロトコルにおける輻輳制御に関しても、制御情報の作成のみを上位レイヤで行い、実際のパケット出力制御にはIPレイヤのパケットスケジューラを用いる。
これによって、本発明のセッション中継装置では、複数のレイヤにおけるデータ出力制御を統合することができるため、パケット出力に関する処理負荷を軽減することが可能となる。
さらに、本発明のセッション中継装置では、アプリケーションへのデータコピーを行わないため、ページマッピングによるデータの移動の必要がない。すなわち、受信パケットはTCPレイヤやその他の上位レイヤ、アプリケーションの受信バッファに格納されることなく、またTCPレイヤやその他の上位レイヤ、アプリケーションの送信バッファに格納に格納されることもなく、直接IPレイヤの送信バッファに格納される。そのため、本発明のセッション中継装置では、セッション中継装置内のデータの移動は発生せず、ページマッピングによるデータの移動の必要がない。
さらにまた、本発明のセッション中継装置では、中継処理をパケットの再送制御にのみを行うのではなく、セッションを一旦終端して完全な中継処理を行っているため、パケット廃棄以外の要因によるスループット低下を改善することが可能となる。
本発明のセッション中継装置では、セッション間の中継処理を高速化することで、中継セッション数が多い場合でも高速に処理を行うことが可能となる。
図1は、本発明の第1の実施形態によるセッション中継装置を含む伝送システムの構成を示すブロック図である。 図2は、本発明の第1の実施形態によるセッション中継装置の構成を示すブロック図である。 図3は、図2のパケットスケジューラの構成を示すブロック図である。 図4は、本発明の第1の実施形態によるセッション中継装置の動作を示すフローチャートである。 図5は、本発明の第1の実施形態によるセッション中継装置の動作を示すフローチャートである。 図6は、図3に示すパケットスケジューラの動作を示すフローチャートである。 図7は、送信待ちバイト数を示す模式図である。 図8は、本発明の第2の実施形態によるパケットスケジューラの構成を示すブロック図である。 図9は、本発明の第3の実施形態によるセッション中継装置の構成を示すブロック図である。 図10は、本発明の第4の実施形態によるセッション中継装置の構成を示すブロック図である。 図11は、本発明の第4の実施形態における送信待ちバイト数を説明する模式図である。 図12は、本発明の第5の実施形態によるセッション中継装置の構成を示すブロック図である。 図13は、本発明の第5の実施形態によるセッション中継装置(送信端末)及びセッション中継装置(受信端末)の間のデータの流れを示すブロック図である。
次に、本発明の実施の形態について図面を参照して説明する。
(第1の実施形態)
図1は本発明の第1の実施形態によるセッション中継装置1を含む伝送システムの構成を示すブロック図である。図1において、本実施形態によるセッション中継装置1はセッション識別部11と、セッション中継部12−1〜12−Nと、出力制御部14とから構成され、受信端末2及び送信端末3に接続されている。
まず、送信端末3から受信端末2へデータを送る場合、送信端末3からのデータパケットはセッション中継部12−1の受信セッション処理部(図示せず)で処理され、その結果、ACK(acknowledgement)パケットが送信端末3へと返信される。
セッション中継部12−1の受信セッション処理部で受取られたデータはセッション中継部12−1の送信セッション処理部(図示せず)へと送られ、ここから受信端末2へとデータパケットが送信される。これに対して、受信端末2が返信したACKパケットはセッション中継部12−1の送信セッション処理部で処理される。
同様に、受信端末2から送信端末3へデータを送る場合、受信端末2からのデータパケットはセッション中継部12−2の受信セッション処理部(図示せず)で処理され、その結果、ACKパケットが受信端末2へと返信される。
セッション中継部12−2の受信セッション処理部で受取られたデータはセッション中継部12−2の送信セッション処理部(図示せず)へと送られ、ここから送信端末3へとデータパケットが送信される。これに対して、送信端末3が返信したACKパケットはセッション中継部12−2の送信セッション処理部で処理される。
図2は本発明の第1の実施形態によるセッション中継装置の構成を示すブロック図である。図2において、セッション中継装置1はセッション識別部11と、セッション中継部12−1〜12−Nと、パケットスケジューラ13と、出力制御部14とから構成されている。
セッション識別部11は到着したパケットが属するセッションを決定する。セッション中継部12−1〜12−Nは送信端末3とのセッションと受信端末2とのセッションとの間で中継を行う。パケットスケジューラ13は各セッション中継部12−1〜12−Nからのパケット出力を制御する。出力制御部14はパケットスケジューラ13からの指示に基づいて各セッション中継部12−1〜12−Nからのパケット出力を行う。
また、セッション中継部12−1は受信端末2へとデータを送信するセッションの処理を行う送信セッション処理部121−1と、受信したデータを送信終了まで蓄えておく送信バッファ122−1と、送信端末3からデータを受信するセッションの処理を行う受信セッション処理部123−1とから構成されている。尚、図示していないが、セッション中継部12−2〜12−Nの構成は上記のセッション中継部12−1の構成と同様である。
図3は図2のパケットスケジューラ13の構成を示すブロック図である。図3において、パケットスケジューラ13はリスト振り分け部131と、状態更新部132と、状態変数保存部133と、リセット制御部134と、送信可能リスト135と、送信待ちリスト136とから構成されている。
送信可能リスト135はパケット出力が可能なセッションの識別子を保持し、送信待ちリスト136は送信待ち状態にあるセッションの識別子を保持する。リスト振り分け部131はデータパケットセッションの識別子もしくはACKパケットを受信したセッションの識別子を送信可能リスト135もしくは送信待ちリスト136に振り分ける。
状態更新部132は送信可能リスト135からセッションの識別子を取出して出力制御部14に通知し、かつ該セッションの状態を更新する。状態変数保存部133は各セッションの状態を保持し、リセット制御部134は送信待ちリスト136で管理されているセッションの識別子を送信可能リスト135へと移動させる。
TCP(Transmission Control Protocol)セッションでは、通常、送信端末3と受信端末2との間の双方向の通信を行う。そのため、本実施形態においては、一組の送信端末3及び受信端末2に対して2つのセッション中継部を使用するものとし、夫々の方向へのデータ通信に対しては夫々対応するセッション中継部を使用する。
したがって、セッション中継部12−1〜12−Nは複数の送信端末3及び受信端末2の組に対して夫々2つずつ用意され、セッション中継部12−1〜12−N各々は夫々の送信端末3からのセッションから対応する受信端末2へのセッションへと、もしくは夫々の受信端末2からのセッションから対応する送信端末3へのセッションへとデータを中継する処理を行う。
尚、TCPセッションにおいては、ある方向のデータパケットとその反対方向へのACKパケットとが1つのパケット上に統合される場合があるが(ACKのpiggy back)、本実施形態では説明を簡単化するために、このような動作に関しての説明については省略する。
図4及び図5は本発明の第1の実施形態によるセッション中継装置1の動作を示すフローチャートであり、図6は図3に示すパケットスケジューラ13の動作を示すフローチャートである。これら図1〜図6を参照して本発明の第1の実施形態によるセッション中継装置1の動作について説明する。
本実施形態によるセッション中継装置1にパケットが入力された時(図4ステップS1)、セッション識別部11はパケットのヘッダを参照し、送信元IP(Internet Protocol)アドレス、送信先IPアドレス、第四層プロトコル番号、送信元第四層ポート番号、送信先第四層ポート番号等に基づいて、パケットが属するセッションを決定する(図4ステップS2)。
セッション識別部11はパケットがデータパケットであれば(図4ステップS3)、対応するセッション中継部12−1〜12−Nの受信セッション処理部123−1〜123−N(受信セッション処理部123−2〜123−Nは図示せず)へと渡す(図4ステップS4)。
また、セッション識別部11はパケットがACKパケットであれば(図4ステップS3)、対応するセッション中継部12−1〜12−Nの送信セッション処理部121−1〜121−N(送信セッション処理部121−2〜121−Nは図示せず)へと渡す(図4ステップS10)。
受信セッション処理部123−1〜123−Nでは入力されたデータパケットをシーケンス番号順に並べ替えて送信バッファ122−1〜122−N(送信バッファ122−2〜122−Nは図示せず)へと格納する(図4ステップS5)。また、受信セッション処理部123−1〜123−Nは受信したデータパケットが正しいシーケンス番号を持つものであれば(図4ステップS6)、すなわち連続して受信しているデータの最後尾のシーケンス番号と連続していれば、送信端末3に対してデータの受信確認及び広告ウインドサイズを通知するために、ACKパケットを出力制御部14を通して返送する(図4ステップS7)。
さらに、受信セッション処理部123−1〜123−Nは連続して受信した最後のパケットのシーケンス番号を基にACKパケット(重複ACKパケット)を返送し、送信端末3に対してパケットの未到着を通知する。
上記の処理に関しては、TCP/IP Illustrated,Volume 1:The Protocols,Addison−Wesley,1994,ISBN 0−201−63346−9(以下、文献7とする)に詳しく記載されているので、その説明については詳述しない。
ACKパケットは生成された後、すぐさま出力制御部14から出力されるか、もしくは対応する逆方向のセッションの送信バッファ122−1〜122−Nに格納され、逆方向のセッションのデータパケットとともに、パケットスケジューラ13の指示で出力される。
また、受信セッション処理部123−1〜123−Nでは、連続して受信しているデータの最後尾のシーケンス番号をパケットスケジューラ13へと通知する(図4ステップS8)。
送信セッション処理部121−1〜121−Nでは入力されたACKパケットを基に輻輳ウインドサイズの変更を行い(図4ステップS9)、ACKパケットが重複ACKでなければ受信が確認されたデータを送信バッファ122−1〜122−Nから消去し(図5ステップS12,S13)、重複ACKであれば必要に応じてデータの再送処理を行う(図5ステップS12,S11)。尚、この処理に関しても上記の文献7に詳しく記載されているので、その説明については詳述しない。
送信セッション処理部121−1〜121−Nは受信したACKパケットに記されている広告ウインドと、更新した輻輳ウインドとをパケットスケジューラ13に通知する(図5ステップS15)。また、送信セッション処理部121−1〜121−Nは再送がタイムアウトした場合(図5ステップS14)、受信確認済みの最後のシーケンス番号も通知する(図5ステップS16)。
尚、本実施形態ではパケットスケジューラ13からパケット出力の指示があった時にのみパケットの出力を行うため、ここでは重複ACKを受信した時にすぐさまパケットの再送を行うのではなく、次に出力すべきパケットとして再送するパケットのシーケンス番号を記憶しておくのみである。
送信バッファ122−1〜122−Nからのパケット出力は、パケットスケジューラ13からの指示に基づいて行われる。パケットスケジューラ13からパケット出力の指示があると、出力制御部14は送信バッファ122−1〜122−Nからパケットを1つ取出して出力回線に出力し、出力したパケットのパケット長をパケットスケジューラ13に通知する。
送信バッファ122−1〜122−Nから出力するパケットは、再送処理を行う場合に記憶しておいたシーケンス番号のパケットであり、さもなければ未送信のパケットのうち最もシーケンス番号の小さいパケットである。
尚、該セッションがTCPセッションでなければ、受信セッション処理部123−1〜123−Nでは受信したパケットをそのまま到着順に送信バッファ122−1〜122−Nに格納するのみである。送信セッション処理部121−1〜121−NではACKパケットを受信せず、パケットスケジューラ13に対しては送信バッファ122−1〜122−Nのキュー長を広告ウインド及び輻輳ウインドとして通知することで、送信バッファ122−1〜122−Nにパケットがある限り、パケットスケジューラ13にパケット出力を要求し続ける。
パケットスケジューラ13では、状態変数保存部133において、セッション毎に、割り当てウエイト、送信可能バイト数、送信待ちバイト数の3つのパラメータを保持する。
割り当てウエイトは該セッションに割り当てられたウエイトである。パケットスケジューラ13は一定周期、あるいはパケット送信可能なセッションがなくなる毎にリセットを行い(図6ステップS26,S27)、このリセット1周期内に送信可能なバイト数が割り当てウエイトである。
送信可能バイト数は現時点から次のリセットまでに送信可能なバイト数であり、初期値は割り当てウエイトであって(図6ステップS21)、パケットを出力する毎にパケット長分だけ減算される(図6ステップS22,S23)。
送信待ちバイト数はTCPセッションの場合、TCPレイヤが送信許可したシーケンス番号から既にパケットスケジューラ13が送信を行ったシーケンス番号を引いたものであり、min(連続して受信しているデータの最後尾のシーケンス番号+1、受信端末が示した広告ウインド、該セッションの輻輳ウインド)−送信済みシーケンス番号となる。TCPセッションでない場合、送信待ちバイト数は送信バッファ122−1〜122−N内のキュー長である。
図7は送信待ちバイト数を示す模式図である。図7において、パケット出力が可能なセッション、すなわち送信可能バイト数と送信待ちバイト数とがともに1あるいはMSS(Maximum Segment Size)以上のセッションの識別子は送信可能リスト135で管理され(図6ステップS24,S25)、送信可能バイト数がリセットされた後にパケット出力が可能となるセッション、すなわち送信待ちバイト数が1あるいはMSS以上あるが、送信可能バイト数が1あるいはMSS未満であるセッションの識別子は送信待ちリスト136で管理される(図6ステップS27〜S29)。
次に、図3を参照してパケットスケジューラ13の動作について説明する。リスト振り分け部131はセッション中継部12−1〜12−Nから、送信端末3から連続して受信している最後尾のシーケンス番号や、受信端末2から受信した広告ウインド、更新した輻輳ウインドを受取ると、図7に示すようにして送信待ちバイト数を更新する。
また、リスト振り分け部131は出力制御部14において再送タイマがタイムアウトした際にも、送信済みシーケンス番号を受信確認済みのシーケンス番号まで戻し、送信待ちバイト数を更新する。リスト振り分け部131は更新前の送信待ちバイト数が1あるいはMSS未満であれば、該セッションの識別子はまだ送信可能リスト135あるいは送信待ちリスト136で管理されていないため、更新後の送信待ちバイト数及び送信可能バイト数を基に該セッションの識別子を送信可能リスト135あるいは送信待ちリスト136に新たに格納する。
状態更新部132は送信可能リスト135の先頭から送信可能なセッションの識別子を1つ取出し、これを出力制御部14に通知してパケット出力を行わせる。その後、状態更新部132は送信済みシーケンス番号に出力したパケット長を加算した後送信待ちバイト数を更新し、送信可能バイト数から出力したパケット長を減算する。
状態更新部132は送信待ちバイト数及び送信可能バイト数にしたがって、改めて該セッションの識別子を送信可能リスト135あるいは送信待ちリスト136に格納する。すなわち、状態更新部132は送信待ちバイト数及び送信可能バイト数がともに1あるいはMSS以上であれば送信可能リスト135に格納し、送信待ちバイト数が1あるいはMSS以上であるが送信可能バイト数が1あるいはMSS未満であれば送信待ちリスト136に格納する。
状態更新部132は送信可能リスト135が空になれば、全てのセッションの送信可能バイト数をリセット、すなわち送信可能バイト数に割り当てウエイトを加え、もし送信可能バイト数が割り当てウエイト以上となれば送信可能バイト数を割り当てウエイトの値とする[送信可能バイト数=min(送信可能バイト数+割り当てウエイト,割り当てウエイト)]。
この処理によって、送信待ち状態にあったセッションは全て送信可能な状態に変化するため、送信待ちリスト136で管理されていたセッションを全て送信可能リスト135へと移動する。
このリセット処理を行う前に、もし送信可能バイト数が1あるいはMSS未満ではなく、かつ該セッションの送信バッファ122−1〜122−N内に送信待ちのデータがあれば、該セッションからの出力帯域に余裕はあるが、送信セッション処理部121−1〜121−NにおいてTCP制御によって送信を止められている状態であるとする。
この場合には、将来の送信再開に備えて帯域を蓄えておくため、送信可能バイト数と割り当てウエイトとの和が割り当てウエイトを超えた場合でも、ある一定値までは送信可能バイト数を蓄えておく[送信可能バイト数=min(送信可能バイト数+割り当てウエイト,送信可能バイト数上限値)]。
上述したように、本実施形態では、中継するパケットが受信時の送信バッファ122−1〜122−Nへの格納と、送信時の送信バッファ122−1〜122−Nからの取出しの際にのみ移動するため、データ移動のオーバヘッドが小さい。また、TCPレイヤからの情報を用いたパケットスケジューラ13によってパケット出力制御を行うため、送信セッション処理部121−1〜121−Nが直接パケット出力するよりも、少ない処理負荷で帯域制御を行いながらのパケット出力を行うことができる。
(第2の実施形態)
本発明の第2の実施形態によるセッション中継装置の構成は図2に示す本発明の第1の実施形態によるセッション中継装置1の構成と同様である。
図8は本発明の第2の実施形態によるパケットスケジューラの構成を示すブロック図である。図8において、本発明の第2の実施形態によるパケットスケジューラ16は割り当てウエイト変更部161及び制御パラメータ変更部162を加えた以外は図3に示す本発明の第1の実施形態と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第1の実施形態と同様である。
この図8を参照して本発明の第2の実施形態によるパケットスケジューラ16の動作について説明する。ここでは、本発明の第1の実施形態によるパケットスケジューラ13との相違点のみを説明する。
本実施形態によるセッション中継装置では、パケットスケジューラ16内の制御パラメータ変更部162が割り当てウエイトとして設定した帯域にしたがって該セッションのTCP制御パラメータの値を動的に変更している。すなわち、制御パラメータ変更部162は該セッションの送信可能バイト数が割り当てウエイトよりも大きい予め設定した値よりも大きくなれば、TCP制御によってデータ出力が制限されていると判断し、該セッションがより多くの帯域でデータ出力が可能となるように、該セッションのTCP制御パラメータの値を変更する。
但し、TCP制御パラメータを変更しても該セッションのデータ出力帯域が増加しない場合、あるいは再送タイムアウトが一定頻度以上で発生する場合には、ネットワークの輻輳を防止するため、TCPパラメータの変更を停止する。
また、該セッションの送信可能バイト数が予め設定した別の値よりも小さくなれば、TCP制御によるデータ出力をパケットスケジューラ16の割り当てウエイトによる帯域まで減少させるため、該セッションのTCP制御パラメータの値を変更する。
前者の場合には、非輻輳時の輻輳ウインドを上げ幅を大きくしたり、輻輳時の輻輳ウインド下げ率を小さくしたりするが、後者の場合にはこの前者の場合とは逆の処理を行う。
また、本実施形態によるセッション中継装置では、パケットスケジューラ16内の割り当てウエイト変更部161が現在送信可能な帯域にしたがって動的に割り当てウエイトを変更させている。すなわち、割り当てウエイト変更部161では該セッションの送信可能バイト数が割り当てウエイトよりも大きい予め設定した値よりも大きくなれば、割り当てウエイトで設定した帯域でのデータ出力が不可能であると判断し、割り当てウエイトを一時的に減少させる。
その後、割り当てウエイト変更部161は送信可能バイト数が予め設定した別の値よりも小さくなれば、割り当てウエイトを元の値まで順次増加させる。また、割り当てウエイト変更部161はセッション中継部12−1〜12−Nから通知される該セッションの輻輳ウインド及び往復伝播遅延時間計測値を基に該セッションが送信可能な帯域を計算する。
さらに、割り当てウエイト変更部161はこの計算値と割り当てウエイトによる帯域設定値がある一定閾値以上異なれば、割り当てウエイトによる帯域設定値が上記の計算値となるように割り当てウエイトを一時的に変更する。
(第3の実施形態)
図9は本発明の第3の実施形態によるセッション中継装置の構成を示すブロック図である。図9において、本発明の第3の実施形態によるセッション中継装置は、セッション中継部15−1〜15−Nに受信レート制御部151−1〜151−N(受信レート制御部151−2〜151−Nは図示せず)を設けた以外は図2に示す本発明の第1の実施形態によるセッション中継装置と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第1の実施形態と同様である。尚、受信レート制御部151−1〜151−Nは送信端末3からの受信レートを制御する。
この図9を参照して本発明の第3の実施形態によるセッション中継装置の動作について説明するが、ここでは、上述した本発明の第1の実施形態との相違点のみを説明する。
本実施形態によるセッション中継装置では、送信バッファ122−1〜122−Nの空き容量がなくなると、受信セッション処理部123−1〜123−Nが送信端末3に対して広告ウインドサイズが0であることを通知し、これに応じて送信端末3はデータの送信を停止する。
本発明の第1の実施形態では、その後、送信バッファ122−1〜122−Nに空き容量ができたとしても、送信端末3がウインド検査のためのパケットを出力してくるまでは、送信再開のためのACKを出力することができない。
これに対して、本実施形態では、パケットスケジューラ13がパケット出力の指示を行った際、受信レート制御部151−1ではパケット出力後の送信バッファ122−1〜122−Nの空き容量を検査し、もしこれが1あるいはMSS以上であれば、送信端末3に対してすばやい送信再開を促すためにACKパケットを生成する。
また、受信レート制御部151−1〜151−Nでは送信バッファ122−1〜122−Nの空き容量、あるいはその平均値が予め設定したある値以上になれば、送信バッファ122−1〜122−Nの空き容量がなくなることを防ぐために、送信端末3に対して送信帯域の低下を指示する。
これは、例えば、送信側に返送するACKパケットを重複ACKとすることや、受信パケットを廃棄すること、ACKパケットにECN(Explicit Congestion Notification)ビットを設定すること、ACKパケットを遅延させること、ACKパケットの広告ウインドを一時的に小さく書換えること等で可能である。
(第4の実施形態)
図10は本発明の第4の実施形態によるセッション中継装置の構成を示すブロック図である。図10において、本発明の第4の実施形態によるセッション中継装置は、送信iSCSI(internet Small Computer System Interface)制御部171−1〜171−N(送信iSCSI制御部171−2〜171−Nは図示せず)及び受信iSCSI制御部172−1〜172−N(受信iSCSI制御部172−2〜172−Nは図示せず)をセッション中継部17−1〜17−Nに設けた以外は上述した本発明の第3の実施形態によるセッション中継装置と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第3の実施形態によるセッション中継装置と同様である。
送信iSCSI制御部171−1〜171−Nは受信端末2への送信レートに対してiSCSIレイヤの輻輳制御情報を反映させる。受信iSCSI制御部172−1〜172−Nは送信端末3からの受信レートに対してiSCSIレイヤの輻輳制御情報を反映させる。
この図10を参照して本発明の第4の実施形態によるセッション中継装置の動作について説明する。ここでは、本発明の第4の実施形態における本発明の第3の実施形態との相違点のみを説明する。
iSCSIレイヤにおいては、受信端末2から送信端末3に対して、受信端末2が受信可能なデータ量を通知するR2T(Ready−To−Transfer)パケットを送信することで、送信端末3と受信端末2との間で転送制御を行う。
そこで、本実施形態では、送信iSCSI制御部171−1〜171−Nが受信端末2からR2Tパケットを受信すると、このR2Tパケットを受信端末2に送らず、本実施形態によるセッション中継装置にてR2Tパケット受信時に出力を行ったデータの最後のシーケンス番号を記憶しておく。
送信iSCSI制御部171−1〜171−Nは前回記憶しておいたシーケンス番号に、今回受信したR2Tパケットの送信可能データ量を加えたものを、iSCSIレイヤで送信可能なデータ量としてパケットスケジューラ13に通知する。
パケットスケジューラ13では送信待ちバイト数を、TCPレイヤが送信許可したデータ量とiSCSIレイヤが許可したデータ量との最小値とする。すなわち、図11に示すように、送信待ちバイト数=min(連続して受信しているデータの最後尾のシーケンス番号+1,受信端末が示した広告ウインド,該セッションの輻輳ウインド,前回R2Tパケットを受信した際のシーケンス番号+今回受信したR2Tパケットの送信可能データ量)−送信済みシーケンス番号となる。
受信iSCSI制御部172−1〜172−Nではパケットスケジューラ13がパケット出力の指示を行った際に、パケット出力後の送信バッファ122−1〜122−Nの空き容量を検査し、もしこれが予め定められ一定値以上であれば、送信端末3に対して送信バッファの空き容量をR2Tパケットとして送信する。
上述したように、本実施形態では送信端末3と受信端末2との間でiSCSIレイヤの輻輳制御を行うのではなく、セッション中継装置でiSCSIレイヤの輻輳制御を中継することで、iSCSIレイヤにおいてもTCPセッションを中継するのと同様のスループットの向上を図ることができる。
(第5の実施形態)
図12は本発明の第5の実施形態によるセッション中継装置の構成を示すブロック図である。図12において、本発明の第5の実施形態によるセッション中継装置はセッション識別部11と、セッション送信部41−1〜41−Nと、セッション受信部42−1〜42−Nと、パケットスケジューラ13と、出力制御部14とから構成されている。
セッション識別部11は到着したパケットが属するセッションを決定し、セッション送信部41−1〜41−Nは受信端末へのセッションのデータ送信処理を行い、セッション受信部42−1〜42−Nは受信端末へのセッションからのデータ受信処理を行う。
パケットスケジューラ13は各セッション送信部41−1〜41−Nからのパケット出力を制御する。出力制御部14はパケットスケジューラ13からの指示に基づいて各セッション送信部41−1〜41−Nからのパケット出力を行う。
また、セッション送信部41−1〜41−Nは送信セッション処理部411−1〜411−N(送信セッション処理部411−2〜411−Nは図示せず)と、送信データ生成部412−1〜412−N(送信データ生成部412−2〜412−Nは図示せず)と、送信バッファ413−1〜413−N(送信バッファ413−1〜413−Nは図示せず)とから構成されている。
送信データ生成部413−1〜413−Nはアプリケーションプログラムからの送信データを送信バッファ413−1〜413−Nへと格納する。送信バッファ5−6−1は送信するデータを一時蓄えておく。送信セッション処理部411−1〜411−Nは受信端末へとデータを送信するセッションの処理を行う。
セッション受信部42−1〜42−Nは受信セッション処理部421−1〜421−N(受信セッション処理部421−2〜421−Nは図示せず)と、受信バッファ422−1〜422−N(受信バッファ422−2〜422−Nは図示せず)と、受信データ処理部423−1〜423−Nとから構成されている。
受信セッション処理部421−1〜421−Nは受信端末からのデータの受信処理を行い、受信バッファ422−1〜422−Nは受信したデータを一時蓄えておく。受信データ処理部423−1〜423−Nは受信バッファ5−14−1からアプリケーションへ受信データを受け渡す。
TCPセッションでは、通常、送信端末と受信端末との間の双方向の通信を行うため、本実施形態では、一組の送信端末及び受信端末に対してそれぞれ1つのセッション送信部41−1〜41−N及びセッション受信部42−1〜42−Nを使用する。本実施形態においては、セッション中継装置が送信端末あるいは受信端末を兼ねている。
図13は本発明の第5の実施形態によるセッション中継装置(送信端末)及びセッション中継装置(受信端末)の間のデータの流れを示すブロック図である。図13において、セッション中継装置(送信端末)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へと返送される。
次に、図12を参照して本発明の第5の実施形態の動作について説明する。まず、送信端末から受信端末へのデータ転送に関して説明する。
アプリケーションプログラムが出力した送信データは送信データ生成部412−1〜412−Nによって送信バッファ413−1〜413−Nへと書込まれる。送信セッション処理部411−1〜411−Nは送信バッファ413−1〜413−Nから受信端末へのデータ送信処理を行う。この処理は上述した本発明の第1の実施形態と同様であるため、その説明を省略する。
ここで、パケットスケジューラ13は送信待ちバイト数を計算する際に、連続して受信しているデータの最後尾のシーケンス番号の代わりに、アプリケーションプログラムから受取ったデータの最後のシーケンス番号を用いる。
次に、受信端末から送信端末へのデータ転送に関して説明する。受信セッション処理部421−1〜42−1Nでは受信端末から送信されたデータの受信処理を行い、正しく受取ることができたデータを受信バッファ422−1〜422−Nに格納する。
この受信処理は格納するバッファが送信バッファではなく受信バッファである点を除いて、上述した本発明の第1の実施形態と同様であるため、その説明を省略する。受信バッファ422−1〜422−Nに書込まれたデータは、受信データ処理部423−1〜423−Nによって取出されてアプリケーションプログラムへと渡される。
このように、本発明は、複数のレイヤにおける輻輳制御処理に関して、輻輳制御情報の作成のみをそれぞれのレイヤで行い、パケット出力制御処理をIPレイヤのスケジューラに集約することで、セッション中継処理の高速化を実現することができる。
また、本発明は、複数のレイヤの受信バッファ及び送信バッファをIPレイヤの送信バッファに集約することによって、バッファ間でのデータ移動をなくし、セッション中継処理の高速化を実現することができる。

Claims (36)

  1. 送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記送信端末と前記受信端末との間の通信を実現するセッション中継装置において、
    複数のレイヤに対応して設けられ、かつ、前記送信端末に向けたセッションからのデータを受信する受信セッション処理手段と、
    複数のレイヤに対応して設けられ、かつ、前記受信端末に向けたセッションへとデータを送信する送信セッション処理手段と、
    前記送信端末へと出力するデータを一時蓄えておく送信バッファと、
    前記複数のレイヤのうちの1つのレイヤに対応して設けられ、前記送信バッファからのパケット出力を制御するパケットスケジューラと、
    前記パケットスケジューラの制御に応答して前記送信バッファに蓄えられたデータを出力制御する出力制御手段とを有し、
    前記パケットスケジューラが対応するレイヤとは異なる少なくとも1つのレイヤに対応して設けられた前記送信セッション処理手段が、出力が許可されているデータ量を計算し、これに基づいて前記パケットスケジューラが前記パケット出力を制御することを特徴とするセッション中継装置。
  2. 前記パケットスケジューラは、IPレイヤに対応して設けられていることを特徴とする請求項1記載のセッション中継装置。
  3. 前記受信セッション処理手段は、TCP(Transmission Control Protocol)セッションからのデータ受信処理を行い、
    前記送信セッション処理手段は、前記TCPセッションへのデータ出力処理を行い、TCPウインドフロー制御によって決定される出力可能なデータ量を前記パケットスケジューラに通知し、
    前記パケットスケジューラは、通知されたデータ量を基にスケジューリング処理を行う請求項1または2に記載のセッション中継装置。
  4. 前記パケットスケジューラは、前記セッションに割り当てられた帯域及び帯域比率を少なくとも含む通信資源割り当て方針と、前記送信セッション処理手段から通知された送信可能データ量と、前記送信バッファ内に蓄えられているデータ量とを基にパケット出力を行うセッションを決定し、前記セッション各々からのデータ出力を制御する請求項1または2に記載のセッション中継装置。
  5. 前記パケットスケジューラは、前記セッション各々における未使用の通信資源を蓄えておく蓄積手段をさらに備え、前記通信資源が必要になった際に前記蓄積手段に蓄えておいた通信資源を用いて通信を行う請求項1または2に記載のセッション中継装置。
  6. 前記パケットスケジューラは、前記送信バッファ内に出力すべきデータがあり、前記出力制御手段からの出力許可データ量の制限によって未使用となった前記通信資源の帯域のみを前記蓄積手段に蓄えておくことを特徴とする請求項記載のセッション中継装置。
  7. 前記送信セッションの制御パラメータを動的に変更する手段をさらに備え、前記パケットスケジューラからのデータ出力状況に応じて前記制御パラメータを変更する請求項1または2に記載のセッション中継装置。
  8. 前記セッションの未使用帯域が大きくなった時に当該セッションの制御パラメータを当該セッションからの出力帯域が小さくなる方向に変更し、前記セッションの未使用帯域が小さくなった時に当該セッションの制御パラメータを当該セッションからの出力帯域が大きくなる方向に変更し、前記制御パラメータの変更によって輻輳が発生した時に前記制御パラメータの変更を停止する請求項記載のセッション中継装置。
  9. 前記セッション各々に割り当てた帯域及び帯域比率を少なくとも含む通信資源割り当て量を動的に変更する手段をさらに備え、
    前記パケットスケジューラからのデータ出力状況及び前記出力制御手段から通知される送信可能データ量に応じて前記制御パラメータを変更する請求項記載のセッション中継装置。
  10. 前記セッションの未使用帯域が大きくなった時に当該セッションの割り当て資源を減少させ、前記セッションの未使用帯域が小さくなった時に当該セッションの割り当て資源をその初期値を上限として増加させるとともに、前記出力制御手段から通知される送信可能データ量及びその平均のいずれかによって前記割り当て資源を増減する請求項記載のセッション中継装置。
  11. 前記送信端末からのセッションの送信処理を制御する帯域、送信可否、送信可能データ量を少なくとも含む送信制御情報を制御する受信レート制御手段を含み、前記送信バッファの空き容量及び前記パケットスケジューラからの情報に応じて前記送信端末への送信制御情報の変更及び生成のいずれかを行う請求項1または2に記載のセッション中継装置。
  12. 前記パケットスケジューラからのパケット出力情報を受信する手段と、パケット出力によって変更された前記送信バッファの空き容量を調べる手段とをさらに備え、パケット出力後に前記送信バッファの空き容量が一定量以上となった時に前記送信端末に対して送達確認パケットを送信して送信再開を促す請求項11記載のセッション中継装置。
  13. 前記送信バッファの空き容量及びその平均の少なくとも一方を調べる手段をさらに備え、前記空き容量に応じて前記送信端末に対して送信帯域の減少を指示する請求項11記載のセッション中継装置。
  14. 送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記送信端末と前記受信端末との間の通信を実現するセッション中継装置において、
    複数のレイヤに対応して設けられかつ前記送信端末に向けたセッションからのデータを受信する受信セッション処理手段と、
    前記複数のレイヤに対応して設けられかつ前記受信端末に向けたセッションへとデータを送信する送信セッション処理手段と、
    前記送信端末へと出力するデータを一時蓄えておく送信バッファと、
    前記送信バッファからのパケット出力を制御するパケットスケジューラとを有し、
    前記送信セッション処理手段各々において当該レイヤで出力が許可されているデータ量を計算し、前記複数のレイヤ全てで共通に許可されるデータ量に基づいて前記パケットスケジューラが前記パケット出力を制御することを特徴とするセッション中継装置。
  15. 前記レイヤとして輻輳制御を行うレイヤのひとつとしてiSCSI(internet Small Computer System Interface)レイヤを含み、当該iSCSIレイヤにおいて前記受信端末から受信する受信可能データ量を基に送信可能データ量を決定する請求項14記載のセッション中継装置。
  16. 前記パケットスケジューラからのパケット出力情報を受信する手段と、
    パケット出力によって変更された前記送信バッファの空き容量を調べる手段とをさらに備え、
    パケット出力後に前記送信バッファの空き容量が一定量以上となった時に前記送信端末に対して前記受信可能データ量を生成して送信再開を促す請求項14記載のセッション中継装置。
  17. 前記受信セッション処理手段は、受信したパケットを前記送信バッファに直接格納し、前記送信バッファから直接出力する請求項1または2に記載のセッション中継装置。
  18. アプリケーションプログラムから前記送信バッファへとデータの書込みを行い、受信したデータを前記アプリケーションプログラムへと渡す請求項1または2に記載のセッション中継装置。
  19. 送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記送信端末と前記受信端末との間の通信を実現するセッション中継装置のセッション中継方法において、
    前記セッション中継装置側で行われる
    複数のレイヤに対応して設けられた受信セッション処理手段が前記送信端末に向けたセッションからのデータを受信する受信セッションステップと、
    複数のレイヤに対応して設けられた送信セッション処理手段が前記受信端末に向けたセッションへとデータを送信する送信セッションステップと、
    前記送信端末へと出力するデータを送信バッファに一時蓄えておくステップと、
    前記複数のレイヤのうち1つのレイヤに対応して設けられたパケットスケジューラが前記送信バッファからのパケット出力を制御するステップと、
    前記パケットスケジューラの制御に応答して前記送信バッファに蓄えられたデータを出力制御手段にて出力制御するステップとを有し、
    前記送信セッションステップにおいては、前記パケットスケジューラが対応するレイヤとは異なる少なくとも1つのレイヤに対応して設けられた前記送信セッション処理手段が、出力が許可されているデータ量を計算し、前記送信バッファからのパケット出力を制御するステップにおいては、該計算されたデータ量に基づいて前記パケットスケジューラが前記パケット出力を制御することを特徴とするセッション中継方法。
  20. 前記パケットスケジューラは、IPレイヤに対応して設けられていることを特徴とする請求項19記載のセッション中継方法。
  21. 前記受信セッションステップは、TCP(Transmission Control Protocol)セッションからのデータ受信処理を行うステップを備え、
    前記送信セッションステップは、前記TCPセッションへのデータ出力処理を行い、TCPウインドフロー制御によって決定される出力可能なデータ量を前記パケットスケジューラに通知することで、前記パケットスケジューラが通知されたデータ量を基にスケジューリング処理を行うステップを備える請求項19または20に記載のセッション中継方法。
  22. 前記パケットスケジューラが、前記セッションに割り当てられた帯域及び帯域比率を少なくとも含む通信資源割り当て方針と、前記送信セッション処理手段から通知された送信可能データ量と、前記送信バッファ内に蓄えられているデータ量とを基にパケット出力を行うセッションを決定し、前記セッション各々からのデータ出力を制御するステップをさらに備える請求項19または20に記載のセッション中継方法。
  23. 前記パケットスケジューラには前記セッション各々における未使用の通信資源を蓄えておく蓄積手段が含まれ、
    前記パケットスケジューラにおいて前記通信資源が必要になった際に前記蓄積手段に蓄えておいた通信資源を用いて通信を行うステップをさらに備えた請求項19または20に記載のセッション中継方法。
  24. 前記パケットスケジューラが、前記送信バッファ内に出力すべきデータがあり、前記出力制御手段からの出力許可データ量の制限によって未使用となった前記通信資源の帯域のみを前記蓄積手段に蓄えておくステップをさらに備えた請求項23記載のセッション中継方法。
  25. 前記送信セッションの制御パラメータを動的に変更する手段が、前記パケットスケジューラからのデータ出力状況に応じて前記制御パラメータを変更するステップをさらに備えた請求項19または20に記載のセッション中継方法。
  26. 前記セッションの未使用帯域が大きくなった時に当該セッションの制御パラメータを当該セッションからの出力帯域が小さくなる方向に変更し、前記セッションの未使用帯域が小さくなった時に当該セッションの制御パラメータを当該セッションからの出力帯域が大きくなる方向に変更し、前記制御パラメータの変更によって輻輳が発生した時に前記制御パラメータの変更を停止するステップをさらに備えた請求項25記載のセッション中継方法。
  27. 前記セッション各々に割り当てた帯域及び帯域比率を少なくとも含む通信資源割り当て量を動的に変更する手段が、前記パケットスケジューラからのデータ出力状況及び前記出力制御手段から通知される送信可能データ量に応じて前記制御パラメータを変更するステップをさらに備えた請求項26記載のセッション中継方法。
  28. 前記セッションの未使用帯域が大きくなった時に当該セッションの割り当て資源を減少させ、前記セッションの未使用帯域が小さくなった時に当該セッションの割り当て資源をその初期値を上限として増加させるとともに、前記出力制御手段から通知される送信可能データ量及びその平均のいずれかによって前記割り当て資源を増減するステップをさらに備えた請求項27記載のセッション中継方法。
  29. 前記送信端末からのセッションの送信処理を制御する帯域、送信可否、送信可能データ量を少なくとも含む送信制御情報を制御する受信レート制御手段が、前記送信バッファの空き容量及び前記パケットスケジューラからの情報に応じて前記送信端末への送信制御情報の変更及び生成のいずれかを行うステップをさらに備えた請求項19から請求項27のいずれか記載のセッション中継方法。
  30. パケット出力後に前記送信バッファの空き容量が一定量以上となった時に前記送信端末に対して送達確認パケットを送信して送信再開を促すステップをさらに備えた請求項29記載のセッション中継方法。
  31. 前記送信バッファの空き容量及びその平均の少なくとも一方を調べる手段で調べられた前記空き容量に応じて前記送信端末に対して送信帯域の減少を指示するステップをさらに備えた請求項30記載のセッション中継方法。
  32. 送信端末に向けたセッションと受信端末に向けたセッションとの間でデータの中継を行うことで前記送信端末と前記受信端末との間の通信を実現するセッション中継装置のセッション中継方法において、
    前記セッション中継装置側に、
    複数のレイヤ各々において前記送信端末に向けたセッションからのデータを受信する受信セッションステップと、
    前記複数のレイヤ各々において前記受信端末に向けたセッションへとデータを送信する送信セッションステップと、
    前記送信端末へと出力するデータを送信バッファに一時蓄えておくステップと、
    前記送信バッファからのパケット出力をパケットスケジューラにて制御するステップとを備え、
    前記送信セッション処理各々において当該レイヤで出力が許可されているデータ量を計算し、前記複数のレイヤ全てで共通に許可されるデータ量に基づいて前記パケットスケジューラが前記パケット出力を制御することを特徴とするセッション中継方法。
  33. 前記レイヤとして輻輳制御を行うレイヤのひとつとしてiSCSI(internet Small Computer System Interface)レイヤを含み、
    当該iSCSIレイヤにおいて前記受信端末から受信する受信可能データ量を基に送信可能データ量を決定するステップをさらに備えた請求項32記載のセッション中継方法。
  34. パケット出力後に前記送信バッファの空き容量が一定量以上となった時に前記送信端末に対して前記受信可能データ量を生成して送信再開を促すステップをさらに備えた請求項32記載のセッション中継方法。
  35. 前記受信セッションステップは、受信したパケットを前記送信バッファに直接格納し、前記送信バッファから直接出力するステップをさらに備えた請求項19または20に記載のセッション中継方法。
  36. アプリケーションプログラムから前記送信バッファへとデータの書込みを行い、受信したデータを前記アプリケーションプログラムへと渡すステップをさらに備えた請求項19または20に記載のセッション中継方法。
JP2005513252A 2003-08-20 2004-07-26 セッション中継装置及び中継方法 Expired - Fee Related JP4269176B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003295758 2003-08-20
JP2003295758 2003-08-20
PCT/JP2004/010604 WO2005020523A1 (ja) 2003-08-20 2004-07-26 セッション中継装置及び中継方法

Publications (2)

Publication Number Publication Date
JPWO2005020523A1 JPWO2005020523A1 (ja) 2007-10-04
JP4269176B2 true JP4269176B2 (ja) 2009-05-27

Family

ID=34213567

Family Applications (1)

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

Country Status (4)

Country Link
US (1) US7675898B2 (ja)
JP (1) JP4269176B2 (ja)
CN (1) CN1836411A (ja)
WO (1) WO2005020523A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001013583A2 (en) 1999-08-16 2001-02-22 Iready Corporation Internet jack
JP4235506B2 (ja) * 2003-08-14 2009-03-11 株式会社エヌ・ティ・ティ・ドコモ 送信装置、中継装置およびプログラム
US7957379B2 (en) * 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
JP4407556B2 (ja) * 2005-03-29 2010-02-03 日本電気株式会社 セッション中継装置、セッション中継方法およびプログラム
JP2007028113A (ja) * 2005-07-14 2007-02-01 Noritsu Koki Co Ltd データ処理ユニット
US7760633B2 (en) * 2005-11-30 2010-07-20 Cisco Technology, Inc. Transmission control protocol (TCP) congestion control using transmission delay components
JP4607031B2 (ja) * 2006-02-23 2011-01-05 三菱電機株式会社 無線基地局装置
US20090041013A1 (en) * 2007-08-07 2009-02-12 Mitchell Nathan A Dynamically Assigning A Policy For A Communication Session
US9413664B1 (en) 2008-09-23 2016-08-09 Spring Communications Company L.P. Resuming media objects delivered via streaming services upon data loss events
US8423071B1 (en) * 2008-11-25 2013-04-16 Sprint Communications Company L.P. Resuming media objects delivered via live streaming services upon data reduction events
US9106468B1 (en) 2009-01-30 2015-08-11 Sprint Communications Company L.P. Transferring media objects from one device to another device
JP5498889B2 (ja) * 2010-08-06 2014-05-21 アラクサラネットワークス株式会社 パケット中継装置および輻輳制御方法
JP5812612B2 (ja) * 2011-01-19 2015-11-17 沖電気工業株式会社 通信制御装置及びプログラム、並びに、通信システム
CN102104552B (zh) * 2011-04-02 2014-02-12 杭州华三通信技术有限公司 基于明确拥塞通知机制的报文控制方法及设备
US8811426B1 (en) * 2011-05-06 2014-08-19 Marvell International Ltd. Method and apparatus for dynamically switching an operating bandwidth of a wireless transceiver
KR101506770B1 (ko) * 2012-12-28 2015-03-27 삼성에스디에스 주식회사 데이터 전송 장치 및 방법
CN104065464B (zh) * 2013-03-18 2018-05-08 中国移动通信集团公司 一种调整tcp连接的初始窗口大小的方法和装置
US9219671B2 (en) * 2013-12-06 2015-12-22 Dell Products L.P. Pro-active MPIO based rate limiting to avoid iSCSI network congestion/incast for clustered storage systems
CN109155099A (zh) * 2016-05-19 2019-01-04 日本电信电话株式会社 传感器中继装置和传感器中继系统
CN113472959A (zh) * 2020-03-31 2021-10-01 兄弟工业株式会社 图像处理装置、服务器、以及图像处理装置的控制方法和只读存储器

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0888642A (ja) 1994-09-16 1996-04-02 Mitsubishi Electric Corp データ転送方式及びこれに適するlan用ノード
US6078564A (en) 1996-08-30 2000-06-20 Lucent Technologies, Inc. System for improving data throughput of a TCP/IP network connection with slow return channel
US6092115A (en) 1997-02-07 2000-07-18 Lucent Technologies Inc. Method for supporting per-connection queuing for feedback-controlled traffic
JPH1132078A (ja) 1997-07-11 1999-02-02 Hitachi Ltd 送信キュー管理方式および本方式を用いるインタネットワーク装置
JPH11112576A (ja) 1997-10-06 1999-04-23 Hitachi Ltd インターネットワーク装置のコネクション制御方法
JP3163479B2 (ja) 1997-10-09 2001-05-08 株式会社超高速ネットワーク・コンピュータ技術研究所 帯域制御方法
JP3448481B2 (ja) 1998-03-05 2003-09-22 Kddi株式会社 非対称回線用tcp通信高速化装置
JP4238415B2 (ja) 1998-05-26 2009-03-18 株式会社日立製作所 送信端末装置およびネットワークノードおよび中継スイッチ
JP2000049856A (ja) 1998-07-24 2000-02-18 Toshiba Corp ネットワーク間中継装置
JP3688525B2 (ja) 1998-09-29 2005-08-31 株式会社東芝 パケットフロー制御方法及びルータ装置
JP2001203697A (ja) 2000-01-19 2001-07-27 Matsushita Electric Ind Co Ltd フロー制御方法およびそれを実行する通信要素
JP2001358757A (ja) 2000-06-13 2001-12-26 Atr Adaptive Communications Res Lab ノード装置、データ転送システムおよびデータ転送方法
JP4199414B2 (ja) 2000-12-08 2008-12-17 富士通株式会社 パケット・スケジューラ
US7142508B2 (en) * 2000-12-22 2006-11-28 Radiance Technologies, Inc. System and method for controlling data transfer rates on a network
JP3790429B2 (ja) 2001-01-23 2006-06-28 富士通株式会社 パケットスケジューラ
JP2002271380A (ja) 2001-03-13 2002-09-20 Hitachi Kokusai Electric Inc ネットワーク制御装置
JP3830352B2 (ja) 2001-03-22 2006-10-04 ボーダフォン株式会社 通信プロトコル変換方法及びその装置
JP2002290451A (ja) 2001-03-28 2002-10-04 Seiko Epson Corp 通信帯域制御方法および通信帯域制御装置
US6990073B1 (en) * 2001-03-28 2006-01-24 Lsi Logic Corporation Data packet congestion management technique
JP2002312261A (ja) 2001-04-09 2002-10-25 Nippon Telegr & Teleph Corp <Ntt> ネットワークサービス中継方法及び中継装置
JP2001358771A (ja) 2001-04-26 2001-12-26 Nec Corp 通信品質制御装置
JP3755420B2 (ja) 2001-05-16 2006-03-15 日本電気株式会社 ノード装置

Also Published As

Publication number Publication date
WO2005020523A1 (ja) 2005-03-03
US7675898B2 (en) 2010-03-09
US20070058534A1 (en) 2007-03-15
JPWO2005020523A1 (ja) 2007-10-04
CN1836411A (zh) 2006-09-20

Similar Documents

Publication Publication Date Title
JP4269176B2 (ja) セッション中継装置及び中継方法
US10154120B2 (en) System and method for data transfer, including protocols for use in data transfer
US20170346725A1 (en) System And Method For Improving An Aggregated Throughput Of Simultaneous Connections
CN109714267B (zh) 管理反向队列的传输控制方法及系统
US20050213586A1 (en) System and method to increase network throughput
US20080101290A1 (en) Apparatus for Arq Controlling in Wireless Portable Internet System and Method Thereof
JP2019520745A5 (ja)
KR102476192B1 (ko) 패킷 전송 방법 및 관련 장치
JPWO2008023656A1 (ja) 通信装置
US9628406B2 (en) Intra switch transport protocol
JP4269177B2 (ja) セッション中継装置及び中継方法
CN103905328A (zh) 一种数据传输控制系统、方法及相关装置
US20020141353A1 (en) Method and device for improving a data throughput
WO2014194797A2 (en) Transmission control protocol(tcp)connection control parameter in-band signaling
JP5832335B2 (ja) 通信装置および通信システム
US11588736B2 (en) Communication apparatus, communication method, and program
US20240098155A1 (en) Systems and methods for push-based data communications
JP2007013449A (ja) シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置
US10187317B1 (en) Methods for traffic rate control and devices thereof
JP4506430B2 (ja) アプリケーションモニタ装置
WO2019124290A1 (ja) 送信データ量制御装置、方法および記録媒体
JP2006087010A (ja) 通信路制御装置およびそれを用いたネットワークシステム
CN106341348A (zh) 一种面向tcp业务的流量控制方法及接入网网元
EP2177064B1 (en) Control of data flow
KR101685658B1 (ko) Yellow-Light TCP : 모바일 데이터 전송에서의 에너지 절감형 프로토콜 방법

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

Ref document number: 4269176

Country of ref document: JP

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