4

私たちは、何百万ものクライアントがサーバーと通信するゲームに取り組んでいます。これらのゲームは、ほとんどがターン制です。UDP が TCP よりもパフォーマンス上の利点があることは認識していますが、あるプロトコルが他のプロトコルよりもセキュリティ上の利点を享受しているかどうか疑問に思っています。一般に TCP の方が安全であることを示すサイトをいくつか読んだことがありますが、TCP の弱点を悪用するかなりの数の攻撃を見てきました。

私たちのコードは、信頼性の低い接続や失われたデータや順不同のデータに対してかなり耐性があるため、UDP について考えました。ありがとうございました!

4

2 に答える 2

7

UDP の大きなセキュリティ上の問題は、なりすましDOS 攻撃を受けやすいことです。ハンドシェイクは決して完了しないため、TCP を使用してインターネット上でアドレスを偽装することはできません。UDP を使用した OTOH には、暗黙的なハンドシェイクはありません。セッションのメンテナンスはコードで行う必要があります (処理オーバーヘッド)。

UDP が TCP よりもパフォーマンスに優れていることは承知しています。

LAN 経由のみ - 理由の一部は、ハンドシェイクを実行する必要がないことによる待ち時間の短縮です - しかし、大きな違いは、輻輳制御メカニズムをバイパスすることです。これは、パケット損失が非常に少ない LAN 経由のデータでは問題になりませんが、インターネット経由でデータを送信する場合は、アプリケーションに帯域幅調整、エラー回復、および輻輳制御を実装する必要があります (より多くの処理オーバーヘッド)。一部のタイプのパケット損失は転送エラー制御によって処理できますが、これは過負荷のルーターでは役に立ちません。UDP を遅くするものにはすべて理由があります。

データフローがそれ以下の場合、たとえば任意の方向に 2 MSS の後にリモート エンドからの確認応答が続く場合は、それを選択しますが、大量のデータをすばやく移動したい場合は、TCP (またはステーション ワゴン) を使用します。

于 2013-03-27T19:27:23.543 に答える
5

これは、UDP と TCP を比較するための良いリソースです: http://www.skullbox.net/tcpudp.php

伝統的に、ほとんどのリアルタイム アプリケーションは UDP を使用します。例: VOIP。

TCP には、パケットの配信を保証するメカニズムしかありません。

于 2013-03-27T19:14:19.960 に答える