高速で信頼性の高い、大きなファイルの転送に使用できる最適なプロトコルは何ですか? インド全体でファイルを送信する必要があるため、低帯域幅システムをサポートする必要があります。ファイルサイズは100~500MB程度です。
7 に答える
Rsyncはこの問題に最適です。大きなファイルをリモートで送信/更新するように設計されています。
- コマンドラインから実行されるため、外部プロセスとしてかなり簡単に起動できます。
- 2つのリモートファイルシステムを同期できます。
- 大きなファイルサイズを処理します。
- それは周りのファイルの違いだけをコピーしようとする巧妙なアルゴリズムを持っています。
- 広く実装されており、オープンソースです。
- スロットリング機能を備えているため、転送で使用するWAN接続の量を制限できるため、他の接続プロセスが不足しないように調整できます。
- 内部でzlibを使用して、転送されたデータブロックを圧縮します
元のサイト:http ://samba.anu.edu.au/rsync/
sshでrsyncを保護する:http ://www.linux.com/archive/feature/113847
詳細な機能: http: //en.wikipedia.org/wiki/Rsync
FTP はファイル転送の最も効率的なプロトコルですが、実装するのはかなり困難です。HTTPを使用します。このサポートはほとんどのプラットフォームに組み込まれており、ファイアウォールに対してより回復力があります。
小さなファイルや知識のないユーザーには、おそらく HTTP が適しています。ファイアウォールを構成する必要があると、多くのユーザーが停止します。ほぼすべてのネットワークで、特別な構成なしでポート 80 経由の http 転送が許可されます。
しかし、あなたは大きなファイルと言いました。範囲転送を使用して中断されたダウンロードを再試行するように、転送コードを作成できます。
私は知りませんが、誰かが部分的な転送と再試行を自動的に処理するファイル転送ライブラリを作成した可能性があります。
これは、ファイル転送と .NET に関連する興味深い内容かもしれませんが、元の投稿で .NET の形や形式について言及したわけではありません。
Sending Files in Chunks with MTOM Web Services and .NET 2.0
Tim Mackey 著
MTOM (WSE 3) を使用して Web サービス間で大きなファイルを小さなチャンクで送信する方法
Web Service Enhancements 3.0をインストールする必要があることに注意してください(関連するリンクが記事に記載されています)。
良い一日をお過ごしください。
TCPプロトコルを使用するのが最善だと思います。それは信頼できますが、UDP はそうではありません。ベストエフォート プロトコルは「安全」ではないため、UDP の方が高速です。ただし、P2P プログラムは UDP を使用します。UDP の方が高速であり、パッケージの損失をあまり気にしないからです。FTP は通常 TCP を使用します。したがって、TCP を実装し、ソケットを介してプログラムすることをお勧めします。120000 などのポートを使用してください。これらは無料です。