JP2018006793A - 転送装置、サーバ装置、および、転送方法 - Google Patents
転送装置、サーバ装置、および、転送方法 Download PDFInfo
- Publication number
- JP2018006793A JP2018006793A JP2016126380A JP2016126380A JP2018006793A JP 2018006793 A JP2018006793 A JP 2018006793A JP 2016126380 A JP2016126380 A JP 2016126380A JP 2016126380 A JP2016126380 A JP 2016126380A JP 2018006793 A JP2018006793 A JP 2018006793A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- route
- transfer device
- packet
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】ストリーミング配信を高品質に行う。【解決手段】サーバ装置から送信される複数のフローを処理する転送装置は、受信部、制御部、送信部を備える。受信部は、複数のフローを受信する。制御部は、転送装置と複数のフローの転送先の間の通信品質が所定の基準を下回ったことを通知する通知パケットを受信部が受信すると、複数のフローのうちで再送処理が可能なプロトコルで処理されているフローの転送経路を第1の経路から第2の経路に変更する。ここで、第1の経路は、複数のフローの転送に使用している経路である。第2の経路は、転送装置と転送先との間のリンクを使用せずにサーバ装置からフローの宛先に至る経路である。送信部は、複数のフローの各々を、制御部で決定された経路を用いて転送する。【選択図】図1
Description
本発明は、転送装置、サーバ装置、および、転送方法に関する。
近年、高速なモバイル端末、モバイルブロードバンドの普及により、ストリーミング配信の利用が増加している。ストリーミング配信では、扱われるデータのサイズが大きいため、ファイルのダウンロードと再生が並行して行われる。ストリーミング配信では、再送処理を行うとサーバやネットワーク中の機器の処理負荷が大きくなるため、UDP(User Datagram Protocol)などの再送処理を伴わないプロトコルが使われることが多い。UDPによるストリーミング配信は、会議のLIVE配信など、ユーザにとって重要な通信である場合、優先的に処理することが望ましい。
インターネットを介したパケット通信では、複数の転送経路の候補があることが多い。このため、経路の選択を行う際に、OSPF(Open Shortest Path First)などのルーティングプロトコルが使用されることがある。パケットの転送処理を行うルータは、ルーティングプロトコルを用いた処理によって選択された経路をルーティングテーブルに記録している。ルータは、パケットを受信すると、受信したパケット中の宛先IP(Internet Protocol)アドレスとルーティングテーブルを用いて、受信パケットの転送先を決定し、決定した転送先に受信パケットを転送する。インターネットでは、常時様々な通信プロトコルのパケットが送受信されている。このため、ルーティングテーブルで選択された経路に沿って、様々なプロトコルのパケットが転送されている。
関連する技術として、複数の分割アーキテクチャネットワークを含むシステムで分割アーキテクチャネットワーク毎にコントローラを配置することが提案されている(例えば、特許文献1など)。このシステムでは、コントローラは、他のコントローラやルータに、自装置が位置するネットワーク内での限定された領域についての、リンク、コスト、データを提供することにより、複数のネットワークにまたがる経路の最適化を容易にする。また、複数の入力インタフェースと複数の出力インタフェースを備え、1つのアドレスに対して経路情報の異なる複数のエントリを含むルーティングテーブルを保持する中継装置も提案されている。この中継装置は、ルーティングテーブルを用いて、1つのアドレス宛のパケットを2つのインタフェースに選択的に振り分ける(例えば、特許文献2など)。
再送処理を伴わないプロトコルを用いて行われるストリーミング配信を高品質に行うためには、ストリーミング配信に使用されている通信プロトコルとこの通信プロトコル以外のプロトコルで異なる転送経路を使用することが考えられる。しかし、ルーティングテーブルを用いた転送では宛先IPアドレスから転送先が決定されるため、プロトコル毎の転送経路を変更することは困難である。
本発明は、ストリーミング配信を高品質に行うことを目的とする。
サーバ装置から送信される複数のフローを処理する転送装置は、受信部、制御部、送信部を備える。受信部は、前記複数のフローを受信する。制御部は、前記転送装置と前記複数のフローの転送先の間の通信品質が所定の基準を下回ったことを通知する通知パケットを前記受信部が受信すると、前記複数のフローのうちで再送処理が可能なプロトコルで処理されているフローの転送経路を第1の経路から第2の経路に変更する。ここで、第1の経路は、前記複数のフローの転送に使用している経路である。第2の経路は、前記転送装置と前記転送先との間のリンクを使用せずに前記サーバ装置から当該フローの宛先に至る経路である。送信部は、前記複数のフローの各々を、前記制御部で決定された経路を用いて転送する。
ストリーミング配信を高品質に行うことができる。
図1は、実施形態にかかる通信方法の例を説明する図である。図1の例では、サーバとあるネットワーク(ネットワークX)中の端末との間での通信経路として、転送装置10aと転送装置10cを経由する経路R1と、転送装置10a〜10cの各々を経由する経路R2があるとする。ここで、OSFPなどのルーティングプロトコルにより、最適経路として、経路R1が得られているとする(手順Pr1)。このため、サーバからネットワークX中の装置宛てのフロー中のパケットは、経路R1を用いて転送される。
手順Pr2は、フローF1、F2がネットワークXに向けて転送されている状態で、さらに、ネットワークX中の端末宛てフローF3の送信が開始された場合の例を示す。ここで、フローF1とフローF2は、いずれもTCP(Transmission Control Protocol)などの再送処理を伴うプロトコルを用いたフローであるとする。一方、新たに開始されるフローF3は、再送処理を伴わないプロトコルを用いて送信されているとする。ここで、サーバ装置は、フローの転送先の転送装置10に対して、フローの転送元との間の通信品質の測定を要求したとする。すると、上流側の転送装置10も、フローの転送先の転送装置10に対して、フローの転送元との間の通信品質の測定を要求する。例えば、転送装置10aは、フローF3を転送装置10cに転送しているので、転送装置10cに対して、転送装置10aとの間の通信品質の測定を要求する(矢印A1)。通信品質の測定の要求を受信した各転送装置10は、通信品質の測定の要求元との間の通信品質を測定する。例えば、転送装置10cは、転送装置10aとの間の通信品質の測定を行う。測定される通信品質は、遅延時間、パケットロス率、パケット遅延の変動などであるが、実装に応じて任意に変更され得る。転送装置10cは、転送装置10aとの間の通信品質が所定の閾値を下回ると、通信品質の低下を通知する通知パケットを、転送装置10aに送信する(矢印A2)。ここで、所定の閾値は実装に応じて決定され得るが、例えば、再送処理を伴わないプロトコルを用いた通信の品質がストリーミングに適さない程度に低下することが見込まれる通信品質が、所定の閾値として使用され得る。
通知パケットを受信すると、転送装置10aは、転送装置10aと転送装置10cの間のリンクにおいて、通信品質が劣化するおそれがあると判定する。転送装置10aと転送装置10cは、転送装置10aと転送装置10cの間のリンクが切断された場合の経路検索のための処理を行う。このため、ネットワーク中の各転送装置10が保持する経路情報が更新され、転送装置10aと転送装置10cの間のリンクが切断されている場合に使用可能なルートを検索する(手順Pr3)。この時のルート検索も、OSPFなどのルーティングプロトコルで行われるが、転送装置10aと転送装置10cは、使用中の経路の情報を、新たな経路の情報の記録に使用されない記憶領域に格納しておく。なお、新たな経路の検索に伴う処理の詳細は後述する。図1の例では、手順Pr1に示す経路R2が、転送装置10aと転送装置10cの間のリンクを使用しない場合の経路として得られたとする。
手順Pr4は、転送装置10aで行われる転送処理の例を示している。転送装置10aは、再送処理を伴うプロトコルを用いたフローであるフローF1とフローF2の転送に使用する経路を、経路R2に決定する。一方、転送装置10aは、再送処理を行わないプロトコルを用いたフローF3については、経路R1を用いて転送することを決定する。このため、フローF1かフローF2のいずれかに含まれるパケットは、手順Pr4に示すように、転送装置10a、転送装置10b、転送装置10cを介して、宛先に転送される。一方、フローF1に含まれるパケットは、経路R1に沿って、転送装置10aと転送装置10cを介して、宛先に転送される。
このように、実施形態にかかる方法では、通信品質が低下するまでは、いずれのフローも最適経路を用いて転送される。経路中の一部の通信品質が低下すると、通信品質が低下しているリンクの上流側に位置する転送装置10は、再送処理を行わないプロトコルを用いた通信に最適経路を用い、再送処理を伴うプロトコルでの通信は、最適経路とは異なる経路を用いる。すると、再送処理を伴うプロトコルを用いたフローは、最適経路を経由しなくなるため、UDPなどの再送処理を行わないプロトコルでの通信の品質は、再送処理を伴うプロトコルでの通信による影響を受けにくくなる。また、再送処理を伴うプロトコルでの通信で使用されるフローの転送経路が変更されるため、再送処理を伴わないプロトコルのフローの転送に使用する経路では、輻輳が解消され、その経路の通信品質も改善する。従って、再送処理を行わないプロトコルでの通信を高品質で行うことができる。
なお、図1を参照しながら説明した処理は一例であり、様々に変形されうる。例えば、フローF3で行う通信の開始前に、フローF3で送受信されるパケットと同等のパケット長のダミーパケットを、フローF3のパケットとして、フローF3の送信元が送信するように変形されてもよい。この場合、経路中の転送装置10は、ダミーパケットを用いて通信品質の測定や経路の設定などができる。すると、ユーザは、データの受信開始の時点からフローF3の通信品質が改善された状態で、データを受信できる。
<装置構成>
図2は、転送装置10の構成の例を説明する図である。転送装置10は、インタフェース(eth1〜eth3)、通信部11、制御部20、記憶部30を備える。通信部11は、送信部12と受信部13を有する。制御部20は、経路生成部21、品質測定部22、更新部23、振り分け部24、転送処理部25を有する。記憶部30は、ルーティングテーブル31、旧経路情報32、振り分け条件33、トポロジ情報34を保持する。なお、図2では、インタフェース数が3つの場合を例として図示しているが、転送装置10が有するインタフェースの数は実装に応じて任意に変更され得る。
図2は、転送装置10の構成の例を説明する図である。転送装置10は、インタフェース(eth1〜eth3)、通信部11、制御部20、記憶部30を備える。通信部11は、送信部12と受信部13を有する。制御部20は、経路生成部21、品質測定部22、更新部23、振り分け部24、転送処理部25を有する。記憶部30は、ルーティングテーブル31、旧経路情報32、振り分け条件33、トポロジ情報34を保持する。なお、図2では、インタフェース数が3つの場合を例として図示しているが、転送装置10が有するインタフェースの数は実装に応じて任意に変更され得る。
送信部12は、他の装置にパケットを送信する。このとき、送信部12は、転送処理部25から指定されたインタフェースを介して、処理対象のパケットを送信する。受信部13は、インタフェースを介して他の装置からパケットを受信する。
経路生成部21は、OSPFなどのルーティングプロトコルを用いて経路情報を生成し、ルーティングテーブル31に格納する。経路生成部21は、経路情報の生成の際に、トポロジ情報34も適宜参照する。トポロジ情報34は、ネットワーク中の転送装置10の接続関係を表す情報である。例えば、ルーティングプロトコルとしてOSPFが用いられる場合、トポロジ情報34は、リンクステートデータベース(LSDB、Link State Database)として実現される。品質測定部22は、ストリーミング通信に使用されるデータの転送元の転送装置10やサーバ装置との間の通信品質を測定する。なお、測定される通信品質は、遅延時間、パケットロス率、パケット遅延の変動などであるが、実装に応じて任意に変更され得る。更新部23は、旧経路情報32や振り分け条件33の情報を更新する。旧経路情報32は、通信品質の低下が通知される前に転送処理に使用していた経路の情報である。振り分け条件33は、通信品質の低下が通知されたことによって、新たに経路が計算された後に、旧経路情報32に記録された経路で転送するフローを特定するための処理条件が記録されている。振り分け部24は、振り分け条件33を用いて、再送処理を行わないプロトコルを用いたフロー中のパケットを他のパケットから区別するためのマーキングを行う。転送処理部25は、振り分け部24で行われたマーキングと、ルーティングテーブル31を用いて、各パケットの出力先のインタフェースを決定する。転送処理部25は、決定したインタフェースの情報とともに、転送対象のパケットを送信部12に出力する。
図3は、転送装置10のハードウェア構成の例を説明する図である。転送装置10は、プロセッサ111、メモリ112、バス114、ネットワークインタフェース115を備える。プロセッサ111は、任意の処理回路であり、Central Processing Unit(CPU)であってもよい。メモリ112は、RAM(Random Access Memory)とROM(Read Only Memory)を含む。プロセッサ111は、メモリ112に記憶されたプログラムを実行することができる。バス114は、プロセッサ111、メモリ112、ネットワークインタフェース115を、相互にデータの入出力が可能になるように接続する。ネットワークインタフェース109は、ネットワークとの情報の入出力を行う。転送装置10において、プロセッサ111は、制御部20として動作する。メモリ112は、記憶部30として動作する。通信部11は、ネットワークインタフェース115とプロセッサ111により実現される。ネットワークインタフェース115は、インタフェースとしても動作する。
図4は、サーバ装置40の構成の例を説明する図である。サーバ装置40は、通信部41、制御部50、記憶部60を備える。通信部41は、送信部42と受信部43を有する。制御部50は、配信処理部51、品質測定要求部52、停止制御部53を有する。
送信部42は、転送装置10やサーバ装置40と通信している端末5に、パケットを送信する。受信部13は、転送装置10や端末5からパケットを受信する。端末5からストリーミング通信が要求されると、品質測定要求部52は、端末5との通信経路中に含まれている転送装置10に対して、通信品質の測定を指示する。さらに、品質測定要求部52は、通信品質の測定を指示してから所定の期間中は、端末5宛てのダミーパケットを生成し、送信部42経由で送信する。端末5宛てのダミーパケットの大きさや送信頻度などは、ストリーミング通信で送信されるデータパケットと同様に設定される。このため、ダミーパケットを用いることで、経路中の転送装置10は、ストリーミング通信が行われたときと同様の状況下で通信品質の測定を行うことができる。
品質測定要求部52からのダミーパケットの送信が終わると、配信処理部51は、端末5から要求されたデータを含むパケットを生成し、送信部42を介して、生成したパケットを送信する。停止制御部53は、ストリーミング通信が終了すると、終了するストリーミング通信を高品質で行うためにルーティングテーブル31を更新した転送装置10に対して、ストリーミング通信の終了を通知するための処理を行う。記憶部60は、制御部50での処理に使用されるデータや、制御部50での処理によって得られたデータを、適宜、保持する。
図5は、サーバ装置40のハードウェア構成の例を説明する図である。サーバ装置40は、プロセッサ101、メモリ102、バス105、ネットワークインタフェース109を備える。サーバ装置40は、さらに、入力装置103、出力装置104、記憶装置106、可搬記憶媒体駆動装置107の1つ以上を有していても良い。プロセッサ101は、任意の処理回路であり、例えば、Central Processing Unit(CPU)として実現される。プロセッサ101は、メモリ102や記憶装置106に記憶されたプログラムを実行することができる。メモリ102は、プロセッサ101のワーキングメモリとして使用される。メモリ102として、RAM(Random Access Memory)のような半導体メモリが使用され得る。バス105は、プロセッサ101、メモリ102、ネットワークインタフェース109を、相互にデータの入出力が可能になるように接続する。ネットワークインタフェース109は、ネットワークとの情報の送受信を行う。ネットワークインタフェース109として、NIC(Network Interface Card)、無線LAN(Local Area Network)カード等が使用される。
入力装置103は、キーボードなど、情報の入力に使用される任意の装置であり、出力装置104は、ディスプレイなど、データの出力に使用される任意の装置である。可搬記憶媒体駆動装置107は、メモリ102や記憶装置106のデータを可搬記憶媒体108に出力することができ、また、可搬記憶媒体108からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体108は、持ち運びが可能な任意の記憶媒体である。記憶装置106として、EPROM(Erasable Programmable ROM)、又はハードディスクドライブ(Hard Disc Drive)等の不揮発性のメモリが使用され得る。
サーバ装置40において、制御部50はプロセッサ101によって実現され、記憶部60は、メモリ102と記憶装置106によって実現される。さらに、ネットワークインタフェース109とプロセッサ101が通信部41として動作する。
<実施形態>
図6は、ネットワークと通信経路の例を説明する図である。例えば、端末5がネットワークAに含まれており、サーバ装置40がネットワークBに含まれているとする。ネットワークAは、転送装置10aに接続されており、ネットワークBは転送装置10gに接続されている。さらに、端末5とサーバ装置40の間の通信を中継可能なネットワークに、転送装置10a〜10gが含まれており、転送装置10a〜10gは、図6のケースC1に図示するように接続されているとする。
図6は、ネットワークと通信経路の例を説明する図である。例えば、端末5がネットワークAに含まれており、サーバ装置40がネットワークBに含まれているとする。ネットワークAは、転送装置10aに接続されており、ネットワークBは転送装置10gに接続されている。さらに、端末5とサーバ装置40の間の通信を中継可能なネットワークに、転送装置10a〜10gが含まれており、転送装置10a〜10gは、図6のケースC1に図示するように接続されているとする。
ケースC2は、端末5とサーバ装置40の間の通信経路として、転送装置10a、転送装置10d、転送装置10c、転送装置10gを介する経路が得られた場合の例を示す。以下、ケースC1に示すネットワークにおいて、ケースC2に示す経路が最適な経路として検索された場合を例として、実施形態にかかる通信の例を説明する。なお、以下の説明では、経路検索の際に、ルーティングプロトコルとしてOSPFが用いられる場合を例とする。また、トポロジ情報34は、リンクステートデータベース(LSDB)であるとする。さらに、転送装置10a〜10gは、1つのOSPFエリアに属しているものとする。
以下、実施形態にかかる処理を、端末からサーバ装置へのストリーミングの要求、通信品質の評価、新たな経路の取得、複数の経路を用いた転送処理、障害の発生時の処理と終了処理に分けて説明する。なお、以下の説明では、いずれの転送装置10での処理であるかを分かりやすくするために、符号の後にその転送装置10の符号の末尾のアルファベットを示すことがある。例えば、振り分け部24aは転送装置10a中の振り分け部24であり、振り分け部24bは転送装置10b中の振り分け部24である。さらに、以下の説明では、再送処理を行わないプロトコルとして、UDPが用いられている場合を例とする。
(1)端末5からサーバ装置へのストリーミングの要求
図7は、端末5からのサーバ装置40へのアクセスの例を説明する図である。図7のケースC5は、図6のケースC2に示す経路上の転送装置10の一部を接続に使用されているインタフェースの識別情報も含めて示している。ケースC5の例では、端末5のインタフェースeth1は、転送装置10aのインタフェースeth3に接続されている。転送装置10aのインタフェースeth1は、転送装置10dのインタフェースeth3に接続されている。
図7は、端末5からのサーバ装置40へのアクセスの例を説明する図である。図7のケースC5は、図6のケースC2に示す経路上の転送装置10の一部を接続に使用されているインタフェースの識別情報も含めて示している。ケースC5の例では、端末5のインタフェースeth1は、転送装置10aのインタフェースeth3に接続されている。転送装置10aのインタフェースeth1は、転送装置10dのインタフェースeth3に接続されている。
この状態で、端末5は、ルーティングテーブルRTを保持しているとする。ルーティングテーブルRTには、パケットの宛先ネットワークのアドレスごとに、インタフェースとメトリックが記録されている。例えば、192.168.240.0/24のネットワーク中の装置に宛てたパケットは、端末5が備えるインタフェースeth1から送信される。さらに、172.128.100.0/24のネットワーク、120.110.220.0/24のネットワーク、150.200.120.0/24のネットワーク中の装置に宛てたパケットも、端末5が備えるインタフェースeth1から送信される。メトリックは、同じ宛先に対して適用可能なエントリが複数ある場合に、いずれのエントリを用いて転送処理を行うかを決定するために使用される。
図8は、ストリーミングを要求する処理の例を説明する図である。端末5は事前にWebサーバ(図示せず)からサーバ装置40のURL(Uniform Resource Locator)情報をメタファイルとして取得しているとする。ストリーミングによるデータ受信を開始しようとする端末5は、取得済みのURLを用いて、ストリーミングリクエストをサーバ装置40に送信する(ケースC11)。端末5とサーバ装置40の間でのパケットの送受信は、ルーティングプロトコルで求められた経路に沿って行われる。また、各転送装置10にも、図6のケースC2に示す経路のうち、その装置からの転送に使用される情報が、ルーティングテーブル31に記録されている。このため、ストリーミングリクエストは、ケースC11中の矢印に示すように、端末5から、転送装置10a、転送装置10d、転送装置10c、転送装置10gを介して、サーバ装置40に到達する。
サーバ装置40の受信部43は、ストリーミングリクエストを受信すると、ストリーミングリクエストを配信処理部51に出力する。配信処理部51は、コンテンツのメタデータ、サーバアクセス情報などを含むパケットを生成し、生成したパケットを、送信部42を介して端末5に向けて返信する(ケースC12)。ケースC12の処理では、ケースC11で送信されたストリーミングリクエストの転送経路の逆向きの経路で、パケットが転送される。
端末5はサーバ装置40から取得したサーバアクセス情報を元に、サーバ装置40にストリーミング配信の開始要求(配信開始要求)を送信する。配信開始要求の転送経路はケースC11と同様である。従って、配信開始要求は、ケースC13中の矢印で示す経路で転送される。
(2)通信品質の評価
サーバ装置40の受信部43は、配信開始要求を受信すると、配信処理部51に出力する。配信処理部51は、ストリーミング通信の開始が要求されていることを、品質測定要求部52に通知する。品質測定要求部52は、配信開始要求の送信元の端末5宛に、評価開始要求を送信する。評価開始要求の転送経路を、図9中に実線の矢印で示す。
サーバ装置40の受信部43は、配信開始要求を受信すると、配信処理部51に出力する。配信処理部51は、ストリーミング通信の開始が要求されていることを、品質測定要求部52に通知する。品質測定要求部52は、配信開始要求の送信元の端末5宛に、評価開始要求を送信する。評価開始要求の転送経路を、図9中に実線の矢印で示す。
図9は、評価開始要求とダミーパケットの転送経路の例を説明する図である。図9の実線の矢印は、評価開始要求の転送経路の例である。品質測定要求部52は、評価開始要求の送信後、所定の期間にわたって、ダミーパケットを端末5宛てに送信する。ダミーパケットの転送経路は、図9の破線の矢印で示すとおりである。なお、ダミーパケットが送信される「所定の期間」は、通信品質の評価にかかる時間より長い時間に設定されるものとする。
パケットP1は、評価開始要求のフォーマットの例である。評価開始要求は、ダミーパケットの送信中に、ストリーミング通信を要求した端末5に至る経路の通信品質の評価を、その経路中の転送装置10に要求するために使用される。評価開始要求は、TCPプロトコルを用いて送信される。評価開始要求には、IPヘッダ、TCPヘッダが含まれ、さらに、パケットが評価開始要求であることを示すデータが含まれる。パケットが評価開始要求であることを示すデータは、実装に応じて任意に設定されるが、例えば、通信品質の評価開始を意味するフラグが用いられてもよい。
評価開始要求の宛先IPアドレスは、端末5に割り当てられたアドレスに設定されているので、端末5とサーバ装置40の間の通信経路中の転送装置10を介して端末5に転送される。ここで、評価開始要求は、宛先IPアドレスを端末5のアドレスに設定することによって、端末5とサーバ装置40の間の経路中の各転送装置10に対して、ストリーミング通信に用いられるデータの宛先の通知としても使用される。すなわち、評価開始要求を受信した各転送装置10は、評価開始要求の宛先IPアドレスを、これから開始されるストリーミング通信の宛先として記憶できる。
評価開始要求を受信した転送装置10中の受信部13は、評価開始要求を受信したインタフェースの識別情報とともに、評価開始要求を品質測定部22と転送処理部25に出力する。すると、品質測定部22は、評価開始要求を自装置に転送してきた転送元との間のリンクの通信品質の測定が要求されたと判定すると共に、評価開始要求の宛先IPアドレスを記憶する。なお、評価開始要求を自装置に転送してきた転送元は、ストリーミング通信のデータを自装置に転送してくる装置である。このため、評価開始要求により、ストリーミング通信のデータの転送元との間の通信品質の評価が要求されているともいえる。
例えば、転送装置10cが、eth1という識別情報で識別されるインタフェースから評価開始要求を受信したとする。この場合、品質測定部22cと転送処理部25cに評価開始要求と受信インタフェースがeth1であることを示す情報が入力される。品質測定部22cは、インタフェースeth1を介して接続されている転送装置10(転送装置10g)を評価開始要求の転送元であると判定する。さらに、品質測定部22cは、転送装置10gに割り当てられたIPアドレスを求めるとともに、転送装置10gのIPアドレスを用いて、転送装置10gとの間のリンクの通信品質を測定する。
一方、転送処理部25cは、評価開始要求が入力されると、評価開始要求の宛先とルーティングテーブル31cを用いて、転送先を求める。転送処理部25cでの処理により特定されたインタフェースを介して、送信部12cが評価開始要求を転送することにより、評価開始要求は転送装置10dに転送される。このため、転送装置10dでも転送装置10cと同様の処理が行われる。さらに、転送装置10dは、評価開始要求を転送装置10aに転送する。
以下、図10と図11を参照しながら、通信品質の評価の例を説明する。以下、Linaxに標準実装されているnetperfを用いて通信品質を評価する場合を例として説明するが、通信品質の求め方は、実装に応じて任意に変更され得る。また、以下の説明では、評価開始要求の転送元の転送装置10に割り当てられたIPアドレスを、CDPプロトコルを用いて求める場合を例として説明するが、IPアドレスの求め方も実装に応じて変更され得る。
図10は、評価開始要求の転送元に割り当てられたアドレスの特定方法の例を説明する図である。図10の例では、転送装置10gのうち、サーバ装置40との通信に使用されるインタフェースのアドレスは192.168.40.10であり、転送装置10cとの通信に使用されるインタフェースのアドレスは192.168.30.20である。転送装置10cのうち、転送装置10gとの通信に使用されるインタフェース(eth1)のアドレスは192.168.30.10であり、転送装置10dとの通信に使用されるインタフェース(eth0)のアドレスは192.168.20.20である。転送装置10dのうち、転送装置10cとの通信に使用されるインタフェースのアドレスは192.168.20.10であり、転送装置10aとの通信に使用されるインタフェースのアドレスは192.168.10.10である。
例えば、転送装置10cがeth1で識別されるインタフェースから評価開始要求を受信した場合、品質測定部22cは、評価開始要求と受信インタフェースがeth1であることを示す情報を取得する。品質測定部22cは、CDPプロトコルのshow cdp neighbors detailコマンドを用いることにより、転送装置10cに隣接している転送装置10のアドレス、ホスト名、通信に使用しているインタフェースの識別情報を求める。ここで、通信に使用しているインタフェースの識別情報は、コマンドを実行している転送装置10c自身が、隣接している転送装置10との通信に使用しているインタフェースの識別情報である。
図10には、品質測定部22cがshow cdp neighbors detailコマンドを用いて取得した情報の例も記載している。図10の例では、隣接している転送装置10として、転送装置10dと転送装置10gが検出されている。
転送装置10dの情報として、転送装置10dが転送装置10cとの通信に使用するIPアドレスが192.168.20.10であることが得られている。さらに、転送装置10dと通信する際に転送装置10cが使用しているインタフェースの識別情報がeth0であることが得られている。転送装置10dについては、さらに、PlatformがXXXX、CapabilityがRouter、Holdtimeが150に設定されていることが得られている。さらに、転送装置10cが転送装置10dとの通信に使用するeth0のインタフェースのポートIDがFastEthernet0/1であることも得られている。転送装置10dのIPアドレスと、転送装置10cが転送装置10dと通信する際に使用するインタフェースの識別情報の組み合わせを、図10にXとして示す。
転送装置10gの情報として、転送装置10gが転送装置10cとの通信に使用するIPアドレスが192.168.30.20であることが得られている。さらに、転送装置10gと通信する際に転送装置10cが使用しているインタフェースの識別情報がeth1であることが得られている。転送装置10gについては、さらに、PlatformがXXXX、CapabilityがRouter、Holdtimeが152に設定されていることが得られている。さらに、転送装置10cが転送装置10dとの通信に使用するeth1のインタフェースのポートIDがFastEthernet0/1であることも得られている。転送装置10gのIPアドレスと、転送装置10cが転送装置10gと通信する際に使用するインタフェースの識別情報の組み合わせを、図10にYとして示す。
図10の例では、XとYに示す2つの転送装置10の情報が、転送装置10cの隣接ルータの情報として得られている。そこで、品質測定部22cは、評価開始要求を受信したインタフェースの識別情報を用いて、検索により得られた情報から、評価開始要求を転送装置10cに転送した転送装置10の情報を特定する。品質測定部22cは、評価開始要求を受信したインタフェースの識別情報がYの組み合わせに含まれていることから、IPアドレス=192.168.30.20が割り当てられた装置(転送装置10g)が評価開始要求の転送元であると判定する。
品質測定部22cは、評価開始要求の転送元のIPアドレスを用いてnetperfコマンド実行することにより、転送装置10gとの間の通信状況に関する情報を取得する。例えば、品質測定部22cは、転送装置10cと転送装置10gとの間でのパケットロスレート、スループットなどを測定することができる。なお、図9を参照しながら説明したように、評価開始要求が送信されてから、サーバ装置40と端末5の間の通信経路中の各転送装置10において通信品質評価が終了するまでは、サーバ装置40から端末5に向けてダミーパケットが送信されている。このため、転送装置10cでの通信品質評価が行われている間は、ダミーパケットを用いて、疑似的に、サーバ装置40と端末5がストリーミング通信をしている場合の通信環境が実現されていることになる。換言すると、品質測定部22cが求めたパケットロスレートは、サーバ装置40が端末5との間でストリーミング通信を行っている場合に、ストリーミング通信の転送元の転送装置10gとの間で得られるパケットロスレートに近似できる。同様に、品質測定部22cが求めたスループットは、サーバ装置40が端末5との間でストリーミング通信を行っている場合に、転送装置10gと転送装置10cの間で得られるスループットに近似できる。品質測定部22cは、得られた通信品質を予め記憶している閾値と比較することによって、転送装置10cにデータを転送してくる転送装置10との間のリンクの通信品質が良好であるかを判定する。
図11は、通信品質評価に使用される閾値と制御メッセージの例を説明する図である。図11を参照しながら、通信品質の評価の際に、パケットロスレートが使用される場合の処理を説明する。各転送装置10の品質測定部22は、予め、図11のテーブルT1に示すような閾値情報を記憶している。品質測定部22は、得られたパケットロスレートがテーブルT1中の閾値Th未満の場合、品質評価の対象となっているリンクの通信品質が高いと判定する。一方、得られたパケットロスレートがテーブルT1中の閾値Th以上の場合、品質測定部22は、品質評価の対象となっているリンクの通信品質が低いと判定する。例えば、閾値Thの値が2%であるのに対して、転送装置10gと転送装置10cとの間のパケットロスレートが0.05%である場合、品質測定部22cは、転送装置10gと転送装置10cとの間のリンクの通信品質が高いと判定する。ここで、評価開始要求の送信元はストリーミング通信で送信されるデータの送信元であるので、評価開始要求の転送元はストリーミング通信で送信されるデータの転送元でもある。さらに、通信品質の評価中は、ストリーミング通信で送信されるデータの代替えとしてダミーパケットがサーバ装置40から端末5に向けて送信されている。従って、評価開始要求の転送元との間のリンクの通信品質が高い場合、ストリーミング通信で送信されるデータの通信品質も高いと予測される。
転送装置10cでの処理と同様の処理により、転送装置10dは転送装置10cとの間のリンクの通信品質を評価し、転送装置10aは転送装置10dとの間のリンクの通信品質を評価する。ここで、転送装置10dにおいて、転送装置10cと転送装置10dとの間のリンクのパケットロスレートが、閾値Thを超えたとする。すると、転送装置10dは、転送装置10cと転送装置10dとの間のリンクでの通信品質が低いと判定する。この場合、現在通信中の全ての通信を、使用されている経路で転送すると、ストリーミング通信など、再送処理を伴わないプロトコルで送受信されている通信の品質が低下するおそれがある。そこで、品質測定部22dは、通信品質が低下していることを、ストリーミング通信の転送元となる転送装置10cに対して通知するために、トリガアップデート起動指示メッセージを生成する。品質測定部22dは、送信部12dを介して、トリガアップデート起動指示メッセージを転送装置10cに送信する。
図11のパケットP11は、トリガアップデート起動指示メッセージのフォーマットの例である。トリガアップデート起動指示メッセージは、ストリーミング通信の転送元となる転送装置10に対して通信品質の低下を通知する際に使用される。トリガアップデート起動指示メッセージは、IPヘッダ、TCPヘッダ、データを備える。データには、そのパケットがトリガアップデート起動指示メッセージであることを示す情報が含まれている。トリガアップデート起動指示メッセージであることを示す情報の形式は、実装に応じて任意に変更され得る。
(3)新たな経路の取得
図12のケースC21は、転送装置10dが転送装置10cとの間のリンクでの通信品質が低いと判定した場合の例である。この場合、端末5宛の全てのパケットを転送装置10cと転送装置10dとの間のリンクを介して転送すると、ストリーミング通信の品質が低くなる可能性がある。そこで、再送処理の可能なプロトコルを用いたパケットの転送に用いる経路を、ストリーミング通信などUDPを用いた通信のデータパケットの転送に用いる経路とは異なる経路にするための処理が開始される。
図12のケースC21は、転送装置10dが転送装置10cとの間のリンクでの通信品質が低いと判定した場合の例である。この場合、端末5宛の全てのパケットを転送装置10cと転送装置10dとの間のリンクを介して転送すると、ストリーミング通信の品質が低くなる可能性がある。そこで、再送処理の可能なプロトコルを用いたパケットの転送に用いる経路を、ストリーミング通信などUDPを用いた通信のデータパケットの転送に用いる経路とは異なる経路にするための処理が開始される。
まず、転送装置10d中の品質測定部22dは、新たな経路を求めるために、転送装置10cと転送装置10dとの間のリンクが切断された場合と同様の状況を、疑似的に作りだす。このとき、品質測定部22dは、転送装置10cと転送装置10dの間のリンクが切断された場合のトポロジ情報34dを生成する。すなわち、転送装置10dにおいて、品質測定部22dは、転送装置10dが保持しているリンクステートデータベースにおいて、転送装置10cと転送装置10dの間のリンクが切断されたことを記録する。なお、この処理と合わせて、経路生成部21dは、転送装置10dから受信するHelloパケットを無視するように設定される。Helloパケットは、隣接する転送装置10間での生存確認に使用されるパケットであり、所定期間ごとに、各転送装置10からブロードキャストされている。ただし、擬似的に切断されている経路は、後述するようにUDPパケットの転送に使用されることから、経路生成部21dの代わりに、品質測定部22dがHelloパケットを用いて生存確認を行う。さらに、品質測定部22dは、転送装置10c宛てのトリガアップデート起動指示メッセージを生成し、送信部12dを介して、転送装置10cに送信する(矢印A11)。
転送装置10c中の品質測定部22cは、受信部13cを介して、トリガアップデート起動指示メッセージを取得する。すると、品質測定部22cも、転送装置10cが保持しているリンクステートデータベースにおいて、転送装置10cと転送装置10dの間のリンクが切断されたことを記録する。さらに、品質測定部22cは、トリガアップデート起動指示メッセージによって、転送装置10dとの間のリンクが擬似的に切断されることを認識するので、転送装置10dから送信されるHelloパケットを用いた転送装置10dの生存確認を開始する。さらに、品質測定部22cは、経路生成部21cに対して、転送装置10dから送信されたHelloパケットを無視するように設定を変更する。
ケースC22は、転送装置10cと転送装置10dのいずれにおいてもリンクステートデータベースが更新された場合の処理の例を示している。以下の説明では、転送装置10bが代表ルータ(DR、Designated Router)として動作している場合の例を説明する。ここで、代表ルータは、ネットワーク中の全ての転送装置10からLSA(link-state advertisement)として、トポロジ情報34を取得する。代表ルータは、いずれかの転送装置10でトポロジ情報34が更新されると、他の転送装置10に対して、更新後のトポロジ情報を通知する。例えば、転送装置10d中の経路生成部21dは、リンクステートデータベースが更新されると、更新後のリンクステートデータベースの情報を、転送装置10bに通知する(矢印A21、A22)。同様に、転送装置10c中の経路生成部21cも、転送装置10c中のリンクステートデータベースが更新されると、更新後のリンクステートデータベースの情報を、転送装置10bに通知する(矢印A23)。
転送装置10bの受信部13bは、転送装置10cと転送装置10dの各々から受信したリンクステートデータベースの情報を、更新部23bに出力する。更新部23bは、リンクステートデータベースの情報が更新されたことを特定すると、新たな経路の検索のために疑似的なリンク切断が通知された可能性があると判定する。そこで、更新部23bは、ネットワーク中の全ての転送装置10に対して、経路情報を旧経路情報32として記録することを要求する。
図13は、使用中の経路を記憶する処理の例を説明する図である。転送装置10bから経路情報の記録を要求された転送装置10のうち、端末5宛ての評価開始要求を受信している転送装置10は、端末5の含まれているネットワークへの転送経路の情報を旧経路情報32として保存する。例えば、転送装置10cの更新部23cは、ルーティングテーブル31c中で、端末5の含まれているネットワークへの転送経路の情報を旧経路情報32にコピーする。転送装置10g、転送装置10d、転送装置10aのいずれも、評価開始要求を受信したことにより、端末5宛のストリーミング通信のために経路設定が行われていることを認識できる。このため、転送装置10g、転送装置10d、転送装置10aにおいても、端末5の含まれているネットワークへの転送経路の情報が、旧経路情報32として保存される。従って、サーバ装置40からネットワークA中の端末5に送信されるパケットの転送処理を行っている転送装置10の各々では、ネットワークA中の装置宛ての経路情報を旧経路情報32として保持される。なお、評価開始要求を受信していない転送装置10では、経路情報の記録要求を無視してもよい。この場合、評価開始要求を受信していない転送装置10では、旧経路情報32を保持しない。
図13には、転送装置10a、転送装置10c、転送装置10d、転送装置10gの各々が保持する旧経路情報32の例を示している。図13の例では、各エントリのうち、宛先ネットワークと、出力先インタフェースが記録されているが、実装によっては、メトリック値なども旧経路情報32に含められてもよい。なお、以下の説明でも、ネットワークAのネットワークアドレスは、192.168.200.0/24であるとする。また、転送経路を理解しやすくするために、各転送装置10の出力先インタフェースの欄に、そのインタフェースから出力されたパケットの転送先をカッコ書きで示している。
旧経路情報32gによると、転送装置10gは、ネットワークA宛てのパケットをeth2のインタフェースから出力することにより、転送装置10cに転送している。旧経路情報32cによると、転送装置10cは、ネットワークA宛てのパケットをeth2のインタフェースから出力することにより、転送装置10dに転送している。旧経路情報32dによると、転送装置10dは、ネットワークA宛てのパケットをeth1のインタフェースから出力することにより、転送装置10aに転送している。旧経路情報32aによると、転送装置10aは、ネットワークA宛てのパケットをeth3のインタフェースから出力することにより、ネットワークAに転送している。
図14は、新たな経路の検索処理の例を説明する図である。転送装置10b中の更新部23bは、各転送装置10に経路の保存を要求した後で、転送装置10cと転送装置10dから通知された情報を用いて、トポロジ情報34bを更新する。このため、トポロジ情報34bには、転送装置10cと転送装置10dの間のリンクが切断されているという情報が記録される。経路生成部21bは、トポロジ情報34bの更新をネットワーク中の他の転送装置10に通知するために、トリガアップデートを実行する。トリガアップデートでは、全ての転送装置10に対して、トポロジ情報34bの更新内容が通知される。
トリガアップデートを受信した各転送装置10では、経路生成部21は、トリガアップデートに従って、トポロジ情報34を更新する。なお、転送装置10cと転送装置10dでは、既に、トポロジ情報34が更新されているので、トリガアップデートの受信に際してトポロジ情報34c、トポロジ情報34dは更新されない。各転送装置10がトリガアップデートを受信すると、いずれの転送装置10においても、転送装置10cと転送装置10dの間のリンクは、経路計算の上では、切断されていると扱われる。このため、図14では、転送装置10cと転送装置10dの間のリンクを破線で示している。
トリガアップデートによるトポロジ情報34の更新後、各転送装置10の経路生成部21は、経路情報を再計算するとともに、ルーティングテーブル31を更新する。経路情報の再計算には、OSPFが用いられるとする。経路計算の結果、サーバ装置40から端末5に至る新たな経路として、転送装置10g、転送装置10c、転送装置10b、転送装置10aを介して、端末5に至る経路(矢印R11)が得られたとする。以下、新たに得られた経路のことを「新経路」と記載することがある。一方、擬似的にリンクが切断された上体が生成される前に使用されていた経路を「旧経路」と記載することがある。
図14のテーブルT11〜T14は、ネットワークA宛てのパケットの処理に使用される新経路の情報の例である。テーブルT11は転送装置10gが計算した経路情報、テーブルT12は転送装置10cが計算した経路情報であるとする。さらに、テーブルT13は転送装置10bが計算した経路情報であり、テーブルT14は転送装置10aが計算した経路情報である。
テーブルT11によると、転送装置10gは、ネットワークA宛てのパケットをeth2のインタフェースから出力することにより、転送装置10cに転送する。テーブルT12によると、転送装置10cは、ネットワークA宛てのパケットをeth3のインタフェースから出力することにより、転送装置10bに転送する。テーブルT13によると、転送装置10bは、ネットワークA宛てのパケットをeth2のインタフェースから出力することにより、転送装置10aに転送する。テーブルT14によると、転送装置10aは、ネットワークA宛てのパケットをeth3のインタフェースから出力することにより、ネットワークAに転送する。
(4)複数の経路を用いた転送処理
図15は、旧経路と新経路の例を説明する図である。経路R11は、転送装置10cと転送装置10dのリンクが切断された状況を擬似的に生成したことによって計算された新経路である。一方、サーバ装置40から転送装置10g、転送装置10c、転送装置10d、転送装置10aを介して端末5に至る経路R12は、旧経路であり、いずれのリンクでも障害が発生していない場合に得られる最適経路でもある。
図15は、旧経路と新経路の例を説明する図である。経路R11は、転送装置10cと転送装置10dのリンクが切断された状況を擬似的に生成したことによって計算された新経路である。一方、サーバ装置40から転送装置10g、転送装置10c、転送装置10d、転送装置10aを介して端末5に至る経路R12は、旧経路であり、いずれのリンクでも障害が発生していない場合に得られる最適経路でもある。
以下、新経路と、旧経路を用いた転送処理について説明する。各転送装置10の更新部23は、更新後のルーティングテーブル31中の経路と異なる経路情報が旧経路情報32に記録されている場合、旧経路情報32中の情報をルーティングテーブル31に追加する。例えば、転送装置10a中の更新部23aは、ルーティングテーブル31中の情報(図14のテーブルT14)と旧経路情報32a(図13)を比較する。更新部23aは、両者が同じ経路であるので、新たな経路を追加せずにルーティングテーブル31aの更新を終了する。転送装置10g中の更新部23gは、ルーティングテーブル31中の情報(図14のテーブルT11)と旧経路情報32g(図13)を比較する。更新部23gも、両者が同じ経路であるので、新たな経路を追加せずにルーティングテーブル31gの更新を終了する。
転送装置10dでは、旧経路情報32d中にはネットワークA宛ての経路が含まれているが、ルーティングテーブル31dには、ネットワークA宛ての経路が含まれていない。そこで、更新部23dは、旧経路情報32d(図13)中のネットワークA宛ての経路をルーティングテーブル31dに追加する。
転送装置10c中の更新部23cは、ルーティングテーブル31中の情報(図14のテーブルT12)と旧経路情報32c(図13)を比較する。すると、いずれにもネットワークA宛ての経路が含まれているが、両者の出力先は異なる。そこで、更新部23cは、旧経路情報32c中の経路をルーティングテーブル31cに追加する。このとき、更新部23cは、旧経路情報32c中の経路(旧経路)に対応付けられるメトリックを、ルーティングテーブル31c中の経路(新経路)のメトリックよりも大きな値に設定する。すなわち、旧経路情報32cに記録されていた旧経路が、経路計算によって得られた新経路よりも優先されないようにメトリックを設定する。図15の例では、ルーティングテーブル31中に記録されていたネットワークA宛の経路のメトリック値が30であるとする。そこで、更新部23cは、旧経路情報32cからルーティングテーブル31cに追加する経路に対応付けるメトリック値を31に設定している。なお、旧経路と新経路の間のメトリックの差は、旧経路のメトリックの方が新経路のメトリックよりも大きいという条件下で、実装に応じて任意に設定され得る。
以上の処理により、転送装置10a〜10d、10gで得られたルーティングテーブル31は、図15に示す通りになる。従って、転送装置10a、転送装置10b、転送装置10d、転送装置10gでは、ネットワークA宛ての経路を、各々1つ保持する。一方、転送装置10cにおいては、ネットワークA宛ての経路は、転送装置10bに転送する経路と、転送装置10dに転送する経路の2つを保持している。
図15のルーティングテーブル31cは、ネットワークA宛の経路として複数の経路を備えるので、転送装置10cは、ネットワークA宛のパケットを複数の経路に振り分けることができる。このように振り分け処理を行う転送装置10は、ルーティングテーブル31の更新が終了すると、サーバ装置40に対して、データ通信の開始要求を送信する。なお、振り分け処理を行う転送装置10は、サーバ装置40のIPアドレス等を、評価開始要求の送信元から特定している。例えば、図15の例では、転送装置10c中の更新部23cは、更新処理が終わると、サーバ装置40に対して、データ通信の開始要求を生成し、送信部12cを介して送信する(矢印A31)。
転送装置10cのように振り分け処理を行う転送装置10では、ルーティングテーブル31の設定の際に、振り分け条件33も設定される。例えば、転送装置10cでは、更新部23cは、旧経路情報32cとして記憶している旧経路をルーティングテーブル31cに追加する際に、UDPで送受信されるパケットを、旧経路に振り分けることを設定する。このため、振り分け条件33cには、ネットワークA宛てのパケットのうち、UDPで送受信されるパケットが転送装置10dを介する経路(R12)に振り分けることが設定される。
図16は、振り分け処理のために行われるマーキングの例を説明する図である。図16には、振り分け条件33cとしてmangleテーブルが使用される場合の例を示している。振り分け条件33のうち、「−A PREROUTING」オプションは、転送対象のパケットからマーキングの対象が選択されることを表す。「−d」オプションは、そのオプションで指定された宛先宛てのパケットがマーキングの対象となりうることを表わす。「−p」オプションは、そのオプションで指定されたプロトコルのパケットがマーキングの対象となりうることを表わす。従って、振り分け条件33cは、転送対象のパケットの宛先IPアドレスが192.168.200.0/24であり、かつ、UDPを用いたパケットである場合、31というマーキング情報をパケットの末尾に付すことを表わしている。なお、以下の説明では、マーキング情報は、ルーティングテーブル31に追加された旧経路のメトリック値と同じ値であるとする。端末5に割り当てられたIPアドレスは192.168.200.10であるので、端末5宛のパケットのうち、UDPで送受信されるパケットには、マーキングが行われる。振り分け部24cは、振り分け条件33cと受信パケットのIPヘッダ中の情報を用いて、マーキングを行うかを判定する。
例えば、パケットP31に示すTCPパケットが振り分け部24cに入力されたとする。この場合、振り分け部24cは、振り分け条件33cのプロトコルの指定とパケットP31中で使用されているトランスポート層のプロトコルが異なるので、マーキング処理を行わない。一方、パケットP32に示すUDPパケットが振り分け部24cに入力されると、振り分け部24cは、振り分け条件33cのプロトコルの情報を用いて、パケットP32をマーキング処理の対象と認識する。このため、振り分け部24cは、パケットP32の末尾にマーキング情報を付加することにより、パケットP32をパケットP33に示すように変換する。
以下、図15と図16を参照しながら、サーバ装置40から送信されたパケットがUDPパケットである場合とTCPパケットである場合について、マーキングの詳細やマーキング後の振り分け処理を含めて、転送処理の例を説明する。なお、以下の説明では、UDPパケットは、データ通信の開始要求に応じて送信されたパケットの場合を例として説明するが、サーバ装置40から送信されるUDPパケットは、ストリーミング通信以外の通信に用いられるパケットであってもよい。
(4a)UDPパケットの転送処理
図15の矢印A31に示すように、転送装置10cがサーバ装置40に対してデータ通信の開始要求を送信したとする。すると、サーバ装置40では、受信部43がデータ通信の開始要求を受信する。品質測定要求部52は、受信部43を介してデータ通信の開始要求を取得する。品質測定要求部52は、ダミーパケットの送信中である場合、ダミーパケットの送信を停止すると共に、配信処理部51に対して、端末5から要求されたデータの送信を要求する。なお、ダミーパケットの送信が終了した後にデータ通信の開始要求がサーバ装置40に到達した場合も、品質測定要求部52は、配信処理部51に端末5から要求されたデータの送信を要求する。配信処理部51は、ストリーミング配信の開始要求によって配信が要求されたデータを含むUDPパケットとして、図16のパケットP32を、送信部42を介して、端末5に向けて送信したとする。
図15の矢印A31に示すように、転送装置10cがサーバ装置40に対してデータ通信の開始要求を送信したとする。すると、サーバ装置40では、受信部43がデータ通信の開始要求を受信する。品質測定要求部52は、受信部43を介してデータ通信の開始要求を取得する。品質測定要求部52は、ダミーパケットの送信中である場合、ダミーパケットの送信を停止すると共に、配信処理部51に対して、端末5から要求されたデータの送信を要求する。なお、ダミーパケットの送信が終了した後にデータ通信の開始要求がサーバ装置40に到達した場合も、品質測定要求部52は、配信処理部51に端末5から要求されたデータの送信を要求する。配信処理部51は、ストリーミング配信の開始要求によって配信が要求されたデータを含むUDPパケットとして、図16のパケットP32を、送信部42を介して、端末5に向けて送信したとする。
サーバ装置40から送信された端末5宛てのパケットは、転送装置10gに到達する。転送装置10g中の受信部13gは、パケットP32を受信すると、振り分け部24gに出力する。転送装置10gでは、振り分け条件33gが設定されていないので、振り分け部24gは、パケットP32を、転送処理部25gに出力する。転送処理部25gは、ルーティングテーブル31g(図15)を用いて、端末5宛てのパケットをeth2で識別されるインタフェースから出力することを特定する。送信部12gは、パケットP32をeth2で識別されるインタフェースから送信するので、パケットP32は、転送装置10cに転送される。
転送装置10c中の振り分け部24cは、受信部13cを介して、パケットP32を取得する。振り分け部24cは、パケットP32中のIPヘッダに、宛先IPアドレス(DA)=192.168.200.10という情報とプロトコル番号=17という情報が記録されていることを認識する。ここで、プロトコル番号=17は、トランスポート層のプロトコルとしてUDPが使用されていることを表わしている。振り分け部24cは、パケットP32で使用されているプロトコルが、振り分け条件33c中のプロトコルの指定(−p udp)と合致するので、パケットP32をマーキングの対象であると判定する。そこで、振り分け部24cは、パケットP32にマーキング処理を行って、パケットP33(図16)の状態に変換する。従って、パケットP33の末尾には、旧経路のメトリック値が、マーキング情報として付加される。振り分け部24cは、パケットP33を転送処理部25cに出力する。
転送処理部25cは、パケットP33を取得すると、末尾にマーキング情報が付加されていることを認識する。転送処理部25cは、パケットP33の宛先アドレスをキーとしてルーティングテーブル31cを検索することにより、転送処理に使用可能な経路を求める。すると、図15のルーティングテーブル31cに示すように、2つの経路が得られる。転送処理部25cは、得られた経路のうち、メトリック値がマーキング情報と一致する方の経路を転送処理に使用することを決定する。その後、転送処理部25cは、パケットP33を、出力先インタフェースをeth2に指定して送信部12cに出力する。送信部12cは、パケットP33の末尾からマーキング情報を削除することにより、パケットP33をパケットP32の状態に戻してから、パケットP32を、eth2で識別されるインタフェースから送信する。このため、パケットP32は、転送装置10dに転送される。従って、パケットP32の転送経路として、経路R12(図15)が採用されることになる。
転送装置10dが保持しているルーティングテーブル31d(図15)には、ネットワークA宛てのパケットの転送経路は1通り登録されている。このため、転送装置10dでは、ネットワークA宛のパケットに対する振り分け条件33dは設定されていない。このため、転送装置10d中の振り分け部24dは、受信部13dを介してパケットP32を取得すると、パケットP32を転送処理部25dに出力する。転送処理部25dは、ルーティングテーブル31dに従って、パケットP32をインタフェースeth2から出力するので、パケットP32は転送装置10aに向けて転送される。
転送装置10aにおいても、転送装置10dなどでの処理と同様に、転送処理部25aがルーティングテーブル31aを用いた転送処理を行うため、パケットP32は、端末5に向けて転送される。
以上述べたように、UDPパケットが転送される場合には、転送装置10cでのマーキングとマーキング後の振り分け処理によって、転送装置10c、転送装置10d、転送装置10aを介する転送経路(経路R12)が使用される。
(4b)TCPパケットの転送処理
次に、サーバ装置40が端末5に向けて、TCPを用いたパケットP31を送信した場合の処理について説明する。転送装置10gは、ルーティングテーブル31g(図15)を用いて転送処理を行うので、パケットP31は転送装置10cに到達する。
次に、サーバ装置40が端末5に向けて、TCPを用いたパケットP31を送信した場合の処理について説明する。転送装置10gは、ルーティングテーブル31g(図15)を用いて転送処理を行うので、パケットP31は転送装置10cに到達する。
転送装置10cの振り分け部24cは、パケットP31中のIPヘッダに、宛先IPアドレス(DA)=192.168.200.10という情報とプロトコル番号=6という情報が記録されていることを認識する。ここで、プロトコル番号=6は、トランスポート層のプロトコルとしてTCPが使用されていることを表わしている。振り分け部24cは、パケットP31で使用されているプロトコルが、振り分け条件33c中のプロトコルの指定(−p udp)と合致しないので、パケットP31をマーキングの対象ではないと判定する。そこで、振り分け部24cは、パケットP31にマーキング処理を行わずに転送処理部25cに出力する。
転送処理部25cは、パケットにマーキング情報が付加されているかを判定する。パケットP31については、マーキング情報が付加されていない。そこで、転送処理部25cは、ルーティングテーブル31c(図15)中の経路のうち、メトリックが小さく設定されている方の経路を用いることを決定する。ルーティングテーブル31cでは、192.168.200.0/24宛てのパケットの転送先として、メトリックが最小の経路では、出力先インタフェースがeth3に設定されている。ここで、インタフェースeth3は、転送装置10bに接続されている。従って、転送処理部25cは、パケットP31に対して、図15の経路R11を介して転送することを決定している。転送処理部25cは、送信部12cを介して、パケットP31をインタフェースeth3から送信するので、パケットP31は、経路R11(図15)に沿って、転送装置10bに転送される。
転送装置10bが保持しているルーティングテーブル31b(図15)には、ネットワークA宛てのパケットの転送経路は1通り登録されている。このため、転送装置10bでは、ネットワークA宛のパケットに対する振り分け条件33bは設定されていない。このため、転送装置10b中の振り分け部24bは、受信部13bを介してパケットP31を取得すると、パケットP31を転送処理部25bに出力する。転送処理部25bは、ルーティングテーブル31bに従って、パケットP31を、インタフェースeth2から出力する。このため、パケットP31は、転送装置10aに転送される。転送装置10aにおいても、転送装置10bと同様の処理により、転送処理が行われる。このため、パケットP31は、ルーティングテーブル31aに従って、端末5を含むネットワークAに向けて転送される。
以上述べたように、TCPパケットが転送される場合には、転送装置10cでのマーキング処理が行われないので、振り分け処理によって、転送装置10c、転送装置10b、転送装置10aを介する転送経路(経路R11)が使用される。
ここで、経路R12は、いずれのリンクにも障害が発生していない場合において、OSPFで選択される経路であるため、良好な通信品質が期待できる。さらに、転送装置10cでの振り分け処理により、トランスポート層のプロトコルがUDP以外のパケットは、経路R11を用いて転送されているため、経路R12の輻輳も避けられる。従って、経路R12をUDPパケットの転送に使用することにより、UDPを用いたストリーミング通信の通信品質を良好にすることができる。一方、最適な経路ではない経路R11を介して転送されるパケットは、TCPパケットであり、転送に失敗しても再送処理が行われる。このため、TCPパケットについても、通信品質の劣化が避けられる。
(5)障害の発生時の処理と終了処理
転送装置10cや転送装置10dは、新たな経路の検索のために、擬似的にリンクの切断状態を発生させて、リンク切断を代表ルータに通知している。このため、実際にリンクの切断が発生した場合の処理は、擬似的なリンク切断によって、代表ルータにリンク切断を通知済みのリンクであるかによって異なってくる。
転送装置10cや転送装置10dは、新たな経路の検索のために、擬似的にリンクの切断状態を発生させて、リンク切断を代表ルータに通知している。このため、実際にリンクの切断が発生した場合の処理は、擬似的なリンク切断によって、代表ルータにリンク切断を通知済みのリンクであるかによって異なってくる。
図17は、障害発生時の処理の例を説明する図である。ケースC41は、転送装置10cと転送装置10dの間のリンクに障害が発生した場合の例である。転送装置10dと転送装置10cの間のリンクは、実際には障害が発生していないが、UDPパケット以外のパケットの転送に使用しないようにするために、障害が発生したと代表ルータに通知している。従って、転送装置10cと転送装置10dのいずれにおいても経路生成部21はHelloパケットの送受信を無視しているが、品質測定部22がHelloパケットを処理している。転送装置10cと転送装置10dの間のリンクに障害が発生すると、転送装置10cでは、品質測定部22cがリンクの切断を検出して、更新部23cに通知する。
更新部23cは、品質測定部22cからの通知により、ルーティングテーブル31c(図15)中のメトリック値の大きい方の経路(経路R12)で障害が発生したと認識する。そこで、更新部23cは、障害が検出された経路R12の情報をルーティングテーブル31cから削除すると共に、ネットワークA宛のパケットに対する振り分け条件33cも削除する。一方、転送装置10dでも、品質測定部22dが転送装置10cと転送装置10dの間のリンクの切断を検出し、更新部23dに通知する。更新部23dは、障害が検出された経路R12の情報をルーティングテーブル31dから削除する。このため、以後の転送処理では、転送装置10cからの転送パケットは、いずれのプロトコルであっても、転送装置10bを介した経路R11で転送される。
ケースC42は、転送装置10cと転送装置10bの間のリンクに障害が発生した場合の例を示す。転送装置10cと転送装置10bの間のリンクは、UDPパケットの転送に使用するために擬似的に切断状態に設定されているリンクではない。このため、転送装置10cや転送装置10bは、トリガアップデートを用いて、新たな経路検索を行う。
ここで、ケースC42に示すケースでは、転送装置10cが転送装置10gを介して端末5から受信するパケットの転送に使用可能な2つのリンクのうち、一方は、擬似的に切断状態に設定されており、他方は実際にリンクの切断が発生している。このため、ケースC42の状態では、転送装置10cと転送装置10dの間のリンクがUDPパケットの転送に使用可能な状態であっても、OSFPでは、転送装置10cを介してネットワークA宛のパケットを転送する経路は無いと判定してしまう。そこで、データパケットの転送元以外との間のリンクが、擬似的な切断状態のリンクと、実際に切断しているリンクの組み合わせであるため、品質測定部22cは、上流側の転送装置10にトリガアップデート起動指示メッセージを送信する(矢印A41)。すると、トリガアップデート起動指示メッセージを受信した転送装置10は、データの転送先でのネットワークの通信品質が低下していると判定し、図12〜図16を参照しながら説明した処理と同様の処理を行う。このため、転送装置10gは、転送装置10cと転送装置10gとの間の経路をUDPパケット用に確保した上で、擬似的に切断されたものとして、代表ルータに通知する。従って、転送装置10g、転送装置10c、転送装置10dを介した経路R12は、UDPパケット用の経路として使用される。一方、UDP以外のプロトコルを用いたパケットは、転送装置10gと転送装置10fを介した経路を用いて、端末5に向けて転送される。
図18は、ストリーミング配信終了時の処理の例を説明する図である。ケースC51は、端末5がサーバ装置40に対して、ストリーミング通信停止要求を送信したときの転送処理の例を示す。ストリーミング通信停止要求は、転送装置10a、転送装置10d、転送装置10c、転送装置10gを介して、サーバ装置40に転送されたとする。
サーバ装置40中の受信部43は、ストリーミング通信停止要求を受信すると、ストリーミング通信停止要求を、配信処理部51と停止制御部53に出力する。配信処理部51は、ストリーミング通信停止要求を取得すると、ストリーミング配信を停止する。停止制御部53は、ストリーミング配信されたパケットを転送していた転送装置10に対して、ストリーミング配信のために使用されていた経路の削除を要求する。経路の削除の要求は、クリア要求パケットを用いて行われる。
パケットP21は、クリア要求パケットの例である。クリア要求パケットは、IPヘッダ、UDPヘッダ、データを備える。データには、転送装置10においてクリア要求パケットであることを特定可能な任意の情報が含まれている。ここで、クリア要求パケットは、ストリーミング通信のパケットの転送経路中の転送装置10を介して端末5に転送されるように、UDPを用いて生成される。
ケースC52は、クリア要求パケットの転送経路の例を示している。サーバ装置40から送信されたクリア要求パケットは、転送装置10gに到達する(矢印A51)。転送装置10gの受信部13gは、クリア要求パケットを受信すると、更新部23gと振り分け部24gに出力する。振り分け部24gは、クリア要求パケットを転送処理部25gに出力する。更新部23gは、クリア要求パケットの宛先に宛てたUDPパケットの転送のための設定を行っているかを判定する。転送装置10gには、擬似的に切断されたものとして扱っているリンクが接続されていないので、更新部23gは、クリア要求パケットの宛先に宛てたUDPパケットの転送のための設定を行っていないと判定し、処理を終了する。一方、転送処理部25gは、ルーティングテーブル31g(図15)を用いて、クリア要求パケットを転送装置10cに転送する(矢印A52)。
転送装置10c中の振り分け部24cと更新部23cは、受信部13cを介してクリア要求パケットを取得する。振り分け部24cは、振り分け条件33cを用いて、マーキングしたクリア要求パケットを、転送処理部25cに出力する。ここで、マーキング処理は図16を用いて説明した処理と同様であるため、クリア要求パケットには、マーキング情報として、メトリック値=31が含まれている。転送処理部25cは、クリア要求パケットの転送経路として、ルーティングテーブル31cのメトリック=31に対応付けられた経路を選択する。送信部12cは、クリア要求パケットからマーキング情報を除去した後、転送処理部25cから指定された経路を用いて、転送処理を行う。このため、クリア要求パケットは、転送装置10dに転送される(矢印A53)。
クリア要求パケットの転送処理後、更新部23cは、クリア要求パケットによって設定変更を行うかを判定する。転送装置10cは、転送装置10dとの間のリンクをUDPパケットの送信を優先させるために擬似的にリンク切断状態に設定している。そこで、更新部23cは、経路生成部21cに、転送装置10dとの間のHelloパケットを無視する設定を解除させる。さらに、ルーティングテーブル31cから、ネットワークA宛のパケットの転送経路のうち、メトリックがより大きい値に設定されている経路を削除する。
矢印A53での転送により、転送装置10dは、クリア要求パケットを受信する。転送装置10d中の振り分け部24dと更新部23dは、受信部13cを介してクリア要求パケットを取得する。振り分け部24dは、クリア要求パケットを、転送処理部25dに出力する。転送処理部25dは、クリア要求パケットを、ルーティングテーブル31dに従って転送する。このため、クリア要求パケットは、転送装置10aに転送される(矢印A54)。
クリア要求パケットの転送処理後、更新部23dは、クリア要求パケットによって設定変更を行うかを判定する。転送装置10dは、転送装置10cとの間のリンクをUDPパケットの送信を優先させるために擬似的にリンク切断状態に設定している。そこで、更新部23dは、経路生成部21dに、転送装置10cとの間のHelloパケットを無視する設定を解除させる。さらに、ルーティングテーブル31cから、ネットワークA宛のパケットの転送経路を削除する。
転送装置10aでは、クリア要求パケットを受信すると、転送装置10gと同様の処理が行われる。すなわち、クリア要求パケットは、ルーティングテーブル31aを用いて端末5に転送される(矢印A55)。更新部23aは、転送装置10aでは、UDPパケットの転送のための設定を行っていないと判定し、処理を終了する。
(6)処理フローなど
以下、転送装置10で行われる処理の例を、シーケンス図やフローチャートを用いて整理する。
以下、転送装置10で行われる処理の例を、シーケンス図やフローチャートを用いて整理する。
図19は、実施形態にかかる通信方法の処理の例を説明するシーケンス図である。図19では、図を見やすくするために、転送装置10を1つにまとめてあるが、ネットワーク中に含まれている転送装置10の数は任意である。端末5は、転送装置10を介して、ストリーミングリクエストをサーバ装置40に送信する(ステップS1)。サーバ装置40中の配信処理部51は、転送装置10に対して、コンテンツのメタデータやサーバアクセス情報を通知する(ステップS2)。端末5は、サーバ装置40に対して、配信開始要求を送信する(ステップS3)。
配信開始要求を受信すると、サーバ装置40中の品質測定要求部52は、評価開始要求を送信する(ステップS4)。このとき、評価開始要求の宛先は、端末5に設定されるので、サーバ装置40から端末5に至る経路中の各転送装置10は、評価開始要求を受信することにより、通信品質の評価が要求されていることを認識する。さらに、各転送装置10は、評価開始要求を、端末5宛のパケットの転送先の転送装置10に転送する。なお、端末5においては、評価開始要求は処理対象ではないので破棄される。
評価開始要求を受信した転送装置10は、評価開始要求の転送元との間の通信品質を評価する(ステップS5)。通信品質が低いと判定すると、転送装置10は、複数の経路を用いて、通信プロトコル別の経路制御を行う(ステップS6、S7)。複数の経路を用いて、通信プロトコル別の経路が設定できると、振り分け処理を行う転送装置10は、サーバ装置40に対して、データ通信開始要求を送信する(ステップS8)。
データ通信開始要求を受信したサーバ装置40の配信処理部51は、ストリーミング通信のデータを端末5に送信する(ステップS9)。ステップS9において、ネットワーク中の転送装置10は、ステップS7での設定に基づいて転送処理を行う。ストリーミング通信を終了するとき、端末5は、サーバ装置40に対してストリーミング通信停止要求を送信する(ステップS10)。すると、サーバ装置40からのストリーミング配信は終了する。
図20は、転送装置10の処理の例を説明するフローチャートである。図20には、図15などを参照しながら説明した転送装置10dのように、経路の振り分けを行う転送装置10の下流側に位置する転送装置10での処理が含まれている。
受信部13は、評価開始要求を受信する(ステップS21)。このとき、更新部23は、評価開始要求の宛先アドレスを、ストリーミング通信の宛先として記憶しておく。品質測定部22は、評価開始要求の転送元との間の通信品質を測定する(ステップS22)。品質測定部22は、通信品質が所定の閾値未満であるかを判定する(ステップS23)。通信品質が所定の閾値未満の場合、品質測定部22は、トリガアップデート起動指示を生成し、評価開始要求の転送元に送信する(ステップS23でYes、ステップS24)。その後、更新部23は、ストリーミング通信の宛先の端末へのパケットの転送に使用する経路情報を旧経路情報32として記憶する(ステップS25)。その後、代表ルータからの指示に従って、トリガアップデートを実行すると共に、新たな通信経路を検索する(ステップS26)。更新部23は、旧経路情報32として保存しておいた旧経路を、ルーティングテーブル31に追加する(ステップS27)。その後、データパケットが送信されてくると、転送処理部25は、ルーティングテーブル31を用いてルーティングを行う(ステップS28)。なお、ステップS28での処理対象のパケットは、上流側の転送装置10によって、旧経路を介して転送されてきたUDPパケットである。ストリーミングが終了するまで、ステップS28の処理が繰り返される(ステップS29でNo)。ストリーミングが終了すると、更新部23は、終了したストリーミングの転送のために追加した経路を、ルーティングテーブル31から削除して処理を終了する(ステップS29でYes、ステップS30)。
一方、ステップS23において、通信品質が所定の閾値以上と判定されたとする。この場合、転送処理部25は、ストリーミングが終了するまで、データパケットをルーティングテーブル31に従ってルーティングする(ステップS31、ステップS32でNo)。ストリーミング通信が終了すると、転送処理部25は処理を終了する(ステップS32でYes)。
図21は、転送装置10の処理の例を説明するフローチャートである。転送装置10は、図15などを参照しながら説明した転送装置10cのように、経路の振り分けを行う転送装置10の動作の例を表わしている。なお、経路の振り分けを行う転送装置10においても、評価開始要求を転送した際に、評価開始要求の宛先アドレスを、ストリーミング通信の宛先として記憶しているものとする。
受信部13は、トリガアップデート起動指示を受信する(ステップS41)。更新部23は、ストリーミング通信の宛先となる端末にパケットを転送する際に用いる経路を、旧経路情報32として記憶部30に記憶する(ステップS42)。経路生成部21は、トリガアップデート起動指示に伴い、トリガアップデート起動指示の送信元との間のリンクが切断された状況を擬似的に実現する。また、代表ルータに、トリガアップデート起動指示の送信元との間のリンクの切断を通知する。その後、代表ルータからの指示に従って、トリガアップデートを実行すると共に、新たな通信経路(新経路)を検索する(ステップS43)。更新部23は、旧経路情報32として保存しておいた旧経路を、ルーティングテーブル31に追加する(ステップS44)。ステップS44では、旧経路のメトリックが、ルーティングテーブル31中で、追加対象の経路と同じ宛先への新経路のメトリックよりも大きくなるように設定される。
その後、データパケットが送信されてくると、振り分け部24での処理が行われる。振り分け部24は、UDPパケットをマーキング処理の対象とし、マーキング処理後のUDPパケットを転送処理部25に出力する(ステップS45)。一方、TCPパケットについては、振り分け部24は、マーキングを行わずに転送処理部25に出力する。振り分け部24でのマーキングに従って、転送処理部25は、ルーティングテーブル31を用いてルーティングを行う。すなわち、マーキング情報を含むパケットは、宛先ネットワークへの経路のうち、旧経路を用いて転送する(ステップS46でYes、ステップS47)。なお、旧経路は、宛先ネットワークへの経路のうち、メトリックがより大きく設定されている経路である。一方、マーキング情報を含まないパケットは、宛先ネットワークへの経路のうち、新経路を用いて転送する(ステップS46でNo、ステップS48)。新経路は、宛先ネットワークへの経路のうち、メトリックがより小さく設定されている経路である。しかしながら、新経路は、旧経路が適用されない場合において最適と考えられる経路である。従って、見かけ上のメトリックに関わらず、ステップS47、S48の処理により、UDPパケットは、最適の経路を用いて転送され、TCPパケットはUDPパケットよりは条件の悪い経路で転送される。
ストリーミングが終了するまで、ステップS45〜S48の処理が繰り返される(ステップS49でNo)。ストリーミングが終了すると、更新部23は、終了したストリーミングの転送のために追加した経路を、ルーティングテーブル31から削除して処理を終了する(ステップS49でYes、ステップS50)。
図22は、実施形態にかかる方法による通信と他の通信方法の比較例を説明する図である。ケースC61は、実施形態にかかる通信方法が用いられたシステムの例であり、ケースC62とケースC63は他の通信方法が用いられたシステムの例を示す。
ケースC62の通信方法では、送信元から宛先までの転送経路では、転送装置2xから転送装置2zを経由する経路R23であるとする。ケース62では、プロトコルに関係なく全てのパケットが経路R23を経由して宛先に転送される。このため、輻輳が発生すると、パケットロスなどが発生してしまう。ストリーミング通信が、再送処理を伴わないUDPなどのプロトコルで行われている場合、ケースC62の通信方法では、ストリーミング通信の通信品質が低下してしまう。
ケースC63では、輻輳による品質低下を抑えるために、UDP通信を優先させる経路として、転送装置2w〜2zを介した経路を、UDP通信用に事前に予約する場合の例を示している。この場合、UDP通信で送受信されるデータ量が少なかったとしても、予約されているリソースは他のプロトコルで送受信されるパケットの処理には使用されない。例えば、このため、UDP以外のプロトコルのパケットは、転送装置2α〜2γを介して転送されているとする。UDP以外のプロトコルのパケットのトラフィックが増加して、転送装置2α〜2γを介した経路で輻輳が発生したとしても、転送装置2w〜2zを介した経路は、UDP通信用に予約されているため、輻輳の解消用に使用されない。このため、処理効率が悪い。
実施形態にかかる方法では、ケースC61に示すように、経路R21(旧経路)と経路R22(新経路)が併用されうる。送信元から宛先までの転送経路として、経路R21が使用されている場合、ストリーミング通信の品質低下の可能性が発生する程度に通信量が増加するまでは、プロトコルに関わらず、経路R21が使用される。ストリーミング通信の品質低下の可能性が発生すると、転送装置10xと転送装置10yは、擬似的に、転送装置10xと転送装置10yの間のリンクが切断された状況を生成することにより、新経路として経路R22を取得する。その後、UDPプロトコルによるパケットについては、マーキング処理により、旧経路である経路R21を介して転送する。一方、UDP以外のパケットについては、新経路である経路R22を介して転送する。新経路R22は、旧経路R21が適用されない場合において最適と考えられる経路である。従って、UDPについては、最適の経路R21を用いて転送し、再送処理の可能なプロトコルによる転送パケットは、経路R22を用いて転送することにより、ストリーミング通信の品質を担保することができる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
図19では、通信品質が低いと判定されたリンクが含まれている場合の処理の例を説明したが、通信品質が低いと判定されたリンクが無い場合にも、実施形態にかかるシステムは適用可能である。この場合、サーバ装置40は、データ通信開始要求を受信しなくても、配信開始要求を受信してから所定の期間が経過すると、ストリーミング配信を開始するように設定される。
以上の説明で図示したパケットのフォーマットやテーブル中の情報要素は一例に過ぎない。パケットのフォーマットやテーブル中の情報要素は、実装に応じて変更され得る。
以上の説明では、送信部12においてマーキング情報が削除される場合を例として説明したが、マーキング情報は転送処理部25で削除されても良い。この場合、転送処理部25は、マーキング情報を削除した後のパケットを、出力先のインタフェースの情報と共に、送信部12に出力する。なお、マーキング情報は、メトリック値に限られず、旧経路の識別に使用可能な任意の識別情報であっても良い。
上述の実施形態に関し、さらに以下の付記を開示する。
(付記1)
サーバ装置から送信される複数のフローを処理する転送装置であって、
前記複数のフローを受信する受信部と、
前記転送装置と前記複数のフローの転送先の間の通信品質が所定の基準を下回ったことを通知する通知パケットを前記受信部が受信すると、前記複数のフローのうちで再送処理が可能なプロトコルで処理されているフローの転送経路を、前記複数のフローの転送に使用している第1の経路から、前記転送装置と前記転送先との間のリンクを使用せずに前記サーバ装置から当該フローの宛先に至る第2の経路に変更する制御部と、
前記複数のフローの各々を、前記制御部で決定された経路を用いて転送する送信部
を備えることを特徴とする転送装置。
(付記2)
前記制御部は、
前記複数のフローのうちで、再送処理を行わないプロトコルによるストリーミング通信に使用されているフローの宛先を特定し、
前記通知パケットを前記受信部が受信すると、前記転送装置と前記転送先との間のリンクが切断されたときに前記サーバ装置から前記宛先に到達可能な経路のうち、相対的に通信状況の良い経路を、前記第2の経路に選択する
ことを特徴とする付記1に記載の転送装置。
(付記3)
前記制御部は、
前記宛先宛てのフローの転送に適用する経路としての前記第2の経路の優先度を、前記第1の経路よりも高く設定し、
前記受信部が受信した転送対象のフローのうち、再送処理を行わないプロトコルで処理されているフロー中のパケットに、前記第1の経路に対応付けられた識別情報を付加し、
前記送信部は、
前記識別情報を含まないパケットを前記第2の経路を用いて転送し、
前記識別情報を含むパケットを、前記識別情報を除去した上で、前記第1の経路から送信する
ことを特徴とする付記2に記載の転送装置。
(付記4)
前記受信部は、前記サーバ装置から前記ストリーミング通信の宛先に宛てた通信品質の評価要求を受信し、
前記制御部は、
前記評価要求を受信すると、前記評価要求の転送元との間の通信品質を測定し、
前記転送元との通信品質が低い場合、前記転送元に通信品質の低下を通知する他の通知パケットを生成し、
前記送信部は、前記他の通知パケットを前記転送元に送信すると共に、前記評価要求を前記宛先に向けて転送する
ことを特徴とする付記1〜3のいずれか1項に記載の転送装置。
(付記5)
パケットを受信する受信部と、
端末へのストリーミング通信を要求する配信要求を前記受信部が受信すると、前記ストリーミング通信でのデータパケットの代替とするダミーパケットの送信の開始を決定すると共に、前記ダミーパケットの送信中での前記端末に至る経路の通信品質の評価を当該経路中の転送装置に要求する評価要求を生成する要求部と、
前記ダミーパケットと前記評価要求を前記端末に向けて送信する送信部と、
前記評価要求を受信した転送装置のいずれかから、前記データパケットの転送の要求を前記受信部が受信すると、前記ダミーパケットの送信を終了すると共に、前記端末に宛てて、前記データパケットの配信処理を開始する配信処理部
を備えることを特徴とするサーバ装置。
(付記6)
前記ストリーミング通信の停止が通知されると、再送処理が可能なプロトコルで処理されている前記端末宛てのパケットと、前記端末宛ての前記データパケットを、異なる転送経路に振り分ける設定をした転送装置に、前記振り分けの設定の消去を要求する制御を行う停止制御部
をさらに備えることを特徴とする請求項5に記載のサーバ装置。
(付記7)
前記配信処理部は、前記配信要求の受信から所定の期間が経過すると、前記データパケットの転送の要求を前記受信部が受信していなくても、前記端末に宛てて、前記データパケットの配信処理を開始する
ことを特徴とする付記5または6に記載のサーバ装置。
(付記8)
サーバ装置から送信される複数のフローを処理する転送装置が、
前記複数のフローを第1の経路を用いて転送し、
前記転送装置と前記複数のフローの転送先の間の通信品質が所定の基準を下回ったことを通知する通知パケットを受信すると、前記複数のフローのうちで再送処理が可能なプロトコルで処理されているフローの転送経路を、前記第1の経路から、前記転送装置と前記転送先との間のリンクを使用せずに前記サーバ装置から当該フローの宛先に至る第2の経路に変更する
処理を行うことを特徴とする転送方法。
(付記9)
前記転送装置は、
前記複数のフローのうちで、再送処理を行わないプロトコルによるストリーミング通信に使用されているフローの宛先を特定し、
前記通知パケットを受信すると、前記転送装置と前記転送先との間のリンクが切断されたときに前記サーバ装置から前記宛先に到達可能な経路のうち、相対的に通信状況の良い経路を、前記第2の経路に選択する
ことを特徴とする付記8に記載の転送方法。
(付記10)
前記転送装置は、
前記宛先宛てのフローの転送に適用する経路としての前記第2の経路の優先度を、前記第1の経路よりも高く設定し、
受信した転送対象のフローのうち、再送処理を行わないプロトコルで処理されているフロー中のパケットに、前記第1の経路に対応付けられた識別情報を付加し、
前記識別情報を含まないパケットを前記第2の経路を用いて転送し、
前記識別情報を含むパケットを、前記識別情報を除去した上で、前記第1の経路から送信する
ことを特徴とする付記9に記載の転送方法。
(付記11)
前記サーバ装置は、
端末へのストリーミング通信を要求する配信要求を受信すると、前記端末宛に、前記ストリーミング通信でのデータパケットの代替とするダミーパケットを送信し、
前記ダミーパケットの送信中での前記端末に至る経路の通信品質の評価を当該経路中の転送装置に要求する評価要求を前記端末に向けて送信し、
前記通信装置は、
前記評価要求を受信すると、前記評価要求の転送元との間の通信品質を測定し、
前記転送元との通信品質が低い場合、通信品質の低下を通知する他の通知パケットを前記転送元に送信し、
前記評価要求を前記宛先に向けて転送する
ことを特徴とする付記8〜10のいずれか1項に記載の転送方法。
(付記12)
前記サーバ装置は、前記評価要求を受信した転送装置のいずれかから、前記データパケットの転送の要求を受信すると、前記ダミーパケットの送信を終了すると共に、前記端末に宛てて、前記データパケットの配信処理を開始する
ことを特徴とする付記11に記載の転送方法。
(付記1)
サーバ装置から送信される複数のフローを処理する転送装置であって、
前記複数のフローを受信する受信部と、
前記転送装置と前記複数のフローの転送先の間の通信品質が所定の基準を下回ったことを通知する通知パケットを前記受信部が受信すると、前記複数のフローのうちで再送処理が可能なプロトコルで処理されているフローの転送経路を、前記複数のフローの転送に使用している第1の経路から、前記転送装置と前記転送先との間のリンクを使用せずに前記サーバ装置から当該フローの宛先に至る第2の経路に変更する制御部と、
前記複数のフローの各々を、前記制御部で決定された経路を用いて転送する送信部
を備えることを特徴とする転送装置。
(付記2)
前記制御部は、
前記複数のフローのうちで、再送処理を行わないプロトコルによるストリーミング通信に使用されているフローの宛先を特定し、
前記通知パケットを前記受信部が受信すると、前記転送装置と前記転送先との間のリンクが切断されたときに前記サーバ装置から前記宛先に到達可能な経路のうち、相対的に通信状況の良い経路を、前記第2の経路に選択する
ことを特徴とする付記1に記載の転送装置。
(付記3)
前記制御部は、
前記宛先宛てのフローの転送に適用する経路としての前記第2の経路の優先度を、前記第1の経路よりも高く設定し、
前記受信部が受信した転送対象のフローのうち、再送処理を行わないプロトコルで処理されているフロー中のパケットに、前記第1の経路に対応付けられた識別情報を付加し、
前記送信部は、
前記識別情報を含まないパケットを前記第2の経路を用いて転送し、
前記識別情報を含むパケットを、前記識別情報を除去した上で、前記第1の経路から送信する
ことを特徴とする付記2に記載の転送装置。
(付記4)
前記受信部は、前記サーバ装置から前記ストリーミング通信の宛先に宛てた通信品質の評価要求を受信し、
前記制御部は、
前記評価要求を受信すると、前記評価要求の転送元との間の通信品質を測定し、
前記転送元との通信品質が低い場合、前記転送元に通信品質の低下を通知する他の通知パケットを生成し、
前記送信部は、前記他の通知パケットを前記転送元に送信すると共に、前記評価要求を前記宛先に向けて転送する
ことを特徴とする付記1〜3のいずれか1項に記載の転送装置。
(付記5)
パケットを受信する受信部と、
端末へのストリーミング通信を要求する配信要求を前記受信部が受信すると、前記ストリーミング通信でのデータパケットの代替とするダミーパケットの送信の開始を決定すると共に、前記ダミーパケットの送信中での前記端末に至る経路の通信品質の評価を当該経路中の転送装置に要求する評価要求を生成する要求部と、
前記ダミーパケットと前記評価要求を前記端末に向けて送信する送信部と、
前記評価要求を受信した転送装置のいずれかから、前記データパケットの転送の要求を前記受信部が受信すると、前記ダミーパケットの送信を終了すると共に、前記端末に宛てて、前記データパケットの配信処理を開始する配信処理部
を備えることを特徴とするサーバ装置。
(付記6)
前記ストリーミング通信の停止が通知されると、再送処理が可能なプロトコルで処理されている前記端末宛てのパケットと、前記端末宛ての前記データパケットを、異なる転送経路に振り分ける設定をした転送装置に、前記振り分けの設定の消去を要求する制御を行う停止制御部
をさらに備えることを特徴とする請求項5に記載のサーバ装置。
(付記7)
前記配信処理部は、前記配信要求の受信から所定の期間が経過すると、前記データパケットの転送の要求を前記受信部が受信していなくても、前記端末に宛てて、前記データパケットの配信処理を開始する
ことを特徴とする付記5または6に記載のサーバ装置。
(付記8)
サーバ装置から送信される複数のフローを処理する転送装置が、
前記複数のフローを第1の経路を用いて転送し、
前記転送装置と前記複数のフローの転送先の間の通信品質が所定の基準を下回ったことを通知する通知パケットを受信すると、前記複数のフローのうちで再送処理が可能なプロトコルで処理されているフローの転送経路を、前記第1の経路から、前記転送装置と前記転送先との間のリンクを使用せずに前記サーバ装置から当該フローの宛先に至る第2の経路に変更する
処理を行うことを特徴とする転送方法。
(付記9)
前記転送装置は、
前記複数のフローのうちで、再送処理を行わないプロトコルによるストリーミング通信に使用されているフローの宛先を特定し、
前記通知パケットを受信すると、前記転送装置と前記転送先との間のリンクが切断されたときに前記サーバ装置から前記宛先に到達可能な経路のうち、相対的に通信状況の良い経路を、前記第2の経路に選択する
ことを特徴とする付記8に記載の転送方法。
(付記10)
前記転送装置は、
前記宛先宛てのフローの転送に適用する経路としての前記第2の経路の優先度を、前記第1の経路よりも高く設定し、
受信した転送対象のフローのうち、再送処理を行わないプロトコルで処理されているフロー中のパケットに、前記第1の経路に対応付けられた識別情報を付加し、
前記識別情報を含まないパケットを前記第2の経路を用いて転送し、
前記識別情報を含むパケットを、前記識別情報を除去した上で、前記第1の経路から送信する
ことを特徴とする付記9に記載の転送方法。
(付記11)
前記サーバ装置は、
端末へのストリーミング通信を要求する配信要求を受信すると、前記端末宛に、前記ストリーミング通信でのデータパケットの代替とするダミーパケットを送信し、
前記ダミーパケットの送信中での前記端末に至る経路の通信品質の評価を当該経路中の転送装置に要求する評価要求を前記端末に向けて送信し、
前記通信装置は、
前記評価要求を受信すると、前記評価要求の転送元との間の通信品質を測定し、
前記転送元との通信品質が低い場合、通信品質の低下を通知する他の通知パケットを前記転送元に送信し、
前記評価要求を前記宛先に向けて転送する
ことを特徴とする付記8〜10のいずれか1項に記載の転送方法。
(付記12)
前記サーバ装置は、前記評価要求を受信した転送装置のいずれかから、前記データパケットの転送の要求を受信すると、前記ダミーパケットの送信を終了すると共に、前記端末に宛てて、前記データパケットの配信処理を開始する
ことを特徴とする付記11に記載の転送方法。
2、10 転送装置
5 端末
11、41 通信部
12、42 送信部
13、43 受信部
20、50 制御部
21 経路生成部
22 品質測定部
23 更新部
24 振り分け部
25 転送処理部
30、60 記憶部
31 ルーティングテーブル
32 旧経路情報
33 振り分け条件
34 トポロジ情報
40 サーバ装置
51 配信処理部
52 品質測定要求部
53 停止制御部
101、111 プロセッサ
102、112 メモリ
103 入力装置
104 出力装置
105、114 バス
106 記憶装置
107 可搬記憶媒体駆動装置
108 可搬記憶媒体
109、115 ネットワークインタフェース
5 端末
11、41 通信部
12、42 送信部
13、43 受信部
20、50 制御部
21 経路生成部
22 品質測定部
23 更新部
24 振り分け部
25 転送処理部
30、60 記憶部
31 ルーティングテーブル
32 旧経路情報
33 振り分け条件
34 トポロジ情報
40 サーバ装置
51 配信処理部
52 品質測定要求部
53 停止制御部
101、111 プロセッサ
102、112 メモリ
103 入力装置
104 出力装置
105、114 バス
106 記憶装置
107 可搬記憶媒体駆動装置
108 可搬記憶媒体
109、115 ネットワークインタフェース
Claims (6)
- サーバ装置から送信される複数のフローを処理する転送装置であって、
前記複数のフローを受信する受信部と、
前記転送装置と前記複数のフローの転送先の間の通信品質が所定の基準を下回ったことを通知する通知パケットを前記受信部が受信すると、前記複数のフローのうちで再送処理が可能なプロトコルで処理されているフローの転送経路を、前記複数のフローの転送に使用している第1の経路から、前記転送装置と前記転送先との間のリンクを使用せずに前記サーバ装置から当該フローの宛先に至る第2の経路に変更する制御部と、
前記複数のフローの各々を、前記制御部で決定された経路を用いて転送する送信部
を備えることを特徴とする転送装置。 - 前記制御部は、
前記複数のフローのうちで、再送処理を行わないプロトコルによるストリーミング通信に使用されているフローの宛先を特定し、
前記通知パケットを前記受信部が受信すると、前記転送装置と前記転送先との間のリンクが切断されたときに前記サーバ装置から前記宛先に到達可能な経路のうち、相対的に通信状況の良い経路を、前記第2の経路に選択する
ことを特徴とする請求項1に記載の転送装置。 - 前記制御部は、
前記宛先宛てのフローの転送に適用する経路としての前記第2の経路の優先度を、前記第1の経路よりも高く設定し、
前記受信部が受信した転送対象のフローのうち、再送処理を行わないプロトコルで処理されているフロー中のパケットに、前記第1の経路に対応付けられた識別情報を付加し、
前記送信部は、
前記識別情報を含まないパケットを前記第2の経路を用いて転送し、
前記識別情報を含むパケットを、前記識別情報を除去した上で、前記第1の経路から送信する
ことを特徴とする請求項2に記載の転送装置。 - 前記受信部は、前記サーバ装置から前記ストリーミング通信の宛先に宛てた通信品質の評価要求を受信し、
前記制御部は、
前記評価要求を受信すると、前記評価要求の転送元との間の通信品質を測定し、
前記転送元との通信品質が低い場合、前記転送元に通信品質の低下を通知する他の通知パケットを生成し、
前記送信部は、前記他の通知パケットを前記転送元に送信すると共に、前記評価要求を前記宛先に向けて転送する
ことを特徴とする請求項1〜3のいずれか1項に記載の転送装置。 - パケットを受信する受信部と、
端末へのストリーミング通信を要求する配信要求を前記受信部が受信すると、前記ストリーミング通信でのデータパケットの代替とするダミーパケットの送信の開始を決定すると共に、前記ダミーパケットの送信中での前記端末に至る経路の通信品質の評価を当該経路中の転送装置に要求する評価要求を生成する要求部と、
前記ダミーパケットと前記評価要求を前記端末に向けて送信する送信部と、
前記評価要求を受信した転送装置のいずれかから、前記データパケットの転送の要求を前記受信部が受信すると、前記ダミーパケットの送信を終了すると共に、前記端末に宛てて、前記データパケットの配信処理を開始する配信処理部
を備えることを特徴とするサーバ装置。 - サーバ装置から送信される複数のフローを処理する転送装置が、
前記複数のフローを第1の経路を用いて転送し、
前記転送装置と前記複数のフローの転送先の間の通信品質が所定の基準を下回ったことを通知する通知パケットを受信すると、前記複数のフローのうちで再送処理が可能なプロトコルで処理されているフローの転送経路を、前記第1の経路から、前記転送装置と前記転送先との間のリンクを使用せずに前記サーバ装置から当該フローの宛先に至る第2の経路に変更する
処理を行うことを特徴とする転送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016126380A JP2018006793A (ja) | 2016-06-27 | 2016-06-27 | 転送装置、サーバ装置、および、転送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016126380A JP2018006793A (ja) | 2016-06-27 | 2016-06-27 | 転送装置、サーバ装置、および、転送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018006793A true JP2018006793A (ja) | 2018-01-11 |
Family
ID=60949880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016126380A Pending JP2018006793A (ja) | 2016-06-27 | 2016-06-27 | 転送装置、サーバ装置、および、転送方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018006793A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2021020051A1 (ja) * | 2019-07-30 | 2021-02-04 |
-
2016
- 2016-06-27 JP JP2016126380A patent/JP2018006793A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2021020051A1 (ja) * | 2019-07-30 | 2021-02-04 | ||
WO2021020051A1 (ja) * | 2019-07-30 | 2021-02-04 | 日本電気株式会社 | データ収集システム、データ出力装置、及びデータ収集方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11658896B2 (en) | Routing table creation method, electronic device, and network | |
US7382731B1 (en) | Method and apparatus for updating probabilistic network routing information | |
JP5515649B2 (ja) | 通信システム、経路制御装置、経路制御方法および経路制御用プログラム | |
CN102186221B (zh) | 一种路由表项的更新方法以及装置 | |
WO2011108205A1 (ja) | 通信システム、経路制御装置、パケット転送装置および経路制御方法 | |
CN102640463A (zh) | 动态路由分支系统和动态路由分支方法 | |
WO2018036254A1 (zh) | 报文转发方法及装置 | |
US10069648B2 (en) | Communication system, control apparatus, communication control method and program | |
CA2889989A1 (en) | Push-based short-cut requests within a directed acyclic graph | |
JP5725236B2 (ja) | 通信システム、ノード、パケット転送方法およびプログラム | |
US11032185B2 (en) | Communication system, edge node, communication method and program | |
US20150288595A1 (en) | Control apparatus, communication system, control information creation method, and program | |
CN107409132B (zh) | 软件定义网络控制信令动态配置流分割的方法和网络节点 | |
JP2018006793A (ja) | 転送装置、サーバ装置、および、転送方法 | |
CN108965122B (zh) | 路由选路方法、设备及计算机可读存储介质 | |
JP4623317B2 (ja) | 通信装置、ルーティング方法及びプログラム | |
CN109995657B (zh) | 一种流量转发的方法及装置 | |
US20150016459A1 (en) | Method and apparatus for forwarding packet in identifier/locator separation environment | |
WO2018006619A1 (zh) | 传输路径的负载信息的方法和网络节点 | |
JP5071245B2 (ja) | パケットの交換装置及びプログラム | |
JP3869440B2 (ja) | パケット転送装置 | |
WO2015052870A1 (ja) | 端末装置、端末装置制御方法、および端末装置制御プログラム | |
US20150372900A1 (en) | Communication system, control apparatus, communication control method, and program | |
WO2014136771A1 (ja) | メッシュポイント装置 |