ログイン
編集不可のページディスカッション情報添付ファイル
"ytoku/Slides/AroundTFTP"の差分

MMA
1と5のリビジョン間の差分 (その間の編集: 4回)
2011-12-16 03:53:05時点のリビジョン1
サイズ: 708
編集者: ytoku
コメント:
2011-12-16 20:05:49時点のリビジョン5
サイズ: 2194
編集者: ytoku
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
#acl ytoku:admin,read,write,delete,revert All: <<Action(SlideShow,スライドショーの開始)>>

= 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自体の実装は大変
行 3: 行 23:
  * TCPは大部分の信頼性が要求される通信に用いられる
   * TCP自体の実装は大変
  * UDPの特徴
   * プロトコルが簡単=実装が容易
   * パケットが届いたかどうかの管理をしない
   * パケットが一部無くなっても良いのでパフォーマンスを優先したい通信(ストリーミング)とか
   * プロトコルスタックの実装を簡単にしたいときとか
 * inetd
 * TFTP (Trivial File Transfer Protocol)
  * 2種類のリクエストしかない(Read/Write)
  * ファイル一覧の取得もサポートしない
  * 認証なんて、あるわけない
  * プロトコルが簡単=実装が容易
  * パケットが届いたかどうかの管理をしない
   * 必要に応じてアプリケーション側で再送処理などをする必要がある
  * パケットが一部無くなっても良いのでパフォーマンスを優先したい通信(ストリーミング)とか
  * プロトコルスタックの実装を簡単にしたいときとか
  * 使用例: 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を実装したくないじゃないですか

スライドショーの開始

TFTPとその周辺

TFTPとその周辺

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を実装したくないじゃないですか

ytoku/Slides/AroundTFTP (最終更新日時 2011-12-16 20:05:49 更新者 ytoku)