TCP を使用してネットワーク経由でギガバイトのデータを転送するプロトコルを作成し、プロトコルのプログラミングについて少し勉強しようとしています。最速かつ最も効率的な方法でデータを転送するために、この転送プロトコルを設計する方法がわかりません。
WindowsでQtを使用しています。
現時点で、私のアプリケーション プロトコル (データを転送する部分) の設計は次のとおりです。
- 最初にログインの詳細を撮影します。
- 4 キロバイトの最初のデータ パケットを (ソケットに) 書き込み、サーバーがパケットを取得したことを確認するまで待ちます。
- サーバーがデータ パケットの受信を確認したら (int "1" を書き込む)、次の 4 キロバイトを書き込みます。
- すべてのデータが転送されたら、転送されたデータの md5sum をサーバーに送信します。
- サーバーが int 8 で再度確認すると、データ転送は完了します。
現時点では、127.0.0.1 経由で転送する場合、同じコンピューターで 166KB/秒を超える速度を得ることができません。私は他のプロトコル設計を読もうとしてきましたが、アプリケーション用に記述できるデータ転送プロトコルに関するドキュメントはほとんどありません。
私が投稿したプロトコルの設計は間違っているのでしょうか、それとも深刻な問題を抱えているのでしょうか? プロトコルは、各パケットがサーバーによって確認されるのを待つ必要がありますか、それとも継続的に書き込む必要がありますか?