JP6236933B2 - 中継装置 - Google Patents

中継装置 Download PDF

Info

Publication number
JP6236933B2
JP6236933B2 JP2013138917A JP2013138917A JP6236933B2 JP 6236933 B2 JP6236933 B2 JP 6236933B2 JP 2013138917 A JP2013138917 A JP 2013138917A JP 2013138917 A JP2013138917 A JP 2013138917A JP 6236933 B2 JP6236933 B2 JP 6236933B2
Authority
JP
Japan
Prior art keywords
relay
tcp
packet
relay device
tcp 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.)
Expired - Fee Related
Application number
JP2013138917A
Other languages
English (en)
Other versions
JP2015012570A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013138917A priority Critical patent/JP6236933B2/ja
Priority to US14/309,718 priority patent/US9450867B2/en
Publication of JP2015012570A publication Critical patent/JP2015012570A/ja
Application granted granted Critical
Publication of JP6236933B2 publication Critical patent/JP6236933B2/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/72Routing based on the source address
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/169Special adaptations of TCP, UDP or IP for interworking of IP based networks with other networks 

Description

本発明の実施形態は、中継装置に関する。
Transmission Control Protocol (TCP)通信を行う通信機器として、様々な通信機器がある。例えば、Wide Area Network(WAN)高速化装置、或いはWAN最適化装置と呼
ばれる装置がある。
クラウド利用の増加に伴って、クラウドデータセンタで稼働するサーバにクライアントがアクセスする利用形態が増えている。クラウドデータセンタは、地理的に遠方にあったり、海外にあったりする。このため、往復遅延時間(Round Trip Time(RTT))が大きく
なる傾向にある。RTTが大きい回線を用いたTCP通信は、パケット廃棄によって性能が低下し、通信スループットが低下するという問題がある。
近年、WAN高速化装置と呼ばれる装置の使用によって、エンドデバイスのTCPをより回線利用率の高いTCPに置き換えて通信することによって、TCPの平均スループット低下を改善することが行われている。
WAN高速化装置はサーバと端末間のWAN回線を挟んで配置される。WAN高速化装置は、送信側の端末又はサーバのTCPセッションを一旦終端し、高速化したTCP(以
下高速化TCPと呼ぶ)に置き換えて、対向するWAN高速化装置と通信を行う。対向す
るWAN高速化装置は、高速化TCPを通常のTCPに戻し、受信側の端末又はサーバと通信する。
WAN高速化装置間の高速トランスポートプロトコルのアルゴリズムはベンダにより様々である。例えば、UDPを改良し、再送制御と輻輳制御機能が付加されたプロトコルや、既存のTCPの輻輳制御機能を改善し効率化を図ったプロトコルが使用される。
UDPベースのプロトコルでは、例えば、UDP-based data transfer(UDT)というプ
ロトコルが知られている。また、TCPを改良したプロトコルとしては、CUBIC TCPやScalable TCPといったアルゴリズムがある。特に、Scalable TCPは、帯域が大きく、RTTが大きいWAN回線向けに改良されたTCP輻輳制御アルゴリズムである。
一方で、インターネットから企業のイントラネットやクラウドにアクセスするためにSecure Socket Layer Virtual Private Network(SSL−VPN)を用いることが一般的
となっている。
しかしながら、SSL−VPNを用いた環境に既存のWAN高速化装置を適用すると、通信できないという問題がある。その理由として、第1に、WAN高速化装置では一般にTCPセッションを一旦終端する。しかし、SSLでカプセル化されたパケットをWAN高速化装置が終端しプロトコルを載せ替える際に、セマンティクスが崩れてしまい受信端末で復号できなくなる可能性があった。
また、WAN高速化装置では、TCPセッションを終端した後、UDPのようなTCP以外のプロトコルを用い、かつポート番号も異なる値を使用する。このため、ファイアウォールが途中に存在すると、パケットがファイアウォールを通過できないという問題が生じる。
上記のような問題に対して、WAN高速化装置が証明書を入手し、エンド装置からのTCPセッションの暗号化を解除した上で、一旦WAN高速化装置で終端を行い、WAN高速化装置間で再度SSLトンネルにカプセル化して通信を行うために一旦暗号化を解除するという方法があった。この方法では、WAN高速化装置の機能が複雑なため良好なスループットが得られにくく、価格が高価になるという問題があった。
特開平11−46217号公報
"Improving TCP/IP Performance over Wireless Networks1", Hari Balakrishnan, Srinivasan Seshan, Elan Amir and Randy H. Katz, [hari,ss,elan,randy]@CS.Berkeley.EDU, Computer Science Division, University of California at Berkeley
本発明の実施形態は、エンド装置間における通信のスループットを改善するためにエンド装置間の通信制御から独立した通信制御を実施可能な技術を提供することを目的とする。
本発明の実施形態は、送信側エンド装置と受信側エンド装置との間で送受信されるTCP(Transmission Control Protocol)パケットの経路上に配置された中継装置であって

