JP2006067132A - Tcpによる通信の輻輳制御システム、ルータ、輻輳制御方法、及びプログラム - Google Patents

Tcpによる通信の輻輳制御システム、ルータ、輻輳制御方法、及びプログラム Download PDF

Info

Publication number
JP2006067132A
JP2006067132A JP2004245849A JP2004245849A JP2006067132A JP 2006067132 A JP2006067132 A JP 2006067132A JP 2004245849 A JP2004245849 A JP 2004245849A JP 2004245849 A JP2004245849 A JP 2004245849A JP 2006067132 A JP2006067132 A JP 2006067132A
Authority
JP
Japan
Prior art keywords
syn
queue
data
packets
router
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.)
Withdrawn
Application number
JP2004245849A
Other languages
English (en)
Inventor
Yoshinori Rokugo
義典 六郷
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
Priority to JP2004245849A priority Critical patent/JP2006067132A/ja
Publication of JP2006067132A publication Critical patent/JP2006067132A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 ルータにSYNパケットのみを格納するSYNキューを設け、通信が混雑して混雑をSYNパケット以外のパケットの蓄積量が一定値を超えてもSYNパケットを廃棄せずに送信を停止したまま保留しておき、蓄積量が一定値以下となったらSYNパケットの送信を再開して、SYNパケットの再送を不要とすること。
【解決手段】 ルータ10とサーバ20とこれらを接続するネットワーク40とルータ10と通信路で接続する端末30とから構成され、ルータ10はTCP通信におけるコネクション確立の最初に送信するSYNパケットを一時的に格納するSYNキュー13と、SYNパケット以外のパケットを一時的に格納するデータキュー12とを有し、データキュー12の蓄積データ量が閾値Λ1以上となるとSYNパケットの送信を停止して保留し、
蓄積データ量が閾値Λ2以下となるとSYNパケットの送信を再開する。
【選択図】 図1

Description

