TFTP serverの実装

Similar documents
PowerPoint Presentation

SMTPエラーコード表

SiTCP ユーティリティユーザガイド 2014 年 6 月 18 日 0.73 版 Bee Beans Technologies 1

<4D F736F F F696E74202D DB A B C C815B E >

Internet Initiative Japan Inc. プロトコルの脆弱性 ( 株 ) インターネットイニシアティブ 永尾禎啓 Copyright 2004, Internet Initiative Japan Inc.

要求受付機能 管理番号内容対象バージョン 314 トレースログに重複してメッセージが出力される場合がある 6.3.2~ 大量のファイルトリガ情報が登録されている状態でファイルトリガプロセスを起動するとファイルトリガプロセスが停止する場合がある 7.2.0~7.3.1 ユーティリティ

Cisco CSS HTTP キープアライブと ColdFusion サーバの連携

第1回 ネットワークとは

Singapore Contec Pte Ltd. Opening Ceremony

メール送信テストツール手順書

10-vm1.ppt

アマチュア無線のデジタル通信

アルファメールプレミアのメールアドレスは 普段ご利用のメールソフトでもメールを送受信することができます ここでは Outlook 2013 の設定方法をご紹介します それ以外のメールソフトをご利用になる場合は 下記の基本設定項目を参考に設定を行ってください 基本設定項目 メールアカウント メールパス

2.5 トランスポート層 147

Microsoft Word - CAN Monitor の使い方.doc

Microsoft Word - ssVPN MacOS クライアントマニュアル_120版.doc

オペレーティング システムでの traceroute コマンドの使用

本資料について

Microsoft PowerPoint - 【HULFT】効果的なHULFT活用講座(①機能編)( )2.pptx

スライド 1

presen1.pptx

PowerPoint プレゼンテーション

CommCheckerManual_Ver.1.0_.doc

Windows Hosting Suite スタートアップマニュアル このガイドでは 以下のメニューについて説明しています 1. お名前.com プレミアサーバー Windows プラン管理画面 CONTROL PANEL ログイン方法 2. ウェブコンテンツのアップロード方法 3. メールボックス

アナログ・接点変換器

PowerPoint プレゼンテーション

付録 2 システムログ一覧 () 攻撃経路 1. ファイアウォール (FW) ネットワーク型 IPS/IDS Web サーバ AP サーバ DB サーバ プロキシサーバ エラーログ SSL ログ AP ログ ホストログ 非 日時 ファイアウォールホスト名 ファイアウォールルール名及び番号 インバウン

 

ネットワーク入門 データ届くためには2 練習問題

Microsoft Word - u-CAT’Ý™è…K…C…

CONTENTS 目 次 はじめに 1 メール送信テストツール の必要システム環境 1 ファイルの展開 2 圧縮された (ZIP) ファイルを展開 ( 解凍 ) する方法 2 前準備 3 送信テスト 4 操作方法 4 送信テスト時の確認事項 8 SMTP サーバーへのメール送信 8 メール送信後のメ

030403.インターネット問題

PowerPoint プレゼンテーション

CSS のスパニングツリー ブリッジの設定

