ツヨシのブログ

技術的な事とか日常の事とか徒然なるままに

FTPのactive modeとpassive mode

FTPのACTIVEモードとPASSIVEモードについて調べる必要があったので調べてみました。

ACTIVEモード

activeモードではserverからclientに向けてデータコネクションを張ります。この時、接続するクライアント側のport番号はclientより送られたPORTコマンドにより指定されます。

SERVER 内容 CLIENT
21 <- PORT XX <- 任意
21 -> success -> 任意
21 <- RETR <- 任意
21 -> DATA CONNECTION -> XX

PASSIVEモード

passiveモードではactiveモードとは逆にclient側からserverに向けてデータコネクションを張ります。モードはPASVコマンドによりclientより指定されて、その後サーバからのデータコネクション用のポート番号の通知を受けてそこに対してclientがコネクションを張ります。

SERVER 内容 CLIENT
21 <- PASV <- 任意
21 -> ENTER PASV XX -> 任意
XX <- DATA CONNECTION <- 任意


つまり、データコネクションの方向でACTIVEモードかPASSIVEモードかの違いになります。

疑問

activeモードのときにサーバ側のデータコネクションポートとして21を使用する必要はないのかな?
RFCには何も書かれていないんだけど。。。