本発明はTCP(Transmission Control Protocol)による通信の輻輳制御システム、ルータ、輻輳制御方法、及びプログラムに関し、特に、パケットを一時的に蓄積するキューの蓄積量に基づいてルータがパケット転送の制御をする技術に関する。
従来の輻輳制御方法に関する技術として、非特許文献1の“Implicit admission controls”が知られている。この非特許文献1の技術では、輻輳が発生した場合にはSYNパケットを単純に廃棄し、コネクションの確立した通信のデータ転送を優先する方法が採られている。
これと同様の技術として、特開2003−273919号公報の請求項7の発明は、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルによる通信において、ネットワークリソースの使用状況に応じてTCPヘッダのSYNフラグが1であるフレームを破棄することが開示されている。
上記ネットワークの使用状況とは、特許文献の請求項3や4において、内部に滞留するデータ量と閾値とを比較することにより判断し、滞留するデータ量が第1の閾値以上となるとSYNフラグが1のフレームを破棄し、第2の閾値以下となると元通り処理することが記載されている。
特開2003−273919号公報 R. Mortier, I. Pratt, C. Clark, and S. Corosby, "Implicit Admission Control", IEEE JSAC, vol.18, No.12, pp2629-2639, December 2000
しかしながら、従来の“Implicit admission controls”の技術や特開2003−273919号公報の発明は、データの滞留が大きくなった場合に、SYNパケットを単純に廃棄するため、SYNパケットを廃棄された端末がコネクションを確立するためには再送のタイミングまで待たなければならないという問題があった。再送のタイミングとは、例えば、SYNパケットを送信してから予め決めておいた時間制限以内にSYNパケットに対する応答がなかったことを検出したタイミングである。さらに、再送したとしても再びSYNパケットが廃棄されないとも限らず、コネクションの確立のために端末は時間と手間をかけなければならなかった。
本発明の目的は、TCP通信におけるSYNパケットによるコネクションの確立に着目し、SYNパケットを格納するSYNキューとそれ以外のパケットを格納するデータキューとを設けて、データキューに蓄積されたデータ量が閾値Λ1以上となった場合にはSYNパケットの転送を停止して保留し、データキューに蓄積されたデータ量が閾値Λ2(<Λ1)以下となった場合にはSYNパケットの転送を再開することにより、端末がコネクションの確立のためにSYNパケットを再送することを不要にしたTCPによる通信の輻輳制御システム、ルータ、輻輳制御方法、及びプログラムを提供することにある。
本発明の第1の輻輳制御システムは、ネットワークに接続してサービスを提供するサーバと、前記ネットワークとは別の通信手段を介して前記ネットワークに乗り入れ前記サーバにアクセスする端末と、前記ネットワークに接続するとともに前記端末と接続して通信を中継し輻輳を制御するルータとを有する輻輳制御システムであって、
前記ルータは、TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケットを一時的に格納するSYNキューと、SYNパケット以外のパケットを一時的に格納するデータキューとを有することを特徴とする。
本発明の第2の輻輳制御システムは、本発明の第1の輻輳制御システムにおいて、前記ルータが、前記データキューに蓄積されたデータ量が予め決められた閾値Λ1以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする。
本発明の第3の輻輳制御システムは、本発明の第2の輻輳制御システムにおいて、前記ルータが、前記データキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする。
本発明の第4の輻輳制御システムは、本発明の第3の輻輳制御システムにおいて、前記ルータが、前記端末から前記サーバの方向の通信において、前記蓄積モードの場合は前記データキューから送信する流量を予め決められた値F1以下になるように制御し、前記送信モードの場合は前記データキューから送信する流量を予め決められた値F2(F2<F1)以下になるように制御し、前記SYNキューから送信する流量を予め決められた値F3(F2+F3=F1)以下になるように制御することを特徴とする。
本発明の第5の輻輳制御システムは、本発明の第1、第2、第3、又は第4の輻輳制御システムにおいて、前記ルータが、前記SYNキューと前記データキューとを、前記端末から前記サーバの方向の通信経路、及び前記サーバから前記端末の方向の通信経路に有することを特徴とする。
本発明の第6の輻輳制御システムは、本発明の第1、第2、第3、又は第4の輻輳制御システムにおいて、前記ルータが、前記SYNキューと前記データキューとを、前記端末から前記サーバの方向の通信経路、或いは前記サーバから前記端末の方向の通信経路のいずれか一方に有することを特徴とする。
本発明の第7の輻輳制御システムは、ネットワークに接続してサービスを提供するサーバと、前記ネットワークとは別の通信手段を介して前記ネットワークに乗り入れ前記サーバにアクセスする端末と、前記ネットワークに接続するとともに前記端末と接続して通信を中継し輻輳を制御するルータとを有する輻輳制御システムであって、
前記ルータは、TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケットのうちサーバ方向に送信されるSYNパケットを一時的に格納するSYNキューと、サーバ方向に送信されるSYNパケット以外のパケットを一時的に格納する第1のデータキューと、端末方向に送信される全パケットを一時的に格納する第1のデータキューとを有することを特徴とする。
本発明の第8の輻輳制御システムは、本発明の第7の輻輳制御システムにおいて、前記ルータが、前記前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ1以上となるか又は前記前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ3以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする。
本発明の第9の輻輳制御システムは、本発明の第8の輻輳制御システムにおいて、前記ルータが、前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となり且つ前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ4(Λ4<Λ3)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする。
本発明の第1のルータは、第1の通信路に接続する装置と第2の通信路に接続する装置との間のTCP通信を中継するルータであって、TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケットを一時的に格納するSYNキューと、SYNパケット以外のパケットを一時的に格納するデータキューとを有することを特徴とする。
本発明の第2のルータは、本発明の第1のルータにおいて、前記データキューに蓄積されたデータ量が予め決められた閾値Λ1以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする。
本発明の第3のルータは、本発明の第2のルータにおいて、前記データキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする。
本発明の第4のルータは、本発明の第3のルータにおいて、前記データキューと前記SYNキューに蓄積されたパケットの送信において、前記蓄積モードの場合は前記データキューから送信する流量を予め決められた値F1以下になるように制御し、前記送信モードの場合は前記データキューから送信する流量を予め決められた値F2(F2<F1)以下になるように制御し、前記SYNキューから送信する流量を予め決められた値F3(F2+F3=F1)以下になるように制御することを特徴とする。
本発明の第5のルータは、本発明の第1、第2、第3、又は第4のルータにおいて、前記SYNキューと前記データキューとを、前記第1の通信路から前記第2の通信路の方向の通信経路、及び前記第2の通信路から前記第1の通信路の方向の通信経路に設けたことを特徴とする。
本発明の第6のルータは、本発明の第1、第2、第3、又は第4のルータにおいて、前記SYNキューと前記データキューとを、前記第1の通信路から前記第2の通信路の方向の通信経路、或いは前記第2の通信路から前記第1の通信路の方向の通信経路のいずれか一方に設けたことを特徴とする。
本発明の第7のルータは、第1の通信路に接続する装置と第2の通信路に接続する装置との間のTCP通信を中継するルータであって、TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケットのうち第1の通信路に送信するSYNパケットを一時的に格納するSYNキューと、第1の通信路に送信するSYNパケット以外のパケットを一時的に格納する第1のデータキューと、第2の通信路に送信する全パケットを一時的に格納する第2のデータキューを有することを特徴とする。
本発明の第8のルータは、本発明の第7のルータにおいて、前記ルータが、前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ1以上となるか又は前記前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ3以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする。
本発明の第9のルータは、本発明の第8のルータにおいて、前記ルータが、前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となり且つ前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ4(Λ4<Λ3)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする。
本発明の第1の輻輳制御方法は、第1の通信路に接続する装置と第2の通信路に接続する装置との間のTCP通信を中継するルータにおける輻輳制御方法であって、TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケットを一時的に格納するSYNキューと、SYNパケット以外のパケットを一時的に格納するデータキューとを有し、
前記データキューに蓄積されたデータ量が予め決められた閾値Λ1以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする。
本発明の第2の輻輳制御方法は、本発明の第1の輻輳制御方法において、前記データキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする。
本発明の第3の輻輳制御方法は、本発明の第2の輻輳制御方法において、前記データキューと前記SYNキューに蓄積されたパケットの送信において、前記蓄積モードの場合は前記データキューから送信する流量を予め決められた値F1以下になるように制御し、前記送信モードの場合は前記データキューから送信する流量を予め決められた値F2(F2<F1)以下になるように制御し、前記SYNキューから送信する流量を予め決められた値F3(F2+F3=F1)以下になるように制御することを特徴とする。
本発明の第4の輻輳制御方法は、第1の通信路に接続する装置と第2の通信路に接続する装置との間のTCP通信を中継するルータにおける輻輳制御方法であって、
TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケットのうち第1の通信路に送信するSYNパケットを一時的に格納するSYNキューと、第1の通信路に送信するSYNパケット以外のパケットを一時的に格納する第1のデータキューと、第2の通信路に送信する全パケットを一時的に格納する第2のデータキューとを有し、
前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ1以上となるか又は前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ3以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする輻輳制御方法。
本発明の第5の輻輳制御方法は、本発明の第4の輻輳制御方法において、前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となり且つ前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ4(Λ4<Λ3)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする。
本発明の第1のプログラムは、TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケット以外のパケットを受信して一時的に格納するデータキューに蓄積されたデータ量が予め決められた閾値Λ1以上となると蓄積モードに移行する手順と、蓄積モードに移行すると前記SYNパケットを受信して一時的に格納するSYNキューに蓄積されているSYNパケットの送信を停止して保留する手順とをコンピュータに実行させることを特徴とする。
本発明の第2のプログラムは、本発明の第1のプログラムにおいて、前記データキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となると送信モードに移行する手順と、送信モードに移行すると前記SYNキューに蓄積されているSYNパケットの送信を開始する手順とをコンピュータに実行させることを特徴とする。
本発明の第3のプログラムは、本発明の第2のプログラムにおいて、前記データキューと前記SYNキューに蓄積されたパケットの送信において、前記蓄積モードの場合は前記データキューから送信する流量を予め決められた値F1以下になるように制御する手順と、前記送信モードの場合は前記データキューから送信する流量を予め決められた値F2(F2<F1)以下になるようにするとともに前記SYNキューから送信する流量を予め決められた値F3(F2+F3=F1)以下になるように制御する手順とをコンピュータに実行させることを特徴とする。
本発明の第4のプログラムは、TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケット以外のパケットで第1の方向に送信するパケットを一時的に格納する第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ1以上となるか、又は前記第1の方向とは逆方向に送信される全パケットを一時的に格納する第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ3以上となると蓄積モードに移行する手順と、蓄積モードに移行すると前記SYNパケットのうち第1の方向に送信するパケットを一時的に格納するSYNキューに蓄積されているSYNパケットの送信を停止して保留する手順とをコンピュータに実行させることを特徴とする。
本発明の第5のプログラムは、本発明の第4のプログラムにおいて、前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となり且つ前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ4(Λ4<Λ3)以下となると送信モードに移行する手順と、送信モードに移行すると前記SYNキューに蓄積されているSYNパケットの送信を開始する手順とをコンピュータに実行させることを特徴とする。
本発明はSYNパケットの廃棄を行わず保留しているので、端末がコネクション確立のためにSYNパケットの再送をしなくてもコネクションの確立が実行できるという効果がある。
本発明を実施するための第1の形態について図面を参照して詳細に説明する。図1は本発明の第1の輻輳制御システムの構成を示した図である。本発明の第1の形態の輻輳制御システムは、ルータ10と、サーバ20と、端末30とを含み、ルータ10とサーバ20とをネットワーク40が接続する構成となる。
端末30は、例えばパーソナルコンピュータや携帯情報機器等の情報処理装置であり図示しないがCPUや記憶手段や通信手段を有し、ルータ10とネットワーク40を介してTCPプロトコルによる手順にてサーバ20へアクセス可能であり、例えばブラウザを搭載してサーバ20がネットワーク40上に開設するウェブページを閲覧する機能を有する。
また、図1では端末30−1と端末30−2と端末30−Nの3つを示しているが、端末30はルータ10の下に複数接続され、ルータ10との間は、交換機を介して電話回線で接続する構成でもよいし、LAN(local area network)で接続する構成でもよい。
サーバ20は、例えばサーバ機能を搭載した情報処理装置であり、ネットワーク40を介してルータ10の配下の端末30とTCPプロトコルによる手順で接続して端末30からのアクセスを受け付け、例えばウェブページ閲覧サービスを提供する等の機能を有する。図1ではサーバ20−1とサーバ20−2の2つを示しているが、通常ネットワーク40上には様々なサービスを提供するサーバ20が接続され、ネットワーク40がインターネットの場合は多数のサーバ20が接続される。
ネットワーク40は、メッシュ構造の通信網であり、例えばインターネットの局間網や企業内のイントラネット等である。
ルータ10は、端末30とサーバ20との間の通信を中継し、ネットワーク40で確保された通信容量に応じて、端末30から上がってくるパケットの流量制御を行う装置である。例えばISP(インターネット サービス プロバイダ)のように、網状のネットワーク40と網状でない通信手段との中継点に設置されるエッジルータとも呼ばれるルータ等である。
ルータ10は、通信の流れを制御する制御部11と、TCPのコネクションの確立を開始するために最初に送信するパケット(SYNパケットという)以外のパケットを一時的に格納するデータキュー12と、SYNパケットを一時的に格納するSYNキュー13と、ネットワーク40と接続しパケットの送信をする送信部14と、端末30との間の通信路と接続しパケットの受信をする受信部15と、蓄積量比較部16と、アドレス比較部17を含む。
図1では説明の都合でルータ10は、端末30からサーバ20へ向かう上り方向の経路の構成(符号12〜17)のみを示しているが、下り方向についても同様の構成となっている。ただし下り方向を違う構成(例えばキューをSYNパケットとそれ以外に分けず1つのみとする構成)としてもかまわない。
また、SYNパケットは、コネクションを確立しようとする側が初めに送信するパケットのことであり、TCPプロトコルにおいてはTCPセグメントに含まれ6ビットのフラグを含む制御ビット(コードビットともいう)のSYN(Synchronize flag)を“1”(制御ビットのACK(Acknowledge)も同時に“1”のものは除く)としたパケットのことである。
受信部15は、予め決められた通信手順にて端末30からパケットを受信し、受信したパケットの制御ビットを調べてSYNパケットか判定して制御部11へ通知し、制御部11の指示に従ってデータキュー12かSYNキュー13へ受信したパケットを格納する。送信部14は制御部11の指示に従ってデータキュー12或いはSYNキュー13に格納されたパケットをそれぞれ所定の流量にてネットワーク40を介してサーバ20へ送信する。
蓄積量比較部16は、データキュー12に蓄積されたデータ量である蓄積データ量と予め決められた閾値であるΛ1、Λ2との大小関係を比較する手段であり比較結果は制御部11に参照される。蓄積量比較部16は、通常ハードウェア回路で実現されるが、プログラムでキューの書き込みポインタ値と読み出しポインタ値との差分を計算して求めるようにしてもよい。
アドレス比較部17は、SYNパケットを端末30から受信した際に、宛先のIPアドレスと送信元のIPアドレスについて、SYNキュー13に格納済みの各SYNパケットと受信したパケットとが一致するかを比較する手段である。アドレス比較部17で一致が検出された場合、制御部11は受信したSYNパケットがタイムアウト等の要因により再送されたSYNパケットであると判断して受信したSYNパケットをSYNキュー13に格納するのを抑止する。
次に、本発明の第1の形態の動作について図面を参照して詳細に説明する。本発明の特徴的な動作を説明する前に、まず端末30からサーバ20へアクセスする場合のTCPの手順について図2を参照して説明する。図2はTCPにおける手順を示した図であり、サーバ20と端末30との間のコネクションの確立手順、データの転送手順、コネクションの解放手順を示している。なお、図2において“SYN、ACK、FIN”はTCPセグメントの制御ビットを示し、“seq”はTCPセグメントのシーケンス番号を示し、“ack”はACK(確認応答)番号を示している。
TCPを用いた通信においては、通信する装置間で、ハンドシェークを行うことにより、TCPのコネクションをend−to−endで確立し、データ通信を行う。図2を参照すると、TCPのコネクションの確立の開始時に端末30−1がSYN=1としたパケットP61をサーバ20に送る。サーバ20はこれを受けて通信を許可する場合はSYN=1且つACK=1のパケットP62を端末30−1に返す。
この時のパケットP61の送信からパケットP62を受信するまでの端末30−1のタイムアウト時間は、OS(operating system)によって規定され、デフォルト値は30秒であるが最小値は1秒のシステムも存在する。端末30−1はタイムアウト時間を過ぎてもパケットP62が帰らない場合は、コネクション確立のためにSYNパケットであるパケットP61を再送する手順を実行する。
端末30−1がパケットP62を受信して、ACK=1のパケットP63を送信することによりコネクションが確立し、データの転送が開始される。端末30−1はパケットP64にてデータをサーバ20へ送信し、サーバ20からACK=1とした応答のパケットP65を受信する。送信するデータ量が大きい場合は送信データをパケットに分割してパケットP64とパケットP65を繰り返す。
必要なデータの送信が終わりコネクションを終了する場合、端末30−1はFIN=1且つACK=1のパケットP66をサーバ20へ送る。サーバ20はパケットP66を受けるとACK=1のパケットP67を返すとともに、サーバ20自身の終了を通知するためにFIN=1且つACK=1のパケットP68を端末30−1へ送信する。端末30−1はパケットP67とパケットP68を受信し、パケットP68の応答となるACK=1のパケットP69をサーバ20に返してサーバ20との間のコネクションが解放され、一連の通信が終了する。
次に本発明の第1の形態の特徴となるルータ10の動作について説明する。図2の動作における上り方向の(サーバ20へ向かう)パケットの処理について、ルータ10の動作を説明する。
ルータ10は、初めにパケットP61を端末30−1から受信すると制御ビットを調べ、制御部11はSYNパケットであると判断してパケットP61をSYNキュー13へ格納する。次にパケットP63を受信するとSYパケットではないのでパケットP63はデータキュー12に格納される。続くパケットP64、P66、P69もデータキュー12に格納される。そして、データキュー12とSYNキュー13に格納されたパケットはそれぞれのキューの出力の和が一定になるように流量制御されネットワーク40に送出される。
通常の動作状態においては、端末30−1とサーバ20との間の通信以外にも多数の通信が並行して行われるので、多数のパケットが集中したりデータ量の大きなパケットが集中したりするとデータキュー12とSYNキュー13には複数のパケットが蓄積された状態となる。
この状態における動作について図3を参照して説明する。図3はデータキュー12に蓄積されたデータ量の総和である蓄積データ量と動作との関係を示した図である。蓄積量比較部16は、データキュー12の蓄積データ量予め決められた閾値Λ1以上になったか、又はデータキュー12の蓄積データ量予め決められた閾値Λ2以下になったかを比較し結果を制御部11に出力する。
制御部11は蓄積量比較部16の出力を参照してデータキュー12の蓄積データ量≧Λ1かを判断し(S81)、蓄積データ量≧Λ1となると蓄積モードに移行する(S82)。蓄積モードへの移行は、例えば、制御部11の制御下に設けた蓄積モードフラグを1にセットすることにより行う。
制御部11は、蓄積モードの場合(例えば蓄積モードフラグが1の場合)、データキュー12に蓄積されたパケットを予め決められた流量F1(byte/s)以下の流量となるように送信し、SYNキュー13に蓄積されたSYNパケットの送信は抑止してSYNキュー13の内容を保留する(S83)。
蓄積モードになると、SYNパケットはSYNキュー13に保留され、その間にデータキュー12のパケットが送信される。従って、蓄積モードに移行した時点でコネクションが確立しているデータ転送だけが継続され、新たなコネクション確立を必要とするデータ転送は生じないために、コネクション確立中のデータ転送が徐々に終了することによりデータキュー12に蓄積されるデータ量は減少していくことになる。
また、蓄積モードにおいてはSYNキュー13にSYNパケットが保留されるが、図2で説明したように、SYNパケットに対する応答がタイムアウトとなると端末30はSYNパケットを再送する。このとき、アドレス比較部17はSYNパケットを受信した場合に宛先と送信元のアドレスについて受信したSYNパケットと一致するSYNパケットがSYNキュー13に存在していないかを比較し制御部11に通知する。
もし再送されたSYNパケットならばSYNキュー13に一致するSYNパケットが有るためアドレス比較部17で一致が報告される。この場合制御部11は受信したSYNパケットをSYNキュー13へ格納済みのSYNパケットと置換する。これにより、システムにおいて端末30が廃棄されたと判断した古いSYNパケットが誤って処理されことが防止できる。また、初めにSYNキュー13に格納された順にSYNパケットを処理することもできる。
制御部11は、蓄積データ量が減少してΛ1以下となっても蓄積モードを継続し、蓄積量比較部16の出力を参照して蓄積データ量≦閾値Λ2であるか判断する(S84)。蓄積データ量≦Λ2となると制御部11は送信モードへ移行する(S85)。送信モードへの移行は例えば蓄積モード用のフラグを0とすることで実現する。
制御部11は送信モードになると、データキュー12に蓄積されたパケットを予め決められた流量F2(byte/s)以下の流量となるようにして送信し、SYNキュー13に蓄積されたSYNパケットを予め決められた流量F3(byte/s)以下の流量となるように送信を再開する(S86)。このとき、F1=F2+F3という関係になり、ルータ10からネットワーク40への流量は蓄積モードの時と同じF1以下となるように調整される。
送信モードになると、SYNパケットの送信が開始されるため、新たなコネクションの確立が開始され、コネクションの確立を待たされていた端末30はサーバ20或いはネットワーク40上の他のサーバ20にアクセスを開始することができるようになる。このとき、端末30はタイムアウト等が発生しなければSYNパケットを送信することなくコネクションの確立手順を続けられることになる。
図4は、データキュー12に蓄積されたデータ量と閾値Λ1、Λ2との関係とモードの対応を説明する図である。図4の(a)は蓄積データ量がΛ1を超えている状態であり、この状態では蓄積モードとなる。また、図4の(b)は蓄積データ量がΛ2を下回る状態であり、この状態では送信モードとなる。また、図示しないがΛ2<蓄積データ量<Λ1の場合は、その前の状態によっていずれのモードもあることになる。
以上のように、ルータ10は送信モードとなった後再び蓄積データ量≧Λ1となれば蓄積モードに移行し、その後蓄積データ量≦Λ2となれば送信モードに戻るという動作を繰り返す。これにより、一旦確立されたTCPコネクションに対してはデータ転送の完全性が保証されとともに、SYNパケットが破棄されずにルータ10内に保留されるため、端末30はタイムアウト等の再送要因がなければSYNパケットを再送しなくて済むことになる。
以上の説明では、上り方向(端末30からサーバ20への方向)の動作について説明したが、図示しないが下り方向も上り方向と同様にデータキュー12やSYNキュー13や送信部14や受信部15や蓄積量比較部16やアドレス比較部17に相当する構成を逆方向に組み込むことにより、同様にサーバ20は端末30へのコネクションの確立手順においてSYNパケットの再送を不要とすることが容易に理解できる。
次に、本発明の第2の形態について説明する。図5は本発明の第2の形態の輻輳制御システムの構成を示した図である。第2の形態の構成は第1の形態の構成と比較して、データキューが両方向に設けてあるのに対して、SYNキューを上り方向(一方向)のみに設けている点が異なる。従って、両方向のデータの蓄積状況によって上り方向(一方向)のみのSYNパケットを保留するようにしている点に特徴がある。
図5では図1と同じ機能を持った構成要素には同じ符号を付けてあり、以降の説明では図1の構成と異なる部分及び異なる動作について説明をする。図5を参照すると、第2の形態のルータ50は、上り方向のSYNパケットを格納するSYNキュー13と、上り方向のSYNパケット以外のパケットを格納するデータキュー12と、上り方向の受信部15と、上り方向の送信部14と、アドレス比較部17に加えて、下り方向の全パケットを格納するデータキュー52と、下り方向の受信部55と、下り方向の送信部54とを有し、蓄積量比較部16の代わりに蓄積量比較部56を有する。
送信部54は送信部14と同様の機能である。受信部55は受信したパケットがSYNパケットか判定する機能はなく受信したパケットは全て制御部51の指示によりデータキュー52へ格納する。
蓄積量比較部56は、データキュー12とデータキュー52の蓄積データ量を予め決められた閾値と比較する手段であり、結果は制御部51に参照され、蓄積量比較部16と同様にハードウェア回路でもプログラムでも実現できる。データキュー12に設定された閾値Λ1、Λ2に対してデータキュー52に設定された閾値はΛ3、Λ4とする。Λ1とΛ3は異なる値でもよく、またΛ2とΛ4も異なる値でもよい。例えば、それぞれの送信方向の通信路の通信容量やデータキューの大きさ等に基づいて決めてもよい。
次に本発明の第2の形態の動作について図面を参照して説明する。第2の形態の動作は蓄積モードへの移行と送信モードへの移行の条件を除くとその他の動作は第1の形態の動作と同じであるので、モードの移行条件について図6を参照して説明する。従って、制御部51もモード移行の制御が制御部11との差分となる。
図6は第2の形態の動作を説明したフローチャートであり、モード移行の条件を示している。図6を参照すると、制御部51は蓄積量比較部56の出力を参照してデータキュー12に蓄積された上り方向の蓄積データ量(図6では上りデータ量と記載)≧Λ1かを判断し(S91)、上りデータ量≧Λ1となると蓄積モードに移行する(S93)。
さらに制御部51は蓄積量比較部56の出力を参照して、データキュー52に蓄積された下り方向の蓄積データ量(図6では下りデータ量と記載)≧Λ3かを判断し(S92)、下りデータ量≧Λ3となると蓄積モードに移行する(S93)。蓄積モードに移行した後の動作は上り方向は第1の形態と同様であり、それぞれの送信方向の通信路に対して予め決められたそれぞれの流量以下になるように制御部51によって制御される。
制御部51は、蓄積データ量が減少してΛ1又はΛ3以下となっても蓄積モードを継続し、蓄積量比較部56の出力を参照して上りデータ量≦Λ2であるか判断する(S95)。上りデータ量≦Λ2であると制御部51はさらに下りデータ量≦Λ4であるか判断する(S96)。
上りデータ量≦Λ2且つ下りデータ量≦Λ4であると制御部51は送信モードに移行する(S97)。上りデータ量≧Λ2又は下りデータ量≧Λ4であると制御部51はモードを維持する。送信モードに移行すると上り方向の流量はデータキュー12が流量F2以下に、SYNキュー13が流量F2以下に制御されるが、下り方向の流量制御は変わらない(S98)。
以上のように、本発明の第2の形態では、SYNキュー13と同方向のデータの流れだけでなく両方向のデータの流れ具合を参照して一方向のみのSYNパケットの保留を制御しているため、どちらか一方の通信路が混雑した場合にSYNパケットの送信を停止して保留することができる。特に図5の構成のように、コネクションを確立してアクセスする側の多くが端末30になるようなシステムにおいては、下り方向のSYNパケットが上り方向に比べて少ないので、上り方向にのみSYNキュー13を設けるだけで十分な効果を得ることができる。
また、第1の形態で両方向にSYNキューを設ける構成でも、第2の形態と同様に両方向のデータキューの蓄積データ量に基づいてSYNパケットの制御を実行するようにしてもかまわない。
本発明の第1の形態の構成を示した図である。 TCPの一般的な手順を示した図である。 本発明の第1の形態の蓄積モードと送信モードへの移行の動作を示した図である。 本発明の第1の形態のデータキュー12の蓄積データ量と蓄積モード/送信モードの関係の一例を示した図である。 本発明の第2の形態の構成を示した図である。 本発明の第2の形態の蓄積モードと送信モードへの移行の動作を示した図である。
符号の説明
10 ルータ
11 制御部
12 データキュー
13 SYNキュー
14 送信部
15 受信部
16 蓄積量比較部
17 アドレス比較部
20 サーバ
30 端末
40 ネットワーク
50 ルータ
52 データキュー
54 送信部
55 受信部
56 蓄積量比較部

