0

同様の質問がありますが、データ転送プロトコルのさまざまなオプションと、速度、セキュリティ、および信頼性に関する長所と短所をまとめたものを見つけることができませんでした.

私は開発者として、サーバー側で 500Mb から 5Gb のサイズのファイルを 1 つ生成する Web サービスを作成しました。ファイルをクライアント側に転送するためのさまざまなオプションを検討しています。

私が知る限り、トランスポート層で最も有名な 2 つのソリューションは TCP と UDP です。TCP は時間のコストでより信頼性の高い転送を提供し、UDP は速度のために信頼性を犠牲にします。

アプリケーション層では、RUDP や UDT のように、信頼性の高い転送を提供する UDP の実装が存在することを知っています。

サーバー側からデータを取得するために、クライアントにインストールや特別な構成を要求することなく使用できるプロトコルについて言及することは非常に重要です。

私の質問は次のとおりです。

  1. HTTP や FTP など、UDP に基づくアプリケーション層プロトコルは、クライアント側ですぐに使用できますか?

  2. TCP に基づくプロトコルで、UDP と同様の速度を提供するものはありますか?

  3. UDP プロトコルは、Https のような安全なデータ転送方法を提供しますか?

目標は

  1. 欠品なくデータをお届け
  2. 安全な (暗号化された) 方法でデータを配信する

実装のために、私は現在 JAX-WS と Glassfish をアプリケーション サーバーとして使用しています。

4

1 に答える 1

1

あなたの質問全体は、TCPが「遅すぎる」とすでに決めており、UDPが救世主であると判断したようです。あなたの質問には重要な詳細が欠けています:

  1. ファイルが送信されたときに受信されることは重要ですか?
  2. Web サービスに使用したテクノロジ/フレームワークは何ですか?
  3. クライアント側で使用できるテクノロジー/フレームワークは何ですか?
  4. 現在、実際に転送速度に問題がありますか? あなたのシリアライゼーション、あなたのコード、あなたのネットワーク、または TCP の誰のせいですか?

1 については、はいの場合、UDP を忘れてください。TCP は(接続が存在する限り) 順序どおりにデータを配信することを保証するため、比較的低速です。これは、UDP では得られないものです。どのソケット プログラミングが最適か (TCP/UDP)を参照してください。

2 と 3 では、異なるシリアライザー、フォーマッター、またはトランスポートを適用することで問題の一部が解決される場合がありますが、それはサービスとクライアントをどのように実装したかによって異なります。

4 については、TCP が遅すぎるとは思いません。ウィンドウが十分に大きくなり、速度が上がると、適切なサイズのデータ​​が供給されると、使用可能なすべての帯域幅が使用されます。たとえば、UDP と TCP の比較を参照してください。どれくらい高速ですか? .

さて、あなたの質問のために:

HTTP や FTP など、UDP に基づくアプリケーション層プロトコルは、クライアント側ですぐに使用できますか?

お使いのボックスによって異なります。

TCP に基づくプロトコルで、UDP と同様の速度を提供するものはありますか?

はい、たとえばビデオ ストリーミング プロトコルでは、損失が管理可能です。

UDP プロトコルは、Https のような安全なデータ転送方法を提供しますか?

TCP と UDP はトランスポートであり、何をトランスポートするかは気にしません。セキュリティはその上に階層化されています。たとえば、Datagram Transport Layer Securityを参照してください。

于 2013-10-29T11:56:02.153 に答える