2

サーバーがインターネットを介して多くのクライアントに同じメッセージを送信するクライアントサーバーアーキテクチャを実装する必要があります。約5分ごとに1つのメッセージを送信する必要があります。メッセージは5KBを超えません。接続されている多数のクライアント(50.000〜100.000)に拡張できるソリューションが必要です

私はたくさんの解決策を検討しました:

  • TCPソケット

  • UDPマルチキャスト

  • WCF httpデュプレックスサービス(comet)

UDPソリューションは、同じネットワーク上のクライアントにのみ適したソリューションであり、インターネット上では機能しないため、破棄する必要があると思います。多くのクライアントが接続されている場合、WCFマルチキャストがボトルネックになることをどこかで読みましたが、パフォーマンス統計を示すドキュメントがどこにも見つかりません。Tcpソケットは、私が選択するソリューションのようです。についてどう思いますか?私は正しいですか?


UDPがインターネットで機能しないと言うとき、私は確かに間違っています...マルチキャストをサポートするには、ネットワークに適切に構成されたルーターが必要であると指摘する記事を読んだので、これを考えました...udpポートのマルチキャストを読みました範囲とそれがローカルであることを意味すると思った。代わりに、224.0.0.1〜239.255.255.255(クラスDアドレスグループ)の範囲にインターネット経由で到達できます。


私の場合、信頼性は重要なポイントではないことを考えると、udpマルチキャストは良い選択です。.netフレームワークは、これを実現するために非常に役立つクラスを提供します。UdpClientを簡単に起動し、2行のコードでマルチキャストアドレスでデータの送信を開始できます。クライアント側では、それは本当に簡単です。私が必要としていることを正確に実行するUdpSingleSourceMulticastClientクラスがあります。信頼性とセキュリティに関係することについては、.netフレームワークには、DoS攻撃、DNS再バインド攻撃、およびリバーストンネル攻撃を処理するスマートでシンプルな方法があります。これについては、http://msdn.microsoft.com/en-us/library/ee707325で説明しています。 (v = vs.95).aspx

4

2 に答える 2

1

主な質問は次のとおりです。更新がクライアントに届くかどうか気にしますか?

そうする場合は、信頼性を高めるためにUDPの上に何かを構築する必要があります。UDP データグラムは信頼できないため、宛先に到達しないものがあることを予期する必要があります。これは、UDP データグラムをすばやくプッシュしている場合に発生する可能性が高くなります。UDP を使用すると、状況によっては、クライアントが同じデータグラムの複数のコピーを取得する場合があることに注意してください。

このレベルのトラフィックでの 50 ~ 100k の接続は、適切なアーキテクチャを使用している場合、TCP で達成するのはそれほど難しくありません。

この件に関して私が行ったいくつかのブログ投稿については、こちらを参照してください。

そして、多くのクライアントにデータを送信するコードの例を次に示します。

于 2011-04-12T10:58:53.877 に答える
0

ユニキャスト (tcp ソケット) は、このような比較的少量のトラフィックでは問題なく機能しますが、マルチキャスト テクノロジに注意してください。状況は毎年変化しています。

于 2011-04-11T19:39:26.703 に答える