classic active-mode FTP serverのwell-known portを確認する。
control connectionとserver側data connectionの送信元portを区別する。
適切な組合せはどれか。
FTP control connectionはTCP 21、classic active-modeのserver側data connectionはTCP 20を使う。passive modeではdata portの選択が異なる。
詳細解説
control TCP 20 / data TCP 21controlとdataのportを逆にしている。
誤り。clientが接続するFTP control serverはTCP 21で、TCP 20はactive-mode data connectionのserver側portに対応する。
control UDP 21 / data UDP 20FTPのclassic control/data connectionはTCPを使う。
誤り。FTPはreliable byte streamを必要とするためcontrol/dataともTCP connectionを使う。
control TCP 21 / data TCP 20classic active-modeのwell-known port対応である。
正しい。command/replyをTCP 21、classic active-modeのdata転送をserver側TCP 20から行う。
control TCP 22 / data TCP 23SSHとTelnetのportでFTPではない。
誤り。TCP 22と23はそれぞれSSHとTelnetで、FTPの二重connection構造を表さない。
実際に確かめる
一時的な検証環境で実行できる例です。
python3 -c "import socket; print(socket.getservbyname('ftp','tcp'), socket.getservbyname('ftp-data','tcp'))"期待される結果
21 20理解のポイント
- FTP control 21
- FTP data 20
- 両方TCP
確認時の注意
- 確認環境: Python 3 socket service database
基礎のおさらい
active mode
clientがcontrol channelで受信先を通知し、serverがTCP 20からclientへdata connectionを開始する。
passive mode
serverが選んだ別portを通知し、clientからdata connectionを開始するため、常にserver port 20を使うわけではない。