<> = TFTPとその周辺 = {{{#!wiki slidetitle slidemargin center large TFTPとその周辺 }}} {{{#!wiki slidetitle center larger TFTP, UDP, inetd }}} = TFTPとは = * TFTPとはUDPで通信するごくごく簡易的なファイル転送プロトコル * Trivial File Transfer Protocol の略 = UDP vs TCP = * UDPとは 第三層のプロトコルで同じ層にはTCPなどがある。 * TCP * パケットが到達したかどうか・タイムアウトを自動で管理する * 大部分の信頼性が要求される通信に用いられる * アプリケーションが再送処理をする必要がないので、アプリケーションの実装は楽 * 逆にTCP自体の実装は大変 * UDP * プロトコルが簡単=実装が容易 * パケットが届いたかどうかの管理をしない   * 必要に応じてアプリケーション側で再送処理などをする必要がある * パケットが一部無くなっても良いのでパフォーマンスを優先したい通信(ストリーミング)とか * プロトコルスタックの実装を簡単にしたいときとか * 使用例: DNS, DHCP, TFTP, SDP, etcetc = inetd = * アプリケーションが一々socket作ってlistenしてacceptして云々をやるのは面倒 * inetdは(サーバ側について)アプリケーションの代わりにソケット通信の部分をやってくれるデーモン * アプリケーションプログラムは標準入出力を介して通信する * 最近はxinetdのほうがよく使われるし便利 * FreeBSDにはinetd用のtftpdが含まれている = TFTP = * FTPとは目的が同じだから名前が似てるだけで構造は似ても似つかない * 2種類のリクエストしかない(Read/Write) * ファイル名を指定してRead Requestを投げるとデータかエラーが返ってくる * ファイル一覧の取得もサポートしない * 認証なんて、あるわけない * なぜUDPか * だってPXE BIOSのようなOSのない世界でTCPを実装したくないじゃないですか