FTP - File Transfer Protocol ============================= .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **What is FTP?** FTP stands for File Transfer Protocol. It’s a standard network protocol used to transfer files between a client and a server over a TCP/IP network, such as the internet or a local network. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **What is the purpose of FTP?** * Uploading and downloading files between systems. * Managing website files on a remote server. * Backing up data to a remote location. * Sharing large files that are too big for email. * It provides a simple way to move files across systems, especially in web development and system administration. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **How does it work?** * Client connects to FTP server – Using an FTP client (like FileZilla), the user connects to the server using a username and password. * Authentication – The server verifies the credentials. * File operations – The user can upload, download, rename, delete, or move files on the server. * Connection closes – Once done, the client disconnects from the server. * FTP uses two channels: 1. Command channel – For sending commands and responses 2. Data channel – For transferring actual files .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Where is FTP used?** * Web hosting – To upload website files to a server. * Corporate environments – For internal file sharing and backups. * Software distribution – To provide downloadable files (e.g., drivers, updates). * Remote administration – For managing files on remote systems. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which OSI Layer does this protocol belong to?** * FTP operates at the **Application Layer (Layer 7)** of the OSI model. * It provides file transfer services to applications and users. * It relies on **TCP** (Layer 4) for reliable communication. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Topics in this section, * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`FTP Basic Setup on Ubuntu using IPv4 ` * :ref:`FTP Basic Setup on Ubuntu using IPv6 ` * :ref:`FTP Protocol Packet Details ` * :ref:`FTP Usecases ` * :ref:`FTP Basic Features ` * :ref:`FTP Feature : File Transfer ` * :ref:`FTP Feature : Authentication ` * :ref:`FTP Feature : Directory Operations ` * :ref:`FTP Feature : File Management ` * :ref:`FTP Feature : Modes of Transfer ` * :ref:`FTP Feature : Transfer Types ` * :ref:`FTP Feature : Multiple Platforms ` * :ref:`FTP Feature : Control & Data Channels ` * :ref:`FTP Feature : Logging & Auditing ` * :ref:`Reference links ` .. _FTP_step1: .. tab-set:: .. tab-item:: Learnings in this section * In this section, you are going to learn .. _FTP_step2: .. tab-set:: .. tab-item:: Terminology * Terminology .. _FTP_step3: .. tab-set:: .. tab-item:: Version Info * Version Info .. _FTP_step5: .. tab-set:: .. tab-item:: FTP Version&RFC Details .. csv-table:: :file: ./FTP/FTP_RFC_Details.csv :widths: 10,10,10,30 :header-rows: 1 .. _FTP_step18: .. tab-set:: .. tab-item:: FTP Basic Setup on Ubuntu using IPv4 * Setup .. _FTP_step19: .. tab-set:: .. tab-item:: FTP Basic Setup on Ubuntu using IPv6 * Setup .. _FTP_step6: .. tab-set:: .. tab-item:: FTP Protocol Packet Details **FTP USER Command** .. csv-table:: :file: ./FTP/FTP_Protocol_Packet_1.csv :widths: 10,20,30,10 :header-rows: 1 **FTP PASS Command** .. csv-table:: :file: ./FTP/FTP_Protocol_Packet_2.csv :widths: 10,20,30,10 :header-rows: 1 **FTP LIST Command** .. csv-table:: :file: ./FTP/FTP_Protocol_Packet_3.csv :widths: 10,20,30,10 :header-rows: 1 **FTP RETR Command** .. csv-table:: :file: ./FTP/FTP_Protocol_Packet_4.csv :widths: 10,20,30,10 :header-rows: 1 **FTP STOR Command** .. csv-table:: :file: ./FTP/FTP_Protocol_Packet_5.csv :widths: 10,20,30,10 :header-rows: 1 **FTP QUIT Command** .. csv-table:: :file: ./FTP/FTP_Protocol_Packet_6.csv :widths: 10,20,30,10 :header-rows: 1 **FTP Data Packet** .. csv-table:: :file: ./FTP/FTP_Protocol_Packet_7.csv :widths: 10,20,30,10 :header-rows: 1 .. _FTP_step7: .. tab-set:: .. tab-item:: FTP Usecases .. csv-table:: :file: ./FTP/FTP_Usecases.csv :widths: 10,20,30 :header-rows: 1 .. _FTP_step8: .. tab-set:: .. tab-item:: FTP Basic Features .. csv-table:: :file: ./FTP/FTP_Features.csv :widths: 10,10,30 :header-rows: 1 .. _FTP_step9: .. tab-set:: .. tab-item:: FTP Feature : File Transfer **File Transfer - Testcases** .. csv-table:: :file: ./FTP/FTP_Feature_1_File_Transfer_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _FTP_step10: .. tab-set:: .. tab-item:: FTP Feature : Authentication **Authentication - Testcases** .. csv-table:: :file: ./FTP/FTP_Feature_2_Authentication_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _FTP_step11: .. tab-set:: .. tab-item:: FTP Feature : Directory Operations **Directory Operations - Testcases** .. csv-table:: :file: ./FTP/FTP_Feature_3_Directory_Opearation_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _FTP_step12: .. tab-set:: .. tab-item:: FTP Feature : File Management **File Management - Testcases** .. csv-table:: :file: ./FTP/FTP_Feature_4_File_Management_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _FTP_step13: .. tab-set:: .. tab-item:: FTP Feature : Modes of Transfer **Modes of Transfer - Testcases** .. csv-table:: :file: ./FTP/FTP_Feature_5_Modes_of_Transfer_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _FTP_step14: .. tab-set:: .. tab-item:: FTP Feature : Transfer Types **Transfer Types - Testcases** .. csv-table:: :file: ./FTP/FTP_Feature_6_Transfer_Types_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _FTP_step15: .. tab-set:: .. tab-item:: FTP Feature : Multiple Platforms **Multiple Platforms - Testcases** .. csv-table:: :file: ./FTP/FTP_Feature_7_Multiple_Platforms_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _FTP_step16: .. tab-set:: .. tab-item:: FTP Feature : Control & Data Channels **Control & Data Channels - Testcases** .. csv-table:: :file: ./FTP/FTP_Feature_8_Control_and_Data_Channels_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _FTP_step17: .. tab-set:: .. tab-item:: FTP Feature : Logging & Auditing **Logging & Auditing - Testcases** .. csv-table:: :file: ./FTP/FTP_Feature_9_Logging_and_Auditing_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _FTP_step20: .. tab-set:: .. tab-item:: Reference links * Reference links