広告
広告
https://www.7key.jp/nw/technology/protocol/tftp.html#what
TFTPはTCP/IPネットワーク上でファイルのやり取りを行うためのプロトコル、若しくはこのプロトコルを実装したアプリケーションを指します。そもそもTFTPはTrivial FTPの略で、直訳すると「取るに足らないFTP」となります。これはプロトコルの機能や動作が非常に原始的で簡素なところから付けられた名前のようです。 FTPの名が付いておりFTPもファイル転送のためのプロトコルですが、TFTPとは全く関係がありません。
TFTPはFTPと違いUDPが使われ、コネクションレスモードで動作をします。このためIP/UDPが提供するもの以外の信頼性はTFTPが自分で提供する必要があります。ただし、TFTPはTCPを使わないためサイズの小さいデータのやり取りに適している点、プロトコルが単純なためアプリケーションも単純なもので良い点とFTPには無いTFTPのメリットを挙げる事ができます。プロトコルが単純なためアプリケーションのサイズが小さいので、ネットワーク機器やディスクレスのコンピュータシステム等のROMにもアプリケーションを保存する事が出来、それらがやり取りをするデータの転送に使われることが多いプロトコルとなっています。
https://www.7key.jp/nw/technology/protocol/tftp.html#action
受信側からの応答確認を待ってから送信側が次のデータブロックを送信しますので、送信側が再転送に備えてバッファに置くデータブロックは一つだけとなります。そのためオーバヘッドが小さく済まされるのです。
データブロックに付けられる順序番号は1から始まる連番となっています。応答確認では確認するデータブロックの番号が必ず付けられます。ただし最初の書き込み要求に対する確認応答は特別なケースとみなされ、0番を付けられた確認応答がクライアント側に返されます。
UDP69番ポートは最初の要求の際だけに使用することによって、複数クライアントへのサービスが可能となっています。
https://www.7key.jp/nw/technology/protocol/tftp.html#format
OPコード (2) | ファイル名 (可変長) | NULL (1) | モード (可変長) | NULL (1) |
括弧内はオクテット数です。OPコードは1が読み出し要求、2が書き込み要求を表します。モードには以下のいずれかの文字列が入ります。
OPコード (2) | ブロック番号 (2) | データ部分(512オクテット以下) |
OPコードには必ず3が入り、このPDUにデータが入っていることを示します。
OPコード (2) | ブロック番号 (2) |
OPコードには必ず4が入ります。ブロック番号は実際に応答確認をするデータブロックのブロック番号です。
OPコード (2) | エラーコード (2) | エラーメッセージ (可変長) | NULL (1) |
括弧内はオクテット数です。OPコードは必ず5が入ります。エラーコードについては下記を参照。
コード | 意味 |
---|---|
0 | 未定義。エラーメッセージを参照。 |
1 | ファイルが見つからない。 |
2 | アクセス違反。 |
3 | ディスクに書き込み領域が無い。 |
4 | 不正なTFTPコマンド。 |
5 | 不明な転送ID。 |
6 | ファイルが既にある。 |
7 | ユーザ未定義。 |
https://www.7key.jp/nw/technology/protocol/tftp.html#secure_tftp
Secure TFTPは、クライアントに対してあらかじめ定めたディレクトリ構造以外の利用を禁止するものです。TFTPには認証機能が無いため、どのクライアントプロセスもサーバ上のファイルの読み出しや書き込みが可能なため実装されました。Secure TFTPではTFTPホームディレクトリをファイルシステムのルートと考え、そのツリー構造から外に出ることは許されていません。
https://www.7key.jp/nw/technology/protocol/tftp.html#supplement
2003年に流行したMS.BLASTと呼ばれるワームはTFTPクライアント機能を持ち、TFTPを使いサーバからMS.BLAST本体をダウンロードするものであった。
広告