
Winsock API を使用して Windows 64 ビット プラットフォーム上にファイル転送プログラムを実装しました。1Gbps 接続を使用しています。
- TCP プロトコルを使用してファイルを転送すると、320 Mbps しか得られません。タスク マネージャーを監視すると、ネットワーク使用率が約 35% と表示されます。これよりも高い転送速度が得られるはずではないでしょうか?
- UDP を使用してファイルを転送すると、ネットワーク接続が失われるようです。ping コマンドを使用して確認してみましたが、ループバック アドレスにのみ ping でき、他のアドレスには ping できないことがわかりました。なぜこのようなことが起こるのかはわかりません。UDP は TCP フレンドリーではなく、輻輳制御やフロー制御がないことは知っていますが、それが他のすべての接続にそれほど劇的な影響を与えるとは思えません。
チューニング オプションをいろいろ調べましたが、どれもうまくいきません。最大スループットを達成できない原因と、UDP 送信プログラムを実行した瞬間に接続が失われる原因を誰か見つけられますか?