Trivial File Transfer Protocol
TCP/IP群 |
---|
アプリケーション層 |
|
トランスポート層 |
カテゴリ |
インターネット層 |
カテゴリ |
リンク層 |
カテゴリ |
Trivial File Transfer Protocol(トリビアル ファイル トランスファー プロトコル、TFTP)は、UDPを用いてコンピュータ間でファイルを転送するためのプロトコルである。FTPに比べて軽量・単純なプロトコルである。認証機能が無いためにユーザ名やパスワードを必要としない。ポート番号69をデフォルトとして使用する。
Remote Installation ServicesやPXEなどのネットワーク・ブート環境において、ディスクレスマシンがブートする際、BOOTPやDHCPで構成情報を取得した後に、実際のOSコードをサーバから取得する際に利用される。また、ルータなどの設定の読み取りや書き込みなどにも用いられる。
TFTPは1981年に初めて標準化され[1]、最新のプロトコルの仕様はRFC 1350で確認できる。
概要
TFTPはシンプルな設計であるため、小さなメモリー・フットプリントのコードで簡単に実装できる。そのため、BOOTP、PXE、BSDPなどのネットワークブートの最初のステージのプロトコルとして採用されている。リソースが潤沢なコンピュータから、 シングルボードコンピュータ(Single-board computers; SBC)やSystem on a Chip(SoC)などのリソースが非常に制限されたコンピュータに至るまで、幅広い対象で使われている。また、ファームウェアイメージの転送や、ルーター、ファイアウォール、IP電話などのネットワーク機器に設定ファイルを転送するためにも使用される。今日では、事実上、インターネット上のデータ転送の用途には使用されていない。
TFTPの設計は、それ以前からある、PUPプロトコル・スイートの一部であるEFTPプロトコルに影響を受けている。TFTPは1980年にIEN 133によって定義された[2]。1981年6月、TFTPプロトコル(Revision 2)がRFC783として公開され、その後、1992年7月に公開されたRFC1350でアップデートされ、特に、魔術師の見習い症候群が修正された。1995年3月、TFTP Option Extension RFC 1782が1998年5月にRFC 2347によってアップデートされ、TFTPの元の仕様と一致する、オプションのネゴシエーションメカニズムを定義した。このメカニズムを使用することで、転送に先立って、ネゴシエーションされるべきファイル転送オプションのためのフレームワークを確立することができる。
TFTPは、well-knownポート番号69を使用してUDP/IPプロトコル上に実装された、ファイル転送用のシンプルなプロトコルである。TFTPは、小型で実装が容易なように設計されているため、その他のより堅牢なファイル転送プロトコルで提供される高度な機能のほとんどが存在しない。TFTPはリモートサーバ間で個々のファイルの読み書きのみを行うため、ファイルやディレクトリを一覧表示、削除、名前変更することはできない。また、ユーザー認証に関しても規定されていない。そのため、現在では、TFTPは通常、ローカルエリアネットワーク(LAN)でのみ使用される。
セキュリティ上の注意点
TFTPにはログインやアクセスのコントロールを行うメガニズムが実装されていない。TFTPでファイル転送する際に、認証、アクセスコントロール、秘密保持、完全性のチェックが必要な場合には、補助的な処理が必要になる。こうした機能は、TFTPが実行される上下のいずれかのレイヤーで実装することは可能ではあるが、TFTPは通常、パブリックな読み込みアクセスが可能なファイルのインストールにしか使われない。また、ファイルの一覧、削除、名前変更、書き込みは通常不可能である。プロトコル固有の制限が問題となる場合には、TFTPを使用したファイル転送は推奨されない[3]。
IETF標準ドキュメント
RFC番号 | タイトル | 公開日 | 著者 | 廃止・更新情報 |
---|---|---|---|---|
RFC 783 | The TFTP Protocol (Revision 1) | 1981年6月 | K. Sollins | RFC 1350によって廃止された |
RFC 906 | Bootstrap Loading using TFTP | 1984年6月 | Ross Finlayson | - |
RFC 951 | Bootstrap Protocol | 1985年9月 | Bill Croft | RFC 1395、RFC 1497、RFC 1532、RFC 1542、RFC 5494により更新された |
RFC 1350 | The TFTP Protocol (Revision 2) | 1992年7月 | K. Sollins | RFC 1782、RFC 1783、RFC 1784、RFC 1785、RFC 2347、RFC 2348、RFC 2349により更新された |
RFC 1782 | TFTP Option Extension | 1995年3月 | G. Malkin | RFC 2347により廃止された |
RFC 2131 | Dynamic Host Configuration Protocol | 1997年3月 | R. Droms | RFC 3396、RFC 4361、RFC 5494、RFC 6842により更新された |
RFC 2347 | TFTP Option Extension | 1998年5月 | G. Malkin | - |
RFC 2348 | TFTP Blocksize Option | 1998年5月 | G. Malkin | - |
RFC 2349 | TFTP Timeout Interval and Transfer Size Options | 1998年5月 | G. Malkin | - |
RFC 5505 | Principles of Internet Host Configuration | 2009年5月 | B. Aboba | - |
RFC 7440 | TFTP Windowsize Option | 2015年1月 | P. Masotta | - |
関連項目
RFCへのリンク
- RFC 1350 - THE TFTP PROTOCOL (REVISION 2) (RFC 783 を廃止)
- RFC 1785 - TFTP Option Negotiation Analysis
- RFC 2347 - TFTP Option Extension (RFC 1782 を廃止)
- RFC 2348 - TFTP Blocksize Option (RFC 1783 を廃止)
- RFC 2349 - TFTP Timeout Interval and Transfer Size Options (RFC 1784 を廃止)