Claims (28)

  1. ネットワークに接続してサービスを提供するサーバと、前記ネットワークとは別の通信手段を介して前記ネットワークに乗り入れ前記サーバにアクセスする端末と、前記ネットワークに接続するとともに前記端末と接続して通信を中継し輻輳を制御するルータとを有する輻輳制御システムであって、
    前記ルータは、TCP(Transmission Control Protocol)通信におけるコネクション確立の最初に送信するパケットであるSYNパケットを一時的に格納するSYNキューと、SYNパケット以外のパケットを一時的に格納するデータキューとを有することを特徴とする輻輳制御システム。
  2. 前記ルータは、前記データキューに蓄積されたデータ量が予め決められた閾値Λ1以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする請求項1の輻輳制御システム。
  3. 前記ルータは、前記データキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする請求項2の輻輳制御システム。
  4. 前記ルータは、前記端末から前記サーバの方向の通信において、前記蓄積モードの場合は前記データキューから送信する流量を予め決められた値F1以下になるように制御し、前記送信モードの場合は前記データキューから送信する流量を予め決められた値F2(F2<F1)以下になるように制御し、前記SYNキューから送信する流量を予め決められた値F3(F2+F3=F1)以下になるように制御することを特徴とする請求項3の輻輳制御システム。
  5. 前記ルータは、前記SYNキューと前記データキューとを、前記端末から前記サーバの方向の通信経路、及び前記サーバから前記端末の方向の通信経路に有することを特徴とする請求項1、2、3、又は4の輻輳制御システム。
  6. 前記ルータは、前記SYNキューと前記データキューとを、前記端末から前記サーバの方向の通信経路、或いは前記サーバから前記端末の方向の通信経路のいずれか一方に有することを特徴とする請求項1、2、3、又は4の輻輳制御システム。
  7. ネットワークに接続してサービスを提供するサーバと、前記ネットワークとは別の通信手段を介して前記ネットワークに乗り入れ前記サーバにアクセスする端末と、前記ネットワークに接続するとともに前記端末と接続して通信を中継し輻輳を制御するルータとを有する輻輳制御システムであって、
    前記ルータは、TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケットのうちサーバ方向に送信されるSYNパケットを一時的に格納するSYNキューと、サーバ方向に送信されるSYNパケット以外のパケットを一時的に格納する第1のデータキューと、端末方向に送信される全パケットを一時的に格納する第1のデータキューとを有することを特徴とする輻輳制御システム。
  8. 前記ルータは、前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ1以上となるか又は前記前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ3以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする請求項7の輻輳制御システム。
  9. 前記ルータは、前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となり且つ前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ4(Λ4<Λ3)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする請求項8の輻輳制御システム。
  10. 第1の通信路に接続する装置と第2の通信路に接続する装置との間のTCP通信を中継するルータであって、TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケットを一時的に格納するSYNキューと、SYNパケット以外のパケットを一時的に格納するデータキューとを有することを特徴とするルータ。
  11. 前記データキューに蓄積されたデータ量が予め決められた閾値Λ1以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする請求項10のルータ。
  12. 前記データキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする請求項11のルータ。
  13. 前記データキューと前記SYNキューに蓄積されたパケットの送信において、前記蓄積モードの場合は前記データキューから送信する流量を予め決められた値F1以下になるように制御し、前記送信モードの場合は前記データキューから送信する流量を予め決められた値F2(F2<F1)以下になるように制御し、前記SYNキューから送信する流量を予め決められた値F3(F2+F3=F1)以下になるように制御することを特徴とする請求項12のルータ。
  14. 前記SYNキューと前記データキューとを、前記第1の通信路から前記第2の通信路の方向の通信経路、及び前記第2の通信路から前記第1の通信路の方向の通信経路に設けたことを特徴とする請求項10、11、12、又は13のルータ。
  15. 前記SYNキューと前記データキューとを、前記第1の通信路から前記第2の通信路の方向の通信経路、或いは前記第2の通信路から前記第1の通信路の方向の通信経路のいずれか一方に設けたことを特徴とする請求項10、11、12、又は13のルータ。
  16. 第1の通信路に接続する装置と第2の通信路に接続する装置との間のTCP通信を中継するルータであって、TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケットのうち第1の通信路に送信するSYNパケットを一時的に格納するSYNキューと、第1の通信路に送信するSYNパケット以外のパケットを一時的に格納する第1のデータキューと、第2の通信路に送信する全パケットを一時的に格納する第2のデータキューを有することを特徴とするルータ。
  17. 前記ルータは、前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ1以上となるか又は前記前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ3以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする請求項16のルータ。
  18. 前記ルータは、前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となり且つ前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ4(Λ4<Λ3)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする請求項17のルータ。
  19. 第1の通信路に接続する装置と第2の通信路に接続する装置との間のTCP通信を中継するルータにおける輻輳制御方法であって、
    TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケットを一時的に格納するSYNキューと、SYNパケット以外のパケットを一時的に格納するデータキューとを有し、
    前記データキューに蓄積されたデータ量が予め決められた閾値Λ1以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする輻輳制御方法。
  20. 前記データキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする請求項19の輻輳制御方法。
  21. 前記データキューと前記SYNキューに蓄積されたパケットの送信において、前記蓄積モードの場合は前記データキューから送信する流量を予め決められた値F1以下になるように制御し、前記送信モードの場合は前記データキューから送信する流量を予め決められた値F2(F2<F1)以下になるように制御し、前記SYNキューから送信する流量を予め決められた値F3(F2+F3=F1)以下になるように制御することを特徴とする請求項20の輻輳制御方法。
  22. 第1の通信路に接続する装置と第2の通信路に接続する装置との間のTCP通信を中継するルータにおける輻輳制御方法であって、
    TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケットのうち第1の通信路に送信するSYNパケットを一時的に格納するSYNキューと、第1の通信路に送信するSYNパケット以外のパケットを一時的に格納する第1のデータキューと、第2の通信路に送信する全パケットを一時的に格納する第2のデータキューとを有し、
    前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ1以上となるか又は前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ3以上となると蓄積モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を停止して保留することを特徴とする輻輳制御方法。
  23. 前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となり且つ前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ4(Λ4<Λ3)以下となると送信モードに移行して前記SYNキューに蓄積されているSYNパケットの送信を開始することを特徴とする請求項22の輻輳制御方法。
  24. TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケット以外のパケットを受信して一時的に格納するデータキューに蓄積されたデータ量が予め決められた閾値Λ1以上となると蓄積モードに移行する手順と、蓄積モードに移行すると前記SYNパケットを受信して一時的に格納するSYNキューに蓄積されているSYNパケットの送信を停止して保留する手順とをコンピュータに実行させることを特徴とするプログラム。
  25. 前記データキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となると送信モードに移行する手順と、送信モードに移行すると前記SYNキューに蓄積されているSYNパケットの送信を開始する手順とをコンピュータに実行させることを特徴とする請求項24のプログラム。
  26. 前記データキューと前記SYNキューに蓄積されたパケットの送信において、前記蓄積モードの場合は前記データキューから送信する流量を予め決められた値F1以下になるように制御する手順と、前記送信モードの場合は前記データキューから送信する流量を予め決められた値F2(F2<F1)以下になるようにするとともに前記SYNキューから送信する流量を予め決められた値F3(F2+F3=F1)以下になるように制御する手順とをコンピュータに実行させることを特徴とする請求項25のプログラム。
  27. TCP通信におけるコネクション確立の最初に送信するパケットであるSYNパケット以外のパケットで第1の方向に送信するパケットを一時的に格納する第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ1以上となるか、又は前記第1の方向とは逆方向に送信される全パケットを一時的に格納する第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ3以上となると蓄積モードに移行する手順と、蓄積モードに移行すると前記SYNパケットのうち第1の方向に送信するパケットを一時的に格納するSYNキューに蓄積されているSYNパケットの送信を停止して保留する手順とをコンピュータに実行させることを特徴とするプログラム。
  28. 前記第1のデータキューに蓄積されたデータ量が予め決められた閾値Λ2(Λ2<Λ1)以下となり且つ前記第2のデータキューに蓄積されたデータ量が予め決められた閾値Λ4(Λ4<Λ3)以下となると送信モードに移行する手順と、送信モードに移行すると前記SYNキューに蓄積されているSYNパケットの送信を開始する手順とをコンピュータに実行させることを特徴とする請求項27のプログラム。
