Pages

Wednesday 2 March 2011

File Transfer Protocol: Overview

FILE TRANSFER PROTOCOL
File Transfer Protocol adalah sebuah protocol jaringan standar yang digunakan untuk mengcopy file dari satu host ke host yang lainnya melalui TCP-berbasiskan jaringan seperti misalnya melalui internet. FTP dibangun di atas arsitektur jaringan client-server , dimana menyediakan utility yang memisahkan antara control dan koneksi data diantara si client dan sang server. Para user (client) yang menggunakan FTP bisa menunjukkan otentifikasi identitas dirinya melalui sistematika clear text yang diatur dalam protocol sign in, namun bisa juga tetap terkoneksi secara anonym jika server telah dokonfigurasi dan mengizinkan untuk hal itu.

Aplikasi FTP yang pertama kali diciptakan berbentuk secara interaktif dan berjalan di atas modus command line, dengan mengimplementasikan sejumlah command (perintah) dan syntax. Namun sekarang ini sudah banyak modus Graphical User Interface(GUI) untuk aplikasi client yang dikembangkan untuk diimplementasikan pada banyak system operasi desktop yang berkembang sekarang ini.


Spesifikasi asli atau original dari protocol FTP ini pertama kali ditulis oleh Abhay Bhushan dan dipublikasikan dengan kode atau nama RFC 114 pada tanggal 16 April 1971. Versi ini kemudian diperbarui dengan RFC 765 pada bulan Juni 1980 dan RFC 959 pada bulan Oktober 1985, yang sekarang menjadi spesifikasi dari protocol FTP sekarang. Beberapa standard diusulkan sesuai dengan perkembangan RFC 959, sebagai contoh RFC 2228 ( Juni 1997), yang mengusulkan perluasan keamanan dan RFC 2428 ( September 1998), yang menambahkan pendukungan untuk IPV6 dan menggambarkan gaya baru yang lebih pasif.

Bagaimana FTP bekerja?

Suatu klien membuat suatu koneksi TCP kepada port server 21. Koneksi ini, disebut koneksi kendali/control, dimana koneksi ini akan membuka dan mengganti koneksi dengan suatu koneksi kedua, yang dikenal dengan termin data Connection. Data koneksi ini bisa dibuka dari sever melalui port nya sendiri yaitu port 20 yang lalu akan memannggil port client yang aktif , atau dapat dibuka oleh client dari port yang memang diijinkan untuk membuka koneksi dengan server (dalam mode pasif) sesuai dengan kebutuhan proses dari transfer data itu sendiri. Koneksi Control digunakan untuk sesi administrasi yang biasanya berisikan perintah-perintah, otentifikasi identifikasi, maupun password. Pertukaran pada koneksi control ini sama halnya dengan proses yang terjadi pada protocol telnet (untuk proses login jarak jauh). Sebagai contoh " RETR filename" akan memindahkan file yang ditetapkan dari server kepada klien. Dalam kaitan dengan two-port struktur ini, FTP dipertimbangkan sebagai suatu out-of-band, sebagai lawan suatu in-band protokol seperti HTTP.

Dalam koneksi control server akan melakukan respon dengan memberikan tiga digit code yang akan menjadi status. Tiga code ini merupakan kode ANSI yang bisa ditambahkan dengan beberapa pesan (optional), seperti halnya “200” atau “200OK”, yang berarti command terakhir berjalan dengan sukses. Kode tiga digit number merepresentasikan kode angka, dan pesan teks di belakangnya menandakan penjelasan atau bisa saja merupakan sebuah parameter tertentu, contoh “200 Need account for stroring file”. Proses transfer file yang sedang berjalan melalui koneksi data bisa diinterupsi dengan menggunakan pesan interupsi yang dikirim dari control koneksi.

FTP dapat dijalankan baik dalam mode aktif maupun passif, dimana mode ini nantinya akan menentukan bagaimana koneksi data akan dibentuk. Dalam mode aktif, client akan mengirimkan server IP addressnya serta nomor port yang akan digunakan oleh client, lalu server akan menginisiasi koneksi TCP. Dalam situasi si client berada di belakang sebuah firewall sehingga tidak bisa menerima koneksi TCP yang datang, maka akan lebih baik bila FTP dijalankan pada mode pasif. Berbeda halnya dengan mode passive. Dalam mode ini klien mengirimkan suatu perintah PASV kepada server, lalu server akan mengirimkan ip address dan nomor port sebagai balasan kepada client tersebut. Klien akan menggunakan hal ini untuk membuka koneksi ke server. Kedua mode ini (pasif dan aktif) telah mengalami proses update pada bulan September 1998, dimana pada saat yang sama juga ditambahkan pula dukungan untuk ipv6, serta perubahan pada mode pasif yang kemudian dikenal dengan extended passive mode.

Selama proses transfer data berlangsung, ada empat representasi data yang bisa digunakan yaitu:
1. Mode ASCII: digunakan untuk text. Data bisa mengalami konversi bila diperlukan. Misalnya ketika data pertama kali dikirimkan dari host lalu dikonversi menjadi 8 bit kode ASCII lalu dikonversi lagi seperti semula ketika host penerima, menerimanya. Sebagai konsekuensi dari proses ini, mode ini sangat tidak cocok bila digunakan untuk representasi data selain plain text.
2. Mode Image(Mode Biner) : Mesin mengirimkan data dari setiap file per bytenya, lalu si penerima akan menyimpan byte stream dari si pengirim sekaligus menerimanya.
3. Mode EBCIDIC: Digunakan untuk plain text diantara host (yang saling bertukar data) menggunakan set karakter EBCIDIC. Mode ini memang mirip dengan mode ASCII.
4. LOCAL MODE: mode ini mengizinkan para penggunanya dengan setup yang identik untuk saling bertukar data tanpa harus mengalami koversi data sama sekali

Selain itu perpindahan data bisa dilakukan dalam tiga mode:
1. Mode Stream: dalam mode ini data dikirimkan dalam stream yang continuous, sehingga konsekuensinya mode ini akan membebaskan FTP dari melakukan proses apapun. Dengan demikian semua control data diserahkan ke TCP. Akibatnya tidak ada indicator yang menunjukkan bahwa proses transfer data telah selesai, kecuali bila data dibagi menjadi beberapa record.
2. Mode Block: FTP akan memecah sebuah blok data menjadi beberapa buah blok data yang lebih kecil seperti blok header, byte count, dan beberapa data field, lalu blok-blok data yang lebih kecil itu dikirmkan melalui TCP
3. Mode Compressed: Blok data dikompres menggunakan sebuah algortima

No comments:

Post a Comment