ftp
の通信手順、セッション
修士
2
年
中野
裕也
FTP(File
T
ransfer
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・PS
H+
‘
220
・・サービス準備OK’
5.
ACK(送達確認)
→
6.
ACK・PSH+
‘USER・・ユーザID’
→
7.←
ACK(送達確認)
8.←
ACK・PS
H+
‘
331
・・パスワード督促’
9.
ACK(送達確認)
→
10.
ACK・PSH+
→
‘PASS・・パスワード’
1
1.←
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
からポート
1
182
へ
<データコネクション>
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
からポート
1
183
へ
<データコネクション>
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
がデータの接続を行うためのポートをサーバ側が
指定する方式
•
パッシブモードを利用する目的
ファイアーウォールを内側から越えて通信できるようにするなど