以下に図面を参照して、本発明にかかる通信システム、通信装置および通信方法の実施の形態を詳細に説明する。
(実施の形態)
(通信システムの機能的構成の一例)
図1は、通信システムの機能的構成を示すブロック図である。まず、上流側の第1通信装置110がプロトコルの変換を行わない第1転送状態(スヌープモード)にあり、下流側の第2通信装置120がプロトコルの変換を行う第2転送状態(プロキシモード)にあることとし、各々の転送状態を切替える場合について説明する。
図1において、通信システム100は、第1通信装置110と、第2通信装置120と、制御装置130と、を有する。第1通信装置110は、第1転送部111と、第1読出部112と、第1制御部113と、を有する。第1転送部111は、上流の通信装置から受信したデータをプロトコル変換せずに第2通信装置120へ転送する第1転送状態と、データをプロトコル変換して第2通信装置120へ転送する第2転送状態と、に切替え可能にする。プロトコルは、例えば、TCP(Transmission Control Protocol)や高速プロトコルである。
第1転送部111は、第1転送状態においては、上流の通信装置からTCPまたは高速プロトコルで受信したデータをプロトコル変換せずに第2通信装置120へ転送する。また、第1転送部111は、第2転送状態においては、上流の通信装置からTCPで受信したデータを高速プロトコルに変換して第2通信装置120へ転送する。また、第1転送部111は、第2転送状態においては、例えば上流の通信装置から高速プロトコルで受信したデータをTCPに変換して第2通信装置120へ転送する。また、例えば、第1転送部111は、第2転送状態においては、上流の通信装置からTCPで受信したデータを高速プロトコルに変換して第2通信装置120へ転送する。
第1読出部112は、第1転送部111が第1転送状態である場合に、第1転送部によって転送されるデータに含まれる転送されるデータの識別情報を読み出す。識別情報は、例えば、転送されるデータの通し番号であり、具体的には、シーケンス番号である。シーケンス番号は、データのヘッダ情報に格納される。第1読出部112は、データのヘッダ情報に格納されるシーケンス番号をスヌープ(覗き見る)することによって読み出す。第1転送状態は、覗き見によって識別情報の読み出しが行われるスヌープモードである。
第1制御部113は、第1読出部112によって読み出された識別情報が所定の識別情報である場合に、第1転送部111を第1転送状態から第2転送状態に切替える。所定の識別情報とは、例えば待ち合せ用のシーケンス番号である。具体的には、第1制御部113は、スヌープされたシーケンス番号が待ち合せ用のシーケンス番号と一致した場合に第1転送状態から第2転送状態に切替える。第2転送状態は、プロトコルの変換が行われるプロキシモードである。
第2通信装置120は、第2転送部121と、第2読出部122と、第2制御部123と、を有する。第2転送部121は、第1通信装置110から受信したデータをプロトコル変換せずに下流の通信装置へ転送する第1転送状態と、第1通信装置110から受信したデータをプロトコル変換して下流の通信装置へ転送する第2転送状態と、に切替え可能にする。
第2読出部122は、第2転送部121が第2転送状態である場合に、第2転送部121によって転送されるデータに含まれる転送されるデータの識別情報を読み出す。第2読出部122は、第2転送状態におけるプロトコルの変換時に検出される識別情報を読み出す。例えば、第2読出部122は、第2転送状態におけるプロトコルの変換時に、データのヘッダ情報に格納されるシーケンス番号をスヌープする(覗き見る)ことによって読み出す。
第2制御部123は、第2読出部122によって読み出された識別情報が所定の識別情報である場合に、第2転送部121を第2転送状態から第1転送状態に切替える。第1制御部113による転送状態の切替え用の所定の識別情報と、第2制御部123による転送状態の切替え用の所定の識別情報とは、同じ識別情報である。すなわち、第1制御部113および第2制御部123は、それぞれ同じ所定の識別情報を読み出した場合に、転送状態の切替えを同時に行う。具体的には、第1制御部113は、所定の識別情報を読み出した場合に第1転送部111を第1転送状態から第2転送状態に切替え、第2制御部123は、所定の識別情報を読み出した場合に第2転送部121を第2転送状態から第1転送状態に切替える。
このように、本実施の形態では、接続する通信装置間(第1通信装置110および第2通信装置120間)で同じタイミングで転送状態を切替えるため、通信を切断することなく、高速プロトコルの終端位置を動的に変更することができる。
また、第2制御部123は、第2読出部122によって読み出された識別情報が所定の識別情報である場合に、所定の識別情報を含むデータを受信した旨を示す制御信号を第1通信装置110へ送信する。制御信号は、例えば同期レディメッセージや、切替えOKメッセージなど、転送状態の切替え準備ができた旨を示す信号である。具体的には、第2制御部123は、識別情報が所定の識別情報である場合に、制御信号を第1通信装置110へ送信するとともに、第2転送部121をプロキシモードからスヌープモードに切替える。スヌープモードに切替わると、第2転送部121は、プロトコルの変換を行わずに、下流の通信装置にデータを転送する。
第1制御部113は、第1読出部112によって読み出された識別情報が所定の識別情報である場合に、第1転送部111にデータの転送を中断させる。第1制御部113は、第2通信装置120から制御信号を受信した場合に、第1転送部111を第1転送状態から第2転送状態に切替えてデータの転送を再開させる。第1制御部113は、所定の識別情報を読み出した場合であっても、第2通信装置120から制御信号を受信するまでは、第1転送部111を第1転送状態から第2転送状態に切替えず、また、データの転送を再開させない。
具体的には、第1制御部113は、識別情報が所定の識別情報である場合に、第1転送部111にデータの転送を一旦中断させる。そして、第1制御部113は、第2転送部121の転送状態の切替えの準備が整った後に、スヌープモードからプロキシモードに切替える。プロキシモードに切替わると、第1転送部111は、プロトコル変換したデータを第2通信装置120へ転送する。これにより、高速プロトコルの終端位置の動的な変更時に、データの不整合を抑えることができる。
また、第2制御部123は、第1通信装置110から転送されたデータのうちの受信しなかった損失データがある場合には、第1通信装置110へ損失データの再送を要求する。損失データは、例えば、第2通信装置120が廃棄したデータや受信できなかったデータである。第2制御部123は、例えば、シーケンス番号に基づいて、損失データの有無を検出する。損失データを検出した場合、第2制御部123は、第1通信装置110へ損失データの再送を要求する。
第1制御部113は、第2通信装置120から損失データの再送の要求があった場合、損失データを第2通信装置120へ再送する。第2制御部123は、識別情報が所定の識別情報である場合であっても、第1通信装置110から損失データを受信しない場合には、第1通信装置110への制御信号の送信および第2転送部121の転送状態の切替えを行わない。
また、第1制御部113は、識別情報が所定の識別情報である場合であっても、第2通信装置120への損失データの再送要求がある場合には、損失データの再送後に、第1転送部111の転送状態の切替えを行う。これにより、転送状態の切替え前にデータに損失がある場合であっても、第1通信装置110は、最初の送信時と同じプロトコルで損失データを再送することができる。また、第2通信装置120は、損失データの発生時と同じプロトコルで損失データを受信することができる。このように、損失データを補填することができ、転送状態の切替えの前後でデータを整合させることができる。
また、所定の識別情報は、第1通信装置110から送信されたデータが第2通信装置120によって受信されるまでの時間に基づいて決定された識別情報である。第1通信装置110から送信されたデータが第2通信装置120によって受信されるまでの時間とは、例えば、送信タイミングと受信タイミングとの差を示す遅延時間である。例えば、遅延時間が大きい場合ほど、待ち合せ用のシーケンス番号も大きくする。これにより、第1通信装置110および第2通信装置120間の遅延時間に基づく所定の識別情報とすることができ、転送状態の切替え時における同期のズレを抑えることができる。
制御装置130は、所定の識別情報を決定し、決定した所定の識別情報を第1制御部113および第2制御部123へ出力する。具体的には、制御装置130は、第1通信装置110から送信されたデータが第2通信装置120によって受信されるまでの時間に基づいて、所定の識別情報を決定する。制御装置130は、第1通信装置110に含まれていてもよいし、第2通信装置120に含まれていてもよいし、外部の装置に含まれていてもよい。
また、制御装置130は、第1通信装置110と第2通信装置120との通信を確立する前に、第1通信装置110と第2通信装置120との間の通信品質に基づいて、第1転送部111の転送状態と第2転送部121の転送状態とを設定する。制御装置130は、第1転送部111の転送状態と第2転送部121の転送状態とを、互いに異なる転送状態にする。制御装置130は、例えば、第1通信装置110および第2通信装置120を含む複数の通信装置の位置関係や各通信装置間の通信品質を検出する。制御装置130は、この検出結果に基づいて、高速プロトコルの終端位置となる第1通信装置110および第2通信装置120を決定し、それぞれ転送状態を設定する。これにより、複数の通信装置の位置関係や各通信装置間の通信品質を考慮した最適な高速プロトコルの終端位置で通信を開始させることができる。
制御装置130は、第1通信装置110と第2通信装置120との間の通信品質に基づいて、第1転送部111および第2転送部121の転送状態の変更を決定する。例えば、第1通信装置110と第2通信装置120との間がTCPによる通信が行われている場合、無線回線が空いてくると多くの帯域を利用できるため、制御装置130は、高速プロトコルによる通信を行うよう転送状態の変更を決定する。第1通信装置110および第2通信装置120は、制御装置130によって転送状態の変更が決定され且つ識別情報が所定の識別情報である場合に、それぞれ転送状態を切替える。これにより、第1通信装置110と第2通信装置120との間の通信品質に応じて、最適な高速プロトコルの終端位置を動的に変更することができる。
次に、上流側の第1通信装置110がプロトコルの変換を行う第2転送状態にあり、下流側の第2通信装置120がプロトコルの変換を行わない第2転送状態にあることとし、それぞれ転送状態を切替える場合について説明する。
第1読出部112は、第1転送部111が第2転送状態である場合に、第1転送部111によって転送されるデータに含まれる転送されるデータの識別情報を読み出す。第1読出部112は、第2転送状態におけるプロトコルの変換時に検出される識別情報を読み出す。例えば、第1読出部112は、第2転送状態におけるプロトコルの変換時に、データのヘッダ情報に格納されるシーケンス番号をスヌープ(覗き見る)することによって読み出す。
第1制御部113は、第1読出部112によって読み出された識別情報が所定の識別情報である場合に、第1転送部111を第2転送状態から第1転送状態に切替える。具体的には、第1制御部113は、所定のシーケンス番号が読み出されると、スヌープモードに切替える。
第2読出部122は、第2転送部121が第1転送状態である場合に、第2転送部121によって転送されるデータに含まれる転送されるデータの識別情報を読み出す。第2読出部122は、データのヘッダ情報に格納されるシーケンス番号をスヌープ(覗き見る)することによって読み出す。第2制御部123は、第2読出部122によって読み出された識別情報が所定の識別情報である場合に、第2転送部121を第1転送状態から第2転送状態に切替える。具体的には、第2制御部123は、所定のシーケンス番号がスヌープされると、プロキシモードに切替える。
また、第2制御部123は、第2読出部122によって読み出された識別情報が所定の識別情報である場合に、所定の識別情報を含むデータを受信した旨を示す制御信号を第1通信装置110へ送信する。また、第2制御部123は、第2読出部122によって読み出された識別情報が所定の識別情報である場合に、制御信号の送信のほかにも、第2転送部121を第1転送状態から第2転送状態に切替える。
第1制御部113は、第1読出部112によって読み出された識別情報が所定の識別情報である場合に、データの転送を中断する。また、第1制御部113は、第2通信装置120から制御信号を受信することによって第2転送部121を第2転送状態から第1転送状態に切替えてデータの転送を再開させる。第1制御部113は、第2通信装置120から制御信号を受信するまでは、第2転送部121の第2転送状態から第1転送状態への切替えやデータの転送の再開を行わない。
(通信システムの一例)
図2は、通信システムの一例を示す説明図である。図2に示すように、通信システム100は、WAN(Wide Area Network)によって通信接続可能なWAN高速化装置(WO:WAN Optimizer)201a,201b,201cと、無線端末装置202と、サーバ203と、を有している。第1WAN高速化装置201aは、信頼性の高いプロトコルTCPによって無線端末装置202と無線通信する。
WAN高速化装置201a,201b,201cは、図1に示した第1通信装置110および第2通信装置120によって実現される。具体的には、各々通信を行う装置間の関係(第1WAN高速化装置201aと第2WAN高速化装置201bとの関係または第2WAN高速化装置201bと第3WAN高速化装置201cとの関係)が第1通信装置110と第2通信装置120との関係に相当する。
第1WAN高速化装置201aは、無線端末装置202とのTCPのセッションを終端し、高速プロトコル(例えばUDP:User Datagram Protocol)に置換して、第2WAN高速化装置201bと有線通信する。本実施の形態では、高速プロトコルとして、UDPベースのプロトコルであるUNAP(Universal Network Acceleration Protocol)を用いている。
UNAPは、パケットのヘッダ情報にシーケンス番号が付加される。UNAPでは、パケットが送達されないときに、その原因がパケットロスであるのかパケットの遅延であるのかを判断することができる。そのため、パケットロス時にはロスしたパケットのみを再送することができ、不要なパケットが再送されることによる伝送遅延を抑え、スループットを向上させることができる。
高速プロトコルとしては、UNAPのほかにも、RPS(Random Parity Stream)を用いることも可能である。RPSは、送信側において所定のアルゴリズムを用いて符号化した冗長データを送信パケットに付加して送信し、受信側において冗長データを復号し、パケット消失の有無や順序をチェックすることができる方式である。チェックにおいて誤りが検出されれば、データの再送なしに自動復元が行われる。そのため、RPSは、回線品質の悪いエリアにおいても、転送スピードの低下を抑えつつ、UDPの信頼性を高めることができる。
第1WAN高速化装置201a、第2WAN高速化装置201bおよび第3WAN高速化装置201cは、例えば、高速プロトコルにより、それぞれ有線通信する。具体的には、第1WAN高速化装置201a、第2WAN高速化装置201bおよび第3WAN高速化装置201cは、フルメッシュの高速プロトコルのパスにより通信する。第3WAN高速化装置201cは、信頼性のTCPによってサーバ203と無線通信する。第3WAN高速化装置201cは、サーバ203とのTCPのセッションを終端し、UDPに置換して、第2WAN高速化装置201bと有線通信する。
無線端末装置202は、PC(Personal Computer)、ノートPC、スマートフォン、タブレット端末、携帯電話などのユーザが使用するコンピュータ装置である。サーバ203は、例えば海外のクラウドデータセンタのサーバである。クラウドデータセンタは、例えば海外や地理的に遠方にある。そのため、往復遅延時間(RTT:Round Trip Time)は大きくなる傾向にある。RTTが大きい回線においてTCP通信を行う場合に、一度パケットの廃棄が発生すると大きく性能が低下し、スループットが出にくくなるという問題がある。
このような問題に対し、WANの両端にWAN高速化装置201(第1WAN高速化装置201aおよび第3WAN高速化装置201c)を配置することにより、エンドデバイス間の平均スループットを改善することができる。第1WAN高速化装置201aおよび第3WAN高速化装置201cは、無線端末装置202またはサーバ203のTCPセッションを一旦終端し、TCPを高速プロトコルに置換し、接続される他のWAN高速化装置201と通信する。
また、無線端末装置202またはサーバ203と接続される第1WAN高速化装置201aおよび第3WAN高速化装置201cは、高速プロトコルをTCPに置換して、無線端末装置202またはサーバ203と通信する。これにより、エンドデバイスのTCP輻輳制御をWAN高速化装置201の輻輳制御に置き換えることが可能となり、パケットの廃棄が発生した場合でも、スループットを下げずに再送を行うことができ、スループットを改善することができる。
以下の説明において、第1WAN高速化装置201a、第2WAN高速化装置201bおよび第3WAN高速化装置201cについて、説明上、特に区別する必要がない場合には、単にWAN高速化装置201と称して説明する。また、図面においては、適宜、第1WAN高速化装置201aを「WO♯1」と記載し、第2WAN高速化装置201bを「WO♯2」と記載し、第3WAN高速化装置201cを「WO♯3」と記載する。
(通信システムの具体的構成の一例)
図3は、通信システムの具体的構成の一例を示す説明図である。図3の(1)に示すように、通信システム100は、複数の無線端末装置202と、サーバ203と、基地局301と、を有する。複数の無線端末装置202は、それぞれ、第1WAN高速化装置201aを有する。基地局301は、第2WAN高速化装置201bを有する。サーバ203は、第3WAN高速化装置201cと無線通信される。
第2WAN高速化装置201bおよび第3WAN高速化装置201cは、ADSL(Asymmetric Digital Subscriber Line)モデム302およびアクセスプロバイダ303を介して国際回線により高速プロトコルにより通信する。第1WAN高速化装置201aと無線端末装置202とは、TCPによって無線通信する。第3WAN高速化装置201cとサーバ203とは、TCPによって無線通信する。
また、図3の(2)に示すように、第1WAN高速化装置201aおよび第2WAN高速化装置201bは、TCPによる無線通信または高速プロトコルによる無線通信が切替え可能になっている。例えば、無線通信は通信品質が変わりやすいため、無線回線が混雑すると、通信システム100は、第1WAN高速化装置201aと第2WAN高速化装置201bとの間において、TCPによる通信を行う。また、無線回線が空いてくると多くの帯域を利用できるため、通信システム100は、第1WAN高速化装置201aと第2WAN高速化装置201bとの間において高速プロトコルによる通信を行う。高速プロトコルとTCPの切替の詳細については後述する。
なお、通信システム100は、第2WAN高速化装置201bと第3WAN高速化装置201cとの間においては、TCPまたは高速プロトコルの切替えを行わずに、常時高速プロトコルによる通信が行われるものとする。ただし、これに限らず、第2WAN高速化装置201bと第3WAN高速化装置201cとの間においても、TCPまたは高速プロトコルの切替えを可能とする構成としてもよい。
(基地局の構成例)
図4は、基地局の構成例を示す説明図である。図4に示すように、基地局301は、第2WAN高速化装置201bと、有線I/F401と、有線送受信部402と、無線送受信部409と、無線I/F410と、を有する。第2WAN高速化装置201bは、受信したデータのプロトコルを変換してデータを中継するプロキシモード、または、受信したデータのプロトコルを変換せずにデータを中継するスヌープモード、のいずれか一方のモードをとり得る。
第2WAN高速化装置201bは、第1論理アドレス吸上げ判定部403と、高速プロトコル処理部404と、中継処理部405と、プロキシ処理部406と、TCP処理部407と、第2論理アドレス吸上げ判定部408と、制御部450と、初期品質計測部460と、を有する。
まず、有線I/F401に入力された信号が各機能部を経由して無線I/F410へ出力される際の流れに基づいて、各機能部について説明する。有線I/F401は、有線ネットワークからの電気信号または光信号を有線送受信部402へ出力する。有線送受信部402は、有線I/F401から出力された信号に含まれる有線ネットワークのフレームをIPパケット(IP:Internet Protocol)に変換し、第1論理アドレス吸上げ判定部403へ出力する。第1論理アドレス吸上げ判定部403は、有線送受信部402から出力されたパケットを自局宛パケットとして処理するのか転送処理するのかを判定し、判定結果に基づいて、パケットを高速プロトコル処理部404または中継処理部405へ出力する。自局宛パケットとしての処理は、プロキシモード中に行うプロトコルの変換処理である。転送処理は、スヌープモード中に行うスヌープする(覗き見る)処理である。
第1論理アドレス吸上げ判定部403は、自局宛パケットとして処理すると判定した場合、有線送受信部402から出力されたパケットを高速プロトコル処理部404へ出力する。高速プロトコル処理部404は、第1論理アドレス吸上げ判定部403によって自局宛と判断されたパケットに対する高速プロトコル処理を行って、高速プロトコルを終端させたデータをプロキシ処理部406へ出力する。また、高速プロトコル処理部404は、高速プロトコル処理を行ったパケットのヘッダ情報を検査し、プロトコルの通信状態を第1管理テーブル431に記憶させる。高速プロトコルであるUNAPのヘッダ情報には、シーケンス番号が含まれる。
プロキシ処理部406は、高速プロトコル処理部404から出力されたデータをTCP処理部407へ出力する。TCP処理部407は、プロキシ処理部406から出力されたデータをTCPパケットに分割して無線送受信部409へ出力する。また、TCP処理部407は、無線送受信部409へ出力するパケットのヘッダ情報を検査し、プロトコルの通信状態を第2管理テーブル432に記憶させる。TCPのヘッダ情報には、例えばシーケンス番号が含まれる。
また、第1論理アドレス吸上げ判定部403は、パケットを転送処理すると判定した場合、有線送受信部402から出力されたパケットを中継処理部405へ出力する。中継処理部405は、第1論理アドレス吸上げ判定部403から出力されたパケットを中継ルールにしたがって無線送受信部409へ転送する。
無線送受信部409は、TCP処理部407または中継処理部405から出力されたパケットを無線フレームに変換し、変換した無線信号を無線I/F410へ出力する。無線I/F410は、無線送受信部409から出力された無線信号を、ネットワークを介して外部の装置に出力する。
ここで、中継処理部405は、第1スヌープ部421を有する。第1スヌープ部421は、スヌープモード中に、第1論理アドレス吸上げ判定部403または第2論理アドレス吸上げ判定部408から出力された高速プロトコル(UNAP)のパケットが中継される際にパケットのヘッダ情報をスヌープする。第1スヌープ部421は、スヌープしたヘッダ情報が示すプロトコルの通信状態を第1管理テーブル431に記憶させる。
また、第1スヌープ部421は、スヌープモードからプロキシモードへの移行に際して、下流のWAN高速化装置201とのデータの待ち合せを行うための所定のシーケンス番号に達したか否かの番号判定を行う。番号判定において所定のシーケンス番号に達したと判定した場合に、第1スヌープ部421は、無線送受信部409および制御部450に対して、所定のシーケンス番号のデータを受信した旨を示す情報(制御信号)を出力する。無線送受信部409は、第1スヌープ部421から出力された情報を無線フレームに変換した無線信号を無線I/F410へ出力する。
自装置よりも上流側にWAN高速化装置201が存在し、上流側の装置との間でスヌープモードとプロキシモードとの切替えを行う構成とした場合には、図4に示すように、高速プロトコル処理部404が第1品質計測部441を有する構成としてもよい。この場合、第1品質計測部441は、上流側の装置との間におけるプロキシモードにおいて、通信相手のWAN高速化装置201との間の廃棄率、往復遅延時間、帯域幅などを測定する。具体的には、第1品質計測部441は、上流側の装置との間におけるプロキシモードにおいて、高速プロトコルの再送状況から、廃棄率、往復遅延時間、帯域幅などを測定する。第1品質計測部441は、測定結果を制御部450へ出力する。これにより、上流側の装置との間で、プロキシモードからスヌープモードへの切替えを行うことができる。
次に、無線I/F410に入力された信号が各機能部を経由して有線I/F401へ出力される際の流れに基づいて、各機能部について説明する。無線I/F410は、無線ネットワークからの無線信号を無線送受信部409に出力する。無線送受信部409は、無線I/F410から出力された無線信号の無線フレームをIPパケットに変換し、第2論理アドレス吸上げ判定部408へ出力する。第2論理アドレス吸上げ判定部408は、無線送受信部409から受信したパケットを自局宛パケットとして処理するのか転送処理するのかを判定し、判定結果に基づいて、パケットをTCP処理部407または中継処理部405に出力する。
第2論理アドレス吸上げ判定部408は、自局宛パケットとして処理すると判定した場合、無線送受信部409から出力されたパケットをTCP処理部407へ出力する。TCP処理部407は、第2論理アドレス吸上げ判定部408によって自局宛と判断されたパケットに対するTCP処理を行って、TCPを終端させたデータをプロキシ処理部406へ出力する。また、TCP処理部407は、TCP処理を行ったパケットのヘッダ情報が示すプロトコルの通信状態を第2管理テーブル432に記憶させる。
プロキシ処理部406は、TCP処理部407から出力されたデータを高速プロトコル処理部404へ出力する。高速プロトコル処理部404は、プロキシ処理部406から出力されたデータを高速プロトコルパケットに分割して有線送受信部402へ出力する。高速プロトコル処理部404は、有線送受信部402へ出力するパケットのヘッダ情報が示すプロトコルの通信状態を第1管理テーブル431に記憶させる。
また、第2論理アドレス吸上げ判定部408は、パケットを転送処理すると判定した場合、無線送受信部409から出力されたパケットを中継処理部405へ出力する。中継処理部405は、第2論理アドレス吸上げ判定部408から出力されたパケットを中継ルールにしたがって有線送受信部402へ転送する。
有線送受信部402は、高速プロトコル処理部404または中継処理部405から出力されたパケットをフレームに変換した電気信号または光信号を有線I/F401へ出力する。有線I/F401は、有線送受信部402から出力された電気信号または光信号を、ネットワークを介して外部の装置に出力する。
自装置よりも上流側にWAN高速化装置201が存在し、上流側の装置との間でスヌープモードとプロキシモードとの切替えを行う構成とした場合には、図4に示すように中継処理部405が第2スヌープ部422を有する構成としてもよい。第2スヌープ部422は、スヌープモード中に、第1論理アドレス吸上げ判定部403または第2論理アドレス吸上げ判定部408から出力されたTCPのパケットを中継する際にパケットのヘッダ情報をスヌープする。そして、第2スヌープ部422は、スヌープしたヘッダ情報が示すプロトコルの通信状態を第2管理テーブル432に記録させる。
また、第2スヌープ部422は、スヌープモードからプロキシモードへの移行に際して、上流のWAN高速化装置201とのデータの待ち合せを行うための所定のシーケンス番号に達したか否かの番号判定を行う。番号判定において所定のシーケンス番号に達したと判定した場合に、第2スヌープ部422は、有線送受信部402および制御部450に対して、所定のシーケンス番号のデータを受信した旨を示す情報(制御信号)を出力する。有線送受信部402は、第2スヌープ部422から出力された情報を有線フレームに変換した信号を有線I/F401へ出力する。これにより、上流側の装置との間で、スヌープモードからプロキシモードへの切替えを行うことができる。
また、TCP処理部407は、第2品質計測部442を有する。第2品質計測部442は、通信相手のWAN高速化装置201との間の廃棄率や往復遅延時間、帯域幅を測定する。第2品質計測部442は、例えば、プロキシモードにおいて、TCPの再送状況から、廃棄率、往復遅延時間、帯域幅などを測定する。第2品質計測部442は、測定結果を制御部450へ出力する。
また、中継処理部405は、ビーコン処理部423を有する。ビーコン処理部423は、中継するSYN(Synchronize)パケット、またはSYN/ACKパケットに、ビーコン情報を付加する。ビーコン処理部423は、例えばTCPオプションヘッダ(図30A参照)にビーコン情報を格納する。また、ビーコン処理部423は、TCPオプションヘッダに格納されているビーコン情報を参照して、通信パス上に存在する第1WAN高速化装置201a、第2WAN高速化装置201bおよび第3WAN高速化装置201cの位置関係を検出する。
また、制御部450は、プロトコル終端点の切替えの候補となる他のWAN高速化装置と制御情報を交換し、自局の通信モードをプロキシモードからスヌープモードへ、または、スヌープモードからプロキシモードへ切替える。例えば、制御部450は、図4に示す第1WAN高速化装置201aの第1スヌープ部421または第2スヌープ部422によって所定のシーケンス番号のデータを受信した旨を示す情報(制御信号)を受信すると、モードの切替えを行う。また、制御部450は、第1品質計測部441、第2品質計測部442または初期品質計測部460の計測結果に基づいて、装置間品質テーブル461に、各WAN高速化装置201の位置関係を登録するとともに、計測結果を登録する。
また、制御部450は、例えば、モードの切替え時において、プロキシ処理部406や中継処理部405へパケットの転送処理の中断を指示する。プロキシ処理部406および中継処理部405は、制御部450による転送処理の中断の指示によって、パケットの転送処理を一旦中断させる。また、制御部450は、プロキシ処理部406および中継処理部405に対してパケットの転送処理を再開させる制御を行う。
初期品質計測部460は、WAN高速化装置201間に、通信開始時など高速プロトコルによるパスが確立されていない場合に、WAN高速化装置201間の品質(廃棄率や往復遅延時間、帯域幅)を計測する。また、制御部450は、初期品質計測部460の計測結果に基づいて、装置間品質テーブル461に、複数のWAN高速化装置201の位置関係を登録するとともに、各WAN高速化装置201間の廃棄率や往復遅延時間などの品質を登録する。
(無線端末装置の構成例)
図5は、無線端末装置の構成例を示す説明図である。図5の説明においては、図4において説明した基地局301と同様の機能部については同様の符号を付し、説明を省略する。図5において、無線端末装置202は、第1WAN高速化装置201aを有する。第1WAN高速化装置201aは、受信したデータのプロトコルを変換してデータを中継するプロキシモード、または、受信したデータのプロトコルを変換せずにデータを中継するスヌープモード、のいずれか一方のモードをとり得る。
例えば、第1WAN高速化装置201aは、無線端末装置202などのコンピュータ装置において、WAN高速化装置201の機能を得ることができる所定のソフトウェアを動作させることにより実現することが可能である。無線端末装置202は、例えば、サーバ上で所定のソフトウェアを動作させたり、自身にインストールされた所定のソフトウェアを動作させたりすることにより、WAN高速化装置201の機能を得ることができる。
無線端末装置202は、通信アプリ501と、TCP処理部502と、ローカルループバックI/F503と、を有する。また、無線端末装置202は、基地局301が有する機能部のうち(図4参照)、例えば、有線I/F401と、第1スヌープ部421と、第2品質計測部442と、を有していない。
通信アプリ501は、無線端末装置202上でネットワークを介して通信を行いながら直接ユーザにサービスを提供する機能部である。TCP処理部502は、データをTCPパケットに分割して有線送受信部402へ出力する。有線送受信部402は、TCP処理部502から出力されたパケットをローカルループバックI/F503へ出力する。
ローカルループバックI/F503は、有線送受信部402によって送信処理が行われた結果、送信されたパケットを折り返して、有線送受信部402へ出力する。有線送受信部402は、ローカルループバックI/F503から出力されたパケットを第2論理アドレス吸上げ判定部408へ出力する。
第2論理アドレス吸上げ判定部408は、有線送受信部402から受信したパケットを自局宛パケットとして処理するのか転送処理するのかを判定し、判定結果に基づいて、パケットをTCP処理部407または中継処理部405に出力する。第2論理アドレス吸上げ判定部408は、自局宛パケットとして処理すると判定した場合、有線送受信部402から出力されたパケットをTCP処理部407へ出力する。また、第2論理アドレス吸上げ判定部408は、パケットを転送すると判定した場合、有線送受信部402から出力されたパケットを中継処理部405へ出力する。
また、無線送受信部409は、無線I/F410から出力された無線信号の無線フレームをIPパケットに変換し、第1論理アドレス吸上げ判定部403へ出力する。第1論理アドレス吸上げ判定部403は、無線送受信部409から受信したパケットを自局宛パケットとして処理するのか転送処理するのかを判定し、判定結果に基づいて、パケットを高速プロトコル処理部404または中継処理部405に出力する。
第1論理アドレス吸上げ判定部403は、自局宛パケットとして処理すると判定した場合、無線送受信部409から出力されたパケットを高速プロトコル処理部404へ出力する。また、第1論理アドレス吸上げ判定部403は、パケットを転送すると判定した場合、無線送受信部409から出力されたパケットを中継処理部405へ出力する。
(WAN高速化装置、無線端末装置およびサーバ等のコンピュータ装置のハードウェア構成の一例)
図6は、コンピュータ装置のハードウェア構成の一例を示す図である。図6に示すように、WAN高速化装置201、無線端末装置202およびサーバ203等のコンピュータ装置600は、CPU(Central Processing Unit)601と、メモリ602と、ユーザインタフェース603と、通信インタフェース604と、を備えている。CPU601、メモリ602、ユーザインタフェース603および通信インタフェース604は、バス609によって接続されている。
CPU601は、コンピュータ装置600の全体の制御を司る。メモリ602には、例えばメインメモリおよび補助メモリが含まれる。メインメモリは、例えばRAM(Random Access Memory)である。メインメモリは、CPU601のワークエリアとして使用される。補助メモリは、例えば磁気ディスク、光ディスク、フラッシュメモリなどの不揮発メモリである。補助メモリには、コンピュータ装置600を動作させる各種のプログラムが記憶されている。補助メモリに記憶されたプログラムは、メインメモリにロードされてCPU601によって実行される。
ユーザインタフェース603は、例えば、ユーザからの操作入力を受け付ける入力デバイスや、ユーザへ情報を出力する出力デバイスなどを含む。入力デバイスは、例えば、タッチパネルやキー(例えばキーボード)やリモコンなどによって実現することができる。出力デバイスは、例えば、タッチパネルやディスプレイやスピーカなどによって実現することができる。ユーザインタフェース603は、CPU601によって制御される。
通信インタフェース604は、例えば、無線や有線によってコンピュータ装置600の外部装置との間で通信を行う通信インタフェースである。通信インタフェース604は、CPU601によって制御される。
図1に示した、第1転送部111と、第1読出部112と、第1制御部113とは、メモリ602に記憶されたプログラムをCPU601に実行させることにより、または、通信インタフェース604により、その機能を実現する。図1に示した、第2転送部121と、第2読出部122と、第2制御部123とは、メモリ602に記憶されたプログラムをCPU601に実行させることにより、または、通信インタフェース604により、その機能を実現する。
また、図4または図5に示した、有線I/F401と、無線I/F410と、ローカルループバックI/F503とは、通信インタフェース604によって実現される。また、有線送受信部402と、第1論理アドレス吸上げ判定部403と、高速プロトコル処理部404と、中継処理部405と、プロキシ処理部406と、TCP処理部407と、第2論理アドレス吸上げ判定部408と、無線送受信部409と、通信アプリ501と、TCP処理部502とは、メモリ602に記憶されたプログラムをCPU601に実行させることにより、その機能を実現する。また、図5に示した、第1管理テーブル431と、第2管理テーブル432と、装置間品質テーブル461とは、メモリ602によって実現される。
(位置判定を行う際のデータの送受の一例)
第1WAN高速化装置201a、第2WAN高速化装置201bおよび第3WAN高速化装置201cは、それぞれ、通信経路上にある他のWAN高速化装置201の位置を判定する。図7Aおよび図7Bを用いて、位置判定を行う際の手順を説明する。
図7Aは、位置判定を行う際のデータの送受の一例を示すシーケンス図(その1)である。図7Bは、位置判定を行う際のデータの送受の一例を示すシーケンス図(その2)である。まず、無線端末装置202は、TCP通信を行うにあたり接続先に対しTCPセッションの接続手続きである3wayハンドシェークを開始するため、TCPのSYNパケットを第1WAN高速化装置201aへ送信する(ステップS701)。
なお、本実施の形態では、第1WAN高速化装置201aは無線端末装置202に含まれるが、説明の便宜上、無線端末装置202と第1WAN高速化装置201aとを適宜別々の装置として説明する。具体的には、無線端末装置202のうちWAN高速化装置201の機能を行う主体については第1WAN高速化装置201aとし、無線端末装置202のうちWAN高速化装置201以外の機能を行う主体については無線端末装置202とする。
第1WAN高速化装置201aは、無線端末装置202から受信したSYNパケットにビーコン情報が付加されていない旨を示す受信情報(図8A参照)を記憶する。ビーコン情報は、詳細について後述するが、例えばTCPオプションヘッダに記憶される。第1WAN高速化装置201aは、無線端末装置202から受信したSYNパケットに、第1WAN高速化装置201aを示すビーコン情報を付加し、第2WAN高速化装置201bへ送信する(ステップS702)。
第2WAN高速化装置201bは、第1WAN高速化装置201aから受信したSYNパケットに付加されている第1WAN高速化装置201aを示すビーコン情報を検出し、受信情報として記憶する。さらに、第2WAN高速化装置201bは、SYNパケットに自装置を示すビーコン情報を付加し、第3WAN高速化装置201cへ送信する(ステップS703)。第3WAN高速化装置201cは、第2WAN高速化装置201bから受信したSYNパケットに付加されているビーコン情報を検出し、受信情報として記憶する。さらに、第3WAN高速化装置201cは、SYNパケットに自装置を示すビーコン情報を付加し、サーバ203へ送信する(ステップS704)。
サーバ203は、第3WAN高速化装置201cからのSYNパケットに付加されたビーコン情報を認識できないためビーコン情報を破棄する。そして、サーバ203は、3wayハンドシェークの手順としてSYN/ACKパケットを第3WAN高速化装置201cへ送信する(ステップS705)。
第3WAN高速化装置201cは、サーバ203から受信したSYN/ACKパケットにビーコン情報が付加されていない旨を示す受信情報を記憶する。さらに、第3WAN高速化装置201cは、サーバ203から受信したSYN/ACKパケットに自装置を示すビーコン情報を付加し、第2WAN高速化装置201bへ送信する(ステップS706)。
第2WAN高速化装置201bは、第3WAN高速化装置201cから受信したSYN/ACKパケットに付加されているビーコン情報を検出し、受信情報として記憶する。さらに、第2WAN高速化装置201bは、SYN/ACKパケットに自装置を示すビーコン情報を付加し、第1WAN高速化装置201aへ送信する(ステップS707)。第1WAN高速化装置201aは、第2WAN高速化装置201bから受信したSYN/ACKパケットに付加されているビーコン情報を検出し、受信情報として記憶する。さらに、第1WAN高速化装置201aは、SYN/ACKパケットに自装置を示すビーコン情報を付加し、無線端末装置202へ送信する(ステップS708)。
無線端末装置202は、第1WAN高速化装置201aからのSYN/ACKパケットに付加されたビーコン情報を認識できないためビーコン情報を破棄する。そして、無線端末装置202は、3wayハンドシェークの手順としてコネクションを確立する(ステップS709)。さらに、無線端末装置202は、SYN/ACKパケットに対するACKを送信する(ステップS710)。
第1WAN高速化装置201aは、無線端末装置202からACKを受信すると、受信したACKを第2WAN高速化装置201bへ送信する(ステップS711)。第2WAN高速化装置201bは、第1WAN高速化装置201aからACKを受信すると、受信したACKを第3WAN高速化装置201cへ送信する(ステップS712)。第3WAN高速化装置201cは、第2WAN高速化装置201bからACKを受信すると、受信したACKをサーバ203へ送信する(ステップS713)。サーバ203は、第3WAN高速化装置201cからACKを受信するとコネクションを確立させる(ステップS714)。
次に、第1WAN高速化装置201a、第2WAN高速化装置201bおよび第3WAN高速化装置201cは、それぞれ位置判定を行う(ステップS715、ステップS716、ステップS717)。位置判定を行うに際しては、上述した処理によって各WAN高速化装置201が記憶した受信情報を用いて、図8Aに示す位置判定方法が用いられる。
(位置判定方法の一例)
図8Aは、位置判定方法の一例を示す説明図である。図8Aにおいて、受信情報801,802,803は、信号種別とビーコン情報とを有する。受信情報801,802,803において、位置判定結果は、信号種別とビーコン情報とから得られる他の装置と自装置との位置関係を示す。
受信情報801,802,803に示す「SYN」は、SYNパケットに付加されたビーコン情報に対応するWAN高速化装置201の存在状況を示している。具体的には、受信情報801,802,803において「SYN」は、受信したビーコン情報が示すWAN高速化装置201が下流に位置することを示している。WAN高速化装置201は、SYNパケットに付加されたビーコン情報およびビーコン情報が付加されている順番により、下流方向のWAN高速化装置201の存在状況を判定できる。また、WAN高速化装置201は、SYNパケットにビーコン情報が付加されていない場合には自身が最下流であると判定できる。第1WAN高速化装置201aを、本通信セッションにおける最適プロトコルとそのプロトコルの最適な適用区間とを管理する代表装置とする。言い換えれば、第1WAN高速化装置201aは、図1に示した制御装置130の機能を有する。
また、受信情報801,802,803に示す「SYN/ACK」は、SYN/ACKパケットに付加されたビーコン情報に対応するWAN高速化装置201の存在状況を示している。具体的には、受信情報801,802,803において「SYN/ACK」は、受信したビーコン情報が示すWAN高速化装置201が上流に位置することを示している。WAN高速化装置201は、SYN/ACKパケットに付加されたビーコン情報およびビーコン情報が付加されている順番により、上流方向のWAN高速化装置201の存在状況を判定できる。また、WAN高速化装置201は、SYN/ACKパケットにビーコン情報が付加されていない場合には自身が最上流であると判定できる。
具体的に説明すると、図8Aの(1)は、第1WAN高速化装置201aの受信情報801を示している。受信情報801に示すように、第1WAN高速化装置201aの場合、SYNパケットにはビーコン情報が付加されていない。また、第1WAN高速化装置201aの場合、SYN/ACKパケットには第2WAN高速化装置201bおよび第3WAN高速化装置201cに対応するビーコン情報が付加されている。このため、第1WAN高速化装置201aは、自装置が最下流に位置し、1つ上流に第2WAN高速化装置201bが位置し、2つ上流に第3WAN高速化装置201cが位置していると判定できる。
図8Aの(2)は、第2WAN高速化装置201bの受信情報802を示している。受信情報802に示すように、第2WAN高速化装置201bの場合、SYNパケットには第1WAN高速化装置201aに対応するビーコン情報が付加されている。また、第2WAN高速化装置201bの場合、SYN/ACKパケットには第3WAN高速化装置201cに対応するビーコン情報が付加されている。このため、第2WAN高速化装置201bは、1つ下流に第1WAN高速化装置201aが位置し、1つ上流に第3WAN高速化装置201cが位置していると判定することができる。
図8Aの(3)は、第3WAN高速化装置201cの受信情報803を示している。受信情報803に示すように、第3WAN高速化装置201cの場合、SYNパケットには第1WAN高速化装置201aおよび第2WAN高速化装置201bに対応するビーコン情報が付加されている。また、第3WAN高速化装置201cの場合、SYN/ACKパケットにはビーコン情報が付加されていない。このため、第3WAN高速化装置201cは、自装置が最上流に位置し、1つ下流に第2WAN高速化装置201bが位置し、2つ下流に第1WAN高速化装置201aが位置していると判定することができる。
(装置間品質テーブルの登録内容の一例)
図8Bは、装置間品質テーブルの登録内容の一例を示す説明図である。図8Bに示す装置間品質テーブル461には、送信側のWAN高速化装置201と受信側のWAN高速化装置201との間におけるそれぞれの通信品質が記録される。通信品質は、例えば、パケットの廃棄率、RTT、高速プロトコルの通信速度、TCPの通信速度、である。本実施の形態では、高速プロトコルの一例として、UNAPを用いている。
各WAN高速化装置201は、図8Aの位置判定により通信パス上にどのようなWAN高速化装置201が存在するかがわかる。各WAN高速化装置201は、位置判定により判定したWAN高速化装置201を装置間品質テーブル461に登録する。なお、装置間品質テーブル461にWAN高速化装置201を登録する段階では、装置間品質テーブル461の各エントリの内容は空欄の状態である。
(WAN高速化装置間の装置間品質の計測方法の一例)
ここで、高速プロトコルを用いる最適な高速化区間を決定するにあたり、WAN高速化装置201が行うネットワークの装置間品質の計測について説明する。具体的には、各WAN高速化装置201は、ビーコン情報に含まれるIPアドレスを用いて他のWAN高速化装置201に計測パケットを送信し、各WAN高速化装置201間の通信品質(例えばRTTや廃棄率)を測定する場合について説明する。
図9Aは、WAN高速化装置間の通信品質の計測方法の一例を示すシーケンス図(その1)である。図9Bは、WAN高速化装置間の通信品質の計測方法の一例を示すシーケンス図(その2)である。まず、第1WAN高速化装置201aは、第2WAN高速化装置201bおよび第3WAN高速化装置201cへ送信時刻を示すタイムスタンプを含む計測パケットを送信する(ステップS901)。通信品質の計測ではパケットロスが生じても差し支えないため、計測パケットには例えば高速プロトコルが用いられる。
第2WAN高速化装置201bは、第1WAN高速化装置201aからタイムスタンプを含む計測パケットを受信すると、このタイムスタンプを含む計測応答パケットを第1WAN高速化装置201aへ送信する(ステップS902)。第1WAN高速化装置201aは、第2WAN高速化装置201bから計測応答パケットを受信すると、第1WAN高速化装置201aと第2WAN高速化装置201bとの間の往復遅延時間(RTT)を計測する(ステップS903)。往復遅延時間は、計測応答パケットの受信時刻と、計測応答パケットのタイムスタンプが示す第1WAN高速化装置201aによる計測パケットの送信時刻と、の差から得られる。
また、第3WAN高速化装置201cは、第1WAN高速化装置201aからタイムスタンプを含む計測パケットを受信すると、このタイムスタンプを含む計測応答パケットを第1WAN高速化装置201aへ送信する(ステップS904)。第1WAN高速化装置201aは、第3WAN高速化装置201cから計測応答パケットを受信すると、第1WAN高速化装置201aと第3WAN高速化装置201cとの間の往復遅延時間(RTT)を計測する(ステップS905)。往復遅延時間は、計測応答パケットの受信時刻と、計測応答パケットのタイムスタンプが示す第1WAN高速化装置201aによる計測パケットの送信時刻と、の差から得られる。
なお、測定対象の通信品質は、RTTのほかにも廃棄率であってもよい。例えば、第1WAN高速化装置201aは、ステップS901の計測パケットの送信を適切な間隔で繰り返し、計測応答パケットが戻って来ない回数を基にパケット廃棄率を計測する。
また、第2WAN高速化装置201bは、第1WAN高速化装置201aおよび第3WAN高速化装置201cへ送信時刻を示すタイムスタンプを含む計測パケットを送信する(ステップS906)。第1WAN高速化装置201aは、第2WAN高速化装置201bからタイムスタンプを含む計測パケットを受信すると、このタイムスタンプを含む計測応答パケットを第2WAN高速化装置201bへ送信する(ステップS907)。第2WAN高速化装置201bは、第1WAN高速化装置201aから計測応答パケットを受信すると、第2WAN高速化装置201bと第1WAN高速化装置201aとの間の往復遅延時間(RTT)を計測する(ステップS908)。往復遅延時間は、計測応答パケットの受信時刻と、計測応答パケットのタイムスタンプが示す第2WAN高速化装置201bによる計測パケットの送信時刻との差から得られる。
第3WAN高速化装置201cは、第2WAN高速化装置201bからタイムスタンプを含む計測パケットを受信すると、このタイムスタンプを含む計測応答パケットを第2WAN高速化装置201bへ送信する(ステップS909)。第2WAN高速化装置201bは、第3WAN高速化装置201cから計測応答パケットを受信すると、第2WAN高速化装置201bと第3WAN高速化装置201cとの間の往復遅延時間(RTT)を計測する(ステップS910)。往復遅延時間は、計測応答パケットの受信時刻と、計測応答パケットのタイムスタンプが示す第2WAN高速化装置201bによる計測パケットの送信時刻との差から得られる。
なお、測定対象の通信品質は、RTTのほかにも廃棄率であってもよい。例えば、第2WAN高速化装置201bは、ステップS906の計測パケットの送信を適切な間隔で繰り返し、計測応答パケットが戻って来ない回数を基にパケット廃棄率を計測する。
また、第3WAN高速化装置201cは、第1WAN高速化装置201aおよび第2WAN高速化装置201bへ送信時刻を示すタイムスタンプを含む計測パケットを送信する(ステップS911)。第2WAN高速化装置201bは、第3WAN高速化装置201cからタイムスタンプを含む計測パケットを受信すると、このタイムスタンプを含む計測応答パケットを第3WAN高速化装置201cへ送信する(ステップS912)。
第3WAN高速化装置201cは、第2WAN高速化装置201bから計測応答パケットを受信すると、第3WAN高速化装置201cと第2WAN高速化装置201bとの間の往復遅延時間(RTT)を計測する(ステップS913)。往復遅延時間は、計測応答パケットの受信時刻と、計測応答パケットのタイムスタンプが示す第3WAN高速化装置201cによる計測パケットの送信時刻との差から得られる。
第1WAN高速化装置201aは、第3WAN高速化装置201cからタイムスタンプを含む計測パケットを受信すると、このタイムスタンプを含ませた計測応答パケットを第3WAN高速化装置201cへ送信する(ステップS914)。第3WAN高速化装置201cは、第1WAN高速化装置201aから計測応答パケットを受信すると、第3WAN高速化装置201cと第1WAN高速化装置201aとの間の往復遅延時間(RTT)を計測する(ステップS915)。往復遅延時間は、計測応答パケットの受信時刻と、計測応答パケットのタイムスタンプが示す第3WAN高速化装置201cによる計測パケットの送信時刻との差から得られる。
なお、測定対象の通信品質は、RTTのほかにも廃棄率であってもよい。具体的には、第3WAN高速化装置201cは、ステップS911の計測パケットの送信を適切な間隔で繰り返し、計測応答パケットが戻って来ない回数を基にパケット廃棄率を計測する。
ステップS901〜ステップS915の計測が完了すると、第1WAN高速化装置201aは、第2WAN高速化装置201bおよび第3WAN高速化装置201cへ、測定結果同期パケットを送信する(ステップS916)。これにより、第1WAN高速化装置201aにおけるネットワークの品質を、第2WAN高速化装置201bおよび第3WAN高速化装置201cと共有することができる。
同様に、第2WAN高速化装置201bは、第1WAN高速化装置201aおよび第3WAN高速化装置201cへ、測定結果同期パケットを送信する(ステップS917)。これにより、第2WAN高速化装置201bにおけるネットワークの品質を、第1WAN高速化装置201aおよび第3WAN高速化装置201cと共有することができる。
また、第3WAN高速化装置201cは、第1WAN高速化装置201aおよび第2WAN高速化装置201bへ、測定結果同期パケットを送信する(ステップS918)。これにより、第3WAN高速化装置201cにおけるネットワークの品質を、第1WAN高速化装置201aおよび第2WAN高速化装置201bと共有することができる。
最下流の第1WAN高速化装置201aは、本通信セッションにおける最適プロトコルとそのプロトコルの最適な適用区間とを管理する代表装置である。第1WAN高速化装置201aは、ネットワークの品質に基づいて、どの区間にどのプロトコルを適用すると最もエンドエンド(無線端末装置202およびサーバ203)間の転送性能が高くなるかを示す最適プロトコルを計算する(ステップS919)。
第1WAN高速化装置201aは、最適プロトコルの計算結果に基づいて、各WAN高速化装置201間において適用するプロトコルを示す動作モードを設定する(ステップS920)。例えば、最適プロトコルの計算により、第3WAN高速化装置201cから第2WAN高速化装置201bまではUNAPを用い、第2WAN高速化装置201bから第1WAN高速化装置201aまではTCPを用いると、転送性能が高くなると判定したとする。
この場合、第3WAN高速化装置201cから第2WAN高速化装置201bまでの間で高速プロトコルを用いるために、第1WAN高速化装置201aの指示の下、第2WAN高速化装置201bはプロキシモードを設定する(ステップS921)。第2WAN高速化装置201bは、プロキシモードにおいて、TCPとUNAPとのプロトコル変換を行う。
また、第1WAN高速化装置201aの指示の下、第3WAN高速化装置201cは、UNAPとTCPのプロトコル変換を行うプロキシモードを設定する(ステップS922)。一方、第1WAN高速化装置201aは、自身に対しては無線端末装置202のTCPをそのまま通過させるスヌープモードを設定する(ステップS923)。具体的には、第1WAN高速化装置201aは、無線端末装置202から第1WAN高速化装置201aの距離が短いため、無線端末装置202から第2WAN高速化装置201bまでを同一のTCPセッションにする。
これにより、第1WAN高速化装置201aでプロトコルを載せ替える(ここではTCPからTCPに載せ替えることになる)よりもオーバヘッドを減らすことができる。なお、本実施の形態では、代表装置を最下流の第1WAN高速化装置201aとしたが、代表装置を最上流の第3WAN高速化装置201cや、中間の第2WAN高速化装置201bとしてもよい。
(装置間品質の測定結果の一例)
図10は、装置間品質の測定結果の一例を示す説明図である。図10に示すように、装置間品質テーブル461に記憶される通信品質の測定結果1000は、送信側のWAN高速化装置201と受信側のWAN高速化装置201との間におけるそれぞれの通信品質を示している。
例えば、第2WAN高速化装置201bから第1WAN高速化装置201aへの通信品質1001は、廃棄率が0.01%、RTTが150ms、UNAPの通信速度が83Mbps、TCPの通信速度が50Mbps、である。また、第3WAN高速化装置201cから第1WAN高速化装置201aへの通信品質1002は、廃棄率が0.01%、RTTが200ms、UNAPの通信速度が83Mbps、TCPの通信速度が30Mbps、である。ここで、代表装置である最下流の第1WAN高速化装置201aが予め記憶している、RTT毎の廃棄率とスループットとの関係について説明する。
(RTT毎の廃棄率とスループットとの関係の一例)
図11は、RTT毎の廃棄率とスループットとの関係の一例を示す説明図(その1)である。図12は、RTT毎の廃棄率とスループットとの関係の一例を示す説明図(その2)である。図11および図12において、横軸は廃棄率[%]を示しており、縦軸はスループット[Mbps]を示している。図11は、RTTが200msの場合を示している。図12は、RTTが150msの場合を示している。
図11の関係1101に示すように、RTTが200msにおけるUNAPの場合、廃棄率によらずにスループットがほぼ一定になっている。一方、関係1102に示すように、RTTが200msにおけるTCPの場合、廃棄率が0.001%よりも大きくなると、スループットが減少する傾向にあることがわかる。また、図12についても同様に、関係1201に示すように、RTTが150msにおけるUNAPの場合、廃棄率によらずにスループットがほぼ一定になっている。
一方、図12の関係1202に示すように、RTTが150msにおけるTCPの場合、廃棄率が0.001%よりも大きくなると、スループットが減少する傾向にあることがわかる。図11および図12では、RTTが200ms,150msを例示したが、第1WAN高速化装置201aは、他のRTTについても、それぞれ廃棄率とスループットとの関係を示すグラフを記憶している。
図10の通信品質1001(廃棄率:0.01%、RTT:150ms)の場合、図12の関係1202に示すように、TCPであると、廃棄率が0.01%においてスループットが50Mbps程度となるため、UNAPが適している。また、図10の通信品質1002(廃棄率:0.01%、RTT:200ms)の場合、図11の関係1102に示すように、TCPであると、廃棄率が0.01%においてスループットが40Mbps程度となるため、UNAPが適している。
そのため、第3WAN高速化装置201cから第2WAN高速化装置201bの区間、および、第2WAN高速化装置201bから第1WAN高速化装置201aの区間は、高速プロトコルのUNAPが適していると判定できる。
(装置間品質の測定結果の他の一例)
図13は、装置間品質の測定結果の他の一例を示す説明図である。図13に示すように、装置間品質テーブル461に記憶される装置間品質の測定結果1300は、図10に示した測定結果1000と同様に、送信側のWAN高速化装置201と受信側のWAN高速化装置201との間におけるそれぞれの通信品質を示している。なお、図13においては図10の装置間品質と異なる点について説明する。
例えば、第2WAN高速化装置201bから第1WAN高速化装置201aへの通信品質1301は、RTTが150msであり、廃棄率が0.001%である。図13の通信品質1301(廃棄率:0.001%、RTT:150ms)の場合、図12の関係1202に示すように、TCPであると、廃棄率が0.001%においてスループットが80Mbps以上となるため、TCPが適している。
そのため、第2WAN高速化装置201bから第1WAN高速化装置201aの区間はTCPを用い、第3WAN高速化装置201cから第2WAN高速化装置201bの区間は高速プロトコルのUNAPを用いることが最適であると判定できる。このように、通信システム100は、各WAN高速化装置201の通信状態に応じて、高速プロトコルを用いる区間を変更することができる。
ここで、TCPの区間を短くする場合の動作について具体的に説明する。具体的には、TCPセッションが無線端末装置202から第2WAN高速化装置201bまで張られており、ネットワークの通信品質により、第1WAN高速化装置201aの区間に縮退する場合を説明する。
(TCPの区間を短くする際の動作の一例)
図14は、TCPと高速プロトコルとの変換を第2WAN高速化装置にて行う場合の動作の一例を示す説明図である。図15は、TCPと高速プロトコルとの変換を第1WAN高速化装置にて行う場合の動作の一例を示す説明図である。
図14に示すように、第2WAN高速化装置201bは、プロキシモードが設定されており、TCPプロトコルを高速プロトコルへ変換する。具体的には、第2WAN高速化装置201bは、TCP処理部407においてTCPを終端する。また、第2WAN高速化装置201bは、高速プロトコル処理部404において高速プロトコルを終端する。
第2WAN高速化装置201bは、無線端末装置202宛の高速プロトコルのパケットを受信すると、TCP処理部407にTCP処理を行わせた後、パケットを無線端末装置202に送信する。また、TCP処理部407は、無線端末装置202に送信するTCPパケットのヘッダ情報が示すプロトコルの通信状態を、逐次、第2管理テーブル432に記憶する。第2WAN高速化装置201bのTCP処理部407に設けられた第2品質計測部442は、TCPの再送状況から廃棄率とRTTを測定する。
また、第2WAN高速化装置201bは、例えばサーバ203宛のTCPのパケットを受信すると、高速プロトコル処理部404に高速プロトコル処理を行わせた後、パケットをサーバ203に送信する。また、高速プロトコル処理部404は、サーバ203に送信する高速プロトコルパケットのヘッダ情報が示すプロトコルの通信状態を、逐次、第1管理テーブル431に記憶する。
一方、無線端末装置202と第2WAN高速化装置201bとの間に位置する第1WAN高速化装置201aは、スヌープモードが設定されている。スヌープモードにおいて、第1WAN高速化装置201aは、中継しているTCPパケットのヘッダ情報をスヌープし(覗き見し)、このTCPセッションの状態(シーケンス番号、ACK番号等)を記憶する。具体的には、第1WAN高速化装置201aの第2スヌープ部422は、TCPパケットのヘッダ情報をスヌープし、逐次、第2管理テーブル432に記憶されるプロトコルの通信状態を更新する。このように、第1WAN高速化装置201aは、スヌープモードではTCPパケットのヘッダ情報を覗き見し、TCPセッションの状態を保持する。
プロキシモード中の第2WAN高速化装置201bにおいて、第2品質計測部442による品質測定の結果、例えば無線ネットワークの通信品質が改善すると、図15に示すように、第2WAN高速化装置201bはスヌープモードに切替わる。また、第1WAN高速化装置201aはプロキシモードに切替わる。
モードの切替えにあたり、第1WAN高速化装置201aおよび第2WAN高速化装置201bは、制御部450の機能により、それぞれ制御メッセージを交換する。第1WAN高速化装置201aと第2WAN高速化装置201bとの間で同期がとれたタイミングで、通信システム100は、TCPの終端点を第2WAN高速化装置201bから第1WAN高速化装置201aへ変更する。
具体的には、第1WAN高速化装置201aは、プロキシモードに切替えるにあたり、第2WAN高速化装置201bからTCP終端用の論理IPアドレス(論理IP−A)宛のパケットを受信したとする。この場合、第1WAN高速化装置201aの制御部450は、自局宛パケットとしてTCP処理部407へ送るよう第1論理アドレス吸上げ判定部403に指示する。このとき、TCP処理部407は、第1WAN高速化装置201aのスヌープモード中に覗き見により更新した第2管理テーブル432を参照することにより、高速プロトコルからTCPへの移行後もTCPセッションの途中からデータを送受できるようにする。
第1WAN高速化装置201aは、プロキシモードにおいて、第2WAN高速化装置201bから高速プロトコル終端用の論理IPアドレス(論理IP−B)宛のパケットを受信したとする。この場合、第1WAN高速化装置201aの制御部450は、第1論理アドレス吸上げ判定部403に対して、自局宛パケットとして高速プロトコル処理部404へ送信するよう指示する。
第1WAN高速化装置201aの制御部450は、プロキシ処理部406に対し、TCP処理部407から受信したデータを高速プロトコル処理部404へ転送させるよう指示する。高速プロトコル処理部404は、TCPを高速プロトコルに変換するとともに、高速プロトコルパケットのヘッダ情報が示すプロトコルの通信状態を、逐次、第1管理テーブル431に記憶する。
また、第1WAN高速化装置201aの制御部450は、プロキシ処理部406に対し、高速プロトコル処理部404から受信したデータをTCP処理部407へ転送させるよう指示する。TCP処理部407は、高速プロトコルをTCPに変換するとともに、TCPパケットのヘッダ情報が示すプロトコルの通信状態を、逐次、第2管理テーブル432に記憶する。また、第1WAN高速化装置201aの高速プロトコル処理部404に設けられた第1品質計測部441は、高速プロトコルの再送状況やRTTの変動から無線回線の品質を測定する。
一方、第2WAN高速化装置201bは、スヌープモードにおいて、高速プロトコルパケットを通過させる。第2WAN高速化装置201bは、通過させている高速プロトコルパケットのヘッダ情報を覗き見し、この高速プロトコルセッションの状態(シーケンス番号、ACK番号等)を監視する。具体的には、第2WAN高速化装置201bの第1スヌープ部421は、高速プロトコルパケットのヘッダ情報をスヌープし、逐次、第1管理テーブル431に記憶するプロトコルの通信状態を更新する。
また、プロキシモード中の第1WAN高速化装置201aにおいて、高速プロトコル処理部404に設けられた第1品質計測部441は、高速プロトコルの廃棄率やRTTといった無線回線の品質を測定する。制御部450は、第1品質計測部441の測定結果に基づいて、第1WAN高速化装置201aをプロキシモードからスヌープモードへ切替えることができる。これにより、無線端末装置202がTCPコネクションの切断を検出しなくても、TCPの終端点を第2WAN高速化装置201bから第1WAN高速化装置201aに変更することができる。
(TCPの区間を短くする際の動作シーケンスの一例)
図16Aは、TCPの区間を短くする際の通信システムの動作の一例を示すシーケンス図(その1)である。図16Bは、TCPの区間を短くする際の通信システムの動作の一例を示すシーケンス図(その2)である。
図16Aおよび図16Bにおいて、最初に、無線端末装置202が基地局301内の第2WAN高速化装置201bへTCPセッションを張る。この際、3wayハンドシェークが実行される。各WAN高速化装置201は、3wayハンドシェークにおいて無線端末装置202またはサーバ203から送信されるパケットにビーコン情報を付加するとともに、パケットを覗き見(スヌープ)する(ステップS1601、ステップS1602、ステップS1603)。
ビーコン情報を付加する動作については図7Aに示したとおりである。また、各WAN高速化装置201は、ビーコン情報に基づいて、自装置の位置を検出するとともに、TCPセッションの状態を検出する。次に、各WAN高速化装置201は、他のWAN高速化装置201に計測パケットを送信し、WAN高速化装置201の通信品質を計測するとともに最適な高速プロトコル区間を決定する(ステップS1604、ステップS1605、ステップS1606)。通信品質を計測および計測結果に基づくプロトコルの区間の決定については図9Aおよび図9Bに示したとおりである。
通信品質の計測の結果、例えば、第1WAN高速化装置201aがスヌープモードで動作し、第2WAN高速化装置201bおよび第3WAN高速化装置201cはプロキシモードで動作しているものとする。また、第3WAN高速化装置201cと第2WAN高速化装置201bとの間では高速プロトコルが用いられているとする。なお、本実施の形態では、第1WAN高速化装置201aおよび第2WAN高速化装置201bのモードの切替えについてのみ説明し、第3WAN高速化装置201cのモードの切替えについては説明を省略する。
プロキシモード中の第2WAN高速化装置201bは、高速プロトコルを一旦終端し、受信したデータをTCPプロトコルに載せ替えて第1WAN高速化装置201aへ転送する(ステップS1607)。また、プロキシモード中の第3WAN高速化装置201cは、高速プロトコルを一旦終端し、受信したデータをTCPプロトコルに変換してサーバ203へ転送する(ステップS1608)。
スヌープモード中の第1WAN高速化装置201aは、第2WAN高速化装置201bから受信したTCPパケットを中継する。この際、第1WAN高速化装置201aは、パケットを覗き見し(ステップS1609)、第2管理テーブル432内のパケットのヘッダ情報が示すプロトコルの通信状態を逐次更新する。
スヌープモード中の第1WAN高速化装置201aは、無線端末装置202から受信したTCPパケットを中継する。この際、第1WAN高速化装置201aは、パケットを覗き見し(ステップS1610)、第2管理テーブル432内のパケットのヘッダ情報が示すプロトコルの通信状態を逐次更新する。
プロキシモード中の第2WAN高速化装置201bは、TCPを一旦終端し、受信したデータを高速プロトコルに載せ替えて第3WAN高速化装置201cへ転送する(ステップS1611)。
第1WAN高速化装置201a、第2WAN高速化装置201bおよび第3WAN高速化装置201cは、TCPや高速プロトコルにおける送信パケットとそれに対するACKの受信を観察し、廃棄率および往復遅延を計測する。また、第1WAN高速化装置201a、第2WAN高速化装置201bおよび第3WAN高速化装置201cは、送信するレートと廃棄の発生の関係から空き帯域や利用帯域を計測することによる回線品質の計測を行う(ステップS1612)。第2WAN高速化装置201bおよび第3WAN高速化装置201cは、代表装置である第1WAN高速化装置201aに計測結果を送信する(ステップS1613)。
第1WAN高速化装置201aは、最適プロトコルを計算する(ステップS1614)。そして、第1WAN高速化装置201aは、動作モードの切替えを行うか否かを判断する(ステップS1615)。動作モードの切替えを行わない場合(ステップS1615:No)、第1WAN高速化装置201aは、現状のモードを継続し(ステップS1616)、ステップS1609に移行する。
例えば、第1WAN高速化装置201aが、無線区間のプロトコルとしてTCPではなく高速プロトコルが適切であると判断し、動作モードの切替えを行う場合(ステップS1615:Yes)、動作モードの切替えを行う。具体的には、第1WAN高速化装置201aは、第3WAN高速化装置201cから第1WAN高速化装置201aの間で高速プロトコルを用いるために、自身をプロキシモードに設定する。また、第1WAN高速化装置201aは、第2WAN高速化装置201bに対しては、高速プロトコルをそのまま通過させるスヌープモードを設定する。なお、第1WAN高速化装置201aは、第3WAN高速化装置201cのモードの設定変更を行わない。
第1WAN高速化装置201aおよび第2WAN高速化装置201bのモードの切替えについて具体的に説明する。図16Bに示すように、第2WAN高速化装置201bは、第1WAN高速化装置201aに対し同期タイミングネゴシエーションメッセージを送信する(ステップS1621)。
同期タイミングネゴシエーションメッセージには、第2WAN高速化装置201bと第1WAN高速化装置201aとで状態の待ち合せを行うデータのシーケンス番号が含まれる。同期タイミングネゴシエーションメッセージは、例えば第2WAN高速化装置201bから以降に送信するデータを基に計算される未来のシーケンス番号(例えばSEQ(SEQUENCE)=250)を含む。
シーケンス番号は、第2WAN高速化装置201bとから送信されたデータが第1WAN高速化装置201aによって受信されるまでの遅延時間に基づいて決定される番号である。遅延時間が大きい場合ほど、待ち合せ用のシーケンス番号も大きくする。シーケンス番号は、例えば、代表装置であるの第1WAN高速化装置201aが決定する。第1WAN高速化装置201aは、同期タイミングネゴシエーションメッセージを受信すると待ち合せを行うシーケンス番号を記録し、ネゴシエーションOKメッセージを第2WAN高速化装置201bへ応答する(ステップS1622)。
第2WAN高速化装置201bは、ネゴシエーションOKメッセージを受信すると、ネゴシエートしたシーケンス番号250番までのデータを送信した後、データの転送を一時的に中断する(ステップS1623)。第1WAN高速化装置201aは、スヌープモード中であり、シーケンス番号250番までのTCPパケットをスヌープするとともに(ステップS1624)、それに対する無線端末装置202からのACKパケットをスヌープする(ステップS1625)。そして、第1WAN高速化装置201aは、無線端末装置202がシーケンス番号250番までのデータを受信したことをスヌープにより確認すると、第2WAN高速化装置201bに対し同期レディメッセージを送信する(ステップS1626)。
ここで、第1WAN高速化装置201aは、第2WAN高速化装置201bから転送されたデータのうちの受信しなかった廃棄データ等の損失データがある場合には、第2WAN高速化装置201bへ損失データの再送を要求する。第1WAN高速化装置201aは、例えば、シーケンス番号に基づいて、損失データの有無を検出し、損失データを検出した場合、第2WAN高速化装置201bへ損失データの再送を要求する。
第2WAN高速化装置201bは、第1WAN高速化装置201aから損失データの再送の要求があった場合、損失データを第1WAN高速化装置201aへ再送する。第1WAN高速化装置201aは、待ち合せ用のシーケンス番号をスヌープした場合であっても、第2WAN高速化装置201bから損失データを受信しない場合には、第2WAN高速化装置201bへの同期レディメッセージ(制御信号)を送信しない。また、第1WAN高速化装置201aは、プロキシモードへの切替えを行わない。
また、第2WAN高速化装置201bは、待ち合せ用のシーケンス番号に達した場合であっても、第1WAN高速化装置201aへの損失データの再送要求がある場合には、損失データの再送後に、スヌープモードへの切替えを行う。これにより、転送状態の切替え前に損失データが生じた場合であっても、第2WAN高速化装置201bは、最初の送信時と同じプロトコルで損失データを再送することができる。また、第1WAN高速化装置201aは、損失データの発生時と同じプロトコルにて損失データを受信することができる。このため、損失データを補填することができ、転送状態の切替えの前後においてデータを整合させることができる。
第2WAN高速化装置201bは、無線端末装置202からのシーケンス番号250番までのACK信号と、第1WAN高速化装置201aからの同期レディメッセージと、を受信することにより第1WAN高速化装置201aの状態と同じであることを確認する。すると、第2WAN高速化装置201bは、第1WAN高速化装置201aへ終端点切替えメッセージを送信する(ステップS1627)。
第1WAN高速化装置201aは、第2WAN高速化装置201bから終端点切替えメッセージを受信すると、切替えOKメッセージを第2WAN高速化装置201bへ送信する(ステップS1628)。また、第1WAN高速化装置201aは、スヌープモードからプロキシモードに切替える(ステップS1629)。第2WAN高速化装置201bは、第1WAN高速化装置201aから、切替えOKメッセージを受信すると、プロキシモードからスヌープモードに切替える(ステップS1630)。
以降、第2WAN高速化装置201bは、中断したデータ転送を再開し、第3WAN高速化装置201cから高速プロトコルでパケットを受信すると、IPパケットレベルで中継を行う。さらに、スヌープモード中の第2WAN高速化装置201bは、第3WAN高速化装置201cから受信した高速プロトコルのヘッダをスヌープし(ステップS1631)、第1管理テーブル431のヘッダ情報が示すプロトコルの通信状態を更新する。第1WAN高速化装置201aは、プロキシモードにおいて、高速プロトコルを終端し、受信したデータをTCPに変換して無線端末装置202へ転送する(ステップS1632)。
また、第1WAN高速化装置201aは、プロキシモードにおいて、TCPを終端し、受信したデータを高速プロトコルに変換して第2WAN高速化装置201bへ転送する(ステップS1633)。スヌープモード中の第2WAN高速化装置201bは、第1WAN高速化装置201aから受信した高速プロトコルのヘッダをスヌープし(ステップS1634)、第1管理テーブル431のヘッダ情報が示すプロトコルの通信状態を更新する。
(TCPの区間を長くする際の動作の一例)
次に、図14および図15を用いて、TCPの区間を長くする際の動作について説明する。まず、図15に戻り、TCPと高速プロトコルの変換を第1WAN高速化装置201aにて行う場合の動作について説明する。図15に示すように、第2WAN高速化装置201bは、スヌープモード中である。第2WAN高速化装置201bの中継処理部405は、高速プロトコルのパケットを中継する。第2WAN高速化装置201bの第1スヌープ部421は、高速プロトコルパケットのヘッダ情報をスヌープし、逐次、第1管理テーブル431を更新する。
また、図15において、第1WAN高速化装置201aは、プロキシモード中である。第1WAN高速化装置201aの第1論理アドレス吸上げ判定部403が、論理IP−B宛のパケットを受信すると、受信したパケットをプロキシ処理部406へ送信する。プロキシ処理部406は、TCP処理部407にTCP処理を行わせた後に、パケットを無線端末装置202(TCP処理部502)に送信する。
また、第1WAN高速化装置201aは、無線端末装置202から論理IP−A宛のTCPパケットを受信するとプロキシ処理部406のローカルIPアドレス宛パケットとして受信し、高速プロトコル処理部404に高速プロトコル変換を行わせる。第1WAN高速化装置201aの高速プロトコル処理部404に設けられた第1品質計測部441は、高速プロトコルの再送状況やRTTの変動から無線回線の品質を測定する。
第1品質計測部441による品質測定の結果、例えば無線ネットワークの通信品質が低下すると、図14のように、第1WAN高速化装置201aは、スヌープモードに切替わる。また、第2WAN高速化装置201bはプロキシモードに切替わる。モードの切替えにあたり、第1WAN高速化装置201aおよび第2WAN高速化装置201bは、制御部450の機能により、それぞれ制御メッセージを交換する。第1WAN高速化装置201aと第2WAN高速化装置201bとの間で同期がとれたタイミングで、通信システム100は、TCPの終端点を第1WAN高速化装置201aから第2WAN高速化装置201bへ変更する。
プロキシモードへの切替えにあたり、第2WAN高速化装置201bは、高速プロトコル終端用の論理IPアドレス(論理IP−B)宛のパケットを受信した場合、高速プロトコル処理部404へ送るよう第1論理アドレス吸上げ判定部403に指示する。このとき、高速プロトコル処理部404は、第2WAN高速化装置201bのスヌープモード中に覗き見により更新した第1管理テーブル431を参照することにより、TCPから高速プロトコルへのプロトコルの移行後も継続してデータを送受できるようにする。
プロキシモードに切替わると、第2WAN高速化装置201bの制御部450は、プロキシ処理部406に対し、TCP処理部407から受信したデータを高速プロトコル処理部404へ転送させる。また、第2WAN高速化装置201bの制御部450は、高速プロトコル処理部404から受信したデータを、TCP処理部407を介してネットワークへ送信するよう指示する。
一方、第1WAN高速化装置201aは、スヌープモードにおいて、第1論理アドレス吸上げ判定部403が論理IP−A宛のパケットを受信すると、中継処理部405へ送信する。具体的には、第1WAN高速化装置201aの制御部450は、TCPパケットを通過させるよう第1論理アドレス吸上げ判定部403および第2論理アドレス吸上げ判定部408に指示する。中継処理部405は、中継するTCPパケットのヘッダ情報を覗き見し、TCPプロトコルの状態(シーケンス番号、ACK番号等)を保持する。具体的には、第1WAN高速化装置201aの第2スヌープ部422は、TCPのヘッダ情報をスヌープし、逐次、第2管理テーブル432を更新する。
プロキシモード中の第2WAN高速化装置201bにおいて、TCP処理部407に設けられた第2品質計測部442は、TCPの再送状況やRTTの変動から無線回線の品質を測定する。制御部450は、第2品質計測部442の測定結果に基づいて、第2WAN高速化装置201bをプロキシモードからスヌープモードへ切替えることができる。これにより、無線端末装置202がTCPコネクションの切断を検出しなくても、TCPの終端点を第1WAN高速化装置201aから第2WAN高速化装置201bに変更することができる。
(TCPの区間を長くする際の動作シーケンスの一例)
図17Aは、TCPの区間を長くする際の通信システムの動作の一例を示すシーケンス図(その1)である。図17Bは、TCPの区間を長くする際の通信システムの動作の一例を示すシーケンス図(その2)である。図18は、TCPの区間を長くする際の通信システムの動作の一例を示すシーケンス図(その3)である。
図17A、図17Bおよび図18において、第2WAN高速化装置201bはスヌープモードに設定されており、第1WAN高速化装置201aはプロキシモードに設定されているものとする。つまり、TCPの終端点は第1WAN高速化装置201aとする。なお、第3WAN高速化装置201cはプロキシモードに設定されているものとし、モードの切替えはないものとする。
第1WAN高速化装置201aは、第3WAN高速化装置201cから第2WAN高速化装置201b経由で転送される高速プロトコルパケットをTCPに変換して無線端末装置202へ転送する(ステップS1701)。また、第1WAN高速化装置201aは、無線端末装置202から送信されるTCPを高速プロトコルに変換して第2WAN高速化装置201bへ転送する(ステップS1702)。
第2WAN高速化装置201bは、スヌープモード中であり、第1WAN高速化装置201aまたは第3WAN高速化装置201cから受信した高速プロトコルパケットを中継する。この際、第2WAN高速化装置201bは、パケットの中身(ヘッダ情報)を覗き見し(ステップS1703)、第1管理テーブル431を逐次更新する。
第1WAN高速化装置201a、第2WAN高速化装置201bおよび第3WAN高速化装置201cは、TCPや高速プロトコルにおける送信パケットとそれに対するACKの受信を観察し、廃棄率および往復遅延を計測する。また、第1WAN高速化装置201a、第2WAN高速化装置201bおよび第3WAN高速化装置201cは、送信するパケットと廃棄の発生の関係から空き帯域や利用帯域を計測することによる回線品質の計測を行う(ステップS1704)。第2WAN高速化装置201bおよび第3WAN高速化装置201cは、代表装置である第1WAN高速化装置201aに計測結果を送信する(ステップS1705)。
第1WAN高速化装置201aは、最適プロトコルを計算する(ステップS1706)。そして、第1WAN高速化装置201aは、動作モードの切替えを行うか否かを判断する(ステップS1707)。動作モードの切替えを行わない場合(ステップS1707:No)、第1WAN高速化装置201aは、現状のモードを継続し(ステップS1708)、ステップS1701に移行する。
例えば、第1WAN高速化装置201aが、無線区間のプロトコルとして高速プロトコルではなくTCPが適切であると判断し、動作モードの切替えを行う場合(ステップS1707:Yes)、動作モードの切替えを行う。具体的には、第1WAN高速化装置201aは、第3WAN高速化装置201cから第2WAN高速化装置201bの間で高速プロトコルを用いるために、自身をスヌープモードに設定する。また、第2WAN高速化装置201bに対しては、高速プロトコルとTCPとのプロトコル変換を行うプロキシモードを設定する。なお、第3WAN高速化装置201cのモードの設定変更は行われない。
第1WAN高速化装置201aおよび第2WAN高速化装置201bのモードの切替えについて具体的に説明する。図17Bに示すように、第1WAN高速化装置201aは、第2WAN高速化装置201bに対し、3wayハンドシェークと同じ手順によるダミーハンドシェークを実行し、第2WAN高速化装置201bに対しTCPセッションをオープンにする(ステップS1721)。さらに、第1WAN高速化装置201aは、第2WAN高速化装置201bに対して、同期タイミングネゴシエーションメッセージを送信する(ステップS1722)。この際、第1WAN高速化装置201aは、シーケンス番号をNULLにして送る。
第2WAN高速化装置201bは、同期タイミングネゴシエーションメッセージを受信すると、第2WAN高速化装置201bと第1WAN高速化装置201aとで状態の待ち合せを行うデータのシーケンス番号を指定する。シーケンス番号は、例えば、第2WAN高速化装置201bにおいてこれから送信するデータから計算される未来のシーケンス番号(例えばSEQ=250)である。
また、第2WAN高速化装置201bは、第1WAN高速化装置201aから同期タイミングネゴシエーション信号を受信すると、指定したシーケンス番号を含むネゴシエーションOKメッセージを第1WAN高速化装置201aに送信する(ステップS1723)。
第1WAN高速化装置201aは、第2WAN高速化装置201bから受信したシーケンス番号250番までのTCPパケットを無線端末装置202に送信する(ステップS1724)。また、第1WAN高速化装置201aは、無線端末装置202からのACKパケットを第2WAN高速化装置201bに送信する(ステップS1725)。第2WAN高速化装置201bは、無線端末装置202へ送信するシーケンス番号250番までの高速パケットと、それに対する無線端末装置202からのACKパケットをスヌープする(ステップS1726)。
また、第2WAN高速化装置201bは、シーケンス番号が250番までのデータを第1WAN高速化装置201aへ送信した後、シーケンス番号が250番以降のデータを送信しないよう、データの転送を一時的に中断する(ステップS1727)。
そして、図18に示すように、第1WAN高速化装置201aは、無線端末装置202が250番までの確認応答を受信するまで待機する(ステップS1801:No)。250番までの確認応答を受信すると(ステップS1801:Yes)、第1WAN高速化装置201aは、第2WAN高速化装置201bへ終端点切替えメッセージを送信する(ステップS1802)。
ここで、第1WAN高速化装置201aは、第2WAN高速化装置201bから転送されたデータのうちの受信しなかった損失データがある場合には、第2WAN高速化装置201bへ損失データの再送を要求する。第1WAN高速化装置201aは、例えば、シーケンス番号に基づいて、損失データの有無を検出し、損失データを検出した場合、第2WAN高速化装置201bへ損失データの再送を要求する。
第2WAN高速化装置201bは、第1WAN高速化装置201aから損失データの再送の要求があった場合、損失データを第1WAN高速化装置201aへ再送する。第1WAN高速化装置201aは、待ち合せ用のシーケンス番号をスヌープした場合であっても、第2WAN高速化装置201bから損失データを受信しない場合には、第2WAN高速化装置201bへの終端点切替えメッセージ(制御信号)を送信しない。また、第1WAN高速化装置201aは、ステップS1806におけるスヌープモードへの切替えを行わない。
また、第2WAN高速化装置201bは、待ち合せ用のシーケンス番号に達した場合であっても、第1WAN高速化装置201aへの損失データの再送要求がある場合には、損失データの再送後に、プロキシモードへの切替えを行う。これにより、転送状態の切替え前に損失データが生じた場合であっても、第2WAN高速化装置201bは、最初の送信時と同じプロトコルで損失データを再送することができる。また、第1WAN高速化装置201aは、損失データの発生時と同じプロトコルにて損失データを受信することができる。このため、損失データを補填することができ、転送状態の切替えの前後においてデータを整合させることができる。
第2WAN高速化装置201bは、第1WAN高速化装置201aから終端点切替えメッセージを受信すると、切替えOKメッセージを第1WAN高速化装置201aへ送信する(ステップS1803)。また、第2WAN高速化装置201bは、スヌープモードからプロキシモードに切替え(ステップS1804)。中断したデータの転送を再開する(ステップS1805)。
第1WAN高速化装置201aは、第2WAN高速化装置201bから切替えOKメッセージを受信すると、プロキシモードからスヌープモードに切替える(ステップS1806)。スヌープモード中の第1WAN高速化装置201aは、TCPでパケットを受信すると、IPパケットレベルで中継を行うとともに、TCPプロトコルのヘッダをスヌープし(ステップS1807)、第2管理テーブル432のヘッダ情報を更新する。
(WAN高速化装置が行うパケット受信処理の一例)
図19Aは、WAN高速化装置が行うパケット受信処理の一例を示すフローチャート(その1)である。図19Bは、WAN高速化装置が行うパケット受信処理の一例を示すフローチャート(その2)である。図19Aおよび図19Bにおいて、WAN高速化装置201は、例えば、第1WAN高速化装置201aおよび第2WAN高速化装置201bである。
図19Aおよび図19Bにおいて、WAN高速化装置201は、パケットを受信したか否かを判断する(ステップS1901)。WAN高速化装置201は、パケットを受信するまで待機し(ステップS1901:No)、パケットを受信すると(ステップS1901:Yes)、プロキシモード中であるか否かを判断する(ステップS1902)。プロキシモード中である場合(ステップS1902:Yes)、WAN高速化装置201は、パケットヘッダの宛先アドレスを参照し、第1論理アドレス宛であるか否かを判断する(ステップS1903)。
第1論理アドレスは、例えば高速プロトコルを終端するアドレスであり、論理IP−Bである。第1論理アドレス宛である場合(ステップS1903:Yes)、WAN高速化装置201は、第1プロトコル(高速プロトコル)終端処理を実行する(ステップS1904)。そして、WAN高速化装置201は、第1プロトコル終端処理により第2プロトコルに変換したパケットを第2プロトコル(TCP)で送信し(ステップS1905)、本フローチャートによる一連の処理を終了する。
ステップS1903において、第1論理アドレス宛ではない場合(ステップS1903:No)、すなわち、第2論理アドレス宛である場合、WAN高速化装置201は、第2プロトコル終端処理を実行する(ステップS1906)。第2論理アドレスは、例えばTCPを終端するアドレスであり、論理IP−Aである。そして、WAN高速化装置201は、第2プロトコル終端処理により第1プロトコルに変換したパケットを第1プロトコルで送信し(ステップS1907)、本フローチャートによる一連の処理を終了する。
ステップS1902において、プロキシモード中ではない場合(ステップS1902:No)、すなわち、スヌープモード中である場合、WAN高速化装置201は、IP経路表を検索するなどのパケット中継処理を行い(ステップS1908)、パケットヘッダをスヌープする(ステップS1909)。
次に、WAN高速化装置201は、パケットヘッダの宛先アドレスを参照し、第1論理アドレス宛であるか否かを判断する(ステップS1910)。第1論理アドレス宛である場合(ステップS1910:Yes)、WAN高速化装置201は、スヌープしたヘッダ情報を用いて第1プロトコル用の第1管理テーブル431を更新する(ステップS1911)。さらに、WAN高速化装置201は、IP経路表を参照して決定したインタフェースへパケットを送信し(ステップS1912)、本フローチャートによる一連の処理を終了する。
ステップS1910において、第1論理アドレス宛ではない場合(ステップS1910:No)、WAN高速化装置201は、スヌープしたヘッダ情報を用いて第2プロトコル用の第2管理テーブル432を更新する(ステップS1913)。さらに、WAN高速化装置201は、IP経路表を参照して決定したインタフェースへパケットを送信し(ステップS1914)、本フローチャートによる一連の処理を終了する。
(WAN高速化装置が行うモード移行処理の一例)
図20は、WAN高速化装置が行うモード移行処理の一例を示すフローチャートである。図20において、WAN高速化装置201は、例えば、第1WAN高速化装置201aおよび第2WAN高速化装置201bである。
図20において、WAN高速化装置201は、電源がONであるか否かを判断する(ステップS2001)。WAN高速化装置201は、電源がONになるまで待機し(ステップS2001:No)、電源がONになると(ステップS2001:Yes)、プロキシモード中であるか否かを判断する(ステップS2002)。プロキシモード中である場合(ステップS2002:Yes)、WAN高速化装置201は、プロキシモード処理を実行し(ステップS2003)、本フローチャートによる一連の処理を終了する。
プロキシモード処理については、図21、図23、図25、図27を用いて後述する。プロキシモード中ではない場合(ステップS2002:No)、すなわち、スヌープモード中である場合、WAN高速化装置201は、スヌープモード処理を実行し(ステップS2004)、本フローチャートによる一連の処理を終了する。スヌープモード処理については、図22、図24、図26を用いて後述する。
ここで、図21〜図27を用いて、プロキシモード処理およびスヌープモード処理について説明する。以下においては、メッセージの送受の関係を考慮し、プロキシモード処理およびスヌープモード処理を交互に説明する。
図21は、WAN高速化装置が行うプロキシモード処理の一例を示すフローチャート(その1)である。図22は、WAN高速化装置が行うスヌープモード処理の一例を示すフローチャート(その1)である。図23は、WAN高速化装置が行うプロキシモード処理の一例を示すフローチャート(その2)である。図24は、WAN高速化装置が行うスヌープモード処理の一例を示すフローチャート(その2)である。図25は、WAN高速化装置が行うプロキシモード処理の一例を示すフローチャート(その3)である。図26は、WAN高速化装置が行うスヌープモード処理の一例を示すフローチャート(その3)である。図27は、WAN高速化装置が行うプロキシモード処理の一例を示すフローチャート(その4)である。
図21〜図27において、プロキシモード中のWAN高速化装置201は、品質計測を行うための監視タイマがタイムアウトであるか否かを判断する(ステップS2101)。監視タイマがタイムアウトではない場合(ステップS2101:No)、ステップS2106に移行する。監視タイマがタイムアウトである場合(ステップS2101:Yes)、WAN高速化装置201は、第1品質計測部441または第2品質計測部442による測定結果を用いてネットワーク状態を監視する(ステップS2102)。
例えば、第1WAN高速化装置201aがプロキシモード中の場合、第1WAN高速化装置201aの第1品質計測部441による高速プロトコルの測定結果を用いてネットワーク状態を監視する。また、第2WAN高速化装置201bがプロキシモード中であれば、第2WAN高速化装置201bの第2品質計測部442によるTCPの測定結果を用いてネットワーク状態を監視する。
ネットワーク状態の監視の結果、回線の混雑状態が変化し、プロトコルの変更が必要であるか否かを判断する(ステップS2103)。プロトコルの変更が必要ではない場合(ステップS2103:No)、WAN高速化装置201は、ステップS2106に移行する。プロトコルの変更が必要である場合(ステップS2103:Yes)、WAN高速化装置201は、TCPの終端点の切替えを行う相手方(スヌープモード中)のWAN高速化装置201と同期を行うための同期処理を開始する(ステップS2104)。そして、WAN高速化装置201は、同期タイミングネゴシエーションメッセージをスヌープモード中の相手方のWAN高速化装置201へ送信し(ステップS2105)、ステップS2106に移行する。
図22に示すように、スヌープモード中のWAN高速化装置201は、プロキシモード中のWAN高速化装置201から、同期タイミングネゴシエーションメッセージ(図21のステップS2105参照)を受信したか否かを判断する(ステップS2201)。同期タイミングネゴシエーションメッセージを受信しない場合(ステップS2201:No)、WAN高速化装置201は、ステップS2206に移行する。同期タイミングネゴシエーションメッセージを受信すると(ステップS2201:Yes)、WAN高速化装置201は、待ち合せをするための同期シーケンス番号を記録する(ステップS2202)。
そして、WAN高速化装置201は、プロキシモード中の相手方のWAN高速化装置201へネゴシエーションOKメッセージを送信する(ステップS2203)。さらに、WAN高速化装置201は、自身が上流ノードであるか否かを判断する(ステップS2204)。自身が上流ノードではない場合(ステップS2204:No)、WAN高速化装置201は、ステップS2206に移行する。自身が上流ノードである場合(ステップS2204:Yes)、一時的に同期番号以降のパケットの中継を中断させ(ステップS2205)、ステップS2206に移行する。
図23に示すように、プロキシモード中のWAN高速化装置201は、スヌープモード中のWAN高速化装置201から、ネゴシエーションOKメッセージ(図22のステップS2203参照)を受信したか否かを判断する(ステップS2106)。ネゴシエーションOKメッセージを受信しない場合(ステップS2106:No)、ステップS2109に移行する。ネゴシエーションOKメッセージを受信した場合(ステップS2106:Yes)、自身が上流ノードであるか否かを判断する(ステップS2107)。
自身が上流ノードではない場合(ステップS2107:No)、WAN高速化装置201は、ステップS2109に移行する。自身が上流ノードである場合(ステップS2107:Yes)、WAN高速化装置201は、同期番号以降のパケットの中継を中断させ(ステップS2108)、ステップS2109に移行する。
図24に示すように、スヌープモード中のWAN高速化装置201は、自身が下流ノードであるか否かを判断する(ステップS2206)。自身が下流ノードではない場合(ステップS2206:No)、WAN高速化装置201は、ステップS2209に移行する。自身が下流ノードである場合(ステップS2206:Yes)、WAN高速化装置201は、待ち合せするシーケンス番号で同期できたことを意味する同期完了であるか否かを判断する(ステップS2207)。
同期完了ではない場合(ステップS2207:No)、WAN高速化装置201は、ステップS2209に移行する。同期完了である場合(ステップS2207:Yes)、WAN高速化装置201は、プロキシモード中のWAN高速化装置201へ同期レディメッセージを送信し(ステップS2208)、ステップS2209へ移行する。
図25に示すように、プロキシモード中のWAN高速化装置201は、スヌープモード中のWAN高速化装置201から、同期レディメッセージ(図24のステップS2208参照)を受信したか否かを判断する(ステップS2109)。同期レディメッセージを受信した場合(ステップS2109:Yes)、WAN高速化装置201は、シーケンスの同期状態を確認する(ステップS2110)。シーケンスの同期状態の確認は、例えば送信したパケットに対してACK信号の受信を確認することである。そして、WAN高速化装置201は、スヌープモード中のWAN高速化装置201へ終端点切替えメッセージを送信し(ステップS2111)、ステップS2114へ移行する。
ステップS2109において、同期レディメッセージを受信しない場合(ステップS2109:No)、自身が下流ノードであるか否かを判断する(ステップS2112)。自身が下流ノードではない場合(ステップS2112:No)、ステップS2114へ移行する。自身が下流ノードである場合(ステップS2112:Yes)、WAN高速化装置201は、TCP状態の同期完了を検出したか否かを判断する(ステップS2113)。
TCP状態の同期完了を検出しない場合(ステップS2113:No)、WAN高速化装置201は、ステップS2114へ移行する。TCP状態の同期完了を検出した場合(ステップS2113:Yes)、WAN高速化装置201は、ステップS2111に移行する。
図26に示すように、スヌープモード中のWAN高速化装置201は、プロキシモード中のWAN高速化装置201から、終端点切替えメッセージ(図25のステップS2111参照)を受信したか否かを判断する(ステップS2209)。終端点切替えメッセージを受信しない場合(ステップS2209:No)、WAN高速化装置201は、スヌープモード処理を終了する。終端点切替えメッセージを受信した場合(ステップS2209:Yes)、WAN高速化装置201は、プロキシモード中のWAN高速化装置201へ切替えOKメッセージを送信する(ステップS2210)。そして、WAN高速化装置201は、スヌープモードを終了してプロキシモードに切替え(ステップS2211)、定期的に品質測定を行うための監視タイマをセットし(ステップS2212)、スヌープモード処理を終了する。
図27に示すように、プロキシモード中のWAN高速化装置201は、スヌープモード中のWAN高速化装置201から、切替えOKメッセージ(図26のステップS2210参照)を受信したか否かを判断する(ステップS2114)。切替えOKメッセージを受信しない場合(ステップS2114:No)、WAN高速化装置201は、プロキシモード処理を終了する。切替えOKメッセージを受信した場合(ステップS2114:Yes)、WAN高速化装置201は、プロキシモードを終了してスヌープモードに切替え(ステップS2115)、プロキシモード処理を終了する。
(管理テーブルのフォーマットの一例)
図28は、管理テーブルのフォーマットの一例を示す説明図である。図28では、例えば第1WAN高速化装置201aの第2管理テーブル432のフォーマットについて説明するが、第1WAN高速化装置201aの第1管理テーブル431や、第2WAN高速化装置201bの管理テーブル431,432についても同様である。図28に示すフォーマット2800において、無線端末装置202のIPアドレスが133.140.10.5であるとする。また、動作するアプリによるポート番号が1050であるとする。また、無線端末装置202がサーバ203と通信を行うためにWAN高速化装置201の論理IP−A(156.123.18.1)、ポート番号710に接続しているとする。
ビーコン処理部423は、新しいTCPセッションが張られ、SYNパケットおよびSYN/ACKパケットを確認すると第2管理テーブル432にエントリを追加し、TCPセッション状態をOPENにする。以降、第2スヌープ部422は、中継するTCPパケットを覗き見する毎に、IPヘッダを参照し、送信元IPアドレス(SRC IP)フィールド、宛先IPアドレス(DST IP)フィールドを更新する。また、第2スヌープ部422は、TCPヘッダ情報を参照し、シーケンス番号、ACKされたシーケンス番号、未ACKのシーケンス番号、ウィンドウサイズフィールドを更新する。
(TCPパケットの構成)
図29Aは、TCPパケットの構成の一例を示す説明図である。図29Aに示すように、TCPパケット2900は、IPヘッダ2901と、TCPヘッダ2902と、ペイロード2903と、を有する。
IPヘッダ2901には、パケットの先頭部を占める制御情報が格納される。IPヘッダ2901の詳細については、図31Aを用いて後述する。TCPヘッダ2902には、TCPを用いるための制御情報が格納される。TCPヘッダ2902の詳細については、図32Aを用いて後述する。ペイロード2903は、共通シーケンス番号2911と、データ2912と、を有する。共通シーケンス番号2911は、TCPパケット2900の識別情報である。
(高速プロトコルパケットの構成)
図29Bは、高速プロトコルパケットの構成の一例を示す説明図である。図29Bに示すように、高速プロトコルパケット2920は、IPヘッダ2901と、UDPヘッダ2931と、UDPペイロード2932と、を有する。UDPヘッダ2931には、UDPを用いるための制御情報が格納される。UDPペイロード2932は、UDPベースプロトコルヘッダ2940と、データ2933と、を有する。UDPベースプロトコルヘッダ2940は、UDPベースプロトコル種別2941と、グループID2942と、UDPベースプロトコルシーケンス番号2943と、を有する。
UDPベースプロトコル種別2941には、UNAP等の高速プロトコルの種別を識別するための識別番号が格納される。ここで、第2品質計測部442がユーザデータを含むUNAPパケットを用いて通信品質を計測するにあたっては、連続する特定量のパケットを送信してそのうちの廃棄されたパケットによりネットワークの廃棄率を測定する。グループID2942には、上述の連続する特定量を区別するためのIDが格納される。UDPベースプロトコルシーケンス番号2943には、UDPプロトコルにおいて、再送制御を行うために各パケットを区別するための番号が格納される。UDPベースプロトコルシーケンス番号2943は、高速プロトコルパケット2920の識別情報である。
次に、初期品質計測部460がWAN高速化装置201間の品質の計測を行うための計測パケットのフォーマットについて説明する。
(TCP計測パケットの構成)
図30Aは、TCP計測パケットの構成の一例を示す説明図である。図30Aにおいては、図29Aに示した構成と同一の構成については同一の符号を付し、説明を省略する。図30Aに示すように、TCP計測パケット3000は、TCPオプションヘッダ3001を有する。共通シーケンス番号2911は、TCP計測パケット3000の識別情報である。
図30Bは、TCPオプションヘッダの構成の一例を示す説明図である。図30Bにおいては、TCPオプションヘッダ3001は、オプションコードと、サイズと、グループIDと、計測用シーケンス番号と、を有する。オプションコードには、計測パケットであることを示すコードが格納される。グループIDには、上述の連続する特定量を区別するためのIDが格納される。通信品質の計測にあたり、同じグループIDを持つ計測パケットを連続して一定量(例えば100個)送信するが、計測用シーケンス番号には、そのグループ内において各パケットを区別するための番号が格納される。
(高速プロトコル計測パケットの構成)
図30Cは、高速プロトコル計測パケットの構成の一例を示す説明図である。図30Cにおいては、図29Bに示した構成と同一の構成については同一の符号を付し、説明を省略する。図30Cに示すように、高速プロトコル計測パケット3020は、計測用シーケンス番号3021と、ダミーデータ3022と、を有する。
通信品質の計測にあたり、同じグループIDを持つ計測パケットを連続して一定量(例えば100個)送信するが、計測用シーケンス番号3021には、そのグループ内において各パケットを区別するための番号が格納される。計測用シーケンス番号3021は、高速プロトコル計測パケット3020の識別情報である。ダミーデータ3022には、可変長であり、ダミーのデータが格納される。また、UDPベースプロトコル種別2941には、UNAPを示すIDとは異なる、計測パケットであることを示すIDが格納される。
(IPヘッダの一例)
図31Aは、IPヘッダの一例を示す説明図である。図31Bは、IPヘッダの詳細の一例を示す説明図である。図31AのIPヘッダ2901および図31Bの詳細図3100に示すように、「バージョン」は、IPプロトコルのバージョンを表す。「バージョン」は、4(IPv4:Internet Protocol Version4)、6(IPv6)、7(TP/IX:The Next Internet)、8(PIP:The P Internet Protocol)、9(TUBA)を表す。「ヘッダ長」は、IPヘッダの長さを表す。「ToS(Type of Service)」は、IPパケットの優先順位や遅延などを表す。「パケット長」は、IPヘッダとデータとを含めたパケット全体の長さを表す。
「識別番号」は、IPデータグラムの順序を示す番号である。「フラグ」は、どのように配送するかを示す値であり、IPパケットの分割を制御する際に用いられる。「フラグ」は、未使用を示すビット0、分割を許可するかしないかを表すビット1およびフラグメントが最後かどうかを表すビット2、のいずれかである。「フラグメントオフセット」は、分割されたパケットが元のデータのどこに位置しているかを表す。「TTL(Time To Live)」は、IPパケットの生存時間を表し、例えばパケットが通過可能なルータの数を表し、ルータを経由するたびに1ずつ減っていき、0になった時点でこのパケットが破棄される。
「プロトコル番号」は、IPの上位層のプロトコルであり、TCPやUDPなどのプロトコルの種類を表す。「ヘッダチェックサム」は、データが正しいかどうかを検証するためのフィールドである。「送信元IPアドレス」は、送信元のIPアドレスである。「宛先IPアドレス」は、送信先のIPアドレスである。「オプション」は、任意のデータであり、例えば、IPパケットに付加するオプションを設定するための情報である。「Padding」は、オプションが付加された場合、ヘッダ長を32ビットに調整するために使用される。
(TCPヘッダの一例)
図32Aは、TCPヘッダの一例を示す説明図である。図32Bは、TCPヘッダの詳細の一例を示す説明図である。図32AのTCPヘッダ2902および図32Bの詳細図3200において、「送信ポート番号」および「宛先ポート番号」は、サービスを特定するためのポート番号である。
「順序(シーケンス)番号」は、送信するデータ(バイト・データ)に対して、順序付けを行うための番号を指定するフィールドである。送信するデータ1バイト毎に、シーケンス番号を1つずつ昇順に割り当て、どこまでデータを送信したかを指定することができる。「順序(シーケンス)番号」は、TCPデータの送信側で管理されており、データを送信するたびに、送信したデータのバイト数分だけシーケンス番号が加算され、TCPパケットにて送信される。
「確認(ACK)番号」は、受信したデータに対して、どこのバイト位置までを受信したかを表すフィールドである。ACK番号は、データを受信した側が、どこまで受信したかを示すために、応答TCPパケットにセットして送信する。後述するACKフラグがオンの場合にのみ、確認(ACK)番号フィールドが有効となる。
「データオフセット」は、TCPデータが始まる位置を表すフィールドである。「予約」は、将来の拡張のために用意されており、全ビットに「0」が入る。制御ビットの各フィールドは、1ビットのフラグ・フィールドであり、デフォルトではすべて初期値が0であるが、1になるとそれぞれのフラグが有効(オン)になる。
「CWR(輻輳制御ウィンドウ:Congestion Window Reduced)」フラグおよび「ECE(Echo Congestion Experience)」フラグは、輻輳制御のためのビットである。「URG(URGENT)」フラグは、TCPパケット中に「緊急データ」が含まれていることを表す。「ACK(ACKNOWLEDGE)」フラグは、TCPヘッダ中に有効なACK番号が含まれていることを表す。
「PSH(PUSH)」フラグは、受信したデータをすみやかに上位アプリケーションに引き渡すように要求するためのフラグである。「RST(RESET)」フラグは、TCP接続を中断または拒否したい場合にセットされる。TCP接続がエラーなどで長く中断して、シーケンス番号とACK番号の整合性がとれなくなった場合、ACKを返す代わりにRSTフラグをセットしたTCPパケットを送信すると、現在のTCP接続を強制終了することができる。
「SYN(SYNCHRONIZE)」フラグは、TCP接続を開始させるために用いられる。これによって、TCP接続のオープン処理が開始される。TCPは双方向通信路なので、双方から送信されるそれぞれの最初の接続要求パケットにはこのSYNフラグがセットされる。SYNフラグがセットされたパケットを受信した場合、自身のACK番号を受信したシーケンス番号に同期させることにより、以後の通信を行うための準備が整う。
「FIN(FINISH)」フラグは、TCP接続を終了させるために用いられる。FINフラグがセットされたパケットは、これ以上データの受信が必要ないことを意味し、受信した側では終了処理が開始される。
「ウィンドウ」は、受信側のウィンドウ・サイズを相手に伝えるために用いられる。TCPの送信側は、相手から通知されたウィンドウ・サイズを見て、送信可能な最大のデータ量を判断する。例えば、ウィンドウ・サイズ=0は、データを受信することができないという意味であり、つまり、送信側に対してデータ送信の停止を要求するという意味である。
「チェックサム」は、TCPパケットの整合性を検査するための検査用データを格納するフィールドである。「緊急ポインタ」は、TCPパケットの中に緊急データが含まれる場合にURGフラグがセットされ、この際に、緊急データの場所(サイズ)を表す数値を指定するためのフィールドである。
「オプション」は、TCP接続における各種の特性を設定するために利用され、個々のTCP接続毎に設定することができる。「オプション」は、バイト単位で可変長であり、同時に複数のオプションを設定することができる。「オプション」の種類の一例については、図33を用いて後述する。「Padding」は、TCPヘッダの長さを32ビットの整数にするために、空データの「0」の値を入れて調整するためのフィールドである。
(TCPの「オプション」の種類の一例)
図33は、TCPの「オプション」の種類の一例を示す説明図である。図33において、オプション種類3301の「End Of Option List」は、オプション番号が0であり、オプションが終了することを表す。1つのTCPヘッダ中に連続して複数のTCPオプションを並べることが可能であるが、「End Of Option List」は、オプションが終了して、後続のオプションが存在しないことを表す。
オプション種類3302の「No Operation」は、オプション番号が1であり、何もしないという意味のオプションであり、オプション間のデリミタ(区切り文字)として使われる。例えば、オプション・フィールドの総サイズが32ビット(4バイト)単位に揃うように配置される。
オプション種類3303の「Maximum Segment Size」は、オプション番号が2であり、受信可能なセグメントの最大サイズを通信相手に通知するためのオプションである。「Maximum Segment Size」は、TCP3wayハンドシェークのSYNパケットの送信時に、お互いに受信できるセグメントのサイズをネゴシエーションするために用いられる。
オプション種類3304の「Window Scale」は、オプション番号が3であり、TCPの標準規格の制限で、最大64キロバイトとなっているウィンドウ・サイズをより大きくするために利用されるオプションである。
オプション種類3305の「Sack Permitted」は、オプション番号が4であり、Sack(選択的受信確認:Selective Acknowledgment)が利用できることを通知することを表す。オプション種類3306の「Sack」は、オプション番号が5であり、受信確認の応答アルゴリズムを最適化するために用いられる。例えば、3wayハンドシェーク時に「Sack Permitted」が示されたホスト同士の通信においては、送信側に欠けているデータだけを再送することができる。
オプション種類3307の「Time Stamp」は、オプション番号が8であり、パケット中にタイムスタンプ(送信時間)情報を埋め込むために用いられる。3wayハンドシェークのタイミングにおいて、「Time Stamp」のオプションが付加されることにより、コネクション中はいつでもRTTの計算が可能になる。
(制御データの一例)
次に、図34および図35を用いて、制御データの一例について説明する。
図34は、制御データの一例を示す説明図(その1)である。図34に示すようにデータには、同期タイミングネゴシエーションメッセージ3401と、ネゴシエーションOKメッセージ3402と、同期レディメッセージ3403と、終端点切替えメッセージ3404と、切替えOKメッセージ3405と、がある。これらのメッセージ3401〜3405は、ペイロードに付加される情報である。
同期タイミングネゴシエーションメッセージ3401は、メッセージタイプと、サイズと、リクエスト番号と、プロトコル種別と、同期待ち合せシーケンス(SEQ)番号と、を含む。メッセージタイプは、本メッセージの種別を示す。サイズは、本メッセージのデータサイズである。リクエスト番号は、本実施の形態のメッセージを識別する番号である。プロトコル種別は、TCPまたはUNAPのいずれかを示す。同期待ち合せシーケンス番号は、アップリンクまたはダウンリンクのそれぞれについて、待ち合せを行うシーケンス番号を示す。以下の各データの説明において、同期タイミングネゴシエーションメッセージ3401と同様の内容については説明を省略する。
ネゴシエーションOKメッセージ3402は、メッセージタイプと、サイズと、リクエスト番号と、リザルトコードと、プロトコル種別と、同期待ち合せシーケンス番号と、を含む。リクエスト番号は、応答対象の同期タイミングネゴシエーションメッセージに含まれるリクエスト番号である。リザルトコードは、ネゴシエーション可を示すOK、または、ネゴシエーション不可を示すNGのいずれかを示す。同期レディメッセージ3403は、メッセージタイプと、サイズと、プロトコル種別と、同期待ち合せシーケンス番号と、を含む。
終端点切替えメッセージ3404は、メッセージタイプと、サイズと、PROXY NODEと、PROXIEDプロトコルと、SNOOP NODEと、SNOOPEDプロトコルと、を含む。PROXY NODEは、プロキシモードで動作するWAN高速化装置201のIPアドレスである。PROXIEDプロトコルは、TCPとUNAPとの切替えを示す。SNOOP NODEは、スヌープモードで動作するWAN高速化装置201のIPアドレスである。SNOOPEDプロトコルは、スヌープの対象となるプロトコル(TCPまたはUNAP)を示す。切替えOKメッセージ3405は、メッセージタイプと、サイズと、PROXY NODEと、PROXIEDプロトコルと、SNOOP NODEと、SNOOPEDプロトコルと、を含む。
図35は、制御データの一例を示す説明図(その2)である。図35に示すようにデータには、計測パケット3501と、計測応答パケット3502と、ビーコン情報3503と、がある。計測パケット3501および計測応答パケット3502は、ペイロードに付加される情報である。ビーコン情報3503は、TCPオプションヘッダ3001(図30A参照)に格納される情報である。
計測パケット3501は、メッセージタイプと、サイズと、送信元アドレスと、送信先アドレスと、タイムスタンプと、を含む。計測パケット3501の送信元アドレスは、計測パケットを送信するWAN高速化装置201のIPアドレスである。計測パケット3501の送信先アドレスは、計測パケットの送信先のWAN高速化装置201のIPアドレスである。計測パケット3501のタイムスタンプは、送信元の送信時間を示す。
計測応答パケット3502は、メッセージタイプと、サイズと、送信元アドレスと、送信先アドレスと、タイムスタンプと、を含む。計測応答パケット3502の送信元アドレスは、計測応答パケットを送信するWAN高速化装置201のIPアドレスである。計測応答パケット3502の送信先アドレスは、計測応答パケットの送信先のWAN高速化装置201のIPアドレスである。計測応答パケット3502のタイムスタンプは、計測パケットに含まれていたタイムスタンプである。
ビーコン情報3503は、TCPオプションタイプと、サイズと、最初のWAN高速化装置のIPアドレスと、2番目のWAN高速化装置のIPアドレスと、を含む。TCPオプションタイプは、本情報の種別を示す。サイズは、ビーコン情報3503のデータサイズであり、中継する毎に更新される。最初のWAN高速化装置のIPアドレスは、最初に中継したWAN高速化装置201のIPアドレスである。2番目のWAN高速化装置のIPアドレスは、2番目に中継したWAN高速化装置201のIPアドレスである。以降、中継する毎に、3番目、4番目、…、に中継したWAN高速化装置201のIPアドレスが順次記録される。
(実施の形態の変形例)
次に、実施の形態の変形例について説明する。なお、変形例において、上述した実施の形態と同様の構成について同様の符号を付し、説明を省略する。
図36は、通信システムの変形例を示す説明図である。図36に示すように、通信システム100は、集中管理サーバ3600を有する。集中管理サーバ3600は、図1に示した制御装置130の機能を有し、複数のWAN高速化装置201を管理する。具体的には、集中管理サーバ3600は、各WAN高速化装置201から位置判定の結果を受信するとともに、各WAN高速化装置201から通信品質の測定結果を受信して、各WAN高速化装置201のモードを管理する。つまり、集中管理サーバ3600は、プロトコルの最適な適用区間を管理する代表装置(実施の形態の第1WAN高速化装置201a)の機能を有する。
(実施の形態の変形例において位置判定を行う際のデータの送受の一例)
図37は、実施の形態の変形例において位置判定を行う際のデータの送受の一例を示すシーケンス図である。なお、図37の説明においては、図7Bに示したシーケンス図と異なる点について説明する。
図37に示すように、第1WAN高速化装置201aは、位置判定を行った後に(ステップS715)、位置判定結果を集中管理サーバ3600に通知する(ステップS3701)。第2WAN高速化装置201bは、位置判定を行った後に(ステップS716)、位置判定結果を集中管理サーバ3600に通知する(ステップS3702)。第3WAN高速化装置201cは、位置判定を行った後に(ステップS717)、位置判定結果を集中管理サーバ3600に通知する(ステップS3703)。
これにより、集中管理サーバ3600は、各WAN高速化装置201の位置関係を管理することができる。具体的には、集中管理サーバ3600は、図8Aに示した受信情報801,802,803の各位置判定結果を得ることができ、これにより、各WAN高速化装置201の位置関係を管理することができる。
図38Aは、実施の形態の変形例においてWAN高速化装置間の通信品質の計測方法の一例を示すシーケンス図(その1)である。図38Bは、実施の形態の変形例においてWAN高速化装置間の通信品質の計測方法の一例を示すシーケンス図(その2)である。なお、図38Aおよび図38Bの説明においては、図9Aおよび図9Bに示したシーケンス図と異なる点について説明する。
まず、集中管理サーバ3600は、各WAN高速化装置201に測定指示パケットを送信する(ステップS3801)。これにより、各WAN高速化装置201は、通信品質の計測を開始する。各WAN高速化装置201は、通信品質の計測が終わると測定結果同期パケットを集中管理サーバに送信する(ステップS916、ステップS917、ステップS918)。集中管理サーバ3600は、ネットワークの品質がわかると、例えば図11に示したグラフと図10に示した測定結果を用いて各プロトコルを用いた場合の性能(例えばスループットやレイテンシ)を推定する。
集中管理サーバ3600は、どの区間にどのプロトコルを適用すると最もエンドエンド(無線端末装置202からサーバ203間)の転送性能が高くなるかの最適プロトコルを計算する(ステップS3821)。集中管理サーバ3600が、第3WAN高速化装置201cから第2WAN高速化装置201bまでは高速プロトコルを用い、第2WAN高速化装置201bから第1WAN高速化装置201aまではTCPを用いると、最適なスループットであると判定したとする。
この場合、集中管理サーバ3600は、最適プロトコルの計算結果に基づいて、各WAN高速化装置201間において適用するプロトコルを示す動作モードを設定する(ステップS3822)。第2WAN高速化装置201bは、集中管理サーバ3600による動作モードの指示の下、プロキシモードを設定する(ステップS921)。第3WAN高速化装置201cは、集中管理サーバ3600による動作モードの指示の下、プロキシモードを設定する(ステップS922)。第1WAN高速化装置201aは、集中管理サーバ3600による動作モードの指示の下、スヌープモードを設定する(ステップS923)。
(実施の形態の変形例においてTCPの区間を短くする際の動作シーケンスの一例)
図39は、実施の形態の変形例においてTCPの区間を短くする際の通信システムの動作の一例を示すシーケンス図である。なお、図39の説明においては、図16Aに示したシーケンス図と異なる点について説明する。
図39において、各WAN高速化装置201は、回線品質の計測を行うと(ステップS1612)、計測結果を集中管理サーバ3600へ送信する。集中管理サーバ3600は、最適プロトコルを計算する(ステップS3901)。そして、集中管理サーバ3600は、動作モードの切替えを行うか否かを判断する(ステップS3902)。動作モードの切替えを行わない場合(ステップS3902:No)、集中管理サーバ3600は、各WAN高速化装置201からの計測結果を待つ。
例えば、第1WAN高速化装置201aが、無線区間のプロトコルとしてTCPではなく高速プロトコルが適切であると判断し、動作モードの切替えを行う場合(ステップS3902:Yes)、動作モードの切替えを行う。具体的には、第3WAN高速化装置201cから第1WAN高速化装置201aの間で高速プロトコルを用いるために、集中管理サーバ3600の指示の下、第1WAN高速化装置201aはプロキシモードを設定する(図16B参照)。また、第2WAN高速化装置201bは、集中管理サーバ3600の指示の下、スヌープモードを設定する。なお、集中管理サーバ3600は、第3WAN高速化装置201cのモードの設定変更を行わない。
(実施の形態の変形例においてTCPの区間を長くする際の動作シーケンスの一例)
図40は、実施の形態の変形例においてTCPの区間を長くする際の通信システムの動作の一例を示すシーケンス図である。なお、図40の説明においては、図17Aに示したシーケンス図と異なる点について説明する。
図40において、第1WAN高速化装置201a、第2WAN高速化装置201bおよび第3WAN高速化装置201cは、回線品質の計測を行うと(ステップS1704)、集中管理サーバ3600に計測結果を送信する(ステップS4001)。そして、集中管理サーバ3600は、計測結果を用いて最適プロトコルを計算する(ステップS4002)。次に、集中管理サーバ3600は、動作モードの切替えを行うか否かを判断する(ステップS4003)。動作モードの切替えを行わない場合(ステップS4003:No)、集中管理サーバ3600は、各WAN高速化装置201からの計測結果を待つ。
例えば、第1WAN高速化装置201aが、無線区間のプロトコルとして高速プロトコルではなくTCPが適切であると判断し、動作モードの切替えを行う場合(ステップS4003:Yes)、動作モードの切替えを行う。具体的には、第3WAN高速化装置201cから第2WAN高速化装置201bの間で高速プロトコルを用いるために、集中管理サーバ3600の指示の下、第2WAN高速化装置201bはプロキシモードを設定する(図18参照)。また、第1WAN高速化装置201aは、集中管理サーバ3600の指示の下、スヌープモードを設定する。なお、集中管理サーバ3600は、第3WAN高速化装置201cのモードの設定変更を行わない。
このように、実施の形態の変形例によれば、集中管理サーバ3600が、各WAN高速化装置201から受信する位置判定の結果や通信品質の測定結果を用いて、各WAN高速化装置201のモードを管理することができる。
以上説明したように、本実施の形態では、スヌープモード中のWAN高速化装置201がデータを覗き見て待ち合せ番号を検出するとプロキシモードになり、プロキシモード中のWAN高速化装置201が待ち合せ番号を検出するとスヌープモードになる。このように、スヌープモード中のWAN高速化装置201およびプロキシモード中のWAN高速化装置201をそれぞれ同じタイミングでモードを切替えることができる。このため、通信を切断せずに高速プロトコルの終端位置を動的に変更することができる。
また、本実施の形態では、下流側のWAN高速化装置201が待ち合せ用のシーケンス番号を検出した場合に、同期レディメッセージ等の制御信号を上流側のWAN高速化装置201へ送信するようにした。上流側のWAN高速化装置201は、待ち合せ用のシーケンス番号を検出した場合にデータの転送を中断し、下流側のWAN高速化装置201から制御信号を受信した場合に、モードを切替えてデータの転送を再開させるようにした。したがって、高速プロトコルの終端位置の動的な変更時に、データの不整合を抑えることができる。
また、本実施の形態において、下流側のWAN高速化装置201は、上流側のWAN高速化装置201から転送されたデータに損失データがある場合には、損失データの再送を要求するようにした。そして、下流側のWAN高速化装置201は、待ち合せ用のシーケンス番号を読み出した場合であっても、損失データを受信しない場合には、上流側のWAN高速化装置201への制御信号の送信および自身のモードの切替えを行わないようにした。
これにより、モードの切替え前にデータに損失がある場合、上流側のWAN高速化装置201は、最初の送信時と同じプロトコルで損失データを再送することができる。また、下流側のWAN高速化装置201は、損失データの発生時と同じプロトコルで損失データを受信することができる。このように、損失データを補填することができ、転送状態の切替えの前後でデータを整合させることができる。
また、待ち合せ用のシーケンス番号は、複数のWAN高速化装置201間の遅延時間に基づいて決定された情報とした。したがって、WAN高速化装置201間の遅延時間に基づく待ち合せ用のシーケンス番号とすることができ、転送状態の切替え時における同期のズレを抑えることができる。
また、本実施の形態では、複数のWAN高速化装置201の通信を確立する前に、各WAN高速化装置201間の通信品質に基づいて、各WAN高速化装置201間のモード(スヌープモードおよびプロキシモード)を設定するようにした。これにより、最適な高速プロトコルの終端位置で通信を開始させることができる。
また、本実施の形態では、WAN高速化装置201間の通信品質に基づいて、WAN高速化装置201間のモードを切替えるようにした。したがって、各WAN高速化装置201間の通信品質に応じて、最適な高速プロトコルの終端位置を動的に変更することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1通信装置と第2通信装置とを有する通信システムであって、
前記第1通信装置は、
上流の通信装置から受信したデータをプロトコル変換せずに前記第2通信装置へ転送する第1転送状態と、前記データをプロトコル変換して前記第2通信装置へ転送する第2転送状態と、に切替え可能な第1転送部と、
前記第1転送部が前記第1転送状態である場合に、前記第1転送部によって転送されるデータに含まれる前記転送されるデータの識別情報を読み出す第1読出部と、
前記第1読出部によって読み出された前記識別情報が所定の識別情報である場合に、前記第1転送部を前記第1転送状態から前記第2転送状態に切替える第1制御部と、
を有し、
前記第2通信装置は、
前記第1通信装置から受信したデータをプロトコル変換せずに下流の通信装置へ転送する第1転送状態と、前記第1通信装置から受信したデータをプロトコル変換して前記下流の通信装置へ転送する第2転送状態と、に切替え可能な第2転送部と、
前記第2転送部が前記第2転送状態である場合に、前記第2転送部によって転送されるデータに含まれる前記転送されるデータの識別情報を読み出す第2読出部と、
前記第2読出部によって読み出された前記識別情報が前記所定の識別情報である場合に、前記第2転送部を前記第2転送状態から前記第1転送状態に切替える第2制御部と、
を有することを特徴とする通信システム。
(付記2)前記第2制御部は、前記第2読出部によって読み出された前記識別情報が前記所定の識別情報である場合に、前記所定の識別情報を含むデータを受信した旨を示す制御信号を前記第1通信装置へ送信し、
前記第1制御部は、前記第1読出部によって読み出された前記識別情報が前記所定の識別情報である場合に、前記第1転送部による前記データの転送を中断させ、前記第2通信装置から前記制御信号を受信した場合に、前記第1転送部を前記第1転送状態から前記第2転送状態に切替えて前記データの転送を再開させる、
ことを特徴とする付記1に記載の通信システム。
(付記3)前記第2制御部は、前記第1通信装置から転送されたデータのうちの受信しなかった損失データがある場合には、前記第1通信装置へ前記損失データの再送を要求し、
前記第1制御部は、前記第2通信装置から前記損失データの再送の要求があった場合、前記損失データを前記第2通信装置へ再送し、
前記第2制御部は、前記識別情報が前記所定の識別情報である場合であっても、前記第1通信装置から前記損失データを受信しない場合には、前記第1通信装置への前記制御信号の送信および前記第2転送部の転送状態の切替えを行わない、
ことを特徴とする付記2に記載の通信システム。
(付記4)前記所定の識別情報は、前記第1通信装置から送信された前記データが前記第2通信装置によって受信されるまでの時間に基づいて決定された識別情報であることを特徴とする付記1〜3のいずれか一つに記載の通信システム。
(付記5)前記所定の識別情報を決定し、決定した前記所定の識別情報を前記第1制御部および前記第2制御部へ出力する制御装置を有することを特徴とする付記4に記載の通信システム。
(付記6)前記識別情報は、前記転送されるデータの通し番号であることを特徴とする付記1〜5のいずれか一つに記載の通信システム。
(付記7)前記第1通信装置と前記第2通信装置との通信を確立する前に、前記第1通信装置と前記第2通信装置との間の通信品質に基づいて、前記第1転送部の転送状態と前記第2転送部の転送状態とを互いに異なる転送状態に設定する制御装置を有することを特徴とする付記1〜6のいずれか一つに記載の通信システム。
(付記8)前記第1通信装置と前記第2通信装置との間の通信品質に基づいて、前記第1転送部および前記第2転送部の転送状態の変更を決定する制御装置を有し、
前記第1通信装置および前記第2通信装置は、前記制御装置によって前記転送状態の変更が決定され且つ前記識別情報が所定の識別情報である場合に、それぞれ転送状態を切替えることを特徴とする付記1〜7のいずれか一つに記載の通信システム。
(付記9)第1通信装置と第2通信装置とを有する通信システムであって、
前記第1通信装置は、
上流の通信装置から受信したデータをプロトコル変換せずに前記第2通信装置へ転送する第1転送状態と、前記データをプロトコル変換して前記第2通信装置へ転送する第2転送状態と、に切替え可能な第1転送部と、
前記第1転送部が前記第2転送状態である場合に、前記第1転送部によって転送されるデータに含まれる前記転送されるデータの識別情報を読み出す第1読出部と、
前記第1読出部によって読み出された前記識別情報が所定の識別情報である場合に、前記第1転送部を前記第2転送状態から前記第1転送状態に切替える第1制御部と、
を有し、
前記第2通信装置は、
前記第1通信装置から受信したデータをプロトコル変換せずに下流の通信装置へ転送する第1転送状態と、前記第1通信装置から受信したデータをプロトコル変換して前記下流の通信装置へ転送する第2転送状態と、に切替え可能な第2転送部と、
前記第2転送部が前記第1転送状態である場合に、前記第2転送部によって転送されるデータに含まれる前記転送されるデータの識別情報を読み出す第2読出部と、
前記第2読出部によって読み出された前記識別情報が前記所定の識別情報である場合に、前記第2転送部を前記第1転送状態から前記第2転送状態に切替える第2制御部と、
を有することを特徴とする通信システム。
(付記10)前記第2制御部は、前記第2読出部によって読み出された前記識別情報が前記所定の識別情報である場合に、前記所定の識別情報を含むデータを受信した旨を示す制御信号を前記第1通信装置へ送信し、
前記第1制御部は、前記第1読出部によって読み出された前記識別情報が前記所定の識別情報である場合に、前記データの転送を中断し、前記第2通信装置から前記制御信号を受信することによって前記第2転送部を前記第2転送状態から前記第1転送状態に切替えて前記データの転送を再開させる、
ことを特徴とする付記9に記載の通信システム。
(付記11)第1通信装置から受信したデータをプロトコル変換せずに第2通信装置へ転送する第1転送状態と、前記データをプロトコル変換して前記第2通信装置へ転送する第2転送状態と、に切替え可能な転送部と、
前記転送部が前記第1転送状態である場合に、前記転送部によって転送されるデータに含まれる前記転送されるデータの識別情報を読み出す読出部と、
前記読出部によって読み出された前記識別情報が所定の識別情報である場合に、前記転送部を前記第1転送状態から前記第2転送状態に切替える制御部と、
を有することを特徴とする通信装置。
(付記12)第1通信装置と第2通信装置とを有する通信システムの通信方法であって、
上流の通信装置から受信したデータをプロトコル変換せずに前記第2通信装置へ転送する第1転送状態と、前記データをプロトコル変換して前記第2通信装置へ転送する第2転送状態と、に切替え可能にする前記第1通信装置が、
前記第1転送状態である場合に、転送するデータに含まれる前記転送するデータの識別情報を読み出し、読み出した前記識別情報が所定の識別情報である場合に、前記第1転送状態から前記第2転送状態に切替わり、
前記第1通信装置から受信したデータをプロトコル変換せずに下流の通信装置へ転送する第1転送状態と、前記第1通信装置から受信したデータをプロトコル変換して前記下流の通信装置へ転送する第2転送状態と、に切替え可能にする前記第2通信装置が、
前記第2転送状態である場合に、転送するデータに含まれる前記転送するデータの識別情報を読み出し、読み出した前記識別情報が前記所定の識別情報である場合に、前記第2転送状態から前記第1転送状態に切替わる、
ことを特徴とする通信方法。
(付記13)第1通信装置と第2通信装置とを有する通信システムの通信方法であって、
上流の通信装置から受信したデータをプロトコル変換せずに前記第2通信装置へ転送する第1転送状態と、前記データをプロトコル変換して前記第2通信装置へ転送する第2転送状態と、に切替え可能な前記第1通信装置が、
前記第2転送状態である場合に、転送するデータに含まれる前記転送するデータの識別情報を読み出し、読み出した前記識別情報が所定の識別情報である場合に、前記第2転送状態から前記第1転送状態に切替わり、
前記第1通信装置から受信したデータをプロトコル変換せずに下流の通信装置へ転送する第1転送状態と、前記第1通信装置から受信したデータをプロトコル変換して前記下流の通信装置へ転送する第2転送状態と、に切替え可能な前記第2通信装置が、
前記第1転送状態である場合に、転送するデータに含まれる前記転送するデータの識別情報を読み出し、読み出した前記識別情報が前記所定の識別情報である場合に、前記第1転送状態から前記第2転送状態に切替わる、
ことを特徴とする通信方法。