(57)【特許請求の範囲】
【請求項１】
ネットワークに接続され、Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ４（ＩＰｖ４）パケットを生成するプロトコル制御部と、前記ＩＰｖ４パケットをＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ６（ＩＰｖ６）パケットに変換するヘッダ変換部と、前記ＩＰｖ６パケットを前記ネットワークに送信し、また、前記ネットワークからパケットを受信するネットワーク制御部とを有する通信制御装置において、
前記プロトコル制御部により生成されたＩｎｔｅｒｎｅｔ  Ｇｒｏｕｐ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＩＧＭＰ）パケットのＩＧＭＰヘッダに含まれる少なくともＴｙｐｅ情報を、Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｄｉｓｃｏｖｅｒｙ（ＭＬＤ）パケットのＭＬＤヘッダにおけるＴｙｐｅ情報に変換し、また、前記ＩＧＭＰヘッダに含まれるＩＰｖ４マルチキャストアドレスをＩＰｖ６マルチキャストアドレスに変換することにより、ＩＧＭＰヘッダをＭＬＤヘッダに変換してＭＬＤパケットを生成し、または、前記ネットワークから受信したＭＬＤパケットのＭＬＤヘッダに含まれる少なくともＴｙｐｅ情報をＩＧＭＰヘッダにおけるＴｙｐｅ情報に変換し、また、前記ＭＬＤヘッダに含まれるＩＰｖ６マルチキャストアドレスをＩＰｖ４マルチキャストアドレスに変換することにより、ＭＬＤヘッダをＩＧＭＰヘッダに変換してＩＧＭＰパケットを生成する変換制御部と、
前記プロトコル制御部により生成されたパケットに前記ＩＧＭＰヘッダが含まれていることにより前記パケットが前記ＩＧＭＰパケットであることを認識し、または、前記ネットワークから受信したパケットに前記ＭＬＤヘッダが含まれていることにより前記パケットが前記ＭＬＤパケットであることを認識し、前記変換制御部に前記パケットを渡すスイッチ制御部と
を更に有する前記通信制御装置。
【請求項２】
請求項１記載の通信制御装置において、
前記変換制御部は、前記ＩＧＭＰヘッダの前記Ｔｙｐｅ情報が“Ｍｅｍｂｅｒｓｈｉｐ  Ｑｕｅｒｙ”を示している場合、変換処理を終了する前記通信制御装置。
【請求項３】
請求項１記載の通信制御装置において、
前記変換制御部は、前記ＩＧＭＰヘッダの前記Ｔｙｐｅ情報が“Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ”を示している場合、前記ＩＧＭＰヘッダの前記Ｔｙｐｅ情報を“Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｒｅｐｏｒｔ”を示すＴｙｐｅ情報に変換する前記通信制御装置。
【請求項４】
請求項１記載の通信制御装置において、
前記変換制御部は、前記ＭＬＤヘッダの前記Ｔｙｐｅ情報が“Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｄｏｎｅ”を示している場合、前記ＭＬＤパケットを廃棄する前記通信制御装置。
【請求項５】
請求項１記載の通信制御装置において、
更にＩＰｖ４マルチキャストアドレスとＩＰｖ６マルチキャストアドレスとを対応付けて記憶する記憶部を備え、
前記変換制御部は、前記ＭＬＤヘッダの前記Ｔｙｐｅ情報が“Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｒｅｐｏｒｔ”を示している場合、前記ＭＬＤパケットに含まれる前記ＩＰｖ６マルチキャストアドレスに対応するＩＰｖ４マルチキャストアドレスが前記記憶部に登録されているか検索し、前記ＩＰｖ４マルチキャストアドレスが登録されている場合には、前記ＭＬＤヘッダの前記Ｔｙｐｅ情報を“Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ”を示すＴｙｐｅ情報に変換し、前記ＩＰｖ６マルチキャストアドレスを前記ＩＰｖ４マルチキャストアドレスに変換する前記通信制御装置。
【請求項６】
請求項５記載の通信制御装置において、
前記ＩＰｖ４マルチキャストアドレスが登録されていない場合には、前記変換制御部は前記ＭＬＤパケットを廃棄する前記通信制御装置。
【請求項７】
ネットワークに接続され、前記ネットワークからＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ４（ＩＰｖ４）パケットまたはＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ６（ＩＰｖ６）パケットを受信し、ＩＰｖ４パケットまたはＩＰｖ６パケットを前記ネットワークに送信するネットワーク制御部と、前記ＩＰｖ４パケットをＩＰｖ６パケットに変換し、または、前記ＩＰｖ６パケットをＩＰｖ４パケットに変換するヘッダ変換部とを有する通信制御装置において、
Ｉｎｔｅｒｎｅｔ  Ｇｒｏｕｐ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＩＧＭＰ）パケットのＩＧＭＰヘッダに含まれる少なくともＴｙｐｅ情報を、Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｄｉｓｃｏｖｅｒｙ（ＭＬＤ）パケットのＭＬＤヘッダにおけるＴｙｐｅ情報に変換し、また、前記ＩＧＭＰヘッダに含まれるＩＰｖ４マルチキャストアドレスをＩＰｖ６マルチキャストアドレスに変換することにより、ＩＧＭＰヘッダをＭＬＤヘッダに変換してＭＬＤパケットを生成し、または、ＭＬＤパケットのＭＬＤヘッダに含まれる少なくともＴｙｐｅ情報をＩＧＭＰヘッダにおけるＴｙｐｅ情報に変換し、また、前記ＭＬＤヘッダに含まれるＩＰｖ６マルチキャストアドレスをＩＰｖ４マルチキャストアドレスに変換することにより、ＭＬＤヘッダをＩＧＭＰヘッダに変換してＩＧＭＰパケットを生成する変換制御部と、
前記ネットワークから受信したパケットに前記ＩＧＭＰヘッダが含まれていることにより前記パケットが前記ＩＧＭＰパケットであることを認識し、または、前記ＭＬＤヘッダが含まれていることにより前記パケットが前記ＭＬＤパケットであることを認識し、前記変換制御部に前記パケットを渡すスイッチ制御部と
を更に有する前記通信制御装置。
【請求項８】
請求項７記載の通信制御装置において、
前記変換制御部は、前記ＩＧＭＰヘッダの前記Ｔｙｐｅ情報が“Ｍｅｍｂｅｒｓｈｉｐ  Ｑｕｅｒｙ”を示している場合、変換処理を終了する前記通信制御装置。
【請求項９】
請求項７記載の通信制御装置において、
前記変換制御部は、前記ＩＧＭＰヘッダの前記Ｔｙｐｅ情報が“Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ”を示している場合、前記ＩＧＭＰヘッダの前記Ｔｙｐｅ情報を“Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｒｅｐｏｒｔ”を示すＴｙｐｅ情報に変換する前記通信制御装置。
【請求項１０】
請求項７記載の通信制御装置において、
前記変換制御部は、前記ＭＬＤヘッダの前記Ｔｙｐｅ情報が“Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｄｏｎｅ”を示している場合、前記ＭＬＤパケットを廃棄する前記通信制御装置。
【請求項１１】
請求項７記載の通信制御装置において、
更にＩＰｖ４マルチキャストアドレスとＩＰｖ６マルチキャストアドレスとを対応付けて記憶する記憶部を備え、
前記変換制御部は、前記ＭＬＤヘッダの前記Ｔｙｐｅ情報が“Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｒｅｐｏｒｔ”を示している場合、前記ＭＬＤパケットに含まれる前記ＩＰｖ６マルチキャストアドレスに対応するＩＰｖ４マルチキャストアドレスが前記記憶部に登録されているか検索し、前記ＩＰｖ４マルチキャストアドレスが登録されている場合には、前記ＭＬＤヘッダの前記Ｔｙｐｅ情報を“Ｍｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ”を示すＴｙｐｅ情報に変換し、前記ＩＰｖ６マルチキャストアドレスを前記ＩＰｖ４マルチキャストアドレスに変換する前記通信制御装置。
【請求項１２】
請求項７記載の通信制御装置において、
前記ＩＰｖ４マルチキャストアドレスが登録されていない場合には、前記変換制御部は前記ＭＬＤパケットを廃棄する前記通信制御装置。
【請求項１３】
ネットワークと接続され、Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ４（ＩＰｖ４）に対応するアプリケーション、前記アプリケーションが実行されることにより生成されるデータを含むＩＰｖ４パケットを生成するプロトコル制御プログラム、前記ＩＰｖ４パケットのＩＰｖ４ヘッダに含まれるＩＰｖ４アドレスをＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ６（ＩＰｖ６）アドレスに変換し、前記ＩＰｖ４ヘッダをＩＰｖ６ヘッダに変換することによりＩＰｖ６パケットを生成するＩＰヘッダ変換プログラムとを格納するメモリと、前記メモリに格納された各プログラムを実行するＣＰＵとを有し、前記ネットワークを介して他の通信制御装置と通信する通信制御装置において、
前記メモリは、
Ｉｎｔｅｒｎｅｔ  Ｇｒｏｕｐ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＩＧＭＰ）パケットのＩＧＭＰヘッダに含まれるＴｙｐｅ情報と、Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｄｉｓｃｏｖｅｒｙ（ＭＬＤ）パケットのＭＬＤヘッダに含まれるＴｙｐｅ情報とを相互に変換し、前記ＩＧＭＰヘッダに含まれるＩＰｖ４マルチキャストアドレスと前記ＭＬＤヘッダに含まれるＩＰｖ６マルチキャストアドレスとを相互に変換することにより、ＩＧＭＰヘッダとＭＬＤヘッダとを相互に変換し、ＩＧＭＰパケットまたはＭＬＤパケットを生成する変換制御プログラムと、
前記プロトコル制御プログラムにより生成されたパケットに前記ＩＧＭＰヘッダが含まれていることにより前記パケットが前記ＩＧＭＰパケットであることを認識し、または、前記ネットワークから受信したパケットに前記ＭＬＤヘッダが含まれていることにより前記パケットが前記ＭＬＤパケットであることを認識し、前記変換制御プログラムを起動するスイッチ制御プログラムと
を更に格納し、
前記ＣＰＵは、前記変換制御プログラムと前記スイッチ制御プログラムを実行する
前記通信制御装置。
【請求項１４】
ネットワークに接続され、Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ４（ＩＰｖ４）パケットを生成し、前記ＩＰｖ４パケットをＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ６（ＩＰｖ６）パケットに変換して前記ネットワークに送信し、または、前記ネットワークからＩＰｖ６パケットを受信し、前記ＩＰｖ６パケットをＩＰｖ４パケットに変換する通信制御装置によって実行されるパケット変換方法において、
Ｉｎｔｅｒｎｅｔ  Ｇｒｏｕｐ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＩＧＭＰ）パケットを生成し、前記ＩＧＭＰパケットのＩＧＭＰヘッダに含まれる少なくともＴｙｐｅ情報を、Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｄｉｓｃｏｖｅｒｙ（ＭＬＤ）パケットのＭＬＤヘッダにおけるＴｙｐｅ情報に変換し、前記ＩＧＭＰヘッダに含まれるＩＰｖ４マルチキャストアドレスをＩＰｖ６マルチキャストアドレスに変換することにより、ＩＧＭＰヘッダをＭＬＤヘッダに変換してＭＬＤパケットを生成し、または、前記ネットワークから受信したＭＬＤパケットのＭＬＤヘッダに含まれる少なくともＴｙｐｅ情報をＩＧＭＰヘッダにおけるＴｙｐｅ情報に変換し、前記ＭＬＤヘッダに含まれるＩＰｖ６マルチキャストアドレスをＩＰｖ４マルチキャストアドレスに変換することにより、ＭＬＤヘッダをＩＧＭＰヘッダに変換してＩＧＭＰパケットを生成する前記パケット変換方法。
【請求項１５】
ネットワークに接続され、前記ネットワークからＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ４（ＩＰｖ４）パケットまたはＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ６（ＩＰｖ６）パケットを受信し、前記ＩＰｖ４パケットをＩＰｖ６パケットに変換し、または、前記ＩＰｖ６パケットをＩＰｖ４パケットに変換し、前記ＩＰｖ４パケットまたは前記ＩＰｖ６パケットを前記ネットワークに送信する通信制御装置により実行されるパケット変換方法において、
前記ネットワークから受信したパケットにＩｎｔｅｒｎｅｔ  Ｇｒｏｕｐ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＩＧＭＰ）ヘッダが含まれていることにより前記パケットがＩＧＭＰパケットであることを認識し、または、Ｍｕｌｔｉｃａｓｔ  Ｌｉｓｔｅｎｅｒ  Ｄｉｓｃｏｖｅｒｙ（ＭＬＤ）ヘッダが含まれていることにより前記パケットがＭＬＤパケットであることを認識し、前記ＩＧＭＰパケットの前記ＩＧＭＰヘッダに含まれる少なくともＴｙｐｅ情報を、ＭＬＤヘッダにおけるＴｙｐｅ情報に変換し、また、前記ＩＧＭＰヘッダに含まれるＩＰｖ４マルチキャストアドレスをＩＰｖ６マルチキャストアドレスに変換することにより、前記ＩＧＭＰヘッダをＭＬＤヘッダに変換してＭＬＤパケットを生成し、または、前記ＭＬＤパケットの前記ＭＬＤヘッダに含まれる少なくともＴｙｐｅ情報をＩＧＭＰヘッダにおけるＴｙｐｅ情報に変換し、また、前記ＭＬＤヘッダに含まれるＩＰｖ６マルチキャストアドレスをＩＰｖ４マルチキャストアドレスに変換することにより、前記ＭＬＤヘッダをＩＧＭＰヘッダに変換してＩＧＭＰパケットを生成する前記パケット変換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マルチキャスト通信方法に係る。本発明は、例えば、IPv4ネットワークに対応するマルチキャストアプリケーションをIPv6ネットワーク上で動作させる方法、パケット生成する方法、IPネットワーク用トランスレータ、NAT（Network Address Translator）、並びにパケット生成プログラムを記録した記憶媒体等に適用されるマルチキャスト通信方法に関する。
【０００２】
【従来の技術】
情報通信の分野では、一般に１台のホストから複数のホストに対して同時に同一のデータを配信する方法としてマルチキャスト配信と呼ばれる方法がある。マルチキャスト配信では、複数のホストで１つのグループを形成し、該グループ内の全ホストへ１つのマルチキャストパケットを用いて同一のデータを配信する。
【０００３】
インターネットにおける標準プロトコルは、TCP/IP（Transmission Control Protocol/Internet Protocol）であり、現時点ではバージョン４のIPが普及している（以下IPv4と呼ぶ）。IPは、現在インターネットの普及などと歩調を合わせて様々な通信サービスに急速に広がりつつあるが、その一方でIPアドレスの枯渇という深刻な課題に直面している。これを解決するための手段として、現在バージョン６のIP（以下IPv6と呼ぶ）が提案されている。このTCP/IPv4やTCP/IPv6においても、マルチキャスト配信を使ったIPマルチキャストと呼ばれる技術がある。
【０００４】
IPマルチキャストでは、グループ毎にIPマルチキャストアドレスと呼ばれる特定のIPアドレスを規定し、このIPマルチキャストアドレスを宛先IPアドレスとしたIPマルチキャストパケットを用いて各ホストへデータを配信する。IPv4マルチキャストの１プロトコルとして、例えば、RFC（Request For Comment）1112,2236記載のIGMP（Internet Group Management Protocol）がある。IGMPは、IPv4ホストが隣接するルータに対して、マルチキャスト配信を要求するためのプロトコルである。これにより、IPv4ホストはIPv4マルチキャストパケットの受信が可能になる。
【０００５】
一方、IPv6マルチキャストの１プロトコルとしては、ドラフト（’99年5月での最新版は、draft-ietf-ipngwg-mld-01.txt）記載のMLD（Multicast Listener Discovery）がある。MLDは、IGMPと同様にIPv6ホストが隣接するルータに対して、マルチキャスト配信を要求するためのプロトコルである。これにより、ホストはIPv6マルチキャストパケットの受信が可能になる。
【０００６】
現在では、IPv6によるLANとIPv4によるLANが混在した形で大規模なLANが形成されつつある。そして、IPv6によるLANとIPv4によるLANの相互隣接に関する標準化のドキュメントとしてRFC1933がある。RFC1933（Transition Mechanism for IPv6 Hosts and Routors:R.Gilligam,1996.4,IETF）では、IPv6ソフトウェアを有する通信制御装置において、IPv4アドレスをIPv6アドレスにマッピングすることでIPv6ネットワークの相互隣接を可能にしている。また、特願平10-46739では、ユニキャスト通信において、通信制御装置内のIPv4-IPv6プロトコル変換制御部がIPv4アプリケーションとIPv6ホストとの通信を可能にしている。
【０００７】
【発明が解決しようとする課題】
このように、現在、IPv4ネットワークとIPv6ネットワークの混在環境が形成されつつある。しかし、IPv6マルチキャスト対応のアプリケーション（AP）は、IPv4マルチキャスト対応のAPに比べて非常に少ない。また、従来パーソナルコンピュータ／ワークステーション（PC/WS）上のIPv4マルチキャスト対応アプリケーションと、PC/WS上のIPv6マルチキャスト対応アプリケーションがNAT機能を有するアドレス変換ルータ等のネットワーク機器を介さずに直接通信する手段はなかった。
【０００８】
IPv4マルチキャスト通信を行う場合、IPv4マルチキャストデータの配信を制御するIGMPが必須であり、IPv6マルチキャスト通信を行う場合には、IPv6マルチキャストデータの配信を制御するMLDが必須である。従って、IPv4ホストとIPv6ホスト間にあるIPv4-IPv6変換通信制御装置には、IGMPとMLDを変換する機能が必要であるが、従来このような手段はなかった。また、IPv4マルチキャスト対応アプリケーションが動作するPC/WSがIPv6ネットワークで動作するためにも、IGMPとMLDのプロトコル変換制御が必須である。
【０００９】
本発明は、以上の点に鑑み、その目的は、主に、以下の点にある。
（１）PC/WS上のIPv4マルチキャスト対応のアプリケーションがNAT機能を有するアドレス変換ルータ等のネットワーク機器を介さずに直接PC/WS上のIPv6対応アプリケーションと通信できるようにすること。
【００１０】
（２）IPv4ホストから出力されるIPマルチキャストパケットをIPv6ホストで受信できるようにし、IPv6ホストから出力されるIPマルチキャストパケットをIPv4ホストで受信できるようにすることである。
【００１１】
【課題を解決するための手段】
PC/WS等のLAN制御装置は、通常、IPv4対応AP（アプリケーション）、IPv4プロトコル制御部及び複数のLAN制御部を備える。さらに、本発明では、上述の目的を達成させるため、LAN制御装置内のIPv4プロトコル制御部とLAN制御部間のプロトコル変換制御部の中にIGMP-MLD変換制御部を設ける。プロトコル変換制御部内には、IGMP-MLD変換制御部以外にIPv4-IPv6送信スイッチ制御部、IPv4-IPv6受信スイッチ制御部、IPヘッダ変換制御部、IPv6送受信制御部を備える。
【００１２】
上述の課題を解決するため、IGMP-MLD変換制御部は、主に、プロトコル制御部から出力されるIGMPパケットをMLDパケットに変換し、LAN制御部を介してネットワークへ出力する。また、IGMP-MLD変換制御部は、ネットワークから入力したMLDパケットをIGMPパケットに変換し、プロトコル変換制御部へ出力する。これにより、通信制御装置内のIPv4マルチキャストアプリケーションをIPv6ネットワーク上で通信させることが可能になる。
【００１３】
また、上述の課題を解決するため、本発明では、LAN制御装置内のIPv4-IPv6送受信スイッチ制御部は、IPv4ネットワークから入力されるIPv4パケットの内IGMPパケットを判別し、IGMP-MLD変換制御部へ渡す。IGMP-MLD変換制御部では、IGMPパケットをMLDパケットに変換してLAN制御部を通してIPv6ネットワークへ出力する。その後、IPv4マルチキャストパケットが入力されたら、IPヘッダ変換制御部がIPv6マルチキャストパケットに変換し、IPv6ネットワークへ出力する。
【００１４】
また、LAN制御装置内のIPv4-IPv6送受信スイッチ制御部は、IPv6ネットワークから入力されるIPv6パケット内MLDパケットを判別し、IGMP-MLD変換制御部へ渡す。IGMP-MLD変換制御部ではMLDパケットをIGMPパケットに変換してLAN制御部を通してIPv4ネットワークへ出力する。その後、IPv6マルチキャストパケットが入力されたらIPヘッダ変換制御部がIPv4マルチキャストパケットに変換し、IPv4ネットワークへ出力する。
【００１５】
このようにして、本発明では、IPv4ホストから出力されるIPマルチキャストパケットをIPv6ホストで受信し、IPv6ホストから出力されるIPマルチキャストパケットをIPv4ホストで受信することができる。
【００１６】
【発明の実施の形態】
本発明を示す第一の実施の形態について説明する。
まず、本実施の形態を使用したLAN制御装置の構成について説明する。図１は、本発明の第一の実施の形態におけるLAN制御装置の構成を示す図である。また、図２は、情報処理装置の構成を示す図である。通常LAN制御装置のハードウエアは図２に示すような構成をもつ。また、例えば図２のメモリ2002又はCPU2001内に、図１の構成が含まれる。
【００１７】
LAN制御装置1001は、アプリケーション(AP)が動くユーザ空間1002とカーネルが動くカーネル空間1016を備える。ユーザ空間1002には、TCP/IPv4対応マルチキャストAP1006を有する。カーネル空間1016は、プロトコル制御部1003、プロトコル変換制御部1004、LAN制御部1005を備える。プロトコル制御部1003は、TCP送受信制御部1007とIPv4送受信制御部1008を備える。プロトコル変換制御部1004は、IPv4-IPv6送信スイッチ制御部1009とIPヘッダ変換制御部1010、IGMP-MLD変換制御部1011、IPv6送受信制御部1012、IPv4-IPv6受信スイッチ制御部1013を備える。なお、IPv4-IPv6受信スイッチ制御部1013にIPv6送受信制御部1012を含めるようにしてもよい。
【００１８】
TCP/IPv4対応マルチキャストAP1006とプロトコル制御部1003とのインタフェースは、TCP/IPv4対応AP1006が生成するデータパケットを入出力することにより行われる。プロトコル制御部1003とプロトコル変換制御部1004のインタフェースは、IPv4パケットを入出力することにより行われる。
【００１９】
図３は、IPv4ヘッダフォーマットの説明図である。また、図４は、IPv6ヘッダフォーマットの説明図である。IPv4パケットとは、図３に示すデータパケットにIPv4ヘッダとMAC（Media Access Control）ヘッダを加えたパケットである。プロトコル変換制御部1004とLAN制御部1005の間のインタフェースは、IPv4パケット又はIPv6パケットを入出力することにより行われる。また、IPv6パケットとは、データパケットに図４に示すように、IPv6ヘッダとMACヘッダを加えたパケットである。
【００２０】
次にプロトコル変換制御部内の各制御部間の入出力インタフェースについて説明する。プロトコル変換制御部内の各制御部間はすべて、IPv4パケット又は、IPv6パケットを入出力することによって行われる。
【００２１】
次に各制御部の機能について説明する。
IPv4-IPv6送信スイッチ制御部1009は、プロトコル制御部1003から渡されたIPv4パケットに対するパケットスイッチング機能と自局IPv4アドレス決定機能を持つ。この処理内容については後で詳しく説明する。
【００２２】
IPv6送受信制御部1012は、IPv6プロトコル処理を行う。IPヘッダ変換制御部1010にあるアドレス変換テーブル1014は、IPv4アドレスとIPv6アドレスの対応テーブルである。IPヘッダ変換制御部1010は、アドレス変換テーブル1014に従ってIPv4ヘッダとIPv6ヘッダの変換を行う。IGMP-MLD変換制御部1011は、IPv6マルチキャスト加入テーブル1015に従って、IGMPパケットとMLDパケットの変換を行う。ここで、IGMPパケットとは、IPv4パケット内のデータパケットがIGMPヘッダとデータパケットに分かれているパケットである。MLDパケットとは、IPv6パケット内のデータパケットがMLDヘッダとデータパケットに分かれているパケットである。
【００２３】
図５は、IPv6マルチキャスト加入テーブルを示す図である。IGMP-MLD変換制御部1011内のIPv6マルチキャスト加入テーブル1015は、図示のような項目を１エントリとし、複数のエントリから構成されるテーブルである。IGMPバージョンは、プロトコル制御部1003のIGMP機能がサポートするIGMPのバージョンを示す。IPv4マルチキャストアドレスとIPv6マルチキャストアドレスは、現在LAN制御装置が加入しているIPv4/IPv6マルチキャストグループの対応関係を示している。エントリ保存時間は、このエントリが有効な最大時間を示す。IPv4-IPv6受信スイッチ制御部1013は、LAN制御部1005からの受信パケット（IPv4パケット又は、IPv6パケット）に対するパケットスイッチング機能を持つ。
【００２４】
図６は、IGMPメッセージフォーマットの説明図である。ここでは、IGMPヘッダについて説明する。TypeはIGMPのメッセージタイプの種別を示す。タイプにはMembership Query（マルチキャストグループ問い合わせ）、Membership Report（マルチキャストグループ報告）、Leave Group（マルチキャストグループ離脱）がある。Max Resp TimeはIGMPヘッダのTypeがMembership Query メッセージのIGMPパケットに対するIGMPヘッダのTypeがMembership ReportのIGMPパケットを送信するための最大遅延時間を示す。Group Addressは、IPv4マルチキャストアドレスが入る。
【００２５】
図７は、MLDメッセージフォーマットの説明図である。ここでは、MLDヘッダについて説明する。TypeはMLDメッセージタイプの種別を示す。タイプには、Multicast Listener Query（マルチキャストグループ問い合わせ）、Multicast Listener Report（マルチキャストグループ報告）、Multicast Listener Done（マルチキャストグループ離脱）がある。Maximam Respose Delayは、MLDヘッダのTypeがMulticast Listener QueryメッセージのMLDパケットに対するMLDヘッダのTypeがMulticast Listener ReportのMLDパケットを送信するための最大遅延時間を示す。Multicast Addressには、IPv6マルチキャストアドレスが入る。
【００２６】
次にマルチキャストデータ送信時のデータの流れについて説明する。
まず、TCP／IPv4対応マルチキャストAP 1006は、マルチキャストデータを生成し、プロトコル制御部1003に送出する。プロトコル制御部1003はマルチキャストデータにTCP(Transmission control protocol)ヘッダ又はUDP(User datagram protocol)ヘッダ、IPv4ヘッダを付加し、プロトコル変換制御部1004に送出する。このとき、IPv4ヘッダのDestination AddressフィールドにはIPv4マルチキャストアドレスが入っている。プロトコル変換制御部1004内のIPv4-IPv6送信スイッチ制御部1009は、IPv4マルチキャストパケットを受け取ると、IPv4ヘッダを見て、通常のデータパケットであることを判定する。
【００２７】
そして、IPv4-IPv6送信スイッチ制御部1009は、IPヘッダ変換制御部1010にIPv4マルチキャストパケットを渡す。IPヘッダ変換制御部1010は、アドレス変換テーブル1014を参照し、IPv4ヘッダのDestination Addressフィールドに書かれているIPv4マルチキャストアドレスとSource AddressをIPv6アドレスに変換し、IPv4ヘッダ全体をIPv6ヘッダに変換する。そして、生成されたIPv6マルチキャストパケットは、IPv6送受信制御部1012、IPv4-IPv6受信スイッチ制御部1013を経て、LAN制御部1005からIPv6ネットワークに出力される。
【００２８】
次にマルチキャストデータ受信時のマルチキャスト制御とマルチキャストデータの流れについて説明する。
まず、TCP/IPv4対応マルチキャストAP1006は、マルチキャストデータを受信する場合、受信したいマルチキャストアドレスに対し、マルチキャストグループ加入のための制御パケットをネットワークに出力するための制御命令をプロトコル制御部1003に出す。プロトコル制御部1003のIPv4送受信制御部1008は、その制御命令により、IGMPパケットを生成し、プロトコル変換制御部1004に渡す。プロトコル変換制御部1004内のIPv4-IPv6送信スイッチ制御部1009は、IGMPパケットを受け取るとIGMPヘッダをみてIGMP-MLD変換制御部1011にIGMPパケットを渡す。IGMP-MLD変換制御部１０１１はIGMPヘッダをMLDヘッダに変換する。そして、IPv6マルチキャスト加入テーブル1015及びアドレス変換テーブル1014にIPv4マルチキャストアドレスとIPv6マルチキャストアドレスの対応情報を登録し、MLDパケットをLAN制御部1005からIPv6ネットワークへ出力する。
【００２９】
次に、IPv4-IPv6受信スイッチ制御部1013は、IPv6ネットワークからIPv6マルチキャストデータパケットをLAN制御部1005から受け取ると、IPv6マルチキャストデータパケット内IPv6ヘッダのDestination AddressとSource Addressフィールドに入っているIPv6アドレスがアドレス変換テーブル1014に登録されているか判定し、登録されていたらIPv6マルチキャストデータパケットをIPヘッダ変換制御部1010に渡す。IPヘッダ変換制御部1010はアドレス変換テーブル1014を基にIPv6マルチキャストデータパケットのIPv6ヘッダをIPv4ヘッダに変換し、プロトコル制御部1003に渡す。プロトコル制御部1003はIPv4マルチキャストデータパケットをプロトコル処理し、マルチキャストデータをTCP/IPv4対応マルチキャストAP 1006に渡す。
【００３０】
つぎに、IGMP-MLD変換制御部1011の処理フローについて説明する。図８は、本発明の第一の実施の形態におけるMLDからIGMPへの変換処理フローを示す図である。図９は、本発明の第一の実施の形態におけるIGMPからMLDへの変換処理フローを示す図である。
【００３１】
まず、MLDパケットをIGMPパケットに変換する処理フローについて図８を使って説明する。IGMP-MLD変換制御部1011は、MLDからIGMPへの変換処理が開始されると(11001)、IPv4-IPv6受信スイッチ制御部1004からMLDパケットを受け取り、MLDパケット、MLDヘッダのTYPEフィールドを参照する。TYPEフィールドに“General Query”が入っていたら（11002）、IPv6マルチキャスト加入テーブル1015に登録されているIPv6マルチキャストアドレスを使ってMLDヘッダをIGMPヘッダに変換し、アドレス変換テーブル1014を使ってIPv6ヘッダをIPv4ヘッダに変換することでMLDパケットをIGMPパケットに変換する（11003）。一方、MLDヘッダのTYPEフィールドに“Specific Query”又は、“Report”が入っていたら（11004、11008）IPv6マルチキャスト加入テーブル1015を検索する（11005、11009）。該当レコードがない場合、受信パケットを破棄する（11006、11010）。該当レコードがあった場合、該当レコードの情報を基にMLDヘッダをIGMPヘッダに変換する（11007、11011）。また、MLDヘッダのTYPEフィールドに“Done”が入っていたら（11012）、パケットを破棄する（11013）。
【００３２】
つぎに、IGMPパケットをMLDパケットに変換する処理フローについて図９を使って説明する。
IGMP-MLD変換制御部1011は、処理が開始されると(12001)、IPv4-IPv6送信スイッチ制御部1009からIGMPパケットを受け取り、IGMPパケットのIGMPヘッダのTYPEフィールドを参照する。TYPEフィールドに“Menbership Query”が入っていたら処理を完了する。TYPEフィールドに“menbership Report”が入っていたら（12003）、IGMPからMLDヘッダへの変換処理を行い（12004）、変換したIPv6マルチキャストアドレスとIPv4マルチキャストアドレスを使って、IPv6マルチキャスト加入テーブルとアドレス変換テーブルを更新する（12005、12006）。TYPEフィールドに“Leave Group”が入っていた場合も(12007)、同様の処理を行う。
【００３３】
次に、IPv4-IPv6マルチキャスト変換システムにおけるデータシーケンスを説明する。図１０は、図1に示したLAN制御装置を使ったマルチキャスト通信ネットワークシステムの構成例を示す図である。図１１は、本発明の実施の形態におけるホストAのアドレス変換テーブルの構成例を示す図である。図１２は、本発明の実施の形態におけるホストBのアドレス変換テーブル構成例を示す図である。図１３は、本発明の第一の実施の形態におけるパケットデータのシーケンス図である。
【００３４】
ホストA 7001は、LAN1に接続し、サーバ間のTCPはIPv4マルチキャスト対応APが動作している。ホストB 7007はLAN2に接続し、クライアント用のTCP/IPv4マルチキャスト対応APが動作している。図１０の通信システムにおいて、ホストA 7001が出力するマルチキャストデータをホストB 7007が受信するデータシーケンスについて図１３を使って説明する。
【００３５】
ホストA 7001のTCP/IPv4マルチキャスト対応AP 7002は、プロトコル制御部7003を使ってIPv4マルチキャストデータをプロトコル変換制御部7004へ出力する。プロトコル変換制御部7004は、図１１に示すアドレス変換制御テーブル8001を使ってIPv4ヘッダをIPv6ヘッダに変換し、IPv6マルチキャストデータをLAN1へ出力する。しかし、IPv6マルチキャストルータ7006は、この時点では、LAN2に接続されているホストを認識していないため（又は、マルチキャスト通信のグループのメンバーとして登録されていないため）、受信したIPv6マルチキャストデータをLAN2へフォワードしない。
【００３６】
これに対しホストB 7007のTCP/IPv4対応マルチキャストAP（クライアントソフトウェア）は、ホストA 7001が出力するマルチキャストデータを受信するため、このマルチキャストグループに対して、プロトコル制御部7010を使って、IGMPヘッダのTypeフィールドに“Report”をセットしたIGMPパケットをプロトコル変換制御部7009に送出する。プロトコル変換制御部7009は、図５に示すようなIPv6マルチキャスト加入テーブル10001を使ってIGMPヘッダをMLDヘッダに変換し、MLDパケット（MLDヘッダのTypeフィールドに“Report”種別がセットされている）をLAN2へ出力する。IPv6マルチキャストルータ7006はMLDパケットを受信し、LAN2側にクライアントが接続されていることを認識するとホストA7001が送出しているIPv6マルチキャストデータをLAN2へフォワードする。IPv6マルチキャストデータを受信したホストB 7007のLAN制御部7008は、このデータをプロトコル変換制御部7009へ渡す。プロトコル変換制御部7009は、図１２に示すアドレス変換テーブル9001を使ってIPv6ヘッダをIPv4ヘッダに変換し、IPv4マルチキャストデータをプロトコル制御部7009へ送出し、TCP/IPv4対応マルチキャストAP 7011は、マルチキャストデータを受信することができる。
【００３７】
つぎに、本発明を示す第二の実施の形態について説明する。
図１４は本発明の第二の実施の形態におけるLAN制御装置の構成を示す図である。図１５は、本発明の第二の実施の形態における通信ネットワークシステムの構成例を示す図である。図１６は、本発明の第二の実施の形態におけるパケットデータのシーケンス図である。図１７は、本発明の第二の実施の形態におけるパケットデータのシーケンス図である。
【００３８】
LAN制御装置13001は、IGMP-MLD変換制御部13002、IPヘッダ変換制御部13004、IPv4-IPv6送受信スイッチ制御部13006、LAN１制御部13008、LAN２制御部13007、IPv6送受信制御部13009を備える。IGMP-MLD変換制御部13002はIPv6マルチキャスト加入テーブル10003に従って、IGMPパケットとMLDパケットの変換を行う。IPヘッダ変換制御部13004はアドレス変換テーブル13005に従ってIPv4ヘッダとIPv6ヘッダの変換を行う。
【００３９】
つぎに、各制御部間の入出力インタフェースについて説明する。
まず、IPv4ネットワークから入力されたデータをIPv6ネットワークへ送出する場合について説明する。LAN1制御部13008はIPv4ネットワークよりパケットデータを受信するとIPv4-IPv6送受信スイッチ制御部13006へ渡す。IPv4-IPv6送受信スイッチ制御部13006はパケットデータ内IPv4ヘッダをチェックする。IPv4パケットの場合は、IPヘッダ変換制御部13004にIPv4パケットを渡し、IGMPパケットの場合は、IGMP-MLD変換制御部13002へIGMPパケットを渡す。IPヘッダ変換制御部13004はアドレス変換テーブル13005を基にIPv4ヘッダをIPv6ヘッダに変換し、IPv6パケットをIPv4-IPv6送受信スイッチ制御部13006に渡し、LAN2制御部を通してIPv6ネットワークへ送出する。IGMP-MLD変換制御部13002は、IPv6マルチキャスト加入テーブル13003を基にIPv4ヘッダ、IGMPヘッダをIPv6ヘッダ、MLDヘッダに変換し、MLDパケットをIPv4-IPv6送受信スイッチ制御部13006に渡す。そして、LAN2制御部13007を通してIPv6ネットワークへMLDパケットを送出する。IPv6ネットワークから入力されたデータをIPv4ネットワークへ送出する場合も同様にIGMP-MLD変換制御部13002ではMLDパケットをIGMPパケットに変換し、IPヘッダ変換制御部13004ではIPv6パケットをIPv4パケットに変換することで実現する。
【００４０】
つぎに、IPv4-IPv6マルチキャスト変換システムにおけるデータの流れについて説明する。図１５は、IPv4-IPv6マルチキャスト通信システムの構成例を示す図である。LAN1およびLAN2には、IPv6クライアント／サーバ、IPv6ルータが接続され、IPv6クライアント／サーバ上では、マルチキャストアプリケーションが動作している。LAN3およびLAN4にはIPv4クライアント／サーバ、IPv4ルータが接続され、IPv4クライアント／サーバ上ではマルチキャストアプリケーションが動作している。LAN制御装置13001はLAN1、LAN2が形成するIPv6マルチキャストネットワークとLAN3,LAN4が形成するIPv4マルチキャストネットワークを接続する。
【００４１】
まず、IPv4サーバ14006が出力するマルチキャストデータをIPv6クライアント14001が受信するまでのデータシーケンスについて、図１６を使って説明する。  IPv4サーバ14006はIPv4マルチキャストデータをLAN4上に送信し続けている。しかし、IPv4ルータ14005はLAN3側のクライアントを認識していないため、IPv4マルチキャストデータをLAN3へフォワードしない。これに対し、IPv6クライアント14001は、IPv4サーバ14006が出力するマルチキャストデータを受信するため、そのマルチキャストグループに対して、MLDヘッダのTYPEフィールドに”Report"をセットしたMLDパケットをLAN1に送出する。
【００４２】
LAN制御装置13001内IGMP-MLD変換制御部13002はMLDパケットをIGMPパケット（IGMPヘッダのTYPEフィールドに”Report"種別がセットされている）に変換し、LAN3へ送出する。IPv4ルータ14005は、IGMPパケットを受信し、LAN3側にクライアントがいることを確認するとIPv4サーバ14006が送出しているIPv4マルチキャストデータをLAN3へフォワードする。IPv4マルチキャストデータを受信したLAN制御装置13001は、IPヘッダ変換制御部13004がIPv4マルチキャストデータをIPv6マルチキャストデータに変換し、これをLAN1へ送出する。IPv6クライアントはLAN1へ送出されたIPv6マルチキャストデータを受信し、IPv4-IPv6マルチキャスト通信が成立する。
【００４３】
次に、IPv6サーバ14003が出力するマルチキャストデータをIPv4クライアント14004が受信するまでのデータシーケンスについて図１７を使って説明する。IPv6サーバ14003は、IPv6マルチキャストデータをLAN2上に送信し続けている。しかし、この時点では、IPv6ルータ14002はLAN側にクライアントがいないため、（又は、クライアントとして設定されていないため）IPv6マルチキャストデータをLAN1へフォワードしない。これに対し、IPv4クライアント14004は、IPv6サーバ14003が出力するマルチキャストデータを受信するため、そのマルチキャストグループに対して、IGMPヘッダのTypeフィールドに“Report”種別をセットしたIGMPパケットをLAN3に送出する。LAN制御装置13001間、IGMP-MLD変換制御部13002は、IGMPパケットをMLDパケット（MLDヘッダのTypeフィールドに“Report”がセットされている）に変換し、LAN1へ送出する。IPv6ルータ14002はMLDパケットを受信し、LAN1側にクライアントがいることを認識するとIPv6サーバ14003が送出しているIPv6マルチキャストデータをLAN1へフォワードする。IPv6マルチキャストデータを受信したLAN制御装置13001は、IPヘッダ変換制御部13004がIPv6マルチキャストデータをIPv4マルチキャストデータに変換し、これをLAN3へ送出する。IPv6クライアントはLAN3へ送出されたIPv4マルチキャストデータを受信し、IPv4-IPv6マルチキャスト通信が成立する。
【００４４】
なお、本発明のマルチキャスト通信方法は、マルチキャスト通信プログラムを記録した記録媒体又はそれを含むプログラム製品として提供されることができる。
【００４５】
【発明の効果】
本発明によると、以上のように、PC/WS等のLAN制御装置を構成する従来のプロトコル制御部とLAN制御部の間にプロトコル変換制御部をおき、プロトコル変換制御部の中にIGMP-MLD変換制御部を設けることにより、プロトコル制御部とLAN制御部との間で流れるパケットの内、マルチキャスト制御用のパケット（MLDパケット及びIGMPパケット）のマルチキャスト制御ヘッダ（MLDヘッダとIGMPヘッダ）の変換が可能になり、PC/WS上のIPv4マルチキャスト対応のアプリケーションが直接PC/WS上のIPv6対応アプリケーションとの通信が可能になる。
【００４６】
また、本発明によると、ルータ/スイッチ等のLAN制御装置にIPヘッダ変換制御部とIGMP-MLD変換制御部を設けることにより、IPv4ホストから出力されるIPマルチキャストパケットをIPv6ホストで受信でき、IPv6ホストから出力されるIPマルチキャストパケットをIPv4ホストで受信することが可能になる。
【図面の簡単な説明】
【図１】本発明の第一の実施の形態におけるLAN制御装置の構成を示す図である。
【図２】情報処理装置の構成を示す図である。
【図３】  IPv4ヘッダフォーマットの説明図である。
【図４】  IPv6ヘッダフォーマットの説明図である。
【図５】  IPv6マルチキャスト加入テーブルを示す図である。
【図６】  IGMPメッセージフォーマットの説明図である。
【図７】  MLDメッセージフォーマットの説明図である。
【図８】本発明の第一の実施の形態におけるMLDからIGMPへの変換処理フローを示す図である。
【図９】本発明の第一の実施の形態におけるIGMPからMLDへの変換処理フローを示す図である。
【図１０】本発明の実施の形態における通信ネットワークシステムの構成例を示す図である。
【図１１】本発明の実施の形態におけるホストAのアドレス変換テーブルの構成例を示す図である。
【図１２】本発明の実施の形態におけるホストBのアドレス変換テーブル構成例を示す図である。
【図１３】本発明の第一の実施の形態におけるパケットデータのシーケンス図である。
【図１４】本発明の第二の実施の形態におけるLAN制御装置の構成を示す図である。
【図１５】本発明の第二の実施の形態における通信ネットワークシステムの構成例を示す図である。
【図１６】本発明の第二の実施の形態におけるパケットデータのシーケンス図である。
【図１７】本発明の第二の実施の形態におけるパケットデータのシーケンス図である。
【符号の説明】
1001          LAN制御装置
1003          プロトコル制御部
1004          プロトコル変換制御部
1005          LAN制御部
1006          TCP/IPv4対応マルチキャストAP
1009          IPv4-IPv6送信スイッチ制御部
1010          IPヘッダ変換制御部
1011          IGMP-MLD変換制御部
1012          IPv6送受信制御部
1013          IPv4-IPv6受信スイッチ制御部
1014          アドレス変換テーブル
1015          IPv6マルチキャスト加入テーブル
【図１】
0004347497.tif 000002
【図２】
0004347497.tif 000003
【図３】
0004347497.tif 000004
【図４】
0004347497.tif 000005
【図５】
0004347497.tif 000006
【図６】
0004347497.tif 000007
【図７】
0004347497.tif 000008
【図８】
0004347497.tif 000009
【図９】
0004347497.tif 000010
【図１０】
0004347497.tif 000011
【図１１】
0004347497.tif 000012
【図１２】
0004347497.tif 000013
【図１３】
0004347497.tif 000014
【図１４】
0004347497.tif 000015
【図１５】
0004347497.tif 000016
【図１６】
0004347497.tif 000017
【図１７】
0004347497.tif 000018