(Microsoft Word - \203\214\203\223\203^\203\213\203T\201[\203o\220\335\222\350\203K\203C\203h_ doc)

MODBUS ユーザーズマニュアル 페이지 1 / 23

コンテンツセントリックネットワーク技術を用いた ストリームデータ配信システムの設計と実装

マニュアル訂正連絡票

Microsoft PowerPoint - chapter6_2012.ppt [互換モード]

Driver Specification for JX65x, 67x, 598

スライド 1

Mobile IPの概要

PowerPoint プレゼンテーション

04-process_thread_2.ppt

人類の誕生と進化

目次 1. 教育ネットひむかファイル転送サービスについて ファイル転送サービスの利用方法 ファイル転送サービスを利用する ( ひむか内 ) ファイル転送サービスへのログイン ひむか内 PCでファイルを送受信する

[ 参照規格一覧 ] JIS C5973 (F04 形単心光ファイバコネクタ ) JIS C6835 ( 石英系シングルモード光ファイバ素線 1991) JIS C6832 ( 石英系マルチモード光ファイバ素線 1995) IETF RFC791(Internet Protocol

FUJITSU Software Systemwalker Centric Manager Lite Edition V13.5 機能紹介資料

Time Server Pro. TS-2910 リリースノート お客様各位 2019/09/13 セイコーソリューションズ株式会社 Time Server Pro.(TS-2910/TS-2912) システムソフトウェアリリースノート Ver2.1.1 V2.2 変更点 Version 2.2 (

NGN IPv6 ISP接続<トンネル方式>用 アダプタガイドライン概要

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

ユーティリティ 管理番号 内容 対象バージョン 157 管理情報バッチ登録コマンド (utliupdt) のメッセージ出力に対し リダイレクトまたはパイプを使用すると メッセージが途中までしか出 力されないことがある 267 転送集計コマンド (utllogcnt) でファイル ID とホスト名の組

1 Atollic TrueSTUDIO( GR-PEACH TOPPERS/ASP ASP GR-PEACH mbed ( git

file:///C:/www/

F O M A P P P 接続参考資料 DTE~FOMA パケット網間インタフェース 第 1.4 版 株式会社 NTT ドコモ Unpublished copyright 2007 NTT DoCoMo, Inc. All rights reserved. Unpublished copyrigh

講座内容 第 1 回オープンネットワークの概念と仕組み ( 講義 90 分 ) 基本的なネットワークの構成及び伝送技術について大規模化 マルチプロトコル化を中心に技術の発展と 企業インフラへの適用を理解する その基本となっている OSI 7 階層モデルについて理解する (1) ネットワークの構成と機

マニュアル訂正連絡票

IPsec徹底入門

ソフトウェアの説明

1 TCP/IPがインストールされていて正常に動作している場合は ループバックアドレィング5.3 ネットワークのトラブルシューティング スでリプライが返ってきます リプライが返ってこない場合 なんらかの原因でサービスが無効になっていたり TCP/IPプロトコルが壊れていたりする可能性があります 2

改版履歴 版数 改訂日 該当頁 / 該当項目 改訂の要点 /03/31 6 対応 OSの変更に伴う修正 動作環境 の OS に以下を追加 Windows 8.1 Update (64Bit) Windows 8.1 Update Pro (64Bit) 動作環境 の OS から以

インターネット,LAN,ネットワークに関する知識

GettingStarted.fm

NTTラーニングシステムズ株式会社

SMB ファイル共有機能 設定 / 利用ガイド 本ガイドは 複合機 bizhub C658/C558/C458/ C368/C308/C258 を例に説明をしています 他の機種の場合も操作方法は同じです 本ガイドでは SMB ファイル共有機能を複合機で利用するために必要な設定 / 利用方法を説明しま

Microsoft PowerPoint - IPsec徹底入門.ppt

技術的条件集別表 26.2 IP 通信網 ISP 接続用ルータ接続インタフェース仕様 (IPv4 トンネル方式 -10GBASE LR インタフェース )

VG シリーズ用ローカルファームアップ / 自動ファームウェア更新設定手順書 VG400aⅡ ローカルファームアップ / 自動ファームウェア更新設定手順書

使用する前に

第5回 マインクラフト・プログラミング入門

自律アクセス ポイントでの Cisco IOS のアップグレード

4-7.コネクト2.0_電話操作マニュアル(ZoiperFree)_v1.1.0

InfoPrint 5577/5579 ネットワーク設定ガイド(第5章 UNIX/Linux環境で使用する)

InfoPrint 5577/5579 ネットワーク設定ガイド(第4章 UNIX/Linux環境で使用する)

他の章は下記をクリックして PDF 一覧からお入り下さい IT ライブラリー (pdf 100 冊 ) 目次番号 270 番 Windows Server Enterprise 2008 R2 完全解説 ( 再入門 )

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

ブート ~OS が起動されるまで~

スライド 1

< 障害一覧 > HULFT 配信機能 管理番号 内容 対象バージョン 39 コード変換の必要がない集信処理および配信処理を実行したにも関わ 7.0.0~7.3.1 らず コード変換処理でエラーとなる場合がある 44 システム動作環境設定再設定コマンド (hulclusterxxx -set) を使

FTP_RW_ProgramDescription_jp_V100

Microsoft PowerPoint pptx

conf_example_260V2_inet_snat.pdf

Microsoft Word - WatchUsbManager for Web リソースモニター結果.docx

Relay Socket for Industrial Relay                    1/2

MINI2440マニュアル


本製品に接続された端末の IPv6 情報が表示されます 端末に割り当てられた IPv6 アドレス IPv6 アドレスを取得した端末の MAC アドレスが確認できます 注意 : 本ページに情報が表示されるのは本製品が 上位から IPv6 アドレスを取得した場合のみとなります DDNSサービス :DDN

Microsoft Word - Gmail-mailsoft_ docx

2013年『STSSスキルコミュニティ』 テーマ別Kickoff資料

なって削除されるが invalid-route-reactivateオプションをonで指定している場合 優先度が高い経路が消滅したときに無効になっていたRIP 由来の経路を再有効化する [ ノート ] スタティック経路の優先度は10000で固定である invalid-route-reactivate


XNA Framework

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

MS916 バッチ操作ガイド FW バージョン 0.52 向け バッチ操作の基本 MS916 のバッチ操作について バッチ操作では 読取ったバーコードデータはすべて 不揮発性のメモリ (1MB ROM JAN-13 約 50,000 件 ) に保存されます メモリに保存されたデータは任意のタイミング

PowerPoint プレゼンテーション

センサーデバイスへの仮想IP割り当て実験

HULFT for Mainframe Type ACOS Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HULFT for Mainframe Type ACOS < 対応 OS> ACOS-4/XVP PX, ACOS-4/NPX, ACOS-4/i-

平成18年度電気関係学会東海支部連合大会

(Microsoft Word - JE000250_\203\312TURTLE-RWModbusTCP\220\332\221\261\220\340\226\276\217\221\(4\224\305\).doc)

Transcription:

TFTP サーバーの実装 デジタルビジョンソリューション 佐藤史明 1

1 プレゼンのテーマ組み込みソフトのファイル転送を容易に 2 3 4 5 基礎知識 TFTP とは 実践 1 実際に作ってみよう 実践 2 組み込みソフトでの実装案 最後におさらい 2

プレゼンのテーマ 組み込みソフトのファイル転送を容易に テーマ選択の理由 現在従事しているプロジェクトで お客様からファームウェアなどのファイル転送を独自方式からTFTPに変更したいと要望があった その検討内容をこの場で展開したいと考えたため お客様が TFTP を採用したい理由 対向装置がLinuxで動作するため ファイル転送の仕組みを独自で作成するのではなく LinuxのTFTPコマンドを使用してファイル転送を行うようにし 対向装置側の工数を削減したい 3

1 プレゼンのテーマ組み込みソフトのファイル転送を容易に 2 3 4 5 基礎知識 TFTP とは 実践 1 実際に作ってみよう 実践 2 組み込みソフトでの実装案 最後におさらい 4

基礎知識 TFTP とは TFTP Trivial File Transfer Protocolの略 UDPを用いてコンピュータ間でファイルを転送するプロトコル 認証機能が無いため ユーザ名やパスワードを必要としない ファイルシステムのファイル一覧などの取得機能も無い つまり TFTP は 軽量で簡素なファイル転送プロトコル 5

基礎知識 TFTP とは TFTP の PDU ( プロトコルが扱うデータの単位 ) 1. Read Request (RRQ) サーバーのファイル読み込み要求 2. Write Request (WRQ) サーバーへの書き込み要求 3. Data (DATA) サーバー もしくはクライアントからのデータ転送 4. Acknowledgement (ACK) 確認応答 5. Error (ERROR) エラー通知 6

基礎知識 TFTP とは Read Request(RRQ), Write Request(WRQ) OP コード (2 オクテット ) (OP Code) ファイル名 ( 可変長 ) (Filename) Null (1 オクテット ) モード ( 可変長 ) (Mode) Null (1 オクテット ) OP Code 説明 Mode 説明 1 RRQ 2 WRQ netascii octet mail 全ての受信データをホストが自分のフォーマットに変換しなければならない ファイルが転送されるフォーマットは 送信元マシンのものになる 現在殆ど使われていない ファイルとしてではなくユーザに直接送信するモード このモードは廃止するので 実装 使用しないこと 7

基礎知識 TFTP とは Data (DATA) OP コード (2 オクテット ) (OP Code) ブロック番号 (2 オクテット ) データ (0~512 オクテット ) OP Code 説明 3 DATA ブロック番号には転送するデータブロックの番号が入る ブロックには必ず1から番号が付けられ ブロックを送るたびにインクリメントする ブロック内のデータが512オクテット未満であれば データ全てが転送されたことが示され 転送が終了することになっている データ全体のサイズが 512 オクテットの倍数の場合には 最後にデー タを 0 オクテットにした本 PDU を送信することでデータが全て転送され たことを示す 8

基礎知識 TFTP とは Acknowledgement (ACK) OP コード (2 オクテット ) (OP Code) ブロック番号 (2 オクテット ) OP Code 説明 4 ACK 前のブロックに対する応答確認を受信するまで 送信側は次のパケットを送信しない 応答確認が失われた場合 送信側はタイムアウトを待ち 前のデータブロックを再送する 受信側も応答確認を再送するようになっていて 送信側は応答確認の再送を受信した場合 データブロックを再送する 9

基礎知識 TFTP とは Error (ERROR) OP コード (2 オクテット ) (OP Code) エラーコード (2 オクテット ) (Error Code) エラーメッセージ ( 可変長 ) Null (1 オクテット ) OP Code 説明 5 ERROR エラー状態から復旧できる可能性はTFTPではほとんどなく エラーが起こると転送をすぐに終了する 例外は未知のポート宛のパケットを受信した時で ポート番号が未知のため 転送が行われていることがわからず受信側は破棄してしまう 10

基礎知識 TFTP とは 書き込みシーケンス クライアント 192.168.0.5 ポート50000 ( 例 ) 1 送信元ポートは50000で 宛先ポートは 69で書き込み要求を送信 サーバー 192.168.0.6 ポート69 書き込み要求 (WRQ) ポート 50000 ( 例 ) ポート 50000 ( 例 ) ポート 50000 ( 例 ) 2 送信元ポート番号をランダムに決定し ACK を返す この時のブロック番号はデータを受け取っていないので 0 を設定する 確認応答 (ACK) 3 ブロック番号 1 のデータを転送 宛先は ACK に設定されていたポート番号を設定 DATA ( ブロック 1) 4 データ受信側は DATA を受け取る度に ACK を返す 確認応答 (ACK) ポート 3001 ( 例 ) ポート 3001 ( 例 ) ポート 3001 ( 例 ) ファイル送信側はファイルを512octetごとに分割して送信する 分割データにはシーケンスの番号となるブロック番号が1から順に付与される データを受け取った側は確認応答 (ACK) を返す 最終的に512octet 未満のデータを受信したらファイル転送が終了したことを認識する 最後のデータが512octetの場合は 送信側は0octetのデータを送信することで受信側にファイル転送が終了したことを認識させる 11

基礎知識 TFTP とは 読み込みシーケンス クライアント 192.168.0.5 ポート50000 ( 例 ) 1 送信元ポートは50000で 宛先ポートは 69で読み込み要求を送信 サーバー 192.168.0.6 ポート69 読み込み要求 (RRQ) 2 送信元ポート番号をランダムに決定し ブロック番号 1のデータを送る ポート50000 ( 例 ) ポート3001 ( 例 ) DATA ( ブロック1) 3 確認応答を返す ポート50000 ( 例 ) ポート3001 ( 例 ) 確認応答 (ACK) ファイル送信側はファイルを512octetごとに分割して送信する 分割データにはシーケンスの番号となるブロック番号が1から順に付与される データを受け取った側は確認応答 (ACK) を返す 最終的に512octet 未満のデータを受信したらファイル転送が終了したことを認識する 最後のデータが512octetの場合は 送信側は0octetのデータを送信することで受信側にファイル転送が終了したことを認識させる 12

基礎知識 TFTP とは サーバーがポート番号をランダムにするのは? 複数のクライアントに対応するため クライアント A ポート 50001 DATA ポート 3001 サーバー ポート 69 クライアント B RRQ データ転送にポート番号 69 を使用すると 他クライアントからの RRQ/WRQ を受け取ることができない そのため サーバーはデータの送受信には 69 以外のポート番号を使用する ポート 50002 13

基礎知識 TFTP とは 再送の仕組み TFTP は再送などの信頼性確保の機能を持たない UDP を使用している つまり 信頼性を確保する仕組みを自分で用意する必要がある 再送が必要なケース 再送が必要なケースは2 種類考えられる Data (DATA) がロスト Acknowledgement (ACK) がロスト 14

基礎知識 TFTP とは 再送のケース 1 DATA のロスト クライアント 192.168.0.5 サーバー 192.168.0.6 ポート 50000 ( 例 ) ポート 50000 ( 例 ) ポート 50000 ( 例 ) DATA ( ブロック 5) 1 受信側が一定時間経過後に前のブロック番号で確認応答を再送する 確認応答 (ACK ブロック 4) 2 送信側がブロック 5 の DATA を送信することで復帰 DATA ( ブロック 5) ポート 3001 ( 例 ) ポート 3001 ( 例 ) ポート 3001 ( 例 ) 15

基礎知識 TFTP とは 再送のケース 2 ACK のロスト クライアント 192.168.0.5 サーバー 192.168.0.6 ポート 50000 ( 例 ) DATA ( ブロック 5) ポート 3001 ( 例 ) ポート 50000 ( 例 ) ポート 50000 ( 例 ) 確認応答 (ACK ブロック 5) 1 送信側が一定時間経過後に先程の DATA を再送する DATA ( ブロック 5) ポート 3001 ( 例 ) ポート 3001 ( 例 ) ポート 50000 ( 例 ) 2 受信側が先程の ACK を再送することで復帰 確認応答 (ACK ブロック 5) ポート 3001 ( 例 ) 16

1 プレゼンのテーマ組み込みソフトのファイル転送を容易に 2 3 4 5 基礎知識 TFTP とは 実践 1 実際に作ってみよう 実践 2 組み込みソフトでの実装案 最後におさらい 17

実践 1 作ってみよう 目標 VMware 上で動作する Linux で自作の TFTP サーバープログラムを動作させ Windows 上で動作する TFTP クライアントとの間でファイルの送受信ができることを確認する TFTP サーバー Ubuntu(VMware) TFTP クライアント Windows7 64bit Ubuntu は Windows7 上の仮想環境 (VMware) で動作させる NAT 接続だとうまくいかなかったので ブリッジ接続 フリーソフトの Tftpd64 を使用 18

実践 1 作ってみよう ポイントになりそうなのは WRQ/RRQを受信したら子プロセスを生成し データの転送はそちらに行わせる データ転送を行う子プロセスはメイン処理 ( 無限ループ ) の中でタイムアウト付きの selectを使用して パケットの受信とタイムアウト処理 ( 再送 ) を行うことができるようにする データは512byte 固定で送られてくるため 次のデータの書き込み位置は 512byte ブロック番号 で求めることができる (fseek 関数 ) 19

実践 1 作ってみよう ファイル読み込みシーケンス 20

実践 1 作ってみよう ファイル書き込みシーケンス 21

1 プレゼンのテーマ組み込みソフトのファイル転送を容易に 2 3 4 5 基礎知識 TFTP とは 実践 1 実際に作ってみよう 実践 2 組み込みソフトでの実装案 最後におさらい 22

実践 2 組み込みソフトでの実装案 より小さなプログラムにするために 組み込みソフトウェアは汎用 PC とは異なり メモリといった資源がかなり制限される そのため より小さいプログラムにすることを目指す 要求を考える 要望されているシステムではファイルを転送するクライアントが決定しており 接続も 1:1で行う そのため サーバー側でポート番号をランダムに決定する必要はなく ポート番号 69のみで実現可能 1タスクで対応可能になり スタック使用量を減らし コード量も抑えることができる 23

実践 2 組み込みソフトでの実装案 TFTP サーバータスクのメイン処理 UDP 通信端点生成 無限ループ メールボックス受信 メッセージ WRQ/RRQ ACK T.O ERROR WRQ/RRQ 受信 タイムアウト ( 再送 ) ACK 受信 ERROR 受信 24

実践 2 組み込みソフトでの実装案 ファイルシステムが用意されていないケース 使用する OS によってはファイルシステムが用意されていないケースがある その場合 は RAM 上に読み書き用の領域を確保することで対応可能 たとえば... fseek でファイル位置を移動させていたのをポインタ移動で対応 ファイル名は読み書きしたい情報の識別子として使用 25

1 プレゼンのテーマ組み込みソフトのファイル転送を容易に 2 3 4 5 基礎知識 TFTP とは 実践 1 実際に作ってみよう 実践 2 組み込みソフトでの実装案 最後におさらい 26

最後に おさらい TFTPはUDPを使用する軽量で簡素なプロトコル 信頼性確保のために自分で仕組みを用意する必要がある ( 再送制御 ) RRQ/WRQの処理をするのはポート番号 69 複数クライアントに対応するには RRQ/WRQ 以降の処理を行う別ポート番号の口を用意する 1:1なら固定で割り当て 1タスクで処理できる それによって実装量もスタックなどの資源使用量も減らせる ファイルシステムをサポートしていない組み込みソフトでも 読み書き用の領域を RAM 上に用意することでTFTPを利用することができる 27

最後に おさらい 参考資料 RFC1350 THE TFTP PROTOCOL (REVISION2) マスタリング TCP/IP 応用編 使用したフリーソフト Tftpd64 http://tftpd32.jounin.net/ 28