付録 I (Appendix I)
ヘッダーの順序
2バイト
----------------------------------------------------------
| Local Medium | Internet | Datagram | TFTP Opcode |
----------------------------------------------------------
TFTPフォーマット
タイプ Op # ヘッダーなしのフォーマット
2バイト 文字列 1バイト 文字列 1バイト
-----------------------------------------------
RRQ/ | 01/02 | Filename | 0 | Mode | 0 |
WRQ -----------------------------------------------
2バイト 2バイト nバイト
---------------------------------
DATA | 03 | Block # | Data |
---------------------------------
2バイト 2バイト
-------------------
ACK | 04 | Block # |
--------------------
2バイト 2バイト 文字列 1バイト
----------------------------------------
ERROR | 05 | ErrorCode | ErrMsg | 0 |
----------------------------------------
ファイルを読み取るための初期接続プロトコル
- ホストAは、source= AのTID、destination= 69で、ホストBに"RRQ"を送信します。
- ホストBは、source= BのTID、destination= AのTIDで、ホストAに"DATA" (ブロック番号= 1) を送信します。
エラーコード
| 値 | 意味 |
|---|---|
| 0 | 定義されていません。エラーメッセージを参照してください (ある場合)。 |
| 1 | ファイルが見つかりません。 |
| 2 | アクセス違反。 |
| 3 | ディスクがいっぱいまたは割り当て超過。 |
| 4 | 不正なTFTP操作。 |
| 5 | 不明な転送ID。 |
| 6 | ファイルがすでに存在します。 |
| 7 | そのようなユーザーはいません。 |
インターネットユーザーデータグラムヘッダー [2]
(これは便宜上のみ含まれています。TFTPは、インターネットユーザーデータグラムプロトコルの上に実装される必要はありません。)
フォーマット
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
フィールドの値
- Source Port: パケットの発信者によって選択されます。
- Dest. Port: 宛先マシンによって選択されます (RRQまたはWRQの場合は69)。
- Length: UDPヘッダーを含むUDPパケットのバイト数。
- Checksum: 参考文献2は、チェックサムを計算するためのルールを説明しています。(この実装者は、ここで正しいアルゴリズムが使用されていることを確認する必要があります。) 使用されない場合、フィールドにはゼロが含まれます。
注意: TFTPは、ソースポートおよび宛先ポートとして使用するために、転送識別子 (TID) をインターネットユーザーデータグラムプロトコルに渡します。