(第1の実施形態)
本実施形態は、本発明を、例えば、家庭内や小規模オフィス等で、映像配信、音声配信、ウェブブラウジング、ファイル転送等に用いられる送受信システムとして構築されたネットワークシステムや、大規模建造物における映像または音声配信システム、交通機関や集合エリアにおけるアビオニクスシステムに適用したものである。
図1は、本発明の第1の実施形態に係る通信装置を用いたシステム全体の構成例を示す図である。図1に示される通信システムは、電灯線通信端末装置100(端末装置(A)〜(F))と、電灯線サブネットワーク101と、レイヤ2レベルのハブ102と、ネットワーク103と、ホスト111〜119とを備える。
図1に示すシステムには、広く一般で使用されるIPプロトコルに従った通信手段を持ち、イーサネットのインタフェースを備えている9つのIPホスト(ホスト111〜119)が設置されている。また、図1に示されるネットワーク103には、広く知られているレイヤ2レベルの分岐装置(ハブ:102)を設置することができ、ハブ102を使用することによって、複数のIPホストを接続することができる。
以下の説明では、ネットワーク101が電灯線ネットワークであり、ネットワーク103がイーサネットである場合を想定する。本実施形態における端末装置100は、電灯線サブネットワーク101と、ネットワーク103とを接続し、異なる通信メディア間でデータを転送するブリッジとして構成されている。
したがって、本実施形態では、ネットワーク101において交換するデータをフレームとし、ネットワーク103において交換するデータをパケットとする。
本実施形態では、図1に示すホスト111が、IPマルチキャストアドレスGAを宛先として、IPマルチキャストパケットを発行する。ここで、IPマルチキャストグループGに属するホスト(IPマルチキャストグループGで配信されるパケットを受信または発信したいアプリケーションを稼動しているホスト)は、ホスト111、ホスト112、ホスト115、ホスト116、ホスト118、ホスト119であるものとする。
したがって、IPマルチキャストグループGのマルチキャストパケットを発行することは、ネットワーク101において、端末装置(A)と端末装置(B)とを接続するリンクI、端末装置(A)と端末装置(D)とを接続するリンクII、端末装置(A)と端末装置(E)とを接続するリンクIII、および端末装置(A)と端末装置(F)とを接続するリンクIVを介してマルチキャストパケットを転送する要求となる。
なお、ここでは、電灯線メディアネットワークであるサブネットワーク101と、ネットワーク103によって構成されるネットワークが示されているが、本発明に係る端末装置100の適用範囲はもちろんこれらのネットワークに限定されるものではない。本発明に係る端末装置は、例えば、無線、電話線、テレビアンテナ線やケーブルテレビ線とのような同軸線、構内音声伝送用スピーカ線、その他の特定用途の専用線などによって構成される通信メディアを利用するネットワークにも同様に適用することができる。
また、サブネットワーク101とネットワーク103とは、同じ通信メディアであってもよい。ホスト111〜119の各々は、ネットワーク103に適合する通信手段を備えていればよく、例えば、ハブ102をネットワーク103に適合する通信手段として用いる。
図2は、端末装置100の構成を示すブロック図である。端末装置100は、ネットワーク101とのインタフェースである送受信処理部201と、データ記憶部202と、ネットワーク103とのインタフェースである外部インタフェース処理部203と、制御処理部204と、タイマ部205と、転送管理部206と、帯域予約管理部207とを備える。
送受信処理部201は、ネットワーク101を介してデータを送受信する。送受信処理部201には、通信帯域のみを抽出する機能や、ネットワーク101上のフレームの有無を調べる機能(キャリアセンス機能)等が含まれる。
データ記憶部202は、種々のデータを記憶する。具体的には、データ記憶部202は、演算テンポラリ領域などに用いられ得る。また、データ記憶部202は、ネットワーク101に関する伝送路特性を推定した結果を伝送路パラメータ情報として記憶する。また、データ記憶部202は、ネットワーク101とネットワーク103との転送を行う際のフレームテンポラリ領域として用いられる。また、データ記憶部202は、ネットワーク103から受けた転送要求に対し、ネットワーク101にどのような品質を保証して伝送するかといった情報を記憶する。また、データ記憶部202は、ネットワーク103から受けた転送要求に対して、どういった形態でネットワーク101へフレーム発行するかといった情報を記憶する。また、データ記憶部202は、制御処理部204が実行するソフトウェアを格納している。
外部インタフェース処理部203は、ホスト端末としてのネットワーク階層の上位レイヤとしての機能を有している。また、第1の実施形態は、端末装置100がブリッヂ形態を有する例であるから、ブリッヂ機能を有する端末を用いて本発明を実現する場合に、イーサネット、無線、同軸線、電話線およびその他の専用線などの、他形態のプロトコルインタフェースを処理してもよい。
タイマ部205は、時間をカウントする。
転送管理部206は、ネットワーク101とネットワーク103との転送処理に関して、転送するフレームの種別、形態および方法を判断する。転送管理部206は、判断した結果に基づいて、データを生成して伝送ポリシーとして管理し、伝送ポリシーをデータ記憶部202に格納する。
帯域予約管理部207は、制御処理部204にメディアアクセスの時間分割などの手法で占有的にメディア利用機会を持たせることにより品質保証(QoS:Quality of Service)をネットワーク101において実現するための手続きを管理する機能ブロックである。
制御処理部204は、端末装置100の全体の動作を制御する。より詳細には、制御処理部204は、制御処理部メイン251と、伝送時間算出部252と、グループ分け制御処理部253と、同報マップ生成部254と、パケット種別検知部255と、グループ管理情報管理部256と、伝送ポリシー適用部257と、伝送路推定制御処理部258とを含む。
制御処理部メイン251は、制御処理部204の主要な制御や、制御処理部204と他の構成要素とが通信するための外部インタフェースとして動作する。伝送時間算出部252は、グループ毎および全体の伝送理論時間を算出する。グループ分け制御処理部253は、伝送グループ分けを制御する。同報マップ生成部254は、マルチキャストおよびブロードキャストにおける伝送マップを生成する。パケット種別検知部255は、ネットワーク101から受信するパケットおよびネットワーク103から受信するパケットの詳細な種別を識別する。グループ管理情報管理部256は、データ記憶部202に記憶されるグループ管理情報を参照および編集し、さらにグループ管理情報に関するタイマを管理することにより、グループを管理する。伝送ポリシー適用部257は、グループ管理情報管理部256と連携して、転送ポリシーを設定する。伝送路推定制御処理部258は、伝送路推定を実行する。
図3は、ネットワーク101で用いるフレームのフォーマットを示す図である。フレーム601は、フレームヘッダ部602とフレームデータボディ部603からなる。フレームヘッダ部602は、識別子フィールド605および606からなる。
識別子フィールド605は、宛先となる端末装置100の識別子、マルチキャスト識別子またはブロードキャスト識別子を記録するフィールドである。識別子フィールド606は、フレームを発行した端末装置100の識別子を記録するフィールドである。
フレームデータボディ部603は、ネットワーク103からネットワーク101へ転送するデータ(この場合は、IPイーサネットパケット)を、ひとつ以上含む。なお、データ転送用フレームは、フレーム601で示す構造をしている。しかし、ネットワーク101で使用されるフレームには、フレームデータボディ部603が含まれないフレームフォーマットも存在する。
図4は、端末装置100が管理しているグループ管理情報の内容を示す図である。グループ管理情報701は、グループ管理情報を識別するIPマルチキャストグループアドレス702と、マルチキャストパケットのネットワーク103からネットワーク101への転送が可能か否かを示す転送可否フラグ703と、パケット種別704と、マルチキャストアドレスグループ転送ポリシー705とを含む。
図4に示すパケット種別704は、転送するパケットの映像(HD/SD)、AV音声、電話音声などのパケット種別を表す。
マルチキャストアドレスグループ転送ポリシー705は、転送ポリシーが設定されているか否かを示す転送ポリシー設定721と、当該マルチキャストグループにおいて登録されているテンポラリマップ数722と、テンポラリマップ番号、伝送性能、帯域予約情報およびリンク情報を含む伝送情報723とからなる。マルチキャストアドレスグループ転送ポリシー705は、伝送情報723をテンポラリマップの数だけ含む。
なお、初期状態において、転送ポリシー設定721はFALSE(未設定)に設定され、当該マルチキャストアドレスグループにおいて登録されているテンポラリマップ数722は0に設定され、伝送情報723はNULLに設定されている。
伝送情報723のテンポラリマップとは、当該マルチキャストアドレスグループのマルチキャストパケットの転送において、ネットワーク101へフレームを発行するときに使用する伝送マップのことである。
伝送情報723に含まれる伝送性能とは、伝送情報723に対応する伝送マップに含まれる全てのサブキャリア毎に記載する情報量を足しあわせたものである。伝送情報723の帯域予約情報は、当該伝送情報で指定されたリンクに対して、帯域予約がなされている場合に、フレームの発行タイミングなどを決める装置と連携するための情報を含む。
伝送情報723に含まれるリンク情報とは、ネットワーク101において、端末装置間の伝送路を特定する情報のことをいう。具体的には、マルチキャストパケットの宛先となる端末装置の識別子および最終到達先となるホストの識別子で構成される情報である。
グループ管理情報701は、データ記憶部202に格納され、制御処理部204および転送管理部206によって、主に作成、参照、廃棄される。
端末装置100は、レイヤ2レベルの転送装置であるが、レイヤ3レベル以上のプロトコルメッセージをスヌーピングする。端末装置100は、外部インタフェース処理部203にキューイングされたイーサネットパケットを、制御処理部204においてイーサネットヘッダ、IPヘッダ、さらには、UDPヘッダ、TCPヘッダまで解析してもよく、これがどのようなパケットであるのかを判断することができる。
例えば、端末装置100は、IPプロトコルのレイヤ3レベルで規定されているIGMP(Internet Group Management Protocol)プロトコルメッセージまたはMLD(Multicast Listener Discovery)メッセージをスヌーピングしてもよい。IGMP及びMLDプロトコルは、IPマルチキャストパケットを受信する複数のホストで構成されるグループを制御するためのグループ管理プロトコルである。
グループ管理プロトコルとは、IPマルチキャストを実装したルータが、当該ルータに接続された物理ネットワーク上にマルチキャストグループに参加しているホストが存在するか否かを管理するためのプロトコルである。
グループ管理プロトコルには、当該グループ管理プロトコルで規定されるグループへの参加を通知するメッセージを示す参加メッセージ、当該グループへ所属していることを通知するメッセージを示す報告メッセージ及び当該グループから離脱することを通知するメッセージを示す離脱メッセージが規定されている。
より具体的には、グループ管理プロトコルとしてIGMP及びMLDプロトコルが知られている。IGMP及びMLDプロトコルは、あるホストがグループに参加またはグループから離脱したり、マルチキャストルータ間でグループに関する情報を交換したりするのに使われ、広くIPの一部として実装されるものである。IGMPプロトコルはIPv4で規定されているグループ管理プロトコルであり、MLDプロトコルはIPv6で規定されているグループ管理プロトコルである。
IGMP及びMLDプロトコルでは、JOINメッセージが参加メッセージに相当し、REPORTメッセージが報告メッセージに相当する。また、IGMPプロトコルでは、IGMP LEAVEメッセージが離脱メッセージに相当し、MLDプロトコルでは、MLD DONEメッセージが離脱メッセージに相当する。
なお、JOINメッセージ及びREPORTメッセージは、IGMP Ver.1で規定されている。また、IGMP LEAVEメッセージは、IGMP Ver.2で規定されている。
本例においては、説明の便宜上、各ホスト111〜119は、IPv4に準拠しており、IGMPv2以上のプロトコルが実装されているものとするが、当然のことながら、これは本発明に係る端末装置の適用範囲を制限するものではない。
端末装置100は、ネットワーク101での送受信に際し、DMT(Discrete Multi Tone)によるマルチキャリア伝送方式を用いる。端末装置100は、使用する周波数帯をいくつかのサブキャリアに分割し、サブキャリアごとに掲載する情報数を設定する変復調を行う。なお、以下ではサブキャリアごとに記載する情報量を、使用する全ての帯域分集めた情報を、伝送マップと呼ぶ。
電灯線は、周波数軸的に多様な伝送路特性を示すため、端末装置100同士を接続するリンクごとの伝送路パラメータは、多様なものとなる。したがって、それぞれの端末装置100は、端末装置100同士を接続する1:1リンクのサブキャリア毎の伝送路評価を行い、1:1リンク間伝送を最適にする伝送路パラメータを設定する。端末装置100は、伝送路パラメータを設定して、1:1リンク間の高速転送を可能にする機能を有している。
端末装置100が有している、伝送路パラメータを設定して、1:1リンク間の高速転送を可能にする機能は、特に高周波伝送を目的として設計されていない通信メディアを使用した通信システムにおいて、伝送路推定によるリンク最適化転送方式として従来から知られているものである。本実施の形態では、制御処理部204が主体となって実行する。
電灯線の周波数特性が多様であるので、端末装置100を接続する伝送路パラメータもまた多様化する。そのため、ネットワーク101におけるブロードキャスト伝送を行うには、すべての端末が受信できるように伝送路パラメータを設定する必要がある。
なお、Reed−SolomonやViterbiアルゴリズムなどに代表される、誤り訂正の設定と、その強度に関わる情報を伝送マップに加えて、伝送パラメータと呼ぶことにする。
伝送路パラメータには、記載できる情報数はわずかで、誤り訂正強度が強く、さらに、時間的に繰り返しを行うなどの冗長操作を設定するモード(以下、ダイバシチモードという)がある。伝送路パラメータは、ダイバシチモードによってネットワーク101におけるブロードキャスト転送を行うのが現実的である。
図5は、図1に示されるリンクI〜リンクIVの伝送マップを示す図である(伝送マップ301〜304)。伝送マップ301〜304の横軸は周波数を示し、縦軸は記載できる情報量を示す。
本実施形態において、端末装置100は、ネットワーク101で使用する周波数帯域を10のサブキャリア305に分割し、所定の時間における記載情報量をそれぞれのサブキャリアに対して設定するリンク最適化変復調を適用する。尚、端末装置100がネットワーク101で使用する周波数帯域をサブキャリアに分割する数は、必ずしも10でなくてもよく、10未満または11以上であってもよい。
図5に示す伝送マップは、リンクIの伝送マップ301とリンクIVの伝送マップ304とが、比較的良好な伝送路特性であることを示し、リンクIIの伝送マップ302の低周波域の特性が悪く、リンクIIIの伝送マップ303の高周波域の特性が悪いことを示している。
図6は、パケット種別704において定義されるパケット種別のそれぞれに対応する、最低レート、最高レート、許容遅延および欠損保証を定義する帯域予約情報テーブルである。端末装置100は、図6の帯域予約情報テーブルを参照して、転送するパケットの転送速度や欠損保証レベルを決定する。
図7は、図6に示す帯域予約情報テーブルに含まれるそれぞれの欠損保証レベルに対応する、誤り訂正強度とACKを必要とするか否か等の定義を示す図である。端末装置100は、図7に示す欠損保証レベルに基づいて、転送するパケットの誤り訂正強度やACKが必要か否か等を決定する。
以下、図8を参照しながら、端末装置100が、ネットワーク103からマルチキャストパケットを受信したときの処理を説明する。
図8は、本発明に係る端末装置100がネットワーク103から、マルチキャストパケットを受信したときの制御処理部204の処理を説明する図である。端末装置100の制御処理部204は、外部インタフェース処理部203が、IPマルチキャストパケットを受信すると、図8に示す処理を開始する。
外部インタフェース処理部203は、ネットワーク103から何らかのパケットを受信すると、IGMPプロトコルやMLDプロトコルなどの上位IPプロトコルにしたがって受信したパケットを解析する。外部インタフェース処理部203は、ネットワーク103からキューイングされたパケットにマルチキャストアドレスが記載されている場合、マルチキャストパケットを受信したことを制御処理部204へ通知する。なお、パケットは、データ記憶部202にテンポラリ格納される。
ステップS401において、制御処理部204は、外部インタフェース処理部203から、マルチキャストパケットを受信した通知を受ける。制御処理部204は、マルチキャストパケットを受信した通知を受けると、ステップS402の処理へ進む。
ステップS402において、制御処理部204は、外部インタフェース処理部203が受信したマルチキャストパケットに対応するグループ管理情報701に含まれている転送可否フラグ703を参照する。制御処理部204は、転送可否フラグ703が拒否を示す場合、ステップS403へ進み、転送可否フラグ703が拒否を示さない場合、ステップS404へ進む。なお、受信したマルチキャストパケットに対応するグループ管理情報701が存在しない場合は、ステップS404へ進む。
ステップS403において、制御処理部204は、受信したマルチキャストパケットを破棄する。制御処理部204は、外部インタフェース処理部203が受信したマルチキャストパケットが格納されているデータ記憶部202のテンポラリ領域を解放する。
ステップS404において、制御処理部204は、マルチキャストアドレスのグループ管理情報701の有無を判定する。制御処理部204は、受信したマルチキャストパケットに含まれるマルチキャストアドレスに対応するグループ管理情報701が存在しない場合にはステップS405へ進み、グループ管理情報701が存在する場合にはステップS409へ進む。
ステップS405において、制御処理部204は、受信したマルチキャストアドレスに対応するグループ管理情報701を新規に作成する。このとき、制御処理部204は、デフォルト値として、転送可否フラグ703に「許可」を設定し、パケット種別704に「その他」を設定しても良い。
ステップS405において、制御処理部204は、グループ管理情報701を新規に作成した後、IGMP(MLD)JOINメッセージ待ちタイマを起動する。制御処理部204は、当該タイマを使用して、所定の時間が経過しても新たなIGMP(MLD)JOINメッセージを受信しない場合に、当該マルチキャストのアドレスグループ管理情報701の転送可否フラグ703を「拒否」に設定する。
ステップS405において、制御処理部204は、IGMP(MLD)JOINメッセージ待ちタイマを使用することによって、当該IPマルチキャストアドレスグループに属するホストが一台もネットワーク101に接続されていないことを判定することができる。この場合、端末装置100を当該マルチキャストパケットを転送しないように制御することができるので、端末装置100がネットワーク101に対して無為にトラフィックを増大させないといった効果を得ることができる。
なお、制御処理部204が、ステップS405の処理をするのは、当該マルチキャストアドレスのグループ管理情報701が存在しない場合である。つまり、マルチキャストアドレスを宛先としたパケットがはじめて到達したか、もしくは、何らかの要因によって当該IPマルチキャストアドレスのアドレスグループ管理情報701が消去された場合である。
ステップS406において、制御処理部204は、グループ管理情報701に含まれるパケット種別704と、受信したマルチキャストパケットに含まれるパケット種別とを比較する。制御処理部204は、比較したパケット種別が異なる場合には、グループ管理情報に含まれるパケット種別704を受信したマルチキャストパケットのパケット種別に更新する。
なお、制御処理部204が、ステップS406において、受信したマルチキャストパケットのパケット種別を判別する方法は、IPプロトコルに則り、IPヘッダに含まれるToS(Type of Service)フィールドをスヌーピングし、予めアプリケーション毎に定義した識別子によって、パケット種別を判別するといった方法でよい。ただし、制御処理部204が、ステップS406において、マルチキャストパケットのパケット種別を把握するための方法は、上記の方法に限らない。
ステップS407において、制御処理部204は、転送するマルチキャストパケットをネットワーク101へ送出する際の変復調方式をダイバシチモードに設定し、ネットワーク101に対してブロードキャスト転送を行うように設定を変更する。なお、本実施形態では、端末装置100が、マルチキャストパケットを転送するモードをダイバシチモードと定義しているが、もちろんこれに限るものではない。
ステップS408において、制御処理部204は、送受信処理部201に対してネットワーク101へのフレームの転送を要求する。
ステップS409において、制御処理部204は、マルチキャストパケットに対応するマルチキャストアドレスグループ転送ポリシー705が既に作られているか否かを判断する。ここで、制御処理部204は、マルチキャストアドレスグループ転送ポリシー705が作られている場合、ステップS410へ進み、マルチキャストアドレスグループ転送ポリシー705が作られていない場合、ステップS406の処理へ進む。
ステップS410において、制御処理部204は、マルチキャストアドレスグループに対応するマルチキャストアドレスグループ転送ポリシー705がすでに設定されている場合であり、マルチキャストアドレスグループ転送ポリシー705を適用する。ここで、マルチキャストアドレスグループ転送ポリシー705とは、転送管理部206が主体となって作成するものである。制御処理部204が、マルチキャストアドレスグループ転送ポリシー705を作成する過程については後述する。
図9は、端末装置100がネットワーク101からマルチキャストパケットを受信した場合に、制御処理部204の処理を説明する図である。端末装置100が、ネットワーク101からフレームを受信した場合、送受信処理部201において、フレームに含まれるIPパケット単位で図9に示す処理が行われる。
以下、図9を参照しながら、端末装置100が、ネットワーク101からパケットを受信した場合の処理を説明する。
送受信処理部201は、受信したIPパケットに、IPマルチキャストアドレスが設定されている場合、制御処理部204に通知する。ステップS501において、制御処理部204は、この時点を起点として図9に示す処理を開始する。なお、受信したIPパケットは、データ記憶部202に一時的に記憶される。
ステップS502において、制御処理部204は、送受信処理部201が受信したIPパケットの上位レイヤ解析を行う。制御処理部204は、当該IPパケットが、IGMP(またはMLD)JOINメッセージまたはREPORTメッセージである場合、ステップS503の処理へ進む。それ以外の場合は、制御処理部204は、ステップS506の処理へ進む。
ステップS503において、制御処理部204は、当該IPマルチキャストアドレスグループに関するグループ管理情報701が作られているか否かを判定する。当該IPマルチキャストアドレスグループに関するグループ管理情報701が、既に作られている場合は、制御処理部204は、ステップS504へ進み、グループ管理情報701が作られていない場合はステップS507へ進む。
ステップS504において、制御処理部204は、IGMP(MLD)JOIN待ちタイマを停止し、ステップS505へ進む。
ステップS505において、制御処理部204は、マルチキャストアドレスグループ転送ポリシー705を作成する。制御処理部204は、ステップS705において、転送パケットの伝送方法と、適用する伝送マップとを設定して、マルチキャストアドレスグループ転送ポリシー705を作成する。また、制御処理部204は、IPマルチキャストパケットの転送に関して、転送するべきリンクを設定し、ユニキャスト、マルチキャスト、ブロードキャストといった伝送方法と、転送に使用するリンクのそれぞれに、どの伝送マップを適用するかを設定する。端末装置100は、ステップS505を実行した後、ステップS506へ進む。
なお、制御処理部204が、マルチキャストアドレスグループ転送ポリシー705を作成する処理の詳細は後述する。
ステップS506において、制御処理部204は、外部インタフェース処理部203に、ネットワーク103へマルチキャストパケットの転送を要求する。なお、外部インタフェース処理部203が、ネットワーク103へIPパケットの転送を終了すると、データ記憶部202のIPパケットを記憶していた領域が解放される。制御処理部204は、ステップS506の処理を終了すると、ネットワーク101から受信したマルチキャストパケットをネットワーク103へ転送する。
ステップS507において、制御処理部204は、マルチキャストパケットをネットワーク103へ転送する際に、ネットワーク101から受信したフレームに含まれるIGMP(MLD)メッセージに対応するマルチキャストアドレスグループ転送ポリシー705を適用する。
例えば、送受信処理部201が受信したIGMP(MLD)メッセージが、JOINメッセージまたはREPORTメッセージであった場合、外部インタフェース処理部203は、当該メッセージをネットワーク103へ転送せずに破棄する。送受信処理部201が受信したIGMP(MLD)メッセージが、QUERYメッセージであった場合、外部インタフェース処理部203は、当該メッセージをネットワーク103へ転送するようにしてもよい。この動作によって得ることができる効果は後述する。
図10Aは、端末装置100が、ステップS505において、マルチキャストアドレスグループ転送ポリシー705を作成する処理の詳細を説明する図である。ステップS505の処理は、転送管理部206が処理する。
ステップS1001において、転送管理部206は、ローカル変数iに0を代入し、kにはこの段階におけるマルチキャストアドレスグループに対する登録テンポラリマップの数722を代入する。xは、グローバル変数であって、マルチキャスト転送用伝送マップを識別するパラメータである。xは、端末装置100の起動時等の適切なタイミングで0に初期化される。
ステップS1002において、転送管理部206は、グループ管理情報701に含まれるパケット種別704で指定する欠損保証レベル規定に基づいて、ACKが必要か否かの判定を行う。転送管理部206は、ACKが必要である場合、ステップS1003へ進み、不要である場合、ステップS1004へ進む。
ステップS1003において、転送管理部206は、テンポラリマップの設定を行い、ステップS1004へ進む。なお、ステップS1003における転送管理部206の処理の詳細は、後述する。
ステップS1004において、転送管理部206は、iと、kとを比較する。転送管理部206は、iがkより小さい場合、ステップS1005へ進み、iがkより小さくない場合、ステップS1003へ進む。
ステップS1005において、転送管理部206は、特性類似判定を行う。特性類似判定とは、二つの伝送マップの周波数特性的な類似性を定量的に判断する処理である。なお、ステップS1005における、転送管理部206の処理の詳細は、後述する。転送管理部206は、ステップS1005において、特性類似判定を行った後、ステップS1006へ進む。
ステップS1006において、転送管理部206は、ステップS1005で行った特性類似判定処理の結果を判定する。転送管理部206は、ステップS1005の結果がTRUEであればステップS1008へ進み、FALSEであればステップS1007の処理へ進む。
ステップS1007において、転送管理部206は、パラメータiを1インクリメントし、ステップS1004の処理へ戻る。
ステップS1008において、転送管理部206は、同報マップの設定を行う。同報マップの設定とは、登録済みのテンポラリマップ、またはテンポラリマップに付随する情報を更新する処理である。なお、ステップS1008における転送管理部206の処理の詳細は、後述する。
ステップS1009において、転送管理部206は、テンポラリマップの並び替えを行い、ステップS506へ進む。ステップS1009における転送管理部206の処理の詳細は、後述する。
図10Bは、ステップS1003の詳細な動作を説明する図である。
ステップS1021において、転送管理部206は、引数として与えられた伝送マップを、テンポラリマップ(x)へ登録する。
ステップS1022において、転送管理部206は、マルチキャストアドレスグループ転送ポリシー705を更新する。まず、転送管理部206は転送ポリシー設定721を「有」に更新し、登録テンポラリマップ数722を1インクリメントする。そして、転送管理部206は、登録テンポラリマップ数722に対応する伝送情報723に、テンポラリマップ番号x、伝送性能、帯域予約情報、リンク情報を記載する。
転送管理部206は、ステップS1023において、グローバル変数xを1インクリメントする。
図10Cは、ステップS1005の詳細な動作を説明する図である。
ステップS1031において、転送管理部206は、転送管理部206に引数として与えられた伝送マップpと伝送マップqとの共通記載情報率を算出する。具体的には、転送管理部206が、サブキャリアごとの伝送マップpの情報記載総数に対する共通情報記載総数の割合をすべてのサブキャリアにおいて求め、その総合値を指標とする。
ステップS1031で算出する共通記載情報率は、2つ以上のサブキャリアをグループ化したサブキャリアグループを1つの単位として算出してもよい。具体的には、全てのサブキャリアのそれぞれを予め1つ以上のサブキャリアグループにグループ化し、それぞれのサブキャリアグループに含まれるサブキャリアの情報記載総数を、全てのサブキャリアグループに関して求める。そして、求めたサブキャリアグループの情報記載総数を前述のサブキャリアの情報記載数として、サブキャリアグループごとの情報記載総数に対する共通情報記載総数の割合を全てのサブキャリアグループにおいて求め、その総合値を指標としてもよい。ここで、サブキャリアグループの情報記載総数とは、当該サブキャリアグループに含まれる全てのサブキャリアの情報記載総数の総和である。尚、2つ以上のサブキャリアをグループ化する方法は、周波数軸上で隣り合う複数のサブキャリアをグループ化するなどの方法が考えられる。
なお、各サブキャリアグループに含まれるサブキャリアの数は、サブキャリアグループ毎に異なってもよいし、全てのサブキャリアグループで同じ数に統一してもよい。
ステップS1032において、転送管理部206は、ステップS1031において算出した共通記載情報率を、閾値(THR)と比較する。転送管理部206は、共通記載情報率が閾値THRより小さい場合には、TRUEを返し、共通記載情報率が閾値THRより小さくない場合には、FALSEを返す。閾値(THR)は、予め定められていても良いし、場合に応じて動的に設定されても良い。
図10Dは、ステップS1008の詳細な動作を説明する図である。
ステップS1041において、転送管理部206は、引数で与えられたテンポラリマップと伝送マップから、各サブキャリアの論理積を算出して同報マップを作成する。転送管理部206は、ステップS1041において、論理積を算出する方法だけでなく、誤り訂正の強度が高ければ記載情報量を1ビットずつ追加する方法や、パケット種別704でACKを要さない場合は記載情報量を1ビットずつ少なくする方法またはパケット種別704を高い欠損補償レベルに設定して、記載情報量を1ビットずつ少なくする方法などを用いてもよい。
ステップS1042において、転送管理部206は、引数iによって指定されるテンポラリマップ(i)を、ステップS1041で作成した同報マップに更新する。
図10Eは、ステップS1009における転送管理部206の詳細な動作を説明する図である。
ステップS1051において、転送管理部206は、マルチキャストアドレスグループの伝送情報723に含まれる伝送性能を参照して、伝送情報723を昇順に並び替える。伝送性能とは、登録されているテンポラリマップの伝送可能な情報量または誤り訂正強度に、畳み込み符号、RS符号およびACK等の冗長情報を考慮した、実質的な伝送可能情報量に相当する値である。伝送情報723を並び替える順番は、昇順でなくてもよい。
転送管理部206は、ステップ1051を終了すると、図10Aで示すステップS1009に戻る。
以上に本発明における端末装置100が備えている機能の説明を記述した。以下においては、上記の説明に基づいて、ホストが端末装置100によって構成されているネットワークへ、IPマルチキャストパケット転送要求したときの端末装置100の動作を、図8、図9および図10A〜図10Eを再度参照しながら、順を追って具体的に説明する。なお、ホスト111〜ホスト119は、IGMPプロトコルv2以上の実装が行われているものとしている。
<1−1.端末装置(A)の処理:転送ポリシーの新規作成>
端末装置(A)の制御処理部204は、ホスト111から、マルチキャストグループアドレスGAを宛先としたIPマルチキャストパケットを受信する。このIPマルチキャストパケットのパケット種別は「電話音声」であるとする。端末装置(A)の制御処理部204は、ネットワーク103からマルチキャストパケットの転送要求を受けると、図8に示すフローチャートに従って処理を進める。
制御処理部204は、ステップS402において、マルチキャストグループアドレスGAに関するグループ管理情報701があるか否かを判断する。制御処理部204は、グループ管理情報701がないのでステップS404へ進む。
制御処理部204は、ステップS404においてグループ管理情報701がないので、ステップS405へ進む。
制御処理部204は、ステップS405において、マルチキャストグループアドレスGAに関するグループ管理情報701を作成する。制御処理部204は、グループアドレス702にGAと記載し、転送可否フラグ703には「許可」と記載し、パケット種別704には「電話音声」と記載して、グループ管理情報701を作成する。
転送可否フラグ703は、グループ管理情報が生成されるときに、デフォルトで「許可」と設定される。パケット種別704は、予めイーサネットパケットを生成するホスト上のアプリケーションとの取り決めによって、イーサネットパケットのToS領域に記載されている情報に基づいて判断される。マルチキャストアドレスグループ転送ポリシー705は、「未設定」である。さらに、制御処理部204は、IGMP(MLD)JOIN待ちタイマTAを起動する。
制御処理部204は、ステップS406において、グループ管理情報701に含まれる、パケット種別704を確認し、必要があれば更新する。
制御処理部204は、ステップS407において、ネットワーク103から受信したマルチキャストパケットをダイバシチモードのブロードキャストでネットワーク101へ転送することを設定する。
マルチキャストグループGに対応するIPマルチキャストパケットは、ネットワーク101において、ブロードキャストされるため、ホスト112〜119の全てに到達する。
マルチキャストグループGに対応するIPマルチキャストパケットを受けたホストのうち、このグループに対応するIPマルチキャストパケットを受信したいアプリケーションを稼動しているホスト(以後、グループに属するホストという)は、ホスト112、115、116、118および119である。
これらのホストは、IGMPプロトコルにしたがって、マルチキャストアドレスGAを宛先としたIGMP JOINメッセージMJをイーサネットパケットとして発行する。ここでは、一例として、ホスト115がIGMP JOINメッセージを発行した場合を想定する。
端末装置(D)の制御処理部204は、IGMP JOINメッセージをネットワーク103から受信し、図8に示す処理を実行する。初めてグループアドレスGAに属するマルチキャストパケットをネットワーク103から受けるので、端末装置(D)の制御処理部204は、ステップS405に進み、グループ管理情報701を作成し、IGMP JOIN待ちタイマTDを起動する。
端末装置(D)の制御処理部204は、マルチキャストグループアドレス702を「GA」、転送可否フラグ703を「許可」、パケット種別704を「制御」にそれぞれ設定してグループ管理情報701を作成する。本実施の形態では、IGMPメッセージのパケット種別704は、「制御」として予め定義されている。端末装置(D)は受信したIGMP JOINメッセージMJをネットワーク101へ、ダイバシチモードでブロードキャスト送信する。
端末装置(A)は、ホスト115が発行したIGMP JOINメッセージMJを、ネットワーク101を介して端末装置(D)から受信する。したがって、端末装置(A)の制御処理部204は、図9に示す処理を実行する。
再度図9を参照して、端末装置(A)の制御処理部204の処理を説明する。端末装置(A)の制御処理部204は、ステップS502において、受信したメッセージがIGMP JOINメッセージであるので、ステップS503へ進む。
端末装置(A)の制御処理部204は、ステップS503において、すでにグループ管理情報701を作成しているので、“YES”と判断して、ステップS504へ進む。
端末装置(A)の制御処理部204は、ステップS504において、IGMP JOIN待ちタイマTAを停止し、ステップS505へ進む。
端末装置(A)の制御処理部204は、ステップS505において、マルチキャストアドレスGAに対応するマルチキャストアドレスグループ転送ポリシー705を設定する。端末装置(A)の制御処理部204は、図10Aに示す処理をし、マルチキャスト転送ポリシーを設定する。
再度図10Aを参照して、端末装置(A)の制御処理部204が、マルチキャストアドレスグループ転送ポリシー705を設定する動作を説明する。
端末装置(A)の制御処理部204は、ステップS1001において、このマルチキャストアドレスGAに対して登録されているテンポラリマップ数を設定する。端末装置(A)の制御処理部204はテンポラリマップの登録を行っていないので、kは、0である。xは、テンポラリマップの識別子である。端末装置(A)の制御処理部204は、テンポラリマップがひとつも無いので、xは、0である。さらに、ローカル変数として使用するiは、0で初期化するものとする。
端末装置(A)の制御処理部204は、ステップS1002において、パケット種別704を参照する。パケット種別704は、「電話音声」である。図6によれば、「電話音声」の欠損保証レベルは、1であり、ACKを要さないことが規定されている。したがって、端末装置(A)の制御処理部204は、ステップS1002において、“NO”と判断し、ステップS1004へ進む。
端末装置(A)の制御処理部204は、ステップS1004において、iとkとが0であるので、“NO”と判断し、ステップS1003へ進む。
再度図10Bを参照して、端末装置(A)の制御処理部204の動作を説明する。端末装置(A)の制御処理部204は、ステップS1021において、テンポラリマップに、適用する伝送マップを対応させる。端末装置(A)の制御処理部204は、端末装置(D)に対するマルチキャストアドレスグループ転送ポリシー705を設定するので、図5に示すリンクIIに該当する伝送マップ302をテンポラリマップに代入する。端末装置(A)の制御処理部204は、xの値が0であるので、端末装置(D)に対するテンポラリマップをテンポラリマップ(0)とする。
端末装置(A)の制御処理部204は、ステップS1022において、転送ポリシー設定721を「有」に、テンポラリマップ数を1に設定し、伝送情報323#1のテンポラリマップ番号xを0に設定し、伝送性能をリンクIIの伝送性能C2(=456)を設定し、帯域予約情報を記録して、マルチキャストアドレスグループGAのマルチキャストアドレスグループ転送ポリシー705を設定する。
端末装置(A)の制御処理部204は、帯域予約情報を、以下に説明する仕組みによって決定する。リンク情報には、ネットワーク101におけるどの端末宛なのかを特定する情報が記載されている。この場合は、リンクIIの情報(端末装置(D)の識別子、およびホスト116の識別子)を記載する。
端末装置(A)の制御処理部204は、ステップS1023において、xは1インクリメントされて1になる。
端末装置(A)の制御処理部204は、ステップS1023の処理を終えると、ステップS1003の処理を終了し、ステップS1009に進む。
端末装置(A)の制御処理部204が登録したテンポラリマップの数は、1つしかない。したがって、端末装置(A)の制御処理部204は、テンポラリマップを並べ替えることなくステップS1009の動作を終了する。
端末装置(A)の制御処理部204は、ステップS1009の動作を終了すると、ステップS505を終了する。
以上で端末装置(A)の制御処理部204は、ステップS505において、マルチキャストアドレスグループGAに対して、テンポラリマップ(0)を登録し、テンポラリマップ(0)にリンクIIの伝送マップ302を設定した。端末装置(A)の制御処理部204は、ステップS505において、マルチキャストアドレスグループ転送ポリシー705の設定を終了する。
端末装置(A)にマルチキャストアドレスグループGAに対するマルチキャストアドレスグループ転送ポリシー705が設定されているため、今後端末装置(A)は、ネットワーク103からマルチキャストアドレスグループGAに属するマルチキャストパケットを、ネットワーク101へ転送する要求を受けた場合、マルチキャストアドレスグループGAのグループ管理情報701含まれるマルチキャストアドレスグループ転送ポリシー705にしたがって、伝送マップ302を適用して、リンクIIにパケット転送を行う。
端末装置(A)の制御処理部204は、ステップS506において、受信したメッセージMJを、ネットワーク103を通してホスト111へ渡す。
<1−2.端末装置(B)〜(C)、(E)および(F)の処理>
端末装置(D)が転送したIGMP JOINメッセージは、ネットワーク101においてブロードキャストで転送されるので、端末装置(A)以外の各端末にも到達する。ここで、必要のないIGMP JOINメッセージを受信した端末の動作を、端末装置(B)の動作を例として説明する。
端末装置(B)の制御処理部204は、端末装置(A)と同様に図9に示す処理をする。端末(B)の制御処理部204は、マルチキャストグループGに対するグループ管理情報701を作成していないので、ステップS503において“NO”と判断して、ステップS507に進む。
端末装置(B)の制御処理部204は、ステップS507において、IGMPメッセージの転送ポリシーにしたがい、端末装置(D)から転送されてきたIGMPのJOINメッセージMJを破棄する。
<2−1.端末装置(B)の処理:IGMP JOINメッセージの追加発行>
さて、マルチキャストグループGに属する他のホスト112、116、118、119も、IPマルチキャストグループGで配信されるパケットを受信または発信したいアプリケーションを稼動しているので、マルチキャストグループGに対するIGMP JOINメッセージを発行する。
例えば、ホスト115の次にホスト112がIGMP JOINメッセージMKを発行した場合を想定する。ホスト112は端末装置(B)に接続されているので、端末装置(B)は、図8に示す処理にしたがい、ホスト112が発行したIGMP JOINメッセージMKをネットワーク101へブロードキャスト送信する。
以降の端末装置(B)の動作は、ホスト115が端末装置(D)にIGMP JOINメッセージMJを送信した場合と同じ動作をする。したがって、端末装置(A)は、端末装置(B)から転送されるホスト112が発行したIGMP JOINメッセージMKを、以下に説明する動作にしたがって、ホスト111へ転送する。
<2−2.端末装置(A)の処理:リンクIの追加>
ホスト112が発行したIGMP JOINメッセージMKが、端末装置(A)に到達すると、端末装置(A)は、図9に示す処理を実行する。
端末装置(A)の制御処理部204は、ホスト115が発行したIGMP JOINメッセージMJを処理する場合と同様に、ステップS505へ進む。ステップS505の詳細な動作を示す図10Aを再度参照して、端末装置(A)の制御処理部204の動作を説明する。
端末装置(A)の制御処理部204は、ステップS1001において、iを0とする。kは、マルチキャストアドレスグループGAに対して登録されているテンポラリマップの数である。端末装置(A)は、ホスト115に対するテンポラリマップを登録しているので、kの値を1とする。端末装置(A)は、ホスト115がIGMP JOINメッセージMJを転送した時に、グローバル変数xを1に設定してある。
端末装置(A)の制御処理部204は、ステップS1002において、グループ管理情報701に含まれるパケット種別704と、図6に示す帯域予約情報テーブルとを参照して、パケット種別704に対応する欠損保証レベルを決定する。ホスト112が発行したIGMP JOINメッセージMKのパケット種別704は、ホスト115が発行したIGMP JOINメッセージMJのパケット種別704と同じ「電話音声」である。
したがって、端末装置(A)の制御処理部204は、図6に示す帯域予約情報テーブルの「電話音声」に対応する欠損保証レベルと、図7に示す欠損保証レベル規定とを対応させて、ACKが不要であると判断し、ステップS1004へ進む。
端末装置(A)の制御処理部204は、ステップS1004において、iが0、kが1であるから“YES”と判断し、ステップS1005へ進む。
端末装置(A)の制御処理部204は、ステップS1005において、図10Cに示す処理をする。端末装置(A)の制御処理部204は、ステップS1031において、現在登録されているテンポラリマップ(0)と、端末装置(A)と端末装置(B)とを結ぶリンクIの伝送マップ301との共通記載情報率を算出する。端末装置(A)の制御処理部204は、共通記載情報率を算出すると、ステップS1032に進む。
端末装置(A)の制御処理部204は、テンポラリマップ(0)として登録されている伝送マップ302と伝送マップ301との類似性をパラメータ化して比較する。端末装置(A)の制御処理部204は、ステップS1032において、算出した共通記載情報率と閾値THRとを比較する。ここでは、特性類似性の判定結果が、FALSEであると想定して、説明を続ける。
端末装置(A)の制御処理部204は、特性類似性の判定結果がFALSEであるので、ステップS1006において“NO”と判断し、ステップS1007へ進む。
端末装置(A)の制御処理部204は、ステップS1007において、iを1だけインクリメントする。端末装置(A)の制御処理部204は、ステップS1007の動作を終了すると、ステップS1004へ戻る。
端末装置(A)の制御処理部204は、ステップ1004において、iが1、kが1であるから、“NO”と判断して、ステップ1003の処理へ進む。
端末装置(A)の制御処理部204は、ステップS1003において、テンポラリマップ(1)に伝送マップ301を対応させて登録し、マルチキャストアドレスグループGAに対応するマルチキャストアドレスグループ転送ポリシー705を更新する。
端末装置(A)の制御処理部204は、ステップS1003の詳細な動作を説明する図10Bに示す処理をし、マルチキャストアドレスグループ転送ポリシー705に含まれる、登録テンポラリマップ数722を2とする。
さらに、端末装置(A)の制御処理部204は、テンポラリマップ(1)に対応する伝送情報#2に含まれるテンポラリマップ番号を1、伝送性能をリンクIの伝送性能C1の値である781、リンク情報を端末装置(A)の識別子、ホスト112の識別子を組として、マルチキャストアドレスグループ転送ポリシー705を更新する。端末装置(A)の制御処理部204は、図10Cに示す処理を終了すると、ステップS1009へ進む。
端末装置(A)の制御処理部204は、ステップS1009において、伝送情報#1と伝送情報#2とに含まれる、それぞれの伝送性能を比較し、比較した結果に基づいて伝送情報を並び替える。
端末装置(A)の制御処理部204は、図10Eに示す処理をし、伝送情報#1の伝送性能C1と伝送情報#2の伝送性能C2とを比較して、伝送性能の昇順にそれぞれの伝送情報を並び替える。伝送性能C1と伝送性能C2とは、C1>C2という関係にあるので、それぞれの伝送性能に対応する伝送情報は並び替えられない。
ステップS505において最終的に得られた登録結果は、マルチキャストアドレスグループGAに対応するマルチキャストアドレスグループ転送ポリシー705が追加される。以降は、端末装置(A)が、マルチキャストアドレスグループGAに属するマルチキャストパケットをネットワーク101へ転送する場合、マルチキャストアドレスグループGのグループ管理情報701に含まれるマルチキャストアドレスグループ転送ポリシー705にしたがって転送する。
端末装置(A)は、伝送情報#1に基づき、伝送マップ302を適用してマルチキャストパケットをリンクIIを介して端末装置(D)に転送し、続いて伝送情報#2に基づき、伝送マップ301を適用して、マルチキャストパケットをリンクIを介して端末装置(B)に転送する。
伝送情報#1および#2が含むリンク情報は、それぞれ端末装置100の識別子を1つずつ含んでいる。したがって、端末装置(A)がマルチキャストアドレスグループGAに対応するマルチキャストパケットをネットワーク103へ転送する場合、端末装置(A)はネットワーク101を介して、マルチキャストパケットを端末装置(D)と端末装置(B)とにユニキャスト送信する。
<2−3.端末装置(C)〜(F)の処理>
ホスト112から送信されたIGMP JOINメッセージMKは、端末装置(B)によってネットワーク101を介してブロードキャスト転送されるので、端末装置(A)以外の各端末にも到達する。ここで、端末装置100が、グループ管理情報701に登録しているマルチキャストグループGに属するIGMP JOINメッセージを受信した端末装置100の動作を、端末装置(D)の動作を例として説明する。
端末装置(D)は、ホスト115がIGMP JOINメッセージMJを発行したときに、マルチキャストグループGのグループ管理情報701を作成している。端末装置(D)が、端末装置(B)から送信されたIGMP JOINメッセージMKを受信した場合の処理を、図9を再度参照して説明する。
端末装置(D)は、ステップS502において、受信したメッセージがIGMP JOINメッセージなので、“YES”と判断してステップS503の処理へ進む。
端末装置(D)は、ステップS503において、受信したIGMP JOINメッセージMKが属するマルチキャストアドレスグループGAのグループ管理情報701を有しているので、“YES”と判断して、ステップS504の処理に進む。
端末装置(D)は、ステップS504において、IGMP JOIN待ちタイマTDを停止し、ステップS505の処理に進む。
端末装置(D)は、ステップS505に進むと図10Aに示す処理をする。端末装置(D)は、ステップS1001において、ローカル変数iを0とし、xを1、kを1として、ステップS1002の処理に進む。
IGMP JOINメッセージのパケット種別は「制御」である。したがって、端末装置(D)は、ステップS1002において、図6に示す帯域予約情報テーブルとパケット種別404とを対応させて、伝送品質指定なしと判断する。伝送品質指定がないので端末(D)は帯域予約処理を行わない。
さらに、端末装置(D)は、図6を参照して、IGMP JOINメッセージの欠損保証レベルをレベル7と判定し、すべての端末に対してマルチキャストパケットをユニキャスト送信するマルチキャストアドレスグループ転送ポリシー705を適用する。
このために、端末装置(D)は、端末装置(A)、端末装置(B)、端末装置(C)、端末装置(E)、端末装置(F)へ、各リンクの伝送マップを設定して、マルチキャストアドレスグループ転送ポリシー705を準備する。これは、端末装置(D)が、ネットワークに接続している端末装置100のすべてを対象に、図10Aに示す処理をすれば、作成できる。
<3.端末装置(A)の処理:同報マップの作成>
次に、端末装置100が、図10CのステップS1032において、共通記載情報率と閾値THRとを比較し、比較した結果がTRUEの場合の端末装置100の動作を、図1に示すホスト119がIGMP JOINメッセージMLを発行した場合を例として説明する。
端末装置(F)は、ホスト119が発行したIGMP JOINメッセージMLを、ネットワーク101を介してブロードキャスト送信し、端末装置(A)に転送する。端末装置(A)が、ホスト119が発行したIGMP JOINメッセージMLを受信した場合の処理を、図9を再度参照して説明する。
端末装置(A)は、IGMP JOINメッセージMJを受信したときの処理と同様に、ステップS505へ進む。端末装置(A)は、ステップS505において、図10Aに示す処理を実行する。
端末装置(A)は、ステップS1001において、変数iを0とする。kは、マルチキャストアドレスグループGAに対して登録されているテンポラリマップ数722の数である。端末装置(A)は、ホスト115に対するテンポラリマップと、ホスト112に対するテンポラリマップとを登録しているので、kの値を2とする。端末装置(A)は、ホスト112がIGMP JOINメッセージMKを転送した時に、グローバル変数xは、2に設定されている。
端末装置(A)の制御処理部204は、ステップS1002において、グループ管理情報701に含まれるパケット種別704と、図6に示す帯域予約情報テーブルとを参照して、パケット種別704に対応する欠損保証レベルを決定する。ホスト119が発行したIGMP JOINメッセージMLのパケット種別704は、ホスト115が発行したIGMP JOINメッセージMJのパケット種別704と同じ「電話音声」である。
したがって、端末装置(A)の制御処理部204は、図6に示す帯域予約情報テーブルの「電話音声」に対応する欠損保証レベルと、図7に示す欠損保証レベル規定とを対応させて、ACKが不要であると判断し、ステップS1004へ進む。
端末装置(A)は、ステップS1004において、iが0、kが2であるから“YES”と判断し、ステップS1005へ進む。
端末装置(A)は、ステップS1005において、図10Cに示す処理を実行する。端末装置(A)は、ステップS1031において、テンポラリマップ(0)と、端末装置(A)と端末装置(F)とを結ぶリンクIVの伝送マップ304との共通記載情報率を算出する。端末装置(A)の制御処理部204は、共通記載情報率を算出し、ステップS1032に進む。
端末装置(A)は、テンポラリマップ(0)として登録されている伝送マップ302と伝送マップ304との類似性をパラメータ化して比較する。端末装置(A)は、ステップS1032において、算出した共通記載情報率と、閾値THRとを比較する。ここでは、共通記載情報率<THRであり、特性類似性の判定結果が、FALSEである場合を想定して、説明を続ける。
端末装置(A)の制御処理部204は、特性類似性の判定結果がFALSEであるので、ステップS1006において“NO”と判断し、ステップS1007の動作へ進む。
端末装置(A)の制御処理部204は、ステップS1007において、iを1だけインクリメントする。端末装置(A)の制御処理部204は、ステップS1007の動作を終了すると、ステップS1004の処理へ戻る。
端末装置(A)の制御処理部204は、ステップS1004において、iが1、kが2であるから、“YES”と判断して、ステップS1005の処理へ進む。
端末装置(A)は、ステップS1005において、再度図10Cに示す処理を実行する。端末装置(A)は、ステップS1031において、テンポラリマップ(1)と、端末装置(A)と端末装置(F)とを結ぶリンクIVの伝送マップ304との共通記載情報率を算出する。端末装置(A)は、共通記載情報率を算出すると、ステップS1032の処理に進む。
端末装置(A)は、テンポラリマップ(1)として登録されている伝送マップ301と伝送マップ301との類似性をパラメータ化して比較する。端末装置(A)は、ステップS1032において、算出した共通記載情報率と閾値THRとを比較する。ここでは、特性類似性の判定結果が、TRUEであると想定して、説明を続ける。
端末装置(A)は、特性類似性の判定結果がTRUEであるので、ステップS1006において“YES”と判断し、ステップS1008へ進む。
端末装置(A)は、ステップS1008において、同報マップ設定を行う。端末装置(A)が、同報マップを設定する処理を、図10Dと図11とを併せて参照しながら説明する。
端末装置(A)は、ステップS1041において、同報マップの設定を行う。ここでは、同報マップは、ある2つの伝送マップの対応するサブキャリアの情報記載部分の論理積を算出することによって作成される。端末装置(A)は、ステップS1005で比較した伝送マップ301と、伝送マップ304とで対応するサブキャリアの情報記載部分の論理積を算出し、同報マップを作成する。つまり、伝送マップ301と、伝送マップ304とにおいて、対応するそれぞれサブキャリアの情報記載部分の論理積は、図11に示す共通情報記載部分1101となる。
端末装置(A)が、ステップS1042において更新する同報マップ1102は、図11に示す共通情報記載部分1101をそのまま適用する。または、端末装置(A)は、共通情報記載部分1101を基準として何らかの調整を加えたものを同報マップ1102として適用してもよい。
端末装置(A)は、ステップS1042において、マルチキャストアドレスグループ転送ポリシー705に登録されている伝送情報#2に対応するテンポラリマップ(1)に、端末装置(A)がステップS1041で設定した同報マップ1102を上書きする。
そして、端末装置(A)は、伝送情報#2の伝送性能を同報マップ1102の性能CX(=713)で更新し、伝送情報#2の帯域予約情報を同報マップ1102に見合ったものに更新し、伝送情報#2のリンク情報を、リンクI、端末装置(B)の識別子およびホスト112の識別子と、リンクIV、端末装置(F)の識別子およびホスト119の識別子とに更新する。
端末装置(A)の制御処理部204は、ステップS1009において、伝送情報#1と伝送情報#2とに含まれる、それぞれの伝送性能を比較して、伝送情報を並び替える。
端末装置(A)は、ステップS1009において、図10Eに示す処理をし、伝送情報#1の伝送性能C1と伝送情報#2の伝送性能CXとを比較して、伝送性能の昇順に対応する伝送情報を並び替える。伝送性能C1と伝送性能CXとは、C1>CXという関係にあるので、それぞれの伝送性能に対応する伝送情報は並び替えられない。
今後端末装置(A)は、更新した伝送情報#1および#2に基づいて、マルチキャストパケット転送する。したがって、端末装置(A)は、ネットワーク103からマルチキャストグループアドレスGAを宛先としたパケットを転送する場合、リンクIIに伝送マップ302を適用して端末装置(D)にユニキャスト送信をし、リンクIとリンクIVとに同報マップ1102を適用して端末装置(B)と端末装置(F)とに同報送信を行う。
<4.端末装置(A)の処理:登録済みリンクIIに接続されるホストの追加>
次に、端末装置100が、すでにマルチキャストアドレスグループ転送ポリシー705に登録されているリンクに含まれるホストから、IGMP JOINメッセージを転送する要求を受けた場合の動作を、ホスト116がIGMP JOINメッセージMHを発行した場合を例として説明する。
ホスト116が発行したIGMP JOINメッセージMHは、端末装置(D)を介して、ネットワーク101へブロードキャスト送信され、端末装置(A)に到達する。端末装置(A)が、端末装置(D)が転送したIGMP JOINメッセージMHを、受信すると、図9に示す処理をする。
端末装置(A)は、ホスト115が発行したIGMP JOINメッセージMJを処理する場合と同様に、ステップS505へ進む。ステップS505の詳細な動作を示す図10Aを再度参照して、端末装置(A)の動作を説明する。
端末装置(A)は、ステップS1001において、iを0とする。kは、マルチキャストアドレスグループGAに対して登録されているテンポラリマップ数722の値であるから、端末装置(A)はkの値を2とする。端末装置(A)は、ホスト112が発行したIGMP JOINメッセージMLを受信した時に、グローバル変数xを2に設定してある。
端末装置(A)は、ステップS1002において、ホスト112が発行したIGMP JOINメッセージMLを転送した時と同じ処理をし、ホスト116が発行したIGMP JOINメッセージMHが、ACKを不要とするパケット種別であると判断して、ステップS1004へ進む。
端末装置(A)の制御処理部204は、ステップS1004において、iが0、kが2であるから“YES”と判断し、ステップS1005へ進む。
端末装置(A)は、ステップS1005において、ホスト112が発行したIGMP JOINメッセージMLを転送した時と同様に図10Cに示す処理をして、特性類似判定をする。端末装置(A)は、ステップS1031において、マルチキャストアドレスグループGに対応するマルチキャストアドレスグループ転送ポリシー705に含まれるテンポラリマップ(0)と、端末装置(A)と端末装置(D)とを結ぶリンクIIの伝送マップ302との共通記載情報率を算出する。端末装置(A)は、共通記載情報率を算出すると、ステップS1032の動作に進む。
端末装置(A)は、ステップS1032において、算出した共通記載情報率と閾値THRとを比較する。ここで、テンポラリマップ(0)は伝送マップ302と等しいので、特性類似性の判定結果が、TRUEであると想定して、説明を続ける。
端末装置(A)の制御処理部204は、特性類似性の判定結果がTRUEであるので、ステップS1006において“YES”と判断し、ステップS1008へ進む。
端末装置(A)は、ステップS1008において、同報マップの設定を行う。端末装置(A)が、同報マップを設定する動作を、図10Dを再度参照し、あわせて図11を参照しながら説明する。
端末装置(A)は、ステップS1041において、同報マップの設定を行う。同報マップとは、ステップS1005で比較したテンポラリマップ(0)に相当する伝送マップ302と、伝送マップ302との対応するそれぞれのサブキャリアの情報記載部分の論理積をとったものとする。
したがって、端末装置(A)は、同じ伝送マップを比較して論理積をとるので、図11に示す共通情報記載部分1101は、伝送マップ302と同等になる。端末装置(A)は、ステップS1042において、マルチキャストアドレスグループGAに対応するマルチキャストアドレスグループ転送ポリシー705に登録されている、伝送情報#0に対応するテンポラリマップ(0)に、伝送マップ302と等しい同報マップを上書きする。
したがって、端末装置(A)が、伝送情報#1の伝送性能を伝送マップ302の伝送性能C2(=456)で更新し、伝送情報#2の帯域予約情報をそのまま維持し、伝送情報#2のリンク情報を、リンクII、端末装置(D)の識別子およびホスト115の識別子とホスト116の識別子とに更新する。したがって、端末装置(A)は、伝送情報#1に対して、ホスト116の識別子を追加する。
端末装置(A)は、ステップS1009において、図10Eに示す処理をし、伝送情報#1の伝送性能C2と伝送情報#2の伝送性能CXとを比較して、伝送性能の昇順に対応する伝送情報を並び替える。伝送性能C2と伝送性能CXとは、C2>CXという関係にあるので、それぞれの伝送性能に対応する伝送情報は並び替えられない。
端末装置(A)が、ネットワーク103からマルチキャストグループアドレスGAを宛先としたパケットを転送する要求を受ける。端末装置(A)は、伝送情報#1のリンク情報にはリンクIIのみが含まれているので、リンクIIに対して伝送マップ302を適用してユニキャスト送信をし、伝送情報#2のリンク情報にはリンクIとリンクIVとが含まれているので、リンクIとリンクIVとに対して同報マップ1102を適用して同報送信をする。
以上のように、ホスト116がIGMP JOINメッセージMHを発行したことによって、ホスト116の識別子が、端末装置(A)のマルチキャストグループGに対応するマルチキャストアドレスグループ転送ポリシー705に含まれる伝送情報#1に追加される。
<5.端末装置(A)の処理:リンクIIIの追加>
ホスト118が、IGMP JOINメッセージMMを発行したときの端末装置(A)の動作を説明する。ホスト118は端末装置(E)に接続されているので、端末装置(E)は、ホスト118が発行したIGMP JOINメッセージMMを、ネットワーク101を介してブロードキャスト送信し、端末装置(A)へ転送する。
端末装置(A)は、IGMP JOINメッセージMJを受信したときと同じ動作をし、図9に示すステップS505へ進む。端末装置(A)の動作をステップS505の詳細な処理を説明する図10Aを再度参照して説明する。
端末装置(A)は、ステップS1001において、iを0とする。kは、マルチキャストアドレスグループGAに対して登録されているテンポラリマップ数722の値であるから、端末装置(A)はkの値を2とする。端末装置(A)は、ホスト116が発行したIGMP JOINメッセージMHを受信した時に、グローバル変数xは、2に設定されている。
端末装置(A)は、ステップS1002において、ホスト112が発行したIGMP JOINメッセージMLを転送した時と同じ処理をし、ホスト118が発行したIGMP JOINメッセージMMが、ACKを不要とするパケット種別であると判断して、ステップS1104へ進む。
端末装置(A)の制御処理部204は、ステップS1004において、iが0、kが2であるから“YES”と判断し、ステップS1005へ進む。
端末装置(A)は、ステップS1005において、ホスト112が発行したIGMP JOINメッセージMLを転送したときと同様に図10Cに示す処理をして、特性類似判定をする。端末装置(A)は、ステップS1031において、マルチキャストグループGの対応するマルチキャストアドレスグループ転送ポリシー705が含む、伝送情報#1に対応するテンポラリマップ(0)と、端末装置(A)と端末装置(E)とを結ぶリンクIIIの伝送マップ303との共通記載情報率を算出する。端末装置(A)は、共通記載情報率を算出すると、ステップS1032に進む。
端末装置(A)は、ステップS1032において、算出した共通記載情報率と閾値THRとを比較する。ここで、共通記載情報率<THRであり、特性類似性判定の判定結果が、FALSEであるものと想定して、説明を続ける。
端末装置(A)の制御処理部204は、特性類似性の判定結果がFALSEであるので、ステップS1006において“NO”と判断し、ステップS1007へ進む。
端末装置(A)の制御処理部204は、ステップS1007において、iを1だけインクリメントしiを1とする。端末装置(A)は、ステップS1007の処理を終了すると、ステップS1004へ戻る。
端末装置(A)の制御処理部204は、ステップS1004において、iが1、kが2であるから、“YES”と判断して、ステップS1005へ進む。
端末装置(A)は、ステップS1005において、再度図10Cに示す処理をする。端末装置(A)は、ステップS1031において、テンポラリマップ(1)と、端末装置(A)と端末装置(E)とを結ぶリンクIIIの伝送マップ303との共通記載情報率を算出する。端末装置(A)は、共通記載情報率を算出すると、ステップS1032へ進む。
端末装置(A)は、ステップS1032において、算出した共通記載情報率と閾値THRとを比較する。ここで、共通記載情報率<THRであり、特性類似性判定の判定結果が、FALSEであると想定して、説明を続ける。
端末装置(A)の制御処理部204は、特性類似性の判定結果がFALSEであるので、ステップS1006において“NO”と判断し、ステップS1007へ進む。
端末装置(A)の制御処理部204は、ステップS1007において、iを1だけインクリメントしiを2とする。端末装置(A)は、ステップS1007の処理を終了すると、ステップS1004へ戻る。
端末装置(A)は、ステップ1004において、iが2、kが2であるから、“NO”と判断して、ステップS1003へ進む。
端末装置(A)は、ステップS1003において、テンポラリマップ(2)に伝送マップ303を代入して登録し、マルチキャストアドレスグループGAに対するマルチキャストアドレスグループ転送ポリシー705を更新する。
端末装置(A)は、ステップS1003の詳細な動作を示す図10Cの処理をし、マルチキャストアドレスグループ転送ポリシー705に含まれる登録テンポラリマップ数722を3とする。
さらに、端末装置(A)は、テンポラリマップ(2)に対応する伝送情報#3に含まれるテンポラリマップ番号を2、伝送性能をリンクIIIの伝送性能C3の値である485、リンク情報を端末装置(E)の識別子と、ホスト118の識別子との組として伝送情報#3に登録する。さらに、伝送情報#3の帯域予約情報を伝送マップ303に見合ったものに更新する。
端末装置(A)は、ステップS1009において、伝送情報#1〜伝送情報#3のそれぞれの伝送性能を比較して、伝送情報を昇順に並べ替える。
伝送情報#1の伝送性能C1は456である。伝送情報#2の伝送性能CXは713である。伝送情報#3の伝送性能C3は485である。したがって、端末装置(A)は、ステップS1009において、伝送情報#2および伝送情報#3を並べ替える。
端末装置(A)が、マルチキャストグループGに属するマルチキャストパケットを稼働しているホストの全てからIGMP JOINメッセージを受信した。したがって、端末装置(A)は、マルチキャストアドレスグループGAに対応するグループ管理情報を、図12示すグループ管理情報3001に設定する。
グループ管理情報3001が含む情報は、IPマルチキャストアドレスグループはGA、転送可否フラグは「許可」、パケット種別は「電話音声」、転送ポリシー設定は「有」、登録テンポラリマップ数は「3」である。さらに、伝送情報#1は、テンポラリマップ番号0、伝送性能456、リンク情報はリンクII、リンクIIの帯域予約情報を含む。伝送情報#2は、テンポラリマップ番号2、伝送性能485、リンク情報はリンクIII、リンクIIIの帯域予約情報を含む。伝送情報#3は、テンポラリマップ番号1、伝送性能713、リンク情報はリンクIおよびリンクIV、リンクIおよびリンクIVの帯域予約情報となる。
したがって、端末装置(A)が、ネットワーク103から、マルチキャストグループアドレスGAを宛先としたパケットを転送する要求を受けると、端末装置(A)は、リンクIIに対してテンポラリマップ(0)を適用してユニキャスト送信し、リンクIIIに対してテンポラリマップ(2)を適用してユニキャスト送信し、リンクI・リンクIVに対してテンポラリマップ(1)を適用して同報送信する。したがって、端末装置(A)は、ネットワーク103から受信したマルチキャストパケットを3つのパケットに複製し、ネットワーク101のフレームフォーマットに適応させて、マルチキャストパケットを3回発行する。
なお、端末装置(A)が、発行するマルチキャストパケットの発行順序は、伝送情報に記載している伝送性能の大きなものから順に行う。伝送性能が大きなリンクおよび同報リンクは、伝送路の伝送特性が良好であるので伝送遅延が生じにくい。
端末装置(A)が伝送路特性が良好なリンクおよび同報リンクから順番にフレーム発行処理を行うことで、他のリンクへの不必要な遅延を生じないようにする効果が期待できる。
端末装置(A)が、マルチキャストパケットを発行する順序は、ACKを要さないリンクまたは同報リンクを優先したり、同報リンクよりもユニキャストリンクを優先したり、宛先とする端末装置の多い同報リンクよりも、宛先とする端末装置の少ない同報リンクを優先してもよい。端末装置(A)が、フレーム発行順序を考慮することで、伝送遅延等による伝送品質の劣化を抑える効果が期待できる。
なお、以上の説明において帯域予約情報の内容を具体的に明示していないが、例えば、帯域を占有して使用できる時間区間に確実に発信できるように別途送信バッファ等を、端末装置100が、準備して、その送信バッファ識別子を帯域予約情報とする方法が考えられる。さらに、帯域予約情報は、ネットワーク101を伝わるフレーム毎のネットワーク103のパケットの最大積載数や、パケットの有効時間などといった情報によって構成されていてよい。
ここで、更なる追加機能について説明する。
上述した、端末装置(A)の制御処理部204が、ステップS507において、受信したIGMP(MLD)メッセージを転送するかまたは破棄するかの判断の基準を、以下に説明する。
IGMP(MLD)プロトコルでは、あるマルチキャストグループに対して送信される1つのQUERYメッセージに対して、当該マルチキャストグループに所属している端末の内いずれか一台が、IGMP(MLD)QUERYメッセージの発行元の装置にIGMP(MLD)REPORTメッセージを発行すればよいことが規定されている。
例えば、ネットワークに接続されているあるマルチキャストグループに属するホストに対して、定期的にIGMP(MLD)QUERYメッセージの発行を行っている場合を想定する。このとき、IGMP(MLD)QUERYメッセージに対するIGMP(MLD)REPORTメッセージを、端末装置100が破棄することによって、端末装置100に接続されたホストの内、当該グループに属するホストが必ずIGMP(MLD)レポートメッセージを発行する。
したがって、端末装置100が、IGMP(MLD)QUERYメッセージの発行元に対するIGMP(MLD)REPORTメッセージを遮断すると、グループに所属している全てのホストが、ネットワーク103で接続された端末装置100に、IGMP(MLD)REPORTメッセージを転送する。グループに所属している全てのホストが、ネットワーク103で接続された端末装置100に、IGMP(MLD)REPORTメッセージを転送することは、ステップS505において、必要な転送リンクを把握する上で、効果的に働く。
端末装置100は、IGMP(MLD)QUERYメッセージをすべての端末装置100に確実に転送するために、IGMP(MLD)QUERYメッセージをユニキャストで送信する転送ポリシーを適用してもよい。ユニキャスト転送においては、ACKを受けることが容易なので、この転送ポリシーを適用すれば、端末装置100がフレーム欠損などによる再送の必要性を把握することができる。したがって、IGMP(MLD)QUERYメッセージを、より確実に転送するという点で保証の度合いを高めることができる。なお、制御処理部204が、ステップS507において、適用するIGMP(MLD)メッセージのマルチキャストアドレスグループ転送ポリシー705は、これらに限るものではない。
図13は、以上の方法を実施するために、ホスト111と端末装置(A)との間に、IGMP(MLD)QUERYメッセージを定期的に発行するマルチキャストルータ機能を備えたホストを設置したシステムを示す図である。
図13において、マルチキャストルータ1301は、ホスト111と端末装置(A)の間に設置されていると想定する。マルチキャストルータ1301は、端末装置(A)が接続されたポートに対して、ホスト111が発行するマルチキャストグループGに属するIGMP(MLD)QUERYメッセージを定期的に発行する。
IGMPの仕様では、当該マルチキャストアドレスグループに属するホストは、当該マルチキャストアドレスグループのIGMP(MLD)QUERYメッセージに対して、IGMP(MLD)REPORTメッセージを発行する。
あるホストが、同じサブネットワークに属するホストのIGMP(MLD)REPORTメッセージの発行を検知した場合、IGMP(MLD)REPORTメッセージの発行は行わない。換言すれば、他の端末がIGMP(MLD)REPORTメッセージの発行を検知できなければ、IGMP(MLD)REPORTメッセージを発行することになる。
上記の方法によって、端末装置(A)以外の端末装置100が、ネットワーク101の外へIGMP(MLD)REPORTメッセージを転送しない仕組みが出来上がる。したがって、マルチキャストグループGに属するすべての端末装置接続単位の受信ホスト(ホスト112、ホスト115またはホスト116、ホスト118、ホスト119)がIGMP(MLD)REPORTメッセージを発行し、IGMP(MLD)REPORTメッセージが端末装置100(A)に到達する。
ここで、ホスト115とホスト116は、端末装置(D)に接続された同じネットワーク103に属しているため、ホスト115かホスト116のどちらかがIGMP(MLD)REPORTメッセージを発行すれば、発行しなかったホストは発行を行わない。
端末装置(A)は、こうしたIGMP(MLD)REPORTメッセージを管理しておけば、ホストが当該マルチキャストアドレスグループGから脱退した場合も、端末装置(A)がIGMP(MLD)QUERYメッセージの発行周期の精度で、ホストが当該マルチキャストアドレスグループGから脱退したことを把握することができ、ネットワーク101のトラフィックを無駄に増大させない仕組みを実現できる。
ここで、明示的にホストのメンバシップ脱退を通知するメッセージが、IGMPver.2以上においてIGMP(MLD)LEAVEメッセージとして定義されており、本発明において同じ目的の実現にこのメッセージを利用した方法がある。この方法については後述する。
以上の方法によれば、IGMP(MLD)LEAVEメッセージが定義されていないIGMPver.1に準拠しているホストであっても、ホストの脱退を端末装置(A)で把握できる。なお、図1に示すマルチキャストデータサーバであるホスト111が、マルチキャストルータ機能を有していても同様である。
本発明における端末装置100は、マルチキャストアドレスグループから脱退するためにIGMP LEAVEメッセージを発行するホストを想定し、さらに以下のような仕組みを備えていてもよい。
以下に、図14A〜図14Cを参照しながら、IGMP LEAVEメッセージを発行するホストを想定した場合における端末装置100の処理を説明する。図14A〜図14Cにおいては、ホスト119が、マルチキャストグループGから脱退するためにIGMP LEAVEメッセージMNを発行する例を説明する。
図14Aは、IGMP LEAVEメッセージの処理を含むフローチャートである。図14Aに示されるフローチャートは、図9に示されるフローチャートにステップS1401が追加されたものである。
端末装置(A)が、IGMP LEAVEメッセージを処理する動作を図14Bを参照して説明する。端末装置(A)は、ステップS1402において、他の端末装置100から転送されたマルチキャストパケットがIGMP LEAVEメッセージか否かを判定する。端末装置(A)はIGMP LEAVEメッセージであればステップS1403へ進み、IGMP LEAVEメッセージでなければ処理を終了する。
端末装置(A)は、ステップS1403において、グループ管理情報701が作成されているか否かの判定を行う。ここで、マルチキャストグループアドレスGAに対するグループ管理情報701がない場合、端末装置(A)は処理を終了し、グループ管理情報がある場合、端末装置(A)は、ステップS1404へ進む。
端末装置(A)は、ステップS1404において、マルチキャストグループアドレスのグループ管理情報701を更新する。
図14Cは、ステップS1404の詳細な動作を説明する図である。端末装置(A)は、ステップS1411において、IGMP LEAVEメッセージMNを発行したホスト119のホスト識別子と、IGMP LEAVEメッセージMNを転送したネットワーク101における端末装置(F)の端末識別子とを参照して、発行ホスト識別子をマルチキャストグループGに対応するグループ管理情報701から検索する。端末装置(A)は、検索を終了するとステップS1412の処理へ進む。
端末装置(A)は、ステップS1412において、ステップS1411で一致するホスト識別子が見つかったか否かを判断する。端末装置(A)は、ステップS1411において、一致するホスト識別子が見つからない場合は処理を終了し、見つかった場合はステップS1413へ進む。
端末装置(A)は、ステップS1413において、ホスト119の識別子を含む伝送情報から、ホスト119に対応するホスト識別子を削除する。端末装置(A)は、ホスト識別子を削除すると、ステップS1414へ進む。
端末装置(A)は、ステップS1414において、ホスト119のホスト識別子以外にホスト識別子が伝送情報に含まれているか否かを判断する。端末装置(A)は、伝送情報に、他のホスト識別子がなければ、ステップS1415へ進み、他のホスト識別子がある場合は処理を終了する。
端末装置(A)は、ステップS1415において、ホスト識別子を含まない伝送情報を削除し、登録テンポラリマップ数を1デクリメントする。端末装置(A)は、登録テンポラリマップ数を1デクリメントすると、ステップS1416へ進む。
端末装置(A)は、ステップS1416において、グループ管理情報に対応する登録テンポラリマップ数が0か否かを判断する。端末装置(A)は、登録テンポラリマップ数が0と判断すると、ステップS1417の処理へ進み、登録テンポラリマップ数が0でないと判断すると、処理を終了する。
端末装置(A)は、ステップS1417において、テンポラリマップが登録されていないグループ管理情報を削除する。端末装置(A)は、グループ管理情報を削除すると、図14Cに示す処理を終了し、図14Aに示すステップS504へ進む。
<6.端末装置(A)の処理:ホスト116の識別子の削除>
ここで、図14に示す制御処理部204の処理を具体的に説明するために、ホスト116が、マルチキャストアドレスGAにIGMP LEAVEメッセージMPを発行し、マルチキャストグループGからの脱退を行う場合を説明する。ホスト116は端末装置(D)に接続されているので、端末装置(D)が、ホスト116が発行したIGMP LEAVEメッセージMPを端末装置(A)に転送する。
端末装置(A)の制御処理部204は、端末装置(D)が転送したIGMP LEAVEメッセージMPを受信すると、図14Aに示す処理をする。端末装置(A)は、ステップS502において、受信したメッセージがIGMP LEAVEメッセージMPであるので、ステップS1401へ進む。
再度図14Bを参照し、端末装置(A)の処理を説明する。端末装置(A)の制御処理部204は、ステップS1402において、受信したメッセージがIGMP LEAVEメッセージか否かを判断する。端末装置(A)は、ステップS1402において、受信したメッセージがIGMP LEAVEメッセージなので“YES”と判断して、ステップS1403へ進む。
端末装置(A)の制御処理部204は、ステップS1403において、マルチキャストグループアドレスGAに対応するグループ管理情報701が作られているか否かを判断する。端末装置(A)は、ステップS1403において、マルチキャストグループアドレスGAに対応するグループ管理情報が作られているので“YES”と判断して、ステップS1404へ進む。
再度図14Cを参照し、端末装置(A)の動作を説明する。端末装置(A)の制御処理部204は、ステップS1411において、マルチキャストアドレスグループGAに対応するグループ管理情報から端末装置(D)の端末識別子と、ホスト116のホスト識別子を検索する。端末装置(A)は、検索が終了するとステップS1412へ進む。
端末装置(A)の制御処理部204は、ステップS1412において、マルチキャストアドレスグループGAに対応するグループ管理情報701に、端末装置(D)の端末識別子と、ホスト116のホスト識別子が登録されているので、“Yes(2008/08/19修正後の図面に対応→※箇所も同様)”と判断してステップS1413へ進む。
端末装置(A)の制御処理部204は、ステップS1413において、ホスト116のホスト識別子の削除を行う。具体的には、図13に示す伝送情報#1のリンク情報からホスト116の識別子を削除する。端末装置(A)は、ホスト識別子を削除すると、ステップS1414の処理へ進む。
端末装置(A)の制御処理部204は、ステップS1414において、伝送情報#1に削除したホスト116のホスト識別子以外のホスト識別子が、記録されているか否かを判断する。伝送情報#1には、ホスト115の識別子が残っているので、“Yes※”と判断して、図14Cに示す処理を終了する。この機能によって、端末装置(A)の制御処理部204は、マルチキャストパケットを転送する必要がないホストを判断して、無駄なマルチキャストパケットの送信をすることがないので、ネットワーク101における不必要なトラフィックの増大を避けることができる。
なお、端末装置(A)の制御処理部204は、ステップS1413において、ネットワーク101におけるリンクを削除した場合に、ステップS1414のタイミングで、伝送情報で示されるリンクに対して、伝送路推定機構を起動してもよい。
仮に、ホスト119がIGMP LEAVEメッセージを発行してマルチキャストグループGからの脱退を行うと、制御処理部204が、ステップS1413を終了したときに、伝送情報#3のリンク情報は、リンクIに対応するホスト112の識別子のみを含む。しかしながら、伝送情報#3に記載のテンポラリマップは、リンクIとリンクIVとの同報マップである。したがって、ホスト119のホスト識別子が削除された後は、本来、同報マップにリンクIVの伝送マップを考慮する必要はない。
そこで、端末装置(A)の制御処理部204が、リンクIを対象に伝送路推定を行うことによって、より効率的な転送を実現することができる。なお、こうした機能を備えるだけでなく、例えば端末装置(A)が、伝送情報ごとに定期的に伝送路推定機構を起動する仕組みを備える場合においても、ネットワーク101のトラフィックは、効果的に低減される。
上述した方法によれば、端末装置100は、マルチキャストパケットをネットワーク101を介して転送する際に、ネットワーク101において帯域保証等のQoS(Quality of Service)を実現することができる。また、本発明に係る端末装置100は、以下に説明する、自動的に帯域予約調整を行う機能を備えていてもよい。
本実施の形態における端末装置100が備えている外部インタフェース処理部203は、マルチキャストアドレスグループごとに、外部インタフェース処理部203へ入力されるパケットレートを監視および測定する機能と、グループ管理情報701に含まれているマルチキャストアドレスグループの帯域予約の内容と、ネットワーク103から入力されるパケットレートとを比較し、比較した結果がある閾値を超えたかどうかを判定する機能とを有する。
ここで仮に、ネットワーク101に対する帯域予約の内容と、ネットワーク103から入力されるパケットレートとを比較した結果が、ある閾値を超える場合に、外部インタフェース処理部203が、制御処理部204を通じて、帯域予約管理部207に対して帯域予約調整を再び行うようにイベントを発生させる。
帯域予約管理部207が行う調整の内容は、外部インタフェース処理部203が監視および測定したパケットレートに基づくものであってよい。この仕組によって、端末装置100が、帯域予約による伝送品質を、ネットワーク103から受信しているパケットレートに、追従させることが可能となる。
したがって、端末装置100が、転送するべきパケットが入力されない場合の帯域予約によって占有されている帯域の浪費や、実際のパケットレートに対して帯域予約によって占有されている帯域が足りていないことによる、伝送品質の低下を防ぐことができ、自動的に高品質な伝送システムを実現することが可能である。
更に、端末装置100は、ホスト118上で、配信型AVコンテンツを受信している場合に、ユーザによるチャンネルザッピングによって、頻繁にマルチキャストアドレスグループが変更されるような場合に、自動的な帯域予約を過負荷になることなく実現するために、以下に説明する動作をしてもよい。
端末装置100が、マルチキャストグループGに対応するグループ管理情報701と、マルチキャストグループFに対応するグループ管理情報701とを管理している場合を想定する。
ここで、マルチキャストグループGに対応するホスト118が、マルチキャストグループFに属するIGMP JOINメッセージを発行する。端末装置(A)は、ホスト118をマルチキャストグループGに対応するグループ管理情報においてリンクIIIと対応させて管理している。
端末装置(A)は、ホスト118が発行するマルチキャストグループGに対するIGMP LEAVEメッセージを検知しなくとも、マルチキャストグループGに対応するリンクIIIの帯域予約を解放する。
端末装置(A)は、マルチキャストグループGに対応するリンクIIIの帯域予約を解放した後、マルチキャストグループFに対応するリンクIIIの帯域予約をするか、またはマルチキャストグループGに関わるリンクIIIの予約帯域を、そのままマルチキャストグループFに関わるリンクIIIへと予約帯域へ移行する。
このように、あるホストのマルチキャストアドレスグループが頻繁に変更される場合でも、端末装置(A)が上記の動作を行うことで、自動的な帯域予約を過負荷になることなく実現できる。なお、ここではホストの識別子を判断材料とする例を記したが、アプリケーション識別子(IPプロトコルではポート番号など)やその他の情報を判断材料としてもよい。
以上に、第1の実施形態に係る端末装置100の処理を説明した。第1の実施形態に係る端末装置100は、図9に示すステップS503の処理を終了した後に、以下に説明する帯域保証を行ってから、ステップS504の処理へ進んでもよい。
帯域保証とは、制御端末によってネットワーク101のメディアアクセスを制御するような集中制御メディアアクセス方式において、例えばTDMA方式のように、制御端末が、パケットの送信を許可する時間を割り振り、メディアを送信端末に優先的に割り当てる方法あり、確実にデータ伝送の品質保証を行うことができる仕組みのことである。
上記の帯域予約機構は、帯域予約を管理する制御端末との通信を別途必要とし、この手続きは帯域予約管理部207が主体となって実現する。以下に、帯域予約管理部207が帯域保証する処理を説明する。
帯域予約管理部207は、マルチキャストアドレスグループGAに関するグループ管理情報701に含まれるパケット種別704と、ベンダが予め準備するパケット種別ごとの帯域予約情報テーブル(図6参照)とを参照する。
帯域予約管理部207は、パケット種別704と、帯域予約情報テーブルとを参照して、端末装置(A)がネットワーク101に発行するマルチキャストアドレスグループGAに関するフレームの伝送品質の予約の第1段階を行う。
ここで、マルチキャストグループアドレスGAに関するグループ管理情報701に含まれるパケット種別704は、「電話音声」と設定されている。したがって、帯域予約管理部207は、図6において「電話音声」に対応する最低レート、最高レート、許容遅延、欠損保証に基づいて、要求品質を決定する。要求品質が決定すれば、帯域予約管理部207は、帯域予約の手続きをし、帯域予約を実現する。
なお、帯域予約管理部207が行う帯域予約は、伝送路状態の変化に伴って伝送性能が変化した場合に、帯域調整という形で実行される場合もある。この帯域予約情報は、マルチキャストアドレスグループ転送ポリシー705に含まれる情報として管理されてもよい。
図7は欠損保証を示す図である。端末装置(A)の制御処理部204が、パケット種別704に設定した「電話音声」の欠損保証レベルは1である。欠損保証レベル1は、Viterbi(ビタビ)を用いる畳み込み符号や、Reed−Solomon(以下RS)符号等による誤り訂正機能を使用せず、ACKを要さない欠損保証レベルでよいと定義されている。ACKを要さないということは、マルチキャスト伝送、ブロードキャスト伝送のような同報送信を行って、効率化を図ってもよいということになる。
ここで、他の欠損保証レベルを説明するために、パケット種別704が「制御」である場合を説明する。図6を参照すると、パケット種別704が「制御」の場合は、対応する最低レート、最高レート、許容遅延の項目が指定なしとなっているので、帯域保証のための予約を行わなくてよい。つまり、CSMA/CA方式のような分散制御型メディアアクセス制御等でアクセスを制御してよい。
さらに、図7を参照すると対応する欠損保証レベルは7であるから、誤り訂正機能として、ネットワーク101を介して伝送するフレームは、ビタビを用いた畳み込み符号を50%含み、RS符号を255バイト伝送のうち16バイト含む。また、制御処理部204は、サブキャリアごとの記載情報量を減らす。
例えば、制御処理部204はリンクIIの伝送マップ302において、10あるサブキャリアの各記載情報量を1ビットずつ減じる。欠損保証レベル7はACKを要すると定義されているので、端末装置(A)は、パケットをユニキャストでネットワーク101に転送するように設定するまたは端末装置(A)は、通常はACKを要さない同報送信をしても、このリンクに関してはACKを求める。
端末装置(A)が、ACKを求めることで、誤り訂正を用いてデータ伝送しても訂正しきれずにデータ欠損が起きた場合に、データ欠損が起きたことを端末装置(A)が把握することができ、再送処理をすることができる。また、欠損保証レベル7は、同じフレームを2回にわたって繰り返し送信を行うものと規定する。
ここで、ネットワーク103がイーサネットとした場合、端末装置(A)が、特にネットワーク101において確実に転送したいパケットを、「制御」とするように設定してもよい。例えば、IGMPメッセージに加えて、マルチキャストアドレスで識別が可能なUPnPパケットなども、「制御」として設定するとよい。なお、「制御」のような、確実に転送を行いたい種別のパケットの転送には、伝送路推定を行わないで、冗長な変復調方式を適用するなどしてよい。
(第1の実施形態の変形例)
上記の第1の実施形態において、図10Aに示すアルゴリズムは、登録済みの伝送性能の低いテンポラリマップから順に判定し、一意に同報マップの設定を行う方法を示す。
さらに、転送管理部206は、ステップS505において、すべての伝送方法を考慮し、必要なリンクへ転送する際に、転送時間が最も小さいと想定される伝送方法を選択してもよい。
例えば、転送管理部206は、必要なリンクについてあらゆる同報マップを生成し、ネットワーク101内におけるユニキャスト、マルチキャスト、ブロードキャストなどの伝送方法を考慮して、伝送マップの伝送性能と、ネットワーク101におけるフレーム発行数を加味して算出される総時間に基づいて、必要な転送リンクについて、伝送時間が最も小さい伝送方法を算出することが可能である。
また、第1の実施形態では、端末装置のCPU負荷などハードウェアリソース等を考慮して、図11Aのようなアルゴリズムを例示したが、図11Aに示されるアルゴリズムの代わりに、最適な伝送方法を算出して適用する以下のアルゴリズムも、当然用いることができる。
本変形例は、第1の実施形態において示した図9のステップS505のアルゴリズムが変更された例である。
図15Aは、第1の実施形態の変形例において端末装置100が用いるリンク管理テーブル1061を示す図である。
図15Aに示すリンク管理テーブル1061は、端末装置100と端末装置100とのペアを定義するリンクの情報を管理するテーブルであり、データ記憶部202上に記憶される。リンク管理テーブル1061は、当該テーブルを保持する端末装置100と接続されている宛先端末とのリンクについての情報を示すリンク管理情報1062、1063が記録されている。リンク管理情報は、接続されている端末装置の数だけ存在する。
リンク管理情報1062は、リンク識別子10621と、宛先端末装置識別子10622と、伝送マップ情報10623とを含む。なお、伝送マップ情報10623は、伝送路推定の結果を表す情報である。同様に、リンク管理情報1063は、リンク管理情報1062と同様の情報を含む。また、登録リンク数1064は、リンク管理テーブル1061が有するリンク管理情報の数を表している。登録リンク数1064が保持する値は、この端末装置100が通信できる端末装置100の数と等しい値である。
図15Bは、第1の実施形態の変形例における端末装置100の詳細な処理を説明する図である。転送管理部206は、ある端末装置100から、IGMP(MLD)メッセージを受信したときに、図15Bに示す処理を開始する。
ステップS11701において、転送管理部206は、受信したIGMP(MLD)メッセージの送信元端末装置100と、端末装置100とのリンクをリンク管理テーブル1061に登録し、登録リンク数Nを1インクリメントする。
ステップS11702において、転送管理部206は、変数Kと、リンク配列L[N]と、配列H[N][N]と、変数h_gr_numとを初期化する。Nは、登録リンク数1064が保持する値である。また、min_timeを十分大きな値で初期化する。
リンク配列Lは、リンク識別子10621等を記憶するための配列である。配列H[N][N]は、マルチキャストパケットを転送する転送ポリシーに設定するグループとリンクの情報とを対応させて格納する配列である。配列H[N][N]は、全てのグループ分けの中から最も短い伝送時間min_timeを与えるグループとリンクの情報を格納する。変数h_gr_numは、配列H[N][N]の行数を格納する変数である。変数h_gr_numの値は、グループの数を表す。転送管理部206は、ステップS11702において変数の初期化が終了するとステップS11704へ進む。
ステップS11704において、転送管理部206は、変数Kの値と、登録リンク数Nの値とを比較する。転送管理部206は、Kの値が登録リンク数Nの値以上であればステップS11711へ進み、変数Kの値が登録リンク数N未満であればステップS11705へ進む。
ステップS11705において、転送管理部206は、グループを識別するためのグループ識別子gr_numと、変数numberと、配列G[N][N]とを初期化する。グループ識別子gr_numと、変数numberと、配列G[N][N]と、配列H[N][N]と、登録リンク数Nとは、グローバル変数である。
配列Gは、配列Hを決定するために、すべてのリンクの組み合わせをグループと対応付けて記憶する配列である。配列Gおよび配列Hの要素は、グループとリンクである。転送管理部206は、ステップS11705の処理を終えると、ステップS11706へ進む。
ステップS11706において、転送管理部206は、すべてのリンクの組み合わせをグループとして定義する。なお、ステップS11706の詳細な処理は、後述する。転送管理部206は、全てのリンクの組み合わせをグループとして定義すると、ステップS11707へ進む。
ステップS11707において、転送管理部206は、図15Cに示す処理を実行してデータ記憶部202にTRUEが記憶されているか、FALSEが記憶されているかを判断する。転送管理部206は、データ記憶部202にTRUEが記憶されていれば、ステップS11709へ進み、データ記憶部202にFALSEが記憶されていれば、ステップS11708へ進む。
ステップS11709において、転送管理部206は、リンク配列L[N]を並び替えて、ステップS11710の処理へ進む。
ステップS11710において、転送管理部206は、すべてのリンク配列L[N]の並び替えについて、ステップS11708における伝送時間の評価が終了したか否かを判断する。転送管理部206は、伝送時間の評価が終了していればステップS11703へ進み、終了していなければステップS11704の処理へ戻る。
ステップS11703において、転送管理部206は、変数Kを1インクリメントして、ステップS11704へ進む。変数Kは、グループに含まれるリンクの数を表す。
転送管理部206は、ステップS11711において、配列H[N][N]に含まれるグループとリンクとに基づいて、転送ポリシーを設定し、ステップS11712へ進む。なお、ステップS11711における転送管理部206の詳細な処理は、後述する。
転送管理部206は、ステップS11712において、配列H[N][N]に基づき、図10Bに示すステップS1022と同様にマルチキャストアドレスグループ転送ポリシー705を設定する。
転送管理部206は、図15Bに示す処理を実行する場合においても、第1の実施形態で説明した図9のステップS505と同様に、最適な伝送マップを算出し、高速で安定した同報伝送を行うことができる。
図15Cは、ステップS11706の処理を詳細に説明する図である。
ステップS11801において、転送管理部206は、変数iを0として、ステップS11802の処理へ進む。
ステップS11802において、転送管理部206は、変数iの値と、変数kの値とを比較する。転送管理部206は、ステップS11802において、変数iの値がkの値未満であれば、ステップS11803に進み、変数iの値がk未満でなければステップS11805へ進む。
ステップS11803において、転送管理部206は、配列G[gr_num][i]にリンク配列L[number]に記憶されているリンク識別子を代入し、変数numberの値を1インクリメントする。転送管理部206は、ステップS11803の処理を終えると、ステップS11804の処理へ進む。
ステップS11804において、転送管理部206は、変数iの値を1インクリメントし、ステップS11802へ戻る。
転送管理部206は、ステップS11802〜S11804の動作を、変数iと変数numberとをそれぞれ1ずつインクリメントしながら、変数kで指定される回数だけ繰り返す。したがって、グループ識別子gr_numに対応するグループに含まれるリンク識別子に対応するリンクの数は、変数kの数と等しくなる。なお、図15Cに示される処理は、図15Bに示すステップS11703においてインクリメントされる変数Kの値に応じて、繰り返し実行される。したがって、転送管理部206は、変数kの数のリンクのすべての組み合わせをグループとして生成する。
ステップS11805において、転送管理部206は、グループ識別子gr_numの値を1インクリメントし、ステップS11806へ進む。
ステップS11806において、転送管理部206は、登録リンク数Nと変数numberとの差を求め、求めた差が1より大きいか否かを判断する。転送管理部206は登録リンク数Nと変数numberとの差が、1より大きければステップS11807へ進み、1より小さければステップS11812へ進む。
ステップS11807において、転送管理部206は、変数jに1を代入して、ステップS11808の処理へ進む。
ステップS11808において、転送管理部206は、登録リンク数Nと変数numberとの差を求め、求めた差が変数jの値より大きいか否かを判断する。転送管理部206は、登録リンク数Nと変数numberとの差が、変数jより大きければステップS11809へ進み、変数jより小さければステップS11815へ進む。
ステップS11809において、転送管理部206は、再び図15Cに示す処理を再帰的に実行する。すなわち、転送管理部206は、ステップS11801〜S11809の処理を繰り返すので、すべてのリンクとグループ識別子gr_numとの組み合わせを配列G[gr_num][i]に格納し、リンクの組み合わせをグループとして記憶する。
ステップS11810において、転送管理部206は、ステップS11809の処理の結果(すなわち、再帰的に呼び出された処理のステップS11814またはS11815において返された値)が、TRUEかFALSEかを判断する。転送管理部206は、ステップS11809の処理の結果が、TRUEであればステップS11811へ進み、FALSEであればステップS11814へ進む。
ステップS11811において、転送管理部206は、変数jの値を1インクリメントし、ステップS11808へ戻る。
ステップS11812に転送管理部206が到達するのは、ステップS11806において”NO”と判断された場合である。転送管理部206は、ステップS11812において、配列G[gr_num][0]の要素にリンク配列L[number]の要素を代入し、ステップS11813へ進む。
ステップS11813において、転送管理部206は、グループ識別子gr_numの値を1インクリメントし、ステップS11814へ進む。
ステップS11814において、転送管理部206は、FALSEを返す。
ステップS11815において、転送管理部206は、TRUEを返す。
図15Dは、図15Bに示されるステップS11708の処理を詳細に説明する図である。
ステップS11901において、転送管理部206は、変数iおよび変数tmp_timeを0とし、ステップS11902へ進む。
ステップS11902において、転送管理部206は、変数iとグループ識別子gr_numとを比較する。転送管理部206は、変数iがグループ識別子gr_numより小さければステップS11903へ進み、変数iがグループ識別子gr_numより大きければ、ステップS11907へ進む。
ステップS11903において、転送管理部は、変数jの値を0とし、ステップS11904へ進む。
ステップS11904において、転送管理部206は、配列G[i][]に含まれるすべてのリンクの伝送マップについて、サブキャリアごとに論理積を算出し、同報マップを作成する。転送管理部206は、同報マップの作成を終了すると、ステップS11905へ進む。
ステップS11905において、転送管理部206は、作成した同報マップにおいて所望のデータを送出するのに必要な時間を計算し、算出した時間を変数tmp_timeに加算する。転送管理部206は、算出した時間を変数tmp_timeに加算すると、ステップS11906へ進む。
伝送マップは、シンボル長毎の伝送可能データ量を示す。したがって、転送管理部206は、ステップS11905において、要求されている伝送データ量または所定の値と、伝送マップとから所望のデータを伝送するために要する伝送時間を算出する。転送管理部206が、ステップS11905において、算出する伝送時間には、L2の仕様で定義されているフレーム間時間(IFS)や、フレームヘッダなどの伝送するデータ以外のオーバーヘッドを考慮してもよい。
ステップS11906において、転送管理部206は、変数iを1インクリメントしてステップS11902の処理に戻る。
ステップS11906に転送管理部206が到達するのは、ステップS11902において、変数iがグループ識別子gr_numより小さくないと判断された場合である。転送管理部206は、ステップS11906において、変数min_timeの値と、変数tmp_timeの値とを比較する。転送管理部206は、変数tmp_timeの値が変数min_timeの値より小さければステップS11907へ進み、変数tmp_timeの値が変数min_timeの値より小さくなければ、図15Dに示す処理を終了する。
ステップS11907において、転送管理部206は、配列G[N][N]を配列H[N][N]に代入し、グループ識別子gr_numを変数h_gr_numに代入する。転送管理部206は、変数h_gr_numにグループ識別子gr_numを代入すると、図15Dに示す処理を終了し、ステップS11709へ進む。
転送管理部206は、図15Dに示す処理をした結果、伝送時間が最も短くなる同報マップを配列H[N][N]に格納する。
図15Eは、図15Bに示されるステップS11711における転送管理部206の処理を詳細に説明する図である。
ステップS11001において、転送管理部206は、変数iを0で初期化し、ステップS11002へ進む。
ステップS11002において、転送管理部206は、変数iと変数h_gr_numとを比較する。転送管理部206は、変数iが変数h_gr_numより小さければステップS11003の処理へ進む。転送管理部206は、変数iが変数h_gr_numより大きければ図15Eに示す処理を終了し、図15Bに示すステップS11712へ進む。
ステップS11003において、転送管理部206は、配列H[i][]に含まれるすべてのリンクの伝送マップについて、サブキャリアごとに論理積を算出し、同報マップを作成する。転送管理部206は、同報マップを作成するとステップS11004へ進む。
ステップS11004において、転送管理部206は、図10Bに示すステップS1022と同じ処理を実行して、ステップS11003において算出した同報マップを、マルチキャストアドレスグループ転送ポリシー705に設定する。
ステップS11005において、転送管理部206は、配列H[N][N]に含まれるすべてのリンクに対応するすべての端末装置に、マルチキャストアドレスグループおよび同報マップを通知する。転送管理部206は、マルチキャストアドレスグループおよび同報マップの通知をするとステップS11002へ戻る。
(第2の実施形態)
第2の実施形態は、第1の実施形態と比較して、さらに簡易な方法を用いて同報伝送の高速化を図る例を示す。第2の実施形態は、特に既存専用線のように、伝送路上の周波数特性がそれほど多様でないメディアにおいて特に有効である。
第2の実施形態に係る端末装置100の基本的な構成は、第1の実施形態に係るものと同様であるため、図1〜図3を援用して、繰り返しの説明を省略する。また、第1の実施形態と同様に、ネットワーク103は、イーサネット規格に準拠するネットワークであると想定する。更に、第2の実施形態に係る端末装置100は、第1の実施形態と同様に、ネットワーク101においてDMTによるマルチキャリア伝送を行うと想定する。
図16は、第2の実施形態において、端末装置100が使用するグループ管理情報1701の構成を説明する図である。
第2の実施形態に係るグループ管理情報1701は、IPマルチキャストグループアドレス1702と、伝送マップ番号1703と、伝送性能1704と、登録リンク数1705と、複数のリンク情報1706とを含む。リンク情報1706の各々は、宛先端末装置識別子と、ホスト識別子とを含んでいる。
図17は、本発明の第2の実施形態に係る端末装置において、制御処理部が実行する処理の詳細を示すフローチャートである。
端末装置100の外部インタフェース処理部203は、ネットワーク103から、ネットワーク101へ転送するマルチキャストパケットを受信すると、受信したマルチキャストパケットのヘッダ情報を参照し、マルチキャストパケットである場合は、受信したパケットを制御処理部204へ渡す。
ステップS1501において、制御処理部204は、外部インタフェース処理部203からマルチキャストパケットを受け取る。
ステップS1502において、制御処理部204は、受け取ったパケットが、IGMP JOINメッセージまたはIGMP REPORTメッセージであるか否かを判定する。制御処理部204は、受け取ったパケットが、IGMP JOINメッセージまたはIGMP REPORTメッセージである場合には、ステップS1503へ進み、それ以外の場合には、ステップS1505へ進む。
ステップS1503において、制御処理部204は、転送するパケットのマルチキャストアドレスに対し、マルチキャストパケットの発行元であるソース端末装置を把握しているか否かを判断する。なお、制御処理部204がソース端末を把握する方法については後述する。
ステップS1503において、制御処理部204は、ソース端末装置を把握している場合には、ステップS1504へ進み、それ以外の場合には、ステップS1506へ進む。
ステップS1504において、制御処理部204は、把握しているソース端末装置を宛先として、受け取ったマルチキャストパケットから複製したパケットをユニキャスト送信することを設定する。制御処理部204は、ユニキャスト送信の設定を終了すると、ステップS1508へ進む。
ステップS1505において、制御処理部204は、転送するマルチキャストパケットに対応する同報マップが作成されているか否かを判定する。なお、同報マップを作成する方法については後述する。制御処理部204は、受信したマルチキャストパケット含まれるマルチキャストアドレスグループについての同報マップが作成されている場合には、ステップS1507へ進み、それ以外の場合には、ステップS1506へ進む。
ステップS1506において、制御処理部204は、転送するパケットをネットワーク101内で、ダイバシチモードでブロードキャスト送信するように設定する。制御処理部204は、ステップS1506の処理を終えると、ステップS1508へ進む。
ステップS1507において、制御処理部204は、転送するマルチキャストパケットに対応する同報マップを適用し、ステップS1508へ進む。
ステップS1508において、制御処理部204は、設定したモードに応じて、転送の要求を受けたマルチキャストパケットをネットワーク101に転送するように、送受信処理部201へ要求する。
図18は、本発明の第2の実施形態において、端末装置がマルチキャストパケットを受信したときに、制御処理部204が実行する処理の詳細を示すフローチャートである。
ステップS1601において、送受信処理部201が受信したパケットがマルチキャストパケットであることを判定すると、制御処理部204は、送受信処理部201から受信したパケットを受け取る。
ステップS1602において、制御処理部204は、受信したマルチキャストパケットがIGMP(MLD)JOINメッセージまたはIGMP(MLD)REPORTメッセージであるか否かを判定する。制御処理部204は、転送するマルチキャストパケットがIGMP(MLD)JOINメッセージまたはIGMP(MLD)REPORTメッセージである場合には、ステップS1603へ進み、それ以外の場合には、ステップS1606へ進む。
ステップS1603において、制御処理部204は、転送するマルチキャストアドレスに関するグループ管理情報1701がまだ作成されていない場合には、転送するマルチキャストアドレスに関するグループ管理情報1701を作成する。すなわち、制御処理部204は、受信したマルチキャストパケットから取り出したIPマルチキャストグループアドレス1702と、リンク情報1706とを用いて、グループ管理情報1701を作成する。また、制御処理部204は、グループ管理情報1701に含まれる登録リンク数1705に1を設定する。更に、制御処理部204は、リンク情報1706の宛先端末装置識別子に、IGMP(MLD)メッセージの転送を要求した端末装置100の識別子を設定し、ホスト識別子に、IGMP(MLD)メッセージを発行したホスト識別子を設定すればよい。
一方、グループ管理情報1701が既に作成されている場合、制御処理部204は、リンク情報1706を追加する。追加されたリンク情報1706には、IGMP(MLD)メッセージの転送を要求した端末装置100の識別子と、IGMP(MLD)メッセージを発行したホストの識別子とが設定される。また、制御処理部204は、登録リンク数1705の値を1だけインクリメントする。制御処理部204は、ステップS1603の処理を終了すると、ステップS1607へ進む。
ステップS1607において、制御処理部204は、マルチキャストアドレスに対応するグループ管理情報に登録されているすべてのリンクに対して、伝送路推定を行う。より詳細には、制御処理部204は、リンクの各々についての伝送マップを取得する。制御処理部204は、ステップS1607の処理を終了すると、ステップS1604へ進む。
ステップS1604において、制御処理部204は、取得した伝送マップの中から伝送性能が最も低い伝送マップを選択し、選択された伝送マップを用いて、グループ管理情報1701を更新する。より詳細には、制御処理部204は、伝送性能が最も低いと判断した伝送マップ番号を伝送マップ番号1703に設定し、当該判断された伝送マップから取得される伝送性能を伝送性能1704に設定する。なお、グループ管理情報1701の更新後、制御処理部204によって選択されなかった伝送マップを保持するためのリソースは、解放されてもよい。
ステップS1605において、制御処理部204は、転送の要求を受けたマルチキャストパケットをネットワーク103に送出するように、外部インタフェース処理部203に要求する。
ステップS1606において、制御処理部204は、転送の要求を受けたマルチキャストパケットに含まれるマルチキャストアドレスと、転送の要求をした端末装置の識別子を関連付けて記憶する。なお、制御処理部204は、ステップS1606の処理を実行することによって記憶したマルチキャストアドレスと、端末装置の識別子とに基づいて、上述のステップS1504の判定を実行する。
なお、上記のステップS1604において、制御処理部204は、次のような処理を実行することによって、グループ管理情報1501を更新しても良い。
まず、制御処理部204は、マルチキャストパケットを転送する要求を受けたリンクについてのみ伝送路推定を行う。次に、制御処理部204は、伝送路推定が行われたリンクの伝送性能と、既に設定されている伝送性能1704とを比較する。そして、制御処理部204は、伝送性能がより低い伝送マップを選択して、選択した伝送マップの番号および伝送性能に基づいて、伝送マップ番号1703と伝送性能1704とを更新する。グループ管理情報1701の更新後、選択されていない伝送マップを保持するためのリソースは、解放されてもよい。
以上のような制御処理に従って、制御処理部204は、全リンクについての伝送路推定を行うことに起因する共通帯域への負荷や、伝送マップを作成するために一時的に使用するメモリ領域等のリソースを低減することができる。
ここで、図1を参照しながら、本実施形態に係る端末装置100の処理の具体例を説明する。以下の具体例においては、ホスト111が、マルチキャストグループアドレスHA(IPマルチキャストグループH)を宛先とするマルチキャストパケットを発行した場合を想定する。また、IPマルチキャストグループHに属するホスト、すなわち、IPマルチキャストグループHで配信されるパケットを受信または発信したいアプリケーションを稼動しているホストは、ホスト111、112、115、116、118、119であると想定する。
<1.端末装置(A)の処理>
ホスト111がマルチキャストアドレスHAを宛先としたパケットを発行すると、端末装置(A)の外部インタフェース処理部203は、受信したパケットを受け取る。外部インタフェース処理部203は、入力されたパケットがマルチキャストパケットであることを判定すると、制御処理部204は、図17に示されるフローチャートに従って、以降の処理を実行する。
制御処理部204は、ステップS1502において、受信したメッセージが、IGMP(MLD)メッセージではないと判断して、ステップS1505へ進む。
制御処理部204は、ステップS1505において、受信したマルチキャストパケットのマルチキャストグループHに対応する同報マップを作成していないので、ステップS1506へ進む。
制御処理部204は、ステップS1506において、転送するマルチキャストパケットをダイバシチモードでブロードキャスト送信する設定をし、ステップS1508へ進む。
制御処理部204は、ステップS1508において、マルチキャストパケットをネットワーク101へ転送するように、送受信処理部201に要求する。
端末装置(A)は、図17に示す処理を終えると、ホスト111が送信したマルチキャストパケットをネットワーク101にダイバシチモードでブロードキャスト送信する。この結果、端末装置(A)は、受信したパケットを、すべての端末装置に転送することができる。
<2.端末装置(B)の処理>
次に、本実施形態における端末装置100が、ネットワーク101からマルチキャストパケットを受信した場合の動作を、端末装置(B)の処理を例として説明する。
端末装置(B)の送受信処理部201は、端末装置(A)がブロードキャスト送信したマルチキャストパケットを含むフレームをネットワーク101から受信する。端末装置(B)が受信したフレームは、マルチキャストパケットを含んでいるので、制御処理部204は、図18に示されるフローチャートに従って、以降の処理を実行する。
制御処理部204は、ステップS1602において、受信したマルチキャストパケットがIGMP(MLD)メッセージではないため、ステップS1606へ進む。
制御処理部204は、ステップS1606において、受信したマルチキャストパケットに含まれるマルチキャストアドレスHと、当該マルチキャストパケットを発行したソース端末装置(A)の識別子とを関連付けて記憶し、ステップS1605へ進む。
制御処理部204は、ステップS1605において、外部インタフェース処理部203に対し、マルチキャストパケットの転送を要求する。
端末装置(B)から転送されたマルチキャストパケットは、ホスト112に到達する。ホスト112は、マルチキャストグループアドレスHAのパケットを受信したいので、IGMP JOINメッセージMBを発行する。IGMP JOINメッセージMBは、マルチキャストグループアドレスHAを宛先としたパケットであり、端末装置(B)の外部インタフェース処理部203へ渡される。
外部インタフェース処理部203が受信したパケットは、ホスト112から送信されたマルチキャストパケットである。したがって、端末装置(B)制御処理部204は、図17に示されるフローチャートに従って、以降の処理を実行する。
制御処理部204は、ステップS1502において、受信したマルチキャストパケットがIGMP(MLD)JOINメッセージMBであるので、ステップS1503へ進む。
制御処理部204は、ステップS1503において、IPアドレスグループのソース端末装置(A)を管理しているため(図18に示すステップS1606)、ステップS1504へ進む。
制御処理部204は、ステップS1504において、転送の要求を受けたIGMP(MLD)JOINメッセージMBを、端末装置(A)へユニキャスト送信するように設定し、ステップS1508へ進む。
制御処理部204は、ステップS1508において、IGMP(MLD)JOINメッセージをネットワーク101へ転送するように、送受信処理部201へ要求する。
以上のように、本実施形態に係る端末装置100は、マルチキャストデータパケットを発信する端末装置をマルチキャストアドレスごとに管理する。したがって、端末装置100は、マルチキャストアドレスに対応するIGMP JOINメッセージや、IGMP REPORTメッセージを、ネットワーク101にユニキャスト送信することができる。端末装置100が、マルチキャストパケットをユニキャスト送信する場合、ACKの管理が容易であり、かつ、確実にIGMP JOINまたはIGMP REPORTメッセージを送付することができる。
さらに、本実施形態に係る端末装置100は、IGMP REPORTメッセージを、ネットワーク101においてマルチキャストデータパケットを発行するソース端末装置以外に送信しない。したがって、ネットワーク103におけるマルチキャストグループに属するホストが接続された端末装置100が、IGMP REPORTメッセージを発行する。
端末装置100が、IGMP REPORTメッセージを確実に発行することによって、第1の実施形態と同様に、IGMP QUERYメッセージまたはIGMP REPORTメッセージを利用して、マルチキャストデータパケットを送付すべき端末装置100をリアルタイムに把握することができる。これにより、無為にネットワーク101のトラフィックを増大させないという効果が期待できる。
<3.端末装置(A)の処理>
端末装置(A)の送受信処理部201は、端末装置(B)が転送したIGMP(MLD)メッセージMBを受信する。受信したIGMP(MLD)メッセージMBは、マルチキャストパケットであるので、制御処理部204は、図18に示されるフローチャートに従って、以降の処理を実行する。
制御処理部204は、ステップS1602において、IGMP(MLD)メッセージMBは、IGMP JOINメッセージであるので、ステップS1603の処理へ進む。
制御処理部204は、ステップS1603において、マルチキャストグループアドレスHAに対するグループ管理情報1701を作成していないので、マルチキャストグループアドレスHAに対応するグループ管理情報1701を作成し、IPマルチキャストグループアドレス1702にHAを記載する。制御処理部204は、グループ管理情報1701の作成が終了すると、ステップS1607の処理へ進む。
制御処理部204は、ステップS1607において、端末装置(B)および(A)を接続するリンクIの伝送路推定を行い、伝送マップを作成する。端末装置(A)の制御処理部204は、作成した伝送マップについての情報を用いて、グループ管理情報1701を作成する。制御部処理部204は、登録リンク数を1に設定し、リンク情報#1に端末装置(B)の識別子とホスト112の識別子とを記載する。制御処理部204は、ステップS1604の処理が終了すると、ステップS1604へ進む。
制御処理部204は、ステップS1604において、マルチキャストグループアドレスHAに対応する登録リンク数はひとつしかないため、リンクIIの伝送マップをそのまま適用し、ステップS1605の処理へ進む。
制御処理部204は、ステップS1605において、メッセージMBをホスト111へ転送する。
マルチキャストグループHに属するホスト115、ホスト116、ホスト118も、IGMP JOINメッセージを発行するが、各端末装置の処理は、ホスト112のメッセージMBを端末装置(B)が受信した場合と同様であるので説明を割愛する。
図19は、マルチキャストグループHに属するホスト112、115、116、118が、IGMP(MLD)JOINメッセージの発行を終了した段階で、端末装置(A)が記憶しているマルチキャストグループHに対応するグループ管理情報1801を示す図である。
<4.端末装置(A)の処理>
次に、ホスト119がIGMP JOINメッセージMFを発行した場合の端末装置(A)の動作を説明する。メッセージMFは、端末装置(F)によって端末装置(A)にユニキャスト送信され、端末装置(A)に到達する。
端末装置(A)の送受信処理部201は、メッセージMFがマルチキャストパケットであると判定すると、制御処理部204は、図18に示されるフローチャートに従って、以降の処理を実行する。
制御処理部204は、ステップS1601において、端末装置(F)からマルチキャストパケットの転送要求を受け、ステップS1602へ進む。
制御処理部204は、ステップS1602において、メッセージMFは、IGMP(MLD)JOINメッセージであるので、ステップS1603へ進む。
制御処理部204は、ステップS1603において、マルチキャストグループアドレスHAに対するグループ管理情報1801を既に作成しているので、端末装置(F)およびホスト119の識別子を、端末装置(A)と端末装置(F)とを接続するリンクIVに関する情報としてリンク#4に追加記憶し、登録リンク数を1インクリメントする。制御処理部204は、リンク#4の追加記憶を終了すると、ステップS1607へ進む。
制御処理部204は、ステップS1607において、リンク情報1806に登録済みの4つのリンクのすべてについて、伝送路推定を行うことによって、伝送マップを作成する。制御処理部204は、伝送マップの作成を終了すると、ステップS1604へ進む。
制御処理部204は、ステップS1604において、ステップS1607において作成した4つの伝送マップの中から、伝送性能が最も低い伝送マップを選択する。制御処理部204が、伝送マップ番号5およびその伝送性能435を選択した場合を想定すると、制御処理部204は、伝送マップ番号1803の値を5に更新し、伝送性能1804の値を435に更新する。その後、制御処理部204は、ステップS1605へ進む。
制御処理部204は、ステップS1605において、ホスト111にメッセージMFを転送するように外部インタフェース処理部203に要求する。
<5.端末装置(A)の処理>
端末装置(A)の制御処理部204が、以上の処理に従って作成したグループ管理情報に基づき、ホスト111から送信されたマルチキャストパケットを転送する処理について、以下に説明する。
端末装置(A)の外部インタフェース処理部203がマルチキャストアドレスHAを含むパケットを受信すると、制御処理部204は、図17に示される処理に従って、以降の処理を実行する。
制御処理部204は、ステップS1502において、受信したパケットがIGMP(MLD)メッセージではないと判断し、ステップS1505へ進む。
制御処理部204は、ステップS1505において、マルチキャストアドレスグループHに対応する同報マップを既に作成しているので、ステップS1507へ進む。ここで、ステップS1507において使用するマルチキャストアドレスグループHに対応する同報マップとは、伝送マップ番号5を指す。制御処理部204は、伝送マップ番号5の伝送マップを適用するように設定し、ステップS1507へ進む。
制御処理部204は、ステップS1507において、伝送マップ番号5の伝送マップを適用して、マルチキャストパケットのネットワーク101への転送を、送受信処理部201へ要求する。
以上のように、本実施形態における端末装置(A)は、マルチキャストアドレスHAに属するパケットを、伝送マップ番号5で示す伝送マップに基づいて、端末装置(B)および(D)〜(F)へ同報送信することができる。
(第3の実施形態)
第3の実施形態においては、第2の実施形態と比較して、さらに簡易な方法によって同報伝送を高速化することができる通信端末装置の例を示す。本実施形態に係る通信端末装置は、既存の専用通信メディア等のように、周波数的伝送路特性があまり多様でない通信メディアにおいて、特に有効である。
図20は、第3の実施形態に係る端末装置1000の構成を示す図である。ネットワーク101において送受信されるフレームのフォーマットは、第1の実施形態に係るものと同一であるので、図3を本実施形態に援用する。また、第3の実施形態において、端末装置1000は、第1の実施形態と同様に、ネットワーク101においてDMTによるマルチキャリア伝送を行う。
端末装置1000は、送受信処理部2001と、データ記憶装置2002と、外部インタフェース処理部2003と、制御処理部2004と、タイマ部2005と、転送管理部2006と、帯域予約管理部2007とに加えて、IPL3レイヤ処理部2008と、アプリケーション処理部2009とを備える。なお、送受信処理部2001〜転送管理部2006の各々は、図2に示される送受信処理部201〜転送管理部206と同様の機能を有する。
図21は、図20に示される端末装置が接続されるネットワークの構成を示す図である。端末装置1000は、外部インタフェース処理部2003を介して、ネットワーク階層の上位階層に接続されている。
図21には、図1に示されるネットワーク103およびホストに相当する図1に示ネットワーク103とホスト111等とに相当する構成が見かけ上示されていない。しかしながら、端末装置1000は、IPL3レイヤ処理部2008およびアプリケーション処理部2009によって、図1に示されるネットワーク103およびホストの機能が実現されている。すなわち、本実施形態においては、第1の実施形態に示されるネットワーク103およびホストが、端末装置1000に実装されている。なお、端末装置1000は、第1の実施形態に係る端末装置と併用される場合であっても、ネットワーク101を構築することが可能である。
更に、図21に示す端末装置(S)は、認証端末として機能する。端末装置1000を用いて構築されるネットワーク101においては、端末装置(S)へ認証を要求した結果、認証が得られた端末装置のみが、ネットワーク101へ参加することができる。
端末装置(S)は、端末装置1000を認証する際に、ネットワーク101において通信に使用する暗号鍵を渡す。端末装置(S)が暗号鍵を用いて認証をすることによって、ネットワーク101を安全性の高いネットワークとして構築することができる。なお、端末装置(S)の認証処理に暗号鍵を用いる例を説明したが、認証の方法はこれに限るものではない。
端末装置(S)が、端末装置1000を認証することによってネットワーク101を構築すると、端末装置(S)はネットワーク101に参加しているすべての端末装置1000を把握することができる。以下、端末装置(S)を、認証端末と称する。認証端末は、ネットワーク101に参加する端末装置1000のすべてを把握する。
認証端末は、端末装置1000と同じ構成を有する端末装置であるが、使用しているソフトウェアを変更することによって、認証端末として動作する。
以下、図22を参照しながら、端末装置1000のアプリケーション処理部2009が、IPL3レイヤ処理部2008へ、ブロードキャストパケットまたはマルチキャストパケットの発行を要求した場合を想定して、第3の実施形態に係る端末装置1000の動作を説明する。
図22は、図20に示される制御処理部2004が実行する処理の詳細を示すフローチャートである。
ステップS2101において、外部インタフェース処理部2003がアプリケーション処理部2009からパケット発行要求を受けると、制御処理部2004は、以降の処理を実行する。
ステップS2102において、制御処理部2004は、受信したパケットがユニキャストパケットであるか否かを確認する。制御処理部2004は、受信したパケットがユニキャストパケットである場合、ステップS2108へ進み、それ以外の場合には、ステップS2103へ進む。なお、ステップS2101の処理は、外部インタフェース処理部2003が行ってもよい。
ステップS2103において、制御処理部2004は、受信したパケットに対応する同報マップが既に作られているか否かを判定する。同報マップが既に作成されている場合、ステップS2107へ進み、作成されていない場合、ステップS2104へ進む。
ステップS2104において、制御処理部2004は、認証端末にネットワーク101に参加している全ての端末装置1000についての情報を要求する。制御処理部2004は、ネットワーク101に参加している端末装置1000についての情報を取得するために、専用のフレームを使用する。制御処理部2004は、当該フレームを認証端末に送信する。制御処理部2004は、送信したフレームに対する認証端末からの応答を受信すると、ステップS2105へ進む。
ステップS2105において、制御処理部2004は、ネットワーク101に参加している全ての端末装置1000に対して、伝送路推定を行うことによって、すべての宛先端末装置までの伝送路についての伝送マップを生成する。なお、制御処理部2004がステップS2105において生成する伝送マップは、図5に示されるものと同様であるので、ここでの説明を省略する。
ステップS2106において、制御処理部2004は、ステップS2105で生成したすべての伝送マップを用いて、同報マップを生成する。ステップS2106において、制御処理部2004が同報マップを生成する方法には、第1の実施形態で説明した方法が採用される。制御処理部2004は、例えば、図11に示される制御処理に従って、ネットワーク101における全ての端末装置1000に対する同報マップを生成し、ステップS2107へ進む。
ステップS2107において、制御処理部2004は、生成した同報マップを適用し、ステップS2108の処理へ進む。
ステップS2108において、制御処理部2004は、送受信処理部201へパケットの転送を要求する。
図22に示す制御処理部2004の処理においては、送信するパケットがマルチキャストパケットおよびブロードキャストパケットのいずれである場合にも、同じ同報マップが適用される。
なお、送受信処理部2001は、パケットの再送率や誤り訂正率などによって、ネットワーク101へ発行するフレームの伝送状態を監視する機能を有していてもよい。送受信処理部2001は、パケットの再送率や誤り訂正率と、所定の閾値または所定の範囲と比較し、パケットの再送率や誤り訂正率が所定の閾値または所定の範囲を越えていれば、同報マップが適していないと判断し制御処理部2004へ通知する。
制御処理部2004は、送受信処理部2001から同報マップが適していない旨の通知を受けると、同報マップを変更してもよい。例えば、制御処理部2004は、再送率が閾値を越えたことの通知を送受信処理部2001から受けると、同報マップのサブキャリアごとの記載情報数を減らす。また、再送率が所定の範囲よりも小さいことが送受信処理部2001から通知されると、同報マップのサブキャリアごとに記載する情報数を増やす。
制御処理部2004が、パケットの再送率や誤り訂正率などに応じて、同報マップを変更することで、常に伝送路の状態に適したパケットの伝送をすることができる。
(第4の実施形態)
図23は、本発明の第4の実施形態に係る端末装置T100の構成を示す図である。本実施形態に係る端末装置T100は、第1の実施形態に係る端末装置に加えて、更に、ゼロクロス検知制御処理部2401備える。また、本実施形態において、端末装置T100がネットワーク101上のデータ伝送に用いるフレームフォーマットは、第1の実施形態に係るものと同じであるため、本実施形態に図3を援用する。本実施形態に係る端末装置T100は、第1の実施形態と同様に、ネットワーク101においてDMTによるマルチキャリア伝送を行う。
電灯線は、サイリスタ等を有する家電機器の影響によって、電灯線の電源周期に同期して、短い周期のノイズが発生する。電灯線に発生するノイズは、電灯線の伝送性能に大きな影響を与える。電灯線のノイズは、電灯線の電源周期の半周期で発生することがわかっている。
ゼロクロス検知制御処理部2401は、ネットワーク101に電灯線を用いた場合に、図24に示すゼロクロス点を、送受信処理部201と、タイマ部205とを利用して検知する。ゼロクロス検知制御処理部2401は、ゼロクロス点を実測して、または仮想的に検知して、ゼロクロス点を検知したタイミングを制御処理部204へ通知する。制御処理部204は、ゼロクロス検知制御処理部2401から通知されるタイミングによって、電源同期期間を把握することができる。
図24は、電灯線の電源電圧のゼロクロス点および電源同期期間を説明する図である。図24においては、電源電圧の半周期が4つに分割された電源同期期間1〜電源同期期間4(2503〜2506)が示されている。なお、制御処理部204は、タイマ部205を使用して、電源周期が50Hzか60Hzかを判断し、電源電圧の半周期の時間を算出する。
なお、図24に示す電源同期期間を、電源電圧の半周期を4等分することで定義しているが、電源同期期間の定義はこれに限るものではない。さらに、電源同期期間は等しい時間隔でなくてもよい。
本実施形態に係る端末装置T100は、伝送路推定をすべての電源同期期間において行い、電源同期期間毎の伝送マップをすべて記録管理する。より詳細には、端末装置T100は、伝送路推定を、電源同期期間1(2503)の区間、電源同期期間2(2504)の区間、電源同期期間3(2505)の区間および電源同期期間4(2506)の区間毎に行う。端末装置T100は、各電源同期期間において得られた伝送マップを、データ記憶部202に記録し、制御処理部204は、記録された伝送マップを管理する。
各電源同期期間で得られた伝送マップを、制御処理部204が管理することによって、パケットを送信する端末装置T100とパケットを受信する端末装置T100とが、各電源同期期間に応じて伝送マップを切り替えることができる。したがって、端末装置T100は、電灯線における電源周期に同期したノイズを考慮した伝送マップを適用することができ、効率的に電灯線の伝送性能を引き出すことができる。
端末装置T100は、伝送マップの伝送情報423ごとに4つの電源同期期間のそれぞれに対応する4つのテンポラリマップを準備する。また、端末装置T100は、ネットワーク101における、ブロードキャスト、マルチキャスト用の同報マップを、電源同期期間と同じ数だけ用意し、用意した同報マップを送信元端末装置および受信端末装置で切り替えて適用する。
本例における端末装置T100は、ブロードキャストおよびマルチキャスト用の同報マップを伝送情報423ごとに、電源同期期間の数だけ用意することによって、同報伝送に関しても、電源周期に同期したノイズが存在する電灯線ネットワークを効率的に利用することができる。
図25は、本発明を電灯線通信に応用したときのシステム全体の構成を示す模式図である。図25に示すシステムは、通信メディアとして電灯線3bを用いている。各端末装置100は、コンセント100aを備えている。コンセント100aは、端末装置100の電源供給部(図示せず)および送受信処理部201に接続される。
端末装置100は、コンセント100aを介して、電源の供給を受けると共に、データの交換をする。電灯線3bは、電流計ブレーカ2bを介して、宅外の商用電源2aと接続される。端末装置100には、PC、DVD、デジタルテレビ(DTV)およびハブ等が接続されている。
ハブにはアクセスポイント、PC、LANおよびルータ等が接続される。また、アクセスポイントには、無線LANが接続される。また、ルータは、インターネットに接続している。なお、端末装置100および端末装置1000の機能は、各家電機器等のホストに内蔵されていてもよい。
以下、図26および図27を参照しながら、本実施形態における端末装置T100の処理を説明する。
図26は、本実施形態に係る端末装置T100がネットワーク103から受信したマルチキャストパケットを転送する処理の詳細を示すフローチャートである。
端末装置T100が、ネットワーク103からネットワーク101へパケットを転送する要求を受けると、外部インタフェース処理部203は、受信したパケットのヘッダ情報を参照する。受信したパケットがマルチキャストパケットである場合、制御処理部204は、図26に示されるフローチャートに従って、以降の処理を実行する。
ステップS2201において、制御処理部204は、ネットワーク103からIPマルチキャストパケットを転送する要求を受ける。
ステップS2202において、制御処理部204は、ネットワーク103から受信したマルチキャストパケットがIGMP(またはMLD)プロトコルメッセージのJOINメッセージまたはREPORTメッセージである場合には、ステップS2208へ進み、それ以外の場合には、ステップS2203へ進む。
ステップS2203において、制御処理部204は、受信したマルチキャストパケットのグループ管理情報701が存在する場合には、ステップS2204へ進み、それ以外の場合には、ステップS2210へ進む。
ステップS2204において、制御処理部204は、受信したマルチキャストパケットのグループ管理情報701における転送可否フラグ703が拒否である場合、ステップS2210へ進み、それ以外の場合には、ステップS2205へ進む。
ステップS2205において、制御処理部204は、グループ管理情報701のマルチキャストアドレスグループ転送ポリシー705が有効である場合には、ステップS2211へ進み、それ以外の場合には、ステップS2206へ進む。
ステップS2206において、制御処理部204は、タイマ部205にアクセスし、マルチキャストパケットタイマを停止する。マルチキャストパケットタイマは、グループ管理情報701にタイマ識別子を記録することで、グループ管理情報701と一意に対応する。制御処理部204は、グループ管理情報701に対応するタイマが起動していない場合、ステップS2206の処理を実行せずに、ステップS2207へ進む。ここで、制御処理部204は、登録されているすべての伝送情報423に記載されているリンク情報に基づいて、伝送路推定を行うことによって、伝送情報423を更新してもよい。
ステップS2207において、制御処理部204は、マルチキャストアドレスグループ転送ポリシー705を再度設定する。制御処理部204が、ステップS2207において、マルチキャストアドレスグループ転送ポリシー705を設定する処理は、図10A〜図10Eに示した処理と同様である。制御処理部204は、ステップS2207の処理を終了すると、ステップS2211へ進む。
ステップS2208において、制御処理部204は、受信したIGMP(MLD)メッセージをネットワーク101で定義されているダイバシチモードでブロードキャスト送信する設定を行う。端末装置T100は、IGMPのREPORTメッセージおよびJOINメッセージを、ネットワーク103からネットワーク101へダイバシチモードでブロードキャスト転送する。
ステップS2209において、制御処理部204は、パケットの転送を送受信処理部201に要求する。
ステップS2210において、制御処理部204は、受信したマルチキャストパケットを破棄する。
ステップS2211において、制御処理部204は、グループ管理情報701に設定されているマルチキャストアドレスグループ転送ポリシー705を適用して、ステップS2209へ進む。
ステップS2209において、制御処理部204は、送受信処理部201へ受信したマルチキャストパケットの転送を要求する。
制御処理部204がネットワーク101からネットワーク103へパケットを転送する要求を受けると、外部インタフェース処理部203は、パケットのヘッダ情報を参照し、マルチキャストパケットであるか否かを判断する。
図27は、端末装置T100がネットワーク101から受信したマルチキャストパケットを転送する場合の処理を示す図である。
ステップS2302において、制御処理部204は、受信したパケットがIGMP(MLD)のJOINメッセージまたはREPORTメッセージである場合には、ステップS2303のへ進み、それ以外の場合には、ステップS2308へ進む。
ステップS2303において、制御処理部204は、IGMP(MLD)のJOINメッセージである場合には、ステップS2304へ進み、それ以外の場合には、ステップS2309へ進む。
ステップS2304において、制御処理部204は、受信したマルチキャストパケットのマルチキャストアドレスグループに対応するグループ管理情報701が存在するか否かを判断する。制御処理部204は、グループ管理情報701が存在する場合には、ステップS2305へ進み、存在しない場合には、ステップS2310へ進む。
ステップS2305において、制御処理部204は、受信したマルチキャストパケットのマルチキャストアドレスグループに対応するグループ管理情報701の転送ポリシー設定721を無効に設定する。
ステップS2306において、制御処理部204は、IGMPメッセージを発行した端末装置T100を宛先としたリンクを、グループ管理情報701の伝送情報423に追加し、リンク情報に記録する。このとき、制御処理部204は、当該リンクに対して伝送路推定を行い、伝送情報423を更新する。
ステップS2307において、制御処理部204は、タイマ部205にアクセスし、マルチキャストパケット待ちタイマを起動する。制御処理部204は、タイマが満了した場合、当該グループ管理情報701を削除する。この機能によって、制御処理部204は、不要なグループ管理情報701を削除することができるので、ハードウェアおよびソフトウェアのリソースを効率的に利用できる。
ステップS2308において、制御処理部204は、受信したマルチキャストパケットの転送を外部インタフェース処理部203に要求する。
ステップS2309において、制御処理部204は、受信したマルチキャストパケットのグループ管理情報701の転送ポリシー設定421が有効である場合には、ステップS2308へ進み、無効である場合には、ステップS2311へ進む。
ステップS2310において、制御処理部204は、受信したマルチキャストパケットのマルチキャストアドレスグループに対応するグループ管理情報701を作成する。
ステップS2311において、制御処理部204は、IGMP(MLD)メッセージのマルチキャストアドレスグループ転送ポリシー705を適用する。制御処理部204が、ステップS2311においてする処理は、図9に示すステップS507と同じ処理である。
なお、制御処理部204は、グループ管理情報701の初期状態として転送可否フラグ703を「許可」、転送ポリシー設定721を「無」、テンポラリマップ数722を「0」として設定する。
以下、図1に示される端末装置(A)〜(F)に、本実施形態に係る端末装置が用いられている場合を想定し、本実施形態に係る端末装置の処理を具体的に説明する。より詳細には、ホスト116が、ホスト111が配信するデータの取得を要求する場合について、端末装置(A)および(D)の処理を、図26および図27を参照しながら説明する。
<1.端末装置Dの処理>
まず、ホスト116は、マルチキャストグループPのマルチキャストパケットの受信を要求する。ホスト116は、マルチキャストアドレスグループPAを宛先としたIGMP JOINメッセージMPをネットワーク103へ発行する。端末装置(D)は、ホスト116が送信したIGMP JOINメッセージMPを受信すると、端末装置(D)の制御処理部204が、図26に示す処理を開始する。
端末装置(D)の制御処理部204は、ステップS2202において、受信したマルチキャストパケットがIGMP JOINメッセージMPであると判断して、ステップS2208の処理へ進む。制御処理部204は、受信したIGMP JOINメッセージMPを、ネットワーク101へダイバシチモードでブロードキャスト転送する。
<2.端末装置(A)の処理>
端末装置(D)が転送したIGMP JOINメッセージMPは、端末装置(A)に到達する。端末装置(A)の制御処理部204は、IGMP JOINメッセージMPを受信すると、図27に示す処理を開始する。
端末装置(A)の制御処理部204は、ステップS2302において、受信したマルチキャストパケットが、IGMP JOINメッセージであると判断して、ステップS2303へ進む。
制御処理部204は、ステップS2303において、受信したマルチキャストパケットが、IGMP JOINメッセージであると判断して、ステップS2304へ進む。
制御処理部204は、ステップS2304において、マルチキャストアドレスグループPAのグループ管理情報701は存在しないと判断して、ステップS2310へ進む。
制御処理部204は、ステップS2310において、マルチキャストアドレスグループPAのグループ管理情報701を作成する。制御処理部204は、マルチキャストアドレスグループPAのグループ管理情報701を作成すると、ステップS2306へ進む。
制御処理部204は、ステップS2306において、端末装置(A)と端末装置(D)とを接続するリンクについてのリンク情報を設定する。端末装置(A)の制御処理部204は、端末装置(A)と端末装置(D)とを接続するリンクの伝送路推定を行うと共に、登録テンポラリマップ数722を1に設定して、伝送情報423を更新する。
制御処理部204は、ステップS2307において、マルチキャストアドレスグループPAのグループ管理情報401に対応するマルチキャストパケット待ちタイマを起動し、ネットワーク103へIGMP JOINメッセージMPを転送する。制御処理部204が転送したIGMP JOINメッセージMPは、ホスト111が受信する。
<3.端末装置(A)の処理>
ホスト111は、端末装置(A)が転送したマルチキャストアドレスグループPAのIGMP JOINメッセージMPを受信して、マルチキャストアドレスグループPAのマルチキャストパケットをネットワーク103へ発行する。ホスト111が発行したマルチキャストパケットを、端末装置(A)が受信すると、端末装置(A)の制御処理部204は、図26に示す処理を開始する。
制御処理部204は、ステップS2202において、受信したマルチキャストパケットがIGMPメッセージではないと判断して、ステップS2203へ進む。
制御処理部204は、ステップS2203において、マルチキャストアドレスグループPAのグループ管理情報701が作成されていると判断し、ステップS2204へ進む。
制御処理部204は、ステップS2204において、転送可否フラグ703が「可」であると判断して、ステップS2205の処理へ進む。
制御処理部204は、ステップS2205において、マルチキャストアドレスグループPAの転送ポリシー設定721は「無効」であると判断し、ステップS2206へ進む。
制御処理部204は、ステップS2206において、グループ管理情報701のマルチキャストパケット待ちタイマを停止する。端末装置(A)の制御処理部204は、図27に示すステップS2306において、端末装置(A)と端末装置(D)とを接続するリンクの伝送路推定をしているので、ステップS2206において、伝送路推定を行わない。
制御処理部204は、ステップS2207において、マルチキャストアドレスグループ転送ポリシー705を再設定する。端末装置(A)の制御処理部204が、ステップS2207においてする処理は、図9に示すステップS505に示す処理と同様であるので、説明を省略する。
制御処理部204は、ステップS2211において、設定したマルチキャストアドレスグループ転送ポリシー705を適用して、マルチキャストパケットをネットワーク101へ転送する。
制御処理部204は、マルチキャストパケットPDの次に発行されるマルチキャストパケットPAも、マルチキャストパケットPDを転送した場合と同様に図26で示す処理に従って、ネットワーク101へ転送する。
<4.端末装置(D)の処理>
制御処理部204が、マルチキャストパケットPAを転送する処理と、マルチキャストパケットPDを転送する処理との相違点は、ステップS2205において、転送ポリシー設定721が「有効」を示すことに基づいて、設定されているマルチキャストアドレスグループPAのマルチキャストアドレスグループ転送ポリシー705をそのまま適用し、ネットワーク101へ転送する点である。
端末装置(D)の制御処理部204は、端末装置(A)が転送したマルチキャストアドレスグループPAのマルチキャストパケットを受信すると、図27に示す処理をする。
制御処理部204は、ステップS2302において、受信したマルチキャストパケットはIGMPメッセージではないと判断して、ステップS2308へ進む。
制御処理部204は、ステップS2308において、受信したマルチキャストパケットをネットワーク103へ転送する。端末装置(D)が転送したマルチキャストパケットは、ホスト116へ到達する。
<5.端末装置(B)の処理>
制御処理部204が、ステップS2202において転送したIGMP JOINメッセージMPは、ネットワーク101へダイバシチモードでブロードキャスト転送される。したがって、ホスト116が発行したIGMP JOINメッセージMPは、端末装置(A)以外の端末装置にも到達する。
IGMP JOINメッセージMPを受信するホストが接続されていない端末装置T100が、IGMP JOINメッセージMPを受信した場合の処理を、端末装置(B)の処理を例として説明する。
制御処理部204は、IGMP JOINメッセージMPを受信すると図27に示す処理を開始する。
制御処理部204は、端末装置(A)がIGMP JOINメッセージMPを受信した場合と同様に、図27に示すステップS2301〜ステップS2307の処理をする。
制御処理部204は、ステップS2301〜ステップS2307に示す処理をして、マルチキャストアドレスグループPAのグループ管理情報701を作成し、マルチキャストパケット待ちタイマを起動する。
制御処理部204は、グループ管理情報701のマルチキャストパケット待ちタイマを起動すると、ステップS2308へ進む。
制御処理部204は、ステップS2308において、受信したIGMP JOINメッセージMPをネットワーク103へ転送する。
端末装置(B)には、ホスト112が接続されている。しかし、ホスト112は、マルチキャストアドレスグループPAのマルチキャストパケットを配信するサーバではないので、マルチキャストアドレスグループPAのマルチキャストパケットを発行しない。
したがって、端末装置(B)が、ステップS2307において起動したマルチキャストアドレスグループPAのグループ管理情報701に対応するマルチキャストパケット待ちタイマが満了する。端末装置(B)の制御処理部204は、マルチキャストパケット待ちタイマが満了すると、マルチキャストアドレスグループPAのグループ管理情報701を破棄する。
以上のように、IGMP JOINメッセージに応答して、マルチキャストパケットを発行するネットワークアプリケーションをホストが実装している場合、端末装置T100の制御処理部204が、図26および図27に示す処理をすることによって、ネットワーク101に接続されている端末装置T100が、ネットワーク101を効率的に利用できる。
なお、本発明は、電灯線通信に限定されるものではない。電灯線以外にも、電話線、テレビアンテナ線(同軸線)、無線、構内音声線、アビオニクス線、鉄道E1線、その他非専用線、または専用線等、通信メディアとして様々なものに応用することができる。
また、上述の各実施形態は、記憶装置(ROM、RAM、ハードディスク等)に格納された、上述の処理手順をCPUに実行させることができるプログラムを、CPUに実行させることによって表現することもできる。この場合、当該プログラムは、記録媒体を介して記憶装置内に格納された上で実行されてもよいし、記録媒体上から直接実行されてもよい。ここでの記録媒体は、ROMやRAM、フラッシュメモリ等の半導体記憶素子集合、フレキシブルディスクやハードディスク等の磁気式ディスクメモリ、CD−ROMやDVD、BD(Blu−Ray Disk)等の光ディスク、メモリカード等の記録媒体をいう。
更に、図2、図20および図23に示される機能ブロックは、集積回路であるLSIとして実現されてもよい。この機能ブロックは、1チップ化されていてもよいし、一部またはすべてを含むように1チップ化されていてもよい。ここでは、LSIといったが、集積度の違いによっては、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法は、LSIに限られるものではなく、専用回路、または汎用プロセッサで集積回路化を行ってもよい。また、LSI製造後に結線することが可能な、FPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を採光性可能なリコンフィギュラブル・プロセッサーを用いてもよい。さらには、半導体技術の進歩または派生する別技術によってLSIに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて、機能ブロックを集積化してもよい。バイオ技術の適応等が可能性としてあり得る。
更に、本願で開示する発明は、例えば一般住宅、マンション等の隣接集合住宅、オフィス、工場、商業施設などの空間、さらには、自動車、飛行機、列車、船舶などの交通機関などで構築されるアビオニクスシステムなどのネットワークに対して、適用され得る。また、アドホックネットワークで構成された便宜上の論理ネットワークにおいても、本発明の技術によって、効率的な同報伝送が可能である。
更に、上記の各実施形態においては、端末装置が実装するグループ管理プロトコルがIGMPプロトコルまたはMLDプロトコルである場合について説明したが、端末装置が実装するグループ管理プロトコルはこれらに限定されるものではなく、グループを管理することができる他のグループ管理プロトコルを実装してもよいのはいうまでもない。
以上、本発明を詳細に例を挙げて説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく、種々の改良や変形を行うことができることは、いうまでもない。