〔実施の形態1〕
本発明の一実施形態について図1〜図13に基づいて説明すると以下の通りである。
本実施の形態において、「パケット」とは、通信ネットワーク上を伝送する通信パケットを指す。
また、本実施の形態において、「データフロー」とは、連続して伝送する必要のある一連のデータに属する連続したパケット群を指す。連続して伝送する必要のある一連のデータとは、例えば、1つの映像コンテンツ、または、1つの音声コンテンツなど、意味のあるひとまとまりのデータである。したがって、例を挙げると、サーバなどの装置に保持されている1つの映像コンテンツなどを一連の複数のパケットとして受信装置に送信する際の、上記一連の複数のパケットが、データフローである。
さらに、映像コンテンツのデータフローおよびWebコンテンツのデータフローを、それぞれ「映像データフロー」および「Webデータフロー」とも称する。また、映像データフローに属するパケットを「映像パケット」と、Webデータフローに属するパケットを「Webデータパケット」とも称する。
また、本実施の形態では、映像パケットの優先度(伝送優先度)は、Webデータパケットの優先度よりも高く設定されるものとする。そのため、映像パケットは、Webデータパケットよりも優先的に通信ネットワークに送出される。
(パケットの優先度)
本実施の形態において、IPネットワーク上で伝送されるパケットの優先度は、IPv4(IP Version 4)ヘッダの先頭から2バイト目のDSCP(Differentiated Services Code)と称されるフィールドの上位3ビットで表わされる値、または、IPv6(IP Version 6)ヘッダのトラヒッククラスフィールドに含まれるDSCPと称されるフィールドの上位3ビットで表わされる値である。そのため、IPネットワーク上で伝送されるパケットの優先度は、0(最も優先度が低い)から7(最も優先度が高い)までの8段階の値をとり得る。
なお、DSCPフィールドは、以前は、TOS(Type Of Service)として定義されていたフィールドであり、IPv4ヘッダの2バイト目の上位6ビットを用いて、最大で64段階の優先度を表わすことができるものである。DSCPフィールドの上位3ビットはTOSフィールドと互換性がある。
また、本実施の形態において、PLC(Power Line Communication:電力線搬送通信)ネットワークとは、HomePlugAV仕様(HomePlug AV Specification Version 1.0.10)に準拠したPLCを用いたLANを想定している。そして、PLCネットワーク上で伝送されるパケットは、CAP(Channel Access Priority)と称される4段階の値をとり得る優先度によって、優先制御が可能である。
なお、DSCPとCAPとは相互に変換可能である。HomePlugAV規格では、DSCPとCAPについて、下記の表1に示すようにマッピングすることが推奨されている。表1は、DSCPとCAPとのマッピングの一例を示す表である。表1に示すように、DSCPの値が0または3である場合、対応するCAPの値は1とする。また、DSCPの値が1または2である場合、対応するCAPの値は0とする。また、DSCPの値が4または5である場合、対応するCAPの値は2とする。また、DSCPの値が6または7である場合、対応するCAPの値は3とする。また、パケットの種類に応じて推奨されるDSCP値も規定されている。例えば、映像パケットのDSCP値としては「5」、音声パケットのDSCP値としては「6」を使用することが推奨されている(厳密にはDSCP値ではなく、UserPriority値について記載されているが、UserPriority値とDSCP値は同じものと考えてよい。これらの関係はIEEE802.1D規格にて規定されているが、詳細は省略する)。
なお、DSCPとCAPとのマッピングは、必ずしもHomePlugAV規格での規定に従う必要はなく、他のマッピングであってもよい。
IPパケットを受信したPLCアダプタは、該受信したIPパケットのIPヘッダのDSCPの値を抽出し、例えば表1で示したマッピングに基づいて、対応するCAPを決定する。そして、該決定したCAPに基づいて、PLCネットワーク上でのパケットの優先制御を行なう。なお、通常、PLCアダプタには、工場出荷時などに、表1で示したようなマッピング情報が記憶されている。また、CAPは、一般的に、PLCネットワーク上で伝送されるパケットのPLCヘッダ(MAC層のヘッダ)に含めて送信されるが、他の方法によって送信されてもよく、本実施の形態では特に限定しない。
また、無線LAN上で伝送されるパケットについても、無線LANネットワークでの優先度に応じた優先制御が可能である。なお、該優先度はDSCPと相互に変換可能であり、そのマッピングは、DSCPとCAPとのマッピングとほぼ同様であるので、ここではその説明を省略する。なお、本実施の形態では、無線LANとして、特に、IEEE802.11eまたはIEEE802.11nを想定している。
(通信制御システムの基本構成)
図2を参照しながら、本実施の形態に係る通信制御装置を含む通信制御システムの基本構成について説明する。図2は、本実施の形態に係る通信制御装置を含む通信制御システムの基本構成例を模式的に示すブロック図である。図示のように、上記通信制御システムは、本実施の形態に係る通信制御装置100、サーバ600、中継装置300、およびデータ送受信装置400を含んで構成される。
この例では、本実施の形態に係る通信制御装置100は、第1通信ネットワーク500に接続されている中継装置300のうちの一つ、および、第2通信ネットワーク700に通信可能に接続されている。そして、通信制御装置100は、第1通信ネットワーク500と第2通信ネットワーク700との間でやりとりされるパケットの伝送を制御し、QoSを実現する。
第1通信ネットワーク500には、複数の中継装置300が、相互に通信可能に接続されている。さらに、通信制御装置100に接続されている中継装置300以外の中継装置300は、それぞれデータ送受信装置400と通信可能に接続されている。第1通信ネットワーク500としては、例えば、ユーザ宅内に構築されたLAN(PLCを利用したLANであるPLCネットワークや無線LANなど)などが挙げられる。
中継装置300は、データ送受信装置400(データ受信装置)同士の通信、または、第2通信ネットワーク700に接続されているサーバ600(データ送信装置)とデータ送受信装置400との通信を中継する装置である。中継装置300としては、例えば、PLCネットワークとしての第1通信ネットワーク500で用いられるブリッジ装置であるPLCアダプタや、無線LANとしての第1通信ネットワーク500で用いられるブリッジ装置である無線LANアダプタなどが挙げられる。中継装置300は、データ送受信装置400または通信制御装置100から自装置に到着したパケットを、第1通信ネットワーク500に送出する。また逆に、第1通信ネットワーク500を介して自装置に到着したパケットを、データ送受信装置400または通信制御装置100に送出する。上記送出において、自装置に到着したパケットの優先度に基づいた伝送制御を行なうように構成されていてもよい。
データ送受信装置400は、例えば、映像コンテンツ、Webコンテンツ、VoIP(Voice over Internet Protocol)データなどの各種データを送受信する端末であり、具体的には、TV(ネットワーク接続可能なもの)、ハードディスクレコーダ(ネットワーク接続可能なもの)、STB、IPパケットをアナログ電話信号に変換する装置であるVoIPアダプタなどである。なお、さらに、PC(Personal Computer)、VoIPアダプタの機能を内蔵した電話機であるIP電話機、映像データや音声データをIPパケットとして送信する装置であるIPカメラ、ネットワークアクセス可能なハードディスクであるNAS(Network Attached Storage)など、最終的にデータを受信(または送信)する端末を含めてデータ送受信装置400としてもよい。
サーバ600は、各種コンテンツを提供するサーバであり、例えば、映像コンテンツを提供する映像配信サーバ、Webコンテンツを提供するWebサーバなどが挙げられる。サーバ600が接続する第2通信ネットワーク700は、例えば、IP網やNGN(Next Generation Network)網などのアクセスネットワークを含むインターネットが挙げられる。第2通信ネットワーク700は複数のネットワークが接続されたものであってもよい。
上記構成において、サーバ600からデータ送受信装置400への通信における、通信制御装置100の動作について説明する。まず、サーバ600が、データ送受信装置400に対してデータフローを送信する。そして、その経路上に存在する通信制御装置100が、該データフローを、サーバ600から中継装置300に転送する。このとき、通信制御装置100が、転送するデータフローを、送信元であるサーバ600のドメイン名に応じて予め設定された伝送優先度をパケットに設定した上で、中継装置300に転送することが、本実施の形態に係る通信制御装置の主な特徴である。
なお、通信制御装置100からデータフローを受信した中継装置300は、該受信したデータフローを第1通信ネットワーク500にて伝送可能な信号に変換し、該変換後の信号を、第1通信ネットワーク500に送出することによって、データ送受信装置400に接続されている中継装置300にデータフローを転送する。そして、該データ送受信装置400に接続されている中継装置300は、受信した信号を、データ送受信装置400が受信可能な信号に変換し、該変換後のデータフローをデータ送受信装置400に送信する。
なお、データ送受信装置400からサーバ600への通信における、通信制御装置100および中継装置300の動作については、通信の流れが逆方向になるが、同様である。
以上のように、図2に示すシステムでは、サーバ600とデータ送受信装置400とが、通信制御装置100を介して、各種データフローを送受信する。
(通信制御システムの具体的構成例)
図3を参照しながら、図2で示した通信制御システムの具体的構成例について説明する。図3は、図2で示した通信制御システムの具体的構成の一例を模式的に示すブロック図である。図3では、図2で示した各装置および通信ネットワークのそれぞれに対して、具体例を当てはめている。
図3では、PLCを利用したLANであるPLCネットワーク501が、図2で示した第1通信ネットワーク500に相当する。また、PLCネットワークで用いられるブリッジ装置であるPLCアダプタ301、PLCアダプタ302、およびPLCアダプタ303が、それぞれ図2で示した3台の中継装置300に相当する。
また、STB402、PC403、およびSTB404が、それぞれ図2で示した3台のデータ送受信装置400に相当する。図3では、さらに、STB402およびSTB404は、受信した映像を表示するために、それぞれテレビ405およびテレビ406に通信可能に接続されている。なお、図3では、PLCアダプタ302およびPLCアダプタ303は、それぞれ独立した装置として図示しているが、PLCアダプタ302は、STB402およびPC403に内蔵される構成であってもよいし、PLCアダプタ303はSTB404に内蔵される構成であってもよい。
なお、本実施の形態では、STB402のIPアドレスが「192.168.0.2」であり、PC403のIPアドレスが「192.168.0.3」であり、STB404のIPアドレスが「192.168.0.4」であるものとする。
また、図3では、インターネット701が、図2で示した第2通信ネットワーク700に相当する。また、DNS(Domain Name System)サーバ601、アップデートサーバ602、映像配信サーバ603、映像配信サーバ604、およびWebサーバ605が、図2で示したサーバ600に相当する。
DNSサーバ601は、一般的なDNSサーバである。つまり、ドメイン名毎に、対応するIPアドレスを管理しており、外部装置から、問合せ対象となる装置のIPアドレスを問合せるメッセージであって、該問合せ対象となる装置のドメイン名を含むメッセージ(以下、DNS問合せメッセージ)を受信する。そして、該受信したDNS問合せメッセージに含まれる問合せ対象の装置のドメイン名に対応するIPアドレスを含む応答メッセージを、DNS問合せメッセージの送信元に返信する(すなわち、名前解決をすることができる)。以下では、上記応答メッセージをDNS応答メッセージと称する。
アップデートサーバ602は、HGW(Home Gateway)101(通信制御装置)の販売元などが運営するデータサーバを想定しており、所定のプロトコルを用いて、更新データや更新プログラムをHGW101に提供するサーバである。本実施の形態では、特に、HGW101のQoS対象記憶部22(後述)にて記憶するデータを提供する。そのために、アップデートサーバ602は、QoS対象記憶部22のエントリを構成するデータ(サービス名、ドメイン名、優先度の組)を外部に提供可能な状態で記憶している。なお、アップデートサーバ602への、上記データの格納は、アップデートサーバ602の管理者が行なうものとする。また、アップデートサーバ602にて記憶されているドメイン名は、一般的な正規表現で記述されていてもよい。正規表現の用途については後述する。
映像配信サーバ603および映像配信サーバ604は、映像コンテンツを提供する、一般的な映像配信サーバである。なお、映像配信サーバ603および映像配信サーバ604にて提供されるサービス内容(例えば、配信する映像のフォーマットや映像を伝送するためのプロトコルなど)は異なるものとし、ここでは、映像配信サーバ603が提供しているサービスを「映像配信サービスA」と称し、映像配信サーバ604が提供しているサービスを「映像配信サービスC」と称する。
Webサーバ605は、Webコンテンツのデータ(HTML(Hyper Text Markup Language)データなど)を提供する、一般的なWebサーバである。
なお、本実施の形態では、映像配信サーバ603のIPアドレスは「101.101.101.1」であり、映像配信サーバ604のIPアドレスは「103.103.103.1」であり、Webサーバ605のIPアドレスは「105.105.105.1」であるものとする。また、映像配信サーバ603のドメイン名は「sv1.vod.service-a.co.jp」であり、映像配信サーバ604のドメイン名は「vod1.service-c.ne.jp」であるものとする。
最後に、HGW101が、図2で示した通信制御装置100に相当する。また、HGW101は一般的なDNSサーバの機能をさらに備えるものとし、STB402、PC403、およびSTB404は、HGW101をデフォルトのDNSサーバとして認識しているものとする。
なお、本実施の形態では、HGW101のLAN側のIPアドレス(すなわち、PLCネットワーク501に接続されている側のIPアドレス)が「192.168.0.1」であり、WAN側のIPアドレス(すなわち、インターネット701に接続されている側のIPアドレス)が「100.100.100.1」であるものとする。
上記構成において、例えば、ユーザがテレビ405にて映像コンテンツを視聴する場合は、STB402が、PLCアダプタ302、PLCアダプタ301、およびHGW101を介して、映像配信サーバ603または映像配信サーバ604から映像データフローを受信し、該受信した映像データフローをテレビ405に出力する。
そして、HGW101は、インターネット701から受信する映像データフローに属するパケットの優先度を、送信元である映像配信サーバ603または映像配信サーバ604のドメイン名に応じて予め設定された優先度に従って設定した上で、上記パケットをPLCアダプタ301に送信することが、本実施の形態に係る通信制御装置の主な特徴である。
なお、本実施の形態では、STB402が、映像配信サーバ603にアクセスするにあたり、HGW101を介して、DNSサーバ601に、映像配信サーバ603のIPアドレスの問合せを行なうものとする。同様に、STB404は映像配信サーバ604のIPアドレスの問合せを、PC404はWebサーバ605のIPアドレスの問合せを行なうものとする。
なお、以下では、中継装置300と表現する場合は、特に指定している場合を除き、PLCアダプタ301、PLCアダプタ302、およびPLCアダプタ303のいずれかを指すものとする。また、データ送受信装置400と表現する場合は、特に指定している場合を除き、STB402、PC403、およびSTB404のいずれかを指すものとする。また、サーバ600と表現するときは、特に指定している場合を除き、DNSサーバ601、アップデートサーバ602、映像配信サーバ603、映像配信サーバ604、およびWebサーバ605のいずれかを指すものとする。
(データ送受信装置がデータを要求してから受信するまでの流れの概要)
図4を参照しながら、図3で示した通信制御システムにおいて、STB402およびPC403のそれぞれが、データを要求してから受信するまでの流れの概略について説明する。図4は、図3で示した通信制御システムにおいて、STB402およびPC403のそれぞれが、データを要求してから受信するまでの流れの一例を模式的に示したシーケンス図である。
まず、あるユーザが、テレビ405にて、映像配信サーバ603にて提供される映像コンテンツを視聴するまでの流れ(シーケンスP1)について、説明する。
ユーザはSTB402に接続されたテレビ405の画面を見ながら、STB402を操作して、映像配信サーバ603にて提供される映像コンテンツを視聴するユーザ操作を行なう。STB402は、ユーザ操作を受け付けると、映像コンテンツの受信を開始する処理(受信開始処理)として、デフォルトのDNSサーバ(本実施の形態では、HGW101)に対して、映像配信サーバ603のIPアドレス(通信アドレス)を問合せるDNS問合せメッセージ(第1リクエスト)を送信する(ステップS201)。
なお、受信開始処理は、一般的に知られている方法を用いて行なえばよい。例えば、STB402が複数の映像コンテンツのサムネイルが表示されているメニュー画面を生成してテレビ405に映像信号として出力しており、テレビ405の表示部にメニュー画面が表示されているものとする。この画面のデータは、例えばHTMLで記述されており、映像配信サーバ603とは別のポータルサーバ(不図示)から提供されており、STB402がインターネット701経由でポータルサーバにアクセスしてHTMLを取得するものとする(この通信シーケンスについては図示していない)。そして、各サムネイルには、映像コンテンツの保存場所を示すURI(Uniform Resource Identifiers)が対応付けられているものとする。
そして、ユーザが、STB402のリモコン操作などにより、視聴したい映像コンテンツのサムネイルを選択すると、該選択したサムネイルに対応づけられているURIが特定される。ここでは、例えば「http://sv1.vod.service-a.co.jp/content001」というURIが特定されるものとする。そして、STB402は、上記特定されたURIからドメイン名を取得する。上記例では、「sv1.vod.service-a.co.jp」というドメイン名を取得する。そして、該取得したドメイン名に対応するIPアドレスを問い合わせるためのDNS問合せメッセージを送信する。このDNS問合せメッセージには、該取得したドメイン名が含まれている。
なお、DNS問合せメッセージを送信する相手先は、デフォルトのDNSサーバ(この場合はHGW101)であるが、デフォルトのDNSサーバのIPアドレスは、例えば、ユーザがSTB402に事前にリモコン操作等により設定したり、DHCP(Dynamic Host Configuration Protocol)などの一般的な技術を用いて予めSTB402が取得するが、本発明の本質的部分ではないので、ここではその説明を省略する。
続いて、HGW101が、STB402からDNS問合せメッセージを受信したときの処理について説明する。ここでは、HGW101は、該受信したDNS問合せメッセージに含まれるドメイン名に対応するIPアドレスを直接管理していないものとして説明する。この場合、HGW101は、さらに、DNSサーバ601に対して、上記ドメイン名を含んだDNS問合せメッセージを送信する(ステップS202)。なお、一般的には、複数のDNSサーバを経由して再帰的に名前解決が行われるが、ここでは説明を省略するために、HGW101はDNSサーバ601に問合せを行なえば映像配信サーバ603のIPアドレスを取得できるものとして説明する。また、一般的にはサービス提供者がDNSサーバを構築し、自己の提供するサーバのIPアドレスを管理しているが、ここではDNSサーバ601が全てのサーバのIPアドレスを管理しているものとする。
続いて、DNSサーバ601が、HGW101からDNS問合せメッセージを受信したときの処理について説明する。DNSサーバ601は、各ドメイン名に対応するIPアドレスを記憶しており、DNS問合せメッセージに対して適切なDNS応答メッセージを送信する。従って、DNSサーバ601は、「sv1.vod.service-a.co.jp」という映像配信サーバ603のドメイン名に対応するIPアドレスである「101.101.101.1」を含めたDNS応答メッセージを、HGW101に返信する(ステップS203)。
そして、HGW101は、上記DNS応答メッセージを受信すると、問合せ元であるSTB402に、上記DNS応答メッセージを転送する。これを受信したSTB402は、ドメイン名「sv1.vod.service-a.co.jp」に対応するIPアドレスが、「101.101.101.1」であることを知ることができるので、映像配信サーバ603に対して映像データを要求することが可能となる。
なお、このとき、一般的に知られている技術として、HGW101はTTL(Time To Live)と称される値を上記DNS応答メッセージに含めてSTB402に通知することが可能である。TTLとは、上記DNS応答メッセージに含まれるIPアドレスの情報が有効である期限を示すものである。STB402では、DNS応答メッセージで得られたドメイン名とIPアドレスの情報をキャッシュ(以下DNSキャッシュと呼ぶ)しておき、既に問い合わせた事のあるドメイン名に対しては、再度DNS問合せメッセージを送信しないようにして、処理のオーバーヘッドを低減させることができる。換言すれば、TTLはSTB402におけるDNSキャッシュが有効な時間であるとも言える。TTLが示す期限より前の時刻であれば、DNSキャッシュが有効であるので、STB402は、DNSキャッシュに基づいて映像配信サーバ603に直接アクセスすることができる。一方、TTLが示す期限より後の時刻であれば、DNSキャッシュは無効となるので、STB402が映像配信サーバ603にアクセスする場合は、再度、DNS問合せメッセージを用いてIPアドレスを問合せる必要がある。
ここで、後述するように、HGW101が、該DNS問合せメッセージに含まれるドメイン名に基づいて、パケットの優先度を設定することが、本実施の形態に係る通信制御装置の主な特徴の一つである。従って、STB402がDNS問合せメッセージを送信せずに、直接、映像配信サーバ603にアクセスすると、後述する優先度データ生成処理が実施できず、本発明が有効に作用しない場合がある。そこで、本実施の形態では、HGW101が送信するTTLの値は、小さい値(例えば数秒など)とする。TTLの値が小さければ、STB402におけるDNSキャッシュが有効である期間が短くなるので、STB402が、直接、映像配信サーバ603にアクセスする機会を極力減らすことができる。TTL値はなるべく小さい方がよく、端的には、問い合わせた情報は一度使用すれば無効となるように設定すれば、STB402が映像配信サーバ603にアクセスする場合には毎回DNS問合せメッセージを送信することになる。ただし、この場合、STB402が連続的に映像配信サーバ603にアクセスする必要がある場合に、そのたびにHGW101に対してDNS問合せメッセージを送信する必要があるため、STB402における処理としても、PLCネットワーク501におけるトラフィックとしてもオーバーヘッドが大きくなる。よって、TTL値はSTB402の通信方法などに応じて調整が必要である。
HGW101は、STB402にDNS応答メッセージを返信した後、HGW101にて転送するパケットの優先度を示すデータを生成する処理(以下、優先度データ生成処理)を行なう(ステップS204)。優先度データ生成処理では、DNS問合せメッセージに含まれるドメイン名のサーバから、DNS問合せメッセージを送信したデータ送受信装置400(STB402)に向けて送信されるパケットの優先度を示すデータを、ドメイン名と優先度とを予め対応付けたデータに基づいて生成し、記憶部に格納する。ここでは、「sv1.vod.service-a.co.jp」というドメイン名の映像配信サーバ603から、STB402へ送信されるパケットの優先度が「5」であることを示すデータを生成するものとする。
なお、上記ドメイン名と優先度とを予め対応付けたデータ(以下、“QoS対象データ”とも称する)とは、優先的に伝送したいパケットの送出元のサーバ600のドメイン名と、優先度を示す値とを対応付けたデータである。したがって、例えば、映像配信サーバ603から送信される映像パケットを優先的に伝送したい場合は、映像配信サーバ603のドメイン名は、上記QoS対象データに含めておき、一方、Webサーバ605から送信されるWebデータパケットを優先的に伝送する必要が無い(以下、“QoS対象ではない”とも言う)場合は、Webサーバ605のドメイン名は、上記QoS対象データに含めないといった管理を行なう。本実施の形態では、映像配信サーバ603のドメイン名は上記QoS対象データに含まれ、Webサーバ605のドメイン名は上記QoS対象データに含まれないものとする。
よって、DNS問合せメッセージに含まれるドメイン名は、上記QoS対象データに含まれていない場合があり、その場合は、優先度データ生成処理を実行しても、上記パケットの優先度を示すデータは生成されない。優先度データ生成処理の詳細については、後述する。
なお、後述するパケット優先度変更処理にて、優先度データ生成処理にて生成された、パケットの優先度を示すデータを用いて、DNS問合せメッセージに含まれるドメイン名を有するサーバから、DNS問合せメッセージを送信したデータ送受信装置400に向けて送信されるパケットのIPヘッダに含まれる優先度フィールド(DSCP)の値を更新する。パケット優先度変更処理の詳細については、後述する。
ところで、STB402は、DNS応答メッセージを受信した後、映像コンテンツの受信を開始するために、映像配信サーバ603に向けて、映像データの要求を行なう(第2リクエスト)(ステップS205)。なお、上記要求の手順は、サービスやプロトコルによって様々であり、例えば、複数回のパケットの送受信を伴う場合もあり得るが、発明の本質的部分ではないので、ここではその説明を省略する。
そして、STB402から上記要求を受信した映像配信サーバ603は、その応答として、STB402に向けて映像データフローを送信する(ステップS206)。経路上のHGW101はその映像データフローを受信する。
上記映像データフローを受信したHGW101は、後述するパケット優先度変更処理にて、該受信した映像データフローに属する映像パケットの優先度(DSCP)の値を更新した上で、該映像パケットをPLCアダプタ301に転送する(ステップS207)。上記更新にあたり、ステップS204にて生成した、「sv1.vod.service-a.co.jp」というドメイン名の映像配信サーバ603から、STB402へ送信されるパケットの優先度が「5」である旨のデータを用いる。すなわち、上記受信した映像データフローに属する映像パケットのDSCPの値を「5」に更新する。パケット優先度変更処理の詳細については、後述する。
したがって、HGW101は、上記映像パケットを、5よりも低い値がDSCPとして設定されているパケット(例えば、Webデータのパケットなど)よりも優先的にPLCアダプタ301に転送することとなる(優先伝送)。
そして、HGW101から転送された映像パケットを受信したPLCアダプタ301は、該受信した映像パケットをPLCネットワーク501に送出する。このとき、PLCアダプタ301は、該受信した映像パケットから抽出したDSCPの値を、PLCネットワーク501上でのパケットの優先度を表す値(CAP)に変換した上で、パケットの優先制御を行なう。なお、DSCPの値が5である場合、表1で示したマッピングによれば、対応するCAPの値は2である。したがって、PLCアダプタ301は、上記受信した映像パケットを、2よりも低い値をCAPとするパケット(例えば、Webデータのパケットなど)よりも優先的にPLCネットワーク501に送出する。
そして、上記映像パケットの送信先はSTB402であるので、PLCアダプタ301からのパケットを受信したPLCアダプタ302が、該受信したパケットをSTB402に転送する。各PLCアダプタは別のPLCアダプタの先に接続されている機器のIPアドレスの情報を予め取得しており、パケットを転送する際にはパケットの最終的な宛先のIPアドレスを元に、パケットを送信するべきPLCアダプタを決定する。なお、PLCアダプタ302においても、上記と同様に、上記映像パケットが優先的にSTB402に転送される。
そして、最後に、PLCアダプタ302から送信された映像パケットをSTB402が受信し、映像信号に変換(デコード)してテレビ405に出力することによって、映像が再生される(ステップS208)。
次に、テレビ405のユーザとは別のユーザが、PC403にて、Webサーバ605にて提供されるWebコンテンツを表示するまでの流れ(シーケンスP2)について、説明する。
まず、PC403に対して、Webサーバ605にて提供されるWebコンテンツを取得するユーザ操作(例えば、Webブラウザソフトを実行して特定のページを表示しようとする)が行われると、PC403はWebコンテンツの受信を開始する処理(受信開始処理)として、デフォルトのDNSサーバ(本実施の形態では、HGW101)に対して、Webサーバ605のIPアドレスを問合せるDNS問合せメッセージを送信する(ステップS301)。なお、DNS問合せメッセージを送信する処理は、ステップS201にて説明した内容と同様であるので、ここではその説明を省略する。
続いて、ステップS202で説明した流れと同様に、HGW101は、PC403からDNS問合せメッセージを受信したとき、DNSサーバ601に対して、上記ドメイン名を含んだDNS問合せメッセージを送信する(ステップS302)。
続いて、ステップS203で説明した流れと同様に、DNSサーバ601は、HGW101からDNS問合せメッセージを受信したとき、Webサーバ605のIPアドレスである「105.105.105.1」を含めたDNS応答メッセージを、HGW101に返信する(ステップS303)。デフォルトのDNSサーバのIPアドレスは、例えば、ユーザがPC403にキーボード操作等によって設定したり、DHCPなどを用いてPC403が自動的に取得する。
そして、HGW101は、上記DNS応答メッセージを受信すると、問合せ元であるPC403に、上記DNS応答メッセージを転送する。これを受信したPC403は、Webサーバ605のIPアドレスが「105.105.105.1」であることを知ることができるので、Webサーバ605に対してWebデータを要求することが可能となる。
HGW101は、PC403にDNS応答メッセージを返信した後、ステップS204と同様に、優先度データ生成処理を実行し、優先度データの生成を試みる(ステップS304)。しかしながら、上述したように、本実施の形態では、QoS対象データにWebサーバ605のドメイン名を含まれない(QoS対象ではない)ので、優先度データ生成処理を実行しても、Webサーバ605からPC403に送信されるパケットの優先度を示すデータは生成されない。
一方、PC403は、DNS応答メッセージを受信した後、Webコンテンツの受信を開始するために、Webサーバ605に向けて、Webデータの要求を行なう(ステップS305)。
そして、PC403から上記要求を受信したWebサーバ605は、その応答として、PC403に向けてWebデータフローを送信する(ステップS306)。経路上のHGW101はそのWebデータフローを受信する。
上記Webデータフローを受信したHGW101は、パケット優先度変更処理にて、該受信したWebデータフローに属するWebデータパケットに含まれるDSCPの値の更新を試みる(ステップS307)。しかしながら、ステップS304にて、Webサーバ605からPC403に送信されるパケットの優先度を示すデータは生成されていないため、パケット優先度変更処理を実行しても、上記受信したWebデータフローに属するWebデータパケットの優先度(DSCP)の値は更新されない。つまり、DSCPの値はWebサーバにおいて設定されたデフォルト値(例えば0)のままである。
したがって、HGW101は、上記Webデータパケットを優先することなく、PLCアダプタ301に転送する(通常伝送)。
そして、HGW101から転送されたWebデータパケットを受信したPLCアダプタ301は、該受信したWebデータパケットをPLCネットワーク501に送出する。このとき、PLCアダプタ301は、該受信したWebデータパケットから抽出したDSCPの値を、PLCネットワーク501上でのパケットの優先度を表す値(CAP)に変換した上で、パケットの優先制御を行なう。なお、DSCPの値が0である場合、表1で示したマッピングによれば、対応するCAPの値は1である。
そして、上記Webデータパケットの送信先はPC403であるので、PLCアダプタ301からのパケットを受信したPLCアダプタ302が、該受信したパケットをPC403に転送する。
そして、最後に、PLCアダプタ302から送信されたWebデータパケットをPC403が受信し、Webデータを表示する(ステップS308)。
以上で説明した流れで映像パケットおよびWebデータパケットが送信されることにより、テレビ405にて映像配信サーバ603にて提供される映像コンテンツを視聴することができ、また、PC403にてWebサーバ605にて提供されるWebコンテンツを表示することができる。
なお、図4では、シーケンスP1とシーケンスP2とが時間的に重複して実行されていないが、シーケンスP1とシーケンスP2とが時間的に重複して実行されてもよい。この場合、HGW101には、STB402からのDNS問合せメッセージ、および、PC403からのDNS問合せメッセージが同時期に到着することがある。また、映像配信サーバ603から送信される映像パケット、および、Webサーバ605から送信されるWebデータパケットが同時期に到着することがある。このような場合であっても、上述したように各処理が実施され、映像配信サーバ603から送信される映像パケットのDSCPの値はHGW101において5に更新されるのに対して、Webサーバ605から送信されるWebデータパケットのDSCPの値はデフォルト値(0)のままとなる。HGW101やPLCアダプタ302では、パケットを送信する際には一旦バッファリングし、未送信のパケットの内、優先度の高いパケットから順に送信することで、優先度に応じた伝送を行なうことができる。これは優先制御伝送の一般的な方法である。
(HGWの構成)
次に、図1を参照しながら、通信制御装置100としてのHGW101の概略構成について説明する。図1は、HGW101の概略構成を示すブロック図である。
図1に示すようにHGW101は、制御部10、記憶部20、WAN側通信部31、およびLAN側通信部32を含んで構成される。
制御部10は、記憶部20、WAN側通信部31、およびLAN側通信部32の制御を行なうとともに、所定の演算処理を行なうものである。所定の演算処理としては、例えば、STB402からのDNSアドレス問合せの受信処理などがある。制御部10の詳細な構成については後述する。
記憶部20は、制御部10で利用される各種データ、プログラムの実行によって得られたデータなどを記憶するものであり、RAM(Random Access Memory)などの揮発性メモリおよび、ROM(Read-Only Memory)やフラッシュメモリなどの不揮発性メモリで実現される。上記各種データは、記憶部20内部の各種記憶部に記憶される。記憶部20は、サーバアドレス記憶部21、QoS対象記憶部22(第1記憶部)、およびパケット優先度記憶部23(第2記憶部)を含んでいる。
サーバアドレス記憶部21は、サーバ600のドメイン名とIPアドレスとの組を、読み出し可能な状態で記憶するものである。サーバアドレス記憶部21は、例えば下記の表2に示すようなデータ構造とすることができる。表2は、サーバアドレス記憶部21のデータ構造の一例を示す表である。表2に示すように、サーバアドレス記憶部21は、「ドメイン名」および「サーバIPアドレス」の組から成るエントリを記憶する。「ドメイン名」は、サーバ600のドメイン名を表す文字列である。「サーバIPアドレス」は、サーバ600のIPアドレスである。
なお、サーバアドレス記憶部21は、1つのドメイン名に対して、複数のIPアドレスが対応づけて記憶する場合もあり得る。これは、サーバ600の負荷を分散させたり、データのバックアップを行なうために、セカンダリサーバが構築されている場合があるからである。表2の例では、例えば、「sv1.vod.service-a.co.jp」というドメイン名のサーバ600のIPアドレスとして、「101.101.101.1」および「101.101.101.2」が記憶されている。
次に、QoS対象記憶部22は、サーバ600で提供されているサービスの名称、サーバ600のドメイン名、およびサーバ600で提供されているサービスを享受する際の優先度の組を、読み出し可能な状態で記憶するものである。QoS対象記憶部22は、例えば下記の表3に示すようなデータ構造とすることができる。表3は、QoS対象記憶部22のデータ構造の一例を示す表である。表3に示すように、QoS対象記憶部22は、「サービス名」、「ドメイン名」、および「優先度」の組から成るエントリを記憶する。
「サービス名」は、サーバ600にて提供されるサービスの名称である。「ドメイン名」は、サーバ600のドメイン名を表す文字列である。「優先度」は、サーバ600で提供されているサービスを優先的に享受する度合いを示す値である。数値が大きいほど優先度が高いことを示す。
表3の例では、例えば、「*.vod.service-a.co.jp」というドメイン名のサーバ600が提供している「映像配信サービスA」というサービスについては、優先度を「5」とする旨が記憶されている。
ここで、「ドメイン名」において使用されている「*」という文字は、任意の文字列を表す文字である。従って、例えば「sv1.vod.service-a.co.jp」および「sv2.vod.service-a.co.jp」は、いずれも「*.vod.service-a.co.jp」という表現に含まれる。よって、上記で例示した「映像配信サービスA」というサービスを提供しているサーバ600のドメイン名は、「sv1.vod.service-a.co.jp」および「sv2.vod.service-a.co.jp」のいずれであってもよいこととなる。さらに言えば、ドメイン名として「*.vod.service-a.co.jp」という表現で記述しておけば、例えば「sv3.vod.service-a.co.jp」というドメイン名のサーバ600が今後新たに設置された場合であっても、QoS対象記憶部22のエントリを更新する必要がない。同様に、「vod*.service-d.com」という表現は、「vod001.service-d.com」や「vod002.service-d.com」等というドメイン名を含んでいる。ドメイン名の表記方法としては一般的に用いられる正規表現によって記述されてもよい。例えば、一般的な正規表現においては、特定の種類(アルファベットや数字や記号)の任意の文字を示したり、特定の文字数の任意の文字列を示したりすることが可能である。
なお、QoS対象記憶部22の各エントリは、例えば、HGW101の工場出荷時などの時点で、各サーバ600にて提供可能なサービス毎に、予め格納しておけばよい。また、後述するQoS対象設定画面161および162のいずれかを用いて、ユーザが、QoS対象記憶部22の各エントリを更新することも可能である。また、QoS対象記憶部22の各エントリの情報をHGW101に対して提供するためのサーバ(QoS対象情報サーバと呼ぶ)を、HGW101と通信可能な位置に設置し、HGW101が必要に応じて、上記QoS対象情報サーバにアクセスして、情報を取得するようにしてもよい。例えば、HGW101の起動時に毎回QoS対象情報サーバにアクセスして情報を取得したり、HGW101がQoS対象記憶部22の各エントリの情報を使用する前に毎回QoS対象情報サーバにアクセスして情報を取得したりする事が考えられる。
次に、パケット優先度記憶部23は、サーバ600からデータ送受信装置400に送信される、HGW101が転送するパケットに付与すべき優先度を、読み出し可能な状態で記憶するものである。パケット優先度記憶部23は、例えば下記の表4に示すようなデータ構造とすることができる。表4は、パケット優先度記憶部23のデータ構造の一例を示す表である。表4に示すように、パケット優先度記憶部23は、「ドメイン名」、「サーバIPアドレス」、「クライアントIPアドレス」、「優先度」、および「最終受信日時」の組から成るエントリを記憶する。
「ドメイン名」は、HGW101が転送するパケットの送信元であるサーバ600のドメイン名を表す文字列である。QoS対象記憶部22のデータ構造と同様に「ドメイン名」は、‘*’を使用した表現や、一般的に用いられる正規表現によって記述されてもよい。「サーバIPアドレス」は、上記転送するパケットの送信元であるサーバ600のIPアドレスである。「クライアントIPアドレス」は、上記転送するパケットの送信先であるデータ送受信装置400のIPアドレスである。「優先度」は、パケットを優先的に伝送する度合いを示す値である。数値が大きいほど優先度が高いことを示す。「最終受信日時」は、上記転送するパケットをHGW101が最後に受信した日時である。
表4の例では、例えば、「*.vod.service-a.co.jp」の表現に合致するドメイン名のサーバ600(IPアドレスは、「101.101.101.1」、「101.101.101.2」、「101.101.101.3」、「101.101.101.4」のいずれであってもよい)から、IPアドレスが「192.168.0.2」であるデータ送受信装置400へ送信されるパケットの優先度には「5」を付与すること、および、該パケットをHGW101が最後に受信した日時が「2008年4月15日16時19分20秒」である旨が記憶されている。
なお、データ送受信装置400のIPアドレスが、DHCPを用いて付与されたものである場合には変更される可能性があるので、パケット優先度記憶部23には、さらに、データ送受信装置400のMACアドレスを含めて記憶してもよい。データ送受信装置400のMACアドレスは、例えば、HGW101とデータ送受信装置400とがARP(Address Resolution Protocol)などのプロトコルをやりとりすることによって取得することができるが、本発明の本質的部分ではないので、ここではその説明を省略する。
なお、記憶部20は、必ずしもHGW101に備えられる必要はなく、外部記憶装置として、読み取り可能な状態でHGW101に接続される構成であってもよい。
WAN側通信部31は、インターネット701を介して、サーバ600との通信を行なうものである。
LAN側通信部32は、内部にEthernet通信部33を含んでおり、Ethernet通信部33は、Ethernetを介して接続される装置との通信を行なうものである。本実施の形態では、Ethernet通信部33は、PLCアダプタ301との通信を行なう。
また、LAN側通信部32は、図示のように、無線LAN通信部34をさらに含んでいてもよい。無線LAN通信部34は、無線LANを介して接続される装置との通信を行なうものである。
次に、制御部10について詳細に説明する。制御部10は、パケット転送処理部11(パケット送信制御手段)、DNS処理部12(ドメイン名/アドレス抽出手段)、優先度データ生成処理部13(ドメイン優先度取得手段、アドレス取得手段、優先度データ生成手段)、パケット優先度変更処理部14(送信元アドレス/送信先アドレス抽出手段、パケット優先度取得手段、パケット優先度設定手段)、優先度データ削除処理部15、QoS対象設定処理部16、およびQoS対象更新処理部17を含んでいる。
まず、パケット転送処理部11について説明する。パケット転送処理部11は、まず、WAN側通信部31がインターネット701を介してサーバ600から受信したパケット、および、LAN側通信部32がPLCアダプタ301を介してデータ送受信装置400から受信したパケットの宛先が、HGW101であるか否かを解析する。
そして、上記解析の結果、上記受信したパケットの宛先がHGW101でないことがわかれば、パケット転送処理部11は、パケット優先度変更処理部14に転送対象となるパケットの優先度の変更処理を行なわせる。その後、パケットの優先度に従って上記転送対象となるパケットの伝送を制御しつつ、上記転送対象となるパケットの転送処理を行なう(パケット送信制御手段)。パケット優先度変更処理部14については後述する。
なお、パケットの転送処理では、WAN側通信部31がインターネット701を介してサーバ600から受信した、データ送受信装置400宛のパケットを、PLCアダプタ301を介してデータ送受信装置400へ送信するために、LAN側通信部32に転送する。また、逆に、LAN側通信部32がPLCアダプタ301を介してデータ送受信装置400から受信した、サーバ600宛のパケットを、サーバ600へ送信するために、WAN側通信部31に転送する。なお、上記転送にあたり、一般的には、NAT(Network Address Translation)処理やNAPT(Network Address Port Translation)処理が行われるが、本発明の本質的部分ではないので、ここではその説明を省略する。
また、パケット転送処理部11は、上記解析の結果、上記受信したパケットの宛先がHGW101であることがわかれば、さらに、該パケットがDNS問合せメッセージまたはDNS応答メッセージのパケットであるか否かを解析する。そして、該パケットがDNS問合せメッセージまたはDNS応答メッセージのパケットであることがわかれば、DNS処理部12に後続の処理を行なわせる。
さらに、パケット転送処理部11は、データ送受信装置400から、後述するQoS対象設定画面161および162のいずれかの提供を求める内容のパケットを受信すると、QoS対象設定処理部16に後続の処理を行なわせる。
さらに、パケット転送処理部11は、データ送受信装置400から、アップデートサーバ602へのアクセスを求める内容のパケットを受信すると、QoS対象更新処理部17に後続の処理を行なわせる。
次に、DNS処理部12について説明する。DNS処理部12は、DNSに関する一般的な処理を行なうものである。DNS処理部12は、パケット転送処理部11が受信したパケットが、データ送受信装置400から送信されたDNS問合せメッセージのパケットである場合、まず、該DNS問合せメッセージに含まれる、問合せ対象の装置のドメイン名およびデータ送受信装置400のIPアドレスを抽出する(ドメイン名/アドレス抽出手段)。そして、該抽出したドメイン名を含むエントリがサーバアドレス記憶部21に格納されているか否かを検索する。
そして、上記検索の結果、上記ドメイン名を含むエントリがサーバアドレス記憶部21に格納されている場合、DNS処理部12は、サーバアドレス記憶部21から、上記ドメイン名に対応するIPアドレスを取得し、該取得したIPアドレスを含むDNS応答メッセージを、パケット転送処理部11を介して、上記DNS問合せメッセージの送信元のデータ送受信装置400に返信する。
一方、上記検索の結果、上記ドメイン名を含むエントリがサーバアドレス記憶部21に格納されていない場合、DNS処理部12は、パケット転送処理部11を介して、上記ドメイン名を含む新たなDNS問合せメッセージを、DNSサーバ601に送信する。その後、DNSサーバ601からパケット転送処理部11を介して、上記新たなDNS問合せメッセージに対するDNS応答メッセージを受信すると、該DNS応答メッセージに含まれるドメイン名とIPアドレスとの組をサーバアドレス記憶部21に格納するとともに、該DNS応答メッセージを、パケット転送処理部11を介して、DNS問合せメッセージの送信元のデータ送受信装置400に返信する。
なお、DNS処理部12は、DNSサーバ601からDNS応答メッセージを受信したとき、併せて、該DNS応答メッセージに含まれるTTLを取得する。そして、DNS応答メッセージを受信してから上記取得したTTLで示される期間を経過した時点で、サーバアドレス記憶部21に格納した、該DNS応答メッセージに含まれるドメイン名とIPアドレスとの組を削除する。DNS問合せメッセージの送信元のデータ送受信装置400に返信するDNS応答メッセージにもTTL値を含めるが、DNSサーバ601から取得したTTL値とは独立して決定し、データ送受信装置400にてDNSキャッシュが早めに削除されるように短い値とする。
次に、優先度データ生成処理部13について説明する。優先度データ生成処理部13は、優先度データ生成処理を行なうものである。優先度データ生成処理部13は、DNS処理部12が、DNS問合せメッセージの送信元のデータ送受信装置400に、DNS応答メッセージを送信した後、必要に応じて、パケット優先度記憶部23を更新する。
具体的には、優先度データ生成処理部13は、まず、QoS対象記憶部22の全てのエントリを検索し、「ドメイン名」カラムの値が、DNS問合せメッセージに含まれる問合せ対象の装置ドメイン名と一致するエントリを抽出する。このとき、エントリが抽出されない場合は、データ送受信装置400がアクセスしようとしているサーバ600(すなわち、DNS問合せメッセージに含まれるドメイン名を有するサーバ600)が提供するサービスは、QoS対象記憶部22にて管理されていない(すなわち、優先度が設定されていない)サービスであるため、上記サーバ600から送信されるパケットの優先度を更新する必要が無い。したがって、この場合、優先度データ生成処理部13は処理を終了する。
一方、QoS対象記憶部22から、「ドメイン名」カラムの値が、DNS問合せメッセージに含まれる問合せ対象の装置ドメイン名と一致するエントリが抽出された場合、該抽出されたエントリの中から「優先度」カラムの値が最も大きいものを選択する。そして、「優先度」カラムを参照することによって、データ送受信装置400がアクセスしようとしているサーバ600(すなわち、DNS問合せメッセージに含まれるドメイン名を有するサーバ600)が提供するサービスの優先度を取得する(ドメイン優先度取得手段)。
続いて、優先度データ生成処理部13は、サーバアドレス記憶部21の全てのエントリを検索し、QoS対象記憶部22から上記抽出したエントリの「ドメイン名」カラムの値と一致する値を「ドメイン名」カラムに有するエントリを抽出する。そして、該抽出したエントリの「サーバIPアドレス」カラムを参照することによって、データ送受信装置400がアクセスしようとしているサーバ600(すなわち、DNS問合せメッセージに含まれるドメイン名を有するサーバ600)のIPアドレスを取得する(アドレス取得手段)。複数のIPアドレスが該当する場合は、全て取得する。
続いて、優先度データ生成処理部13は、上記取得した優先度、および、上記取得したIPアドレスを用いて、パケット優先度記憶部23を更新する(優先度データ生成手段)。つまり、「ドメイン名」カラムが、QoS対象記憶部22から上記抽出したエントリのドメイン名であり、「サーバIPアドレス」カラムが、サーバアドレス記憶部21から上記取得したIPアドレスであり、「クライアントIPアドレス」カラムが、DNS問合せメッセージを送信してきたデータ送受信装置400のIPアドレスであってDNS処理部12が抽出したものであり、「優先度」カラムが、QoS対象記憶部22から上記取得した優先度であり、「最終受信日時」カラムがNULL値であるエントリを、パケット優先度記憶部23に生成する。なお、「最終受信日時」カラムの値は、現在のシステム時刻であってもよい。また、サーバアドレス記憶部21から取得したIPアドレスが複数ある場合は、それに応じて上記生成されるエントリの数も複数となる。
ところで、QoS伝送の対象となるフローが増えすぎると、QoSの効果が失われる場合がある。図14および図15にて説明したように、QoS伝送の対象となるフローがネットワーク全体の帯域を越えてしまうと、全てのフローについて、帯域が不足し映像の乱れ等につながる。これを防ぐためには、一方のフローだけをQoS対象とし、他方をQoS対象としないといった取捨選択が必要となる。本発明では、ドメイン名にてQoS対象を区別しているが、同一ドメイン名のサーバからフローを受信する端末が、ホームネットワーク内に複数存在した場合、それらのフローは同一の優先度となるので、この中で取捨選択が必要となる。
このために、QoS対象とするフローの数に制限をかける事が考えられる。例えば、QoS対象のドメインにアクセスするのが早い順にQoS対象にしてゆき(優先度データを生成する)、制限数に達した後はQoS対象にしない(優先度データを生成しない)という制御を行ってもよい。フローの制限数は工場出荷時にHGW101に記憶しておいてもよいし、ユーザがQoS対象設定画面161や162にて設定できるようにしておいてもよい。
また、HGW101がQoS対象フローの伝送レートと、ネットワークの帯域使用状況を把握して、それに応じて、QoS対象フローの制限数を決定してもよい。例えば、ネットワークの未使用帯域の大きさが25Mbpsの場合に、QoS対象フローの伝送レートが10Mbpsであれば、2本までのフローをQoS対象とすれば、帯域が不足せずにQoSの効果が失われないことがわかる。ネットワークの未使用帯域の大きさを知る方法については、そのネットワークを構成する装置に問い合わせることが考えられる。例えば、HGW101がPLCネットワーク501における帯域の使用状況をPLCアダプタ301等に問い合わせて取得することが考えられる。また、QoS対象フローの伝送レートを知る方法としては、映像配信サーバ603に問い合わせたり、STB402に問い合わせたり、映像配信サーバ603とSTB402の間でやり取りされるネゴシエーションパケットを解析したりして取得することが考えられる。
また、本発明ではQoS対象フローがどのようなサービスのフローであるかを予め知ることができるので、そのサービスの運用規定などにおいて決定されている最大の伝送レートを予めHGW101において記憶(例えば、QoS対象記憶部22に工場出荷時などにサービスごとに記憶させておく)させておいてもよい。
なお、後述するQoS対象設定画面161にて、後述するQoS機能がオフに設定されている場合、優先度データ生成処理部13は、優先度データ生成処理を行なわずに、処理を終了する。
ここで、表2、表3、および表4を参照しながら、優先度データ生成処理部13が行なう優先度データ生成処理について、具体例を挙げて説明する。
例えば、サーバアドレス記憶部21は、表2に示すデータを記憶しており、QoS対象記憶部22は、表3に示すデータを記憶しているものとする。そして、IPアドレスが「192.168.0.2」であるデータ送受信装置400から送信された、「sv2.vod.service-a.co.jp」というドメイン名を問合せ対象とするDNS問合せメッセージに対する処理を、DNS処理部12が行なったとする。
この場合、上述のとおり、優先度データ生成処理部13は、まず、QoS対象記憶部22から「sv2.vod.service-a.co.jp」というドメイン名を含むエントリを抽出する。「sv2.vod.service-a.co.jp」という文字列は、「*.vod.service-a.co.jp」という表現に含まれる。したがって、「サービス名」カラムの値が「映像配信サービスA」であるエントリが抽出されることとなり、優先度が「5」であることがわかる。
次に、優先度データ生成処理部13は、サーバアドレス記憶部21から「*.vod.service-a.co.jp」というドメイン名を含むエントリを抽出する。よって、サーバアドレス記憶部21の「ドメイン名」カラムの値が「sv1.vod.service-a.co.jp」であるエントリ、および、「sv2.vod.service-a.co.jp」であるエントリが抽出され、サーバIPアドレスが、「101.101.101.1」、「101.101.101.2」、「101.101.101.3」、および「101.101.101.4」であることがわかる。
そして、優先度データ生成処理部13は、QoS対象記憶部22から上記得られたドメイン名および優先度、並びに、サーバアドレス記憶部21から上記得られたサーバIPアドレスに基づいて、表4に示すパケット優先度記憶部を生成する。つまり、ドメイン名が「*.vod.service-a.co.jp」、サーバIPアドレスが「101.101.101.1」、クライアントIPアドレスが「192.168.0.2」、優先度が「5」であるエントリ、および、ドメイン名が「*.vod.service-a.co.jp」、サーバIPアドレスが「101.101.101.2」、クライアントIPアドレスが「192.168.0.2」、優先度が「5」であるエントリ、および、ドメイン名が「*.vod.service-a.co.jp」、サーバIPアドレスが「101.101.101.3」、クライアントIPアドレスが「192.168.0.2」、優先度が「5」であるエントリ、および、ドメイン名が「*.vod.service-a.co.jp」、サーバIPアドレスが「101.101.101.4」、クライアントIPアドレスが「192.168.0.2」、優先度が「5」であるエントリをそれぞれ生成する。
次に、パケット優先度変更処理部14について説明する。パケット優先度変更処理部14は、パケット優先度変更処理を行なうものである。パケット優先度変更処理部14は、パケット転送処理部11が転送しようとしているパケットを解析し、該解析したパケットの優先度を、パケット優先度記憶部23に格納されているエントリに基づいて、必要に応じて変更する。
具体的には、パケット優先度変更処理部14は、まず、転送しようとしているパケットから、送信元IPアドレスおよび送信先IPアドレスを抽出する(送信元アドレス/送信先アドレス抽出手段)。
そして、パケット優先度記憶部23のエントリから、「サーバIPアドレス」カラムの値が、上記抽出した送信元IPアドレスと一致し、かつ、「クライアントIPアドレス」カラムの値が、上記抽出した送信先IPアドレスと一致するエントリを抽出する。
このとき、上記エントリが抽出されなかった場合は、上記転送しようとしているパケットは優先度を変更する対象のパケットではないこととなるので、パケット優先度変更処理部14は、処理を終了する。そして、パケット優先度変更処理部14は、上記転送しようとしているパケットの転送処理を、パケット転送処理部11に行なわせる。
一方、上記エントリが抽出された場合は、上記転送しようとしているパケットは優先度を変更する対象のパケットであることがわかる。従って、パケット優先度変更処理部14は、上記抽出されたエントリの「優先度」カラムの値を取得する(パケット優先度取得手段)。そして、該取得した値で、上記転送しようとしているパケットの優先度フィールド(すなわちDSCPフィールド)を上書きする(パケット優先度設定手段)。
なお、上記抽出されたエントリが複数ある場合は、それらエントリの「優先度」カラムの値のうち最も大きな値を、上記転送しようとしているパケットの優先度フィールド(すなわちDSCPフィールド)に上書きする。
また、上記エントリが抽出された場合は、上記抽出されたエントリの「最終受信日時」カラムの値を、HGW101が上記転送するパケットを受信した日時で上書きする。なお、受信日時ではなく、HGW101からパケットが送信された日時を記憶してもよい。
その後、パケット優先度変更処理部14は、上記優先度フィールドを更新したパケットの転送処理を、パケット転送処理部11に行なわせる。
なお、後述するQoS対象設定画面161にて、後述するQoS機能がオフに設定されている場合、パケット優先度変更処理部14は、パケット優先度変更処理を行なわずに、処理を終了する。
ここで、表4を参照しながら、パケット優先度変更処理部14が行なうパケット優先度変更処理について、具体例を挙げて説明する。
例えば、パケット優先度記憶部23は、表4に示すデータを記憶しているものとする。そして、IPアドレスが「101.101.101.1」である映像配信サーバ603から、IPアドレスが「192.168.0.2」であるデータ送受信装置400に向けて、映像パケットが送信されたとする。
この場合、パケット転送処理部11は、上記映像パケットをLAN側通信部32に転送しようとする。そして、上記転送を行なう前に、パケット優先度変更処理部14は、パケット優先度記憶部23のエントリとの照合を行ない、「サーバIPアドレス」カラムの値が「101.101.101.1」であって、かつ、「クライアントIPアドレス」カラムの値が「192.168.0.2」であるエントリを発見し抽出する。そして、抽出されたエントリの「優先度」カラムを参照することにより、優先度が「5」であることを取得する。
そして、パケット優先度変更処理部14は、上記映像パケットのDSCPフィールドに「5」を上書きする。
以上の結果、上記映像パケットは、優先度が「5」より小さい値のパケットよりも優先的に伝送されるようになる。
次に、優先度データ削除処理部15について説明する。優先度データ削除処理部15は、所定周期(例えば1分)で、パケット優先度記憶部23を検索し、必要の度合いが低くなったエントリを削除する。
具体的には、所定周期(例えば1分毎)で、パケット優先度記憶部23を検索し、「最終受信日時」カラムの値が、現在のシステム時刻よりも所定時間(例えば5分)以上過去の時刻であるエントリを全て、パケット優先度記憶部23から削除する。
ここで、上記のように、パケット優先度記憶部23のエントリを削除する理由を説明する。パケット優先度変更処理部14が処理を行なうとき、パケット優先度記憶部23の全てのエントリを検索対象としているため、パケット優先度記憶部23に格納されているエントリが少ないほど、パケット優先度変更処理部14の検索時の処理負荷が軽くなる。そのため、上記所定時間以上受信していないパケットについては、伝送が終了したものとみなし、該パケットに対応するエントリをパケット優先度記憶部23から削除することにより、パケット優先度変更処理部14が処理する対象のエントリを少なくしている。
なお、上記所定時間は、上述したデータ送受信装置400に送信するTTLで示される期限よりも長くしておくほうが望ましい。この理由について説明する。TTLが示す期限より前の時刻において、STB402にはDNSキャッシュが存在するため、映像配信サーバ603に直接アクセスする。このとき、HGW101にはDNS問合せメッセージが送信されないので、上述したように、パケット優先度記憶部23には、映像配信サーバ603からSTB402に送信されるパケットに付与すべき優先度を格納するエントリは生成されない。そして、上記所定時間がTTLで示される期限よりも短い場合、映像配信サーバ603からSTB402に送信されるパケットに付与すべき優先度を格納するエントリは、すでにパケット優先度記憶部23から削除されている。したがって、この場合、HGW101では、映像配信サーバ603からSTB402に送信されるパケットの優先度を変更することができない。そこで、上記所定時間をTTLで示される期限よりも長くしておくことにより、上記現象が生じないようにすることができる。換言すれば、DNSキャッシュが残っている間は、HGW101での優先度変更処理が終了しないように上記所定時間を調節する。
次に、QoS対象設定処理部16について説明する。QoS対象設定処理部16は、パケット転送処理部11を介してデータ送受信装置400から受信した要求に応じて、QoS対象記憶部22およびパケット優先度記憶部23に格納されているデータを更新するためのユーザインタフェースであるQoS対象設定画面161および162のいずれかを構成する所定のデータ(例えば、HTMLデータ)を、データ送受信装置400に送信する。すなわち、QoS対象設定処理部16は、一般的なWebサーバの機能を含んでいる。なお、QoS対象設定画面161および162は、データ送受信装置400のユーザが、HGW101に、優先度データ生成処理およびパケット優先度変更処理に関する各種設定を行なうことができる画面である。QoS対象設定画面161および162については後述する。
そして、QoS対象設定処理部16は、データ送受信装置400のユーザがQoS対象設定画面161にて入力した内容に基づいて、QoS対象記憶部22に格納されているデータを更新する。また、データ送受信装置400のユーザがQoS対象設定画面162にて入力した内容に基づいて、QoS対象記憶部22およびパケット優先度記憶部23のいずれかに格納されているデータを更新する。この更新処理については、後述するQoS対象設定画面161および162の説明時に、併せて説明する。なお、上記更新処理があったとき、QoS対象設定画面161またはQoS対象設定画面162の表示を更新する必要がある場合は、それらを構成する所定のデータ(例えば、HTMLデータ)を、データ送受信装置400に送信する。
また、QoS対象設定処理部16は、QoS対象更新処理部17がQoS対象記憶部22に新たなエントリを生成した旨の通知に応じて、QoS対象設定画面161および162のいずれかの表示を更新するために、QoS対象設定画面161および162を構成する所定のデータ(例えば、HTMLデータ)を、データ送受信装置400に送信する。
次に、QoS対象更新処理部17について説明する。QoS対象更新処理部17は、パケット転送処理部11を介してアップデートサーバ602と通信し、アップデートサーバ602から、QoS対象記憶部22の新たなエントリを追加するためのデータ(具体的には、サービス名、ドメイン名、および優先度の組)を取得する。該取得を行なうタイミングは特に限定されず、例えば、所定周期でアップデートサーバ602にアクセスし、上記データを取得してもよいし、また例えば、上記QoS対象設定画面161および162にて所定のユーザ操作があった旨をデータ送受信装置400から受信したことをトリガとしてアップデートサーバ602にアクセスし、上記データを取得してもよい。
そして、上記取得したデータに基づいて、QoS対象更新処理部17は、QoS対象記憶部22に新たなエントリを生成する。さらに、このとき、上記新たにエントリを生成した旨をQoS対象設定処理部16に通知する。
なお、QoS対象更新処理部17の処理については、後述するQoS対象設定画面161および162の説明時にも説明する。
(PLCアダプタの構成)
次に、図5を参照しながら、中継装置300としてのPLCアダプタ301(302、303)の概略構成について説明する。図5は、PLCアダプタ301(302、303)の概略構成を示すブロック図である。
図5に示すようにPLCアダプタ301(302、303)は、制御部110、Ethernet通信部131、およびPLC通信部132を含んで構成される。
Ethernet通信部131は、Ethernetを介して接続される外部装置との通信を行なうものである。本実施の形態では、PLCアダプタ301のEthernet通信部131は、HGW101との通信を行ない、PLCアダプタ302のEthernet通信部131は、STB402およびPC403との通信を行ない、PLCアダプタ303のEthernet通信部131は、STB404との通信を行なう。
PLC通信部132は、PLCネットワーク501上の他のPLCアダプタとの通信を行なうものである。
制御部110は、Ethernet通信部131、およびPLC通信部132の制御を行なうとともに、所定の演算処理を行なうものである。制御部110は、QoS処理部111を含んでいる。
QoS処理部111は、Ethernetを介して接続される外部装置からEthernet通信部131に到着したパケットを、PLCネットワーク501にて伝送可能なパケットに変換し、該変換後のパケットをPLC通信部132に送信する。また、PLCネットワーク501からPLC通信部132に到着したパケットを、Ethernetを介して接続される外部装置に伝送可能なパケットに変換し、該変換後のパケットをEthernet通信部131に送信する。
このとき、QoS処理部111は、パケットの優先度に応じた優先制御を行なう。つまり、上述したように、表1で示したようにマッピングに基づいてDSCPとCAPとの変換処理を行ない、IPパケットはDSCPの値に応じて優先制御を行ない、また、PLCネットワーク上で伝送されるパケットはCAPの値に基づいて優先制御を行なう。なお、上記マッピング情報は、工場出荷時などの時点で、図示しない記憶部に記憶されているものとする。
なお、QoS処理部111は、サーバ600からデータ送受信装置400へ送信されるパケット(例えば、映像パケットなど)を優先制御するだけではなく、データ送受信装置400からサーバ600へ送信されるパケット(例えば、ACK(Acknowledge:肯定応答)など)についても優先制御するようにしてもよい。例えば、サーバ600が、データ送受信装置400に対してデータパケットを送信し、そのデータパケットに対するACKをデータ送受信装置400から受信することにより、その次のデータパケットの送信を開始する場合、ACKの伝送が遅延すると、データパケットの送信の開始が遅延することとなるので、結果としてQoSを実現することができなくなる場合がある(データ送受信装置400においてパケット受信の遅延が生じる)。これを解消するために、ACKパケットのように、データ送受信装置400からサーバ600へ送信されるパケットについても優先制御することが望ましい。
なお、一般的にPLCアダプタでは、パケットの優先度に応じた優先制御を行なうか否かを設定可能であるが、本実施の形態では、パケットの優先度に応じた優先制御を行なうように予め設定されているものとする。
(HGWがパケットを受信した際の処理の流れ)
次に、図6を参照しながら、HGW101がパケットを受信した際の処理の流れの概要について説明する。図6は、HGW101がパケットを受信した際の処理の流れの概要を示すフローチャートである。
まず、HGW101は起動直後、パケットの受信を待つ状態となる(ステップS501)。そして、パケット転送処理部11がパケットを受信すると(ステップS501にてYES)、該受信したパケットの宛先が、HGW101であるか否かを解析する(ステップS502)。
そして、上記解析の結果、上記受信したパケットの宛先がHGW101でないことがわかれば(ステップS502にてNO)、パケット優先度変更処理部14はパケット優先度変更処理を行なう(ステップS503)。パケット優先度変更処理の流れについては、別のフローチャートを用いて後述する。
その後、パケット転送処理部11が、上記パケットの転送処理を行なう(ステップS504)。つまり、インターネット701を介してサーバ600から受信した、データ送受信装置400宛のパケットを、LAN側通信部32に転送する。また、逆に、PLCネットワーク501を介してデータ送受信装置400から受信した、サーバ600宛のパケットを、WAN側通信部31に転送する。
一方、上記解析の結果、上記受信したパケットの宛先がHGW101であることがわかれば(ステップS502にてYES)、さらに、パケット転送処理部11は、該パケットがDNS問合せメッセージのパケットまたはDNS応答メッセージのパケット(以下、DNSパケット)であるか否かを解析する(ステップS505)。
そして、該パケットがDNSパケットであることがわかれば(ステップS505にてYES)、DNS処理部12は、既に述べたように、DNSに関する一般的な処理を行なう(ステップS506)。つまり、必要に応じてDNSサーバ601とのやりとりを行ない、最終的に、DNS問合せメッセージの送信元に、DNS応答メッセージを送信する。
DNS問合せメッセージの送信元にDNS応答メッセージを送信した後、優先度データ生成処理部13は、優先度データ生成処理を行なう(ステップS507)。優先度データ生成処理の流れについては、別のフローチャートを用いて後述する。
なお、ステップS505にて、受信したパケットがDNSパケットでないことがわかれば(ステップS505にてNO)、当該受信したパケットに応じた処理を行なう(ステップS508)。
なお、このフローチャートでは、パケット転送処理部11が、QoS対象設定画面161および162の提供を求める内容のパケット、および、アップデートサーバ602へのアクセスを求める内容のパケットを受信した際の処理の流れについては省略している。また、本発明に関係のないパケットの処理についても省略している。
(優先度データ生成処理の流れ)
次に、図7を参照しながら、優先度データ生成処理部13が行なう優先度データ生成処理の流れの概要について説明する。図7は、優先度データ生成処理部13が行なう優先度データ生成処理の流れの概要を示すフローチャートである。
まず、DNS処理部12が、パケット転送処理部11が受信したDNS問合せメッセージの送信元に対して、対応するDNS応答メッセージを、パケット転送処理部11を介して送信した場合(ステップS701にてYES)、優先度データ生成処理部13が、QoS対象記憶部22の全てのエントリを検索し、「ドメイン名」カラムの値が、上記DNS問合せメッセージに含まれる問合せ対象の装置ドメイン名と一致するエントリを抽出する(ステップS702)。
なお、DNS問合せメッセージに複数の問合せ対象の装置ドメイン名が含まれている場合(換言すれば、一つのDNS問合せメッセージで複数のドメイン名の問合せが行われている場合)、それぞれの問合せ対象の装置ドメイン名について、以下のS702〜S707を実行する。
そして、上記エントリが抽出された場合(ステップS703にてYES)、該抽出されたエントリの中から「優先度」カラムの値が最も大きいものを選択する(ステップS704)。あるドメイン名に対して異なる優先度が設定されていた場合には、より高い優先度を適用しておけば、全てのエントリの要求を満たすことができるので、最大の優先度のエントリを選択している。最小の優先度を選択するようにしてもよい。
次に、優先度データ生成処理部13は、サーバアドレス記憶部21の全てのエントリを検索し、QoS対象記憶部22から上記選択されたエントリの「ドメイン名」カラムの値と一致する値を「ドメイン名」カラムに有するエントリを抽出する(ステップS705)。
そして、上記エントリが抽出された場合(ステップS706にてYES)、優先度データ生成処理部13は、以下のエントリをパケット優先度記憶部23に生成する(ステップS707)。すなわち、「ドメイン名」カラムの値が、ステップS704にて抽出したエントリのドメイン名であり、「サーバIPアドレス」カラムの値が、ステップS705にて抽出したエントリのIPアドレスであり、「クライアントIPアドレス」カラムの値が、DNS問合せメッセージを送信してきたデータ送受信装置400のIPアドレスであり、「優先度」カラムの値が、ステップS704にて抽出したエントリの優先度であり、「最終受信日時」カラムの値がNULLであるエントリを生成する。なお、「最終受信日時」カラムの値は、現在のシステム時刻であってもよい。また、ステップS705にて抽出したエントリが複数ある場合は、それに応じて上記生成されるエントリも複数生成される。
なお、ステップS703にてエントリが抽出されない場合(ステップS703にてNO)、または、ステップS706にてエントリが抽出されない場合(ステップS706にてNO)は、優先度データ生成処理部13は、処理を終了する。
(パケット優先度変更処理の流れ)
次に、図8を参照しながら、パケット優先度変更処理部14が行なうパケット優先度変更処理の流れの概要について説明する。図8は、パケット優先度変更処理部14が行なうパケット優先度変更処理の流れの概要を示すフローチャートである。
まず、パケット優先度変更処理部14は、パケット転送処理部11が転送しようとしているパケットに含まれる、送信元のIPアドレスおよび送信先のIPアドレスを抽出する(ステップS901)。
そして、パケット優先度変更処理部14は、パケット優先度記憶部23のすべてのエントリを検索し、「サーバIPアドレス」カラムの値が、上記転送しようとしているパケットの送信元IPアドレスと一致し、かつ、「クライアントIPアドレス」カラムの値が、上記転送しようとしているパケットの送信先IPアドレスと一致するエントリを抽出する(ステップS902)。なお、上記エントリが複数ある場合は、そのすべてを抽出する。
そして、上記エントリが抽出された場合(ステップS903にてYES)、パケット優先度変更処理部14は、上記抽出されたエントリのうち、「優先度」カラムの値が最大のエントリを選択する(ステップS904)。あるIPアドレスに対して異なる優先度が設定されていた場合には、より高い優先度を適用しておけば、全てのエントリの要求を満たすことができるので、最大の優先度のエントリを選択している。最小の優先度を選択するようにしてもよい。
そして、パケット優先度変更処理部14は、転送しようとしているパケットの優先度フィールド(すなわちDSCPフィールド)を、上記選択されたエントリの「優先度」カラムの値で更新する(ステップS905)。
なお、ステップS903にてエントリが抽出されない場合(ステップS903にてNO)、パケット優先度変更処理部14は処理を終了する。
(簡易版のQoS対象設定画面)
次に、図9および図10を参照しながら、QoS対象設定画面161および162について説明する。まず、図9は、設定可能な項目が少ない簡易版のQoS対象設定画面161の画面例を示す模式図である。
本画面は、一般的なWebサーバの機能を含むQoS対象設定処理部16がデータ送受信装置400からの要求に応じて提供するものであり、データ送受信装置400のユーザがWebブラウザなどを用いてアクセスする。なお、本画面にアクセスするための方法としては、HGW101のルーテイング機能等に関する設定を行なうための画面(一般的なルータの設定画面)上に、本画面へジャンプするリンクを設けておいてもよいし、ユーザが本画面のURLをWebブラウザに直接入力してもよい。
本画面では、図示のように、1)QoS機能をオンとするかオフとするかがユーザ入力可能な入力フィールドN1、および、2)サーバ600にて提供されている映像配信サービスを優先的に享受するか否かをユーザ入力可能な入力フィールドN2を設けている。ここでは、入力フィールドN1およびN2として、プルダウンメニューやリストボックスなどを想定しているが、特に限定されるものではない。
ここで、上記「QoS機能」とは、HGW101が行なう優先度データ生成処理およびパケット優先度変更処理を指し、QoS機能がオンに設定されているときは、HGW101は優先度データ生成処理およびパケット優先度変更処理を行ない、QoS機能がオフに設定されているときは、HGW101は優先度データ生成処理およびパケット優先度変更処理を行なわないものとする。HGW101以外の装置にて何らかのQoS処理が行われ、それらの処理と本発明におけるQoS処理を同時利用した場合に不都合が発生する場合に、QoS機能をオフにすることが考えられる。例えば、サーバ600が予めDSCP値を付与した上でパケットを送信する場合に、HGW101でDSCP値が更新されると不都合が発生することが考えられる。
なお、QoS機能をオンにするかオフにするかについては、記憶部20に記憶され、QoS対象設定処理部16が本画面を提供するときは、QoS機能をオンにするかオフにするかを記憶部20から読み出し、読み出した結果を入力フィールドN1に表示する。
また、QoS機能をオンとするかオフとするかを記憶部20に記憶するタイミングは、入力フィールドN1に入力があったときでもよいし、本画面下部にある「決定」ボタンB3を押下したときであってもよい。
また、QoS機能がオフに設定されたときは、入力フィールドN2などをユーザ入力不可に制御してもよい。
次に、入力フィールドN2について説明する。QoS対象設定処理部16はQoS対象記憶部22の内容を読み出して、入力フィールドN2に表示する。具体的には、QoS対象記憶部22の「優先度」カラムの値を読み出して、サービス名毎に表示する。ただし、上記読み出した「優先度」カラムの値は入力フィールドN2にそのまま表示するのではなく、2値化(優先するか否か)した上で表示する。例えば、「優先度」カラムの値が0であるときは、優先しない旨を表示し、「優先度」カラムの値が0以外であれば、優先する旨を表示するなどすればよい。
そして、入力フィールドN2にユーザ入力があったとき、QoS対象設定処理部16はQoS対象記憶部22を更新する。具体的には、入力フィールドN2にて優先する旨がユーザ入力されたサービスを「サービス名」カラムの値として有するQoS対象記憶部22のエントリを抽出し、該エントリの「優先度」カラムの値を、例えば5に更新する。なお、HomePlugAV規格では、映像データフローを優先する場合の優先度は「5」とすることが推奨されているので優先度を5としているが、別の値でも良い。
また、入力フィールドN2にて優先しない旨がユーザ入力されたサービスを「サービス名」カラムの値として有するエントリを抽出し、該エントリの「優先度」カラムの値を、例えばデフォルト値である「0」に更新する(なお、デフォルト値は0以外であってもよい)。
なお、上記更新のタイミングは、入力フィールドN2にユーザ入力があったときに限定されるものではなく、本画面下部の「決定」ボタンB3が押下されたときであってもよい。
上述のように、優先度の値そのものをユーザ入力させずに、単に、優先するか否かのみをユーザ入力させる理由は、QoSの設定に詳しくないユーザでも、比較的容易にQoSに関する設定を可能とするためである。詳細な設定を行ないたいユーザは、「詳細設定」ボタンB1を押下することにより、後述する、設定可能な項目が多い詳細版のQoS対象設定画面162にて各種設定が可能である。
次に、「サービスを追加」ボタンB2について説明する。ユーザが「サービスを追加」ボタンB2を押下すると、QoS対象更新処理部17が、アップデートサーバ602と通信し、アップデートサーバ602から、QoS対象記憶部22の新たなエントリを追加するためのデータ(サービス名、ドメイン名、および優先度の組)を取得する。例えば、アップデートサーバ602に、QoS対象記憶部22に格納されていないデータとして、サービス名が「映像配信サーバE」、ドメイン名が「service-e.co.jp」、優先度が「5」というデータが存在するとき、該データを取得する。そして、該取得したデータに基づいて、QoS対象更新処理部17は、QoS対象記憶部22に新たなエントリを生成する。上記例では、サービス名が「映像配信サーバE」、ドメイン名が「service-e.co.jp」、優先度が「5」というエントリを生成する。
なお、上記取得を行なうタイミングは、「サービスを追加」ボタンB2をユーザが押下したときに限定されるものではなく、例えば、所定周期でアップデートサーバ602にアクセスして上記データを取得してもよい。その際、QoS対象記憶部22に新たなエントリを生成する場合は、ユーザに対して所定の確認メッセージを表示してもよい。
また、QoS対象更新処理部17が、QoS対象記憶部22に上記新たなエントリを生成したとき、その旨をQoS対象設定処理部16に通知する。該通知を受信したQoS対象設定処理部16は、簡易版のQoS対象設定画面161を更新するために、QoS対象設定画面161を構成する所定のデータ(例えば、HTMLデータ)を、データ送受信装置400に送信する。例えば、上述の例では、「映像配信サーバE」を優先的に享受するか否かがユーザ入力可能な入力フィールドN2を画面上に表示するように構成された所定のデータ(例えば、HTMLデータ)を、データ送受信装置400に送信する。
(詳細版のQoS対象設定画面)
次に、図10を参照しながら、詳細版のQoS対象設定画面162の画面例について説明する。図10は、詳細版のQoS対象設定画面162の画面例を示す模式図である。
本画面は、QoS対象設定処理部16がデータ送受信装置400からの要求に応じて提供するものであり、データ送受信装置400のユーザがWebブラウザなどを用いてアクセスする。本画面では、図9で示した簡易版のQoS対象設定画面161よりもさらに詳しい設定が可能である。
なお、図9で示した簡易版のQoS対象設定画面161にて「詳細設定」ボタンB1を押下したときに本画面に遷移することを想定しているが、これに限定されるものではなく、HGW101のルーテイング機能等に関する設定を行なうための画面(一般的なルータの設定画面)に、本画面へジャンプするリンクを設けておいてもよいし、ユーザが本画面のURLをWebブラウザに直接入力してもよい。
本画面では、図示のように、1)映像配信サービスの名称、2)映像配信サービスのドメイン名、3)映像配信サービスを享受する優先度、4)映像配信サービスのデータフローを受信しているデータ送受信装置400の装置名、5)該データ送受信装置400のIPアドレス、6)該データ送受信装置400毎の、映像配信サービスを享受する優先度を表示している。
なお、上記4)は必ずしも表示しなくてもよい。また、上記5)のIPアドレスに加えて、さらに、データ送受信装置400のMACアドレスを表示してもよい。
上記1)〜3)については、QoS対象記憶部22の内容を読み出して表示する。具体的には、QoS対象記憶部22の「サービス名」カラムの値、「ドメイン名」カラムの値、「優先度」カラムの値を、それぞれ上記1)〜3)として表示する。また、上記5)および6)については、パケット優先度記憶部23の内容を読み出して表示する。具体的には、パケット優先度記憶部23の「クライアントIPアドレス」カラムの値、「優先度」カラムの値を、それぞれ上記5)および6)として表示する。なお、上記4)は、HGW101が所定のプロトコルを用いてデータ送受信装置400から取得したり、ユーザ入力するなどして表示すればよい。
そして、上記3)については、入力フィールドN3により優先度を示す数値(0〜7)がユーザ入力可能であり、上記6)については、入力フィールドN4により優先度を示す数値(0〜7)がユーザ入力可能であり、上記2)については、入力フィールドN5により任意の文字列がユーザ入力可能である。入力フィールドN3およびN4は、プルダウンやリストボックスなどを想定しており、入力フィールドN5はテキストボックスを想定しているが、特に限定されるものではない。
入力フィールドN3にて、優先度がユーザ入力されたときは、QoS対象設定処理部16はQoS対象記憶部22を更新する。具体的には、入力フィールドN3にて優先度が入力されたサービスを「サービス名」カラムの値として有するQoS対象記憶部22のエントリを抽出し、該エントリの「優先度」カラムの値を上記ユーザ入力された優先度で更新する。
なお、上記更新のタイミングは、入力フィールドN3にユーザ入力があったときに限定されるものではなく、本画面下部の「決定」ボタンB3が押下されたときであってもよい。
入力フィールドN4にて、優先度がユーザ入力されたときは、QoS対象設定処理部16はQoS対象記憶部22またはパケット優先度記憶部23を更新する。具体的には、入力フィールドN4にて優先度が入力されたサービスのドメイン名を「ドメイン名」カラムの値として有するQoS対象記憶部22またはパケット優先度記憶部23のエントリを抽出し、該エントリの「優先度」カラムの値を上記ユーザ入力された優先度で更新する。
なお、上記更新のタイミングは、入力フィールドN4にユーザ入力があったときに限定されるものではなく、本画面下部の「決定」ボタンB3が押下されたときであってもよい。
また、このように、データ送受信装置400毎の、映像配信サービスを享受する優先度について、ユーザ入力可能としている理由は、例えば、映像配信サービスAのデータフローを受信しているデータ送受信装置400として、STB402およびPC403がある場合、STB402への映像配信サービスAのデータフローは優先的に伝送したいが、PC403への映像配信サービスAのデータフローは優先的に伝送しなくてよいような場合に、データ送受信装置400毎に優先度を設定可能であるのが望ましいためである。
なお、入力フィールドN3に優先度がユーザ入力されたとき、対応する入力フィールドN4の優先度の値を、入力フィールドN3に入力された値と同じ値で更新するようにしてもよい。
また、入力フィールドN5にて、ドメイン名がユーザ入力されたときは、QoS対象設定処理部16はQoS対象記憶部22を更新する。具体的には、入力フィールドN5にてドメイン名がユーザ入力されたサービスを「サービス名」カラムの値として有するQoS対象記憶部22のエントリを抽出し、該エントリの「ドメイン名」カラムの値を上記ユーザ入力されたドメイン名で更新する。
また、データフローを受信しているデータ送受信装置400がない映像配信サービスについては、上記4)は「無し」と表示し、上記5)は「-」と表示し、入力フィールドN4はユーザ入力ができないようにすればよい。図10に示す画面では、映像配信サービスBおよび映像配信サービスDがこれに該当する。
また、本画面を表示しているときに、映像配信サービスのデータフローを受信するデータ送受信装置400が増減された場合には、その増減を本画面に反映するために、再度、QoS対象設定画面162を構成する所定のデータ(例えば、HTMLデータ)を、データ送受信装置400に送信してもよい。
次に、「サービスを追加」ボタンB4について説明する。「サービスを追加」ボタンB4をユーザが押下したときの動作は、図9で示した画面において「サービスを追加」ボタンB2をユーザが押下したときと同様である。すなわち、QoS対象更新処理部17が、アップデートサーバ602と通信し、アップデートサーバ602から、QoS対象記憶部22の新たなエントリを追加するためのデータ(サービス名、ドメイン名、および優先度の組)を取得する。そして、該取得したデータに基づいて、QoS対象更新処理部17は、QoS対象記憶部22に新たなエントリを生成する。そして、QoS対象更新処理部17が、QoS対象記憶部22に上記新たなエントリを生成したとき、その旨をQoS対象設定処理部16に通知し、QoS対象設定処理部16は、上記新たなエントリの内容を表示するように、詳細版のQoS対象設定画面162を更新する。
以上で述べたように、本実施の形態によれば、HGW101は、データ送受信装置400から受信したDNS問合せメッセージに含まれるサーバ600のドメイン名に対応付けられる優先度を、QoS対象記憶部22から取得する。そして、上記DNS問合せメッセージを送信したデータ送受信装置400のIPアドレスと、上記DNS問合せメッセージに応じて取得したサーバ600のIPアドレスとの組に、上記取得した優先度を対応付けて、パケット優先度記憶部23に格納することができる。
そして、サーバ600からデータ送受信装置400に送信されるパケットから該パケットの送信元の通信アドレスと、該パケットの送信先の通信アドレスとの組に対応付けられた上記優先度を、パケット優先度記憶部23から取得する。そして、パケット優先度記憶部23から取得した上記優先度を、上記パケットの優先度として設定する。
そして、上記設定した優先度に応じて、上記パケットの送信を制御する。
よって、サーバ600のドメイン名毎に対応付けられた優先度を、サーバ600からデータ送受信装置400に送信されるパケットの優先度に設定することができ、該設定した優先度に応じて上記パケットの伝送を制御することができる。
したがって、ドメイン名が異なるサーバ600のそれぞれから送信される、同じネゴシエーションプロトコルを使用するコンテンツ(例えば、高画質の映像コンテンツおよび低画質の映像コンテンツ)のデータフローが同一の通信ネットワーク上で伝送される状況において、各データフローをいずれも優先的に伝送すると通信ネットワークの伝送帯域が不足する場合であっても、本実施の形態に係るHGW101によれば、ドメイン名に応じていずれかのデータフローのみを(例えば、高画質の映像コンテンツのみを)優先的に伝送することができるので、上記状況においてもQoSを実現することができるという効果を奏する。
(変形例1)
上述の実施の形態は、図3に示した構成例に基づいて説明したが、この構成例に限定されるものではないので、図11を参照しながら他のシステム構成例について説明する。図11は、図2で示した通信制御システムの具体的構成の他の一例を模式的に示すブロック図である。
図11の構成例は、図3示した構成例とほぼ同様であるが、PLCアダプタ302と、STB402およびPC403との間に無線LANネットワーク901をさらに設けている。そして、PLCアダプタ302と、STB402、およびPC403とを無線LANネットワーク901に接続するために、それぞれに、無線LANアダプタ801、無線LANアダプタ802、および無線LANアダプタ803を接続している。なお、ここでは、無線LANとして、特に、IEEE802.11eやIEEE802.11nに準拠する方式を想定している。
(無線LANアダプタの構成)
次に、図12を参照しながら、無線LANアダプタ801(802、803)の概略構成について説明する。図12は、無線LANアダプタ801(802、803)の概略構成を示すブロック図である。
図12に示すように無線LANアダプタ801(802、803)は、制御部810、Ethernet通信部831、および無線LAN通信部832を含んで構成される。
Ethernet通信部831は、Ethernetを介して接続される装置との通信を行なうものである。図11に示した構成例では、無線LANアダプタ801のEthernet通信部831は、PLCアダプタ301との通信を行ない、また、無線LANアダプタ802のEthernet通信部831は、STB402との通信を行ない、また、無線LANアダプタ803のEthernet通信部831は、PC403との通信を行なう。
無線LAN通信部832は、無線LANネットワーク901上の他の無線LANアダプタとの通信を行なうものである。
制御部810は、Ethernet通信部831、および無線LAN通信部832の制御を行なうとともに、所定の演算処理を行なうものである。制御部810は、QoS処理部811を含んでいる。
QoS処理部811は、Ethernetを介して接続される装置からEthernet通信部831に到着したパケットを、無線LANネットワーク901にて伝送可能なパケットに変換し、該変換後のパケットを無線LAN通信部832に送信する。また、無線LANネットワーク901から無線LAN通信部832に到着したパケットを、Ethernetを介して接続される装置に伝送可能なパケットに変換し、該変換後のパケットをEthernet通信部831に送信する。
このとき、QoS処理部811は、パケットの優先度に応じた優先制御を行なう。つまり、IPパケットはDSCPの値に応じて優先制御を行ない、無線LANネットワーク上で伝送されるパケットは、DSCPの値から変換した無線LANネットワーク上での優先度に基づいて優先制御を行なう。
なお、QoS処理部811は、サーバ600からデータ送受信装置400へ送信されるパケット(例えば、映像パケットなど)を優先制御するだけではなく、データ送受信装置400からサーバ600へ送信されるパケット(例えば、ACKなど)についても優先制御するようにしてもよい。
このように、無線LANアダプタ801(802、803)においても、HGW101が付与したDSCPの値を変換した、無線LANネットワーク上での優先度に基づいて、パケットの優先制御を行なうので、図11に示した構成例においても、本発明が有効に作用する。
例えば映像配信サーバ603からSTB402に伝送される映像データフローを優先的に伝送する場合、HGW101にて、映像データフローに属するパケットのDSCPフィールドが高優先度を示す値に更新され、PLCネットワーク上でPLCアダプタ301がPLCアダプタ302に伝送する際にDSCPフィールドに従って優先的に伝送され、さらに、無線LANアダプタ801が無線LANアダプタ802に伝送される際にもDSCPフィールドに従って優先的に伝送される。このように、映像配信サーバ603からSTB402への伝送経路上に複数のネットワークが存在している場合にも、経路上のネットワークにてDSCPによるQoSがサポートされていれば、本発明により、end-to-endでのQoS伝送が実現可能である。
(変形例2)
さらに、図13を参照しながら、図2で示した通信制御システムの他の具体的構成例について説明する。図13は、図2で示した通信制御システムの具体的構成の他の一例を模式的に示すブロック図である。
図13の構成例は、図3に示した構成例とは異なりPLCネットワーク501を設けていない。そして、この例では、データ送受信装置400としてのSTB404およびPC407が、HGW101のEthernet通信部33に直接接続されている。また、HGW101の無線LAN通信部34が無線LANネットワーク901に直接接続されている。
映像配信サーバ603からSTB404に伝送される映像データフローと、映像配信サーバ604からSTB402に伝送される映像データフローを優先的に伝送する場合について述べる。
映像配信サーバ603からSTB404に伝送される映像データフローに属するパケットについて、HGW101のパケット優先度変更処理部14においてDSCPフィールドが高優先度を示す値に更新され、パケット転送処理部11にてHGW101のEthernet通信部33に送信されるが、このときEthernet通信部33でパケットを一旦バッファリング(パケット転送処理部でバッファリングしてもよい)し、未送信のパケットがある場合は、優先度が高い順に送信される。よって、HGW101のEthernet通信部33にSTB404とPC407が接続されている場合、STB404に送信されるパケットが優先的にEthernetに送信されるので、STB404とPC407の受信するフローの間でも優先度に応じたQoSが働き、本発明が有効に作用する。
また、同様に、HGW101の無線LAN通信部34においてもパケットがバッファリングされ、優先度が高い順に送信されるので、STB402とPC403が接続されている場合、STB402に送信されるパケットが優先的に無線LANネットワーク901に送信されるので、STB402とPC403の受信するフローの間でも優先度に応じたQoSが働き、本発明が有効に作用する。
(変形例3)
図4で示したシーケンス図では、ステップS204における優先度データ生成処理が完了した後、ステップS205にてSTB402から映像データの要求が行われるものとして説明したが、優先度データ生成処理が完了する前に、STB402から映像データの要求が行われる場合があり得る。その結果、優先度データ生成処理が完了する前に、HGW101は、映像配信サーバ603からの映像データフローを受信することがあり得る。この場合、優先度データ生成処理が完了する前に受信した映像データフローに属する映像パケットに対しては、パケット優先度変更処理を行なうことができず(つまり、映像パケットの優先度(DSCP)の値は更新されず)、結果として、当該映像パケットは優先的に伝送されることなくHGW101を通過することとなる。
図16を参照しながら、映像パケットが優先的に伝送されることなくHGW101を通過する場合について説明する。図16は、映像パケットが優先的に伝送されることなくHGW101を通過する場合の一例を模式的に示したシーケンス図である。
図示のとおり、HGW101は、STB402にDNS応答メッセージを返信した後、優先度データ生成処理を行なうが(ステップS204)、DNS応答メッセージを受信したSTB402は、優先度データ生成処理が完了する前に、映像配信サーバ603に向けて、映像データの要求を行なう場合がある(ステップS205)。その応答として映像配信サーバ603がSTB402に向けて映像データフローを送信し始めるが(ステップS206)、優先度データ生成処理が完了する前にHGW101に到着した映像パケットは、優先的に伝送されずにHGW101を通過する(通常伝送)。なお、優先度データ生成処理が完了した後にHGW101に到着した映像パケットは、優先的に伝送される。
上記問題を解決するために、HGW101は、優先度データ生成処理が完了した後に、問合せ元であるSTB402に、DNS応答メッセージを転送するようにすればよい。これにより、優先度データ生成処理が完了した後に、STB402から映像データの要求が行われることとなる。この結果、HGW101は、優先度データ生成処理が完了した後に、映像配信サーバ603からの映像データフローを受信することとなる。したがって、映像配信サーバ603からの映像データフローに属する映像パケットのすべてに対して、パケット優先度変更処理を行なうことができ、当該映像パケットはすべて優先的に伝送されることとなる。
図17を参照しながら、全ての映像パケットが優先的に伝送される様子について説明する。図17は、全ての映像パケットが優先的に伝送される様子の一例を模式的に示したシーケンス図である。
図示のとおり、HGW101は、DNS処理が完了した後には、STB402にDNS応答メッセージを送信せず(ステップS202’)、優先度データ生成処理が完了した後、STB402にDNS応答メッセージを送信する(ステップS204’)。そして、DNS応答メッセージを受信したSTB402は、映像配信サーバ603に向けて、映像データの要求を行なう(ステップS205)。その応答として映像配信サーバ603がSTB402に向けて映像データフローを送信し始めるので(ステップS206)、HGW101に到着した映像パケットは、全て、優先的に伝送されることとなる。
(補記)
パケット優先度記憶部23に記憶する優先度は、送信先のIPアドレスにのみ対応づけてもよい。つまり、表4に示したデータ構造から「サーバIPアドレス」カラムを除いてもよい。このようにした場合、パケット優先度変更処理では、パケットの送信先のIPアドレスのみに基づいて、パケットを優先度を変更するか否かを判断することとなる。したがって、映像配信サーバ603や映像配信サーバ604以外の装置からデータ送受信装置400へ送信されるパケットも優先的に伝送する対象となる。例えば、宅内に設置されたDLNA(Digital Living Network Alliance)サーバからHGW101を経由してテレビ405に送信される映像データフローについても、優先的に伝送する対象となる。
〔実施の形態2〕
上述した実施の形態1の通信制御装置100について、再び概略を説明する。図18は、実施の形態1の通信制御装置100を含む通信制御システムの基本構成例を模式的に示す図である。図示のように、通信制御装置100は、あるデータフローに属するパケットを優先的に伝送する優先伝送制御機能(破線で図示)を備えている。通信制御装置100は、優先伝送すべき映像配信サーバのドメイン名とその優先度があらかじめ設定されており、当該ドメイン名に一致するサーバ600からデータ送受信装置400へ向けて送信されるデータフローを優先的に伝送するものである。
実施の形態1では、上記の優先伝送制御機能を、通信制御装置100上にて実現している。しかしながら、実施の形態1に係る通信制御装置100に代えて、中継装置300が、上記の優先伝送制御機能を備えていてもよい。そこで、本実施の形態では、優先伝送制御機能を備えた通信中継装置が、あるデータフローを優先的に伝送する形態について説明する。なお、本実施形態に係る、優先伝送制御機能を備えた通信中継装置を、以降では、単に「中継装置」と称する。
本発明の一実施形態について図19〜図22に基づいて説明すると以下の通りである。図19に示すように、本実施の形態に係る中継装置310のそれぞれは、あるデータフローに属するパケットを優先的に伝送する優先伝送制御機能(破線で図示)を備えている。
本実施の形態では、説明の便宜上、実施の形態1にて説明した装置と同一の装置については、その説明を省略する。また、実施の形態1にて示した各部材と同一の機能を有する部材には、同一の符号を付記し、その説明を省略する。また、実施の形態1にて説明した処理と同一に処理については、その説明を省略する。
また、本実施の形態にて説明する「優先度データ生成処理」と、実施の形態1にて説明した「優先度データ生成処理」とは、異なる処理である。本実施の形態にて「優先度データ生成処理」と表記する場合は、本実施の形態の「優先度データ生成処理」を示すものとする。
また、本実施形態にて用いる「パケット」、「データフロー」、および「映像データフロー」のそれぞれは、実施の形態1で定義したものと同じである。また、本実施の形態におけるPLCネットワークは、実施の形態1と同様に、HomePlugAV仕様に準拠したPLCを用いたLANを想定している。また、伝送優先度を、単に「優先度」とも称する。
(通信制御システムの基本構成)
再び図19を参照しながら、本実施の形態に係る中継装置を含む通信制御システムの基本構成について説明する。図19は、本実施の形態に係る中継装置を含む通信制御システムの基本構成例を模式的に示すブロック図である。図示のように、上記通信制御システムは、本実施の形態に係る中継装置310(複数あり)、サーバ600、通信制御装置120、およびデータ送受信装置400(複数あり)を含んで構成される。
図示のとおり、本実施の形態に係る中継装置310は、通信制御装置120とデータ送受信装置400との間に設けられ、第1通信ネットワーク500を伝送媒体としてパケットを中継する装置であり、特に、あるデータフローに属するパケットを優先的に伝送する優先伝送制御機能を有する。
第1通信ネットワーク500には、複数の中継装置310が、相互に通信可能に接続されている。さらに、通信制御装置120に接続されている中継装置310以外の中継装置310は、それぞれデータ送受信装置400と通信可能に接続されている。
サーバ600およびデータ送受信装置400については、実施の形態1にて説明したものと同じであるので、その説明を省略する。
中継装置310は、概略的には、データ送受信装置400(データ受信装置)同士の通信、または、通信制御装置120とデータ送受信装置400との間の通信を中継する装置である。中継装置310としては、例えば、Ethernetのブリッジ装置であるPLCアダプタなどが挙げられる。PLCアダプタの場合、第1通信ネットワーク500はPLCである。中継装置310がPLCアダプタの場合、Ethernet側から自装置に到着したパケットを、第1通信ネットワーク500であるPLC側に送出する。また逆に、第1通信ネットワーク500であるPLC側から自装置に到着したパケットを、Ethernet側に送出する。自装置に到着したパケットが、自装置宛てである場合は当該パケットを中継しない。
通信制御装置120は、LAN側のデータ送受信装置400とWAN側のサーバ600との間でやりとりされるパケットの転送を制御する装置である。通信制御装置120は、具体的には、HGW(Home Gateway)などのルータ装置のことである。データ送受信装置400は、具体的には、STBやPCなどのネットワーク機器である。
上記構成において、データ送受信装置400は、サーバ600に対して映像データを要求する旨のパケットを送信する。サーバ600は、データ送受信装置400に対して映像データフローを送信する。また、データ送受信装置400は、サーバ600に対して制御パケットなどのパケットを送信する。このとき、通信制御装置120に接続されている中継装置310は、上記映像データフローに属するパケットを優先して伝送すること。また、データ送受信装置400に接続されている中継装置310は、上記要求パケットや上記制御パケットを優先して伝送することが、本実施の形態に係る中継装置の特徴である。
(通信制御システムの具体的構成例)
図20を参照しながら、図19で示した通信制御システムの具体的構成例について説明する。図20は、図19で示した通信制御システムの具体的構成の一例を模式的に示すブロック図である。図20では、図19で示した各装置および通信ネットワークのそれぞれに対して、具体例を当てはめている。
なお、図20において、STB402、PC403、STB404、テレビ405、テレビ406、PLCネットワーク501、DNSサーバ601、映像配信サーバ603、Webサーバ605、およびインターネット701のぞれぞれは、実施の形態1の図3を用いて説明したものと同じであるので、その説明を省略する。なお、各装置に付されているIPアドレスについても実施の形態1にて説明したものと同じである。
図20において、PLCネットワークで用いられるブリッジ装置であるPLCアダプタ311、PLCアダプタ312、およびPLCアダプタ313のそれぞれが、図19で示した3台の中継装置310に相当する。
なお、図20では、PLCアダプタ311、PLCアダプタ312およびPLCアダプタ313は、それぞれ独立した装置として図示しているが、その構成に限定されることはない。例えば、PLCアダプタ311はHGW121に内蔵される構成であってもよいし、PLCアダプタ312はSTB402およびPC403に内蔵される構成であってもよいし、PLCアダプタ313はSTB404に内蔵される構成であってもよい。
HGW121(通信制御装置)は、図19で示した通信制御装置120に相当するものであり、WAN側であるインターネット701とLAN側であるEthernetのネットワークと間に設置されるルータ装置である。
上記構成において、例えば、ユーザがテレビ405にて映像配信サーバ603から配信される映像コンテンツを視聴する場合を考える。STB402は、映像配信サーバ603に対して映像データを要求する旨のパケットを送信する。映像配信サーバ603は、STB402に対して映像データフローを送信する。また、STB402は、映像配信サーバ603に対して制御パケットなどのパケットを送信する。
このとき、HGW121に接続されているPLCアダプタ311は、映像配信サーバ603から送信される映像データフローに属するパケットを優先伝送制御すること。また、STB402に接続されているPLCアダプタ312は、上記要求パケットや上記制御パケットを優先伝送制御することが、本実施の形態に係る中継装置の特徴である。
なお、以下では、中継装置310と表現する場合は、特に指定している場合を除き、PLCアダプタ311、PLCアダプタ312、およびPLCアダプタ313のいずれかを指すものとする。また、データ送受信装置400と表現する場合は、特に指定している場合を除き、STB402、PC403、およびSTB404のいずれかを指すものとする。また、サーバ600と表現するときは、特に指定している場合を除き、DNSサーバ601、映像配信サーバ603、およびWebサーバ605のいずれかを指すものとする。
また、本実施の形態では、STB402は、映像配信サーバ603にアクセスするにあたり、HGW121に対して、映像配信サーバ603のIPアドレスの問合せを行なうものとする。HGW121は、STB402に対して直接その応答メッセージを返してもよいし、必要ならば、DNSサーバ601に問合せを行なってからその応答メッセージを返してもよい。
(データ送受信装置がデータを要求してから受信するまでの流れの概要)
図21を参照しながら、図20で示した通信制御システムにおいて、STB402が映像データを要求し、映像配信サーバ603から映像データを受信するまで流れの概略について説明する。図21は、図20で示した通信制御システムにおいて、STB402が、映像データを要求してから受信するまでの流れの一例を模式的に示したシーケンス図である。なお、ここでは、実施の形態1の図4に示したステップS201〜S208を適宜参照しながら説明を行なう。
まず、STB402は、映像コンテンツを視聴するユーザ操作を受け付けると、映像配信サーバ603への接続に先立ち、HGW121に対して、映像配信サーバ603のIPアドレスを問合せるDNS問合せメッセージを送信する(ステップS401)。具体的には、映像配信サーバ603のドメイン名である「sv1.vod.service-a.co.jp」に対応するIPアドレスを問合せする。
続いて、経路上のPLCアダプタ312は、上記DNS問合せメッセージを中継する。ここで、PLCアダプタ312は、自装置が中継するすべてのパケットを監視し、DNS応答メッセージを検出する処理(以下、DNS検出処理)を常時行なっている。しかしながら、上記のDNS問合せメッセージは、DNS検出処理の検出対象ではないため、上記検出を行なわない(ステップS402)。なお、DNS検出処理の詳細については後述する。
続いて、PLCアダプタ311においても、同様に、DNS検出処理を行なっているが、上記DNS問合せメッセージはDNS検出処理の検出対象ではないため、上記検出を行なわない。PLCアダプタ311は、HGW121に向けて上記DNS問合せメッセージを転送する(ステップS403)。
続いて、HGW121は、DNS問合せメッセージを受信すると、該受信したDNS問合せメッセージに対応してDNS処理を行なう。すなわち、HGW121は、問合せされたドメイン名に対応するIPアドレスをすでに管理していれば、適切なDNS応答メッセージをSTB402に向けて送信する。HGW121は、問合せされたドメイン名に対応するIPアドレスを管理していなければ、DNSサーバ601に対して、DNS問合せメッセージを送信する(ステップS404)。
続いて、DNSサーバ601は、DNS問合せメッセージを受信すると、適切なDNS応答メッセージを送信する。具体的には、DNSサーバ601は、問合せされたドメイン名「sv1.vod.service-a.co.jp」に対応するIPアドレス「101.101.101.1」を含めたDNS応答メッセージを返信する(ステップS405)。そして、HGW121は、上記DNS応答メッセージを受信すると、問合せ元であるSTB402に向けて、上記DNS応答メッセージを送信する(ステップS404)。
続いて、経路上のPLCアダプタ311は、HGW121から上記DNS応答メッセージを中継する。上述のとおり、PLCアダプタ311では、DNS検出処理を行なっている。したがって、この場合、PLCアダプタ311は、DNS応答メッセージであることを検出する。さらに、問合せ対象のドメイン名が事前に設定されているドメイン名に一致することを検出する(ステップS406)。
そして、上記検出が行われため、PLCアダプタ311は、続いて、パケットの優先度を示すデータを生成する処理(以下、優先度データ生成処理)を行なう(ステップS407)。PLCアダプタ311は、HGW121(Ethernet側)からDNS応答メッセージを受け取っていることがわかる。よって、優先度データ生成処理では、映像配信サーバ603からSTB402へ向かうパケットを優先的に伝送するための優先度データを生成する。優先度データは、送信元IPアドレス、送信先IPアドレス、優先度が含まれる。
映像配信サーバ603のIPアドレスは、DNS応答メッセージに含まれているIPアドレスから取得できる。また、STB402のIPアドレスは、DNS応答メッセージの送信先IPアドレスから取得できる。優先度については、事前に設定されている値を設定する。具体的には、ドメイン名「sv1.vod.service-a.co.jp」に対する優先度が「5」と設定されていれば、優先度を「5」と設定する。優先度データ生成処理の詳細については、後述する。
なお、後述するパケット優先伝送処理において、PLCアダプタ311は、上記生成された優先度データに従って、パケットを伝送する。具体的には、映像配信サーバ603からSTB402へ送信されるパケットを優先的に伝送する。パケット優先伝送処理の詳細については、後述する。
続いて、経路上のPLCアダプタ312は、上記DNS応答メッセージを中継する。このとき、PLCアダプタ312は、DNS応答メッセージであることを検出する。さらに、問合せ対象のドメイン名が事前に設定されているドメイン名の一つに一致することを検出する(ステップS408)。
そして、上記検出が行われため、PLCアダプタ312は、続いて、優先度データ生成処理を行なう(ステップS409)。PLCアダプタ312は、STB402(PLC側)からDNS応答メッセージを受け取っていることがわかる。よって、優先度データ生成処理では、STB402から映像配信サーバ603へ向かうパケットを優先的に伝送するための優先度データを生成する。
なお、後述するパケット優先伝送処理において、PLCアダプタ312は、上記生成された優先度データに従って、パケットを優先的に伝送する。具体的には、STB402から映像配信サーバ603へ送信されるパケットを優先的に伝送する。
そして、STB402は、DNS応答メッセージを受信した後、映像コンテンツの受信を開始するために、映像配信サーバ603に向けて、映像データの要求パケットを送信する(ステップS410)。そして、経路上のPLCアダプタ312は、当該要求パケットを中継する。
PLCアダプタ312は、パケットを中継するとき、当該パケットが上記生成された優先度データに合致しているかどうかを判断し、合致していれば当該パケットを優先的に伝送する(パケット優先伝送処理)。
当該要求パケットは、優先度データに合致している(すなわち、送信元IPアドレスがSTB402であって、かつ、送信先IPアドレスが映像配信サーバ603である)ので、PLCアダプタ312は、当該要求パケットを優先的に伝送する(ステップS411)。
上記転送において、上記生成された優先度データの「優先度」が用いられる。例えば、優先度データの「優先度」が「5」であれば、当該要求パケットを優先度「5」で転送する。
なお、パケット優先伝送処理では、実施の形態1とは異なり、パケットの優先度フィールド(DSCP)の値自体は更新しない。パケット優先伝送処理の詳細については、後述する。
そして、上記要求パケットを受信した映像配信サーバ603は、その応答として、STB402に向けて映像データフローを送信する(ステップS413)。そして、経路上のPLCアダプタ311はその映像データフローを中継する。PLCアダプタ311は、パケットを中継するとき、同様に、パケット優先伝送処理を行なう。
映像データフローに属する映像パケットは、優先度データに合致している(すなわち、送信元IPアドレスが映像配信サーバ603であって、かつ、送信先IPアドレスがSTB402である)ので、PLCアダプタ311は、当該映像パケットを優先的に伝送する(ステップS414)。
そして、PLCアダプタ312から送信された映像パケットをSTB402が受信し、映像信号に変換(デコード)してテレビ405に出力することによって、映像が再生される(ステップS416)。
さらに、ユーザが、映像の早送りや巻き戻しなどのリモコン操作を行なうと、STB402は、映像配信サーバ603に向けて、制御パケットを送信することがある。経路上のPLCアダプタ312は、ステップS411と同様に、当該制御パケットを優先的に転送する。
以上で説明した流れにより、要求パケット、映像パケット、および制御パケットといった、映像配信サーバ603とSTB402との間でやりとりされるパケットを、特にPLCネットワーク501上において、優先的に伝送することができる。これにより、例えば、映像配信サーバ603にて提供される映像コンテンツをテレビ405にて視聴するにあたり、映像の再生の乱れを抑制したり、リモコン操作に対するサーバからの応答の遅れを抑制することができるという効果を奏する。
なお、PLCアダプタ311、PLCアダプタ312、およびPLCアダプタ313は、転送するパケットをバッファリングするための、優先度別の複数の送信キューを備えているものとする。そして、転送すべきパケットを、当該パケットの優先度に応じた送信キューにバッファリングするとともに、優先度の高い送信キューにバッファリングされているパケットから順に転送処理を行なう。
(PLCアダプタの構成)
次に、図22を参照しながら、中継装置310としてのPLCアダプタ311(312、313)の概略構成について説明する。図22は、PLCアダプタ311(312、313)の概略構成を示すブロック図である。
図22に示すようにPLCアダプタ311(312、313)は、制御部210、記憶部220、Ethernet通信部231、およびPLC通信部232を含んで構成される。
制御部210は、記憶部220、Ethernet通信部231、およびPLC通信部232の制御を行なうとともに、所定の演算処理を行なうものである。所定の演算処理としては、例えば、DNS検出処理、優先度データ生成処理、パケット優先伝送処理などがある。制御部210の詳細な構成については後述する。
記憶部220は、制御部210で実施する処理のプログラムや、処理に必要なデータなどを記憶する。具体的には、RAMなどの揮発性メモリ、および、ROMやフラッシュメモリなどの不揮発性メモリで実現される。上記各種データは、記憶部220内部の各種記憶部に記憶される。記憶部220は、QoS対象記憶部222、およびパケット優先度記憶部223を含んでいる。
QoS対象記憶部222は、優先させたいサーバのドメイン名、およびそのサービスを享受する際の優先度が含まれる。QoS対象記憶部222は、例えば、表5に示したデータ構造とすることができる。すなわち、「ドメイン名」および「優先度」の組から成るエントリを記憶する。
なお、QoS対象記憶部222のエントリ情報は、例えば、PLCアダプタの工場出荷時などの時点で、ベンダーがあらかじめ設定しておけばよい。
また、ユーザがQoS対象記憶部222のエントリ情報を更新してもよいし、あるいは、ファームウェアのバージョンアップとともに、QoS対象記憶部222のエントリ情報を更新してもよい。これらの内容は、本発明の本質的な部分ではないので、詳しい説明は省略する。通常、QoS対象記憶部222は、不揮発性メモリに記憶される。
パケット優先度記憶部223は、PLCアダプタ311(312、313)がパケットを転送する際の優先度情報を記憶する。パケット優先度記憶部223は、例えば、表6に示したデータ構造とすることができる。すなわち、「送信元IPアドレス」、「送信先IPアドレス」、および「優先度」の組から成る優先度データを記憶する。
「送信元IPアドレス」は、優先すべきパケットの送信元IPアドレスである。「送信先IPアドレス」は、優先すべきパケットの送信先IPアドレスである。「優先度」は、転送するパケットの優先度を示す値である。数値が大きいほど優先度が高いことを示す。パケット優先度記憶部223の優先度データは、揮発性メモリまたは不揮発性メモリに記憶される。永続的な優先度データであれば、不揮発性メモリに記憶されるべきであるし、一時的な優先度データであれば、揮発性メモリに記憶されるべきである。揮発性メモリに記憶された優先度データは、PLCアダプタが電源オフになると消去される。
Ethernet通信部231は、Ethernetを介して自装置に接続される外部装置との通信を行なうものである。
PLC通信部232は、PLCネットワーク501上の自装置以外のPLCアダプタとの通信を行なうものである。
なお、PLC通信部232は、PLCネットワーク501へ送信するパケットをバッファリングするための、優先度別の複数の送信キューを備えている(図示しない)。そして、送信すべきパケットを、当該パケットの優先度に応じた送信キューにバッファリングするとともに、優先度の高い送信キューにバッファリングされているパケットから順に送信する。
次に、制御部210について詳細に説明する。制御部210は、パケット転送処理部211、DNS検出部212、優先度データ生成処理部213、パケット優先伝送処理部214、および優先度データ削除処理部215を含んでいる。
まず、パケット転送処理部211について説明する。パケット転送処理部211は、パケットの転送処理を行なう。パケットの転送処理では、Ethernet通信部231がEthernetを介して外部装置から受信したパケットを、PLCネットワーク501側へ送信し、PLC通信部232に転送する。また、逆に、PLC通信部232がPLCネットワーク501から受信したパケットを、Ethernet側へ送信し、Ethernet通信部231に転送する。
また、パケット転送処理部211は、パケットを転送する際、パケット優先伝送処理部214によって決定された優先度に応じて、当該パケットの伝送制御を行なう。具体的には、PLC通信部232がPLCネットワーク501から受信したパケットを、Ethernet側へ送信するEthernet通信部231に転送する際に、優先度別の複数の送信キューのうち、パケット優先伝送処理部214によって決定された優先度に応じた送信キューに入れる。なお、パケット優先伝送処理部214については後述する。
なお、パケット優先伝送処理部214が、転送するパケットの優先度を決定できなかった場合、デフォルトの優先度が使用される。デフォルトの優先度とは、通常ベスト・エフォートの意味である。
なお、DNS検出部212は、パケット転送処理部211が転送するパケットを監視している。DNS検出部212は、Ethernet側から受信するパケットと、PLCネットワーク501から受信するパケットの両方を監視している。DNS検出部212は、パケットがどちらのネットワークから(Ethernet側から受信したものであるか、PLCネットワーク501から受信したものであるか)受信したものであるかを示す情報を取得できるものとする。
次に、DNS検出部212について説明する。まず、DNS検出部212は、パケット転送処理部211が受信したパケットがUDP(User Datagram Protocol)パケットであるか否かを調べる。当該パケットがUDPパケットならば、その送信元ポート番号が、DNSのwell-knownポート番号(53)であるか否かを調べる。上記送信元ポート番号が、DNSのwell-knownポート番号(53)である場合、当該パケットは、DNSパケットである。
さらに、DNS検出部212は、DNSパケットの “Response” ビットの値が“1”(応答)であるか否かを調べる。“Response” ビットの値が“1”(応答)ならば当該パケットは、DNS応答パケットである。
そして、さらに、DNS検出部212は、DNS応答パケットに含まれる“Reply Code”の値が、“No error”(エラーなし)であるか否かを調べる。DNS検出部212は、“Reply Code”の値が“No error”(エラーなし)である場合、当該DNS応答パケットを検出処理対象とする。そうでない場合、検出処理対象から外す。
当該パケットがDNS応答メッセージのパケットならば、DNS検出部212は、さらに、当該パケットに含まれる問合せ対象のドメイン名が、QoS対象記憶部222で管理されているエントリ情報の「ドメイン名」に一致するかどうかを調べる。一致したエントリ情報が見つかれば、DNS検出部212は、当該DNS応答メッセージのパケットの内容と、一致したエントリ情報を、優先度データ生成処理部213に通知する。また、パケットがどちらのネットワークから受信したものであるかを示す情報を優先度データ生成処理部213に通知する。複数のエントリ情報の「ドメイン名」に一致する可能性もあるが、その場合、最初に一致したエントリ情報を用いることとする。一致したエントリ情報が見つからなければ、DNS検出部212は、その処理を終了する。
次に、優先度データ生成処理部213について説明する。優先度データ生成処理部213は、表7または表8で示される優先度データを生成して、パケット優先度記憶部223に記憶する。
DNS応答パケットがEthernet側から受信したものであれば、表7で示される優先度データを生成する(映像配信サーバ603からSTB402への方向)。
DNS応答パケットがPLCネットワーク501から受信したものであれば、表8で示される優先度データを生成する(STB402から映像配信サーバ603への方向)。
DNS応答メッセージに含まれる問合せ対象のドメイン名に対応したIPアドレスとは、例えば、映像配信サーバ603のIPアドレスである。DNS応答メッセージの送信先IPアドレスとは、例えば、データ送受信装置400のIPアドレスである。また、問合せされたドメイン名に対応するIPアドレスが複数ある場合は、それに応じて上記生成される優先度データの数も複数となる。
なお、優先度データ生成処理部213が生成する優先度データは、揮発性メモリまたは不揮発性メモリに記憶される。揮発性メモリに記憶された場合、PLCアダプタが電源オフになると消去される。
次に、パケット優先伝送処理部214について説明する。パケット優先伝送処理部214は、パケット転送処理部211が転送しようとしているパケットを解析し、該解析したパケットが優先伝送の対象である場合、パケット転送処理部211に、当該パケットの優先度を通知する。
具体的には、パケット優先伝送処理部214は、まず、パケット転送処理部211が転送しようとしているパケットから、送信元IPアドレス/送信先IPアドレスなどのヘッダ情報を抽出する。
そして、パケット優先度記憶部223のエントリから、「送信元IPアドレス」カラムの値が、上記抽出した送信元IPアドレスと一致し、かつ、「送信先IPアドレス」カラムの値が、上記抽出した送信先IPアドレスと一致するエントリを抽出する。
このとき、上記エントリが抽出されなかった場合は、パケット転送処理部211は、デフォルトの優先度に従って当該パケットを転送する。デフォルトの優先度とは、通常ベスト・エフォートのことである。
上記エントリが抽出された場合は、パケット優先伝送処理部214は、抽出されたエントリから「優先度」を取得し、その取得した「優先度」に従って当該パケットを転送する。
次に、優先度データ削除処理部215について説明する。優先度データ削除処理部215は、所定周期(例えば1秒)で、パケット優先度記憶部223を検索し、タイムアウトした優先度データを削除するものとする。
タイムアウトを判定するための具体的な方法として以下の3つの方法が考えられる。
1つ目は、ある優先度データに合致するパケットを最後に受信してから所定時間(例えば300秒)経過したときにタイムアウトと判定する方法がある。この方法においては、パケット優先伝送処理部214が、優先度データに合致するパケットを受信したときはいつでも、当該パケットを受信した時点のシステム時刻を、優先度データと関連付けて記憶しておく。優先度データ削除処理部215は、パケットを最後に受信してから所定時間経過したときに、当該優先度データを削除する。
2つ目は、優先度データが生成された時点から所定時間(例えば3600秒)経過したときにタイムアウトと判定する方法がある。この方法においては、優先度データ生成処理部213が、優先度データを生成するときに、生成した時点のシステム時刻を優先度データと関連付けて記憶しておく。優先度データ削除処理部215は、優先度データが生成された時点から所定時間経過したときに、当該優先度データを削除する。
このとき、タイムアウト時間は、固定値ではなく、DNS応答パケットに含まれるTTL(TimeToLive)と設定してもよい。一般論として、DNS応答によるIPアドレスが有効な時間はTTLまでとされるので、この時間を経過すると、再度DNS問合せパケットが送信される。
3つ目は、優先度データ生成処理部213が生成する優先度データの個数に制限を持たせる方法がある。例えば、優先度データの個数をN個に制限しておく。優先度データ生成処理部213は、優先度データを生成するときに、それが何番目に生成された優先度データであるかを調べる。N個目までの優先度データならばパケット優先度記憶部223に保持する。N+1個目の優先度データを生成しようとすると、最も古い優先度データを削除する。このようにして、最新のN個だけの優先度データを有効に維持してもよい。
あるいは、優先度データ削除処理部215がないという実装方法もありうる。この場合、優先度データを揮発性メモリに記憶しておき、PLCアダプタが電源オフになると優先度データは削除される。
(データ送受信装置からサーバへ送信するパケットを優先的に伝送する理由)
上述の説明では、データ送受信装置400からサーバ600に向けて送信されるパケットについても、PLCアダプタ311(312、313)にて優先的に伝送する対象にしているが、その理由についてさらに説明する。
例えば、STB402などのデータ送受信装置400が、映像配信サーバ603から映像パケットを受信しているとき、映像の早送りや巻き戻し等の操作をユーザが行なうと、その操作に対応する制御コマンドが、データ送受信装置400から映像配信サーバ603に送信される場合を考える。
この場合、仮に、上記制御コマンドのパケットが伝送途中で消失してしまうと、ユーザにとっては、操作を行なったにもかかわらず、操作に対する応答が無いことになる。また、仮に、上記制御コマンドのパケットの伝送が遅延すると、ユーザが操作してから実際に早送りや巻き戻し等が行われるまでに遅延が生じることとなる。いずれの場合においても、ユーザの操作性が損なわれる。
したがって、上記制御コマンドなどのように、データ送受信装置400からサーバ600に向けて送信されるパケットについても優先的に伝送することにより、ユーザの操作性が向上する。
(効果)
以上で述べたように、本実施の形態によれば、PLCアダプタ311(312、313)は、DNS応答メッセージに含まれる問合せ対象のドメイン名に対応付けられる優先度を、QoS対象記憶部222から取得する。そして、上記DNS応答メッセージに含まれる問合せ対象のIPアドレスと、上記DNS応答メッセージの送信先のIPアドレスとの組に、上記取得した優先度を対応付けて、パケット優先度記憶部223に格納することができる。
そして、PLCアダプタ311(312、313)が中継するパケットから、該パケットの送信元IPアドレスと、該パケットの送信先IPアドレスとの組に対応付けられた上記優先度を、パケット優先度記憶部223から取得する。そして、パケット優先度記憶部223から取得した上記優先度に応じた送信キューに上記パケットを入れるとともに、優先度の高い送信キューにバッファリングされているパケットから順に転送処理を行なう。
よって、本実施の形態に係るPLCアダプタ311(312、313)によれば、ドメイン名に対応付けられた優先度に従って、データフローを伝送することができるという効果を奏する。
〔実施の形態3〕
テレビやSTB向けに提供されている映像配信サービスには、PC向けには提供されないような映像配信サービスが存在する。そのような場合、テレビやSTBは、まずポータルサーバ(PCからもアクセス可能)にアクセスし、その後、テレビ向けのポータルサーバ(図示しない)にアクセスするものとする。
テレビ向けのポータルサーバとは、テレビ(STB)専用に提供されるポータルサーバのことである。テレビ(STB)からポータルサーバに接続すると、ポータルサーバはテレビ(STB)からのアクセスであることを認識し、テレビ向けのポータルサーバへ接続するように指示する。従って、テレビ(STB)はポータルサーバへ接続するとき、ポータルサーバへのDNS問合せメッセージと、テレビ向けのポータルサーバのDNS問合せメッセージとを送信する。
PCからポータルサーバに接続すると、ポータルサーバはPCからのアクセスであることを認識し、テレビ向けのポータルサーバへ接続するように指示しない。従って、PCはポータルサーバへ接続するとき、ポータルサーバへのDNS問合せメッセージだけを送信する。
本実施の形態では、テレビやSTBに対して送受信されるパケットを優先的に伝送することができる形態について説明する。より正確には、DNS問合せメッセージを所定時間内に複数回送信するデータ送受信装置400に対して送受信されるパケットを優先的に伝送することができる形態について説明する。
以下では、ある映像配信サービスにおいて、テレビ405(STB402)がサーバ600からデータフローを受信するまでに複数のDNS問合せメッセージを送信するものと想定する。例えば、テレビ405(STB402)にて映像配信サービスを享受する場合、最初に、ポータルサーバ(第1外部装置)にアクセスし、続いて、テレビ向けのポータルサーバ(第2外部装置)にアクセスする仕組みになっていることを想定する。
なお、上記ポータルサーバとは、例えば、STB402やテレビ406が起動して最初にアクセスするポータルWebサイトを提供するサーバを想定している。あるいは、上記ポータルサーバとは、例えば、ユーザが映像配信サービスを享受するために最初にアクセスするポータルWebサイトを提供するサーバを想定している。そして、該ポータルWebサイトでは、映像配信サービスのサービス名などを表示し、ユーザに映像配信サービスを選択できることを想定する。あるいは、該ポータルWebサイトでは、映像配信サービスで提供される映像コンテンツのサムネイルなどを表示し、ユーザが映像コンテンツを選択できることを想定している。
このような状況下において、本実施の形態では、映像配信サーバ603からテレビ405(STB402)へ送信されるパケットは優先的に伝送し、一方、映像配信サーバ603からPC403へ送信されるパケットは優先的に伝送しないようにすることができる優先伝送制御機能を備えた通信中継装置について説明する。本実施形態に係る、優先伝送制御機能を備えた通信中継装置を、以降では、単に「中継装置」と称する。
本発明の一実施形態について図23に基づいて説明すると以下の通りである。なお、説明の便宜上、実施の形態1または2にて説明した装置と同一の装置については、その説明を省略する。また、実施の形態1または2にて示した各部材と同一の機能を有する部材には、同一の符号を付記し、その説明を省略する。また、実施の形態1または2にて説明した処理と同一の処理については、その説明を省略する。
また、本実施の形態にて説明する「DNS検出処理」と、実施の形態2にて説明した「DNS検出処理」とは、異なる処理である。本実施の形態にて「DNS検出処理」と表記する場合は、本実施の形態の「DNS検出処理」を示すものとする。
また、本実施形態にて用いる「パケット」、「データフロー」、および「映像データフロー」のそれぞれは、実施の形態1で定義したものと同じである。また、本実施の形態におけるPLCネットワークは、実施の形態1と同様に、HomePlugAV仕様に準拠したPLCを用いたLANを想定している。
(データ送受信装置がデータを要求してから受信するまでの流れの概要)
図23を参照しながら、図20で示した通信制御システムにおいて、STB402が映像データを要求し、映像配信サーバ603から映像データを受信するまでの流れの概略について説明する。図23は、図20で示した通信制御システムにおいて、STB402が、映像データを要求してから受信するまでの流れの一例を模式的に示したシーケンス図である。
実施の形態2との違いは、PLCアダプタ311およびPLCアダプタ312が、DNS応答メッセージを所定時間(twミリ秒)以内に2つ検出した場合のみ、優先度データ生成処理を行なう点である。
まず、STB402は、映像コンテンツを視聴するユーザ操作を受け付けると、ポータルサーバへの接続に先立ち、HGW121に対して、ポータルサーバのIPアドレスを問合せる1つ目のDNS問合せメッセージ(以下、第1DNS問合せメッセージ)を送信する(ステップS421)。
続いて、経路上のPLCアダプタ312は、上記の第1DNS問合せメッセージを中継する。ここで、PLCアダプタ312では、自装置が中継するすべてのパケットを監視し、DNS検出処理を常時行なっている。しかしながら、上記の第1DNS問合せメッセージは、DNS検出処理の検出対象ではないため、上記検出を行なわない(ステップS422)。なお、本実施形態におけるDNS検出処理の詳細については後述する。
続いて、PLCアダプタ311においても、同様に、DNS検出処理を行なっているが、上記第1DNS問合せメッセージは検出対象ではないため、上記検出を行なわない。PLCアダプタ311は、HGW121に向けて上記第1DNS問合せメッセージを転送する(ステップS423)。
続いて、HGW121は、DNS問合せメッセージを受信すると、該受信したDNS問合せメッセージに対応してDNS処理を行なう。すなわち、HGW121は、問合せされたドメイン名に対応するIPアドレスをすでに管理していれば、適切なDNS応答メッセージをSTB402に向けて送信する。HGW121は、問合せされたドメイン名に対応するIPアドレスを管理していなければ、DNSサーバ601に対して、DNS問合せメッセージを送信する(ステップS424)。
DNSサーバ601は、第1DNS問合せメッセージに対応して、1つ目の適切なDNS応答メッセージ(以下、第1DNS応答メッセージ)を返信する(ステップS425)。そして、HGW121は、上記DNS応答メッセージを受信すると、問合せ元であるSTB402に向けて、上記DNS応答メッセージを送信する(ステップS424)。
続いて、経路上のPLCアダプタ311は、HGW121から上記第1DNS応答メッセージを中継する。上述のとおり、PLCアダプタ311では、DNS検出処理を行なっている。この場合、PLCアダプタ311は、DNS応答メッセージであることを検出する。さらに、問合せ対象のドメイン名が事前に設定されているドメイン名1に一致することを検出する(ステップS426)。
続いて、PLCアダプタ312についても、同様に、DNS検出処理が行われる(ステップS427)。
その後、上記第1DNS応答メッセージを受信したSTB402は、所定処理を行なった後、テレビ向けのポータルサーバのIPアドレスを問合せるために、HGW121に対して、2つ目のDNS問合せメッセージ(以下、第2DNS問合せメッセージ)を送信する。
続いて、第2DNS問合せメッセージを受信するPLCアダプタ322、PLCアダプタ、およびHGW121が行なう処理(ステップS428〜S430)は、ステップS422〜S424にて説明した処理と同様であるので、説明を省略する。
続いて、DNSサーバ601は、第2DNS問合せメッセージに対応して、2つ目の適切なDNS応答メッセージ(以下、第2DNS応答メッセージ)を返信する(ステップS431)。
続いて、経路上のPLCアダプタ311およびPLCアダプタ312は、HGW121から上記第2DNS応答メッセージを受信する。PLCアダプタ311およびPLCアダプタ312は、それぞれ、DNS検出処理にて、DNS応答メッセージであることを検出する。さらに、問合せ対象のドメイン名が事前に設定されているドメイン名2に一致することを検出する(ステップS432、S434)。
このとき、PLCアダプタ311およびPLCアダプタ312は、それぞれ、上記第1DNS応答メッセージを検出してから、所定時間(twミリ秒)以内に、上記第2DNS応答メッセージを検出した場合、優先度データ生成処理を行なう(ステップS433、S435)。
ここで、上記所定時間(twミリ秒)は、QoS対象記憶部222に予め設定しておくエントリに含めて記憶されるものとする。あるいは、単に、固定時間であってもよい。
優先度データ生成処理では、実施の形態2で説明したように、映像配信サーバ603からSTB402へ向かうパケット、また、その逆方向のSTB402から映像配信サーバ603へ向かうパケットを優先的に伝送するための優先度データを生成する。パケットの優先度についても、事前に設定されている値を用いる。
そして、第2DNS応答メッセージを受信したSTB402が、映像データの要求パケットを送信してから、映像パケットを受信するまでの処理(ステップS436〜S442)については、実施の形態2で説明した処理と同様である。PLCアダプタ311およびPLCアダプタ312は、それぞれ、ステップS433およびS435にて生成された優先度データに従って、パケット優先伝送処理を行なう。
以上で説明した流れにより、ユーザがテレビやSTB向けに提供されている映像配信サービスを享受するよう場合、要求パケットおよび映像パケット、制御パケットといった、映像配信サーバ603とSTB402との間でやりとりされるパケットを、特にPLCネットワーク501上において、優先的に伝送することができる。これにより、例えば、テレビやSTB向けに提供されている映像配信サービスの映像データフローを優先的に伝送することができるという効果を奏する。
(PLCアダプタの構成)
本実施の形態におけるPLCアダプタは、DNS応答メッセージを所定時間内に2回検出したときに、優先度データを生成する点が、実施の形態2のPLCアダプタと異なる。そこで、以下では、本実施の形態におけるPLCアダプタの構成のうち、実施の形態2のPLCアダプタの構成と異なる点について説明する。
本実施の形態におけるQoS対象記憶部222は、実施の形態2のQoS対象記憶部222と異なり、優先させたいサーバのドメイン名を2つ含んでいる。さらに、第1DNS応答メッセージを検出してから、第2DNS応答メッセージを検出するまでの時間の上限値を含んでいる。本実施の形態におけるQoS対象記憶部222は、例えば、表9に示すデータ構造とすることができる。すなわち、「ドメイン名1」、「ドメイン名2」、「遅延時間」、および「優先度」の組から成るエントリを記憶する。「ドメイン名1」はポータルサーバのドメイン名であり、「ドメイン名2」はテレビ向けのポータルサーバのドメイン名である。また、「遅延時間」は、第1DNS応答メッセージを検出してから、第2DNS応答メッセージを検出するまでの時間(ミリ秒)の上限値である。
次に、本実施の形態のDNS検出部212は、実施の形態2のDNS検出部212と同様に、パケット転送処理部211が転送するパケットを監視する。そして、当該パケットがDNS応答メッセージ(第1DNS応答メッセージ)のパケットであることがわかれば、当該パケットに含まれる問合せ対象のドメイン名が、QoS対象記憶部222で管理されているエントリ情報の「ドメイン名1」に一致するかどうかを調べる。そして、一致したエントリ情報(以下、エントリEN1と称する)が見つかれば、引き続き、本実施の形態のDNS検出部212は、パケット転送処理部211が転送するパケットを監視する。
その後、パケット転送処理部211が転送するパケットが、再び、DNS応答メッセージ(第2DNS応答メッセージ)のパケットであることがわかれば、本実施の形態のDNS検出部212は、当該パケットに含まれる問合せ対象のドメイン名が、エントリEN1の「ドメイン名2」に一致するかどうかを調べる。
そして、一致する場合、第1DNS応答メッセージを検出してから、第2DNS応答メッセージを検出するまでの時間を調べる。第2DNS応答メッセージを検出した時刻から、第1DNS応答メッセージを検出した時刻を減算し、その値がエントリEN1の「遅延時間」カラムの値に示す時間よりも短い値であった場合、その旨を、優先度データ生成処理部213に通知する。そして、優先度データ生成処理部213は、エントリEN1の「優先度」カラムの値を用いて、優先度データを生成する。
表9の1番目のエントリを例に挙げて説明すると、DNS検出部212が、「portal-x.jp」というドメイン名を含む、第1DNS問合せメッセージに対応する第1DNS応答メッセージを受信してから、「500」ミリ秒以内に、「tv.portal-x.jp」というドメイン名を含む、第2DNS問合せメッセージに対応する第2DNS応答メッセージを受信したことを検出すると、その旨を優先度データ生成処理部243に通知する。そして、優先度データ生成処理部243が、ドメイン名「tv.portal-x.jp」に対する優先度が「4」であることを示す優先度データを生成する。
なお、第2DNS応答メッセージを検出した時刻から、第1DNS応答メッセージを検出した時刻を減算した値が「遅延時間」カラムの値に示す時間よりも長い値であった場合、第1DNS応答メッセージの検出から第2DNS応答メッセージの検出までに時間がかかり過ぎているため、優先度データ生成処理部243に通知を行わない。また、第1DNS応答メッセージが検出されることなく第2DNS応答メッセージが検出された場合も、優先度データ生成処理部243に通知を行わない。
また、本実施の形態におけるQoS対象記憶部222は、さらに、「DNS問合せ種別」を含めるようにしてもよい。例えば、QoS対象記憶部222は、表10に示すデータ構造としてもよい。表10に示すデータ構造では、DNS問合せ種別として、「タイプ1」(第1リクエスト種別)および「タイプ2」(第2リクエスト種別)を含んでいる。
「タイプ1」は、第1DNS問合せメッセージに含まれる、DNS問合せの種別である。また、「タイプ2」は、第2DNS問合せメッセージに含まれる、DNS問合せの種別である。表10において、「A」は、IPv4アドレスの返送を要求する場合に付与される値である(DNS問合せメッセージのパケット内での値は‘1’である)。また、「AAAA」は、IPv6アドレスの返送を要求する場合に付与される値である(DNS問合せメッセージのパケット内での値は‘28’である)。
この場合、DNS検出部212は、DNS検出処理にてDNS応答メッセージを検出するにあたり、問合せ対象のドメイン名が事前に設定されているドメイン名に一致することに加えて、DNS問合せ種別が、事前に設定されているタイプに一致することを検出する(ドメイン名/リクエスト種別抽出手段)。そして、所定時間(ミリ秒)以内にDNS応答メッセージを2つ検出すれば、その旨を、優先度データ生成処理部243に通知する。
表10の1番目のエントリを例に挙げて説明すると、DNS検出部212が、「portal-x.jp」というドメイン名、および、「A」というDNS問合せ種別を含む、第1DNS問合せメッセージに対応する第1DNS応答メッセージを受信してから、「500」ミリ秒以内に、「tv.portal-x.jp」というドメイン名、および、「A」というDNS問合せ種別を含む、第2DNS問合せメッセージに対応する第2DNS応答メッセージを受信したことを検出すると、優先度データ生成処理部243に通知する。そして、優先度データ生成処理部243が、ドメイン名「tv.portal-x.jp」に対する優先度が「4」であることを示す優先度データを生成する。
なお、表10において、「portal-y.tv」というドメイン名は、ポータルサーバのドメイン名を想定しており、「auth.portal-y.tv」というドメイン名は、アクセス認証を行なう認証サーバのドメイン名を想定している。また、1番目の「www.portal-z.co.jp」というドメイン名(タイプA)は、IPv4用のポータルサーバのドメイン名を想定しており、2番目の「www.portal-z.co.jp」というドメイン名(タイプAAAA)は、IPv6用のポータルサーバのドメイン名を想定している。
上記の実施形態においては、第1のDNS応答メッセージを検出してから第2のDNS応答メッセージを検出した場合に、優先度データ生成処理を行なう形態について説明したが、検出するDNS応答メッセージの順序に関係なく、一定の間隔内に2つのDNS応答メッセージを検出した場合、優先度データ生成処理を行なうようにしてもよい。さらに、2つのDNS応答メッセージを検出した場合ではなく、3つ以上のDNS応答メッセージを検出した場合に、優先度データ生成処理を行なうようにしてもよい。
なお、本実施の形態では、中継装置であるPLCアダプタにおいて、上述したDNS検出処理、および、優先度データ生成処理を行なう形態について説明したが、通信制御装置であるHGW121において実施してもよい。
〔実施の形態4〕
上述の実施の形態では、優先度データ生成処理部213が優先度データを生成するとき、送信元IPアドレスおよび送信先IPアドレスを、優先度に対応付けて指定するように説明したが、この構成例に限定されるものではない。
優先度データ生成処理部213が優先度データを生成するときに、送信元MACアドレスおよび送信先MACアドレスを、優先度に対応付けて指定してもよい。例えば、表6に代わって表11または表12に示すような優先度データとしてもよい。
DNS応答パケットがEthernet側から受信したものであれば、表11で示される優先度データを生成する(映像配信サーバ603からSTB402への方向)。
DNS応答パケットがPLCネットワーク501から受信したものであれば、表12で示される優先度データを生成する(STB402から映像配信サーバ603への方向)。
例えば、図21に基づき説明すると、ステップS406およびステップS408において検出されたDNS応答メッセージは、その送信元MACアドレスはHGW121のMACアドレスであり、その送信先MACアドレスはSTB402のMACアドレスである。よって、ステップ407では、優先度データ生成処理部213は、送信元MACアドレスがHGW121のMACアドレスで、かつ、送信先MACアドレスがSTB402のMACアドレスとなるような優先度データを生成する。また、ステップ408では、優先度データ生成処理部213は、送信元MACアドレスがSTB402のMACアドレスで、かつ、送信先MACアドレスがHGW121のMACアドレスとなるような優先度データを生成する。
従って、PLCアダプタ311のパケット優先度記憶部223は、表13に示すような優先度データを記憶する。また、PLCアダプタ312のパケット優先度記憶部223は、表14に示すような優先度データを記憶する。ただし、本実施の形態では、STB402のMACアドレスが「00-11-11-11-11-11」であり、HGW121のMACアドレスが「00-22-22-22-22-22」であるものとする。
本実施の形態のパケット優先伝送処理部214について説明する。パケット優先伝送処理部214は、まず、パケット転送処理部211が転送しようとしているパケットから、送信元MACアドレスおよび送信先MACアドレスなどのヘッダ情報を抽出する。
そして、パケット優先度記憶部223のエントリから、「送信元MACアドレス」カラムの値が、上記抽出した送信元MACアドレスと一致し、かつ、「送信先MACアドレス」カラムの値が、上記抽出した送信先MACアドレスと一致するエントリを抽出する。上記エントリが抽出されなかった場合は、パケット転送処理部211は、デフォルトの優先度に従って当該パケットを転送する。上記エントリが抽出された場合は、パケット転送処理部211は、抽出されたエントリから「優先度」を取得し、その取得した「優先度」に従って当該パケットを転送する。
表13に示すような優先度データがある場合、PLCアダプタ311のパケット転送処理部211は、HGW121からSTB402に向かうパケットを優先度「5」で伝送する。表14に示すような優先度データがある場合、PLCアダプタ312のパケット転送処理部211は、STB402からHGW121に向かうパケットを優先度「5」で伝送する。
(MACアドレスを指定して優先度データを生成する理由)
MACアドレスを指定して「優先度データ」を設定する方法は、IPアドレスを指定して設定する方法と比べて、映像配信サーバ毎に優先度を設定することはできなくなるが、以下の点で有利である。
すなわち、映像配信サーバのドメイン名は将来変更になったり、追加されたりする可能性が大いにある。将来の映像配信サービスの動向に合わせて、QoS対象記憶部222のエントリ情報を更新する必要がある。ユーザがエントリ情報を更新してもよいし、ファームウェアのバージョンアップによってエントリ情報を更新してもよいが、いずれの場合でも、エントリ情報の更新が必要になる。
そこで、QoS対象記憶部222のエントリ情報を、映像配信サーバのドメイン名ではなく、ポータルサーバのドメイン名に設定しておけば、エントリ情報の更新が必要でなくなる可能性がある。なぜなら、ポータルサーバは、STBやテレビが最初に接続しにいくサーバであり、ポータルサーバのドメイン名は将来にわたって変更される可能性が低いからである。
STBやテレビは、まずポータルサーバに接続し、その後、ポータルサーバからリンクをたどって、映像配信サーバに対して映像データを要求する。PLCアダプタは、映像配信サーバのドメイン名を事前に知っておく必要はない。よって、ポータルサーバのドメイン名さえ知っておけばよく、将来、映像配信サーバのドメイン名が変更になった場合でも、対応可能である。
映像配信サーバは、いずれのサーバであっても、映像配信サーバからSTB402に映像データが送られるとき、映像データはHGW121を経由することになる。
HGW121からSTB402に映像パケットを転送するとき、当該映像パケットの送信元MACアドレスはHGW121のMACアドレスに、送信先MACアドレスはSTB402に設定される。よって、MACアドレスを指定して「優先度データ」を設定しておくことにより、HGW121とSTB402との間を流れる映像データは優先されて伝送される。
なお、HGW121のMACアドレスは、HGW121の装置自体を変更しない限り常に同じである。そのため、HGW121のMACアドレスに基づいたパケット優先伝送処理は、バージョンアップ等を行なう必要がないという点で有利である。
また、パケット優先度記憶部223に記憶する優先度は、送信先の装置のMACアドレスにのみ対応づけてもよい。つまり、表13および表14に示したデータ構造から「送信元の装置のMACアドレス」カラムを除いてもよい。このようにした場合、パケット優先伝送処理では、パケットの送信先の装置のMACアドレスのみに基づいて、パケットを優先的に伝送するか否かを判断することとなる。したがって、HGW121以外の装置からデータ送受信装置400へ送信されるパケットも優先的に伝送する対象となる。例えば、宅内に設置されたDLNAサーバから、PLCアダプタ311,312および313を経て、テレビ405に向けて送信される映像データフローについても、優先的に伝送する対象となる。
(付記事項)
上述の実施の形態では、HGW101がDNS処理部12を備える形態について述べたが、これに限定されるものではない。DNS処理部12は必ずしもHGW101に備えられる必要はなく、外部装置としてHGW101と通信可能に(例えばEthernetを介して)接続される構成でもよい。
また、上述の実施の形態1および実施の形態2では、STB402などのデータ送受信装置400は、映像コンテンツの受信を開始する処理(受信開始処理)として、デフォルトのDNSサーバとしてのHGW101に対して、映像配信サーバ603のIPアドレスを問合せるDNS問合せメッセージを送信し、HGW101は、上記DNS問合せメッセージに含まれるドメイン名に基づいて優先度データ生成処理を行なう形態について述べたが、必ずしもこれに限定されず、映像コンテンツの受信を開始する前にアクセスする別のサーバに対するDNS問合せメッセージを元に優先度データ生成処理を行なっても良い。例えば、データ送受信装置400が、ポータルサーバのIPアドレスを問合せるDNS問合せメッセージを送信し、HGW101が、上記DNS問合せメッセージに含まれるドメイン名に基づいて優先度データ生成処理を行なってもよい。ここで、上記ポータルサーバとは、例えば、ユーザが映像配信サービスを享受するために最初にアクセスするポータルWebサイトを提供するサーバを想定している。そして、該ポータルWebサイトでは、映像配信サービスで提供される映像コンテンツのサムネイルなどを表示し、ユーザに映像コンテンツを選択させることができるものを想定している。
映像配信サーバのドメイン名は、サービス提供側の都合により、追加、削除、変更などの修正が施される場合があり得るが、ポータルサーバのドメイン名については修正されることはほとんど無い。データ送受信装置400においては、工場出荷時にポータルサーバのドメイン名が記憶されており、電源が投入されたときにはこのドメイン名にアクセスしてポータルWebサイトを最初にユーザに提示し、そこからコンテンツを選択させるように構成されるのが一般的である。ポータルサーバのドメイン名が変更された場合、データ送受信装置400の電源投入時には、ポータルWebサイトが表示されずエラーが表示されることになり、ユーザの利便性が著しく低下する。データ送受信装置400のアップデートなどによりデータ送受信装置400に登録されているポータルサーバのドメイン名を変更すれば対応は可能であるが、アップデート作業を全ユーザが行なうとは限らないので、サービス提供側としてもポータルサーバのドメイン名は変更しにくい。これに対して、映像配信サーバのドメイン名は、ポータルWebサイトでユーザがコンテンツを選択した時点で決定されるので、変更しても大きな問題にはならない。
映像配信サーバのドメイン名が変更された場合において、該変更後のドメイン名がQoS対象記憶部22に記憶されていないものとなった場合は、上記変更されたドメイン名を有する映像配信サーバから送信されるパケットに対して、パケット優先度変更処理が実行されないこととなる。従って、修正されることの少ないポータルサーバのドメイン名をQoS対象記憶部22、パケット優先度記憶部23、サーバアドレス記憶部21のそれぞれの「ドメイン名」カラムの値とし、優先度データ生成処理およびパケット優先度変更処理を行なうようにしてもよい。
なお、ポータルサーバのIPアドレスと実際に映像パケットを送信する映像配信サーバのIPアドレスとは異なるため、ポータルサーバのIPアドレスとデータ送受信装置400のIPアドレスとに合致したパケットを優先的に伝送するように設定されていると、映像配信サーバからデータ送受信装置400に送信される映像パケットが優先伝送されないことになる。この場合は、データ送受信装置400のIPアドレスだけで優先的に伝送するかどうかの判定を行なうことが考えられる。ただし、この場合、データ送受信装置400が受信(または送信)するパケットは全て優先的に伝送されることになるので、本来、優先的に伝送する必要のないパケット(例えばデータ送受信装置400が受信するWebデータ等)まで優先的に伝送されることとなり、全体としてのQoS制御の効率は低下する。
また、データ送受信装置400は基本的には、映像の視聴が中断されたり、終了した場合には、ポータルサーバにアクセスして、コンテンツ選択画面に戻ることになる。このような場合に、データ送受信装置400がサーバにアクセスする前に、毎回そのサーバに対するDNS問合せメッセージを送信する実装となっていた場合、ポータルサーバのIPアドレスを問合せるDNS問合せメッセージは複数回送信されることになる。よって、HGWにおいて、ポータルサーバへのDNS問合せを一定時間以上行なっていないデータ送受信装置400については、QoS対象から除外する(つまり、表4や表6のエントリを削除する)ことも考えられる。これにより、映像を受信しなくなったデータ送受信装置400だけをQoS対象から除外することが可能となり、他のデータ送受信装置400が使用可能な帯域が増えるので、ネットワーク全体としてのQoSの効率が向上する。
また、上述の実施の形態では、HGW101は、転送するパケットの優先度がすでに設定されているか否かに関わらず、パケット優先度変更処理にて、該転送するパケットの優先度を更新する形態について述べたが、これに限定されるものではない。つまり、例えばサーバ600などで既にパケットの優先度が付与されている場合には、パケット優先度変更処理を実施しないものとしてもよい。
また、パケット優先度変更処理にてパケットの優先度を上書きするか否かについて、所定のインタフェースを用いてユーザが設定できるようにしてもよい。例えば、QoS対象設定画面161やQoS対象設定画面162でこの設定を変更できるようにすることが考えられる。
また、QoSのポリシーを管理するポリシー管理機能を新たに追加し(例えば、HGW101に含める構成としてもよいし、外部装置としてHGW101に通信可能に接続する構成としてもよい)、上記ポリシー管理機能がパケットの優先度を上書きするか否かを判定してもよい。上記ポリシー管理機能は、例えば、パケットの優先度を上書きするか否かをサービス毎に設定した情報に基づいて、上記判定を行なえばよい。
サービスによっては、第2通信ネットワーク700において、DSCPによるQoS制御を行なうために、サーバ600において、データパケットのDSCPフィールドに所定の値を設定して送信する場合もある。このような場合、サービス提供側で設定しているDSCP値と、本発明によってHGW101で更新されたDSCP値に差異がある場合に、不具合が生じる可能性がある。例えば、サービス提供側が想定したよりも低い優先度に更新してしまうと、データ送受信装置400にて映像や音声の乱れが生じる事が考えられる。HGW101が転送しようとする時点でDSCP値に何らかの値が設定されている場合には、DSCP値を更新しないようにすればこのような問題を回避できる。
また、上述の実施の形態では、映像データフローに属する映像パケットの優先度を変更する形態について述べたが、どのようなデータフローに属するパケットの優先度を変更してもよい。例えば、音声通信サービスにおいて、VoIPで送信される音声のデータフローに属するパケットの優先度を変更するものであってもよい。音声のデータフローに属するパケットは、一般的に映像パケットよりも高い優先度で伝送される。なお、音声のデータフローに属するパケットのDSCPの値には6(つまり、PLCネットワークにて伝送されるパケットではCAPの値が3)を使用することがHomePlugAV規格では推奨されている。
また、上述の実施の形態1では、HGW101において、パケットのDSCPフィールドを書き換えることにより、優先制御QoSを実施しているが、他のフィールドによりパケットの優先度を示すものとしてもよい。例えば、VLAN priority tagを使用してもよい。
また、上述の実施の形態1では、HGW101において、パケットのDSCPフィールドを書き換えることにより、優先制御QoSを実施しているが、パケットのDSCPフィールドの書き換えは別の装置で行なっても良い。例えば、PLCアダプタや無線LANアダプタ等の中継装置300において書き換えることが考えられる。この場合、HGW101は、上述の実施例同様の方法により、QoS設定対象のフローを発見し、パケット優先度記憶部にその情報を保存する代わりに、PLCアダプタや無線LANアダプタにその情報を通知する。PLCアダプタや無線LANアダプタでは、その情報を保存しておき、後ほどパケットを転送する際に、上述の実施の形態におけるパケット優先度変更処理部と同様の処理により、DSCPフィールドを更新した上でPLCネットワークや無線LANネットワークに送信する。
また、上述の実施の形態1では、HGW101において、パケットのDSCPフィールドを書き換えることにより、優先制御QoSを実施しているが、PLCアダプタや無線LANアダプタ等の中継装置300に対して事前に情報を送ってQoS対象を指示するようにしても良い。例えば、HGW101は、上述の実施例と同様の方法により、QoS設定対象のフローを発見し、パケット優先度記憶部にその情報を保存する代わりに、そのフローを識別するための送信元のIPアドレスと送信先のIPアドレスをPLCアダプタや無線LANアダプタ等に対して送信する。このときに、そのフローの優先度の情報を同時に通知しても良い。PLCアダプタや無線LANアダプタでは、その情報を保存しておき、後ほどパケットを転送する際にパケットのIPアドレスを解析して、予めHGW101より通知されたIPアドレスに合致する場合に、QoS対象として優先的にPLCネットワークや無線LANネットワークに送信する。このときに予め優先度が通知されている場合はその優先度に応じてQoS伝送してもよい。
また、上述の実施の形態1では、HGW101において、パケットを送信する際に、優先制御伝送を行なうものとしているが、これを実施しなくてもよい。すなわち、DSCPフィールドの書き換えのみをHGW101にて実施するものとしてもよい。
実施の形態は上述の他に、以下のようにも表現できる。すなわち、本発明に係る通信制御装置は、送信装置のドメイン名を含んだ、アドレス要求信号を受信装置から受け取り、前記アドレス要求信号に含まれるドメイン名から、優先度を決定し、前記アドレス要求信号に含まれるドメイン名から、前記送信装置のアドレスを取得し、前記アドレス要求信号の送信元アドレスから、前記受信装置のアドレスを取得し、前記送信装置から前記受信装置に送信されるパケットの優先度を、前記決定した優先度に設定するものであってもよい。
なお、実施の形態2〜4は、上述の他に、次のようにも表現できる。
[1]本発明に係る中継装置は、パケットを中継する中継装置であって、前記中継装置は、QoS対象記憶部と、ドメイン名アドレス解決パケット検出部(DNS検出部)と、優先度データ生成処理部と、パケット優先度記憶部と、パケット優先伝送処理部を備え、前記QoS対象記憶部は、QoS設定対象となるドメイン名を記憶し、前記ドメイン名アドレス解決パケット検出部は、前記中継するパケットがドメイン名アドレス解決パケットであることを検出すると、前記ドメイン名アドレス解決パケットの問合せ対象ドメイン名が前記QoS対象記憶部に記憶されている前記ドメイン名に合致するかどうかを判定し、合致していれば、前記優先度データ生成処理部に通知し、前記優先度データ生成処理部は、前記ドメイン名に合致したドメイン名アドレス解決パケットの存在を確認して、前記ドメイン名アドレス解決パケットからアドレス情報を抽出し、前記抽出されたアドレス情報を含む優先度データを生成し、前記パケット優先度記憶部は、前記生成された優先度データを記憶し、前記パケット優先伝送処理部は、前記中継するパケットが、前記パケット優先度記憶部に記憶された優先度データに合致するかどうかを判定し、合致していれば、前記パケットを優先的に中継することを特徴とする中継装置。
[2]本発明に係る中継装置は、パケットを中継する中継装置であって、前記中継装置は、QoS対象記憶部と、ドメイン名アドレス解決パケット検出部(DNS検出部)と、優先度データ生成処理部と、パケット優先度記憶部と、パケット優先伝送処理部を備え、前記QoS対象記憶部は、QoS設定対象となる第1ドメイン名と第2ドメイン名を記憶し、前記ドメイン名アドレス解決パケット検出部は、前記中継するパケットがドメイン名アドレス解決パケットであることを検出すると、前記ドメイン名アドレス解決パケットの問合せ対象ドメイン名が前記QoS対象記憶部に記憶されている前記第1ドメイン名および前記第2ドメイン名に合致するかどうかを判定し、合致していれば、前記優先度データ生成処理部に通知し、前記優先度データ生成処理部は、前記第1ドメイン名に合致した第1ドメイン名アドレス解決パケットと、前記第2ドメイン名に合致した第2ドメイン名アドレス解決パケットの両方の存在を確認して、前記第1および第2のドメイン名アドレス解決パケットからアドレス情報を抽出し、前記抽出されたアドレス情報を含む優先度データを生成し、前記パケット優先度記憶部は、前記生成された優先度データを記憶し、前記パケット優先伝送処理部は、前記中継するパケットが、前記パケット優先度記憶部に記憶された優先度データに合致するかどうかを判定し、合致していれば、前記パケットを優先的に中継することを特徴とする中継装置。
[3]さらに、本発明に係る中継装置は、前記優先度データ生成処理部が、前記ドメイン名アドレス解決パケットから抽出するアドレス情報は、前記ドメイン名アドレス解決パケットで解決されたドメイン名のアドレス、であってもよい。
[4]さらに、本発明に係る中継装置は、前記優先度データ生成処理部が、前記ドメイン名アドレス解決パケットから抽出するアドレス情報は、前記ドメイン名アドレス解決パケットを送信する、または、受信する装置のアドレス、であってもよい。
[5]本発明に係る中継装置は、パケットを中継する中継装置であって、前記中継装置は、DNS検出部と、優先度データ生成処理部と、パケット優先伝送処理部と、QoS対象記憶部と、パケット優先度記憶部とを備え、前記DNS検出部は、前記中継するパケットがDNSパケットであることを検出すると、前記DNSパケットの問合せ対象ドメイン名が前記QoS対象記憶部に記憶されているエントリ情報のドメイン名に合致するかどうかを判定し、合致していれば、前記優先度データ生成処理部に通知し、前記優先度データ生成処理部は、前記DNSパケットと前記合致したQoS対象記憶部に記憶されているエントリ情報から優先度データを生成して、前記生成された優先度データを前記パケット優先度記憶部に記憶させ、前記パケット優先伝送処理部は、前記中継するパケットが前記パケット優先度記憶部に記憶されている優先度データに合致しているかどうかを判定し、合致していれば、前記合致した優先度データの優先度に従って、前記パケットを優先して中継してもよい。
[6]本発明に係る中継装置は、データ受信装置が、第1ドメインに属する第1外部装置の通信アドレスを要求する第1リクエストを送信し、該第1リクエストの応答を通信制御装置を介して受信した後、第2ドメインに属する第2外部装置の通信アドレスを要求する第2リクエストを送信し、データ送信装置に対して、複数の通信パケットから構成されるデータフローを要求する第3リクエストを送信し、該第3リクエストの応答として上記データ送信装置が上記通信制御装置を介して上記データ受信装置へ送信する、上記データフローに含まれる上記通信パケットについて、当該通信パケットの伝送を制御しつつ、当該通信パケットを中継する中継装置であって、上記第1リクエストの応答は、上記外部装置が属する上記第1ドメインの名称である第1ドメイン名と、上記外部装置の通信アドレスと、上記第1リクエストの種別を示す第1リクエスト種別とを含んでおり、上記第2リクエストの応答は、上記データ送信装置が属する上記第2ドメインの名称である第2ドメイン名と、上記データ送信装置の通信アドレスと、上記第2リクエストの種別を示す第2リクエスト種別と、上記通信制御装置の物理アドレスと、上記データ受信装置の物理アドレスとを含んでおり、上記第1リクエストの応答から上記第1ドメイン名および上記第1リクエスト種別を抽出するとともに、上記第2リクエストの応答から上記第2ドメイン名および上記第2リクエスト種別を抽出するドメイン名/リクエスト種別抽出手段と、上記第1ドメイン名と、上記第1リクエスト種別と、上記第2ドメイン名と、上記第2リクエスト種別と、上記通信パケットの伝送優先度とを対応づけて記憶する第1記憶部と、上記ドメイン名/リクエスト種別抽出手段が抽出した、上記第1ドメイン名、上記第1リクエスト種別、上記第2ドメイン名、および上記第2リクエスト種別の組に対応付けられた伝送優先度を、上記第1記憶部から取得するドメイン優先度取得手段と、上記第2リクエストの応答に含まれる上記通信制御装置のMACアドレスと上記データ受信装置のMACアドレスとの組に、上記ドメイン優先度取得手段が取得した伝送優先度を対応付けて、第2記憶部に格納する優先度データ生成手段とを備えるとともに、上記データフローを構成する各通信パケットは、該通信パケットの送信元のMACアドレス、および該通信パケットの送信先のMACアドレスを含んでおり、上記データフローを構成する上記通信パケットから上記送信元のMACアドレスおよび上記送信先のMACアドレスを抽出する送信元アドレス/送信先アドレス抽出手段と、上記送信元アドレス/送信先アドレス抽出手段が抽出した、上記送信元のMACアドレスと上記送信先のMACアドレスとの組に対応付けられた伝送優先度を、上記第2記憶部から取得するパケット優先度取得手段と、上記パケット優先度取得手段が取得した上記伝送優先度に従って、上記データフローを構成する上記通信パケットの伝送を制御するパケット伝送制御手段とを備えていてもよい。
[7]本発明に係る中継装置は、複数の通信パケットから構成されるデータフローに含まれる上記通信パケットの伝送を制御しつつ、当該通信パケットを中継する中継装置であって、データ受信装置から送信される、ドメインに属する外部装置の通信アドレスを要求するリクエストを中継するとともに、上記データ受信装置へ送信される、上記リクエストに対するレスポンスであって、上記外部装置が属するドメインのドメイン名と、当該レスポンスの送信元を表す情報と、および当該レスポンスの送信先を表す情報とを含むレスポンスを中継し、自装置が中継する通信パケットが、上記レスポンスの通信パケットであることを検出するとともに、上記レスポンスから、上記外部装置のドメイン名と、当該レスポンスの送信元を表す情報と、当該レスポンスの送信先を表す情報とを抽出するドメイン名/送信情報抽出手段と、上記外部装置のドメイン名と、上記通信パケットに設定すべき伝送優先度とを対応づけて記憶する第1記憶部と、上記ドメイン名/送信情報抽出手段が抽出した、上記外部装置のドメイン名に対応付けられた伝送優先度を、上記第1記憶部から取得するドメイン優先度取得手段と、上記ドメイン名/送信情報抽出手段が抽出した、上記レスポンスの送信元を表す情報と当該レスポンスの送信先を表す情報との組に、上記ドメイン優先度取得手段が取得した伝送優先度を対応付けて、第2記憶部に格納する優先度データ生成手段とを備えるとともに、上記データフローを構成する上記通信パケットは、該通信パケットの送信元を表す情報と、該通信パケットの送信先を表す情報とを含んでおり、自装置が中継する上記通信パケットから、上記送信元を表す情報および上記送信先を表す情報を抽出する送信元情報/送信先情報抽出手段と、上記送信元情報/送信先情報抽出手段が抽出した、上記送信元を表す情報と上記送信先を表す情報との組に対応付けられた伝送優先度を、上記第2記憶部から取得するパケット優先度取得手段と、上記パケット優先度取得手段が取得した上記伝送優先度に応じて、上記データフローを構成する上記通信パケットの伝送を制御するパケット伝送制御手段とを備えていてもよい。
さらに、上述した実施の形態は、上述の他に、次のようにも表現できる。
上記課題を解決するために、本発明に係る中継装置は、パケットを中継する中継装置であって、QoS対象となるドメイン名を少なくとも記憶するQoS対象記憶部と、上記中継するパケットが、ドメイン名/アドレス解決パケットであることを検出するとともに、該検出されたドメイン名/アドレス解決パケットに含まれる問合せ対象のドメイン名と上記QoS対象記憶部に記憶されているドメイン名とが一致するか否かを判定するドメイン名/アドレス解決パケット検出手段と、上記判定の結果、上記問合せ対象のドメイン名と上記QoS対象記憶部に記憶されているドメイン名とが一致する場合、上記検出されたドメイン名/アドレス解決からアドレスを抽出し、該抽出したアドレスを含む優先度データを生成し、該生成した優先度データをパケット優先度記憶部に格納する優先度データ生成処理手段と、上記中継するパケットに含まれるアドレスと、上記パケット優先度記憶部に記憶された上記優先度データに含まれるアドレスとが一致する場合、上記パケットを優先的に中継するパケット優先伝送処理手段とを備えることを特徴としている。
上記の構成によれば、上記中継するパケットが、ドメイン名/アドレス解決パケットであることを検出するとともに、該検出されたドメイン名/アドレス解決パケットに含まれる問合せ対象のドメイン名と、QoS対象となるドメインのドメイン名を少なくとも記憶するQoS対象記憶部に記憶されているドメイン名とが一致するか否かを判定する。そして、上記判定の結果、上記問合せ対象のドメイン名と上記QoS対象記憶部に記憶されているドメイン名とが一致する場合、上記検出されたドメイン名/アドレス解決パケットに含まれるアドレスを抽出し、該抽出したアドレス含む優先度データを生成し、該生成した優先度データをパケット優先度記憶部に格納することができる。そして、上記中継するパケットに含まれるアドレスと、上記パケット優先度記憶部に記憶された上記優先度データに含まれるアドレスとが一致する場合、上記パケットを優先的に中継することができる。
よって、ドメイン名に応じて、上記パケットを中継することができる。
したがって、ドメイン名が異なる映像配信サーバのそれぞれから送信される、同じネゴシエーションプロトコルを使用するコンテンツ(例えば、高画質の映像コンテンツおよび低画質の映像コンテンツ)のデータフローが同一の通信ネットワーク上で伝送される状況において、各データフローをいずれも優先的に伝送すると通信ネットワークの伝送帯域が不足する場合であっても、本発明によれば、ドメイン名に応じていずれかのデータフローのみを(例えば、高画質の映像コンテンツのデータフローのみを)優先的に伝送することができるので、上記状況においてもQoSを実現することができるという効果を奏する。
さらに、本発明に係る中継装置は、上記優先度データ生成処理手段が上記優先度データに含めるアドレスは、上記ドメイン名/アドレス解決パケットで解決されたドメイン名のアドレスであってもよい。
上記の構成によれば、優先度データに含めるアドレスは、上記ドメイン名/アドレス解決パケットで解決されたアドレスとすることができる。
よって、上記パケット優先伝送処理手段は、上記中継するパケットに含まれるアドレスと、上記問合せ対象のドメイン名を有する装置のアドレスとが一致する場合、上記中継するパケットを優先的に中継することができる。
したがって、上記問合せ対象のドメイン名を有する装置から送信されるパケットを、優先的に中継することができるという効果を奏する。
さらに、本発明に係る中継装置は、上記優先度データ生成処理手段が上記優先度データに含めるアドレスは、上記ドメイン名/アドレス解決パケットを送信または受信する装置のアドレスであってもよい。
上記の構成によれば、優先度データに含めるアドレスは、上記ドメイン名/アドレス解決パケットを送信または受信する装置のアドレスとすることができる。
よって、上記パケット優先伝送処理手段は、上記中継するパケットに含まれるアドレスと、上記ドメイン名/アドレス解決パケット検出手段が検出するパケットを送信または受信する装置のアドレスとが一致する場合、上記パケットを優先的に中継することができる。
したがって、上記ドメイン名/アドレス解決パケット検出手段が検出するパケットを送信または受信する装置から送信されるパケットを、優先的に中継することができるという効果を奏する。
最後に、制御部10・110・210・810は、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよいし、ハードウェアロジックによって構成してもよい。ソフトウェアによって実現する場合は、HGW101、HGW121、PLCアダプタ301(302、303)、PLCアダプタ311(312、313)、無線LANアダプタ801(802、803)は、各機能を実現する制御プログラムの命令を実行するCPU、上記プログラムを格納したROM、上記プログラムを展開するRAM、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるHGW101、HGW121、PLCアダプタ301(302、303)、PLCアダプタ311(312、313)、無線LANアダプタ801(802、803)の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、HGW101、HGW121、PLCアダプタ301(302、303)、PLCアダプタ311(312、313)、無線LANアダプタ801(802、803)に供給し、HGW101、HGW121、PLCアダプタ301(302、303)、PLCアダプタ311(312、313)、無線LANアダプタ801(802、803)内のコンピュータ(またはCPUやMPU(Micro Processing Unit))が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、HGW101、HGW121、PLCアダプタ301(302、303)、PLCアダプタ311(312、313)、無線LANアダプタ801(802、803)を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394ケーブル、USBケーブル、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAのような赤外線、Bluetooth(登録商標)、IEEE802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。