戸根様
barです。また質問させて頂きます。 (同様な質問が過去にありましたらご容赦下さい)
タイトルの件なのですが、ユニキャスト通信の場合と意味や用法が違うように思いますが、どう考えればよいのでしょうか? (すみません、漠然とし過ぎてますかね。)
よろしくお願い致します。
barさん,こんにちわ。
マルチキャストアドレスは,一つ一つが特定のアプリケーションというか用途というか, に割り当てられています。 下記にその一覧があるので,まず,これを見て, どのようなアプリケーションや用途にマルチキャストが使われているのか, 雰囲気をつかんでください。 http://www.iana.org/assignments/multicast-addresses
すると,そのアプリケーションや用途は, いろいろなプロトコルで実現されていることがわかるはずです。
さて,ここからが本題ですが, ポート番号という考え方は,TCPとUDPを使う場合に, 誰が通信しているのかを特定するために使うものです。 ですから,その理屈からいえば,マルチキャストを使うアプリケーションの中に TCPやUDPを使うものがあれば, ポート番号はユニキャストと同様に考えればよいことになります。 ただ,実際には,TCPは1対1で接続動作を行うことが前提になっているため, マルチキャストには使えませんから, マルチキャストでUDPを使うアプリケーションがあれば, ということになります。
これが考え方です。 しかし,私も,上の一覧を全部調べたわけではないので, この考え方が当てはまるものが実際に存在するかどうかわかりません。 マルチキャストというと,OSPFとか,VRRPとか,IDRPとか, IGMPとか,専用のプロトコルを使うものが多いので, UDPを使うものがあるのかどうかわかりません。
その辺,知っている方いますか? > 皆さま
返信有り難うございます。
このようなマルチキャストアドレスの一覧があったのですね。 224.0.0.1等幾つかは知ってましたが、これほど沢山の予約アドレス があるとは思いませんでした。
>さて,ここからが本題ですが, >ポート番号という考え方は,TCPとUDPを使う場合に, >誰が通信しているのかを特定するために使うものです。 >ですから,その理屈からいえば,マルチキャストを使うアプリケーションの中に >TCPやUDPを使うものがあれば, >ポート番号はユニキャストと同様に考えればよいことになります。
ユニキャストでは普通次のように使うと思います。 (実際のソフトの動作ではありません(そこまで詳しく知りません^^;)) ・クライアントがephemeralポート番号を選択。 ・使用するアプリケーションに対応したサーバのwell-knownポート番号を決定。 ・UDPまたはTCPの宛先ポート番号にサーバの、送信元ポート番号にクライアン トのポート番号を設定してパケットの送信を行う。 ・サーバからクライアントに送るパケットには宛先と送信元を逆にして設定する。
で、マルチキャストの場合ですが、宛先のマルチキャストグループ に参加しているホストは全てサーバという位置付けなのでしょうか? ある書籍によると(すみません。戸根様のモノではありません^^;) マルチキャストに参加しているある1つのホスト内の複数のプロセス がマルチキャストフローを受信するような記述があり、上記と相容 れない気がしているのです。(単に複数のプロセスIDと1つのポート 番号がバインドしているだけと考えればよいのですかね。)
またマルチキャストグループは必ず宛先であり送信元になることは無い と考えてよいでしょうか?(勿論グループに参加しているホストが別の ユニキャストの送信元になることは有り得ると思いますが。)
以上、よろしくお願い致します。
コメント
ポート番号の意味自身は変わらないけれど,マルチキャストでUDPを使うかどうか...?
barさん,こんにちわ。
マルチキャストアドレスは,一つ一つが特定のアプリケーションというか用途というか,
に割り当てられています。
下記にその一覧があるので,まず,これを見て,
どのようなアプリケーションや用途にマルチキャストが使われているのか,
雰囲気をつかんでください。
http://www.iana.org/assignments/multicast-addresses
すると,そのアプリケーションや用途は,
いろいろなプロトコルで実現されていることがわかるはずです。
さて,ここからが本題ですが,
ポート番号という考え方は,TCPとUDPを使う場合に,
誰が通信しているのかを特定するために使うものです。
ですから,その理屈からいえば,マルチキャストを使うアプリケーションの中に
TCPやUDPを使うものがあれば,
ポート番号はユニキャストと同様に考えればよいことになります。
ただ,実際には,TCPは1対1で接続動作を行うことが前提になっているため,
マルチキャストには使えませんから,
マルチキャストでUDPを使うアプリケーションがあれば,
ということになります。
これが考え方です。
しかし,私も,上の一覧を全部調べたわけではないので,
この考え方が当てはまるものが実際に存在するかどうかわかりません。
マルチキャストというと,OSPFとか,VRRPとか,IDRPとか,
IGMPとか,専用のプロトコルを使うものが多いので,
UDPを使うものがあるのかどうかわかりません。
その辺,知っている方いますか? > 皆さま
有り難うございます&質問をブレークダウンします
戸根様
返信有り難うございます。
このようなマルチキャストアドレスの一覧があったのですね。
224.0.0.1等幾つかは知ってましたが、これほど沢山の予約アドレス
があるとは思いませんでした。
>さて,ここからが本題ですが,
>ポート番号という考え方は,TCPとUDPを使う場合に,
>誰が通信しているのかを特定するために使うものです。
>ですから,その理屈からいえば,マルチキャストを使うアプリケーションの中に
>TCPやUDPを使うものがあれば,
>ポート番号はユニキャストと同様に考えればよいことになります。
ユニキャストでは普通次のように使うと思います。
(実際のソフトの動作ではありません(そこまで詳しく知りません^^;))
・クライアントがephemeralポート番号を選択。
・使用するアプリケーションに対応したサーバのwell-knownポート番号を決定。
・UDPまたはTCPの宛先ポート番号にサーバの、送信元ポート番号にクライアン
トのポート番号を設定してパケットの送信を行う。
・サーバからクライアントに送るパケットには宛先と送信元を逆にして設定する。
で、マルチキャストの場合ですが、宛先のマルチキャストグループ
に参加しているホストは全てサーバという位置付けなのでしょうか?
ある書籍によると(すみません。戸根様のモノではありません^^;)
マルチキャストに参加しているある1つのホスト内の複数のプロセス
がマルチキャストフローを受信するような記述があり、上記と相容
れない気がしているのです。(単に複数のプロセスIDと1つのポート
番号がバインドしているだけと考えればよいのですかね。)
またマルチキャストグループは必ず宛先であり送信元になることは無い
と考えてよいでしょうか?(勿論グループに参加しているホストが別の
ユニキャストの送信元になることは有り得ると思いますが。)
以上、よろしくお願い致します。