1

大きなファイルにリモートで少しずつアクセスする必要があるアプリケーションがあります。開始オフセットはわかりますが、その位置からファイルのプレフィックスを読み取った後、別の新しいオフセットを確立し、この新しい位置から次に読み取る必要があります。

HTTP の使用を検討しました - 転送を開始するオフセットを詳述するリクエストを投稿します - しかし、転送サイズを指定したくありません (サイズが小さすぎるとスループットが低下し、サイズが大きすぎるとスループットが低下します)。許容できないレイテンシ。) または開いている接続をドロップします。これは、再接続時にレイテンシのペナルティが発生するためです。

私は TCP/UDP とソケットを使って「独自のものを作る」ことを検討しましたが、このアプローチには車輪の再発明が含まれているように感じます。UDP は最小の遅延を約束するかもしれませんが、信頼性を低遅延と引き換えにする立場にはありません。

データへのこのモードのアクセスに取り組むためのプロトコルに関する標準 (提案、RFC など) を指摘されることに非常に興味があります。おそらく、クラウド ストレージのコンテキストで既に開発された優れたアプローチがあるでしょうか?

4

1 に答える 1

0

あなたが望むのは、FTP プロトコル (RFC 959: https://www.rfc-editor.org/rfc/rfc959 ) のバリエーションだと思います。正確に何をしたいのかについて確立されたプロトコル標準はないと思いますが、FTP は非常に近いものです。「制御接続」と「データ接続」の 2 つの接続を使用します。制御接続は、クライアントからサーバーへのコマンドの受け渡しを処理し、ステータス メッセージを返します。データ接続は、データを転送するために個別に使用されます。これは、セットアップする必要がある種類のシステムのようです。

これとは異なる主な目的は、ファイル内の任意のオフセットからデータをシークして転送できるようにすることです。これは、カスタム コマンドを使用して簡単に実行できます。セットアップによっては、FTP クライアントとサーバーの既存のオープン ソース実装を取得して、カスタム コマンドを追加するだけでよい場合があります。

于 2013-03-08T16:31:43.600 に答える