ベストへのファイルのサイズ全体の遅いネットワーク。当期純
-
23-09-2019 - |
質問
私ビル。純リモクライアント/サーバーと送信何千ものファイル、さまざまな大きさのすべてのものからバイト数十MBていただきたいと思いますようにフィードバックの方法を実現。私の見るところでは、カップルのオプション:
- Serializeのファイルのマリモオブジェクトを発信ですべてを一度に関わらずサイズです。これは、ドーハ-ラウンドが失敗時の伝送が必要な、全ファイルの再送付のないことを再開します。
- の場合はファイルのサイズよりも小さい(4KB)-休憩で4KBのチャンクは、リモート、再組み立てます。ほかの複雑さにこの減速が継続的に往復を明記が失敗の一枚にな廃棄物の時間くらい。
- どのようなものであるというFTP、SFTPサーバーアプリ-クライアントに通知またはサーバが起動用のリモ、アップロードファイルを使用し、リモへの通知。いうのも私のアプリではなく個別のFTPサービスが開場合にこのオプションが必要です。
- あのような明TCPコネクション又はコンポーネントのラインナップまたは他の送信方法の構築の失敗はしかできないと思うから何らかの検問所/再開します。
- 他に私は不?
何が最もフレキシブル/高信頼伝送方法は?いることを懸念速で信頼性に関するいはファイルの移動ものだった。以来、クライアントとサーバのメンテナンスマネジ付き、送信ファイルを複数のファイルの同時の場合の接続が可能です。
彼のフィードバックいただ蹴りの恵みへの提言う人がいる。
解決
他のヒント
、私はあなたがあなたの問題のアプリケーション階層で、より見ているより多くのように感じます。 TCPは間違いなく人生のネットワーキング側などの待ち時間、透過窓、至るまでハンドルのすべてを行います。しかし、それは直接、ユーザーが途中でダウンロードセッションを終了し、その後、彼らは中断したところ、後でそれを拾うことを決定した場合、何が起こるか決定するものではありません。
は別の角度から、あなたの質問に答えるために、私は間違いなく、速度に関係なく、セクションにファイルをチャンクとすべての接続のためにそれらのインデックスを作成することをお勧めします。ファイル全体がダウンロードされると、彼らは、クライアント上でもう一度再構築することができます。これにより、ユーザーは、ダウンロードセッションと再開を一時停止することができます。
としては、これまでの速度を決定するものとして、方法はこれを行うために構築された事前があるかもしれませんが、一つの方法は、あなたは自分自身の速度テストを構築されて使用できます。 クライアント(アップロード)に1メガバイトを送信し、受信したら、それは応答を送信しています。 1100は、クライアントからの応答を取り戻すために要した時間で割った、KBです/それはサーバからダウンロードするようにクライアントを取りますよ。そして、万力その逆のクライアントからテストアップロードする。
限り、送信として、私は、既存の技術を活用し推薦します。 SFTP の支持体には、暗号化されたデータ転送を認証し。これは、基本的にはFTPですが、SSH経由で。このとの相互作用のために利用できるどこかのAPIがあるはずです。
サイドノートでは、私はあなたが話程度に何もしたことがないが、少なくとも、うまくいけば、私のアイデアはあなたに検討するカップルのオプションを与えます。
これは、TCP自体がために作られ、数十年またはハードテスト中のために調整されたものです。リモーティングは小さなRPCコールではなく、大容量ファイルの転送のために作られています。あなたは、単にデータを送信するためのTCPソケットを使用し、下位層プロトコルは、待ち時間、透過窓、MTUなどを心配させてくださいます。