前記送信側エンド装置から受信される前記受信側エンド装置宛てのTCPパケットと、前記経路上において前記中継装置と前記受信側エンド装置との間に配置された他の中継装置から受信される前記送信側エンド装置宛てのTCPパケットとを覗き見ることによって得られた情報を記憶する記憶装置と、
前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記他の中継装置との間で実行する制御装置と
を含む中継装置である。
本発明の実施形態によれば、エンド装置間における通信のスループットを改善するためにエンド装置間の通信制御から独立した通信制御を実施することができる。
図1は、実施形態におけるネットワークシステムの構成例を示す。 図2は、実施形態に係る中継装置に適用可能な情報処理装置(コンピュータ)のハードウェア構成例を示す。 図3は、中継装置の構成例を模式的に示す。 図4は、ACK済みリストのデータ構造例を示す。 図5は、図1に示した端末とホストとがTCP通信を行う場合における各中継装置の動作を示すシーケンス図である。 図6は、図1に示した端末とホストとがTCP通信を行う場合における各中継装置の動作を示すシーケンス図である。 図7は、揺らぎdiffの分散V(diff)とパケット間隔(g)との関係を示すグラフである。 図8は、パケット受信時における中継装置におけるCPUの処理を示すフローチャートである。 図9は、送信側の中継部として機能するときのCPUの処理を示すフローチャートである。
以下、図面を参照して本発明の実施形態について説明する。実施形態の構成は例示であり、本発明の実施形態は、以下の実施形態の構成に限定されない。
実施形態では、上記課題を解決するために、中継装置は、TCPを終端することなく、レイヤ2(L2)又はレイヤ3(L3)のパケット中継を行う際に、パケットの中身を覗き見(スヌープ)する。パケットロスが検出された場合には、中継装置間で再送を要求し、エンド装置間のTCPの再送機構とは独立したフィードバックに基くローカル再送を行う。これによって、エンド装置のTCPに見える廃棄率を下げ、TCPのスループットが低下することを回避する(改善を図る)ことができる。
<ネットワーク構成>
図1は、実施形態におけるネットワークシステムの構成例を示す。図1において、ネットワークシステム10は、インターネットINと、インターネットINに接続されたクラウドCを含む。インターネットINは、Internet Protocol (IP)網の一例である。クラウドCは、イントラネットであっても良い。
インターネットINには、ユーザ端末である端末(端末装置)11が接続されている。クラウドCは、端末11と通信を行う端末(端末装置)12(以下、ホスト12と表記)と、SSL−VPN装置13とを含んでいる。また、クラウドCの入口には、ファイアウォールFWが配置されている。SSLの通信セッションは、ファイアウォールFWを通過することができる設定を有する。
さらに、ネットワークシステム10は、実施形態に係る中継装置を含む。すなわち、インターネットINには、中継装置15(中継装置#1)が設置されている。クラウドCにおけるファイアウォールFWとSSL−VPN装置13との間には、中継装置16(中継装置#2)が設置されている。中継装置15は、第1中継装置(送信側中継装置)の一例であり、中継装置16は第2中継装置(受信側中継装置)の一例である。
端末11は、送信エンド装置の一例であり、SSL−VPN装置13は受信エンド装置の一例である。中継装置15は、送信側中継装置の一例であり、中継装置16は、受信側中継装置の一例である。
端末11がクラウドC内のホスト12とTCP通信を行う場合には、SSL−VPNを用いた通信が行われる。端末11は、ホスト12と通信するため、暗号化された送信データ(送信パケット)を、SSL−VPNトンネルを用いて送信する。すなわち、端末11は、送信パケットにSSL−VPNに基づくヘッダを付与することで送信パケットをカプセル化し、カプセル化されたパケットを送信する。カプセル化パケットは、中継装置15を経て、クラウドCに到達する。
カプセル化パケットはSSLヘッダ及びTCPヘッダを含み、TCPヘッダには、宛先ポート番号443番が指定されている。この宛先ポート番号の指定によって、カプセル化パケットは、ファイアウォールFWを通過することができる。 カプセル化パケットは、中継装置16を経て、クラウドC内のSSL−VPN装置13で終端される。すなわち、
カプセル化パケットからヘッダが除去されて元の送信パケットが取得される。SSL−VPN装置13は、SSL−VPN通信に係るTCPセッションと異なるTCPセッションを用いて、送信パケットをホスト12へ転送する。
ホスト12から端末11宛てのパケットが送信された場合には、SSL−VPN装置13が、ホスト12から受信されたパケットをカプセル化する。カプセル化されたパケットは、中継装置16,ファイアウォールFW,インターネットIN,中継装置15を通過し、端末11で受信される。端末11は、カプセル化パケットのヘッダ除去によって、元のパケットを取得することができる。
例えば、クラウドC,すなわち、クラウドデータセンタが遠方(例えば海外)にあり、SSL−VPNトンネルのセッション(SSLセッション)がインターネットINを介して設定される場合に、遅延が大きく(例えば、往復遅延時間RTT=200ms)、廃棄率が高い(例えば、廃棄率=0.1%)回線をSSLセッションが通ると仮定する。
この場合、端末11とSSL−VPN装置13との間のSSLセッションは、通常のTCPプロトコルを用いると良好なスループットが得られないことが予想される。このような事情に鑑み、中継装置15及び中継装置16が配置されている。なお、中継装置15と中継装置16との間における通信経路上には、1以上の通常の中継装置(中継装置15及び16が有する再送制御機能(後述)を有しない中継装置)が配置されていても良い。
<中継装置のハードウェア構成例>
各中継装置15及び16のハードウェア構成として、例えば、既存のレイヤ3スイッチやルータが有するハードウェアアーキテクチャを適用することができる。或いは、中継装置のハードウェア構成として、パーソナルコンピュータ(PC),ワークステーション,専用又は汎用のサーバマシンが有する既存のハードウェアアーキテクチャを適用することもできる。
図2は、実施形態に係る中継装置15、中継装置16として適用可能な情報処理装置(コンピュータ)のハードウェア構成例を示す。図2において、情報処理装置20は、例として、Central Processing Unit(CPU)21と、メモリ22と、ストレージ(記憶装置
)23と、Graphics Processing Unit(GPU)24とを含む。さらに、情報処理装置20は、入力インタフェース25と、外部デバイスフェース26と、通信インタフェース27とを含む。
CPU21,メモリ22,ストレージ23,GPU24,入力インタフェース25,外部デバイスインタフェース26,及び通信インタフェース27は、バスBを介して相互に接続されている。
入力インタフェース25には、入力装置(例えば、キーボード,ボタン,ポインティングデバイス)25Aが接続される。外部デバイスインタフェース26は、例えば、ディスク記録媒体(CD,DVD,ブルーレイ)のドライブ装置や、Universal Serial Bus(U
SB)メモリや周辺機器(ディスプレイ(表示装置)のような出力装置)が接続されるU
SBポートを含む。
メモリ22は、CPU21の作業領域として使用されるメインメモリとして機能する。メインメモリは、例えば、Random Access Memory(RAM)及びRead Only Memory(ROM)を含む。
ストレージ23は、CPU21によって実行される各種のプログラム,及び各プログラ
ムの実行時に使用されるデータを記憶する。ストレージ23は、例えば、不揮発性記録媒体であり、例えば、ハードディスク,フラッシュメモリ,EEPROM(Electrically Erasable Programmable Read-Only Memory)の少なくとも1つを用いて形成されることが
できる。メモリ22及びストレージ23のそれぞれは、記録媒体の一例である。GPU24は、画像処理を司るプロセッサである。
通信インタフェース(通信IF)27は、通信インタフェース回路を含む。通信IFと27して、例えば、既存のネットワーク・カードやネットワーク・インタフェース・カード(NIC)と呼ばれるLocal Area Network(LAN)接続用のインタフェース装置を適用することができる。通信IF27は、例えば、インターネットIN,クラウドC内のネットワークに接続される。
CPU21は、例えば、ストレージ23にインストールされたプログラムをメモリ22にロードして実行することにより、中継装置15(中継装置16)としての機能を発揮することができる。CPU21は、プロセッサ(マイクロプロセッサ)や制御装置の一例である。CPU21の代わりに、Digital Signal Processor(DSP)を使用することもできる。
図2に示した情報処理装置20のハードウェア構成は、図1に示した端末11,ホスト12,SSL−VPN装置のハードウェア構成として適用することができる。また、後述する中継装置15(中継装置16)が有する機能は、端末11やホスト12のような端末装置やサーバを含むエンド装置、或いは、WAN高速化装置を含む各種の中継装置に適用可能である。
上述したCPU21,メモリ22及びストレージ23を用いたプログラム実行によって実現される機能は、専用又は汎用のハードウェアチップを用いたハードウェアロジック(ワイヤードロジック)によって実現されても良い。
ハードウェアロジック又はワイヤードロジックによって実現される機能は、例えば、電気回路,電子回路,集積回路(Integrated circuit(IC),Large Scale Integration
(LSI),Application Specific Integrated Circuit(ASIC)等),Programmable Logic Device (PLD,例えば、Field Programmable Gate Array(FPGA))のうちの少なくとも1つ、又は2以上によって実現されることができる。
<中継装置の構成例>
図3は、中継装置の構成例を模式的に示す。中継装置15と中継装置16とは同じ構成を有するため、図3は、例として、中継装置15の構成例を示す。中継装置15は、アップリンク(UL)用のインタフェース部(IF部)31と、ダウンリンク(DL)用のインタフェース部(IF部)32とを有している。
IF部31は、受信側の中継部(RX)33と、送信側の中継部(TX)34と接続されている。IF部32は、受信側の中継部(RX)35と、送信側の中継部(TX)36と接続されている。中継部33,34,35及び36は、交換部(スイッチ)37と接続されている。
アップリンク側において、中継部33は、中継処理部331とTCP解析部332とを有し、中継部34は、バッファ341とレート制御部342とを含んでいる。TCP解析部332は、TCP ACK生成部38と接続されており、TCP ACK生成部38は、ACK済みリスト39と接続されている。
ダウンリンク側において、中継部35は、中継処理部351とTCP解析部352とを含んでいる。中継部36は、バッファ361とレート制御部362とを含んでいる。ACK済みリスト39は、TCP解析部352と接続されている。TCP解析部352は、TCP輻輳検出部40と接続されている。TCP輻輳検出部40は、レート制御部362と接続されている。また、中継部36は、キャッシュ部41と接続されている。
各IF部31,32は、ネットワークからの信号を中継部が扱うパケットに変換したり、中継部から送信されるパケットをネットワーク上の信号に変換したりする。交換部37は、受信側の中継部(中継部33,35)から受信されたパケットを、受信側の中継部で指定された出力インタフェースに対応する送信側の中継部(中継部34,36)に転送する処理(スイッチング)を行う。
各中継部33〜36は、対応するIF部(IF部31及び32の一方)から受信したパケットを中継ルール(予め保持した経路テーブル(ルーティングテーブル)など)に従って他のIF部(IF部31及び32の他方)へ転送する処理を行う。中継は、OSI参照モデルにおけるレイヤ3の中継であっても、レイヤ2の中継であってもよい。
各中継処理部331,351は、対応するIF部から受信されたパケットを中継ルールに従って転送先のIF部を決定する処理を行う。各TCP解析部332,352は、対応する受信側の中継部33又は35で受信されたパケットに含まれるTCPヘッダの情報を覗き見(スヌーピング)によって検査する。
各バッファ341,361は、交換部37から転送された未送信のパケットを一時的に蓄積する。各レート制御部342,362は、パケット送信レートの制御を行う。例えば、レート制御部362は、TCP輻輳検出部40からの指示に基づいて、中継部36におけるパケット送信レートを規制する。
TCP ACK生成部38は、アップリンク(上流)側の通信装置から受信されたパケットをTCP解析部332が覗き見(検査)した結果、TCPパケットが含まれる場合、ダウンリンク(下流)側のエンド装置(エンドホスト)に代わってTCP受信確認メッセージ(TCP ACK)を生成する。TCP ACKを含むパケット(ACKパケット)は、中継部34及びIF部31を経て、アップリンク側の通信装置へ送信される。これによって、送信ホスト(アップリンク側のエンド装置)と中継装置15との間の転送スループットの低下を抑えることができる。
TCP輻輳検出部40は、ダウンリンク側の通信装置から受信されたACKパケットをTCP解析部352が覗き見した結果に基づき、ダウンリンク側の通信装置間の回線の輻輳具合を判断する。TCP輻輳検出部40は、判断結果に基づき、ダウンリンク側のレート制御部362に送信帯域を指示する。
また、TCP輻輳検出部40は、ダウンリンク側の通信装置が送信するACKパケットから判断される、アップリンク側に位置する中継装置とダウンリンク側に位置する中継装置と間のネットワークの通信品質に基づいて、アップリンク側に位置する中継装置の送信レートを決定する。
キャッシュ部41は、送信側の中継部36によって中継されるパケットを、再送要求に備えて蓄積する。キャッシュ部41に蓄積されたパケットは、TCP解析部352が対応するACKを検出した場合に、キャッシュ部41から削除される。
ACK済みリスト39は、中継装置においてローカル的にACKを返信したパケット(
メッセージ)の識別情報と、ACK送信済/未送信を示す情報とを記録するリストである。DL側のTCP解析部352は、DL側からACKを受信した場合に、ACK済みリスト39を参照し、受信したACKをUL側へ転送するか否かを判定する。
図4は、ACK済みリストのデータ構造例を示す。図4において、ACK済みリストは、1以上のレコードからなる。レコードは、送信元IPアドレス(SRC IP),送信元ポート番号(SRC PORT),宛先IPアドレス(DST IP),宛先ポート番号(DST PORT),開始シーケンス(SEQ)番号,終了シーケンス番号,及び中継時刻をパケットの識別情報として記憶する。さらに、レコードは、ACKの送信済み/未送信を示す情報としてACKフラグを格納する。ACKフラグは、UL側の中継部34によるACK送信処理が終了した場合にセット(オン)にされ、ACK送信処理が終了するまでの間はセットされない。
図3に図示したIF部31及び32は、図2に示した通信IF27によって実現される。中継処理部331及び351,TCP解析部332及び352,TCP ACK生成部38,TCP輻輳検出部40,レート制御部342及び362は、例えば、CPU21がプログラムを実行することによって実現される機能である。バッファ341及び361,並びにキャッシュ部41は、メモリ22の記憶領域を用いて実現される。ACK済リスト39は、メモリ22の記憶領域に記憶される。中継処理部331,351及び交換部37の機能は、CPU21によるプログラムの実行、或いは専用又は汎用のハードウェアを用いて実現することができる。
図3に示した中継装置の構成は、端末やサーバに実装可能である。この場合、例えば、端末やサーバ上に仮想マシンを構成し、当該仮想マシン上で中継装置と同等の機能がソフトウェアによって実行される。なお、中継装置15,16が備えるハードウェア構成として、GPU24,入力インタフェース25,外部デバイスインタフェース26は省略が可能である。
<動作シーケンス>
図5及び図6は、図1に示した端末11とホスト12とがTCP通信を行う場合における中継装置15及び中継装置16の動作を示すシーケンス図である。図5に示すシーケンスは、端末11とクラウドCのSSL−VPN装置13との間でSSLセッションを確立し、端末11からSSL−VPN装置13の下流側にあるホスト12へファイル(データ)を転送する場合を想定する。なお、中継装置15,16から見て、端末11側がアップリンク(UL)側であり、ホスト12側がダウンリンク(DL)側である。
端末11は、SSL−VPN装置13との間で、TCPポート番号“443”が宛先ポート番号に指定されたSSLセッションを確立する。ファイアウォールFWは当該SSLセッションを通過させる。
端末11は、SSL−VPN装置13に対して鍵を要求し(1)、SSL−VPN装置13との間で共通鍵を交換する(31)。このとき、各中継装置15,16は、SSLセッション確立のためのTCPパケットの内容を参照し(11,21)、TCPパケットが鍵交換用のパケットである場合には、そのまま中継する(12,22)。
例えば、中継装置15,16は、TCPパケットに含まれるSSLヘッダの“Content Type”の値を参照し、この値がユーザデータを含むことを示す“Application_Data”であるときに、ACK生成及び送信処理を行うようにすることができる。
端末11は、SSL−VPN装置13と共通鍵を交換すると、データを暗号化しTCP
セッションを用いて送信する(2)。TCPでは、通信を行う際にウィンドウ制御が行われる。ここでは、シーケンス番号(SEQ=150〜250)のTCPセグメントを含むIPパケット(カプセル化パケット、以下、単に「パケット」と表記することもある)が、送信されたと仮定する。
中継装置15(中継装置#1)では、TCPを終端することなく、DL側の中継部33の中継処理部331がパケットの中継処理を行う(13)。このとき、TCP解析部332は、パケットのTCPヘッダを参照する(覗き見る)。TCPヘッダがある場合、TCP ACK生成部38は、パケットに対するACKを生成する。ACKは、端末11に送信される(15)。このとき、ACKを送信したパケットの情報が、ACK済みリスト39に格納される。このとき、ACK済みリスト39において、当該パケットのレコードにおけるACKフラグがオンに設定される。このようにACKは、対向装置(中継装置16)から受信される前に端末11へ送信される。これによって、端末11におけるACKの待ち状態を早期に解除することができる。
また、ダウンリンク側の中継部36では、中継部33から交換部37を介して受信されたパケットを中継装置15と中継装置16との間での間の再送に備えてキャッシュ部41に一時記憶する(16)。パケットは、中継部36からIF部32を経て、インターネットINに送出される(図1)。パケットは、通信が正常に行われる場合、クラウドCのファイアウォールFWを通過して、中継装置16へ到達する。しかし、図5では、中継装置15と中継装置16との間のネットワークにおいて、シーケンス番号“SEQ=200”を含む
パケットが破棄された場合が例示されている。
中継装置16では、中継部33(中継処理部331)が、受信したパケットの中継処理を行う(23)。このとき、TCP解析部332は、パケットのTCPヘッダを参照し(
24)、中継すべきパケットのうち“SEQ=200”のパケットが抜けている(破棄されている)ことを検出することができる。
TCP ACK生成部38は、TCP解析部332の解析結果に応じて、ローカルなACK(受信成功を示す肯定応答)又はNACK(non-ACK:受信失敗を示す否定応答)を
生成する。すなわち、中継部33で受信できたパケットに関しては、ACKを含むパケットを生成し、受信できなかったパケットに関してはNACKを含むパケットを生成する(25)。生成されたACK及びNACKを含むパケット(ACK/NACKパケット)は、中継装置15へ送信される。なお、ACK又はNACKを含むパケット(ACK/NACKメッセージ)は、ユーザデータを含まず、暗号化は不要である。
中継装置16では、送信側の中継部36がパケットをSSL−VPN装置13へ転送すると共に、当該パケットのコピーをキャッシュ部41に蓄積する中継パケットをキャッシュする(26)。
中継装置15は、中継装置16からローカルなACK又はNACKを受信する。ACKが受信された場合には、当該ACKは、中継部35のTCP解析部352で検出される。この場合、TCP解析部40は、キャッシュ部41に格納されたACKに対応するパケットを削除する。一方、TCP解析部40がNACKを検出した場合には、中継部36が、NACKに対応するパケットをキャッシュ部41から取得し、中継装置16へ再送する(17)。
25で中継装置16から送信されるACK又はNACKは、中継装置15と中継装置16との間でパケットのローカルな再送を行うために生成されたメッセージである。このため、中継装置15は、ACK及びNACKをUL方向に中継しない。
具体的には、中継装置15では、DL側の中継部35でローカルなACKが受信されると、ACK済みリスト39を参照し、既にUL側の中継部34が上流の通信機器(端末11)にACKを送信している場合(ACKフラグがオンの場合)には、ACKパケットを破棄する(19)。
また、中継装置15では、中継装置16からのACK又はNACKの到着をTCP解析部352と接続されたTCP輻輳検出部40が監視する。TCP輻輳検出部40は、中継装置15と中継装置16との間の回線の輻輳具合を検出する。レート制御部362は、検出された輻輳具合に応じて、DL方向へのパケット送信レートを決定する。
例えば、TCP輻輳検出部40は、中継装置15から中継装置16へ送信したパケットに対するACKパケットの到着時間(往復遅延時間RTT)を計測する。計測結果において、到着間隔の揺らぎが少なければ、中継装置15と中継装置16との間の回線には、送信レートを上げる余裕があると判断して送信レートを上げる。これに対し、TCP輻輳検出部40は、揺らぎが大きいときに中継装置15と中継装置16との間で輻輳が生じていると判断し、送信レートを下げる。
揺らぎ(分散)と送信レートとの関係について説明する。TCP輻輳検出部40は、中継装置16へ送信されるパケットと、当該パケットに対するACKパケットとのRTTの揺らぎを計算する。TCP輻輳検出部40は、揺らぎの大きさに応じてパケットの送信間隔(パケット間ギャップ)を大きくする。
RTTの揺らぎdiffは、以下の式(1)で算出することができる。
Figure 0006236933
式(1)において、baseRTTは、中継装置で観測されるRTTの最小値である。揺らぎdiffの平均をE(diff)とし、揺らぎdiffの分散をV(diff)とすると、V(diff)は、以下の式(2)で求められ、V(diff)が所定閾値γ以上であるときの送信レートWは、以下の式(3
)で求められる。
Figure 0006236933
図7は、揺らぎdiffの分散V(diff)とパケット間隔(g)との関係を示すグラフである。分散V(diff)が閾値γ未満である間は、パケットは、最小のパケット間ギャップg0で送信される。すなわち、最高の送信レートでパケットが送信される。これに対し、分散V(diff)
が閾値γを上回ると、パケット間ギャップ(g)は、分散V(diff)の上昇に応じて広くな
る(図7に示す曲線グラフを参照)。従って、揺らぎが大きくなると、送信レートWを低下させることで、パケットの欠落(破棄)を回避する。
上記のような送信レート制御の採用によって、端末11で実行されるTCPに基づくレート制御(ウィンドウ制御)と異なるレート制御でパケットを送信することが可能となる。したがって、RTTが大きい回線であっても、端末11でのレート制御によるスループットの影響を受けることを回避することができる。
図6に戻って、中継装置16は、中継装置15から受信したパケットをSSL−VPN装置13に向けて中継(送信)する。このとき、中継(送信)されたパケットがキャッシュ部41に一時記憶(キャッシュ)される。
SSL−VPN装置13は、受信したパケットに対してACKを送信する(32)。中継装置16は、DL側の中継部35でACKを受信すると、TCP解析部352がACK済みリスト39を参照し、既にUL側の中継部33が上流の通信機器(中継装置15)にACKを送信している場合には、ACKパケットを破棄する(28)。これに対し、ACKが未送信(ACKフラグがオフ)の場合には、中継部36がACKを中継装置15に送信する。
SSL−VPN装置13は、中継装置16から受信されたパケットに対するSSLセッションの終端処理を行う。すなわち、SSL−VPN装置13は、パケットのデカプセル化を行い、オリジナルのパケットを得る。オリジナルのパケットは、SSL−VPN装置13とホスト12との間に確立された、他のTCPセッションを用いてホスト12に送信される。ホスト12は、受信できたパケットについてはACKを、受信できなかったパケットについてはNACKをSSL−VPN装置13に返す。
<動作フローチャート>
図8は、パケット受信時における中継装置15(中継装置16)におけるCPU21の処理を示すフローチャートである。受信側の中継処理部331として機能するCPU21は、パケットが受信されると、TCP解析部332として機能し、パケットのTCPヘッダを覗き見る(101)。
次に、CPU21は、TCPヘッダの格納内容を参照して、パケット(TCPパケット)の種別を判定する(102)。ここに、TCPパケットは、ユーザデータを含む通常のデータパケットと、ACKを含みユーザデータを含まないACKパケットと、ユーザデータ及びACKを含む“ACK+データ”パケットとに分類することができる。
TCPパケットがデータパケットである場合には、110の処理へ進む。110において、CPU21は、TCP ACK生成部38として機能し、データパケットに対するACKを生成し、アップリンク側の通信装置へ送信する。110の処理は、主に、中継装置15が端末11からデータパケットを受信し、中継装置16へ中継する場合に発生する。
このとき、CPU21は、正常に受信された最終セグメントのシーケンス番号をACKに含める。また、CPU21は、シーケンス番号が欠落しているセグメントについては、TCPヘッダのオプションフィールドの一つである(選択的受信確認(Selective Acknow
ledgment:SACK))フィールドを利用し、欠落しているシーケンス番号を上流の通信装置へ通知してもよい。
また、CPU21は、TCP ACK生成部38として機能し、ACKを送信したデー
タパケットの識別情報をACK済みリスト39(図4)に記録し、ACKフラグをオンに設定する(111)。
その後、CPU21は、中継処理部331として機能し、パケットのIPヘッダを参照し、メモリ22やストレージ23に予め記憶されている経路テーブル(ルーティングテー
ブル:図示せず)を参照し、宛先IPアドレスに対応する送信先インタフェースを決定す
る。そして、CPU21は、決定されたインタフェースへパケットが転送されるように交換部(スイッチ)37を制御する (112)。交換部(スイッチ)37は、パケットを送
信側(ダウンリンク側)のIF部32へ向けて転送し、パケットは、バッファ361に一時記憶される。
102において、TCPパケットがACKパケットである場合には、処理が120へ進む。120以降の処理は、主に、中継装置16が中継装置15から受信したデータパケットに対するACKパケットを中継装置15が受信した場合に実行される。
120において、CPU21は、TCPパケットがACKパケットである場合には、TCP輻輳検出部40として機能する。すなわち、CPU21は、ACKの受信時刻と、ACKに対応するデータパケットの中継時刻(ACK済みリスト39に記録)とからRTTを求める。続いて、CPU21は、RTTの平均値(E(diff)に相当)を計算するととも
に、連続するパケットのRTTの分散(V(diff)に相当)を計算する。
CPU21は、RTTの平均及び分散を用いて輻輳状態を判断し、パケットの送信間隔(送信レート)を決定する(121)。また、CPU21は、ACK済みリスト39を参照し、ACKに対応するレコードのACKフラグがオンになっている場合には、キャッシュ部41からデータパケットを削除する(124)とともに、ACKパケットを破棄する(125)。さらに、ACKパケットをUL方向へ通知する必要がないからである。このとき、リストから該当するレコードも削除される。
一方、ACKに対応するデータパケットのACKがUL方向に未送信の場合(ACKフラグがオフの場合)には、CPU21は、ACKパケットをUL方向に中継する(123)。UL側の中継装置(中継装置15)が端末11へまだACKを送信していないことを意味するからである。
102において、TCPパケットが“ACK+データ”パケットである場合は、130以降の処理が実行される。130以降の処理は、主に、中継装置16が中継装置15から受信したデータパケットに対し、それぞれACKパケットを送信することなく中継し(例
えば鍵交換のシーケンス)、ホスト12から端末11へユーザデータ及びACKを一つの
パケットに含めて送信した“ACK+データ”パケットをDL側で受信した場合に実行される。
130〜132,及び134の処理は、120〜122,及び124の処理と同じである。135では、“ACK+データ”パケットからACKが除去されたデータパケットをCPU21が生成し、当該データパケットがUL側へ転送される。また、133では、ACKフラグがオンとなっていないため、当該“ACK+データ”パケットをCPU21はそのままUL側へ転送する。
図9は、送信側の中継部36として機能するときのCPU21の処理を示すフローチャートである。CPU21は、図8における121又は131で設定したパケット送信間隔に従ってパケットを送信する。すなわち、CPU21は、パケット送信時刻になったらバッファ361からパケットを一つ取り出す(201)。続いて、CPU21は、キャッシュ部41にパケットのコピーを書き込む(202)。そして、CPU21は、パケット送信時刻をACK済みリストに記録し(203)、IF部32へパケットを転送する(204)。
なお、図3〜図9を用いた説明では、UL方向からDL方向へTCPパケットが送信される場合の構成及び動作について説明した。もっとも、DL方向からUL方向(SSL−VPN装置13→端末11)へ転送されるSSLセッションのTCPパケットについて上記と同様の動作を行うための構成要素を中継装置15,16は備えることができる。
<実施形態の作用効果>
実施形態におけるネットワークシステム10によれば、端末11とSSL−VPN装置13との間に中継装置15,16との間で、端末11とSSL−VPN装置13との間(エンド装置間)で実施される再送制御から独立したTCPパケットの再送制御が行われる。
当該再送制御は、TCPパケットの送信元装置である端末11に、TCPパケットの再送を要求するのではなく、中継装置15や中継装置16にキャッシュ(一時記憶)されたTCPパケットのコピーが用いられる。これによって、再送に係る時間の短縮化を図ることができ、エンド装置間におけるTCPパケットのスループットの低下を抑えることができる。
また、再送制御は、中継装置15,16が、TCPパケットのTCPヘッダを覗き見することで行われる。すなわち、TCPセッションの暗号化がエンド装置間で一旦解除されることがない。このため、TCPセッションがファイアウォールFWで遮断されることがなく、且つTCPセッションの一時解除のための複雑な処理に伴うスループット低下を抑えることができる。また、既存のWAN高速化装置のような高価な装置の導入を回避することができる。
また、中継装置15は、TCPパケットの送信時刻と、TCPパケットに対応するACKパケットの受信時刻からRTTを算出し、さらに、RTTの平均及び分散(揺らぎの平均及び分散)を算出する。そして、中継装置15は、分散の値を中継装置間の輻輳度合いを示す指標として用い、分散値に応じたパケット送信間隔(送信レート)を決定する。中継装置16も、中継装置15と同様の手法で、送信レートを決定することができる。このように、中継装置15,16は、エンド装置間で実行される送信レート制御と異なる送信レート制御を実施することができる。
上記のような再送制御及びレート制御を含め、実施形態における中継装置間では、エンド装置間で実行される通信制御から独立した通信制御を実行することができる。例えば、輻輳検出、誤り訂正制御、及び送信レート制御を、中継装置間において、エンド装置間と異なる方法で行うことができる。
例えば、エンド装置間でパケットロスの検出に基づく輻輳検出が実行されている場合に、中継装置間で、キューイング遅延検出による輻輳検出を行うことができる。また、エンド装置間でキューイング遅延検出による輻輳検出が実行されている場合に、中継装置間で、空き帯域測定による輻輳検出を行うことができる。
また、誤り訂正制御として、エンド装置間では、輻輳検出時にパケットの再送が行われ
るのに対し、中継装置間では、輻輳検出時に誤り訂正制御として、パケットにFEC(Forward Error Correction)による冗長データを付加する処理が実行されるようにしても良い。或いは、エンド間で実行される再送のバックオフ制御と異なる再送のバックオフ制御が実行されるようにしても良い。或いは、エンド間で使用される再送タイマ値と異なる再送タイマ値が中継装置間で使用されるようにしても良い。
また、レート制御として、エンド装置間で輻輳ウィンドウの大きさを増減する方法が利用されている場合に、中継装置間で、図7を用いて説明したようなパケット間ギャップを調整する方法や、ウィンドウの大きさではなく、最大送信レートを制御する方法を実施することができる。
(付記1) 送信側エンド装置と受信側エンド装置との間で送受信されるTCP(Transmission Control Protocol)パケットの経路上に配置され、
前記送信側エンド装置から受信される前記受信側エンド装置宛てのTCPパケットと、前記経路上において前記中継装置と前記受信側エンド装置との間に配置された他の中継装置から受信される前記送信側エンド装置宛てのTCPパケットとを覗き見ることによって得られた情報を記憶する記憶装置と、
前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記他の中継装置との間で実行する制御装置と
を含む中継装置。(1)
(付記2) 前記記憶装置は、前記送信側エンド装置から受信されたTCPパケットが前記他の中継装置へ中継されるときに、当該TCPパケットのコピーを記憶し、
前記制御装置は、前記他の中継装置から受信されたTCPパケットを覗き見た結果、当該TCPパケットに前記他の中継装置へ中継したTCPパケットの受信に係る否定応答が含まれているときには前記コピーを用いた再送処理を行う
付記1に記載の中継装置。(2)
(付記3) 前記記憶装置は、TCPパケットの受信に係る肯定応答を当該TCPパケットの送信元へ送信済か否かを示す送信済/未送信情報を記憶し、
前記制御装置は、前記他の中継装置から受信されたTCPパケットの覗き見の結果、覗き見たTCPパケットに肯定応答が含まれているときに、前記送信済/未送信情報に基づき、前記肯定応答を含むTCPパケットの廃棄又は転送処理を行う
付記2に記載の中継装置。(3)
(付記4) 前記制御装置は、前記送信側エンド装置からTCPパケットを受信した場合に、前記他の受信装置から当該TCPパケットの肯定応答を受信する前に、肯定応答を生成して前記送信側エンド装置に送信するとともに、肯定応答を送信済みであることを示す前記送信済/未送信情報を前記記憶装置に記憶する
付記3に記載の中継装置。(4)
(付記5) 前記制御装置は、前記覗き見によって得られた情報を用いて、前記送信側エンド装置と前記受信側エンド装置との間で実行される輻輳検出方法と異なる方法で輻輳検出を行う
付記1に記載の中継装置。(5)
(付記6) 前記制御装置は、前記覗き見によって得られた情報を用いて、前記送信側エンド装置と前記受信側エンド装置との間で実行される送信レートの決定方法と異なる方法で送信レートを決定する
付記1に記載の中継装置。(6)
(付記7) 前記制御装置は、前記他の中継装置へのTCPパケットの送信時刻と、当該TCPパケットに対する肯定応答の受信時刻とを用いた統計値に基づいて、前記他の中継装置へ転送されるTCPパケットの送信レートを決定する
付記1に記載の中継装置。(7)
(付記8) 前記制御装置は、TCPパケットに含まれたセッション情報が特定のセッション情報であることを示す場合に、前記肯定応答を生成して前記送信側エンド装置に送信する
付記4記載の中継装置。
(付記9) 前記制御装置は、TCPパケットに含まれたコンテンツ種別が特定の種別を示す場合に、前記肯定応答を生成して前記送信側エンド装置に送信する
付記4記載の中継装置。
(付記10) 送信側エンド装置と受信側エンド装置との間で送受信されるTCP(Transmission Control Protocol)パケットの経路上に配置された中継装置であって、
前記経路上において前記送信側エンド装置と前記中継装置との間に配置された他の中継装置から受信された前記受信側エンド装置宛てのTCPパケットを覗き見た結果に基づき、否定応答を含むTCPパケット又は肯定応答を含むTCPパケットを生成して前記他の中継装置に送信する処理を行う制御装置と、
前記受信側エンド装置宛てのTCPパケットのコピーを記憶する記憶装置と、を含み、
前記制御装置は、前記受信側エンド装置から受信されたTCPパケットを覗き見た結果、当該TCPパケットに前記受信側エンド装置へ中継したTCPパケットの受信に係る否定応答が含まれているときには前記コピーを用いた再送処理を行い、当該TCPパケットに前記受信側エンド装置へ中継したTCPパケットの受信に係る肯定応答が含まれている場合には、当該TCPパケットの廃棄を行う
中継装置。(8)
(付記11) 送信側エンド装置と受信側エンド装置との間で送受信されるTCP(Transmission Control Protocol)パケットの経路上に配置された中継装置が、
前記送信側エンド装置から受信される前記受信側エンド装置宛てのTCPパケットと、前記経路上において前記中継装置と前記受信側エンド装置との間に配置された他の中継装置から受信される前記送信側エンド装置宛てのTCPパケットとを覗き見し、
前記覗き見によって得られた情報を記憶装置に記憶し、
前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記他の中継装置との間で実行する
ことを含む中継装置の通信制御方法。(9)
(付記12) 送信側エンド装置と受信側エンド装置との間で送受信されるTCP(Transmission Control Protocol)パケットの経路上に配置された第1中継装置と、
前記経路上において、前記第1中継装置と前記受信側エンド装置との間に配置された第2中継装置とを含み、
前記第1中継装置は、
前記送信側エンド装置から受信される前記受信側エンド装置宛てのTCPパケットと、前記第2中継装置から受信される前記送信側エンド装置宛てのTCPパケットとを覗き見ることによって得られた情報を記憶する記憶装置と、
前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記第2中継装置との間で実行する制御装置と
を含むネットワークシステム。
(付記13) 前記第1中継装置の前記記憶装置は、前記送信側エンド装置から受信されたTCPパケットが前記第2中継装置へ中継されるときに、当該TCPパケットのコピーを記憶し、
前記第1中継装置の前記制御装置は、前記第2中継装置から受信されたTCPパケットを覗き見た結果、当該TCPパケットに前記第2中継装置へ中継したTCPパケットの受信に係る否定応答が含まれているときには前記コピーを用いた再送処理を行い、
前記第2中継装置は、前記第1中継装置からTCPパケットが前記受信側エンド装置へ中継されるときに、当該TCPパケットのコピーを記憶する記憶装置と、
前記受信側エンド装置から受信されたTCPパケットを覗き見て、当該TCPパケットに前記受信側エンド装置へ中継したTCPパケットの受信に係る否定応答が含まれているときには前記コピーを用いた再送処理を行い、当該TCPパケットに前記受信側エンド装置へ中継したTCPパケットの受信に係る肯定応答が含まれている場合には、当該TCPパケットの廃棄を行う制御装置とを含む、
付記12に記載のネットワークシステム。
FW・・・ファイアウォール
10・・・ネットワークシステム
11・・・端末
12・・・端末(ホスト)
13・・・SSL−VPN装置
15,16・・・中継装置
20・・・情報処理装置
21・・・CPU
22・・・メモリ
23・・・ストレージ
27・・・通信インタフェース
31,32・・・IF部
33〜36・・・中継部
37・・・交換部
38・・・TCP ACK生成部
39・・・ACK済みリスト
40・・・TCP輻輳検出部
41・・・キャッシュ部
331,351・・・中継処理部
332,352・・・TCP解析部
341,361・・・バッファ

Claims (9)

  1. 送信側エンド装置と受信側エンド装置との間で送受信されるTCP(Transmission Control Protocol)パケットの経路上に配置される中継装置において
    前記送信側エンド装置から受信される前記受信側エンド装置宛てのTCPパケットと、前記経路上において前記中継装置と前記受信側エンド装置との間に配置された他の中継装置から受信される前記送信側エンド装置宛てのTCPパケットとを覗き見ることによって得られた情報を記憶する記憶装置と、
    前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記他の中継装置との間で実行する制御装置と
    を含む中継装置。
  2. 前記記憶装置は、前記送信側エンド装置から受信されたTCPパケットが前記他の中継装置へ中継されるときに、当該TCPパケットのコピーを記憶し、
    前記制御装置は、前記他の中継装置から受信されたTCPパケットを覗き見た結果、当該TCPパケットに前記他の中継装置へ中継したTCPパケットの受信に係る否定応答が含まれているときには前記コピーを用いた再送処理を行う
    請求項1に記載の中継装置。
  3. 前記記憶装置は、TCPパケットの受信に係る肯定応答を当該TCPパケットの送信元へ送信済か否かを示す送信済/未送信情報を記憶し、
    前記制御装置は、前記他の中継装置から受信されたTCPパケットの覗き見の結果、覗き見たTCPパケットに肯定応答が含まれているときに、前記送信済/未送信情報に基づき、前記肯定応答を含むTCPパケットの廃棄又は転送処理を行う
    請求項2に記載の中継装置。
  4. 前記制御装置は、前記送信側エンド装置からTCPパケットを受信した場合に、前記他の受信装置から当該TCPパケットの肯定応答を受信する前に、肯定応答を生成して前記送信側エンド装置に送信するとともに、肯定応答を送信済みであることを示す前記送信済/未送信情報を前記記憶装置に記憶する
    請求項3に記載の中継装置。
  5. 前記制御装置は、前記覗き見によって得られた情報を用いて、前記送信側エンド装置と前記受信側エンド装置との間で実行される輻輳検出方法と異なる方法で輻輳検出を行う
    請求項1に記載の中継装置。
  6. 前記制御装置は、前記覗き見によって得られた情報を用いて、前記送信側エンド装置と前記受信側エンド装置との間で実行される送信レートの決定方法と異なる方法で送信レートを決定する
    請求項1に記載の中継装置。
  7. 前記制御装置は、前記他の中継装置へのTCPパケットの送信時刻と、当該TCPパケットに対する肯定応答の受信時刻とを用いた統計値に基づいて、前記他の中継装置へ転送されるTCPパケットの送信レートを決定する
    請求項1に記載の中継装置。
  8. 送信側エンド装置と受信側エンド装置との間で送受信されるTCP(Transmission Control Protocol)パケットの経路上に配置される中継装置において
    前記経路上において前記送信側エンド装置と前記中継装置との間に配置された他の中継装置から受信された前記受信側エンド装置宛てのTCPパケットを覗き見た結果に基づき、否定応答を含むTCPパケット又は肯定応答を含むTCPパケットを生成して前記他の中継装置に送信する処理を行う制御装置と、
    前記受信側エンド装置宛てのTCPパケットのコピーを記憶する記憶装置と、を含み、
    前記制御装置は、前記他の中継装置からのTCPパケットを覗き見た結果、当該TCPパケットに前記他の中継装置へ中継したTCPパケットの受信に関して前記他の中継装置が発行した否定応答が含まれているときには前記コピーを用いた再送処理を行い、当該TCPパケットに前記他の中継装置へ中継したTCPパケットの受信に係る肯定応答が含まれている場合には、当該TCPパケットの廃棄を行う
    中継装置。
  9. 送信側エンド装置と受信側エンド装置との間で送受信されるTCP(Transmission Control Protocol)パケットの経路上に配置された中継装置が、
    前記送信側エンド装置から受信される前記受信側エンド装置宛てのTCPパケットと、前記経路上において前記中継装置と前記受信側エンド装置との間に配置された他の中継装置から受信される前記送信側エンド装置宛てのTCPパケットとを覗き見し、
    前記覗き見によって得られた情報を記憶装置に記憶し、
    前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記他の中継装置との間で実行する
    ことを含む中継装置の通信制御方法。
JP2013138917A 2013-07-02 2013-07-02 中継装置 Expired - Fee Related JP6236933B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013138917A JP6236933B2 (ja) 2013-07-02 2013-07-02 中継装置
US14/309,718 US9450867B2 (en) 2013-07-02 2014-06-19 Apparatus and method for controlling transmission between relay devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013138917A JP6236933B2 (ja) 2013-07-02 2013-07-02 中継装置

Publications (2)

Publication Number Publication Date
JP2015012570A JP2015012570A (ja) 2015-01-19
JP6236933B2 true JP6236933B2 (ja) 2017-11-29

Family

ID=52132801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013138917A Expired - Fee Related JP6236933B2 (ja) 2013-07-02 2013-07-02 中継装置

Country Status (2)

Country Link
US (1) US9450867B2 (ja)
JP (1) JP6236933B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6102845B2 (ja) * 2014-07-10 2017-03-29 コニカミノルタ株式会社 接続制御システム、管理サーバー、接続支援方法および接続支援プログラム
US10104016B2 (en) * 2014-12-12 2018-10-16 Hitachi, Ltd. Communication device, communication device system, and communication method
JP2016139903A (ja) * 2015-01-27 2016-08-04 富士通株式会社 通信装置、及びそのデータ中継方法
US9985886B2 (en) * 2015-03-27 2018-05-29 Intel Corporation Technologies for network packet pacing during segmentation operations
US10735142B2 (en) * 2015-05-29 2020-08-04 Goodrich Corporation Multi-system data transfer protocol
US10333897B2 (en) * 2015-10-23 2019-06-25 Attala Systems Corporation Distributed firewalls and virtual network services using network packets with security tags
EP3459217B1 (en) * 2016-05-16 2020-07-08 Telefonaktiebolaget LM Ericsson (PUBL) Transporting udp packets over an mptcp connection
JP2018019266A (ja) * 2016-07-28 2018-02-01 沖電気工業株式会社 中継装置及び通信システム
US10708001B2 (en) * 2017-06-15 2020-07-07 Hughes Network Systems, Llc System and method of local retransmission of TCP/IP frames
CN109842567B (zh) 2017-11-24 2020-12-25 华为技术有限公司 数据分发方法以及分发服务器
US10931587B2 (en) * 2017-12-08 2021-02-23 Reniac, Inc. Systems and methods for congestion control in a network
JP6988511B2 (ja) * 2018-01-24 2022-01-05 富士通株式会社 障害検知方法、ノード装置、通信システム
BR112020015008A2 (pt) * 2018-01-29 2020-12-29 Koninklijke Philips N.V. Dispositivo sem fio, dispositivo de retransmissão, sistema e método
CN111262715B (zh) * 2018-11-30 2021-04-02 贵州白山云科技股份有限公司 一种虚拟内网加速方法、系统和计算机设备
US20220225163A1 (en) * 2019-06-12 2022-07-14 Sony Group Corporation Communications device, infrastructure equipment and methods
JP7323782B2 (ja) * 2019-07-16 2023-08-09 富士通株式会社 パケット解析プログラム、パケット解析方法およびパケット解析装置
US11764934B2 (en) * 2021-12-06 2023-09-19 Charter Communications Operating, Llc Fast adaptive buffering of hierarchical TCP communications

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1146217A (ja) 1997-07-28 1999-02-16 Nippon Telegr & Teleph Corp <Ntt> 無線パケット再送方法
JP3730480B2 (ja) * 2000-05-23 2006-01-05 株式会社東芝 ゲートウェイ装置
KR100436435B1 (ko) * 2001-12-26 2004-06-16 한국전자통신연구원 유무선 통합망에서 간접 승인을 이용한 패킷 전송 장치 및그 방법
AU2003219812A1 (en) * 2002-02-19 2003-09-09 Zyray Wireless, Inc. Method and apparatus optimizing a radio link
US7616638B2 (en) * 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
WO2006024320A1 (en) * 2004-08-31 2006-03-09 Telefonaktiebolaget Lm Ericsson (Publ) Data unit sender and data unit relay device
ATE411661T1 (de) * 2004-08-31 2008-10-15 Ericsson Telefon Ab L M Kommunikationsvorrichtung
US7924761B1 (en) * 2006-09-28 2011-04-12 Rockwell Collins, Inc. Method and apparatus for multihop network FEC encoding
JP2009164947A (ja) * 2008-01-08 2009-07-23 Nec Corp サーバ、パケット転送方法およびプログラム
JP2009164948A (ja) * 2008-01-08 2009-07-23 Nec Corp 通信システム、サーバ、端末、パケット転送方法およびプログラム
US8018890B2 (en) * 2008-06-25 2011-09-13 Intel Corporation Techniques using a hop-by-hop approach for automatic repeat request (ARQ) in wireless relay networks
WO2011151884A1 (ja) * 2010-05-31 2011-12-08 株式会社Jin-Magic 通信装置及び通信方法
JP5913258B2 (ja) * 2013-11-06 2016-04-27 株式会社日立製作所 中継装置及びデータ転送方法

Also Published As

Publication number Publication date
JP2015012570A (ja) 2015-01-19
US20150009999A1 (en) 2015-01-08
US9450867B2 (en) 2016-09-20

Similar Documents

Publication Publication Date Title
JP6236933B2 (ja) 中継装置
US11876880B2 (en) TCP processing for devices
CN104025525B (zh) 用于发送分组的方法和设备以及交换机装置
CN107980213B (zh) 内联网络接口卡、网络接口卡、以及调节tcp/ip流的方法
CN109936510B (zh) 多路径rdma传输
US9577791B2 (en) Notification by network element of packet drops
US8799504B2 (en) System and method of TCP tunneling
US10873613B2 (en) TCP processing for devices
US8379515B1 (en) TCP throughput control by imposing temporal delay
US20180004705A1 (en) Selective acknowledgment of RDMA packets
CN112769718B (zh) 网络接口卡
US8072898B2 (en) Method for managing a transmission of data streams on a transport channel of a tunnel, corresponding tunnel end-point and computer-readable storage medium
EP2722768B1 (en) TCP processing for devices
TW200537877A (en) Retransmission system and method for a transport offload engine
US7480301B2 (en) Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
JP2013243694A (ja) 少なくとも1つのtcpデータセグメントストリームをインラインコンテンツ解析にサブミットするための方法及びデバイス、その方法を実施するための1つ又は複数の命令シーケンスを保持するコンピュータ可読媒体、並びにコンピュータプログラム製品
JP2005520374A (ja) Tcp/ipに対する変更
JP2009089197A (ja) 中継装置
JP4610910B2 (ja) 通信処理装置及びその方法
EP3319297B1 (en) Network interface device and host processing device
JP4506430B2 (ja) アプリケーションモニタ装置
WO2022259452A1 (ja) 中間装置、通信方法、およびプログラム
JP2016019156A (ja) 通信装置およびその制御方法
WO2017199913A1 (ja) 送信装置、方法、プログラムおよび記録媒体
JP2012049883A (ja) 通信装置およびパケット処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171016

R150 Certificate of patent or registration of utility model

Ref document number: 6236933

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees