JP4654926B2 - 通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム - Google Patents

通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム Download PDF

Info

Publication number
JP4654926B2
JP4654926B2 JP2006024013A JP2006024013A JP4654926B2 JP 4654926 B2 JP4654926 B2 JP 4654926B2 JP 2006024013 A JP2006024013 A JP 2006024013A JP 2006024013 A JP2006024013 A JP 2006024013A JP 4654926 B2 JP4654926 B2 JP 4654926B2
Authority
JP
Japan
Prior art keywords
congestion
packet
state
window
congestion state
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
JP2006024013A
Other languages
English (en)
Other versions
JP2007208571A (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
Priority to JP2006024013A priority Critical patent/JP4654926B2/ja
Priority to US11/638,517 priority patent/US20070177502A1/en
Publication of JP2007208571A publication Critical patent/JP2007208571A/ja
Application granted granted Critical
Publication of JP4654926B2 publication Critical patent/JP4654926B2/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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/187Details of sliding window management
    • 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/12Avoiding congestion; Recovering from congestion
    • 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/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss

Landscapes

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

Description

本発明は通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラムに関し、特にパケット交換による通信システムにおける輻輳制御機能を有するプロトコル層のセッション制御技術に関する。
パケット交換において、セッションを張るプロトコルの中には、受信側の受信処理能力を超えないように送信側の速度を制御するフロー制御、及び途中のネットワークの輻輳を起こさないように、送信側の速度を制御する輻輳制御の両方の機能(以下、両方の機能を合わせてレート制御とする)を持つものが存在する。
一般に、このレート制御機能はOSI(Open Systems Interconnection)参照モデルのトランスポート層で実現されることが多い。レート制御方式には、ウィンドウ制御型がある。ウィンドウ制御型は、1RTT(Round Trip Time)辺りにネットワークに滞留する量を調節する方法である。現在、インタネットで広く用いられているTCPも、ウィンドウ制御型トランスポート層プロトコルであり、輻輳制御機能を持っている。
TCPでは、輻輳制御を送信側で行い、受信側からの応答確認パケット[ACK(ACKnowledgement)パケット]によって、輻輳制御の状態を遷移させて、パケット送出量を増加、もしくはパケット紛失を検知し、パケット送出量を減少させて、パケットを再送する。パケット送出量は、1RTT辺りに送信できるパケット量であるCWND(輻輳ウィンドウ)で決まり、送信側は、ACKパケットで通知されたシーケンス番号(ACK番号)の最大値から、CWND分のデータを受信側へおくることができる。
受信側からのACKパケット内のシーケンス番号が増加している場合、送信側はCWNDを上げ続けて、パケット送出量を上げ続ける。CWNDの上昇幅は、CWNDとSSTHRESH(スロースタート閾値)との関係で変わり、CWND≦SSTHRESH(スロースタート状態:Slow Start Phase)の場合は、1つのACKにつきCWNDの上昇幅は、1パケットであり、CWND>SSTHRESH(輻輳回避状態:Congestion Avoidance Phase)の場合は、1つのACKにつきCWNDの上昇幅は、1/CWNDパケットとなる。
一方、受信側でパケット損失を検知した場合、連続して受け取ったパケットの最大シーケンス番号+1(すなわち、パケットロスを検知したシーケンス番号の最小値)をACKパケットによって送信側へ通知する。受信側ではACKパケット内のシーケンス番号(ACK番号)が重複した場合(重複ACK)は、ACK番号からのセグメント(データの1区間)が紛失したと判断して、紛失したセグメントを再送信する。これを高速再送という。
この時、SSTHRESH=CWND/2となり、CWND=SSTHRESH+3*セグメントサイズとなる。別の重複ACKが到着するたびに、CWNDをセグメントサイズ単位で増加させ、CWNDの値によって新規パケットの転送が許可されたら新しいパケットを送信する。送信済の全てのデータの対するACKが帰ってきたら、CWND=SSTHRESHとする。高速再送後、ここまでが、高速回復と呼ばれる。高速回復中のスループットは、ロス直前の半分以下となる。その後、輻輳回避状態となる。
また、ACKが一定時間帰ってこなかった場合も、パケットが紛失したと判断して(タイムアウト)、CWNDを1パケットにして、紛失したパケットを再送信する。輻輳制御に関しては、非特許文献1に記載されている。
また、迅速なパケット再送のために、TCPのオプションとして、SACK(Selective ACK)オプションが規定されている(例えば、非特許文献2参照)。このオプションは、パケット紛失によって非連続となった区間のうち、連続している区間を受信側から送信側へ通知するための情報をACKパケットに付加するものである。SACKオプションは、一度に複数のブロックで連続区間を通知可能であり、最初のブロックには、最新の受信シーケンス番号を格納する。このため、送信側には、受信側に到着した最大のシーケンス番号(受信側の最大受信シーケンス番号)が通知されることとなる。
送信側は、通知された連続している区間より非連続区間を算出して、非連続区間のセグメントを再送する。送信側は、非連続区間のみを再送すればよく、再送効率がよい。非連続区間を再送することができたかどうかは、ACK番号が非連続区間を越えていたかどうかで判断することができる。非連続区間を再送することができた場合には、非連続区間より前の連続区間の情報を破棄する。
このSACKオプションの用いても、既存の輻輳制御は、上述した従来の方法と同様であり、重複ACKを検出したら、パケット再送を行い、CWNDを半分にするという動作を行っている。このSACKオプションは、現在、広く実装されており、標準のTCPの一部を構成しているといえる。
従来のTCPの問題として、ひとつのパケットロスに対しても、CWNDを半分にしてしまい、スループットが減少するため、ランダムロスが発生するとネットワークの帯域が空いていても、使い切ることができないという点がある。また、第2の問題としては、パケットロスが高い頻度で発生する状態では、輻輳回避状態に入ることがなく、高速再送、高速回復を繰り返す状態となり、スループットがあがらなくなるという点がある。
上述した従来のTCPの第1の問題に対処するために、受信側で、受信したパケットのチェックサムを計算して、チェックサムが合わなかったら、ランダムロスが発生したことを送信側に通知し、送信側において、ランダム誤りが発生したことを通知されると、輻輳回避のためのフロー制御を行わないという手順を含むデータ転送制御方法がある(例えば、特許文献1参照)。
この方法は、送信側、受信側の両方で、TCPの実装を変更する必要がある。また、パケットロスが高い頻度で発生する状態では、輻輳回避状態に入ることがなく、ランダムパケットの再送分のACKを待つ状態が繰り返し発生して、結果としてスループットが出なくなり、従来のTCPの第2の問題を解決していない。
さらに、この方法は、ランダムロスパケットの再送を行い、その再送したパケットのACKが返ってくるまで1RTTの間、パケットを新たに送出することができないため、この間、スループットが減少するという問題点がある。この問題点について、送信側で受信した最大ACK番号と最大送信可能シーケンス番号の変動を、図12を用いて説明する。
説明を簡略化するために、最大送信可能シーケンス番号は受信側の最大ACK番号+cwndに等しいものとし、受信側のバッファは十分大きいものとする。輻輳回避状態中の時間Aまでは、送信側は最大送信可能シーケンス番号までのデータを受信側に送っているものとする。
時間Aに、送信側がシーケンス番号xのパケットがランダムロスをしたと検知するものとし、このパケット以外は紛失していないものとする。この時、送信側はシーケンス番号xのパケットを再送し、cwndを下げない動作を行う。この後、再送パケットに対応するACKが返ってくる時間B(=時間A+1RTT)まで、送信側から送信されるACK番号が進むことがない(重複ACK)であるため、最大送信可能シーケンス番号は、x+CWNDのまま変化しない。
よって、この区間において、送信側は、受信側に新規シーケンス番号を持つパケットを送出することができない。時間Bに、シーケンス番号xの再送パケットに対応するACKのシーケンス番号はx+CWNDとなり、最大送信可能シーケンス番号はx+2CWNDとなるため、この時点でCWND分のデータが送信可能となり、バースト的に通信が行われる。
また、他の技術としては、パケットロス検出時に、CWNDを直ちに削減せずにそのまま保持して、その後のパケット紛失状況が悪化した場合にのみCWNDを減少させる手順を含む帯域制御方法がある(例えば、特許文献2参照)。
この方法は、パケットロスがひとつでもあると、CWNDを維持しながらロス数の変化を監視する状態に入ってしまいスループットが上昇しなくなるという問題点がある。また、パケットロスが高い頻度で発生する状態では、輻輳回避状態に入ることがなく、ロスパケットの再送分のACKを待つ状態が繰り返し発生して、結果としてスループットが出なくなり、従来のTCPの第2の問題を解決していない。
さらに、この方法は、ロスパケットの再送を行い、その再送したパケットのACKが返ってくるまで1RTTの間、パケットを新たに送出することができないため、この間、スループットが減少するという問題点がある。この問題点について、送信側で受信した最大ACK番号と最大送信可能シーケンス番号の変動を、図13を用いて説明する。
説明を簡略化するために、受信側のバッファは十分大きいものとして、最大送信可能シーケンス番号は受信側から通知された最大ACK番号+CWNDに等しいものとする。輻輳回避状態中の時間Aまでは、送信側は、最大送信可能シーケンス番号までのデータを受信側に送っているものとする。
時間Aに、送信側がシーケンス番号xのパケットが紛失をしたことを検知したものとし、このパケット以外は紛失していないものとする。この時、送信側はシーケンス番号xのパケットを再送し、CWNDを下げない動作を行う。この後、再送パケットに対応するACKが返ってくる時間B(=時間A+1RTT)まで、送信側から送信されるACK番号が進むことがない(重複ACK)であるため、最大送信可能シーケンス番号は、x+CWNDのまま変化しない。よって、この区間において、送信側は、受信側に新規シーケンス番号を持つパケットを送出することができない。
時間Bに、シーケンス番号xの再送パケットに対応するACKのシーケンス番号は、x+CWNDとなり、最大送信可能シーケンス番号は、x+2CWNDとなるため、この時点でCWND分のデータが送信可能となり、バースト的に通信が行われる。
特許第3572111号公報 特許第3163479号公報 W.Richard Stevens著、「TCP/IP イラスレイテッド:ザ・プロトコルズ(TCP/IP Illustrated:The Protocols)」、Addison−Wesley,1994 M.Mathis、J.Mahdavi、S.Floyd、A.Romanow著、「RFC 2018−TCPセレクティブ アクナレッジメント オプションズ(RFC 2018−TCP Selective Acknowledgement Options)」、IETF、1996
上述した従来の輻輳制御技術では、輻輳があったことを、単純なロス数変化やネットワークから通知される明示的な輻輳情報を基づいて行っているため、ある特定の輻輳状況の変化に応じた輻輳制御を行うことができるが、より広範囲の輻輳状況の変化に応じた輻輳制御の変更を行うことができない。
また、従来の輻輳制御技術では、輻輳回避状態に入ることなく、ロスパケット再送とその後の回復状態とが繰り返し発生するため、ロス率の高い状態ではスループットが減少するという問題がある。
さらに、従来の輻輳制御技術では、パケットロス後、受信側のCWNDと最大ACK番号とが変わらず、最大送信可能シーケンス番号が変化しないため、パケットを送信することができないので、ロスパケットの再送後、スループットが減少するという問題がある。
そこで、本発明の目的は上記の問題点を解消し、受信側端末の実装の変更やネットワークからの特別な情報を入手することなく、送信側端末の実装の変更だけで、ロス率が高い状態でもスループットを増加させることができる通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラムを提供することにある。
本発明による通信システムは、受信側がパケットロスを認識した時に紛失したパケットを指定して送信側に再送を要求するウィンドウ制御方式を用いる通信システムであって、
前記送信側に、前記受信側から通知された情報と輻輳制御の状態の一つ以上の情報とによってネットワークの輻輳状態を推定する推定手段と、前記推定手段で推定された輻輳状態に応じて重輻輳状態であるか前記重輻輳状態でないかを区別する手段と、前記重輻輳状態でないと区別された時に前記パケットの送信量を決めるためのウィンドウを増加しつつ紛失したパケットを再送する手段とを備えている。
本発明による通信装置は、受信側がパケットロスを認識した時に紛失したパケットを指定して送信側に再送を要求するウィンドウ制御方式を用いる通信装置であって、
前記送信側の処理手段に、前記受信側から通知された情報と輻輳制御の状態の一つ以上の情報とによってネットワークの輻輳状態を推定する推定手段と、前記推定手段で推定された輻輳状態に応じて重輻輳状態であるか前記重輻輳状態でないかを区別する手段と、前記重輻輳状態でないと区別された時に前記パケットの送信量を決めるためのウィンドウを増加しつつ紛失したパケットを再送する手段とを備えている。
本発明による輻輳制御方法は、受信側がパケットロスを認識した時に紛失したパケットを指定して送信側に再送を要求するウィンドウ制御方式をとる通信システムに用いる輻輳制御方法であって、
前記送信側の装置が、前記受信側から通知された情報と輻輳制御の状態の一つ以上の情報とによってネットワークの輻輳状態を推定する推定処理と、前記推定手段で推定された輻輳状態に応じて重輻輳状態であるか前記重輻輳状態でないかを区別する処理と、前記重輻輳状態でないと区別された時に前記パケットの送信量を決めるためのウィンドウを増加しつつ紛失したパケットを再送する処理とを実行している。
本発明による輻輳制御方法のプログラムは、受信側がパケットロスを認識した時に紛失したパケットを指定して送信側に再送を要求するウィンドウ制御方式をとる通信システムに用いる輻輳制御方法のプログラムであって、
前記送信側の処理を行うコンピュータに、前記受信側から通知された情報と輻輳制御の状態の一つ以上の情報とによってネットワークの輻輳状態を推定する推定処理と、前記推定手段で推定された輻輳状態に応じて重輻輳状態であるか前記重輻輳状態でないかを区別する処理と、前記重輻輳状態でないと区別された時に前記パケットの送信量を決めるためのウィンドウを増加しつつ紛失したパケットを再送する処理とを実行させている。
すなわち、本発明の第1の通信システムは、通信装置に、パケットロスの状態やパケットの到着時間の情報、輻輳制御の状態を用いて、ネットワークの輻輳状態を推定するネットワーク状態推定部と、輻輳状態が軽輻輳であるか、重輻輳中であるかを判断する軽・重輻輳判定部と、軽輻輳時に再送するか、通常転送するかを判断する再送判定部と、軽輻輳時の再送を行う軽輻輳再送部とを有している。
本発明の第1の通信システムは、上記のような構成を採用し、軽輻輳時にもウィンドウを継続的に上昇させることで、受信側端末の実装の変更やネットワークからの特別な情報を入手することなく、送信側端末の実装の変更だけで、ロス率が高い状態でもスループットを増加させることが可能となる。
また、本発明の第2の通信システムは、通信装置に、上記の構成に加えて、最大送信可能シーケンス番号を増やして補正する最大送信可能シーケンス番号補正部を有している。本発明の第2の通信システムでは、上記のような構成を採用し、軽輻輳時にも、新たなパケットを送信するように促すことで、受信側端末の実装の変更やネットワークからの特別な情報を入手することなく、送信側端末の実装の変更だけで、ロス率が高い状態でもスループットを増加させることが可能となり、ロスパケットの再送後、スループットを増加させることが可能となる。
本発明は、上記のような構成及び動作とすることで、受信側端末の実装の変更やネットワークからの特別な情報を入手することなく、送信側端末の実装の変更だけで、ロス率が高い状態でもスループットを増加させることができるという効果が得られる。
次に、本発明の実施の形態について図面を参照して説明する。図1は本発明の実施の形態による通信システムの構成を示すブロック図である。図1において、本発明の実施の形態による通信システムは送信端末1と、受信端末2と、送信端末1から受信端末2へとデータを送るための通信網100とから構成されている。
本発明の実施の形態による通信システムでは、送信端末1に、パケットロスの状態やパケットの到着時間の情報、輻輳制御の状態を用いて、ネットワークの輻輳状態を推定するネットワーク状態推定部と、輻輳状態が軽輻輳であるか、重輻輳中であるかを判断する軽・重輻輳判定部と、軽輻輳時に再送するか、通常転送するかを判断する再送判定部と、軽輻輳時の再送を行う軽輻輳再送部とを設けている。
本発明の実施の形態による通信システムでは、上記のような構成を採用し、軽輻輳時にもウィンドウを継続的に上昇させることで、受信端末2の実装の変更やネットワークからの特別な情報を入手することなく、送信端末1の実装の変更だけで、ロス率が高い状態でもスループットを増加させることができる。
また、本発明の実施の形態による通信システムでは、送信端末1に、上記の構成に加えて、最大送信可能シーケンス番号を増やして補正する最大送信可能シーケンス番号補正部を設けている。本発明の実施の形態による通信システムでは、上記のような構成を採用し、軽輻輳時にも、新たなパケットを送信するように促すことで、受信端末2の実装の変更やネットワークからの特別な情報を入手することなく、送信端末1の実装の変更だけで、ロス率が高い状態でもスループットを増加させることができ、ロスパケットの再送後、スループットを増加させることができる。
図2は本発明の第1の実施例による送信端末のセッション処理部の構成を示すブロック図である。図2において、セッション処理部10はデータ入力部11と、パケット入力部12と、輻輳制御部13と、データ出力部14と、パケット出力部15と、セッション状態記憶部16と、セグメントバッファ部17とから構成されている。
このセッション処理部10を備える送信端末は、上記の図1に示す本発明の実施の形態による通信システムの送信端末1であり、本発明の実施の形態と同様に、通信網100を通して受信端末2にデータを送っている。尚、送信端末1においては説明を簡略化するためにセッション処理部10のみについて説明するが、このセッション処理部10以外の処理部は公知であるので、その説明を省略する。
また、セッション処理部10については、確認応答(ACK:ACKnowledgement)パケットによってウィンドウ型の輻輳制御を行う方式で、送信側の輻輳制御にかかわる部分のみについて記述し、セッション開設・終了、データ送受信、ACK送信に関する部分の説明を省略して、セッションのデータが一方向に流れるものとする。
データ入力部11はデータを保持する端末内部資源3からのデータを入力し、パケット入力部12は通信網100からパケットを入力する。輻輳制御部13はデータ入力部11及びパケット入力部12からの信号を処理する。データ出力部14は輻輳制御部13からのデータを端末内部資源3へ送り、パケット出力部15は輻輳制御部13からのパケットを通信網100へ送る。
セッション状態記憶部16は輻輳制御部13で処理するセッションの情報を保持し、セグメントバッファ部17はデータ入力部11からデータ出力部14へのデータを、パケットの中のデータ部分であるセグメントの区切りで保持する。
輻輳制御部13については、セッション処理における確認応答(ACK)パケット処理に関する処理を記述し、データ送受信処理やタイマ処理に関する部分についての説明を省略する。
図3は図2の輻輳制御部13の構成を示すブロック図である。図3において、輻輳制御部13は、輻輳判定部21と、ネットワーク状態推定部22と、軽・重輻輳判定部23と、再送判定部24と、重輻輳再送部25と、軽輻輳再送部26と、通常転送部27と、状態更新部28とを備えている。
輻輳判定部21はACKパケット及びセッション状態記憶部16の記憶内容から、現在の状態が軽・重輻輳中であるかを判断し、軽・重輻輳中であればネットワーク状態推定部22に処理を渡し、そうでなければ通常状態と判断して通常転送部27に処理を渡す。ネットワーク状態推定部22はACKパケット及びセッション状態記憶部16の記憶内容からネットワーク輻輳状態を推定する。
軽・重輻輳判定部23はネットワーク状態推定部22の推定結果から軽輻輳であるか、重輻輳であるかを判断し、軽輻輳であれば再送判定部24へ処理を渡し、重輻輳であれば重輻輳再送部25へ処理を渡す。再送判定部24は受信側からACKによって再送が要求されたセグメントの中で再送を行っていない未再送セグメントがあるかを判断し、未再送セグメントがあれば軽輻輳再送部26に処理を渡し、なければ通常転送部27に処理を渡す。
重輻輳再送部25は輻輳ウィンドウを減少させて、再送対象となるセグメントをセグメントバッファ部17のセグメントから探し、再送対象となるセグメントがあればパケット出力部15へ処理を渡す。軽輻輳再送部26は輻輳ウィンドウを上げる、もしくは維持して、あるいは再送パケットのセグメントのサイズ分輻輳ウィンドウを下げて、再送対象となるセグメントをセグメントバッファ部17のセグメントから探し、再送対象となるセグメントがあればパケット出力部15へ処理を渡す。
通常転送部27は輻輳ウィンドウを上げて、セグメントバッファ部17の新規送信セグメントがあればパケット出力部15へ処理を渡す。状態更新部28は通常転送部27、軽輻輳再送部26、重輻輳再送部25各々の処理の後、セッションの状態を更新する。尚、再送判定部24においては、1度再送したセグメントを、再々送してもよく、再々送の回数に制限はない。
再々送のタイミングは、新規送出シーケンス番号が、再送、もしくはn回再々送した時の新規シーケンス番号からx番号増加した時となる。x番号は複数の値でもよく、輻輳ウィンドウサイズから算出される値でもよい。x番号として最もよい値は、x番号を輻輳ウィンドウとする場合である。なぜなら、ウィンドウ制御方式の制御間隔として効果的な値のうち、最小の値であるからである。
また、再々送のタイミングは、再送、もしくはn回再々送してから、時間t経った場合に行ってもよい。yは複数の値でもよい。また、tは遅延時間、パケットの到着間隔から算出される値でもよい。最もよい値は、yを往復遅延時間とする場合である。なぜなら、ウィンドウ制御方式の制御間隔として効果的な値のうち、最小の値であるからである。
ネットワーク状態推定部22においては、ACKパケットやセッション状態記憶部16の記憶内容からのセグメントロスの情報やパケットの到着時間、輻輳制御の状態の情報を用いて、ネットワークの輻輳状態を推定する。セグメントロスの情報とは、受信側に到着したセグメントから受信側で認識したセグメントロス箇所情報を指す。パケットの時間の情報とは、パケットの到着遅延時間、パケットの到着間隔を指す。
セグメントロスの情報からのネットワーク輻輳状態の推定方法としては、(a1)新規セグメントの到着パターンの変動による推定、(a2)セグメントの非連続区間の開始シーケンスと終了シーケンスの差からの推定、(a3)セグメントの非連続区間の量による推定の3つがある。
(a1)の推定方法では、新規セグメントが受信側に連続して到着しているのか、非連続になって到着しているのかに基づいてネットワーク輻輳状態を推定しており、新規セグメントが非連続になって到着する場合に、新規セグメントが連続して到着する場合に比べて輻輳が悪化していると推定する。
(a2)の推定方法では、セグメントの非連続区間の開始シーケンスと終了シーケンスとの差が増加した場合に、輻輳が悪化していると推定する。増加の判断としては、シーケンスの差が、xとなったかどうかで判断してもよい。xは固定値でもよいし、輻輳ウィンドウから算出される値でもよい。また、この推定方法では、シーケンスの差を一定時間毎に計測し、その値が増加しているかどうかでネットワーク輻輳状態を判断してもよい。
(a3)の推定方法では、セグメントの非連続区間の量が増加した場合に、輻輳が悪化していると推定する。セグメントの非連続区間の量とは、送信側で把握しているセグメントの非連続区間の量、もしくは受信側からの通知毎のセグメントの非連続区間の量である。増加の判断としては、非連続区間の量がxとなったかどうかで判断してもよい。xは固定値でもよいし、輻輳ウィンドウから算出される値でもよい。また、この推定方法では、非連続区間の量を一定時間毎に計測し、その値が増加しているかどうかでネットワーク輻輳状態を判断してもよい。さらに、この推定方法では、一つあたりの非連続区間の量が増加している場合に、輻輳が悪化していると推定してもよい。
パケットの到着時間の情報からのネットワーク輻輳状態の推定方法としては、(b1)パケットの到着遅延時間の伸び方による推定、(b2)パケットの到着間隔の伸び方による推定の2つがある。
(b1)の推定方法では、パケットの到着遅延時間が増加している場合に、輻輳が悪化していると推定する。到着遅延時間が増加の傾向にあるかどうかの判断は、閾値を超えた、もしくは単位時間あたりの平均値や偏差をとり、平均値や偏差、もしくはそれらの両方が閾値を超えた、あるいは増加していたら、到着遅延時間が増加の傾向にあると判断する。到着遅延時間で用いる値として最もよい値は、往復遅延時間である。これは応答確認パケットを用いることで、容易に計測可能だからである。
(b2)の推定方法では、パケットの到着間隔が増加の傾向にある場合に、輻輳が悪化していると推定する。到着間隔が増加の傾向にあるかどうかの判断は、閾値を超えた、もしくは単位時間あたりの平均値や偏差をとり、平均値や偏差、もしくはそれらの両方が閾値を超えた、あるいは増加していたら、到着間隔が増加の傾向にあると判断する。
輻輳制御の状態からのネットワーク輻輳状態の推定方法としては、(c1)再々送の回数の変動による推定、(c2)輻輳の継続時間による推定の2つがある。
(c1)の推定方法では、再々送の回数が増加した場合に、輻輳が悪化していると推定する。再々送の回数の増加の判断としては、回数がx回となったかどうかで判断してもよい。xは固定値でもよいし、輻輳ウィンドウから算出される値でもよい。また、この推定方法では、再々送回数を一定時間毎に計測し、その値が増加しているかどうかでネットワーク輻輳状態を判断してもよい。
(c2)の推定方法では、輻輳の継続時間が増加して続けている場合に、輻輳が悪化していると推定する。輻輳の継続時間の増加の判断としては、継続時間が時間tとなったかどうかで判断してもよい。tは固定値でもよいし、到着遅延時間、到着間隔から算出される値でもよい。また、この推定方法では、過去の輻輳継続時間と比較し、現在の輻輳継続時間が増加しているかどうかでネットワーク輻輳状態を判断してもよい。
ネットワーク状態推定部22においては、上述したネットワーク輻輳状態の推定方法のいずれか一つ以上を用いてもよい。最もよい推定方法としては、上述したすべての推定方法を用いる方法である。
図4は図3の輻輳制御部13の動作を示すフローチャートである。これら図1〜図4を参照して本発明の第1の実施例による輻輳制御部13の動作について説明する。
パケット入力部12からのACKパケットは、輻輳判定部21に供給され、輻輳判定部21で、ネットワークの輻輳状態が軽・重輻輳中であるかどうかを判断し(図4ステップS1)、軽・重輻輳中であれば,軽・重輻輳判定部23に処理を渡し、そうでなければ通常状態と判断して通常パケット転送部27に処理を渡す。
ネットワーク状態推定部22はACKパケット及びセッション状態記憶部16の記憶内容からネットワークの輻輳状態を推定する(図4ステップS2)。軽・重輻輳判定部23はネットワーク状態推定部22の推定結果から、現在の状態が軽輻輳であるか、重輻輳であるかを判断し(図4ステップS3)、軽輻輳であれば、再送判定部24へ処理を渡し、重輻輳であれば重輻輳再送部25へ処理を渡す。
再送判定部24では、受信側からACKパケットで再送を要求されたセグメントの中で再送を行っていない未再送セグメントがあるかを判断し(図4ステップS5)、再送すべきセグメントがあれば、軽輻輳再送部26へ処理を渡し、なければ通常転送部27へ処理を渡す。
重輻輳再送部25では、輻輳ウィンドウを減少させて、再送対象となるセグメントをセグメントバッファ部17のセグメントの中から探し、再送対象となるセグメントがあれば、パケット出力部15へ処理を渡す(図4ステップS4)。
軽輻輳再送部26は輻輳ウィンドウを上げる、もしくは維持して、あるいは再送パケットのセグメントのサイズ分輻輳ウィンドウを下げて、再送対象となるセグメントをセグメントバッファ部17のセグメントの中から探し、再送対象となるセグメントがあればパケット出力部15へ処理を渡す(図4ステップS6)。
通常転送部27は輻輳ウィンドウを上げて、セグメントバッファ部17の新規送信セグメントがあればパケット出力部15へ処理を渡す(図4ステップS7)。状態更新部28は通常転送部27、軽輻輳再送部26、重輻輳再送部25各々の処理の後、セッションの状態を更新する(図4ステップS8)。その後、パケット出力部15は通常転送部27、軽輻輳再送部26、重輻輳再送部25各々の処理に基づいて、パケットを通信網100に出力する(図4ステップS9)。
本実施例では、上記の輻輳判定部21と軽・重輻輳判定部23とを別々に設けているが、それらの判定部を統合して一つの判定部とし、通常状態・軽・重輻輳判定部としてもよい。また、本実施例では、通常状態・軽輻輳と重輻輳とを判定する部位と、通常と軽輻輳とを判定する部位とに分割してもよい。つまり、本実施例では、結果的に3つの状態を判別することができればよい。
また、本実施例では、軽輻輳再送部26において、軽輻輳再送処理の後、引き続き、通常転送部27の処理を行ってもよい。さらに、本実施例では、重輻輳再送部25において、ウィンドウを維持してもよい。さらにまた、本実施例では、ウィンドウを通常転送部27に比べて低い増加幅で増加させてもよく、軽輻輳の場合と同様に、再々送を行ってもよい。
次に、本発明の第1の実施例において、輻輳制御方式としてTCP(Transmission Control Protocol、Transport Control Protocolとも呼ばれる)を用いる場合について説明する。
輻輳判定部21では、セッション状態記憶部16で保持された状態が通常状態であれば、渡されたACKパケットが重複ACKであり、重複ACKの閾値を超えたか否かを判断し、重複ACKの閾値を超えた場合、輻輳状態へ遷移して、軽・重輻輳判定部23へ処理を渡す。
また、輻輳判定部21では、セッション状態記憶部16に保持された状態が輻輳状態であれば、SACK(Selective ACK)オプションによって受信側から通知されたシーケンス非連続区間がなくなったかどうかを判断する。
輻輳判定部21では、シーケンス非連続区間がなくなった場合、通常状態となったと判断し、通常転送部27に処理を渡す。輻輳判定部21では、シーケンス非連続区間がなくなっていない場合、軽・重輻輳判定部23に処理を渡す。
シーケンス非連続区間がなくなったかの判断方法としては、ACKパケットにSACK情報が含まれなくなった、またはセッション状態記憶部16に保持されているSACKの連続区間のうち、ACKパケットのACKシーケンス番号以上ものがないことで判断する。
ネットワーク状態推定部22では、ACKパケットやセッション状態記憶部16の記憶内容から、セグメントロスの情報やパケットの到着時間、輻輳制御の状態の情報を用いて、ネットワークの輻輳状態を推定する。
セグメントロスの情報からのネットワーク輻輳状態の推定方法としては、(d1)SACKオプションで受信側から通知された最新の受信シーケンス番号が重複し、閾値を超えた場合、輻輳が悪化したとする、(d2)送信側で送出されたシーケンスの中で送信済みシーケンス番号の最大値(最大送信シーケンス番号)とACK番号との差が、X×輻輳ウィンドウサイズを超えた場合、輻輳が悪化したとする(Xは、1以上の任意の値である)、(d3)SACKオプションで受信側から通知された最新の受信シーケンス番号とACK番号との差が、Y×輻輳ウィンドウサイズを超えた場合、輻輳が悪化したとする(Yは、0より大きい任意の値である)、(d4)SACKオプションで受信側から通知された連続区間から算出される非連続区間の量が、Z×輻輳ウィンドウサイズを超えた場合、輻輳が悪化したとする(Zは、0より大きく、1未満より大きい任意の値である)の4つがある。
パケットの到着時間の情報からのネットワーク輻輳状態の推定方法としては、(e1)パケットの往復遅延時間の偏差が、X×平均値を超えた場合、輻輳が悪化したとする(Xは、0より大きい任意の値である)、(e2)パケットの到着間隔の偏差が、Y×平均値を超えた場合、輻輳が悪化したとする(Yは、0より大きい任意の値である)の2つがある。
輻輳制御の状態からのネットワーク輻輳状態の推定方法としては、(f1)再々送回数の変動が、X回を超えた場合、輻輳が悪化したとする(Xは、0より大きい整数値である)、(f2)輻輳の継続時間が、時間Y×往復遅延時間を超えた場合、輻輳が悪化したとする(Yは、0より大きい値である)の2つがある。
本実施例では、ネットワーク状態推定部22において、上述したネットワーク輻輳状態の推定方法のうちのいずれか一つ以上を用いてもよい。最もよい方法は、すべてを用いる方法である。
軽・重輻輳判定部23では、セッション状態記憶部16で保持された状態が重輻輳でなければ、ネットワーク状態推定部22の推定結果を基に、重輻輳になったか否かを判断し、重輻輳になった場合、重輻輳再送部25へ処理を渡し、重輻輳にならない場合、再送判定部24に処理を渡す。また、軽・重輻輳判定部23では、セッション状態記憶部16で保持された状態が重輻輳であれば、ネットワーク状態推定部22の推定結果を基に、重輻輳が継続しているか否かを判断し、重輻輳が継続している場合、重輻輳再送部25へ処理を渡し、重輻輳が継続していなければ、再送判定部24に処理を渡す。
再送判定部24では、受信側から再送を要求されたセグメントの中で再送を行っていない未再送のセグメントがあるか否かを判断し、未再送のセグメントがあれば、軽輻輳再送部26に処理を渡し、未再送のセグメントがなければ、通常転送部27に処理を渡す。
送信側は、ACKのシーケンス番号、SACKオプションから受信側の再送の要求区間を算出する。ACKのシーケンス番号は連続して受信した最大のシーケンス番号を指し、SACKオプションはパケット紛失によって非連続となった区間のうち、連続している区間を受信側から送信側へ通知するため、これら情報から、送信側で受信側が受信できていないセグメントの区間を算出することができる。
軽輻輳再送部26では、再送もしくは再々送するパケットをセグメントバッファ部17に保持されたセグメントから作成する。この時、輻輳ウィンドウは、変更しないか、作成したセグメントサイズ分減少させ、スロースタート閾値を更新せず、通常の再送中であるというフラグを立てない。すなわち、パケットのみが再送もしくは再々送される。重輻輳再送部25では、輻輳ウィンドウを半分にして、高速再送、高速再転送を行う。
図5は本発明の第2の実施例による輻輳制御部の構成を示すブロック図である。図5において、本発明の第2の実施例による輻輳制御部13aは、最大送信可能シーケンス番号補正部29を追加した以外は、図3に示す本発明の第1の実施例による輻輳制御部13の構成と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第1の実施例と同様である。尚、本発明の第2の実施例による通信システムは図1に示す本発明の実施の形態による通信システムと同様の構成であり、本発明の第2の実施例によるセッション処理部は図2に示す本発明の第1の実施例によるセッション処理部10と同様の構成である。
本発明の第2の実施例では、再送判定部24で再送しないと判断された後、通常転送部27の処理をする前に、最大送信可能シーケンス番号補正部29の処理が実行される。最大送信可能シーケンス番号補正部29は、最大送信可能シーケンス番号を増やして補正することによって、軽輻輳時にも、通常転送部27で新たなパケットを送信するように促す。補正された最大送信可能シーケンス番号は、通常転送部27内での処理のために用いられ、状態更新部28で保持されることはない。
図6は図5の輻輳制御部13aの動作を示すフローチャートである。これら図1と図2と図5と図6とを参照して本発明の第2の実施例による輻輳制御部13aの動作について説明する。尚、図6のステップS11〜S16,S18〜S20の処理は、図4のステップS1〜S9の処理と同様であるので、それらの処理の説明は省略する。
最大送信可能シーケンス番号補正部29は、再送判定部24で、受信側からACKパケットで再送を要求されたセグメントの中で再送を行っていない未再送セグメントがないと判断されると(図6ステップS15)、最大送信可能シーケンス番号を増やして補正し(図6ステップS17)、通常転送部27へ処理を渡す。
次に、本発明の第2の実施例において、セッションプロトコルとしてTCPを用いる場合について説明する。
最大送信可能シーケンス番号補正部29における最大送信可能シーケンス番号補正の仕方としては、通常の最大送信可能シーケンス番号が、“送信から通知された最大のACKシーケンス番号+輻輳ウィンドウサイズ”であるのに対して、“最大のACKシーケンス番号+輻輳ウィンドウサイズ+X”と、任意のXを加えることによって補正する。Xは正の固定値でもよいし、輻輳ウィンドウに比例した値でもよい。
また、本実施例では、最大送信可能シーケンス番号を“SACKオプションで受信側から通知された最新の受信シーケンス番号+輻輳ウィンドウサイズ”としてもよい。
図7は本発明の第3の実施例による輻輳制御部の構成を示すブロック図である。図7において、本発明の第3の実施例による輻輳制御部13bは、軽輻輳転送部30を設けた以外は、図3に示す本発明の第1の実施例による輻輳制御部13の構成と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第1の実施例と同様である。尚、本発明の第3の実施例による通信システムは図1に示す本発明の実施の形態による通信システムと同様の構成であり、本発明の第3の実施例によるセッション処理部は図2に示す本発明の第1の実施例によるセッション処理部10と同様の構成である。
本発明の第3の実施例では、再送判定部24で、受信側からACKによって再送を要求されたセグメントの中で再送を行っていない未再送セグメントがないと判断されると、軽輻輳転送部30へ処理が渡される。軽輻輳転送部30は、通常転送部27と異なる輻輳制御を行う。この異なる輻輳制御とは、通常転送部27に比べて、輻輳ウィンドウの上げ幅が低い、もしくはしばらく輻輳ウィンドウを維持して、その後、輻輳ウィンドウを上げるという制御を指している。
図8は図7の輻輳制御部13bの動作を示すフローチャートである。これら図1と図2と図7と図8とを参照して本発明の第3の実施例による輻輳制御部13bの動作について説明する。尚、図8のステップS21〜S26,S28〜S30の処理は、図4のステップS1〜S9の処理と同様であるので、それらの処理の説明は省略する。
軽輻輳転送部30は、再送判定部24で、受信側からACKパケットで再送を要求されたセグメントの中で再送を行っていない未再送セグメントがないと判断されると(図8ステップS26)、軽輻輳用の転送処理を行う(図8ステップS27)。
図9は本発明の第4の実施例による輻輳制御部の構成を示すブロック図である。図9において、本発明の第4の実施例による輻輳制御部13cは、最大送信可能シーケンス番号補正部29を設けた以外は、図7に示す本発明の第3の実施例による輻輳制御部13bの構成と同様の構成となっており、同一構成要素には同一符号を付してある。また、同一構成要素の動作は本発明の第3の実施例と同様である。尚、本発明の第4の実施例による通信システムは図1に示す本発明の実施の形態による通信システムと同様の構成であり、本発明の第4の実施例によるセッション処理部は図2に示す本発明の第1の実施例によるセッション処理部10と同様の構成である。
本発明の第4の実施例では、再送判定部24で、受信側からACKによって再送を要求されたセグメントの中で再送を行っていない未再送セグメントがないと判断された後、軽輻輳転送部30の処理をする前に、最大送信可能シーケンス番号補正部29の処理が実行される。
最大送信可能シーケンス番号補正部29は、最大送信可能シーケンス番号を増やして補正することによって、軽輻輳時に、軽輻輳転送部30で通常転送部27と異なる輻輳制御を行うに促す。補正された最大送信可能シーケンス番号は、軽輻輳転送部30内での処理のために用いられ、状態更新部28で保持されることはない。
図10は図9の輻輳制御部13cの動作を示すフローチャートである。これら図1と図2と図9と図10とを参照して本発明の第4の実施例による輻輳制御部13cの動作について説明する。尚、図10のステップS31〜S36,S38〜S41の処理は、図8のステップS21〜S30の処理と同様であるので、それらの処理の説明は省略する。
最大送信可能シーケンス番号補正部29は、再送判定部24で、受信側からACKパケットで再送を要求されたセグメントの中で再送を行っていない未再送セグメントがないと判断されると(図10ステップS36)、最大送信可能シーケンス番号を増やして補正し(図10ステップS37)、軽輻輳転送部30へ処理を渡す。軽輻輳転送部30は軽輻輳用の転送処理を行う(図10ステップS38)。
図11は本発明の第5の実施例による送信端末の構成を示すブロック図である。図11において、本発明の第5の実施例による送信端末は、パケット入力装置4と、パケット出力装置5と、データ処理装置6と、記憶装置7と、輻輳制御プログラム8とを備えている。
輻輳制御プログラム8はデータ処理装置6に読込まれ、データ処理装置6の動作を制御し、記憶装置7にセグメントバッファ17、セッション状態記憶部16を生成し、端末内部資源3とデータをやり取りし、パケット入力装置4、パケット出力装置5とパケットをやりとりする。
データ処理装置6は輻輳制御プログラム8の制御によって、上述した本発明の第1〜第4の実施例におけるデータ入力部11、データ出力部14、輻輳制御部13、パケット入力部12、パケット出力部15による処理と同一の処理を実行する。
このように、上述した本発明の第1〜第4の実施例による処理動作は、データ処理装置6が輻輳制御プログラム8の制御に基づいて処理動作を行うことで実現される。
尚、本発明は、上記の各実施例において、輻輳状態が2種類の場合について説明しているが、3種類以上あっても問題ない。すなわち、軽輻輳が2種類以上に分かれていても問題ない。また、重輻輳が2種類以上に分かれていても問題ない。
また、本発明は、上記の各実施例において、2つの端末を用いる場合について説明しているが、端末の数に制限はない。さらに、本発明は、上記の各実施例において、通信方向が片方向の場合について説明しているが、双方向であってもよい。さらにまた、本発明は、上記の各実施例において、送信端末1と受信端末2とがそれぞれ分かれている場合について説明しているが、送信端末1及び受信端末2の機能が同一の端末にあってよい。この場合、送信端末1及び受信端末2がそれぞれセッション中継器であってもよい。
また、本発明において、もし実際の輻輳の原因がランダムロスであっても、ランダムロスを軽輻輳と判断するため、このような環境下において本発明は目的を達成することができる。
本発明は、端末のセッション通信、特にTCP通信の用途に適用可能である。また、本発明は、プロキシや暗号化装置といったセッション中継器の用途にも適用可能である。
本発明の実施の形態による通信システムの構成を示すブロック図である。 本発明の第1の実施例による送信端末のセッション処理部の構成を示すブロック図である。 図2の輻輳制御部の構成を示すブロック図である。 図3の輻輳制御部の動作を示すフローチャートである。 本発明の第2の実施例による輻輳制御部の構成を示すブロック図である。 図5の輻輳制御部の動作を示すフローチャートである。 本発明の第3の実施例による輻輳制御部の構成を示すブロック図である。 図7の輻輳制御部の動作を示すフローチャートである。 本発明の第4の実施例による輻輳制御部の構成を示すブロック図である。 図9の輻輳制御部の動作を示すフローチャートである。 本発明の第5の実施例による送信端末の構成を示すブロック図である。 特許文献1の再送時におけるスループットの減少問題を示すシーケンス図である。 特許文献2の再送時におけるスループットの減少問題を示すシーケンス図である。
符号の説明
1 送信端末
2 受信端末
3 端末内部資源
4 パケット入力装置
5 パケット出力装置
6 データ処理装置
7 記憶装置
8 輻輳制御プログラム
10 セッション処理部
11 データ入力部
12 パケット入力部
13,13a,
13b,13c 輻輳制御部
14 データ出力部
15 パケット出力部
16 セッション状態記憶部
17 セグメントバッファ部
21 輻輳判定部
22 ネットワーク状態推定部
23 軽・輻輳判定部
24 再送判定部
25 重輻輳再送部
26 軽輻輳再送部
27 通常転送部
28 状態更新部
29 最大送信可能シーケンス番号補正部
30 軽輻輳転送部
100 通信網

Claims (58)

  1. 受信側がパケットロスを認識した時に紛失したパケットを指定して送信側に再送を要求するウィンドウ制御方式を用いる通信システムであって、
    前記送信側に、前記受信側から通知された情報と輻輳制御の状態の一つ以上の情報とによってネットワークの輻輳状態を推定する推定手段と、前記推定手段で推定された輻輳状態に応じて重輻輳状態であるか前記重輻輳状態でないかを区別する手段と、前記重輻輳状態でないと区別された時に前記パケットの送信量を決めるためのウィンドウを増加しつつ紛失したパケットを再送する手段とを有することを特徴とする通信システム。
  2. 前記送信側が前記パケットの再々送を行い、
    前記推定手段が前記ネットワークの輻輳状態を推定するのに用いる前記輻輳制御の状態が前記パケットの再々送の回数であることを特徴とする請求項1に記載の通信システム。
  3. 前記推定手段が前記ネットワークの輻輳状態を推定するのに用いる前記輻輳制御の状態が前記パケットの到着間隔の伸び方であることを特徴とする請求項1または請求項2に記載の通信システム。
  4. 前記送信側が前記受信側から通知された情報が、セグメントのロス箇所及び前記パケットの到着時間のいずれか一つ以上であることを特徴とする請求項1から請求項3のいずれかに記載の通信システム。
  5. 前記推定手段が前記ネットワークの輻輳状態を推定することに、新規セグメントの到着パターンの変動を用いることを特徴とする請求項4に記載の通信システム。
  6. 前記推定手段が前記ネットワークの輻輳状態を推定することに、セグメントの非連続区間の開始シーケンスと終了シーケンスとの差を用いることを特徴とする請求項4または請求項5に記載の通信システム。
  7. 前記推定手段が前記ネットワークの輻輳状態を推定することに、セグメントの非連続区間の量を用いることを特徴とする請求項4から請求項6のいずれかに記載の通信システム。
  8. 前記推定手段が前記ネットワークの輻輳状態を推定することに、前記パケットの到着遅延時間の伸び方を用いることを特徴とする請求項4から請求項7のいずれかに記載の通信システム。
  9. 前記推定手段が前記ネットワークの輻輳状態を推定することに、前記パケットの到着間隔の伸び方を用いることを特徴とする請求項4から請求項8のいずれかに記載の通信システム。
  10. 前記送信側に、前記重輻輳状態であると区別された時に前記ウィンドウを減少しつつ前記紛失したパケットを再送する手段を含むことを特徴とする請求項1から請求項9のいずれかに記載の通信システム。
  11. 前記送信側に、前記重輻輳状態であると区別された時に前記ウィンドウを維持しつつ前記紛失したパケットを再送する手段を含むことを特徴とする請求項1から請求項9のいずれかに記載の通信システム。
  12. 前記送信側に、前記重輻輳状態であると区別された時に前記ウィンドウを重輻輳状態でない場合に比べて低い増加幅で、前記紛失したパケットを再送する手段を含むことを特徴とする請求項1から請求項9のいずれかに記載の通信システム。
  13. 前記送信側に、軽輻輳状態であると区別された時に前記ウィンドウを上昇させながら、再送を要求されたセグメントのうちの再送していないセグメントの再送を行う軽輻輳再送手段を含むことを特徴とする請求項1から請求項12のいずれかに記載の通信システム。
  14. 前記送信側に、軽輻輳状態であると区別された時に前記ウィンドウを維持しながら、再送を要求されたセグメントのうちの再送していないセグメントの再送を行う軽輻輳再送手段を含むことを特徴とする請求項1から請求項12のいずれかに記載の通信システム。
  15. 前記送信側に、軽輻輳状態であると区別された時に再送パケットのセグメントサイズ分のウィンドウを小さくして、再送を要求されたセグメントのうちの再送していないセグメントの再送を行う軽輻輳再送手段を含むことを特徴とする請求項1から請求項12のいずれかに記載の通信システム。
  16. 前記送信側に、軽輻輳状態であると区別された時に新たに送信可能なシーケンス番号の最大値を増加させる最大送信可能シーケンス番号補正手段を含むことを特徴とする請求項1から請求項15のいずれかに記載の通信システム。
  17. 前記送信側に、軽輻輳状態であると区別された時に新たに送信可能なシーケンス番号の最大値を“受信側の最大受信シーケンス番号+輻輳ウィンドウサイズ”とする最大送信可能シーケンス番号補正手段を含むことを特徴とする請求項1から請求項15のいずれかに記載の通信システム。
  18. 前記送信側に、前記ネットワークが輻輳状態にない時に前記ウィンドウを増加しつつ新規送信パケットを送信する通常転送手段と、再送を要求されたセグメントの中で再送を行っていない未再送セグメントがないと判断された時に前記通常転送手段より低い上げ幅で前記ウィンドウを増加しつつ前記新規送信パケットを送信する軽輻輳転送手段とを含むことを特徴とする請求項1から請求項17のいずれかに記載の通信システム。
  19. 前記送信側に、前記ネットワークが輻輳状態にない時に前記ウィンドウを増加しつつ新規送信パケットを送信する通常転送手段と、再送を要求されたセグメントの中で再送を行っていない未再送セグメントがないと判断された時に前記ウィンドウを所定時間維持した後に前記ウィンドウを増加しつつ前記新規送信パケットを送信する軽輻輳転送手段とを含むことを特徴とする請求項1から請求項17のいずれかに記載の通信システム。
  20. 受信側がパケットロスを認識した時に紛失したパケットを指定して送信側に再送を要求するウィンドウ制御方式を用いる通信装置であって、
    前記送信側の処理手段に、前記受信側から通知された情報と輻輳制御の状態の一つ以上の情報とによってネットワークの輻輳状態を推定する推定手段と、前記推定手段で推定された輻輳状態に応じて重輻輳状態であるか前記重輻輳状態でないかを区別する手段と、前記重輻輳状態でないと区別された時に前記パケットの送信量を決めるためのウィンドウを増加しつつ紛失したパケットを再送する手段とを有することを特徴とする通信装置。
  21. 前記送信側の処理手段において前記パケットの再々送を行い、
    前記推定手段が前記ネットワークの輻輳状態を推定するのに用いる前記輻輳制御の状態が前記パケットの再々送の回数であることを特徴とする請求項20に記載の通信装置。
  22. 前記推定手段が前記ネットワークの輻輳状態を推定するのに用いる前記輻輳制御の状態が前記パケットの到着間隔の伸び方であることを特徴とする請求項20または請求項21に記載の通信装置。
  23. 前記送信側の処理手段に前記受信側から通知された情報が、セグメントのロス箇所及び前記パケットの到着時間のいずれか一つ以上であることを特徴とする請求項20から請求項22のいずれかに記載の通信装置。
  24. 前記推定手段が前記ネットワークの輻輳状態を推定することに、新規セグメントの到着パターンの変動を用いることを特徴とする請求項23に記載の通信装置。
  25. 前記推定手段が前記ネットワークの輻輳状態を推定することに、セグメントの非連続区間の開始シーケンスと終了シーケンスとの差を用いることを特徴とする請求項23または請求項24に記載の通信装置。
  26. 前記推定手段が前記ネットワークの輻輳状態を推定することに、セグメントの非連続区間の量を用いることを特徴とする請求項23から請求項25のいずれかに記載の通信装置。
  27. 前記推定手段が前記ネットワークの輻輳状態を推定することに、前記パケットの到着遅延時間の伸び方を用いることを特徴とする請求項23から請求項26のいずれかに記載の通信装置。
  28. 前記推定手段が前記ネットワークの輻輳状態を推定することに、前記パケットの到着間隔の伸び方を用いることを特徴とする請求項23から請求項27のいずれかに記載の通信装置。
  29. 前記送信側の処理手段に、前記重輻輳状態であると区別された時に前記ウィンドウを減少しつつ前記紛失したパケットを再送する手段を含むことを特徴とする請求項20から請求項28のいずれかに記載の通信装置。
  30. 前記送信側の処理手段に、前記重輻輳状態であると区別された時に前記ウィンドウを維持しつつ前記紛失したパケットを再送する手段を含むことを特徴とする請求項20から請求項28のいずれかに記載の通信装置。
  31. 前記送信側の処理手段に、前記重輻輳状態であると区別された時に前記ウィンドウを重輻輳状態でない場合に比べて低い増加幅で、前記紛失したパケットを再送する手段を含むことを特徴とする請求項20から請求項28のいずれかに記載の通信装置。
  32. 前記送信側の処理手段に、軽輻輳状態であると区別された時に前記ウィンドウを上昇させながら、再送を要求されたセグメントのうちの再送していないセグメントの再送を行う軽輻輳再送手段を含むことを特徴とする請求項20から請求項31のいずれかに記載の通信装置。
  33. 前記送信側の処理手段に、軽輻輳状態であると区別された時に前記ウィンドウを維持しながら、再送を要求されたセグメントのうちの再送していないセグメントの再送を行う軽輻輳再送手段を含むことを特徴とする請求項20から請求項31のいずれかに記載の通信装置。
  34. 前記送信側の処理手段に、軽輻輳状態であると区別された時に再送パケットのセグメントサイズ分のウィンドウを小さくして、再送を要求されたセグメントのうちの再送していないセグメントの再送を行う軽輻輳再送手段を含むことを特徴とする請求項20から請求項31のいずれかに記載の通信装置。
  35. 前記送信側の処理手段に、軽輻輳状態であると区別された時に新たに送信可能なシーケンス番号の最大値を増加させる最大送信可能シーケンス番号補正手段を含むことを特徴とする請求項20から請求項34のいずれかに記載の通信装置。
  36. 前記送信側の処理手段に、軽輻輳状態であると区別された時に新たに送信可能なシーケンス番号の最大値を“受信側の最大受信シーケンス番号+輻輳ウィンドウサイズ”とする最大送信可能シーケンス番号補正手段を含むことを特徴とする請求項20から請求項34のいずれかに記載の通信装置。
  37. 前記送信側の処理手段に、前記ネットワークが輻輳状態にない時に前記ウィンドウを増加しつつ新規送信パケットを送信する通常転送手段と、再送を要求されたセグメントの中で再送を行っていない未再送セグメントがないと判断された時に前記通常転送手段より低い上げ幅で前記ウィンドウを増加しつつ前記新規送信パケットを送信する軽輻輳転送手段とを含むことを特徴とする請求項20から請求項36のいずれかに記載の通信装置。
  38. 前記送信側の処理手段に、前記ネットワークが輻輳状態にない時に前記ウィンドウを増加しつつ新規送信パケットを送信する通常転送手段と、再送を要求されたセグメントの中で再送を行っていない未再送セグメントがないと判断された時に前記ウィンドウを所定時間維持した後に前記ウィンドウを増加しつつ前記新規送信パケットを送信する軽輻輳転送手段とを含むことを特徴とする請求項20から請求項36のいずれかに記載の通信装置。
  39. 受信側がパケットロスを認識した時に紛失したパケットを指定して送信側に再送を要求するウィンドウ制御方式をとる通信システムに用いる輻輳制御方法であって、
    前記送信側の装置が、前記受信側から通知された情報と輻輳制御の状態の一つ以上の情報とによってネットワークの輻輳状態を推定する推定処理と、前記推定手段で推定された輻輳状態に応じて重輻輳状態であるか前記重輻輳状態でないかを区別する処理と、前記重輻輳状態でないと区別された時に前記パケットの送信量を決めるためのウィンドウを増加しつつ紛失したパケットを再送する処理とを実行することを特徴とする輻輳制御方法。
  40. 前記送信側の装置が前記パケットの再々送を行い、
    前記推定処理において前記ネットワークの輻輳状態を推定するのに用いる前記輻輳制御の状態が前記パケットの再々送の回数であることを特徴とする請求項39に記載の輻輳制御方法。
  41. 前記推定処理において前記ネットワークの輻輳状態を推定するのに用いる前記輻輳制御の状態が前記パケットの到着間隔の伸び方であることを特徴とする請求項39または請求項40に記載の輻輳制御方法。
  42. 前記送信側の装置に前記受信側から通知された情報が、セグメントのロス箇所及び前記パケットの到着時間のいずれか一つ以上であることを特徴とする請求項39から請求項41のいずれかに記載の輻輳制御方法。
  43. 前記推定処理において前記ネットワークの輻輳状態を推定することに、新規セグメントの到着パターンの変動を用いることを特徴とする請求項42に記載の輻輳制御方法。
  44. 前記推定処理において前記ネットワークの輻輳状態を推定することに、セグメントの非連続区間の開始シーケンスと終了シーケンスとの差を用いることを特徴とする請求項42または請求項43に記載の輻輳制御方法。
  45. 前記推定処理において前記ネットワークの輻輳状態を推定することに、セグメントの非連続区間の量を用いることを特徴とする請求項42から請求項44のいずれかに記載の輻輳制御方法。
  46. 前記推定処理において前記ネットワークの輻輳状態を推定することに、前記パケットの到着遅延時間の伸び方を用いることを特徴とする請求項42から請求項45のいずれかに記載の輻輳制御方法。
  47. 前記推定処理において前記ネットワークの輻輳状態を推定することに、前記パケットの到着間隔の伸び方を用いることを特徴とする請求項42から請求項46のいずれかに記載の輻輳制御方法。
  48. 前記送信側の装置が、前記重輻輳状態であると区別された時に前記ウィンドウを減少しつつ前記紛失したパケットを再送する処理を実行することを特徴とする請求項39から請求項47のいずれかに記載の輻輳制御方法。
  49. 前記送信側の装置が、前記重輻輳状態であると区別された時に前記ウィンドウを維持しつつ前記紛失したパケットを再送する処理を実行することを特徴とする請求項39から請求項47のいずれかに記載の輻輳制御方法。
  50. 前記送信側の装置が、前記重輻輳状態であると区別された時に前記ウィンドウを重輻輳状態でない場合に比べて低い増加幅で、前記紛失したパケットを再送する処理を実行することを特徴とする請求項39から請求項47のいずれかに記載の輻輳制御方法。
  51. 前記送信側の装置が、軽輻輳状態であると区別された時に前記ウィンドウを上昇させながら、再送を要求されたセグメントのうちの再送していないセグメントの再送を行う軽輻輳再送処理を実行することを特徴とする請求項39から請求項50のいずれかに記載の輻輳制御方法。
  52. 前記送信側の装置が、軽輻輳状態であると区別された時に前記ウィンドウを維持しながら、再送を要求されたセグメントのうちの再送していないセグメントの再送を行う軽輻輳再送処理を実行することを特徴とする請求項39から請求項50のいずれかに記載の輻輳制御方法。
  53. 前記送信側の装置が、軽輻輳状態であると区別された時に再送パケットのセグメントサイズ分のウィンドウを小さくして、再送を要求されたセグメントのうちの再送していないセグメントの再送を行う軽輻輳再送処理を実行することを特徴とする請求項39から請求項50のいずれかに記載の輻輳制御方法。
  54. 前記送信側の装置が、軽輻輳状態であると区別された時に新たに送信可能なシーケンス番号の最大値を増加させる最大送信可能シーケンス番号補正処理を実行することを特徴とする請求項39から請求項53のいずれかに記載の輻輳制御方法。
  55. 前記送信側の装置が、軽輻輳状態であると区別された時に新たに送信可能なシーケンス番号の最大値を“受信側の最大受信シーケンス番号+輻輳ウィンドウサイズ”とする最大送信可能シーケンス番号補正処理を実行することを特徴とする請求項39から請求項53のいずれかに記載の輻輳制御方法。
  56. 前記送信側の装置が、前記ネットワークが輻輳状態にない時に前記ウィンドウを増加しつつ新規送信パケットを送信する通常転送処理と、再送を要求されたセグメントの中で再送を行っていない未再送セグメントがないと判断された時に前記通常転送処理より低い上げ幅で前記ウィンドウを増加しつつ前記新規送信パケットを送信する軽輻輳転送処理とを実行することを特徴とする請求項39から請求項55のいずれかに記載の輻輳制御方法。
  57. 前記送信側の装置が、前記ネットワークが輻輳状態にない時に前記ウィンドウを増加しつつ新規送信パケットを送信する通常転送処理と、再送を要求されたセグメントの中で再送を行っていない未再送セグメントがないと判断された時に前記ウィンドウを所定時間維持した後に前記ウィンドウを増加しつつ前記新規送信パケットを送信する軽輻輳転送処理とを実行することを特徴とする請求項39から請求項55のいずれかに記載の輻輳制御方法。
  58. 受信側がパケットロスを認識した時に紛失したパケットを指定して送信側に再送を要求するウィンドウ制御方式をとる通信システムに用いる輻輳制御方法のプログラムであって、
    前記送信側の処理を行うコンピュータに、前記受信側から通知された情報と輻輳制御の状態の一つ以上の情報とによってネットワークの輻輳状態を推定する推定処理と、前記推定手段で推定された輻輳状態に応じて重輻輳状態であるか前記重輻輳状態でないかを区別する処理と、前記重輻輳状態でないと区別された時に前記パケットの送信量を決めるためのウィンドウを増加しつつ紛失したパケットを再送する処理とを実行させるためのプログラム。
JP2006024013A 2006-02-01 2006-02-01 通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム Expired - Fee Related JP4654926B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006024013A JP4654926B2 (ja) 2006-02-01 2006-02-01 通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム
US11/638,517 US20070177502A1 (en) 2006-02-01 2006-12-14 Communication system, communication apparatus, congestion control method used therefor, and program for the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006024013A JP4654926B2 (ja) 2006-02-01 2006-02-01 通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム

Publications (2)

Publication Number Publication Date
JP2007208571A JP2007208571A (ja) 2007-08-16
JP4654926B2 true JP4654926B2 (ja) 2011-03-23

Family

ID=38321986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006024013A Expired - Fee Related JP4654926B2 (ja) 2006-02-01 2006-02-01 通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム

Country Status (2)

Country Link
US (1) US20070177502A1 (ja)
JP (1) JP4654926B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009057375A1 (ja) * 2007-10-29 2009-05-07 Nec Corporation 通信システム、データ送信装置、データ受信装置、通信方法および通信用プログラム
JP5034998B2 (ja) * 2008-02-08 2012-09-26 日本電気株式会社 通信装置、通信システム、通信方法及び通信プログラム
JP4924503B2 (ja) 2008-03-25 2012-04-25 富士通株式会社 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム
US20100106843A1 (en) * 2008-10-28 2010-04-29 Norimasa Niiya Communication System and its Communication Control Method
JP5186355B2 (ja) 2008-12-25 2013-04-17 株式会社Kddi研究所 通信特性測定装置及び無線端末
CN101938400B (zh) * 2009-06-30 2012-05-23 华为技术有限公司 网络拥塞控制的方法和装置
JP4977222B2 (ja) * 2010-03-03 2012-07-18 株式会社東芝 通信システムとその通信制御方法および通信装置
EP2684390A4 (en) * 2011-03-10 2015-02-25 Optis Cellular Technology Llc HYBRID OVERLOAD CONTROL
JP5743334B2 (ja) * 2012-08-23 2015-07-01 日本電信電話株式会社 輻輳制御装置
JP6101046B2 (ja) * 2012-10-31 2017-03-22 日本放送協会 パケット送信装置およびそのプログラム
JP2015056828A (ja) * 2013-09-13 2015-03-23 日本電気株式会社 高度交通システムに用いられる車載装置、通信方法及びこれらを用いた高度交通システム
EP3190749B1 (en) * 2014-09-29 2019-11-06 Huawei Technologies Co., Ltd. Traffic control method and system
JP6439414B2 (ja) 2014-12-01 2018-12-19 富士通株式会社 通信装置
JP6464911B2 (ja) * 2015-05-01 2019-02-06 富士通株式会社 情報処理システム、情報処理システムの制御方法及び受信装置
US10015103B2 (en) * 2016-05-12 2018-07-03 Getgo, Inc. Interactivity driven error correction for audio communication in lossy packet-switched networks
CN105827537B (zh) * 2016-06-01 2018-12-07 四川大学 一种基于quic协议的拥塞改进方法
CN110120921B (zh) * 2019-05-13 2022-07-01 深圳市赛为智能股份有限公司 拥塞避免方法、装置、计算机设备及存储介质
US11711320B2 (en) * 2021-07-12 2023-07-25 Mellanox Technologies, Ltd. Network device safety protocol

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11122296A (ja) * 1997-10-09 1999-04-30 Chokosoku Network Computer Gijutsu Kenkyusho:Kk 帯域制御方法
JP2000134279A (ja) * 1998-10-22 2000-05-12 Chokosoku Network Computer Gijutsu Kenkyusho:Kk フロー制御方法
JP2001136209A (ja) * 1999-11-10 2001-05-18 Nippon Telegr & Teleph Corp <Ntt> 通信装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2237264A1 (en) * 1998-05-08 1999-11-08 Northern Telecom Limited Receiver based congestion control
US7058723B2 (en) * 2000-03-14 2006-06-06 Adaptec, Inc. Congestion control for internet protocol storage
US7142508B2 (en) * 2000-12-22 2006-11-28 Radiance Technologies, Inc. System and method for controlling data transfer rates on a network
WO2002096021A2 (en) * 2001-05-18 2002-11-28 Bytemobile, Inc. Quality of service management for multiple connections within a network communication system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11122296A (ja) * 1997-10-09 1999-04-30 Chokosoku Network Computer Gijutsu Kenkyusho:Kk 帯域制御方法
JP2000134279A (ja) * 1998-10-22 2000-05-12 Chokosoku Network Computer Gijutsu Kenkyusho:Kk フロー制御方法
JP2001136209A (ja) * 1999-11-10 2001-05-18 Nippon Telegr & Teleph Corp <Ntt> 通信装置

Also Published As

Publication number Publication date
JP2007208571A (ja) 2007-08-16
US20070177502A1 (en) 2007-08-02

Similar Documents

Publication Publication Date Title
JP4654926B2 (ja) 通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム
KR100533686B1 (ko) 모바일 애드 혹 네트워크에서의 데이터 전송 방법 및 이를이용한 네트워크 장치
EP1568180B1 (en) A method for enhancing transmission quality of streaming media
US8418016B2 (en) Communication system, communication device, and communication method
JP5816718B2 (ja) 通信装置、通信システム、およびデータ通信の中継方法
US7808910B2 (en) Communication terminal, congestion control method, and congestion control program
US8085669B2 (en) Session relay device and session relay method
CN101119183A (zh) 重传控制方法及传输设备
JP2004537218A (ja) Nackベースのプロトコルにおける輻輳制御の信頼性のある効率的な対応方法
US9674101B2 (en) Communication device, transmission data output control method, and program for same
US11671377B2 (en) System and method for reducing bandwidth usage of a network
Francis et al. Techniques for enhancing TCP performance in wireless networks
JP7067544B2 (ja) 通信システム、通信装置、方法およびプログラム
WO2017118239A1 (zh) 数据包的无线传输跨层优化方法及装置
JP2000022744A (ja) パケット通信システム、パケット通信装置及びパケット通信方法
JP6011813B2 (ja) 通信装置およびその通信制御方法
JP2005509370A (ja) 信頼性の低い通信環境における通信効率および性能の改良
JP4925916B2 (ja) データ送信装置、データ送信方法及びデータ送信プログラム
KR100913897B1 (ko) 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜혼잡제어방법
JP2003224547A (ja) フロー制御方法
EP3389206B1 (en) Multipath error correction
Bajeja et al. Performance evaluation of traditional TCP variants in wireless multihop networks
JP5661306B2 (ja) 輻輳制御装置及び輻輳制御方法
WO2017061075A1 (ja) 制御システム、可用帯域推定システム、装置、方法およびプログラム
Chaurasia et al. Study of TCP Variants Compression on Congestion Window and Algorithms in Dynamic Environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101025

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

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

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

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees