FTP ポート番号 20 と 21 の違いは何ですか?

今日質問をしていて、質問の1つに次のように書かれていることに気づきました。

FTP クライアントがファイルをアップロードする場合、サーバー ポート 20 を介して確立される接続は () であり、FTP クライアント アプリケーション プロセスのポートは () にすることができます。

A. TCP で確立された制御接続 B. TCP で確立されたデータ接続

A. UDP 経由で確立された制御接続 B. UDP 経由で確立されたデータ接続

A.20 B.21 C.80 D.4155

答えはBDです

FTP のナレッジ ポイントについて詳しく知りたい場合は、この質問を使用してください。

FTP ポート番号 20 と 21 の違いは、1 つはデータ ポート、もう 1 つは制御ポートです制御ポートは通常 21 ですが、データ ポートは必ずしも 20 である必要はありません。これは FTP のアプリケーション モードに関連しています。アクティブ モードの場合は 20 にする必要があり、パッシブ モードの場合はサーバーとクライアント間のネゴシエーションによって決定されます。

1 つはデータ ポートで、もう 1 つは制御ポートです。制御ポートは通常 21 ですが、データ ポートは必ずしも 20 である必要はありません。これは FTP のアプリケーション モードに関連しています。アクティブ モードの場合は 20 にする必要があります。パッシブ モードの場合、サーバーによって決定され、クライアントのネゴシエーションに依存します。

        FTPポートモードとFTPパッシブモード

  FTP の問題をトラブルシューティングする場合、最初に尋ねるべき質問の 1 つは、ポート モードを使用しているかパッシブ モードを使用しているかということです。これら 2 つの動作は大きく異なるため、これら 2 つのモードによって引き起こされる問題も異なります。以前は、クライアントはデフォルトでアクティブ (ポート) モードを使用していましたが、最近では、ポート モードのセキュリティ問題のため、多くのクライアント FTP アプリケーションはデフォルトでアクティブ (ポート) モードを使用しています。パッシブモデル。

        >> FTPポートモード

  ポート モードでの FTP の手順は次のとおりです。

1. クライアントは、TCP SYN (TCP 同期) パケットをサーバー セグメントの既知の FTP 制御ポート 21 に送信し、一時ポートを送信元ポートとして使用します。

2. サーバーは SYN ACK (同期確認) パケットをクライアントに送信します。送信元ポートは 21、宛先ポートはクライアントで使用される一時ポートです。

3. クライアントは ACK (確認) パケットを送信します。クライアントはこの接続を使用して FTP コマンドを送信し、サーバーはこの接続を使用して FTP 応答を送信します。

4. ユーザーがリスト (List) 要求を要求するか、ファイルの送受信要求を開始するとき、クライアント ソフトウェアは PORT コマンドを使用します。このコマンドには、クライアントがデータ接続を開くときにサーバーが使用することを希望する一時ポートが含まれています。一時ポート。PORT コマンドには IP アドレスも含まれます。この IP アドレスは通常、クライアント自身の IP アドレスであり、FTP はサードパーティ モードもサポートしています。サードパーティ モードでは、クライアントはサーバーに別のポートとの接続を開くように指示します。ホスト接続。

5. サーバーは、クライアントの一時ポートに SYN パケットを送信します。送信元ポートは 20 です。一時ポートは、PORT コマンドでクライアントからサーバーに送信される一時ポート番号です。

6. クライアントは、送信元ポートを一時ポートとして使用し、宛先ポートを 20 として使用して、SYN ACK パケットを送信します。

7. サーバーは ACK パケットを送信します。

8. データを送信するホストは、この接続を使用してデータを送信します。データは TCP セグメント (注: セグメント、レイヤー 4 の PDU) の形式で送信されます (STOR などの一部のコマンドは、クライアントが送信を希望していることを示します)データ、RETR はサーバー セグメントがデータを送信することを示します)、これらの TCP セグメントは相手からの ACK 確認を必要とします (注: TCP プロトコルはコネクション型プロトコルであるため)。

9. データ送信が完了すると、データを送信したホストは FIN コマンドでデータ接続を終了します。この FIN コマンドは相手ホストからの ACK による確認を必要とします。相手ホストも FIN コマンドを送信します。この FIN コマンドも同様に送信します。データを送信し、ホストは ACK で確認します。

10. クライアントは制御接続上でさらに多くのコマンドを送信でき、他のデータ接続を開いたり閉じたりできます。場合によっては、クライアントの終了後、クライアントが FIN コマンドで制御接続を閉じ、サーバーが ACK パケットでそれを確認します。 FIN を使用すると、サーバーもその FIN を送信し、クライアントはそれを ACK で確認します。

おすすめ

転載: blog.csdn.net/qq_29855509/article/details/126703610