JP4698645B2 - フロー制御装置およびフロー制御方法 - Google Patents

フロー制御装置およびフロー制御方法 Download PDF

Info

Publication number
JP4698645B2
JP4698645B2 JP2007206728A JP2007206728A JP4698645B2 JP 4698645 B2 JP4698645 B2 JP 4698645B2 JP 2007206728 A JP2007206728 A JP 2007206728A JP 2007206728 A JP2007206728 A JP 2007206728A JP 4698645 B2 JP4698645 B2 JP 4698645B2
Authority
JP
Japan
Prior art keywords
packet
data
unit
token
terminal
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
JP2007206728A
Other languages
English (en)
Other versions
JP2009044413A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2007206728A priority Critical patent/JP4698645B2/ja
Publication of JP2009044413A publication Critical patent/JP2009044413A/ja
Application granted granted Critical
Publication of JP4698645B2 publication Critical patent/JP4698645B2/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
    • H04L47/215Flow control; Congestion control using token-bucket
    • 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/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • 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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • 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/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、端末間でネットワークを介して送受信されるデータのフロー制御に関する。
パソコンなどの端末の間では、インターネットなどのコンピュータネットワークを介した通信が行われる。この通信によってファイル等のデータが転送される。この種のデータ転送システムでは、トランスポート層のプロトコルとして、標準的なトランスポートプロトコルであるTCP(Transmission Control Protocol)が用いられることが多い。
また、データ転送においては大容量のデータを高速に転送することが要求されることがある。これに対して、TCPのウィンドウサイズを一定に制御することでスループットを向上させる検討が数多くなされている(非特許文献1および2参照)。
"ストリーミング配信に適したTCP制御方式の提案",電子情報通信学会通信ソサイエティ大会(B−11−2),2006年9月 "エッジルータにおけるTCPフローレート制御方式の検討",電子情報通信学会総合大会,2007年3月
TCPでは、データを保存しておくウィンドウのサイズをパケット廃棄に従って自律的に変化させる帯域制御が行われる。しかし、保証された帯域以上のトラヒックがネットワークに流入するのを防ぐためにネットワークの入り口で流入制限を行っている帯域保証ネットワークでのデータ転送においては、スループットが鋸歯状になり、保証された帯域を十分に活用できないという課題があった。
上述したTCPプロトコルに変更を加えることで保証された帯域に合わせて一定のスループットでデータを送信する技術や広告ウィンドウサイズを一定に制御する技術は、この課題に対する対策となる。
しかし、これらの技術は、遅延揺らぎの影響を考慮に入れておらず、遅延揺らぎによって、保証された帯域以上のスループットになってしまい、ネットワークの入り口におけるポリシング制御によってパケット廃棄が発生する。このため、スループットが極端に低下してしまう課題があった。
本発明の目的は、帯域保証ネットワークでのデータ転送において、遅延揺らぎを許容することで保証帯域を効率よく利用して高いスループットを保つ装置および方法を提供することである。
上記目的を達成するために、本発明のフロー制御装置は、データ送信端末からデータ受信端末へデータを送信できる帯域が保証された帯域保証ネットワーク内で前記データ送信端末と前記データ受信端末の間に配置されるフロー制御装置であって、前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのパケットのフローに割り当てられた保証帯域を保持する帯域情報保持部と、前記データ送信端末と前記データ受信端末との間で通信されるパケットを受け付け、当該パケットの送信を制御する送受信部と、前記データ送信端末と前記データ受信端末との間のパケットの第1往復時間と、前記データ送信端末と前記フロー制御装置との間のパケットの第2往復時間と、を計測する計測部と、前記保証帯域に応じたレートでトークンを追加していき、当該トークンを用いたトークンバケット方式のポリシング制御を行って、前記送受信部に、当該送受信部が受信したデータパケットの送信または廃棄を実行させるトークン管理部と、前記送受信部が前記データ送信端末宛のACKパケットを受け付けた際、当該ACKパケットの受付時から前記第2往復時間経過した時の前記トークン管理部のトークン量を、当該ACKパケットを用いて予想する仮想トークン管理部と、前記帯域情報保持部内の保証帯域と、前記計測部にて計測された第1往復時間と、前記仮想トークン管理部にて予想されたトークン量と、に基づいて、前記パケットのフローを管理する管理部と、を含む。
また、本発明のフロー制御方法は、データ送信端末からデータ受信端末へデータを送信できる帯域が保証された帯域保証ネットワーク内で前記データ送信端末と前記データ受信端末の間に配置され、また、前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのパケットのフローに割り当てられた保証帯域を保持する帯域情報保持部と、前記データ送信端末と前記データ受信端末との間で通信されるパケットを受け付け、当該パケットの送信を制御する送受信部と、を含むフロー制御装置が行うフロー制御方法であって、前記データ送信端末と前記データ受信端末との間のパケットの第1往復時間と、前記データ送信端末と前記フロー制御装置との間のパケットの第2往復時間と、を計測する計測ステップと、前記保証帯域に応じたレートでトークンを追加していき、当該トークンを用いたトークンバケット方式のポリシング制御を行って、前記送受信部に、当該送受信部が受信したデータパケットの送信または廃棄を実行させるトークン管理ステップと、前記送受信部が前記データ送信端末宛のACKパケットを受け付けた際、当該ACKパケットの受付時から前記第2往復時間経過した時の前記トークンの量を、当ACKパケットを用いて予想する仮想トークン管理ステップと、前記帯域情報保持部内の保証帯域と、前記第1往復時間と、前記予想されたトークン量と、に基づいて、前記パケットのフローを管理する管理ステップと、を含む。
上記発明によれば、パケットのフローが、保証帯域と、データ送信端末とデータ受信端末との間のデータの往復時間と、予想されたトークン量と、に基づいて管理される。
予想されたトークン量は、送受信部がデータ送信端末宛のACKパケットを受け付けた際、ACKパケットの受付時から第2往復時間経過した時のトークン量を示す。つまり、予想されたトークン量は、データ送信端末がそのACKパケットの受信に応じて送信するデータパケットを送受信部が受信した時のトークン量の予想値となる。
このため、遅延揺らぎを考慮してトークン量を予測でき、その予測されたトークン量を用いてパケットのフローを管理できる。よって、遅延揺らぎを許容可能となり、保証帯域を効率よく利用して高いスループットを保つことが可能になる。
前記計測部は、前記データ送信端末と前記データ受信端末とがコネクションを確立するために用いるパケットを利用して、前記第1および第2往復時間を計測することが望ましい。
上記発明によれば、コネクションを確立するために用いるパケットを、各往復時間を計測するために利用できる。このため、パケットの増加を抑制可能になる。
前記仮想トークン管理部は、前記トークン量を予想するための仮想トークンを保持することが望ましい。
上記発明によれば、仮想トークンを用いてトークン量を予想することが可能になる。
前記仮想トークン管理部は、前記トークン管理部で前記トークンが追加される時より前記第2往復時間前に、当該トークンの量に応じて前記仮想トークンの量を追加し、前記送受信部が前記ACKパケットを受け付けるごとに、当該ACKパケットのACKナンバーを取得し今回取得したACKナンバーと前回取得したACKナンバーとの差を前記仮想トークンから引くことが望ましい。
上記発明によれば、仮想トークンを用いてトークン量を高い精度で予想することが可能になる。
前記管理部は、前記保証帯域と前記往復時間に基づいてウィンドウサイズを算出するウィンドウサイズ算出部と、前記仮想トークンの量にしたがって、前記ACKパケットのウィンドウサイズを、前記ウィンドウサイズ算出部にて算出されたウィンドウサイズと、当該算出されたウィンドウサイズより小さい値のウィンドウサイズと、のいずれかに書き換える広告ウィンドウ書き込み部と、を含むことが望ましい。
上記発明によれば、例えば、仮想トークンの量が少なくなったときに、ウィンドウサイズを小さくできる。よって、仮想トークンの量に応じて、保証帯域を効率よく利用することが可能になる。
前記送受信部が前記ACKパケットを受け付けた際、前記仮想トークンの量が前記ACKナンバーの差より少ない場合、当該ACKパケットをバッファリングするバッファ部をさらに含むことが望ましい。
上記発明によれば、仮想トークンの量に応じて、保証帯域を効率よく利用することが可能になる。
前記バッファ部は、前記仮想トークンの量が増加した場合、前記ACKパケットを前記管理部に送信することが望ましい。
上記発明によれば、仮想トークンの量に応じて、保証帯域を効率よく利用することが可能になる。
本発明によれば、データ送信端末からデータ受信端末への送信するデータのレートを保証帯域内で安定的に制御できるので、保証帯域を効率よく利用することが可能となる。
一般的なTCPでは、広告ウィンドウと輻輳ウィンドウという2つのウィンドウが定義される。広告ウィンドウのサイズは、受信バッファの状態に依存して、受信側で決定される。輻輳ウィンドウのサイズは、パケット廃棄の状況に応じて、データ送信側で決定される。フロー制御に用いるウィンドウサイズには、広告ウィンドウサイズと輻輳ウィンドウサイズのうち、いずれか小さいほうが選択される。このウィンドウサイズは、ACKパケットが到着したときに更新される。
本実施形態では、データの送信側となるデータ送信端末と、データの受信側となるデータ受信端末との間は、帯域保証ネットワークによって帯域が保証される構成である。
従って、保証帯域以下でデータを送出している限り、パケットの廃棄が生じないことが想定される。それゆえ、データが保証帯域以下で送出されるように広告ウィンドウサイズを調節すれば、パケットの廃棄を防ぐことができる。
パケットの廃棄が生じなければ、輻輳ウィンドウサイズが小さくならないので、常に広告ウィンドウサイズが、TCPウィンドウサイズに採用されることになる。その結果、スループットが鋸歯状に変動しなくなり、保証帯域の効率的な利用が可能となる。
そこで、本実施形態では、データ送信端末とデータ受信端末の間で、ポリサー装置が、データ送信側とデータ受信側の間の伝播遅延時間(第1往復期間)と、帯域保証ネットワークによる保証帯域とから、データが保証帯域以内で送出されるようなウィンドウサイズを算出し、データ受信端末からデータ送信端末へのACKパケットに記載される広告ウィンドウサイズを、算出したウィンドウサイズの値に書き換える。
これにより、データ送信端末からデータ受信端末へ送信するデータのレートを保証帯域内で安定的に制御できるので、保証帯域を効率よく利用することができる。
また、ポリシング制御のトークン容量を予測した上での、広告ウィンドウサイズの書き換えとACKパケットのバッファリングを行うことで、遅延揺らぎの影響を許容し、保証帯域を効率よく利用して高いスループットを保つことが可能となる。
ここで、本実施形態の概要を説明する。
本発明の一実施形態のポリサー装置は、フロー制御装置の一例であり、トークンパケット型のポリシング制御を行い、かつ、広告ウィンドウサイズの書き換えを行う。
また、ポリサー装置は、コネクション確立パケットを用いて、データ送信端末とポリサー装置の往復伝播遅延時間(以下「S−RTT」(第2往復時間)と称する。)と、データ送信端末とデータ受信端末の往復伝播遅延時間(以下「RTT」(第1往復時間)と称する。)と、を計測する。
ポリサー装置は、広告ウィンドウサイズの書き換えには、保証帯域とエンド間のRTTから算出したウィンドウサイズ(以下「BGWND)を用いてもよいとする。
また、ポリサー装置は、収容するフロー数×ACK1パケットサイズ分のバッファ(バッファ部)と、仮想トークン(VT:Virtual Token)と、を保持する。VTは、データ送信端末宛のACKパケットがポリサー装置を通過した瞬間に、その瞬間からS−RTT後に通過するデータ(データパケット)によって減少するトークン容量を予測するためのものである。VTが追加されるタイミングは、トークンが追加されるS−RTT前である。
以下に、処理手順を示す。
Step(1):ACKパケットがポリサー装置通過時
ポリサー装置が、データ送信端末宛てのACKパケット内のACKナンバーをカウントし、現在通過したACKパケットと1つ前に通過したACKパケットのACKナンバーの差(以下「DiffACK」と称する。)だけVTから引く。これは、S−RTT後にDiffACKサイズのデータがポリサー装置を通過するためである。
なお、Step(1)において、DiffACKを引く前のVT容量が、DiffACKより大きい場合は、以下のような処理が行われる。
ポリサー装置は、VT=VT−DiffACKに従ってVTを減らし、ACKパケット内の広告ウィンドウサイズをBGWNDに書き換え、そのACKパケットをデータ送信端末に送信する。
また、Step(1)において、DiffACKを引く前のVT容量が、DiffACK以下の場合は、以下のような処理が行われる。
これ以上のデータ送信を控えさせるために、ポリサー装置は、ACK内の広告ウィンドウサイズを1に書き換え、例えば次のACKパケットが通過するまでバッファに溜め、その後、データ送信端末に送信する。
Step(2):ポリサー装置は、VTの容量が増えるまでStep(1)を繰り返し、VTが増加した瞬間にバッファ内ACKパケットの広告ウィンドウサイズを、例えば、min(BGWND,VT)に書き換え、ACKパケットをデータ送信端末に送信する。
本実施形態では、ポリサー装置がデータ受信端末からデータ送信端末へ通知されるACKパケットを操作するのみなので、データ送信端末はそれを元に既存の動作をするだけであり、データ送信端末のプロトコルに本発明に特有の機能を加えることなくスループットを改善することができる。
以下、本実施形態について図面を参照して詳細に説明する。
図1は、本実施形態によるデータ送信システムの構成を示すブロック図である。図1を参照すると、本実施形態のデータ送信システムは、ポリサー装置11、12、および、帯域管理サーバ13を有している。
データ送信端末14は、ポリサー装置11に接続され、データ受信端末15は、ポリサー装置12に接続されている。
ポリサー装置11とポリサー装置12は、帯域保証ネットワーク16上でデータを送受信することができる。これにより、データ送信端末14からのデータが、ポリサー装置11とポリサー装置12を介して、データ受信端末15へ転送される。
帯域管理サーバ13は、帯域保証ネットワーク16の全リンクの帯域情報を集中的に管理する。
帯域情報には、リンクに割り当てられた保証帯域の情報が含まれている。
帯域管理サーバ13は、管理している各リンクの帯域情報を、ポリサー装置11および12に通知する。
帯域管理サーバ13による帯域管理によって、データ送信端末14からデータ受信端末15へのリンクでは、帯域保証ネットワーク16において保証帯域が確保される。
その結果、データ送信端末14が保証帯域以下でデータを送出する限り、保証帯域ネットワーク16内でのパケット廃棄は発生しない。
また、ポリサー装置11は、ポリサー装置11とデータ送信端末14の間の、データ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間17(以下、単に「往復伝搬遅延時間17」とも称する。)、および、データ送信端末14とデータ受信端末15の間の、データ送信端末とデータ受信端末間の往復伝搬遅延時間18(以下、単に「往復伝搬遅延時間18」とも称する。)を計測する。
図2は、本実施形態のポリサー装置の構成を示すブロック図である。
図2を参照すると、ポリサー装置11は、データ受信部21、フロー識別・振り分け部22、バッファ部23、データ送信部24、帯域情報保持部25、伝播遅延時間算出部26、フロー情報保持部27、トークン管理部28、仮想トークン管理部29、ウィンドウサイズ算出部30、および、広告ウィンドウサイズ書き込み部31を有している。
帯域情報保持部25は、帯域管理サーバ13から通知された、サービス対象ユーザの帯域情報とユーザ情報(宛先および送信元のIPアドレス、ならびに、宛先および送信元のポート番号)とを対応付けて保持する。なお、以下の説明では、宛先がデータ受信端末15であり、送信元がデータ送信端末14とする。
帯域情報には、リンクに割り当てられた保証帯域の情報が含まれている。リンクは、ユーザ情報により識別することができる。
データ受信部21は、データパケットやACKパケットなどのパケットを受信し、そのパケットを、フロー識別・振り分け部22に送る。
フロー識別・振り分け部22は、データ受信部21からパケットを受け付けた場合、そのパケット内の宛先および送信元の情報と、帯域情報保持部25に保持されているユーザ情報と、に基づいて、そのパケットの通信が、帯域を保証したデータ転送のサービスの対象となるフロー(サービス対象フロー)か、または、そのサービスの対象とならないフロー(サービス非対象フロー)かを識別する。
例えば、データ受信部21からのパケット内の宛先および送信元の情報が、ユーザ情報として、帯域情報保持部25に保持されている場合、フロー識別・振り分け部22は、そのパケットの通信がサービス対象フローであると判断する。
一方、データ受信部21からのパケット内の宛先および送信元の情報が、ユーザ情報として、帯域情報保持部25に保持されていない場合、フロー識別・振り分け部22は、そのパケットの通信がサービス非対象フローであると判断する。
フロー識別・振り分け部22は、データ送信端末14とデータ受信端末15間でコネクションが確立されていない状況では、その判断結果およびパケットの種類に基づいて、伝播遅延時間算出部26に往復伝播遅延時間の測定指示を行う。
具体的には、フロー識別・振り分け部22は、データ送信端末14がデータ受信端末15宛てに送信したSYNパケット(サービス対象フローのパケット)を受け付けた場合、そのSYNパケットに対応するユーザ情報を帯域情報保持部25から読み取り、そのユーザ情報と、往復伝搬遅延時間18(データ送信端末とデータ受信端末間の往復伝搬遅延時間)の計測開始要求とを、伝播遅延時間算出部26に送る。
フロー識別・振り分け部22は、データ受信端末15がデータ送信端末14宛てに送信したSYN/ACKパケット(サービス対象フローのパケット)を受け付けた場合、そのSYN/ACKパケットに対応するユーザ情報を帯域情報保持部25から読み取り、そのユーザ情報と、往復伝搬遅延時間17(データ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間)の計測開始要求とを、伝播遅延時間算出部26に送る。
フロー識別・振り分け部22は、データ送信端末14がデータ受信端末15宛てに送信したACKパケット(サービス対象フローのパケット)を受け付けた場合、そのACKパケットに対応するユーザ情報を帯域情報保持部25から読み取り、そのユーザ情報と、往復伝搬遅延時間17の計測終了要求と、往復伝搬遅延時間18の計測終了要求とを、伝播遅延時間算出部26に送る。
フロー識別・振り分け部22は、データ受信端末15がデータ送信端末14宛てに送信したSYNパケット(サービス対象フローのパケット)を受け付けた場合、そのSYNパケットに対応するユーザ情報を帯域情報保持部25から読み取り、そのユーザ情報と、往復伝搬遅延時間17の計測開始要求と、往復伝搬遅延時間18の計測開始要求とを、伝播遅延時間算出部26に送る。
フロー識別・振り分け部22は、データ送信端末14がデータ受信端末15宛てに送信したSYN/ACKパケット(サービス対象フローのパケット)を受け付けた場合、そのSYN/ACKパケットに対応するユーザ情報を帯域情報保持部25から読み取り、そのユーザ情報と、往復伝搬遅延時間17の計測終了要求とを、伝播遅延時間算出部26に送る。
フロー識別・振り分け部22は、データ受信端末15がデータ送信端末14宛てに送信したACKパケット(サービス対象フローのパケット)を受け付けた場合、そのACKパケットに対応するユーザ情報を帯域情報保持部25から読み取り、そのユーザ情報と、往復伝搬遅延時間18の計測終了要求とを、伝播遅延時間算出部26に送る。
また、フロー識別・振り分け部22は、データ送信端末14とデータ受信端末15間でコネクションが確立された状況では、パケットの通信がサービス対象フローであるか否かの判断結果およびパケットの種類に基づいて、(1)配線22a〜22cを用いたパケットの振り分け、(2)トークン管理部28へのデータパケットサイズの通知、(3)仮想トークン管理部29へのACKパケット内のACKナンバーの通知、および、(4)ウィンドウサイズ算出部30へのウィンドウサイズ計算指示を行う。
以下、(1)〜(4)について説明する。
(1)パケットの振り分け
フロー識別・振り分け部22は、サービス対象フローのACKパケット(具体的には、データ受信端末15から送信されたデータ送信端末14宛てのACKパケット)を受け付け、さらに、仮想トークン管理部29からACKパケット転送要求を受け付けた場合、そのサービス対象フローのACKパケットを、配線22aを通して広告ウィンドウササイズ書き込み部31に振り分ける。
フロー識別・振り分け部22は、サービス対象フローのACKパケット(具体的には、データ受信端末15から送信されたデータ送信端末14宛てのACKパケット)を受け付け、さらに、仮想トークン管理部29からACKパケットバッファリング要求を受け付けた場合、そのサービス対象フローのACKパケットを、配線22bを通してバッファ部23に振り分ける。
フロー識別・振り分け部22は、サービス非対象フローのパケットを受け付けた場合、および、サービス対象フローのデータパケットを受け付けた場合、そのパケットを、配線22cを通してデータ送信部24に振り分ける。
(2)トークン管理部28へのデータパケットサイズの通知
フロー識別・振り分け部22は、サービス対象フローのデータパケットを受け付けた場合、そのデータパケットのサイズを、トークン管理部28に通知する。
(3)仮想トークン管理部29へのACKパケット内のACKナンバーの通知
フロー識別・振り分け部22は、データ受信端末15からデータ送信端末14宛てのACKパケット(サービス対象フローのパケット)を受け付けた場合、そのACKパケット内のACKナンバーを、仮想トークン管理部29に通知する。
(4)ウィンドウサイズ算出部30へのウィンドウサイズ計算指示
フロー識別・振り分け部22は、データ受信端末15からデータ送信端末14宛てのACKパケット(サービス対象フローのパケット)を受け付けた場合、そのACKパケットに対応するユーザ情報を帯域情報保持部25から読み取り、そのユーザ情報と、ウィンドウサイズ計算要求とを、ウィンドウサイズ算出部30を送る。
バッファ部23は、ポリサー装置11が収容するフロー数×ACK1パケットサイズ分の容量を有し、フロー識別・振り分け部22からのACKパケットをバッファリングし、また、仮想トークン管理部29からバッファリング解除要求を受け付けた場合、バッファリング中のACKパケットを広告ウィンドウサイズ書き込み部31へ送る。
データ送信部24は、フロー識別・振り分け部22からのパケットと、広告ウィンドウサイズ書き込み部31からのACKパケットとを、帯域保証ネットワーク16を介して、ポリサー装置12へ送信する。
伝搬遅延時間算出部26は、計測部の一例であり、データ送信端末14とポリサー装置11の間の往復伝播遅延時間17(第2往復時間)と、データ送信端末14とデータ受信端末15の間の往復伝播遅延時間18(第1往復時間)を計測する。
具体的には、伝搬遅延時間算出部26は、ユーザ情報と往復伝搬遅延時間17の計測開始要求を受け付けると、往復伝播遅延時間17の計測を開始し、ユーザ情報と往復伝搬遅延時間17の計測終了要求を受け付けると、往復伝播遅延時間17の計測を終了する。
また、伝搬遅延時間算出部26は、ユーザ情報と往復伝搬遅延時間18の計測開始要求と受け付けると、往復伝播遅延時間18の計測を開始し、ユーザ情報と往復伝搬遅延時間18の計測終了要求を受け付けると、往復伝播遅延時間18の計測を終了する。
伝搬遅延時間算出部26は、ユーザ情報と往復伝播遅延時間18とをフロー情報保持部27に送り、また、ユーザ情報と往復伝播遅延時間17とをトークン管理部28に送る
フロー情報保持部27は、フロー識別・振り分け部22で識別されるサービス対象フローのコネクション情報と、伝搬遅延時間算出部26で算出された往復伝播遅延時間18とを対応付けて保持する。
例えば、フロー情報保持部27は、伝搬遅延時間算出部26からのユーザ情報(サービス対象フローのコネクション情報)および往復伝播遅延時間18を互いに対応付けて保持する。
トークン管理部28は、サービス対象フローが保証帯域以上のレートでのデータを送出しないように、保証帯域に応じた任意のタイミング(レート)でトークンを追加する。
なお、トークン管理部28は、保証帯域に応じたレートでトークンを追加していき、そのトークンを用いたトークンバケット方式のポリシング制御を行って、フロー識別・振り分け部22に、フロー識別・振り分け部22が受信したデータパケットの送信または廃棄を実行させる
例えば、トークン管理部28は、フロー識別・振り分け部22からデータパケットのサイズを受け付けたとき、すなわち、サービス対象フローのデータパケットがフロー識別・振り分け部22に到着したときに、そのサイズ以上のトークンがあれば、その到着したデータパケットのサイズ分のトークンを減らし、パケット転送処理をフロー識別・振り分け部22に実行させる。
一方、そのサイズ以上のトークンがない場合は、トークン管理部28は、パケット廃棄処理をフロー識別・振り分け部22に実行させる。
また、トークン管理部28は、伝播遅延時間算出部26からユーザ情報と往復伝播遅延時間17とを受け付けた場合、その後にパケットを追加するタイミングより往復伝播遅延時間17前のタイミング(仮想トークン追加時刻)を算出する。
トークン管理部28は、その仮想トークン追加時刻に、追加予定のトークン量を示した仮想トークン追加要求を仮想トークン管理部29に送る。なお、追加予定のトークン量は、仮想トークン追加要求を送信してから往復伝播遅延時間17後にトークン管理部28が追加するトークン量である。
仮想トークン管理部29は、仮想トークン追加要求を受け付けた場合、仮想トークン追加要求に示されたトークン量だけ仮想トークンを追加する。
仮想トークン管理部29は、ACKパケットがフロー識別・振り分け部22に受け付けられたときに、具体的には、フロー識別・振り分け部22からACKナンバーを受け付けた場合、データ送信端末14がそのACKパケットの受信に応じて送信するデータパケットをフロー識別・振り分け部22が受信する(往復伝播遅延時間17経過)ことによって減少するトークン管理部28トークン容量(DiffACK)を予測する。
仮想トークン管理部29は、DiffACK分の仮想トークンが存在する場合、DiffACK分の仮想トークンを減らし、フロー識別・振り分け部22に、ACKパケット転送要求を送信する。
仮想トークン管理部29は、DiffACK分の仮想トークンが存在しない場合、フロー識別・振り分け部22に、ACKパケットバッファリング要求を送信し、また、ウィンドウサイズ算出部30に、ゼロウィンドウ要求を送信する。
また、仮想トークン管理部29は、バッファ部23がACKパケットをバッファリングしている状況でトークン管理部28から仮想トークン追加要求を受け付けた場合、仮想トークン追加要求内の仮想トークンを追加すると共に、バッファ部23にバッファリング解除要求を送信する。
ウィンドウサイズ算出部30は、フロー情報保持部27に保持されている往復伝搬遅延時間18と、帯域情報保持部25に保持されている帯域情報の保証帯域と、を用いて、データの送出帯域が保証帯域以内となるようなウィンドウサイズを算出する。
また、ウィンドウサイズ算出部30は、仮想トークン管理部29からゼロウィンドウ要求を受け付けた場合、データ送信端末14が新たにデータを送出しない大きさのウィンドウサイズを算出する。
ウィンドウサイズ算出部30は、その算出されたウィンドウサイズと、そのサービス対象フローのユーザ情報とを、広告ウィンドウサイズ書き込み部31に通知する。
広告ウィンドウサイズ書き込み部31は、データ受信端末15からデータ送信端末14へのACKパケットのウィンドウフィールドに、ウィンドウサイズ算出部30で算出されたウィンドウサイズの値を書き込み、そのACKパケットをデータ送信部24に送る。
なお、データ受信部21とフロー識別・振り分け部22とデータ送信部24とは、送受信部1に含まれる。送受信部1は、データ送信端末14とデータ受信端末15との間で通信されるパケットを受け付け、そのパケットの送信を制御する。
また、フロー情報保持部27とウィンドウサイズ算出部30と広告ウィンドウサイズ書き込み部31とは、管理部2に含まれる。管理部2は、帯域情報保持部25内の保証帯域と、伝搬遅延時間算出部26部にて計測された往復伝搬遅延時間17と、仮想トークン管理部29にて予想された仮想トークン量と、に基づいて、データ送信端末14とデータ受信端末15の間のパケットのフローを管理する。
次に、動作を説明する。
図3は、データ送信端末14とデータ受信端末15とのコネクションを確立しながら往復伝播遅延時間を計測するときのポリサー装置11内のブロック間の信号のやり取りを示すシーケンス図である。
以下、図3を参照して、コネクションの確立動作と復伝播遅延時間の計測動作とを説明する。
データ送信端末14は、データ受信端末15宛にSYNパケットを送信する。
フロー識別・振り分け部22は、SYNパケットを観測すると(ステップ101)、そのSYNパケットがデータ送信端末14からデータ受信端末15宛てに送信されたSYNパケットである場合(ステップ102)、そのSYNパケットをデータ送信部24に送り、そのSYNパケットに対応するユーザ情報と往復伝搬遅延時間18の計測開始要求とを伝播遅延時間算出部26に送る(ステップ105)。
データ送信部24は、そのSYNパケットを受け付けると、そのSYNパケットを、帯域保証ネットワーク16を介してポリサー装置12へ送信する。
伝播遅延時間算出部26は、ユーザ情報と往復伝搬遅延時間18の計測開始要求とを受け付けると、データ送信端末14とデータ受信端末15の間の往復伝播遅延時間18の計測を開始する。
データ受信端末15は、ポリサー装置12から、そのSYNパケットを受け付けると、データ送信端末14宛てにSYN/ACKパケットを送信する。
その後、フロー識別・振り分け部22は、データ受信端末15からデータ送信端末14宛てに送信されたSYN/ACKパケットを観測すると(ステップ103)、そのSYN/ACKパケットをデータ送信部24に送り、そのSYN/ACKパケットに対応するユーザ情報と往復伝搬遅延時間17の計測開始要求とを、伝播遅延時間算出部26に送る(ステップ107)。
データ送信部24は、そのSYN/ACKパケットを受け付けると、そのSYN/ACKパケットを、データ送信端末14へ送信する。
伝播遅延時間算出部26は、ユーザ情報と往復伝搬遅延時間17の計測開始要求とを受け付けると、データ送信端末14とデータ送信端末側ポリサー装置11の間の往復伝搬遅延時間17の計測を開始する。
データ送信端末14は、そのSYN/ACKパケットを受け付けると、データ受信端末15宛にACKパケットを送信する。
その後、フロー識別・振り分け部22は、データ送信端末14からデータ受信端末15宛てに送信されたACKパケットを観測すると(ステップ104)、そのACKパケットをデータ送信部24に送り、そのACKパケットに対応するユーザ情報と、往復伝搬遅延時間17の計測終了要求と、往復伝搬遅延時間18の計測終了要求とを、伝播遅延時間算出部26に送る(ステップ109)。
データ送信部24は、そのACKパケットを受け付けると、そのACKパケットを、帯域保証ネットワーク16を介してポリサー装置12へ送信する。よって、データ送信端末14とデータ受信端末15間でコネクションが確立される。
伝播遅延時間算出部26は、ユーザ情報と、往復伝搬遅延時間17の計測終了要求と、往復伝搬遅延時間18の計測終了要求とを受け付けると、往復伝搬遅延時間17および往復伝搬遅延時間18の計測を終了する。
一方、SYNパケットがデータ受信端末15からデータ送信端末14宛に送信された場合(ステップ102)、フロー識別・振り分け部22は、そのSYNパケットをデータ送信部24に送り、そのSYNパケットに対応するユーザ情報と、往復伝搬遅延時間17の計測開始要求と、往復伝搬遅延時間18の計測開始要求とを、伝搬遅延時間算出部26に送る(ステップ106)。
データ送信部24は、そのSYNパケットを受け付けると、そのSYNパケットを、データ送信端末14へ送信する。
伝搬遅延時間算出部26は、ユーザ情報と往復伝搬遅延時間17の計測開始要求と往復伝搬遅延時間18の計測開始要求とを受け付けると、データ送信端末14とデータ送信端末側ポリサー装置11の間の往復伝搬遅延時間17およびデータ送信端末14とデータ受信端末15の間の往復伝搬遅延時間18の計測を開始する。
その後、フロー識別・振り分け部22は、データ送信端末14からデータ受信端末15へのSYN/ACKパケットを観測すると(ステップ103)、そのSYN/ACKパケットをデータ送信部24に送り、そのSYN/ACKパケットに対応するユーザ情報と、往復伝搬遅延時間17の計測終了要求とを、伝搬遅延時間算出部26に送る(ステップ108)。
データ送信部24は、そのSYN/ACKパケットを受け付けると、そのSYN/ACKパケットを、帯域保証ネットワーク16を介してポリサー装置12へ送信する。
伝搬遅延時間算出部26は、ユーザ情報と往復伝搬遅延時間17の計測終了要求とを受け付けると、データ送信端末14とデータ送信端末側ポリサー装置11の間の往復伝搬遅延時間17の計測を終了する。
その後、フロー識別・振り分け部22は、データ受信端末15からデータ送信端末14へのACKパケットを観測すると(ステップ104)、そのACKパケットをデータ送信部24に送り、そのACKパケットに対応するユーザ情報と、往復伝搬遅延時間18の計測終了要求とを、伝搬遅延時間算出部26に送る(ステップ110)。
データ送信部24は、そのACKパケットを受け付けると、そのACKパケットを、データ送信端末14へ送信する。よって、データ送信端末14とデータ受信端末15間でコネクションが確立される。
伝搬遅延時間算出部26は、ユーザ情報と往復伝搬遅延時間18の計測終了要求とを受け付けると、データ送信端末14とデータ受信端末15の間の往復伝搬遅延時間18の計測を終了する。
以上のようにして、データ送信端末14とデータ受信端末15間でコネクションが確立されながら、ポリサー装置11とデータ送信端末14の間の往復伝搬遅延時間17と、データ送信端末14とデータ受信端末15の間の往復伝搬遅延時間18が計測される。
伝搬遅延時間算出部26は、往復伝搬遅延時間18の計測を終えると、計測した往復伝搬遅延時間18をユーザ情報と共に、データ送信端末とデータ受信端末間の往復伝搬遅延時間18報告として、フロー情報保持部27に通知する(ステップ111)。
フロー情報保持部27は、データ送信端末とデータ受信端末間の往復伝搬遅延時間18報告を受け付けると、データ送信端末とデータ受信端末間の往復伝搬遅延時間18報告を保持する。
また、伝搬遅延時間算出部26は、往復伝搬遅延時間17の計測を終えると、計測した往復伝搬遅延時間17をユーザ情報と共に、データ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間17報告として、トークン管理部28に通知する(ステップ112)。
トークン管理部28は、通知されたデータ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間17を元に、仮想トークン管理部29に仮想トークン追加要求を通知する仮想トークン追加時刻を算出する(ステップ113)。
図4は、データ送信端末14とデータ受信端末15間でコネクションが確立された後にフロー識別・振り分け部22が行うパケット振り分けを説明するための説明図である。
図5は、フロー識別・振り分け部22がデータ受信端末15からサービス対象フローのACKパケットを受け付けたときに行われるウィンドウサイズ算出動作およびACKパケットの振り分け制御動作を説明するためのシーケンス図である。
図6は、ACKパケットの振り分け制御動作に基づいてバッファ部23にバッファリングされたACKパケットを広告ウィンドウサイズ書き込み部31に送る動作を説明するためのシーケンス図である。
図7は、広告ウィンドウサイズ書き込み部31がACKパケットに広告ウィンドウサイズを書き込む時のポリサー装置内のブロック間の信号のやり取りを示すシーケンス図である。
以下、図4から図7を参照して、フロー識別・振り分け部22がデータ受信端末15からサービス対象フローのACKパケットを受け付けたときのポリサー装置内の動作を説明する。
データ送信端末14とデータ受信端末15間でコネクションが確立されると、データの転送が開始される。
ポリサー装置11のフロー識別・振り分け部22は、データ受信端末15からのACKパケットを受信した場合、帯域情報保持部25を参照して、そのACKパケットが、サービス対象フローのACKパケットか否かを判定する。
そのACKパケットがサービス対象フローのACKパケットである場合(図5のステップ201)、フロー識別・振り分け部22は、ウィンドウサイズ算出部30に対して、サービス対象フローのユーザ情報と共にウィンドウサイズ計算要求を送り(ステップ203)、仮想トークン管理部29に対してACKパケット内のACKナンバーを通知する(ステップ204)。
ウィンドウサイズ算出部30は、ユーザ情報とウィンドウサイズ計算要求を受け付けると、そのユーザ情報を基にして、帯域情報保持部25に対して、ユーザ情報に対応する保証帯域を要求し(ステップ212)、フロー情報保持部27に対して、ユーザ情報に対応するデータ送信端末とデータ受信端末間の往復伝搬遅延時間18を要求する(ステップ213)。
フロー情報保持部27は、ウィンドウサイズ算出部30からの要求に応じて、データ送信端末とデータ受信端末間の往復伝搬遅延時間18の値を返送する(ステップ214)。
また、帯域情報保持部25は、ウィンドウサイズ算出部30からの要求に応じて、保証帯域を返送する(ステップ215)。
ウィンドウサイズ算出部30は、データ送信端末とデータ受信端末間の往復伝搬遅延時間18と保証帯域とを受信すると、それらの値を基に、データ送信端末14が保証帯域以内でデータを送出するようなウィンドウサイズを算出する(ステップ211)。
このとき、保証帯域と一致するレートでデータが送出されるようなウィンドウサイズが好適である。
ウィンドウサイズの求め方は、例えば式(1)により求めることができる。
[数1]
ウィンドウサイズ[KB]=保証帯域[Kbps]×データ送信端末とデータ受信端末間の往復伝搬遅延時間18[sec]÷8[bits/Byte] (1)
なお、ウィンドウサイズの求め方は、式(1)に限らず適宜変更可能である。
一方、仮想トークン管理部29は、ACKナンバー通知を受け付けると、そのACKナンバーを保持し、さらに、このACKナンバーとこのACKパケットより1つ前に受信したACKパケット内のACKナンバーとの差であるDiffACKを算出する(ステップ207)。
仮想トークン管理部29は、DiffACKを算出すると、DiffACK分の仮想トークンが存在するか確認する(ステップ208)。
DiffACK分の仮想トークンが存在する場合、仮想トークン管理部29は、DiffACK分の仮想トークンを減らし(ステップ209)、サービス対象フローのACKパケットを配線22aに転送するように、フロー識別・振り分け部22に対して、ACKパケット転送要求を送信する(ステップ206)。
フロー識別・振り分け部22は、ACKパケット転送要求を受け付けると、サービス対象フローのACKパケットを、配線22aを通して広告ウィンドウサイズ書き込み部31に送る(ステップ202)。
一方、DiffACK分の仮想トークンが存在しない場合、仮想トークン管理部29は、ACKパケットをバッファリングするためにサービス対象フローのACKパケットを配線22bに転送するように、フロー識別・振り分け部22に対して、ACKパケットバッファリング要求を送信し(ステップ205)、さらに、データ送信端末14がこれ以上のデータ送信を行わないように、ウィンドウサイズ算出部30に対して、ゼロウィンドウ要求を送信する(ステップ210)。
フロー識別・振り分け部22は、ACKパケットバッファリング要求を受け付けると、サービス対象フローのACKパケットを、配線22bを通してバッファ部23に送り、バッファ部23は、そのサービス対象フローのACKパケットをバッファリングする。
また、ウィンドウサイズ算出部30は、ゼロウィンドウ要求を受け付けると、サイズが「1」のウィンドウサイズを算出する。本実施形態では、この「1」のウィンドウサイズは、ステップ211で算出されたウィンドウサイズより小さい。
なお、バッファ部23内のサービス対象フローのACKパケットは、以下のようにして、広告ウィンドウサイズ書き込み部31に送られる。
仮想トークン管理部29が、トークン管理部28からの仮想トークン追加要求を受信した時(図6のステップ303)、仮想トークン管理部29は、ステップ303で伝えられたトークン量分の仮想トークンを追加する(ステップ301)。
そして、仮想トークン管理部29は、バッファ部23がACKパケットをバッファリングしているかを確認し(ステップ302)、バッファリングしている場合は、バッファ部23に対して、バッファリング解除要求を送信する(ステップ304)。
バッファ部23は、バッファリング解除要求を受け付けると、バッファリングしていたACKパケットを、広告ウィンドウサイズ書き込み部31に対して送信する。
なお、トークン管理部28が仮想トークン管理部29に対して仮想トークン追加要求を送信するタイミングは、トークン管理部28が管理するトークンが追加されるときより、データ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間17だけ早いタイミングである。
ウィンドウサイズ算出部30は、以下のようにして、ACKパケットに広告ウィンドウサイズを書き込む。
ウィンドウサイズ算出部30は、サービス対象フローのウィンドウサイズを算出すると(図5のステップ211、および、図7のステップ401)、算出したウィンドウサイズと、そのサービス対象フローのユーザ情報とを、広告ウィンドウサイズ書き込み部31に通知する(ステップ402)。
広告ウィンドウサイズ書き込み部31は、ウィンドウサイズ算出部30から通知されたウィンドウサイズの値を、フロー識別・振り分け部22からまたはバッファ部23からのACKパケットのウィンドウフィールドに書き込む(ステップ403)。
広告ウィンドウサイズ書き込み部31は、広告ウィンドウサイズが書き込まれたACKパケットを、データ送信部24に送る。
図8は、サービス対象フローのデータパケットがポリサー装置を通過する時のポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。
以下、図4および図8を参照して、フロー識別・振り分け部22がサービス対象フローのデータパケットを受け付けたときのポリサー装置内の動作を説明する。
フロー識別・振り分け部22が、サービス対象フローのデータパケットを観測する(図8のステップ501)。
続いて、フロー識別・振り分け部22は、観測したデータパケットサイズをトークン管理部28に通知する(ステップ503)。
トークン管理部28は、フロー識別・振り分け部22から通知されたデータサイズ分のトークン量が存在するか確認する(ステップ506)。
データサイズ分のトークン量が存在する場合は、トークン管理部28は、フロー識別・振り分け部22に対してパケット転送通知を送信し(ステップ505)、データサイズ分だけトークンを減らす(ステップ507)。
フロー識別・振り分け部22は、パケット転送通知を受け付けると、サービス対象フローのデータパケットを、配線22cを通してデータ送信部24に送る(ステップ502)。
一方、フロー識別・振り分け部22を通過するデータパケットサイズ分のトークン量が存在しない場合、トークン管理部28は、フロー識別・振り分け部22に対して、パケット廃棄通知を送信する(ステップ504)。
フロー識別・振り分け部22は、トークン管理部28からパケット廃棄通知(ステップ504)を受信した場合、サービス対象フローのデータパケットを廃棄する(ステップ502)。
次に、図4を参照して、フロー識別・振り分け部22がサービス非対象フローのパケット(ACKパケットやデータパケット)を受け付けたときのポリサー装置内の動作を説明する。
フロー識別・振り分け部22は、サービス非対象フローのパケットを受け付けると、そのパケットを、配線22cを通してデータ送信部24に送る。
本実施形態によれば、以下の効果を奏する。
TCPを用いた帯域保証サービス運用時にデータ送信端末14のTCPプロトコルスタックの変更を必要とすることなく、データ送信端末14からデータ受信端末15へ送信するデータのレートを保証帯域内で安定的に制御できるので、保証帯域を効率よく利用することが可能となる。
本実施形態によれば、管理部2は、パケットのフローを、保証帯域と、データ送信端末14とデータ受信端末15との間のデータの往復時間と、仮想トークン管理部29にて予想されたトークン量と、に基づいて管理する。
予想されたトークン量は、送受信部1がデータ送信端末14宛のACKパケットを受け付けた際、ACKパケットの受付時から往復伝播遅延時間17経過した時のトークン管理部28のトークン量を示す。つまり、予想されたトークン量は、データ送信端末14がそのACKパケットの受信に応じて送信するデータパケットを送受信部1が受信した時のトークン管理部28のトークン量の予想値となる。
このため、遅延揺らぎを考慮してトークン管理部28のトークン量を予測でき、その予測されたトークン量を用いてパケットのフローを管理できる。よって、遅延揺らぎを許容可能となり、保証帯域を効率よく利用して高いスループットを保つことが可能になる。
また、本実施形態では、コネクションを確立するために用いるパケットが、往復伝播遅延時間17および18を計測するために利用される。このため、例えば、往復伝播遅延時間計測専用のパケットが使用される場合に比べて、パケットの増加を抑制可能になる。
また、本実施形態では、仮想トークン管理部29は、仮想トークンを用いてトークン量を予想する。具体的には、仮想トークン管理部29は、トークン管理部28でトークンが追加される時より往復伝播遅延時間17前に、そのトークンの量に応じて仮想トークンの量を追加し、送受信部1がデータ送信端末宛のACKパケットを受け付けるごとに、そのACKパケットのACKナンバーを取得し今回取得したACKナンバーと前回取得したACKナンバーとの差を仮想トークンから引く。
この場合、仮想トークンを用いて、トークン管理部28のトークン量を高い精度で予想することが可能になる。
また、本実施形態では、管理部2は、保証帯域と往復伝播遅延時間18に基づいてウィンドウサイズを算出するウィンドウサイズ算出部30と、仮想トークンの量にしたがって、ACKパケットのウィンドウサイズを、ウィンドウサイズ算出部30にて算出されたウィンドウサイズと、そのウィンドウサイズより小さい値のウィンドウサイズと、のいずれかに書き換える広告ウィンドウ書き込み部31と、を含む。
この場合、例えば、仮想トークンの量が少なくなったときに、ウィンドウサイズを小さくできる。よって、仮想トークンの量に応じて、保証帯域を効率よく利用することが可能になる。
また、本実施形態では、バッファ部23は、送受信部1がデータ送信端末14宛てのACKパケットを受け付けた際、仮想トークンの量がACKナンバーの差より少ない場合、そのACKパケットをバッファリングする。
また、本実施形態では、バッファ部23は、仮想トークンの量が増加した場合、バッファリング中のACKパケットを管理部2に送信する。
この場合、仮想トークンの量に応じて、保証帯域を効率よく利用することが可能になる。
以上説明した実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
本実施形態によるデータ通信システムの構成を示すブロック図である。 本実施形態のポリサー装置の構成を示すブロック図である。 往復伝搬遅延時間を計測する時のポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。 フロー識別・振り分け部によるパケット振り分けを説明するための図である。 ウィンドウサイズを算出するときのポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。 バッファリングしているACKパケットをデータ送信端末に対して送信する時のポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。 ACKパケットに広告ウィンドウサイズを書き込むときのポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。 サービス対象フローのデータパケットがポリサー装置を通過する時のポリサー装置内のブロック間の信号のやりとりを示すシーケンス図である。
符号の説明
1 送受信部
2 管理部
11、12 ポリサー装置
13 帯域管理サーバ
14 データ送信端末
15 データ受信端末
16 帯域保証ネットワーク
17 データ送信端末とデータ送信端末側ポリサー装置間の往復伝搬遅延時間
18 データ送信端末とデータ受信端末間の往復伝搬遅延時間
21 データ受信部
22 フロー識別・振り分け部
23 バッファ部
24 データ送信部
25 帯域情報保持部
26 伝搬遅延時間算出部
27 フロー情報保持部
28 トークン管理部
29 仮想トークン管理部
30 ウィンドウサイズ算出部
31 広告ウィンドウサイズ書き込み部