JP2004245849A 2004-08-25 2004-08-25 Tcpによる通信の輻輳制御システム、ルータ、輻輳制御方法、及びプログラム Withdrawn JP2006067132A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004245849A JP2006067132A (ja) 2004-08-25 2004-08-25 Tcpによる通信の輻輳制御システム、ルータ、輻輳制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004245849A JP2006067132A (ja) 2004-08-25 2004-08-25 Tcpによる通信の輻輳制御システム、ルータ、輻輳制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2006067132A true JP2006067132A (ja) 2006-03-09

Family

ID=36113231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004245849A Withdrawn JP2006067132A (ja) 2004-08-25 2004-08-25 Tcpによる通信の輻輳制御システム、ルータ、輻輳制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2006067132A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014168524A1 (en) * 2013-04-08 2014-10-16 Telefonaktiebolaget L M Ericsson (Publ) Controlling establishment of multiple tcp connections

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014168524A1 (en) * 2013-04-08 2014-10-16 Telefonaktiebolaget L M Ericsson (Publ) Controlling establishment of multiple tcp connections

Similar Documents

Publication Publication Date Title
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
RU2298289C2 (ru) Устройство и способ доставки пакетов в беспроводных сетях с многократными ретрансляциями
EP1175065B1 (en) Method and system for improving network performance enhancing proxy architecture with gateway redundancy
JP3448481B2 (ja) 非対称回線用tcp通信高速化装置
US7369498B1 (en) Congestion control method for a packet-switched network
US9225630B2 (en) Method and multi-homed equipment for establishing a multipath connection
US5519699A (en) Method of protocol termination and a packet data communication system applied the method
US20080232402A1 (en) Communication relay apparatus, resource releasing method, and program for communication relay apparatus
JP2002252640A (ja) ネットワーク中継装置及び方法並びにシステム
JPWO2008029793A1 (ja) パケット回復方法、通信システム、情報処理装置およびプログラム
US10461886B2 (en) Transport layer identifying failure cause and mitigation for deterministic transport across multiple deterministic data links
US20100246400A1 (en) Communication device and method
JP4772553B2 (ja) データ送受信装置及びデータ送受信方法
JP2006262417A (ja) 通信速度制御方法及びその装置
Wang et al. Use of TCP decoupling in improving TCP performance over wireless networks
JP2006203537A (ja) ネットワーク伝送装置およびネットワーク伝送方法
JP2003258880A (ja) ネットワークおよびノードおよびデータ転送方法
JP2005136684A (ja) データ転送方法とtcpプロキシ装置およびそれを用いたネットワークシステム
JP2006067132A (ja) Tcpによる通信の輻輳制御システム、ルータ、輻輳制御方法、及びプログラム
JP5405870B2 (ja) 通信機器
JP2008199431A (ja) 通信装置
JP4505575B2 (ja) 通信システム、ゲートウェイ送信装置、ゲートウェイ受信装置、送信方法、受信方法および情報記録媒体
JP2009171305A (ja) 通信装置およびプログラム
JP2006279867A (ja) Adsl通信装置、プログラム及び方法
JP6268027B2 (ja) 通信システム、送信装置、及び通信方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070119

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20071106