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には何も書かれていないんだけど。。。