Claims (8)

  1. データ送信端末からデータ受信端末へデータを送信できる帯域が保証された帯域保証ネットワーク内で前記データ送信端末と前記データ受信端末の間に配置されるフロー制御装置であって、
    前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのパケットのフローに割り当てられた保証帯域を保持する帯域情報保持部と、
    前記データ送信端末と前記データ受信端末との間で通信されるパケットを受け付け、当該パケットの送信を制御する送受信部と、
    前記データ送信端末と前記データ受信端末との間のパケットの第1往復時間と、前記データ送信端末と前記フロー制御装置との間のパケットの第2往復時間と、を計測する計測部と、
    前記保証帯域に応じたレートでトークンを追加していき、当該トークンを用いたトークンバケット方式のポリシング制御を行って、前記送受信部に、当該送受信部が受信したデータパケットの送信または廃棄を実行させるトークン管理部と、
    前記送受信部が前記データ送信端末宛のACKパケットを受け付けた際、当該ACKパケットの受付時から前記第2往復時間経過した時の前記トークン管理部のトークン量を、当該ACKパケットを用いて予想する仮想トークン管理部と、
    前記帯域情報保持部内の保証帯域と、前記計測部にて計測された第1往復時間と、前記仮想トークン管理部にて予想されたトークン量と、に基づいて、前記パケットのフローを管理する管理部と、を含むフロー制御装置。
  2. 前記計測部は、前記データ送信端末と前記データ受信端末とがコネクションを確立するために用いるパケットを利用して、前記第1および第2往復時間を計測する、請求項1に記載のフロー制御装置。
  3. 前記仮想トークン管理部は、前記トークン量を予想するための仮想トークンを保持する、請求項1または2に記載のフロー制御装置。
  4. 前記仮想トークン管理部は、前記トークン管理部で前記トークンが追加される時より前記第2往復時間前に、当該トークンの量に応じて前記仮想トークンの量を追加し、前記送受信部が前記ACKパケットを受け付けるごとに、当該ACKパケットのACKナンバーを取得し今回取得したACKナンバーと前回取得したACKナンバーとの差を前記仮想トークンから引く、請求項3に記載のフロー制御装置。
  5. 前記管理部は、
    前記保証帯域と前記第1往復時間に基づいてウィンドウサイズを算出するウィンドウサイズ算出部と、
    前記仮想トークンの量にしたがって、前記ACKパケットのウィンドウサイズを、前記ウィンドウサイズ算出部にて算出されたウィンドウサイズと、当該算出されたウィンドウサイズより小さい値のウィンドウサイズと、のいずれかに書き換える広告ウィンドウ書き込み部と、を含む、請求項4に記載のフロー制御装置。
  6. 前記送受信部が前記ACKパケットを受け付けた際、前記仮想トークンの量が前記ACKナンバーの差より少ない場合、当該ACKパケットをバッファリングするバッファ部をさらに含む、請求項4または5に記載のフロー制御装置。
  7. 前記バッファ部は、前記仮想トークンの量が増加した場合、前記ACKパケットを前記管理部に送信する、請求項6に記載のフロー制御装置。
  8. データ送信端末からデータ受信端末へデータを送信できる帯域が保証された帯域保証ネットワーク内で前記データ送信端末と前記データ受信端末の間に配置され、また、前記帯域保証ネットワークにて前記データ送信端末から前記データ受信端末へのパケットのフローに割り当てられた保証帯域を保持する帯域情報保持部と、前記データ送信端末と前記データ受信端末との間で通信されるパケットを受け付け、当該パケットの送信を制御する送受信部と、を含むフロー制御装置が行うフロー制御方法であって、
    前記データ送信端末と前記データ受信端末との間のパケットの第1往復時間と、前記データ送信端末と前記フロー制御装置との間のパケットの第2往復時間と、を計測する計測ステップと、
    前記保証帯域に応じたレートでトークンを追加していき、当該トークンを用いたトークンバケット方式のポリシング制御を行って、前記送受信部に、当該送受信部が受信したデータパケットの送信または廃棄を実行させるトークン管理ステップと、
    前記送受信部が前記データ送信端末宛のACKパケットを受け付けた際、当該ACKパケットの受付時から前記第2往復時間経過した時の前記トークンの量を、当ACKパケットを用いて予想する仮想トークン管理ステップと、
    前記帯域情報保持部内の保証帯域と、前記第1往復時間と、前記予想されたトークン量と、に基づいて、前記パケットのフローを管理する管理ステップと、を含むフロー制御方法。
