[go: up one dir, main page]

JP2002314592A - Ipパケット通信網におけるルータ、同ルータの輻輳制御方法及びプログラム - Google Patents

Ipパケット通信網におけるルータ、同ルータの輻輳制御方法及びプログラム

Info

Publication number
JP2002314592A
JP2002314592A JP2001115446A JP2001115446A JP2002314592A JP 2002314592 A JP2002314592 A JP 2002314592A JP 2001115446 A JP2001115446 A JP 2001115446A JP 2001115446 A JP2001115446 A JP 2001115446A JP 2002314592 A JP2002314592 A JP 2002314592A
Authority
JP
Japan
Prior art keywords
mode
tcp
size
queue
packet
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.)
Pending
Application number
JP2001115446A
Other languages
English (en)
Inventor
Tatsuo Hashimoto
起男 橋本
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 JP2001115446A priority Critical patent/JP2002314592A/ja
Publication of JP2002314592A publication Critical patent/JP2002314592A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】 IPパケット通信ネットワークにおいて、ルー
タが輻輳を制御する際に、コネクション型のTCP データ
通信のサービス品質を大きく落とさずに通信を継続でき
るようにする。 【解決手段】 初期状態は「適度な輻輳又は輻輳なし」
モード300 となり、通常の動作を行う。キューサイズが
b に達すると「新規TCP コネクションを抑制」モード30
1 に移行し、ポートへのTCP パケットのうち既にTCP コ
ネクションが確立し通信中のTCP パケットのみをキュー
に挿入し、新規TCP コネクション要求は破棄する。TCP
以外のトラフィック量が多い場合や、TCP 転送がなかな
か終わらずに転送レートが上げられると、キューサイズ
が増加しd に達すると「TCP windowsize 制御」モード3
02 に移行する。このモードで輻輳要因がなければ、TCP
コネクションは終了に向かいトラフィック量が減少
し、キューサイズが小さくなり、a を下回ればモード30
0 へ移行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、IPパケット通信網
において通信されるパケットの輻輳を制御するルータ、
その輻輳制御方法、及びルータにおけるコンピュータが
実行するプログラムに関するものである。
【0002】
【従来の技術】インターネットで広く用いられているIP
(Internet Protocol) パケット通信網では、信頼性を保
証するコネクションオリエンテッドのTCP (Transport C
ontrolProtocol)と、信頼性のないコネクションレスのU
DP ( User Datagram Protocol) がトランスポートレイ
ヤーサービスとして利用されている。
【0003】IPネットワークを流れるトラフィックのほ
とんどはTCP 又は UDPのデータである。これは、ネット
ワーク通信を行うユーザが使用するアプリケーション
が、上記2つのいずれかをトランスポートプロトコルと
して使用しているためである。このようなIPネットワー
ク通信においては、ネットワーク上のあるリンクに向け
られたトラフィックが集中し、リンクで伝送できる速度
以上にトラフィックが流れ込むことによる輻輳が日常的
に起こり得る。即ち、ルータ側では流入するパケットの
量とそのパケットがどこへ向かうのかという予測ができ
ないために、最大転送可能なスピード以上のトラフィッ
クが集中してしまうことにより、輻輳が起きる。輻輳時
には、ルータはパケットを受け取った後、そのパケット
が送られるべき出力リンクのキューに空きがなければ、
そのパケットを破棄する。
【0004】トラフィックのクラスや上位レイヤがTCP,
UDP等の違いに応じて優先順位を設定したキューを用意
し、輻輳時には優先順位の低いキューからパケットを破
棄していくルータもあるが、TCP コネクションを既に確
立したトラフィックとTCP コネクションを未確立状態の
TCP パケットについて差別化したり、既存のTCP コネク
ションを優先するようなルーティングは行われていな
い。
【0005】WWW 閲覧やFTP ファイル転送をするユーザ
は、ネットワークの輻輳状態等は意識せずにWWW やFTP
サーバにアクセスをするため、通信中にネットワークが
輻輳状態になると、ルータがパケットを破棄し、TCP の
スロースタートが始まり、TCP のパフォーマンスが下が
るばかりでなく、ある程度の品質で通信ができている場
合、スロースタートでは指数関数的にデータレートを増
加させることから、輻輳をより悪くする方向に向かうこ
とがある。同じルータを中継する他のTCP トラフィック
も同様の動作をすることから、輻輳が一時的に回避に向
かってもすぐに輻輳状態になってしまう。この場合、TC
P 通信がほとんど行われないか、全く行われなくなり、
タイマーが切れるまでTCP コネクションは解放されな
い。
【0006】通信途中で応答が遅くなる、又は全くなく
なってしまうと、ユーザは再接続を何度も試みるように
なる。そのたび毎にTCP の確立要求がネットワークに投
入され、さらに輻輳が回避できなくなってしまう。
【0007】
【発明が解決しようとする課題】しかしながら、TCP 通
信のようなコネクション型の通信を利用する場合は、輻
輳時は通信がほとんどできないような、かなりの低レー
トで転送が行われると、小さなファイルの転送のよう
に、すぐにネットワークリソースが解放できるものでも
なかなか通信が終わらないようになる。そのような場
合、ユーザは意図的にコネクションを切ってしまうこと
があり、それまでネットワークに投入したトラフィック
は輻輳を助長しただけで、結果的にユーザにとって何も
得られなかったことになる。
【0008】従って、ネットワーク資源を有効に利用す
るためにも、一度確立されたTCP コネクションはデータ
転送を完全に終わらせるようにし、輻輳時には新たなTC
P コネクション確立を抑制するようにできれば、データ
転送を確実に終了でき、トラフィックが無駄になること
がないだけでなく、ユーザがWWW やFTP サーバへの再ア
クセスのために新たにTCP コネクションを確立しようと
してもできないため、無駄なトラフィックも減らすこと
ができる。
【0009】TCP の新規コネクションを確立させないこ
とは、ユーザレベルで不公平性があるように思われるか
もしれないが、ユーザもTCP コネクションが初めから確
立できなければ、ネットワークに問題が発生しているこ
とが分かり、頻繁にWWW ページのリロードを行うことは
なくなるため、輻輳はすぐに解決するようになるので、
TCP の新規コネクションを確立させ、レスポンスのひど
く悪い、もしくは、データ通信が満足に終了しないよう
なことに比べれば、TCP コネクションが始めから確立で
きない方がユーザにとってより有益である。
【0010】UDP もIPネットワーク内を流れる主要なト
ラフィックである。UDP はTCP のようにフロー制御がな
いため、1つのフロー中のトラフィック量が突然増えた
りすることは希であるが、ルータが輻輳を起こしていて
もトラフィックレートを下げようとはしないため、高デ
ータレートのUDP トラフィックは、その経路パスを共有
する他のTCP,UDP トラフィックのスループットを大きく
下げてしまうばかりでなく、そのUDP フロー自身のスル
ープットも落としてしまう。そのため、TCP コネクショ
ンが低レートに落ちたままコネクションを維持し続けた
り、タイムアウトでコネクションが切れてしまうことを
極力避ける仕組みが必要である。
【0011】本発明は上記の課題を解決するためになさ
れたもので、インターネット、イントラネットに代表さ
れるIPパケット通信ネットワークにおいて輻輳が起きた
とき、ネットワークを構成するルータが輻輳を制御する
際に、コネクション型のTCP(Transmission Control Pro
tocol)データ通信のサービス品質を大きく落とさずに通
信を継続できるようにすることを目的としている。
【0012】
【課題を解決するための手段】本発明によるIPパケット
通信網におけるルータは、上記の目的を達成するため
に、TCP パケット用キューと、前記TCP パケット用キュ
ーに保持されるキューサイズが第1のサイズのとき、キ
ューにパケットを挿入する通常の動作を行う第1のモー
ドと、前記キューサイズが前記第1のサイズより大きい
第2のサイズのとき、既にTCP コネクションが確立し通
信中のTCパケットのみをキューに挿入し、新規TCP コネ
クションを抑制する第2のモードと、前記キューサイズ
が前記第2のサイズより大きい第3のサイズのとき、TC
P コネクションを抑制すると共にTCP 転送速度を抑える
第3のモードとを選択的に行う制御手段とを設けたもの
である。
【0013】本発明によるIPパケット通信網におけるル
ータの輻輳制御方法は、ルータのTCP パケット用キュー
に保持されるキューサイズが第1のサイズのとき、キュ
ーにパケットを挿入する通常の動作を行う第1のモード
と、前記キューサイズが前記第1のサイズより大きい第
2のサイズのとき、既にTCP コネクションが確立し通信
中のTCパケットのみをキューに挿入し、新規TCP コネク
ションを抑制する第2のモードと、前記キューサイズが
前記第2のサイズより大きい第3のサイズのとき、TCP
コネクションを抑制すると共にTCP 転送速度を抑える第
3のモードとを選択的に行うようにしたものである。
【0014】本発明によるプログラムは、ルータのTCP
パケット用キューに保持されるキューサイズが第1のサ
イズのとき、キューにパケットを挿入する通常の動作を
行う第1のモードを実行する処理と、前記キューサイズ
が前記第1のサイズより大きい第2のサイズのとき、既
にTCP コネクションが確立し通信中のTCパケットのみを
キューに挿入し、新規TCP コネクションを抑制する第2
のモードを実行する処理と、前記キューサイズが前記第
2のサイズより大きい第3のサイズのとき、TCP コネク
ションを抑制すると共にTCP 転送速度を抑える第3のモ
ードを実行する処理と、前記第1、第2及び第3の処理
の1つをキューサイズに基づいて選択する処理とをコン
ピュータに実行させるためのものである。
【0015】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。図1にルータの出力ポートに設定
されるキュー100 を示す。円101 はキュー100 に挿入さ
れているパケットをキュー100 から取り出し、ルータの
ポートの接続されているリンクへパケットを送る機能を
示している。また、キュー100 はTCPパケットのみをキ
ューイングし、同じポートのその他のキューでUDP パケ
ットやIPパケットはキューイングされる。
【0016】図1の zはキューの大きさであり、キュー
が保持できる容量を示し、単位はパケット数もしくはバ
イト、ビット数である。a, b, c, dは0 ≦ a≦ b≦ c≦
d≦zとなる数で、ルータはこれらの値を閾値とするこ
とでキューサイズに応じて輻輳時のパケットの取り扱い
を決定する。尚、具体的なa, b, c, d,zの値はルータ管
理者によって決定される。
【0017】a は輻輳のない、又は非常に少ない状態に
戻るため、b は新規TCP コネクションを抑制し、トラフ
ィックを増やさないようにするため、c はTCP 転送速度
を抑える状態から新規TCP コネクションを抑制する状態
に戻るため、d はTCP 転送速度を抑える状態になるため
の状態遷移の基準値として利用する。
【0018】a とb, cとd の値を同じ値にすることも考
えられるが、そうすると、キューサイズが閾値に近い場
合、1パケットの処理毎に状態遷移が頻繁に行われる可
能性がある。そのような履歴現象により、動作が不安定
になることを防ぐために、本実施の形態においては、a
とb, cとd の値に余裕をもたせて、状態遷移が頻繁に起
こらないようにしている。
【0019】ルータは出力ポート毎にTCP パケットに対
してTCP mode変数を保持し、この値によってTCP パケッ
トに対する振舞いを決定する。そのモードを「適度な輻
輳又は輻輳なし」、「新規TCP コネクション抑制」、
「TCP Window size 制御」と名前付けし、TCP mode値で
モード状態を示すものとする。
【0020】図2に示すように出力ポートのTCP modeは
TCP キューサイズQsize によって変化する。図2におい
て、まず、初期状態は「適度な輻輳又は輻輳なし」モー
ド300 から始まり、このモードではキューにパケットを
挿入する通常の動作を行うのみである。「適度な輻輳又
は輻輳なし」モード300 からキューサイズがb に達する
と「新規TCP コネクションを抑制」モード301 に移行
し、キューサイズがd に達すると「TCP window size 制
御」モード302 に移行する。
【0021】「新規TCP コネクションを抑制」モード30
1 では、ルータは該当ポートへのTCP パケットのうち既
にTCP コネクションが確立し通信中のTCP パケットのみ
をキューに挿入し、新規TCP コネクション要求(TCPヘッ
ダでSYN ビットが立っているパケット) とTCP コネクシ
ョン確立応答(TCPヘッダでSYN ビットとACK ビットが立
っているパケット) については積極的に破棄すること
で、新たにTCP コネクションが確立し、TCP トラフィッ
クが増加するのを抑制する。
【0022】このモードでTCP 以外のトラフィックによ
る輻輳要因がなければ、TCP コネクションは早期に終了
に向かいトラフィック量が減少するため、キューサイズ
が小さくなってくる。キューサイズがa で示す大きさを
下回れば、「適度な輻輳又は輻輳なし」モード300 へ移
行し、輻輳が深刻になるのを防いだことになる。
【0023】TCP 以外のトラフィック量が多い場合や、
TCP 転送がなかなか終わらずに転送レートが上げられて
しまうと、キューサイズは増加し、d に達した場合は
「TCPwindow size 制御」モード302 に移行する。
【0024】その他の場合、つまり a≦ Qsize < dの場
合は「新規TCP コネクション抑制」モード301 に止まり
続け、現状のTCP コネクションを保持するように努め
る。
【0025】「TCP window size 制御」モード302 は、
出力ポートが双方向通信可能な時、つまり、そのポート
でパケットを受け取ることができるポートが対象であ
る。「TCP window size 制御」モード302 にあるポート
では、受け取ったパケットがTCP のACK パケットであっ
た場合、ヘッダに書かれているwidow sizeフィールドの
値を記述されている値よりも小さくすることで、送信者
に対して転送速度を遅くするよう働きかけることができ
る。
【0026】その際、ヘッダの書き換えを行うためTCP
パケットのChecksumフィールドを再計算して正しいTCP
パケットを再構成する必要があるため、ルータの処理が
増加してしまうことになるが、TCP ACK パケットは全体
トラフィックに対して少ないので、それほど大きな処理
にはならない。
【0027】また、該当ポートから入力したTCP ACK パ
ケットの宛先が必ずしもそのポートから出て行くTCP フ
ローの送信者に対してのものとは限らないが、双方向の
リンクのほとんどは上下線の速度が同じであるから、ル
ータの保持する経路情報も上下ほぼ同じであるため、こ
のTCP ACK パケットに対する処理によってポートから出
力されるTCP フローを押さえることができる。また、
「TCP window size 制御」モード302 では「新規TCP コ
ネクションを抑制」モード301 同様に新規TCP コネクシ
ョンセットアップのためのパケットは破棄する。
【0028】このモードでキューサイズが cを下回った
ならば、「新規TCP コネクションを抑制」モード301 へ
移り、 aを下回ったならば、「適度な輻輳又は輻輳な
し」モード300 へ戻り、新たなTCP コネクションの確立
を許可する。それ以外、つまりQsize ≧c であれば、
「TCP window size 制御」モード302 に止まる。もちろ
ん、このモードのままでキューのサイズが最大値のz に
達した場合は、TCP 確立済みパケットについても破棄し
なければならない。
【0029】UDP (User Datagram Protocol)パケットに
ついても同様にキューを設け、 u≦yとなるu を定義
し、キューサイズが uを越えた場合にトラフィック量に
応じてUDP パケットの破棄を行う。ここで、y はUDP が
キューイングされるキューサイズの最大値である。
【0030】RTP のようなプロトコルをUDP の上位に実
現し、RTCPのようなプロトコルで受信側の情報を送信側
にフィードバックできるものを除いてUDP のフロー制御
は困難であり、ネットワークの輻輳、帯域に関係なくパ
ケットを送ることができるため、UDP トラフィックにつ
いてはパケット破棄のルールが幾つか考えられる。
【0031】例えば、10段階のUDP トラフィック制御を
行いたい場合は、UDP/IPヘッダのソースIPアドレス、デ
スティネーションIPアドレス、ソースポート番号、デス
ティネーションポート番号に基づいてハッシュ関数にか
けてフローを10種類に分け、それをハッシュクラスとす
る。そして、算出されたハッシュクラス毎のポートから
の出量を定期的に統計情報として記録し、流量の多いフ
ローのトラフィックから破棄を開始する。
【0032】あるUDP フローが大量のトラフィックを発
生させていた場合は、そのUDP フローの属するハッシュ
クラスのトラフィックが大量に流入しており、あるハッ
シュクラスに偏った分布を示すようになる。これは明ら
かにそのハッシュクラスのフローがルータ資源を大きく
利用しようと、大きなレートでパケットを送っているた
めであるので、このようなフローに対してルータは輻輳
時にパケットを転送しないことによって輻輳は大きく改
善する方法に向かう。
【0033】また、このような大量トラフィックを利用
するようなアプリケーションは、高精細の動画映像が代
表的だが、そのようなアプリケーションでは上位レイヤ
で転送速度を落とす考慮がなされているため、大量のパ
ケット破棄が起これば、上位レイヤが転送速度を落とさ
ざるを得なくなる。さらに、転送速度の変更ができない
UDP フローについては、その速度以下では通信品質が極
端に悪いか、通信そのものが成り立たないことがあるた
め、そのようなフローのUDP パケットを一切破棄してし
まった方が無駄なトラフィックをネットワークで送る必
要がなくなり、効率的である。それでも改善しない場合
は次に流量の多いハッシュクラスのUDP フローを破棄す
る。
【0034】統計情報収集周期をT とすれば、T 時間毎
に廃棄されるハッシュクラスの数が変化することにな
る。また、統計情報はT 時間毎に更新されるため、ハッ
シュクラスのトラフィック量分布に変化が生じるため、
同じフローが常に破棄されることはない。
【0035】次に、ルータの輻輳コントロールについて
図3、4、5、6を用いて詳細に説明する。図3はルー
タの全体フロー、図4は入力パケットの扱い、図5はTC
P フロー処理、図6はTCP 処理モード選択についてのフ
ローチャートである。
【0036】図3において、ルータは電源投入時等の初
期状態においてTCP mode値を「適度な輻輳又は輻輳な
し」モードに設定し、全てのキューを空にしてパケット
がやって来るのを待ち受ける(ステップ501 )。パケッ
トがルータに到着するまではパケット待ちの状態にある
(ステップ502 )。パケットが到着すると、ルータは入
力パケット処理(ステップ508 )を経てルーティングテ
ーブルを参照し、どの出力ポートへパケットをスイッチ
イングすべきかを決定する(ステップ509 )。
【0037】スイッチング後、出力ポートのキューにパ
ケットを挿入できるかどうかルータはTCP 、UDP 、その
他のIPパケットに対応した処理を行う。TCP パケットの
場合にはTCP 処理(ステップ505 )を、UDP パケットの
場合はUDP 処理(ステップ506 )、その他のパケットに
ついてはその他の処理(ステップ507 )をパケットの種
類に応じて行い、各処理はパケットをキューに挿入する
か破棄するかを決定する。
【0038】その後、ルータはパケット待ちの状態(ス
テップ502 )へ戻り、新しいパケットが到着するのを待
つ。各キューの優先度やスケジューリングについては、
ルータの設定により自由に行える。UDP 処理について
は、前述した方法を用いて輻輳に関与する割合の高いも
のを選択的に破棄するようなことが可能である。
【0039】入力パケットの処理については、図4に示
されるようにステップ601, 602により「TCP Window siz
e 制御」モードのポートでTCP ACK パケットを受信した
ときに、TCP ACK パケットのwindow size をより小さい
値に書き換えて送信者に送ることで(ステップ603, 60
4)、送信者は低速にはなるが、輻輳時のスロースター
ト状態よりも良い通信速度でパケットを送出できるだけ
でなく、スロースタートの指数的トラフィック増加も防
ぐことができる。
【0040】図5にTCP 処理のフローチャートを示す。
このフローチャートでは、出力ポートに割り当てられた
TCP キューへパケットを挿入するか破棄するかを、TCP
modeで示される処理状態によって異なる結果が得られる
(ステップ701 )。TCP modeの値が「適度な輻輳または
輻輳なし」の場合には、パケットをキューに挿入した後
(ステップ702 )、TCP 処理モードの選択を行い(ステ
ップ711 )、処理を終了する。
【0041】TCP mode の値が「新規TCP コネクション
抑制」及び「TCP Window size 制御」の場合には、さら
にTCP パケットの種類を検査し(ステップ703, 707)、
パケットがSYN で示されるTCP コネクション要求, SYN+
ACK で示されるTCP コネクション確立応答に対してはパ
ケットを破棄( ステップ 705, 706, 709, 710)すること
で、新たにTCP コネクションがそのポートを通じて確立
されることを防げるため、それらが生み出す新たなトラ
フィックの増加を抑制する。
【0042】パケットの種類が既にTCP コネクションが
確立され、データ通信中であるコネクションのTCP パケ
ットについてはキューに挿入する( ステップ 704, 70
8)。以上のTCP キューに挿入するかどうかを決定した
後、そのTCP キューサイズに基づいてTCP modeの値を更
新するため、適切なTCP 処理モードの選択をする必要が
ある。TCP 処理モード選択は図6のフローチャートで示
されるように行われる。
【0043】図2、図6に示すように、新しいTCP mode
値を決定するには、現在のTCP mode値とTCP キューサイ
ズ(Qsize) 情報に基づいて決定する(ステップ801,802
)。現在のTCP modeが「適度な輻輳又は輻輳なし」モ
ードの場合は、キューサイズがbより小さければ、新し
いTCP modeも「適度な輻輳または輻輳なし」モードであ
り(ステップ803 )、 TCPキューサイズがb 以上d 未満
であれば、新しいTCP modeは「新規TCP コネクション抑
制」モードとなり(ステップ804 )、TCP キューサイズ
がd 以上であれば「TCP window size 制御」モードが新
しいTCP mode値として設定されることになる(ステップ
805 )。
【0044】また、現在のTCP modeが「新規TCP コネク
ション抑制」モードの場合は、キューサイズがa より小
さければ、新しいTCP modeは 「適度な輻輳又は輻輳な
し」モードになり(ステップ807 )、 TCPキューサイズ
がd 以上であれば、新しいTCP modeは「TCP window siz
e 制御」モードとなる(ステップ808 )。
【0045】また、現在のTCP modeが「TCP window siz
e 制御」モードの場合は、キューサイズが aより小さけ
れば、新しいTCP modeは「適度な輻輳または輻輳なし」
モードになり(ステップ810 )、 TCPキューサイズがa
以上c 未満であれば、新しいTCP modeは「新規TCP コネ
クション抑制」モードとなる(ステップ811 )。
【0046】以上の説明においては、出力ポートのTCP
専用キューが1種類であったが、キューが複数ある場合
においては、以下のように適用することができる。TCP
キューが上位プロトコル別など複数のキューに分かれて
いる場合は、各TCPキューにTCP 輻輳制御のための a,
b, c, d 点を設定することで、プロトコル別に振る舞い
を設定することができるようになる。あるいは、各TCP
キューの合計数に対してa, b,c, d 点を設定することも
できる。
【0047】次に、本発明の具体的な実施例について説
明する。まず、実施例1について説明する。ネットワー
クの構成は図7のようであるとし、ホスト901, 902, 90
3 がホスト904 にルータ905 を介して接続している。各
ホストとルータ905 を接続するリンク911,912,913のリ
ンクスピードは、 911が10Mbps, 912 が10Mbps,913が10
0Mbps、914 が10Mbpsであるとする。また、ルータ905
はリンクスピード10Mbpsのリンク916 によってインター
ネット906 にも接続されている。
【0048】また、 TCPキューサイズはz=100Kバイトで
あり、制御に用いるパラメータはa=30K バイト、b=40K
バイト、c=70K バイト、d=80K バイト、u=70K バイトと
設定されている。
【0049】次に動作について説明する。新規TCP コネ
クション抑制の動作例を以下に示す。始めの時点におい
ては、ネットワークにはトラフィックが流れていない。
ホスト901 は、FTP を用いてファイルをホスト904 へ送
り始めたが、他のトラフィックがないため特に輻輳も起
こらず、ファイル転送は順調に行われている。ルータ90
5 のリンク914 へのキューはb=40K バイトを常に下回っ
ており、「適度な輻輳又は輻輳なし」モードで動作する
ため、パケットは問題なく送られる。
【0050】次に、ホスト902 もホスト904 へ巨大なフ
ァイルをFTP 転送しようと、TCP コネクションを確立し
ファイル転送を始める。TCP コネクション要求時のルー
タ905 は「適度な輻輳又は輻輳なし」であるので、新規
TCP コネクションを確立できた。新しいTCP コネクショ
ンのため、ルータ905 ではホスト902 のスロースタート
により瞬時的に輻輳状態に陥り、TCPキューがあふれて
しまうことがあるが、この場合はdで示す値を超えるの
で、「TCP window size 制御」モードに入るが、このモ
ードでwindow sizeを抑制されたパケットを受け取るかT
CPの持つ輻輳回避の制御により発信側のホスト902はす
ぐに送信レートを下げることから、a の値を下回り、b
を越えることは以後なかったため、ファイル転送は順調
である。
【0051】ホスト903 がホスト904 へリアルタイム動
画像データをUDP で送信するようになってくると、ルー
タ905 ではUDP キューに輻輳が起きるが、2 つのFTP セ
ッションによる4 本のTCP はスループットを下げること
で輻輳を回避できた。しかし、UDP の転送レートが大き
いため、ルータ905 はTCP フローを十分に処理できなく
なり、TCP キューサイズはb の値を超えてしまうことが
多くなり、a の値を下回らなくなった。このとき、ルー
タ905 はリンク914 へのポートに対して「新規TCP 確立
の抑制」モードを設定する。
【0052】さらに、ホスト904 はインターネット906
内のWWW サーバにアクセスしようとするが、ルータ905
が新しいTCP コネクションを確立させないため、アクセ
スは抑制される。その間に、2つのファイル転送は程な
く終わり、リアルタイム動画像データは依然送り続けら
れているが、ホスト904 はインターネット906 内のWWW
サーバにアクセスすることができるようになる。FTP を
使った通信では、大きなファイルの転送が途中で失敗し
てしまうと、途中まで正しく受信した部分が無駄にな
り、ファイルの始めから再転送することになり、非効率
であるため、TCP コネクションはファイル転送の途中で
切れないようにする必要がある。
【0053】次に、実施例2について説明する。構成は
実施例1と同じである。TCP Window size 制御の動作例
を以下に示す。ホスト901 及び902 では、FTP を用いて
ファイルをホスト904 へ転送している。ホスト904 では
WWW サーバが運用されており、突然、TCP を利用したht
tp接続要求がインターネット906 から発生し、多量のト
ラフィックが送り込まれてきた。
【0054】ルータ905 では、TCP キューサイズがb の
値を越えたため、「新規TCP コネクション確立抑制」モ
ードに入り、増え続けるTCP コネクション数の増加を防
ぐことで、さらなるコネクションを増やさずにすんだ
が、確立できたコネクションのいくつかはまだスロース
タート状態にあるようで、総トラフィック量は増加し、
キューサイズは dを越えた。
【0055】ルータ905 は「TCP window size 制御」モ
ードに入り、ホスト904 からのTCPACK パケットのwindo
w size フィールドを減少させた。それを受け取ったホ
ストは転送レートを下げたため、総トラフィック量の増
加もなくなり、また、TCP コネクションの幾つかはデー
タ転送終了してきたため、TCP キューサイズも小さくな
ってきた。まだ、a の値よりはキューサイズが大きいた
め、新規リクエストに応答はできないが、コネクション
を確立できたリクエストについては全て応答ができてい
る。HTTP転送が終わり、TCP コネクションが次々と解放
されてきたため、キューサイズはa 値を下回ったので、
新規WWW アクセスを受け付けることが再びできる。
【0056】バースト的にTCP コネクションリクエスト
が発生しても、既に確立したものについてはTCP コネク
ションが終わるまで保持し、処理できない新規コネクシ
ョンを排除することで、ホスト904 のWWW サーバレスポ
ンスが向上する。
【0057】尚、他の実施の形態として、コネクション
型とコネクションレス型通信を提供するIP以外のパケッ
トネットワークにおいても、コネクションセットアップ
メッセージがコネクション確立済みのものと区別できる
のであれば、ルータがIPの場合と同様に輻輳時に新規コ
ネクションの確立を抑制する動作を行うことができる。
【0058】次に、本発明の実施の形態によるプログラ
ムについて説明する。図1、図2の前述した動作に基づ
く処理及び各フローチャートに示す処理を、ルータにお
けるCPUが実行するためのプログラムは、本発明によ
るプログラムを構成する。
【0059】このプログラムを記録するための記録媒体
としては、光磁気ディスク、光ディスク、半導体メモ
リ、磁気記録媒体等を用いることができ、これらをRO
M、RAM、CD−ROM、フレキシブルディスク、メ
モリカード等に構成して用いてよい。
【0060】またこの記録媒体は、インターネット等の
ネットワークや電話回線等の通信回線を介してプログラ
ムが送信された場合のサーバやクライアントとなるコン
ピュータシステム内部のRAM等の揮発性メモリのよう
に、一定時間プログラムを保持するものも含まれる。
【0061】また上記プログラムは、このプログラムを
記憶装置等に格納したコンピュータシステムから伝送媒
体を介して、あるいは伝送媒体中の伝送波により他のコ
ンピュータシステムに伝送されるものであってもよい。
上記伝送媒体とは、インターネット等のネットワーク
(通信網)や電話回線等の通信回線(通信線)のように
情報を伝送する機能を有する媒体をいうものとする。
【0062】また、上記プログラムは、前述した機能の
一部を実現するためであってもよい。さらに、前述した
機能をコンピュータシステムに既に記録されているプロ
グラムとの組み合わせで実現できるもの、いわゆる差分
ファイル(差分プログラム)であってもよい。
【0063】従って、このプログラム図7のシステム又
は装置とは異なるシステム又は装置において用い、その
システム又は装置のコンピュータがこのプログラムを実
行することによっても、各実施の形態で説明した機能及
び効果と同等の機能及び効果を得ることができ、本発明
の目的を達成することができる。
【0064】
【発明の効果】本発明によれば、輻輳時にTCP を使用し
たデータ転送についてTCP 専用のキューでUDP 等のフロ
ー制御のないトラフィックによってスループットが著し
く低下したり、TCP コネクションが切れてしまう現象を
押さえることができる。さらにルータ出力ポートのTCP
キュー状態により新規のTCP コネクション確立を抑制す
ることで、新規トラフィックの増加を防ぎ、現状のTCP
コネクション上のデータ転送をより早く完了させること
で輻輳状態を短くすることができる。
【図面の簡単な説明】
【図1】 本発明の実施の形態によるルータ輻輳制御方
法によるルータの出力ポートに設定されるキューを示す
構成図である。
【図2】 TCPmode がTCP キューサイズQsize により変
化することを示す構成図である。
【図3】 ルータの全体的な動作を示すフローチャート
である。
【図4】 ルータにおける入力パケットを扱う処理を示
すフローチャートである。
【図5】 ルータにおけるTCP フロー処理を示すフロー
チャートである。
【図6】 ルータにおけるTCP 処理モードの選択に関す
る処理を示すフローチャートである。
【図7】 本発明の実施例によるネットワーク構成を示
す構成図である。
【符号の説明】
100 キュー 101 パケットをリンクに送る機能 300 「適度な輻輳又は輻輳なし」モード 301 「新規TCP コネクションを抑制」モード 302 「TCP Window size 」モード 901 〜904 ホスト 905 ルータ 906 インターネット 911 〜914,916 リンク

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 TCP パケット用キューと、 前記TCP パケット用キューに保持されるキューサイズが
    第1のサイズのとき、キューにパケットを挿入する通常
    の動作を行う第1のモードと、前記キューサイズが前記
    第1のサイズより大きい第2のサイズのとき、既にTCP
    コネクションが確立し通信中のTCPパケットのみをキュ
    ーに挿入し、新規TCP コネクションを抑制する第2のモ
    ードと、前記キューサイズが前記第2のサイズより大き
    い第3のサイズのとき、TCP コネクションを抑制すると
    共にTCP 転送速度を抑える第3のモードとを選択的に行
    う制御手段とを設けたことを特徴とするIPパケット通信
    網におけるルータ。
  2. 【請求項2】 前記制御手段は、前記第3のモードにお
    いて、ポートが受け取ったパケットがTCP のACKパケッ
    トのとき、そのヘッダに書かれたWindow sizeフィール
    ドの値を小さくすることによりTCP 転送速度を抑えるこ
    とを特徴とする請求項1記載のIPパケット通信網におけ
    るルータ。
  3. 【請求項3】 前記第1のモードと第2のモードとの
    間、第1のモードと第3のモードとの間、第2のモード
    と第3のモードとの間でそれぞれモードを移行させるた
    めのキューサイズの閾値が、その移行方向により異なる
    ことを特徴とする請求項1又は2記載のIPパケット通信
    網におけるルータ。
  4. 【請求項4】 UDP パケット用キューを設けると共に、
    前記制御手段は、前記UDP パケット用キューのキューサ
    イズが所定の値を超えたとき、トラフィック量に応じて
    UDP パケットを破棄することを特徴とする請求項1、2
    又は3記載のIPパケット通信網におけるルータ。
  5. 【請求項5】 ルータの出力ポートに保持されるTCPキ
    ューサイズが第1のサイズのとき、キューにパケットを
    挿入する通常の動作を行う第1のモードと、前記キュー
    サイズが前記第1のサイズより大きい第2のサイズのと
    き、既にTCPコネクションが確立し通信中のTCPパケット
    のみをキューに挿入し、新規TCP コネクションを抑制す
    る第2のモードと、前記キューサイズが前記第2のサイ
    ズより大きい第3のサイズのとき、TCP コネクションを
    抑制すると共にTCP 転送速度を抑える第3のモードとを
    選択的に行うことを特徴とするIPパケット通信網におけ
    るルータの輻輳制御方法。
  6. 【請求項6】 前記第3のモードにおいて、前記ポート
    が受け取ったパケットがTCP のACKパケットのとき、そ
    のヘッダに書かれたWindow size フィールドの値を小さ
    くすることによりTCP 転送速度を抑えることを特徴とす
    る請求項5記載のIPパケット通信網におけるルータの輻
    輳制御方法。
  7. 【請求項7】 前記第1のモードと第2のモードとの
    間、第1のモードと第3のモードとの間、第2のモード
    と第3のモードとの間でそれぞれモードを移行させるた
    めのキューサイズの閾値が、その移行方向により異なる
    ことを特徴とする請求項5又は6記載のIPパケット通信
    網におけるルータの輻輳制御方法。
  8. 【請求項8】 UDP パケット用キューのキューサイズが
    所定の値を超えたとき、トラフィック量に応じてUDP パ
    ケットを破棄することを特徴とする請求項5、6又は7
    記載のIPパケット通信網におけるルータの輻輳制御方
    法。
  9. 【請求項9】 ルータのTCP パケット用キューに保持さ
    れるキューサイズが第1のサイズのとき、キューにパケ
    ットを挿入する通常の動作を行う第1のモードを実行す
    る処理と、 前記キューサイズが前記第1のサイズより大きい第2の
    サイズのとき、既にTCP コネクションが確立し通信中の
    TCPパケットのみをキューに挿入し、新規TCPコネクショ
    ンを抑制する第2のモードを実行する処理と、 前記キューサイズが前記第2のサイズより大きい第3の
    サイズのとき、TCP コネクションを抑制すると共にTCP
    転送速度を抑える第3のモードを実行する処理と、 前記第1、第2及び第3の処理の1つをキューサイズに
    基づいて選択する処理とをコンピュータに実行させるた
    めのプログラム。
  10. 【請求項10】 前記第3のモードにおいて、前記ポー
    トが受け取ったパケットがTCP のACKパケットのとき、
    そのヘッダに書かれたWindow size フィールドの値を小
    さくすることによりTCP 転送速度を抑える処理を設けた
    ことを特徴とする請求項9記載のプログラム。
  11. 【請求項11】 前記第1のモードと第2のモードとの
    間、第1のモードと第3のモードとの間、第2のモード
    と第3のモードとの間でそれぞれモードを移行させるた
    めのキューサイズの閾値が、その移行方向により異なる
    ことを特徴とする請求項9又は10記載のプログラム。
  12. 【請求項12】 UDP パケット用キューのキューサイズ
    が所定の値を超えたとき、トラフィック量に応じてUDP
    パケットを破棄する処理を設けたことを特徴とする請求
    項9、10又は11記載のプログラム。
