File Transfer Protocol (FTP) adalah sebuah protokol yang berfungsi untuk mengirim atau menerima file dalam suatu network yang mensupport TCP/IP protokol. Dua hal penting yang ada dalam FTP adalah FTP server dan FTP Client. FTP server menjalankan software yang digunakan untuk tukar menukar file, yang selalu siap memberian layanan FTP apabila mendapat request dari FTP client. FTP client adalah komputer yang merequest koneksi ke FTP server untuk tujuan tukar menukar file (mengupload atau mendownload file).
FTP memiliki banyak fungsi atau manfaat yang menguntungkan bagi penggunanya, misalnya saja :
- Kita dapat melakukan pertukaran file antar komputer dengan mudah, walaupun file tersebut memiliki ukuran yang besar.
- Bagi pemilik website, dengan adanya FTP, mereka dapat melakukan backup website mereka dengan mudah.
- Kita dapat melakukan indirect maupun implicit remote computer.
- FTP menyediakan transfer data yang reliabel dan efisien, karena setiap pengguna tidak memerlukan tahapan-tahapan yang rumit untuk memperoleh suatu file atau mentransfer suatu file.
- FTP memfasilitasi tiap pengguna untuk melakukan transfer data secara dua arah. Artinya, jika FTP digunakan dalam sebuah perusahaan, maka setiap pemimpin perusahaan mampu mengirimkan file kepada karyawannya dan sebaliknya, dengan menggunakan server yang sama.
- Progress perpindahan data tidak akan hilang walaupun sambungan terputus.
- Transer data/file dapat dilakukan dengan mudah dan terorganisir.
FTP sebenarnya cara yang tidak aman untuk mentransfer file karena file tersebut ditransfer tanpa melalui enkripsi terlebih dahulu tetapi melalui clear text. Mode text yang dipakai untuk transfer data adalah format ASCII atau format Binary. Secara default, ftp menggunakan mode ASCII untuk transfer data. Karena pengirimannya tanpa enkripsi, maka username, password, data yang ditransfer, maupun perintah yang dikirim dapat di sniffing oleh orang dengan menggunakan protocol analyzer (Sniffer). Solusi yang digunakan adalah dengan menggunakan SFTP (SSH FTP) yaitu FTP yang berbasis pada SSH atau menggunakan FTPS (FTP over SSL) sehingga data yang dikirim terlebih dahulu dienkripsi (dikodekan).
FTP biasanya menggunakan dua buah port yaitu port 20 dan 21 dan berjalan exclusively melalui TCP. FTP server Listen pada port 21 untuk incoming connection dari FTP client. Biasanya port 21 untuk command port dan port 20 untuk data port. Pada FTP server, terdapat 2 mode koneksi yaitu aktif (active) mode dan pasif (passive) mode.