JP2007206728A 2007-08-08 2007-08-08 フロー制御装置およびフロー制御方法 Expired - Fee Related JP4698645B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007206728A JP4698645B2 (ja) 2007-08-08 2007-08-08 フロー制御装置およびフロー制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007206728A JP4698645B2 (ja) 2007-08-08 2007-08-08 フロー制御装置およびフロー制御方法

Publications (2)

Publication Number Publication Date
JP2009044413A JP2009044413A (ja) 2009-02-26
JP4698645B2 true JP4698645B2 (ja) 2011-06-08

Family

ID=40444681

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007206728A Expired - Fee Related JP4698645B2 (ja) 2007-08-08 2007-08-08 フロー制御装置およびフロー制御方法

Country Status (1)

Country Link
JP (1) JP4698645B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5087594B2 (ja) * 2009-07-31 2012-12-05 日本電信電話株式会社 エッジノード、ウィンドウサイズ制御方法およびプログラム
JP5087595B2 (ja) * 2009-07-31 2012-12-05 日本電信電話株式会社 エッジノード、ウィンドウサイズ制御方法およびプログラム
JP5199224B2 (ja) * 2009-12-10 2013-05-15 日本電信電話株式会社 フロー通信品質推定方法と装置およびプログラム
US10491651B2 (en) * 2017-05-15 2019-11-26 Omnivision Technologies, Inc. Method and system for streaming low-delay high-definition video with partially reliable transmission
CN112073334B (zh) * 2019-07-09 2023-09-12 北京天德科技有限公司 虚拟高速公路
CN112242959B (zh) * 2019-07-16 2022-10-14 ***通信集团浙江有限公司 微服务限流控制方法、装置、设备及计算机存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003078560A (ja) * 2001-09-05 2003-03-14 Oki Electric Ind Co Ltd トランスポートレイヤプロトコルにおけるフロー制御方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003078560A (ja) * 2001-09-05 2003-03-14 Oki Electric Ind Co Ltd トランスポートレイヤプロトコルにおけるフロー制御方式

