JP5264966B2 - 通信装置 - Google Patents
通信装置 Download PDFInfo
- Publication number
- JP5264966B2 JP5264966B2 JP2011163047A JP2011163047A JP5264966B2 JP 5264966 B2 JP5264966 B2 JP 5264966B2 JP 2011163047 A JP2011163047 A JP 2011163047A JP 2011163047 A JP2011163047 A JP 2011163047A JP 5264966 B2 JP5264966 B2 JP 5264966B2
- Authority
- JP
- Japan
- Prior art keywords
- tcp
- bandwidth
- communication
- transmission
- data
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
或る拠点に存在する端末が、別の拠点に存在する端末と通信する場合は、自拠点LANとWANを接続する回線と、WANと別拠点LANを接続する回線とを経由して通信が行われる。これらの回線は、契約帯域によって、使用可能な帯域幅が制限されている。
さらに、送信端末は、輻輳ウィンドウサイズ(受信したことを受信端末から通知されなくても送信可能なデータサイズ)と呼ばれるパラメータを管理しており、RTT(Round Trip Time)や廃棄検出の有無に応じて、輻輳ウィンドウサイズを変化させる。
RTTが大きいほど、ウィンドウサイズが増加しにくくなり、RTTの異なる通信が1つの回線を共有する際に、割り当てられる帯域に不公平が生じる場合がある。
RTTと廃棄検出以外に、過去の送信帯域と直近の再送帯域を組み合わせて帯域を制御したり、装置間で交換したコネクション数の情報を用いて帯域を制御したりする技術もある(特許文献1)。
TCP通信を中継するTCP変換部を有するカードを複数備え、
前記TCP変換部は、
自TCP変換部を介してデータ送信中のTCPコネクション数の情報を、自装置内の他のTCP変換部との間で交換する情報交換部と、
各TCP通信の最大送信帯域を定める帯域制御部と
を有し、
前記情報交換部は、他のTCP変換部と交換したTCPコネクション数の情報に基づいて、装置全体におけるデータ送信中のTCPコネクション数の合計値を計算し、
前記帯域制御部は、装置全体におけるデータ送信中のTCPコネクション数の合計値に基づいて、各TCP通信の最大送信帯域を定める通信装置が提供される。
通信装置(中継装置ともいう。以下、単に装置と記す)101、102、103は、複数の拠点内LAN110、120、130とWAN140を接続する通信回線上に設置される。各拠点内LAN110、120、130には、複数の端末111〜113、121〜123、131〜133が接続している。また、端末、装置及びネットワークの数は図示以外にも適宜の数を備えても良い。
例えば、回線141の送信アクセス帯域が100Mbpsで、TCP通信の送信コネクション数が10だった場合、1コネクションあたりの通信帯域の最大値を10Mbpsに制限しつつ、TCP通信の帯域制御を実施する。
装置1111は、ひとつ又は複数のカード1100−(1〜s)と、ひとつ又は複数のNIF(Network InterFace)1106−(1〜t)と、複数のスイッチ1104−(1〜w)と、これらの間でデータをやり取りするための接続部(1105−(1〜s)、1110−(1〜t))と、カード1100とNIF1106とスイッチ1104を管理するための管理部1120とを備える。
装置1111は、ネットワーク回線1103−(1〜s)−(1〜e)やネットワーク回線1109−(1〜t)−(1〜i)−(1〜f)からパケットを受信すると、TCP変換を行うべきパケットか否かを判断する。例えば、パケットのヘッダ情報に基づき判断できる。TCP変換を行うべきパケットと判断した場合は、TCP変換部200へと転送する。TCP変換を行わないパケットは、通常のルータやスイッチと同様に転送を行う。TCP変換部200は、転送されてきたパケットに対して、TCP通信の中継処理を行ったあと、通常のルータやスイッチと同様に転送を行う。
TCP変換部200は、TCP通信のための制御を行うWAN側及びLAN側のTCP処理部203/209と、WAN側のTCP209の管理するN個の送信バッファ207およびN個の受信バッファ208と、LAN側のTCP203の管理するN個の送信バッファ205およびN個の受信バッファ204と、送受信バッファ間でデータの乗せ換えを行うプロキシ206と、N個のエントリを備えた状態テーブル(状態記憶領域)212と、N個のエントリを備えた帯域テーブル213と、装置1111内のTCP変換部200の間でデータ送信中のコネクション数やデータ受信中のコネクション数の情報を交換するための情報交換部230と、パケットをWAN側のTCP処理部209またはLAN側のTCP処理部203または情報交換部230へと振り分ける振分部221と、WAN側のTCP処理部209またはLAN側のTCP処理部203または情報交換部230から送信されたパケットを集約したあと通常のルータやスイッチと同様に転送を行う集約部220とを有する。なお、上述のN個はそれぞれ異なる数でもよい。
振分部221は、転送されてきたパケットがLAN側から来たパケットかWAN側から来たパケットかを判定して、LAN側から来たパケットをLAN側のTCP処理部203へ転送し、WAN側から来たパケットをWAN側のTCP処理部209へと転送する。LAN側からきたかWAN側からきたかは、例えばパケット内の適宜の情報を用いて判断してもよい。
LAN側のTCP処理部203は、送信履歴更新部725と、パケット再送部724と、受信履歴更新部726と、振分部728と、集約部732とを備える。受信履歴更新部726は、受信したパケットデータを、LAN側受信バッファ204に蓄積する。更に、受信履歴更新部726は、蓄積したデータサイズに応じて、状態テーブル212のバッファ管理ポインタ(508〜510、515〜517、521〜526)の情報を更新する。更に、受信履歴更新部726は、受信したデータの位置を記載したACKパケットを集約部732経由で返信する。送信履歴更新部725は、LAN側送信バッファ205から読み出した送信データをパケットにして送信すると共に、読み出した送信データサイズに応じて、状態テーブル212のバッファ管理ポインタ(508〜510、515〜517、521〜526)の情報を更新する。
受信バッファは、受信したデータの先頭を示すポインタright_recv303と、整列済みデータと未整列データの境界を示すポインタleft_recv302と、プロキシ206がすでに読出し済のデータとまだ読出していないデータの境界を示すleft_rbuf301と、を管理する。
各TCP変換部200の状態テーブル212は、例えばTCPコネクション毎の状態を記録するためのn個のエントリ520と、装置1111の送信アクセス回線帯域を記録するmax_snd_bandwidth539と、装置1111の受信アクセス回線を記録するmax_rcv_bandwidth540と、装置1111全体のデータ送信中のTCPコネクション数を記録するall_snd_num536と、装置1111全体のデータ受信中のTCPコネクション数を記録するall_rcv_num538と、各TCP変換部200がデータ送信中のTCPコネクション数を記録するsnd_num535と、各TCP変換部200がデータ受信中のTCPコネクション数を記録するrcv_num537と、各TCPコネクションの最小帯域を記録するeach_min_bandwidth543とを有する。
snd_num535や、rcv_num537は、情報交換部230が更新する。情報交換部230が、例えば、状態テーブル212のエントリ毎にバッファ蓄積量(right_sbufとleft_sendの差と、right_recvとleft_rbufの差の合計)をチェックし、送信バッファにデータが蓄積されているエントリはデータ送信中のコネクション、受信バッファにデータが蓄積されているエントリはデータ受信中のコネクション、と判断することで計算する。
プロキシ206は、LAN側の受信バッファrbuf204からデータを読出すデータ読出し部601と、読み出したデータに対して圧縮・解凍・暗号化・復号・削除・複製・追記などの加工を行うデータ加工部602と、加工済みデータをWAN側の送信バッファsbuf207へ書き込むデータ書き込み部603と、WAN側の受信バッファrbuf208からデータを読み出すデータ読出し部606と、読み出したデータに対して圧縮・解凍・暗号化・復号・削除・複製・追記などの加工を行うデータ加工部605と、加工済みデータをLAN側の送信バッファsbuf205へ書き込むデータ書き込み部604とを有する。データ加工部602とデータ加工部605との間で、データのやり取りをしてもよい。データの加工は上述の例以外でもよい。
図9の各ステップは、データ読出し部601が実行する。
データ読出し部601は、処理を開始すると(ステップ900)、はじめにlan_left_recv509がlan_left_rbuf508よりも大きいか比較を行い、LAN側の受信バッファ204に整列済みデータが存在するか否かを判定する(ステップ901)。ステップ901において大きくないと判定した場合、すなわち整列済みデータが存在しない場合は、ステップ901を繰り返す。ステップ901において大きいと判定した場合、すなわち整列済みデータが存在する場合は、次に、lan_left_recv509からlan_left_rbuf508の間にある整列済みデータの先頭データから、読み出すべきデータサイズと、データ加工後のデータサイズを推定する(ステップ906)。先頭データとしては、TLS(Transport Layer Security)/SSL(Secure Socket Layer)ヘッダ、SMB(Server Message Block)ヘッダ、等などを使用してもよい。次に、wan_right_sbuf526とwan_left_send524の差分(未送信データとACK確認待ちデータの合計値)と、WAN側の送信バッファサイズwan_sbuf_sizeとの差分(バッファ空きサイズ)が、ステップ906で推定した加工後のデータサイズよりも大きいか否か比較を行う(ステップ902)。ステップ902にて大きいと判定した場合、ステップ906にて推定した読み出すべきデータサイズのデータを、LAN側の受信バッファ204から読み出す(ステップ903)。ステップ902にて否と判定した場合は、データ加工しない場合のみ、wan_right_sbuf526とwan_left_send524の差分(未送信データとACK確認待ちデータの合計値)と、WAN側の送信バッファサイズwan_sbuf_sizeとの差分(バッファ空きサイズ)に相当するサイズのデータを、LAN側の受信バッファ204から読み出す(ステップ904)。読み出されたデータは、データ加工部602を介してデータ書き込み部603に出力される。データ読み出し後、lan_left_rbuf508に読み出したデータサイズを加算する(ステップ905)。ステップ905の後、ステップ901へ戻る。なお、wan_right_sbuf526は、データ書き込み部603がデータを書き込んだ際に、書き込んだデータサイズ分だけ増加する。
TCP通信を実現するTCP処理部209は、受信処理を行うRX部(受信部)702と、送信処理を行うTX部(送信部)701を有する。
RX部702は、受信パケットをTCP制御パケットとデータ付パケットとACKパケットに分離するパケット振分部708と、受信したTCP制御パケットに基づいて状態テーブル212内のTCP状態lan_state507、wan_state514を変更するTCP制御部707と、受信したデータパケットの送信シーケンス番号SEQ423と受信シーケンス番号ACK424とに基づいて、状態テーブル212内のバッファ管理ポインタを変更してACKパケットを返信する受信履歴更新部706を有する。
TCP通信を実現するTCP処理部203は、受信処理を行うRX部(受信部)722と、送信処理を行うTX部(送信部)721を有する。
RX部722は、受信パケットをTCP制御パケットとデータ付パケットとACKパケットに分離するパケット振分部728と、受信したTCP制御パケットに基づいて状態テーブル212内のTCP状態lan_state507、wan_state514を変更するTCP制御部727と、受信したデータパケットの送信シーケンス番号SEQ423と受信シーケンス番号ACK424とに基づいて、状態テーブル212内のバッファ管理ポインタを変更してACKパケットを返信する受信履歴更新部726とを有する。
帯域テーブル213は、コネクション毎に、基準時刻と、基準時刻後の送信ビット積算値・再送ビット積算値・制御帯域と、基準時刻前の送信帯域・再送帯域・制御帯域と、旧基準時刻前の送信帯域・制御帯域と、を記録する。
基準時刻と旧基準時刻との差は、インターバル時間である。旧基準時刻前のインターバル時間の制御帯域・送信帯域の平均値は、old_old_token、old_old_sndと表す(1203)。旧基準時刻から基準時刻までの間の制御帯域・送信帯域・再送帯域の平均値は、old_token、old_snd、old_rtsと表す(1202)。基準時刻から現在時刻までの制御帯域・送信帯域・再送帯域の平均値は、token、snd、rtsと表す(1201)。
送信帯域制御部715は、帯域テーブル213に記載された値を用いて、上述のようにrts_ratio530とold_rts_ratio531を計算し、制御帯域(token)を決定し、トークン更新部717へ伝える。更に、状態テーブル212を更新する。
LAN側から到着したデータ付きパケットは、LAN側TCP処理部203に入り、受信履歴更新部726に到着する。受信履歴更新部726は、ACKパケットを集約部732経由でLAN側に返信し、パケットに記載されたデータをLAN側受信バッファrbuf204へと蓄積する。更に、蓄積データサイズに基づいて状態テーブル212のポインタを更新する。データ読出し部601は、LAN側受信バッファrbuf204に蓄積された整列済みデータを読出し、データ加工部602へ転送する。更に、読み出したデータサイズに基づいて状態テーブル212のポインタを更新する。データ加工部602は、データを加工して、データ書き込み部603へ転送する。更に、加工中のデータサイズに基づいて状態テーブル212の加工中データサイズを更新する。データ書き込み部603は、加工済みデータをWAN側送信バッファsbuf207へと書き込む。更に、書き込んだデータサイズに基づいて状態テーブル212のポインタを更新する。WAN側送信バッファsbuf207に書き込まれたデータは、送信履歴更新部705から読み出されて、WAN側へデータ付きパケットとして送信される。
制御帯域の更新処理とは別に、情報交換部230により、上述のように自装置の他の情報交換部との情報通知及び受信、対向装置の情報交換部との情報通知及び受信がされ、状態テーブル212の各情報が更新される。
制御帯域(token)の更新処理がスタートすると(ステップ1306)、送信帯域制御部715が、タイマ713の出力する現在時刻と、帯域テーブル213記載の基準時刻との差が、インターバル格納部714の出力するインターバル時間以上であるか否かを判定する(ステップ1307)。インターバル時間として、計測したRTTの平均値や初期値等を記録したwan_rtt519等を使用してもよい。ステップ1307において真と判断された場合は、基準時刻後の現在の制御帯域tokenの値をtmpに退避させておく(ステップ1308)。更に、例えば、帯域テーブル213に記憶された再送ビット積算値(基準時刻後)/(現在時刻−基準時刻)/送信帯域(基準時刻前)で求められる再送率(基準時刻後)rts_ratioが、再送帯域(基準時刻前)/送信帯域(旧基準時刻前)で求められる旧再送率(基準時刻前)old_rts_ratioのK倍(K:予め定められた1以上の係数)よりも大きいか否かを判定する(ステップ1309)。上述のステップ1302に相当する。Kの値は、固定としてもよいし、tokenの値に応じて変化してもよい。ステップ1309において、大きいと判定した場合は、再送率の増加率が大きいと判断して、制御帯域(基準時刻後)tokenの値を、制御帯域(基準時刻前)old_tokenの値よりも小さくなるように、例えば再送帯域rtsを用いて減少させる。例えば、制御帯域(基準時刻後)token=制御帯域(基準時刻前)old_token−再送帯域(基準時刻後)rtsなどとする(ステップ1311)。ステップ1309で偽と判定された場合は、制御帯域(基準時刻後)tokenを増加させる(ステップ1310)。制御帯域(基準時刻後)tokenの増加方法は、線形に増加させてもよいし、指数的に増加させてもよいし、線形増加と指数増加を組み合わせても良いし、最初線形増加させてその後で指数増加してもよいし、増加率を制御帯域(基準時刻後)tokenに応じて変化させてもよい。
処理がスタートすると(ステップ2201)、状態テーブル212から、装置1111の送信アクセス回線帯域max_snd_bandwidth539と、装置1111のデータ送信中のTCPコネクション数all_snd_num536と、対向装置の受信アクセス回線帯域each_rcv_bandwidth542と、対向装置のデータ受信中のTCPコネクション数each_rcv_num541との情報を読み出す(ステップ2208)。装置1111の送信アクセス回線帯域max_snd_bandwidth539を、装置1111のデータ送信中のTCPコネクション数all_snd_num536で除算した1コネクションンあたり送信アクセス回線帯域が、対向装置の受信アクセス回線帯域each_rcv_bandwidth542を、対向装置のデータ受信中のTCPコネクション数each_rcv_num541で除算した1コネクションあたり受信アクセス回線帯域よりも大きいか否かを判定する(ステップ2202)。大きい場合は、制御帯域(基準時刻後)tokenが、対向装置の1コネクションあたり受信アクセス回線帯域よりも大きいか否かを判定する(ステップ2203)。大きい場合は、制御帯域(基準時刻後)tokenを、対向装置の1コネクションあたり受信アクセス回線帯域に、定数αを加算した値、または定数αを乗算した値に変更する(ステップ2205)。αの値は1でもよいし、他の値でもよい。ステップ2203において否と判定した場合は何もせずに終了する(ステップ2207)。
図14には、TCP変換部200を1つ含む装置1111−Aと、TCP変換部200を1つ含む装置1111−Bと、の間で自装置の統計情報に基づいて帯域制御を行う例の概念図を示す。
装置1111−Aの送信アクセス回線60Mbpsとし、3台の送信端末(1401〜1403)から3台の受信端末(1404〜1406)に向けて、装置1111−Aと装置1111−Bを経由して、3つのTCP通信が行われている。
装置1111−A内のTCP変換部200−A内の状態テーブル212−Aでは、snd_num=3、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。本情報を用いて、TCP変換部200−A内の送信帯域制御部715−Aは、公平分配可能なTCP通信の1コネクションあたりの帯域を20Mbpsと計算する。送信帯域制御部715−Aは、再送率に基づいて制御帯域tokenを決定した後(ステップ1302〜1304相当)、制御帯域tokenが20Mbpsを超過している場合は、制御帯域tokenが20Mbps以下となるよう制御帯域を制限する(ステップ1305相当)。
装置1111−Aの送信アクセス回線60Mbpsとし、3台の送信端末(1501〜1503)から3台の受信端末(1504〜1506)に向けて、装置1111−Aと装置1111−Bを経由して、3つのTCP通信が行われている。2つのTCP通信は、1つ目のTCP変換部200−A−1を経由し、1つのTCP通信は、2つ目のTCP変換部200−A−2を経由する。
装置1111−A内のTCP変換部200−A−2内の状態テーブル212−A−1では、snd_num=1、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。本情報を用いて、TCP変換部200−A−2内の送信帯域制御部715−A−2は、公平分配可能なTCP通信の1コネクションあたりの帯域を20Mbpsと計算する。送信帯域制御部715−A−2は、再送率に基づいて制御帯域tokenを決定した後(ステップ1302〜1304相当)、制御帯域tokenが20Mbpsを超過している場合は、制御帯域tokenが20Mbps以下となるよう制御帯域を制限する(ステップ1305相当)。
装置1111−Bの受信アクセス回線30Mbpsとし、3台の送信端末(1601〜1603)から3台の受信端末(1604〜1606)に向けて、装置1111−Aと装置1111−Bを経由して、3つのTCP通信が行われている。
装置1111−B内のTCP変換部200−B内の状態テーブル212−Bでは、rcv_num=3、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末(1601〜1603)側の装置1111−Aに通知され、TCP変換部200−Aの状態テーブル212に記録される。通知された情報に基づいて、TCP変換部200−A内の送信帯域制御部715−Aは、制御帯域の最大値が10Mbps以下となるように制御帯域を調整する。
装置1111−Bの受信アクセス回線30Mbpsとし、3台の送信端末(1701〜1703)から3台の受信端末(1704〜1706)に向けて、装置1111−Aと装置1111−Bを経由して、3つのTCP通信が行われている。2つのTCP通信は、1つ目のTCP変換部200−B−1を経由し、1つのTCP通信は、2つ目のTCP変換部200−B−2を経由する。
装置1111−B内のTCP変換部200−B−2内の状態テーブル212−B−2では、rcv_num=1、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末(1701〜1703)側の装置1111−Aに通知され、状態テーブル212−Aに記録される。通知された情報に基づいて、TCP変換部200−A内の送信帯域制御部715−Aは、公平分配可能なTCP通信の1コネクションあたりの帯域を10Mbpsと計算する。送信帯域制御部715−Aは、再送率に基づいて制御帯域tokenを決定した後(ステップ1302〜1304相当)、制御帯域tokenが10Mbpsを超過している場合は、制御帯域tokenが10Mbps以下となるよう制御帯域を制限する(ステップ1305相当)。
装置1111−Aの送信アクセス回線60Mbps、装置1111−Bの受信アクセス回線30Mbpsとし、3台の送信端末(1801〜1803)から3台の受信端末(1804〜1806)に向けて、装置1111−Aと装置1111−Bを経由して、3つのTCP通信が行われている。
装置1111−Aの送信アクセス回線60Mbps、装置1111−Bの受信アクセス回線30Mbpsとし、3台の送信端末(1901〜1903)から3台の受信端末(1904〜1906)に向けて、装置1111−Aと装置1111−Bを経由して、3つのTCP通信が行われている。2つのTCP通信は、1つ目のTCP変換部200−B−1を経由し、1つのTCP通信は、2つ目のTCP変換部200−B−2を経由する。
装置1111−B内のTCP変換部200−B−2内の状態テーブル212−B−2では、rcv_num=1、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末(1901〜1903)側の装置1111−Aに通知され、状態テーブル212−Aに記録される。
装置1111−Aの送信アクセス回線60Mbps、装置1111−Bの受信アクセス回線30Mbpsとし、3台の送信端末(2001〜2003)から3台の受信端末(2004〜2006)に向けて、装置1111−Aと装置1111−Bを経由して、3つのTCP通信が行われている。2つのTCP通信は、1つ目のTCP変換部200−B−1を経由し、1つのTCP通信は、2つ目のTCP変換部200−B−2を経由する。
装置1111−B内のTCP変換部200−B内の状態テーブル212−Bでは、rcv_num=3、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末(2001〜2003)側の装置1111−Aに通知され、状態テーブル212−A−1、212−A−2に記録される。
装置1111−A内のTCP変換部200−A−2内の状態テーブル212−A−2では、snd_num=1、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。装置1111−A内のTCP変換部200−A−2内の送信帯域制御部715−A−2は、対向装置からの情報と、自装置内の記録情報を用いて、公平分配可能なTCP通信の1コネクションあたりの帯域を10Mbpsと計算する。送信帯域制御部715−A−2は、再送率に基づいて制御帯域tokenを決定した後(ステップ1302〜1304相当)、制御帯域tokenが10Mbpsを超過している場合は、制御帯域tokenが10Mbps以下となるよう制御帯域を制限する(ステップ1305相当)。
装置1111−Aの送信アクセス回線60Mbps、装置1111−Bの受信アクセス回線30Mbpsとし、3台の送信端末(2101〜2103)から3台の受信端末(2104〜2106)に向けて、装置1111−Aと装置1111−Bを経由して、3つのTCP通信が行われている。2つのTCP通信は、1つ目のTCP変換部200−A−1とTCP変換部200−B−1を経由し、1つのTCP通信は、2つ目のTCP変換部200−A−2とTCP変換部200−B−2を経由する。
装置1111−B内のTCP変換部200−B−2内の状態テーブル212−B−2では、rcv_num=1、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末(2101〜2103)側の装置1111−A(例えばTCP通信において対向するTCP変換部200−A−2)に通知され、状態テーブル212−A−2に記録される。
装置1111−A内のTCP変換部200−A−2内の状態テーブル212−A−2では、snd_num=1、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。装置1111−A内のTCP変換部200−A−2内の送信帯域制御部715−A−2は、対向装置からの情報と、自装置内の記録情報を用いて、公平分配可能なTCP通信の1コネクションあたりの帯域を10Mbpsと計算する。送信帯域制御部715−A−2は、再送率に基づいて制御帯域tokenを決定した後(ステップ1302〜1304相当)、制御帯域tokenが10Mbpsを超過している場合は、制御帯域tokenが10Mbps以下となるよう制御帯域を制限する(ステップ1305相当)。
装置2301と装置2302は、実施例1と同じ通信装置を用いる。装置2301は、端末(2311〜2313)が接続されたLAN2310と、WAN2340に接続している。装置2302は、端末(2321〜2323)が接続されたLAN2320と、WAN2330に接続している。通信装置(以下、単に装置と記す)2303は、WAN2340とWAN2330に接続している。
装置2303は、図11に示すブロック図と同様な構成をとる。図11中のLANはWANに変わる。
図2の構成と比べると、装置2303では、LAN TCPブロック203が、WAN TCPブロック209−1に置き換わっている。さらに、第2の帯域テーブル213−1を持ち、帯域テーブル213を2つ備える。WAN TCP処理部209−1の構成は、WAN TCP処理部209と同様である。上述の制御帯域の更新処理が、WAN2340側とWAN2330側の双方で行われる。
状態テーブル2401は、LAN管理用の情報がなくなり、WAN管理用の情報を2セット備える。
状態テーブル2401は、TCPコネクション毎の状態を記録するためのn個のエントリ520と、装置2303のそれぞれのWANに対する送信アクセス回線帯域を記録するmax_snd_bandwidth(539、539−1)と、装置2303のそれぞれのWANに対する受信アクセス回線を記録するmax_rcv_bandwidth(540、540−1)と、装置2303がそれぞれのWANに対してデータ送信中のTCPコネクション数を記録するall_snd_num(536、536−1)と、装置2303がそれぞれのWANからデータ受信中のTCPコネクション数を記録するall_rcv_num(538、538−1)と、各TCP変換部200がそれぞれのWANに対してデータ送信中のTCPコネクション数を記録するsnd_num(535、535−1)と、各TCP変換部200がそれぞれのWANからデータ受信中のTCPコネクション数を記録するrcv_num(537、537−1)と、それぞれのWANに対する各TCPコネクションの最小帯域を記録するeach_min_bandwidth(543、543−1)とを有する。
max_snd_bandwidth(539、539−1)や、max_rcv_bandwidth(540、540−1)などは、端末1121経由などで手動で更新される。
図26には、本実施例の状態テーブル212−1のフォーマットを示す。
状態テーブル212−1は、実施例1の構成に対して、各エントリに重みweight2601の情報が追加されている。
重みweight2601は、例えば、各コネクションのバッファ蓄積量(right_sbufとleft_sendの差と、right_recvとleft_rbufの差の合計)に基づいて決めても良いし、ポート番号(TCPポート番号)に基づいて決めても良い。ポート番号に基づいて決める場合は、装置1111に接続された端末1121から、ポート番号毎に重み付けを手動で情報交換部230に指定しておいてもよい。情報交換部230は、エントリのポート番号LportやWportを見て、指定された重み付けをweight2601に記録する。
102 装置
103 装置
110 ネットワーク
121 端末
200 TCP変換部
203、209 TCP処理部
204、208 受信バッファ
205、207 送信バッファ
206 プロキシ
212 状態テーブル
213 帯域テーブル
230 情報交換部
301 ポインタ
400 ヘッダデータ
520 エントリ
601 データ読出し部
715 送信帯域制御部
1100 カード
1106 NIF
Claims (14)
- TCP通信を中継するTCP変換部を有するカードを複数備え、
前記TCP変換部は、
自TCP変換部を介してデータ送信中のTCPコネクション数の情報を、自装置内の他のTCP変換部との間で交換する情報交換部と、
各TCP通信の最大送信帯域を定める帯域制御部と
を有し、
前記情報交換部は、他のTCP変換部と交換したTCPコネクション数の情報に基づいて、装置全体におけるデータ送信中のTCPコネクション数の合計値を計算し、
前記帯域制御部は、装置全体におけるデータ送信中のTCPコネクション数の合計値に基づいて、各TCP通信の最大送信帯域を定める通信装置。 - 請求項1に記載の通信装置において、
前記TCP変換部は、接続している回線の最大送信帯域を記録する状態記憶領域をさらに有し、
前記帯域制御部は、記録された回線の最大送信帯域と、装置全体におけるデータ送信中のTCPコネクション数の合計値とに基づいて、各TCP通信の最大送信帯域を定める制限することを特徴とする通信装置。 - 請求項1に記載の通信装置において、
前記TCP変換部は、TCP通信の対向装置から、該対向装置におけるデータ受信中のTCPコネクション数の合計値を受信し、
前記帯域制御部は、装置全体のデータ送信中のTCPコネクション数の合計値と、前記対向装置から受信した対向装置におけるデータ受信中のTCPコネクション数の合計値とに基づいて、各TCP通信の最大送信帯域を制限することを特徴とする通信装置。 - 請求項3に記載の通信装置において、
前記情報交換部は、
データ受信中のTCPコネクション数の情報を他のTCP変換部との間で交換し、
交換したTCPコネクション数の情報に基づいて、装置全体のデータ受信中のTCPコネクション数の合計値を計算し、
計算した装置全体のデータ受信中のTCPコネクション数の合計値を、前記対向装置へ通知することを特徴とする通信装置。 - 請求項3に記載の通信装置において、
前記TCP変換部は、装置の接続している回線の最大送信帯域を記録する状態記憶領域をさらに有し、
前記TCP変換部は、前記対向装置における回線の最大受信帯域を、該対向装置からさらに受信し、
前記帯域制御部は、自装置に記録した回線の最大送信帯域と、自装置全体のデータ送信中のTCPコネクション数の合計値と、前記対向装置から受信した該対向装置における回線の最大受信帯域と、前記対向装置から受信した該対向装置におけるデータ受信中のTCPコネクション数の合計値とに基づいて、各TCP通信の最大送信帯域を制限することを特徴とする通信装置。 - 請求項5に記載の通信装置において、
前記帯域制御部は、自装置に記録した回線の最大送信帯域を、自装置全体のデータ送信中のTCPコネクション数の合計値で除算した値と、前記対向装置から受信した該対向装置における回線の最大受信帯域を、該対向装置から受信した該対向装置におけるデータ受信中のTCPコネクション数の合計値で除算した値とに基づいて、各TCP通信の最大帯域を制限することを特徴とする通信装置。 - 請求項5に記載の通信装置において、
前記状態記憶領域は、接続している回線の最大受信帯域をさらに記録し、
前記情報交換部は、記録した回線の最大受信帯域と、自装置全体のデータ受信中のTCPコネクション数の合計値を、前記対向装置へ通知することを特徴とする通信装置。 - 請求項1に記載の通信装置において、
前記帯域制御部は、各TCP通信におけるデータの再送率をさらに用いて、各TCP通信の最大送信帯域を制限することを特徴とする通信装置。 - 請求項8に記載の通信装置において、
前記帯域制御部は、
各TCP通信における基準時刻後の再送帯域と基準時刻以前の送信帯域とを計測し、
基準時刻後の再送帯域と基準時刻以前の送信帯域で除算することでデータの再送率を計算することを特徴とする通信装置。 - 請求項1に記載の通信装置において、
前記帯域制御部は、各TCP通信における再送率の変化率を計算し、
再送率の変化率に応じて各TCP通信の最大送信帯域を変更することを特徴とする通信装置。 - 請求項10に記載の通信装置において、
前記帯域制御部は、再送率の変化率が予め定められた閾値を超過したときに各TCP通信の最大送信帯域を再送率に応じて減少させることを特徴とする通信装置。 - 請求項10に記載の通信装置において、
前記帯域制御部は、再送率の変化率が予め定められた閾値を超過しないときに各TCP通信の最大送信帯域を増加させることを特徴とする通信装置。 - 請求項1に記載の通信装置において、
各TCP通信の最大送信帯域に従いデータを送信する送信制御部
さらに備える通信装置。 - 請求項1に記載の通信装置において、
各TCP通信に対して重みを設定し、
各TCPコネクションについて、対応する各重みを加算してTCPコネクション数の合計値を求め、該重みに応じて最大送信帯域を定める通信装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011163047A JP5264966B2 (ja) | 2011-07-26 | 2011-07-26 | 通信装置 |
CN201280002708XA CN103098422A (zh) | 2011-07-26 | 2012-03-01 | 通信装置 |
EP12818266.4A EP2738983A4 (en) | 2011-07-26 | 2012-03-01 | COMMUNICATION DEVICE |
US13/819,839 US8681617B2 (en) | 2011-07-26 | 2012-03-01 | Communication device |
PCT/JP2012/055259 WO2013014962A1 (ja) | 2011-07-26 | 2012-03-01 | 通信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011163047A JP5264966B2 (ja) | 2011-07-26 | 2011-07-26 | 通信装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013027010A JP2013027010A (ja) | 2013-02-04 |
JP5264966B2 true JP5264966B2 (ja) | 2013-08-14 |
Family
ID=47600822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011163047A Expired - Fee Related JP5264966B2 (ja) | 2011-07-26 | 2011-07-26 | 通信装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8681617B2 (ja) |
EP (1) | EP2738983A4 (ja) |
JP (1) | JP5264966B2 (ja) |
CN (1) | CN103098422A (ja) |
WO (1) | WO2013014962A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014165551A (ja) * | 2013-02-21 | 2014-09-08 | Fujitsu Ltd | 通信装置、通信方法、プログラム、及び、通信システム |
WO2014141437A1 (ja) * | 2013-03-14 | 2014-09-18 | 株式会社日立製作所 | 通信ノード装置、帯域制御方法、及び計算機読み取り可能な記憶媒体 |
US11018935B1 (en) * | 2013-05-10 | 2021-05-25 | Marvell Asia Pte Ltd | Network traffic quality-based dynamic path change |
JP2016201579A (ja) * | 2013-08-13 | 2016-12-01 | 株式会社日立製作所 | 通信装置及び送信帯域制御方法 |
US9621468B1 (en) * | 2014-12-05 | 2017-04-11 | Amazon Technologies, Inc. | Packet transmission scheduler |
JP6468560B2 (ja) * | 2015-10-22 | 2019-02-13 | 日本電信電話株式会社 | 無線通信システム及びその制御方法、並びに、通信制御プログラム |
JP6927155B2 (ja) * | 2018-05-30 | 2021-08-25 | 日本電信電話株式会社 | 異常検出装置、異常検出方法および異常検出プログラム |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH104409A (ja) * | 1996-06-14 | 1998-01-06 | Hitachi Ltd | 複数のユニットからなるシステムおよび情報の転送制御方法 |
AU2002352637A1 (en) * | 2001-11-13 | 2003-05-26 | Ems Technologies, Inc. | Performance enhancing proxy techniques for internet protocol traffic |
US7747255B2 (en) * | 2003-03-26 | 2010-06-29 | Sony Corporation | System and method for dynamic bandwidth estimation of network links |
US7324523B2 (en) * | 2003-03-26 | 2008-01-29 | Sony Corporation | System and method for dynamically allocating bandwidth to applications in a network based on utility functions |
US7656799B2 (en) * | 2003-07-29 | 2010-02-02 | Citrix Systems, Inc. | Flow control system architecture |
US8238241B2 (en) * | 2003-07-29 | 2012-08-07 | Citrix Systems, Inc. | Automatic detection and window virtualization for flow control |
US7522620B2 (en) * | 2003-08-12 | 2009-04-21 | Intel Corporation | Method and apparatus for scheduling packets |
US20050220115A1 (en) * | 2004-04-06 | 2005-10-06 | David Romano | Method and apparatus for scheduling packets |
CN101253737B (zh) * | 2005-08-31 | 2013-02-20 | 日本电气株式会社 | 通信系统、通信终端、中继节点及用于这些设备的通信方法以及其程序 |
JP2007097144A (ja) * | 2005-08-31 | 2007-04-12 | Nec Corp | 通信システム、通信端末、中継ノード及びそれに用いる通信方法並びにそのプログラム |
US7970733B2 (en) * | 2006-09-13 | 2011-06-28 | Broadcom Corporation | Method for communicating data in xDSL using data retransmission |
CN103152279B (zh) * | 2007-03-12 | 2016-08-03 | 思杰系统有限公司 | 用于在tcp拥塞控制中提供服务质量优先的系统和方法 |
EP2058989A1 (en) * | 2007-11-09 | 2009-05-13 | Thomson Licensing, Inc. | Wireless rate control method |
US20100054123A1 (en) * | 2008-08-30 | 2010-03-04 | Liu Yong | Method and device for hign utilization and efficient flow control over networks with long transmission latency |
CN101494652B (zh) * | 2009-02-27 | 2012-01-11 | 中国电子科技集团公司第五十四研究所 | 一种卫星通信系统中增强tcp协议性能的方法 |
CN102577267B (zh) * | 2009-09-16 | 2014-12-24 | 株式会社日立制作所 | 使终端之间的通信高速化的通信装置及通信系统 |
WO2012066824A1 (ja) | 2010-11-16 | 2012-05-24 | 株式会社日立製作所 | 通信装置および通信システム |
-
2011
- 2011-07-26 JP JP2011163047A patent/JP5264966B2/ja not_active Expired - Fee Related
-
2012
- 2012-03-01 WO PCT/JP2012/055259 patent/WO2013014962A1/ja active Application Filing
- 2012-03-01 EP EP12818266.4A patent/EP2738983A4/en not_active Withdrawn
- 2012-03-01 CN CN201280002708XA patent/CN103098422A/zh active Pending
- 2012-03-01 US US13/819,839 patent/US8681617B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP2738983A4 (en) | 2015-03-11 |
EP2738983A1 (en) | 2014-06-04 |
US8681617B2 (en) | 2014-03-25 |
WO2013014962A1 (ja) | 2013-01-31 |
JP2013027010A (ja) | 2013-02-04 |
CN103098422A (zh) | 2013-05-08 |
US20130163422A1 (en) | 2013-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5651805B2 (ja) | 通信装置 | |
JP5264966B2 (ja) | 通信装置 | |
JP5816718B2 (ja) | 通信装置、通信システム、およびデータ通信の中継方法 | |
JP5258938B2 (ja) | 通信装置 | |
US8843654B2 (en) | Data packet transfer over wide area network in fast and reliable manner | |
JP5521060B2 (ja) | 端末間の通信を高速化する通信装置および通信システム | |
US9467390B2 (en) | Method and device for data transmission | |
US9071452B2 (en) | High-speed communication system and high-speed communication method | |
JP5832335B2 (ja) | 通信装置および通信システム | |
WO2015022809A1 (ja) | 通信装置及び送信帯域制御方法 | |
JP2014135575A (ja) | 通信装置、及び、送信帯域の制御方法 | |
JP2009200581A (ja) | ノード装置及び帯域制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130307 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20130307 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130329 |
|
TRDD | Decision of grant or rejection written | ||
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20130417 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130423 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130430 |
|
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 |