Arch TCP/IP TFTP

20

Transcript of Arch TCP/IP TFTP

トリビアル

トリビアル

TFTPとは •  トリビアル・ファイル転送プロトコル  •  ディスクレスシステム起動時に使用  –  ディスクレスシステム(シンクライアント)  

必要なシステムや記憶装置を全てサーバに  依存しているシステム  

•  FTP は TCP  •  TFTP は UDP  •  シンプルで軽いプロトコル  –  ROMに載せられる

プロトコル

RRQ

WRQ

TFTP 読出/書込要求メッセージ

   •  モードには  “netascii”  か  “octet” か “mail”  が ASCII コードで入る  

–  netascii  :  FTP でいう ASCII モード 受信側が文字コードを変換する  –  octet  :  FTP でいう Binary モード 送信元のフォーマットで転送される  –  mail  : ファイル名にメール受信者名を使用 書込要求で転送開始  

OPCODE  1  =  RRQ  2  =  WRQ  

ファイル名   0   モード   0  

(2バイト) (可変長) (1バイト) (可変長) (1バイト)

TFTP データ転送メッセージ

•  TFTP で転送されるデータは512バイトごとの  ブロックに分割される  

•  分割されたブロックはブロック番号と共に  転送される  

   

OPCODE  3  = データ   ブロック番号   データ  

(2バイト) (2バイト) (0-­‐512バイト)

TFTP 確認応答メッセージ

•  受信側は受信したデータのブロック番号を返す  •  1つ送られてきたら1つ返す  – ウィンドウ制御は行わない  

 

OPCODE  4  =  ACK   ブロック番号  

(2バイト) (2バイト)

ストップ・アンド・ウェイト・プロトコル

RRQ

ストップ・アンド・ウェイト・プロトコル

Data1

ストップ・アンド・ウェイト・プロトコル

ACK1

ストップ・アンド・ウェイト・プロトコル

Data2

ストップ・アンド・ウェイト・プロトコル

ACK2

ストップ・アンド・ウェイト・プロトコル

Data  n

512バイト未満

終わった

ストップ・アンド・ウェイト・プロトコル

ACK  n

TFTP 書込要求メッセージの場合

•  クライアントが WRQ を送る  •  サーバはブロック番号0のACKを返す  •  クライアントはブロック番号1で  

データ転送開始

ポート 69番  

開けてます 69宛:データくれよ

4001番です  データあげる 4001宛:ありがと

69宛:データくれよ

4002宛:ありがと

4002番です  データあげる

例 bsdi % ftfp svr4 tftp> get test1.c Received 962 bytes int 0.3 seconds tftp> quit bsdi % ls –l test1.c -rw-r—r– 1 rstevens staff 914 Mar 20 11:41 test1.c bsdi % wc –l test1.c 48 test1.c

セキュリティ

•  セキュリティに関する仕様はない  •  特定のディレクトリだけにアクセス許可したり  

まとめ

•  ROM にフィットするシンプルなプロトコル