ftpの通信手順、セッション
修士2
中野 裕也
FTP(File Transfer Protocol)とは
コンピュータ間でファイル転送を行うためのプロトコル
特徴
・異機種間のファイルシステムを考慮して転送できる
・匿名による認証をサポート
FTPの動作モデル
2本のTCPコネクション
・制御用コネクション ポート21
・データ用コネクション ポート20
ファイル
システム
ファイル
システム
サーバの
制御プロセス
サーバの
データ転送
プロセス
ユーザ
インターフェース
クライアントの
制御
プロセス
クライアントの
データ転送
プロセス
ユーザ
サーバ
クライアント
制御コネクション
(コマンドと応答)
データコネクション
FTPと第3者ホスト
ファイル
システム
ファイル
システム
サーバの
データ転送
プロセスA
サーバの
データ転送
プロセスB
クライアントの
制御
プロセス
ユーザ
インターフェース
データコネクション
ポート1ポート2
制御制御
開始ホスト
FTPの基本的なステップ
FTPクライアントをスタート
・クライアントをサーバに接続
・ユーザ名を入力
・パスワードを入力
・ファイルを探す
・ディレクトリを移動する
・ファイルをget
・やめる
通信手順
Ftpクライアント Ftpサーバ
1.SYNポート21
2.←SYN・ACK
3.ACK
(ハンドシェイク完了)
4.←ACK・PSH+
220・・サービス準備OK’
5.ACK(送達確認)
6.ACK・PSH+
‘USER・・ユーザID’
7.←ACK(送達確認)
8.←ACK・PSH+
331・・パスワード督促’
9.ACK(送達確認)
10.ACK・PSH+
‘PASS・・パスワード’
11.←ACK(送達確認)
12.←ACK・PSH+
230・・ログイン実行中’
13.ACK(送達確認)
14.ACK・PSH+
‘CWD・・ディレクトリ変更’
15.←ACK(送達確認)
16.←ACK・PSH+
250・・処理完了’
17.ACK(送達確認)
18.ACK・PSH+
‘ポート・・IPとポート’
19.←ACK(送達確認)
20.←ACK・PSH+
200・・コマンドOK’
21.ACK(送達確認)・PSH+
‘LIST・・’
22.←ACK(送達確認)
23.←SYN
ポート20からポート1182
<データコネクション>
24.SYN・ACK
<データコネクション>
25.←ACK・PSH+
125・・データコネクション開設済み’
26.←ACK
<データコネクション>
27.←ACK・FIN+
‘ディレクトリ情報・・’
<データコネクション>
28.ACK(送達確認)
<データコネクション>
29.ACK・FIN
<データコネクション>
30.ACK(送達確認)
パケット25に対する
31.←ACK(送達確認)
パケット29に対する
<データコネクション>
32.←ACK・PSH+
250・・処理完了’
33.ACK(送達確認)
34.ACK・PSH+
‘ポート・・IPとポート’
35.←ACK(送達確認)
36.←ACK・PSH+
200・・コマンドOK’
37.ACK・PSH+
‘RETR・・ファイル名’
38.←ACK(送達確認)
39.←SYN
ポート20からポート1183
<データコネクション>
40.SYN・ACK
<データコネクション>
41.←ACK
<データコネクション>
42.←ACK・PSH
125・・データコネクション開設済み’
43.←ACK・FIN+
‘ファイルデータ・・’
<データコネクション>
44.ACK(送達確認)
<データコネクション>
45.ACK・FIN
<データコネクション>
46.ACK(送達確認)
パケット42に対する
47.←ACK(送達確認)
<データコネクション>
48.←ACK・PSH+
250・・処理完了’
49.ACK(送達確認)
パッシブモード
パッシブモードの場合
FTPがデータの接続を行うためのポートをクライアント側が
指定する方式
パッシブモードでない場合
FTPがデータの接続を行うためのポートをサーバ側が
指定する方式
パッシブモードを利用する目的
ファイアーウォールを内側から越えて通信できるようにするなど