JP2001115446A 2001-04-13 2001-04-13 Ipパケット通信網におけるルータ、同ルータの輻輳制御方法及びプログラム Pending JP2002314592A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001115446A JP2002314592A (ja) 2001-04-13 2001-04-13 Ipパケット通信網におけるルータ、同ルータの輻輳制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001115446A JP2002314592A (ja) 2001-04-13 2001-04-13 Ipパケット通信網におけるルータ、同ルータの輻輳制御方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2002314592A true JP2002314592A (ja) 2002-10-25

Family

ID=18966344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001115446A Pending JP2002314592A (ja) 2001-04-13 2001-04-13 Ipパケット通信網におけるルータ、同ルータの輻輳制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2002314592A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7385986B2 (en) 2001-11-16 2008-06-10 Nec Corporation Packet transfer method and apparatus
US7788348B2 (en) * 2004-11-26 2010-08-31 Nokia Corporation Context profile for data communications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7385986B2 (en) 2001-11-16 2008-06-10 Nec Corporation Packet transfer method and apparatus
US7788348B2 (en) * 2004-11-26 2010-08-31 Nokia Corporation Context profile for data communications

Similar Documents

Publication Publication Date Title
CA2347018C (en) Computer communication
US6907042B1 (en) Packet processing device
JP3713031B2 (ja) データストリームを送信する方法
JPH1198219A (ja) 層間のフロー制御を行う通信プロトコルを持つ通信方法およびデータ通信端末
CN109714267B (zh) 管理反向队列的传输控制方法及系统
EP2228965A1 (en) Gateway and method for connecting an IP network to a sensor network
JP5020076B2 (ja) 低頻度ackのシステムに適した高性能tcp
JP5807710B2 (ja) コンテンツ配信システム、コンテンツ配信方法及びプログラム
CN100407698C (zh) 无线链路控制层的数据传输方法
CN109951260A (zh) 一种数据包发送方法及相关设备
CN115134302B (zh) 一种无损网络中避免队头阻塞和拥塞扩散的流量隔离方法
WO2002096022A2 (en) Dual mode service platform within network communication system
CN115022227A (zh) 数据中心网中基于循环或重路由的数据传输方法和系统
CN115766605A (zh) 网络拥塞控制方法、装置及系统
JP2002314592A (ja) Ipパケット通信網におけるルータ、同ルータの輻輳制御方法及びプログラム
Lane et al. Best-effort network layer packet reordering in support of multipath overlay packet dispersion
Rahimi et al. An improvement mechanism for low priority traffic TCP performance in Strict Priority Queueing
US7936691B2 (en) Replication of static and dynamic databases in network devices
JP2006262417A (ja) 通信速度制御方法及びその装置
EP1730903A2 (en) Expedited data transmission in packet based network
CN113726635B (zh) 一种报文处理方法、装置及电子设备
JPH11331257A (ja) 異ネットワーク間接続方法およびルータ装置
Goldstein Congestion control in frame relay networks using explicit binary feedback
Kung et al. TCP with sender-based delay control
Badrinath et al. Car pooling on the net: Performance and implications

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040601

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050118