Also Published As

Publication number Publication date
JP2009044413A (ja) 2009-02-26

Similar Documents

Publication Publication Date Title
US7908393B2 (en) Network bandwidth detection, distribution and traffic prioritization
US8873385B2 (en) Incast congestion control in a network
KR102187810B1 (ko) 통신 시스템에서 데이터 흐름 제어 장치 및 방법
CN108540380B (zh) 多子流网络传输方法及装置
US20100088437A1 (en) Infiniband adaptive congestion control adaptive marking rate
US10715442B2 (en) Congestion control
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
KR20190033048A (ko) 동시 연결의 통합된 처리량을 향상시키기 위한 시스템 및 방법
JP2018507666A (ja) データフローを調整するシステム及び方法
EP2760182B1 (en) Data communication apparatus, data transmission method, and computer system
JP4698645B2 (ja) フロー制御装置およびフロー制御方法
JP4128198B2 (ja) 帯域制御装置
CN108989235A (zh) 一种报文转发控制方法及装置
US10986030B2 (en) Congestion control
US11570117B2 (en) Congestion control
JP2008205932A (ja) ノード装置および帯域制御方法
JP5039677B2 (ja) エッジノードおよび帯域制御方法
WO2018157819A1 (zh) 多子流网络传输方法及装置
JP5087595B2 (ja) エッジノード、ウィンドウサイズ制御方法およびプログラム
WO2021098368A1 (zh) 一种实现拥塞控制的方法、装置和***
JP4766703B2 (ja) エッジノードおよび帯域制御方法
JP4828555B2 (ja) ノード装置および帯域制御方法
Li Phoenix: Combining Highest-Profit First Scheduling and Responsive Congestion Control for Delay-sensitive Multimedia Transmission
Kadhum et al. Fast Congestion Notification mechanism for ECN-capable routers
JP4977677B2 (ja) エッジノードおよび帯域制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110203

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110223

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110301

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees