TFTP
読み:ティーエフティーピー
外語:TFTP: Trivial File Transfer Protocol

 簡単なファイル転送プロトコル。高速かつシンプルだが、セキュリティには欠ける。
 FTPと名前は似ているが、全く異なるプロトコルである。TFTPは、UDPを使い、単純にファイルの送信機能のみを有している。
目次

概要
 RFC 1350(STD 33)及びRFC 2347で定義される
 サーバー側のポート番号は69/udpを用いる。96/tcpも予約はされているが、実際には使われていない。

用途
 プロトコルが簡単でブートストラップのROMなどにも実装でき、ディスクレスの装置の起動などに使われる。具体的にはサーバーがBOOTPDHCPでクライアントのIPアドレスを振るとともにTFTPによるデータの転送元を指定し、クライアントはそれに従いファイルを取得する、といった用途がある。

セキュリティ
 但し、UDPは偽造が簡単であり、TFTP自体もセキュリティが考慮されていないため、利用には注意が必要である。
 ファイアウォールでは、入出力TFTPパケットは安全のために全て遮断すべきである。

特徴

プロトコル
 パケットは、リード要求(RRQ)・ライト要求(WRQ)・データ・ACK・エラー通知の5種類がある。それぞれ書式は違うが、最初の2オクテットは全て共通でopcodeで、ここでパケットの種類を表わす。
 RRQ/WRQはopcodeに続き、ファイル名、1オクテットの0、モード文字列、1オクテットの0、である。
 データはopcodeに続き、2オクテットのブロック番号、そしてnバイトのデータである。データ長nはUDPパケットの長さいっぱいである。データ長は最大で512バイトである。データ長0でデータパケットを送信すれば、それは送信終了の合図となる。
 ACKはopcodeに続き、2オクテットのブロック番号である。
 エラーはopcodeに続き、2オクテットのエラーコード、そしてエラー文字列、1オクテットの0、である。

手順
 具体的には、例えばライトしたい場合はまずライト要求のパケットを送信し、ACKを待つ。ACKが来なければ来るまで要求を投げる。
 後はひたすら、ACKを受信しながらデータのパケットを送るだけである。
 ブロック番号は最初のデータは1から始め、順次インクリメントする。

再検索