RSCP仕様書
| 作成日 |
2025-10-04 13:57:53 |
| 最新更新日 |
2025-10-04 13:58:11 |
#RSCP
RSCP (Rumi Storage Control Protocol) 仕様書
概要
RSCP (Rumi Storage Control Protocol) は、「るみさーばー」におけるデータサーバーシステム「RDS」用に設計された独自転送プロトコルである。
従来のHTTPベースの旧式プロトコルを廃止し、TCP上における軽量かつ高効率なファイル制御を目的として設計された。
用途
- ファイル転送(アップロード)
- ファイル削除
- ファイル取得(※将来的に実装予定)
通信仕様
- 使用ポート:TCP 41029
- 通信方向:クライアント → サーバー
- バイナリプロトコル
---
ハンドシェイク手順
1. クライアントが接続すると、サーバーは最初に "RSCP" (ASCII, 4バイト) を送信する。
2. 続けて バージョン情報の長さ (1バイト, 0x00〜0xFF) が送信される。
3. その後、バージョン情報本体 が送信される。
- バージョン情報は参考情報であり、クライアント側で無視しても良い。
---
基本フォーマット
| 項目 | サイズ | 説明 |
|------|---------|------|
| リクエスト | 1バイト | 操作の種類を指定 |
| バケット名長 | 1バイト | バケット名の長さ |
| バケット名 | Nバイト | 任意のASCII文字列 |
| ファイル名長 | 1バイト | ファイル名の長さ |
| ファイル名 | Nバイト | 任意のASCII文字列 |
※ 一部リクエストでは不要なフィールドがある。
---
リクエスト一覧
| コード | 内容 | 備考 |
|--------|------|------|
| 0x00 | NOP(何もしない) | 必ず成功応答を返す |
| 0x01 | ファイル転送(アップロード) | 詳細は後述 |
| 0x02 | ファイル削除 | 詳細は後述 |
---
応答コード一覧
| コード | 意味 |
|--------|------|
| 0x10 | 続行せよ(次の処理へ進め) |
| 0x20 | 成功 |
| 0x40 | 不正なフォーマットまたは不正リクエスト |
| 0x50 | サーバー内部エラー |
---
ファイル転送(0x01)
### 構造
基本フォーマットの後に以下の情報を追加する。
| 項目 | サイズ | 説明 |
|------|---------|------|
| ファイルサイズ | 8バイト | ビッグエンディアンの uint64 |
### フロー
1. クライアントがリクエスト(0x01)と必要情報を送信。
2. サーバーは 0x10(続行せよ)を返す。
3. クライアントはファイルデータを送信する。
- マルチパートアップロード可(分割送信可能)。
- サーバーは指定されたファイルサイズ分のデータを受信するまで待機。
4. 送信完了後、サーバーは再度 0x10 を返す。
5. クライアントは MD5チェックサム(16バイト, バイナリ) を送信。
6. サーバーが照合を行い、結果を返す:
- 一致:0x20(成功)
- 不一致:0x40(不正フォーマット)
---
ファイル削除(0x02)
### 構造
基本フォーマットのリクエスト種別を 0x02 に設定するだけ。
### フロー
1. クライアントが削除リクエストを送信。
2. サーバーは該当ファイルを削除。
3. 成功時(またはファイルが存在しない場合)でも 0x20 を返す。
---
備考
- すべての整数値は ビッグエンディアン で送受信される。
- 文字列は基本的に ASCIIエンコード を使用する。
- ファイル取得 (download) 用のリクエストは将来的に 0x03 として定義予定。
- プロトコルの軽量化と単純化を最優先としているため、余計なヘッダやHTTP互換性は一切持たない。
ログインしたらコメントが書けますよ!