23

問題にどのように取り組むのが最善かわかりません。UDPパケットを受信して​​処理するリモートマシンで実行されるサービスがあります。サービスがこれらのパケットを必要な人に再送信できるようにしたい(誰もいない可能性があり、通常は1台のマシンになりますが、それ以上になる場合もあります)

UDPマルチキャストが理想的だと思いました。サービスはマルチキャストグループに送信でき、受信者がいくつ登録されていても、受信者が登録されていなくてもかまいません。

しかし、私はインターネットを介してこれにアクセスできるようにしたいので、私が収集したものから、これはUDPマルチキャストではほぼ不可能です。これを達成するために使用できる別の方法はありますか?

必要に応じて、クライアントとサービスの両方がC#で記述されています。

4

2 に答える 2

22

一般に、マルチキャストパケットはルーティングされないため、これは不可能です。

これを回避するためのいくつかの手法(DVMRP、MOSPFなど)がありますが、それらはすべて、サーバーとクライアントの間にすべてのルーターを構成できる(またはトンネルを作成できる)必要があります。マルチキャストをサポートするバックボーンネットワーク(Abilene、Mbone)がありますが、それらは大学などにとって最も興味深いものです。通常の消費者のインターネットにはマルチキャストがありません。

残念ながら、ポイントツーポイント通信が必要です。しかし、あなたは良い仲間です。インターネット、ラジオ、テレビはすべてポイントツーポイントで、同じデータを何度も送信します。帯域幅のかなりの無駄。

于 2010-06-18T22:42:44.857 に答える
11

推奨される方法は、オーバーレイマルチキャストを使用することです。つまり、ピア間にTCPリンクを使用し、その上にマルチキャストセマンティクスを実装します。

多くのIPv4ルーターはマルチキャストをサポートしていないか、無効にしています。IPv6はマルチキャストをサポートすることが義務付けられており、ブロードキャストセマンティクスは削除されています。

于 2010-06-26T04:01:58.253 に答える