Bab ini berisi tentang kesimpulan yang dapat diambil permasalahan yang terjadi dalam penelitian ini serta berisi tentang saran-saran yang yang dapat digunakan untuk perbaikan dan pengembangan lebih lanjut atas analisa yang sudah disimpulkan.
BAB II
TINJ AUAN PUSTAKA
Mesin virtual adalah salinan identik dari hardware, dimana setiap salinan tersebut menjalankan sistem operasinya sendiri-sendiri. Motivasi dari virtualisasi mesin adalah agar mesin virtual menyediakan lingkunagn dimana aplikasi yang tidak terpercaya dapat dijalankan, mesin virtual mampu menbatasi akses dan penggunaan perangkat keras. Mesin virtual mengizinkan penggunaan mekanisme sistem operasi terdedikasi atau teroptimasi untuk setiap aplikasi. Serta aplikasi dan proses yang berjalan dalam mesin virtual dapat dikelola sebagai suatu kesatuan yang utuh.
2.1 Penelitian Terdahulu
Dalam hal ini, paper yang menjadi rujukan adalah “Scalability Comparison Of Four Host Virtualization Tools” oleh Benjamin Quetier, Vincen Neri, Frank Cappello. Yang menjelaskan tentang perbandingan empat buah teknologi mesin virtual, yaitu VMWare, XEN, Vserver dan UML. Keempat teknologi mesin virtual diperbandingkan dengan metodologi dan matriks yang telah dirancang sebelumnya, overhead dari teknik virtualisasi, yaitu efek kerja saat mesin beroperasi. Alat virtualisas sendiri seharusnya menunjukkan overhead yang rendah dan konstan.
Evaluasi performa overhead diakukan dengan membandingkan waktu eksekusi pada aplikasi yang berjalan pada sistem operasi yang tidak divirtualisasikan dengan waktu eksekusi yang berjalan untuk aplikasi sama yang berjalan di dalam mesin virtualisasi tunggal. Komparasi juga dilakukan dengan waktu eksekusi pada aplikasi yang berjalan pada suatu mesin virtualisasi dengan jumlah n mesin virtualisasi juga sedang berjalan bersamaan. Namun mereka tidak mengeksekusi aplikasi apapun.
Dalam rangka kebergunaan, parameter yang diukur adalah waktu startup dan okupasi memori. Waktu startup menunjukkan kecekatan alat virtualisasi. Sedangkan okupasi memori adalah faktor yang membatasi jumlah mesin virtual yang dapat berjalan bersamaan.
Hasil dari penelitian ini antara lain:
1. Vserver menunjukkan performa startup terbaik dengan selisih yang cukup jauh dibandingkan alat virtualisasi lainnya.
2. Terdapat perbedaan menejemen memori di antara keempat alat virtualisasi. Xen, UML, dan Vmware menjalankan satu kernel untuk tiap mesin virtual. Sedangkan Vserver menjalankan satu kernel untuk berapapun mesin virtual yang berjalan. Mesin virtual Vserver menggunakan dan membagikan memori fisik sehingga mesin virtual tidak dibatasi dalam penggunaan memori. Sedangkan
pada UML dan Xen, mesin vrtual diberikan memori dengan jumlah tetap.
3. Performa CPU dan memori overhead Vmware dan UML menunjukkan deviasi yang cukup tinggi dengan kurva CPU dan memori overhead teoritis. Hal ini disebabkan oleh banyaknya proses penjadwalan. Xen dan Vserver menunjukkan skalabilitas optimal menyangkut parameter CPU dan memori overhead.
Kesimpulannya adalah:
1. Vmware cocok untuk skenario yang membutuhkan sedikit mesin virtual dan isolasi performa antar mesin virtual. Vmware menerima instansiasi dinamis. Wmware dapat berjalan pada windows dan Linux.
2. Xen cocok untuk penggunaan dengan banyak pengguna atau aplikasi pada hardware yang sama.
3. Vserver mengakomodasi lebih banyak mesin virtual dan menyedaikan komunikasi antar mesin virtual dengan performa tinggi. Namun aplikasi harus mengalah pada kernel hosting mesin virtual.
4. UML adalah satu-satunya yang mampu dijalankan oleh pengguna yang tidak diberi hak khusus (unprivileged user)
2.2 Cloud Computing
Cloud Computing adalah sebuah teknologi yang menyediakan layanan terhadap sumber daya komputasi melalui sebuah jaringan. Dalam hal ini, kata awan atau “Cloud” melambangkan suatu fisik system dari sebuah infrastruktur atau layanan yang tidak dapat dilihat pengguna. Dengan kata lain, komputasi awan memberikan sumber daya komputasi seperti mesin, penyimpanan data, system operasi, maupun program aplikasi melalui sebuah jaringan. Seluruh perangkat yang menyediakan sumber daya tersebut terdapat pada jaringan di mana pengguna tidak perlu tahu keberadaan system tersebut. Dengan demikian, semua sumber daya dapat digunakan oleh para pengguna saat berada di dalam “awan”.
Beberapa definisi dan model cloud computing sering digunakan sebagai titik awal evaluasi terhadap layanan cloud computing. Menurut NIST (National Institute of Standards and Technology), terdapat 5 karakteristik sehingga sistem tersebut disebut Cloud Computing, yaitu:
1. Resource Pooling
Sumber daya komputasi (storage, CPU, memory, network bandwidth, dsb) yang dikumpulkan oleh penyedia layanan (service provider) untuk memenuhi kebutuhan banyak pelanggan (service consumers) dengan model multi-tenant. Sumber daya komputasi ini bisa berupa sumber daya fisik ataupun virtual dan juga
bisa dipakai secara dinamis oleh para pelanggan untuk mencukupi kebutuhannya.
2. Broad Network Access
Kapabilitas layanan dari cloud provider tersedia lewat jaringan dan bisa diakses oleh berbagai jenis perangkat, seperti smartphone, tablet, laptop, workstation, dsb.
3. Measured Service
Tersedia layanan untuk mengoptimasi dan memonitor layanan yang dipakai secara otomatis. Dengan monitoring sistem ini, kita bisa melihat berapa resources komputasi yang telah dipakai, seperti: bandwidth , storage, processing, jumlah pengguna aktif, dsb. Layanan monitoring ini sebagai bentuk transparansi antara cloud provider dan cloud consumer.
4. Rapid Elasticity
Kapabilitas dari layanan cloud provider bisa dipakai oleh cloud consumer secara dinamis berdasarkan kebutuhan. Cloud consumer bisa menaikkan atau menurunkan kapasitas layanan. Kapasitas layanan yang disediakan ini biasanya tidak terbatas, dan service consumer bisa dengan bebas dan mudah memilih kapasitas yang diinginkan setiap saat.
5. Self Service
Cloud Consumer bisa mengkonfigurasikan secara mandiri layanan yang ingin dipakai melalui sebuah sistem, tanpa perlu interaksi
manusia dengan pihak cloud provider. Konfigurasi layanan yang dipilih ini harus tersedia segera dan saat itu juga secara otomatis.
Kelima karakteristik Cloud Computing tersebut harus ada di service provider jika ingin disebut sebagai penyedia layanan Cloud Computing. Salah satu saja dari layanan tersebut tidak terpenuhi, maka penyedia layanan tersebut belum/tidak pantas disebut sebagai cloud provider
Gambar 2.1 Penggambaran visual cloud computing yang diadopsi dari NIST
2.2.1 J enis – J enis Cloud Computing
Cloud Computing sendiri dapat diklasifikasikan menjadi tiga jenis, yaitu: 1. Komputasi awan Public (Public cloud)
Komputasi awan public menyediakan sumber daya computer melaui internet (berada di luar Firewall). Komputasi awan public ini biasanya disewakan berdasarkan sitem pay-as-you-go, dimana pengguna sebenarnya menyewa akses dari sumber daya yang dibutuhkan, baik berdasarkan time-unit maupun jenis sumber daya yang disewa. Contoh – contoh provider komputasi awan public yang dikenal adalah Amazon Web Service, Google Apps, Microsoft, IBM, Rackspace, dan Salesforce.com.
2. Komputasi awan Privat (Private cloud)
Private cloud menyediakan sumber daya komputasi internet (berada di dalam Firewall). Dalam komputasi awan ini, hanya pengguna komputasi awan privat yang dapat mengakses sumber daya dari komputasi awan yang ada. Sumber daya dari komputasi awan privat sangat terbatas sesuai dengan komputasi awan privat yang dibangun, berbeda dengan komputasi awan public yang dapat menyewa sumber daya komputasi sesuai dengan sumber daya komputasi yang dibutuhkan.
3. Komputasi awan campuran (Hybrid cloud)
Komputasi awan campuran merupakan campuran dari komputasi awan privat dan komputasi awan public. Sebagian system berada di bawah firewall (komputasi awan privat), dan sebagian lagi ada merupakan system yang berada di luar firewall (komputasi awan publik). Jadi, sebagian dari sumber daya komputasi hanya dapat digunakan sendiri, tetapi saat membutuhkan sumber daya komputasi lainnya, pengguna dapat menyewa sumber daya komputasi awan public yang dapat digunakan bersama-sama melalui internet sesuai kebutuhan pengguna.
Gambar di bawah ini menunjukkan jenis – jenis komputasi awan yang di jelaskan di atas.
Gambar 2.2 Jenis Komputasi Awan
(Sumber : Suryatama,Indra., Membangun Infrastruktur Komputasi Awan Privat
2.2.2 J enis Layanan Dari Cloud Computing
Setiap komputasi awan menyediakan layanan yang berbeda – beda. Jenis layanan ni ditentukan dari jenis komputasi awan yang dibangun. Berikut adalah 3 jenis layanan komputasi awan yang paling sering dipakai:
1. Software as a Service (SaaS)
Layanan ini menyediakan sebuah aplikasi program yang dapat diakses dari jaringan komputasi awan. Salah satu contoh dari komputasi awan yang menyediakan servis ini adalah Salesforce.com. Salesforce.com menyediakan sebuah aplikasi bisnis dari paket yang ada melalui sebuah network.
2. Platform as a Service (PaaS)
Layanan ini menyediakan sebuah lingkungan kerja di mana pengguna dapat melakukan pemrograman maupun menjalankanya dengan sumber daya komputasi dan struktur data yang tertanam semua di jaringan komputasi awan.
3. Infrastrukture as a Service (IaaS)
Layanan ini menyediakan akses virtualisasi computer, sumber daya dari hardware termasuk mesin, jaringan maupun penyimpanan data. Salah satu contoh dari komputasi awan yang menyediakan layanan ini adalah Amazon Web Services. Komputasi awan yang akan dibangun menggunakan Ubuntu Enterprise Cloud (UEC) juga merupakan salah satu komputasi
awan yang menyediakan layanan IaaS. Jadi pada jenis komputasi awan ini tersedia beberapa Virtual Mechine (VM) yang dapat diakses melalui jaringan komputasi awan.
Untuk lebih memudahkan pemahaman mengenai model cloud computing, perhatikan gambar transformasi cloud model dibawah ini:
Gambar 2.3 Transformasi on-premise model ke cloud model
Secara teknis sebetulnya yang diperoleh pelanggan cloud hanyalah sebuah server virtual pada server-server fisik yang dimiliki penyedia layanan. Setelah server virtual tersedia di cloud terserah user apakah mau menginstalasi sebagai Web Server, Mail Server, atau DNS Server. Ada 2 (dua) teknologi yang biasa digunakan , yaitu Ubuntu Enterprise Cloud (UEC) dan Proxmox, namun yang akan digunakan untuk penelitian ini hanyalah Proxmox Virtual Environtment.
2.3 Proxmox Virtual Environment (Proxmox VE)
Proxmox VE (virtual environment) adalah distribusi Linux berbasis Debian (x86_64) yang dikhususkan sebagai distro virtualisasi. Proxmox adalah paltform virtualisasi bersifat opensource yang mendukung untuk menjalankan virtual mesin berbasis KVM dan OpenVZ. Dan secara default menyertakan OpenVZ dan KVM dan disediakan dalam modus teks (console mode). Beberapa fitur yang ditawarkan oleh Proxmox VE adalah High performance and scalability, Full Virtualization – KVM, OS Virtualization – OpenVZ, Live Migration, Open Source, High Availability Cluster, RESTful web API, Proxmox Cluster file system, Rich web app for Management, Backup and Restore, Role-based Administration, Multiple Authentication sources, Network Model, Storage Model. Proses administrasi dan pengelolaan mesin-mesin virtual di Proxmox dilakukan menggunakan akses web (Onno W. Purbo, 2012):
Beberapa hal yang perlu diperhatikan terkait Proxmox :
1. Proxmox disediakan hanya untuk mesin x86_64 sehingga tidak bisa digunakan untuk mesin 32 bit.
2. Pada saat instalasi, Proxmox diinstalasikan langsung dari CD dan akan menghapus seluruh isi harddisk sehingga jika ingin sekedar mencoba Proxmox, gunakan harddisk kosong atau jalankan pada mesin Virtual.
3. Jika ingin menggunakan KVM, Proxmox membutuhkan motherboard/CPU yang mendukung teknologi virtualisasi yaitu Intel VT/AMD-V. Intel VT/AMD-V ini bisa dicheck via BIOS. Sebagian besar server branded sudah menyertakannya. Untuk motherboard yang biasa dipakai adalah Intel VT bisa ditemukan di motherboard dengan seri T (GA-G41 MT atau GA-G41T).
Gambar 2.4 Tampilan utama Proxmox pada proses Instalasi
Tampilan diatas adalah ketika kita akan melakukan instalasi sitem operasi proxmox. Tinggal melakukan sesuai instruksi, maka sistem operasi ini akan segera memproses sebagai pemasangan baru.
(Onno W. Purbo, 2012)
Setelah sistem operasi proxmox terpasang dengan baik. Maka saatnya bisa dioperasikan sesuai kebutuhan. Mulai dari menejemen ruang
hardisk, sampai menejemen memori. Sampai pada akhirnya dilakukan instalasi beberapa sistem operasi.
Tampilan menejemen proxmox sendiri bisa diakses lewat browser dari komputer remote. Jadi hanya memasukkan IP address dari komputer server, maka akan menampilkan tampilan secara grafis.
Gambar 2.5 Tampilan utama management storage di Proxmox
Gambar 2.5 di atas adalah tampilan utama dari sistem Proxmox sebagai menejemen cloud. Terdapat beberapa menu seperti Virtual Machine untuk pembuatan mesin virtual, ISO Image untuk penyediaan installer sistem operasi sampai log untuk pencatatan penggunaan.
2.4 Kernel-Based Virtual Machine (KVM)
Kernel-Based Virtual Machine (KVM) adalah program open-source yang merupakan salah satu solusi virtualisasi dari Linux. KVM merupakan implemntasi mesin virtual menggunakan kernel system operasi. KVM mendukung virtualisasi untuk processor 32-bit dan 64-bit. Dengan menggunakan KVM, setiap Virtual Machine (VM) dapat memiliki virtualisasi perangkat keras seperti jaringan, media penyipanan data, graphic adapter, dan sebagainya. Pada UEC, KVM meruupakan hypervisor dari Eucalyptus yang dijalankan pada setiap node yang ada. (Onno W. Purbo, 2012).
2.5 Skalabilitas
Skalabiitas adalah kemampuan sebuah aplikasi dalam memberikan performa secara keseluruhan, jika sebuah atau beberapa faktor pembebanan ditambahkan. Faktor pembebanan umumnya meliputi banyaknya pemakai, jumlah data yang sedang diatur oleh aplikasi dan banyakya transaksi. Performa dapat dilihat dari jumlah beban dan respn waktuyang diberikan oleh aplikasi. Jumlah beban diukur dari jumlah pekerjaan yang bisa dilakukan oleh suatu aplikasidalam batasan waktu yang telah ditentukan. Sedangkan respon waktu adalah selang waktu yang dibutuhkan antara seorang pemakai dalam meminta proses dan menerima hasil yang diterima (TermWiki.com, 2012)
2.6 Shell Script
Dalam lingkungan unix, kata 'shell' mengacu pada semua program yang dapat dijalankan pada command line. Jadi secara sederhana shell script merupakan kumpulan perintah yang disimpan pada suatu file. Ektensi umum yang digunakan untuk shell script adalah '.sh', sebenarnya hal ini tidak mutlak karena pada dasarnya unix mengabaikan extensi file. Shell juga dapat mengacu pada program yang menangani command line itu sendiri dalam sistem operasi UNIX program tersebut adalah Bourne Shell (1978 - Steve Bourne) disingkat sh.
Dalam sistem operasi GNU/Linux shell yang menjadi standar adalah Bourne Again Shell (bash). Bash merupakan shell yang kompatibel dengan sh dan memiliki lebih banyak fitur. Jika ingin menguasai shell script tentu harus tahu dan hafal sedikit banyak perintah dasar command line, seperti mengkopi file (cp), merename file (mv), mencetak string (echo), melihat file (cat), dan beberapa perintah dasar lainnya. Shell script juga menyediakan beberapa fitur yang tersedia pada bahasa pemrograman tingkat tinggi seperti variabel, percabangan dan perulangan. Berikut ini adalah contoh sederhana penggunakan shell script:
ibagusm@ibm:~$ nano hello.sh #!/bin/sh
Script di atas akan menampilkan tulisan 'HELLO WORLD'. #!/bin/sh sendiri adalah menunjukkan bahwa ini adalah shell script. Tanda #! sering disebut 'shebang' operator. Tanda tersebut menandakan bahwa file tersubut adalah shell script. Sisanya, misal '/bin/sh' adalah lokasi file binari atau program bash '/bin/bash' atau '/bin/sh'. Untuk menjalankan ada dua cara, pertama melalui program shell itu sendiri.
ibagusm@ibm:~$ sh hello.sh ibagusm@ibm:~$ ./hello.sh
Perintah 'sh' adalah perintah untuk menjalankan shell script. Atau bisa juga dengan menggunakan perintah './' dan diikuti dengan nama file untuk menjalankan shell script. Sebelum mengeksekusinya secara independen, harus diberi permission 'execute' pada file.
ibagusm@ibm:~$ chmod +x hello.sh ibagusm@ibm:~$ ./hello.sh
HELLO WORLD
'chmod +x' adalah perintah memberikan ijin agar script bisa dieksekusi atau dijalankan. Yang kemudian dilanjutkan dengan mengeksekusi file itu sendiri dengan memberikan perintah './' dan diikuti nama file yang kemudian akan tampil keluaran sesuai dengan masukan yang diberikan. Dan dalam contoh ini menunjukkan keluaran tulisan 'HELLO WORLD'
karena masukan yang diberikan adalah perintah untuk menampilkan tulisan 'HELLO WORLD' tersebut.
(Wilfridus Bambang, 2008)
2.7 Web Server
Web server merupakan software yang memberikan layanan data yang berfungsi menerima permintaan HTTP atau HTTPS dari klien yang dikenal dengan browser web dan mengirimkan kembali hasilnya dalam bentuk halaman-halaman yang umumnya berbentuk dokumen HTML.
Untuk Paket Software Web Server sendiri ada beberapa macam. Beberapa Paket Software yang dapat digunakan untuk membangun Web Server antara lain Apache, Microsoft windows Server 2003 Internet Information Services (IIS), Lighttpd, Sun Java System Web Server, Xitami Web Server, Zeus Web Server dan lain sebagainya
Dari bermacam-macam Paket Software di atas, yang paling populer yaitu Apache dan juga IIS. Untuk cara kerja Web Server, Web server merupakan mesin dimana tempat aplikasi atau software beroperasi dalam mendistribusikan halaman web kepada pengguna, tentu saja sesuai dengan permintaan pengguna. Hubungan antara Web Server dan Browser Internet merupakan gabungan atau jaringan komputer yang ada di seluruh dunia. Setelah terhubung secara fisik, Protocol TCP/IP yang
memungkinkan semua komputer dapat berkomunikasi satu dengan yang lainnya. Pada saat browser meminta data web page ke server, maka instruksi permintaan data oleh browser tersebut di kemas di dalam TCP yang merupakan protokol transport dan dikirim ke alamat, yang dalam hal ini merupakan protokol berikutnya yaitu Hyper Text Transfer Protocol (HTTP). HTTP ini merupakan protocol yg digunakan dalam World Wide Web (WWW) antar komputer yg terhubung dalam jaringan di dunia ini. Untuk mengenal protokol ini jelas sangat mudah sekali di mana setiap kali anda mengetik http://… anda telah menggunakannya, dan membawa anda ke dunia internet. Data yang di passing dari browser ke Web server disebut sebagai HTTP request yang meminta web page dan kemudian web server akan mencari data HTML yang ada dan di kemas dalam TCP protokol dan di kirim kembali ke browser. Data yang dikirim dari server ke browser disebut sebagai HTTP response. Jika data yang diminta oleh browser tidak ditemukan oleh web server maka akan menimbulkan error yang sering anda lihat di halaman web yaitu “Error : 404 Page Not Found”. Hal ini memberikan cita rasa dari suatu proses yang tridimensional. Artinya pengguna internet dapat membaca dari satu dokumen ke dokumen yang lain hanya dengan mengklik beberapa bagian dari halaman-halaman dokumen (web) itu. Proses yang dimulai dari permintaan webclient (browser), diterima web server, diproses, dan dikembalikan hasil prosesnya oleh web server ke web client lagi dilakukan secara transparan. Setiap orang dapat dengan mudah mengetahui apa yang
terjadi pada tiap-tiap proses. Secara garis besarnya web server hanya memproses semua masukan yang diperolehnya dari web clientnya.
Apache adalah tool web server yang akan digunakan dalam penelitian kali ini. Apache merupakan web server yang paling banyak dipergunakan di Internet. Program ini pertama kali didesain untuk sistem operasi lingkungan UNIX. Namun demikian, pada beberapa versi berikutnya Apache mengeluarkan programnya yang dapat dijalankan di Windows NT. Apache mempunyai program pendukung yang cukup banyak. Hal ini memberikan layanan yang cukup lengkap bagi penggunanya. Beberapa dukungan Apache :
1. Kontrol Akses. Kontrol ini dapat dijalankan berdasarkan nama host atau nomor IP.
2. CGI (Common Gateway Interface) Yang paling terkenal untuk digunakan adalah perl (Practical Extraction and Report Language), didukung oleh Apache dengan menempatkannya sebagai modul (mod_perl)
3. PHP (Personal Home Page/PHP Hypertext Processor); Program dengan metode semacam CGI, yang memproses teks dan bekerja di server. Apache mendukung PHP dengan menempatkannya sebagai salah satu modulnya (mod_php). Hal ini membuat kinerja PHP menjadi lebih baik.
Web server Apache mempunyai kelebihan-kelebihan, diantaranya adalah termasuk dalam kategori freeware, mudah sekali proses instalasinya jika dibanding web server lainnya seperti NCSA, IIS, dan lain-lain, Mampu beroperasi pada berbagai platform sistem operasi, Mudah mengatur konfigurasinya. Apache mempunyai hanya empat file konfigurasi, Mudah dalam menambahkan peripheral lainnya ke dalam platform web servernya.
(WorldFriend.web.id, 2009)
2.8 Ubuntu
Ubuntu adalah sebuah distribusi Linux yang berdasar pada Debian. Ubuntu merupakan projek untuk komunitas yang bertujuan untuk menciptakan sistem opereasi beserta dengan paket aplikasinya yang bersifat free dan open source. Karena ubuntu sendiri memiliki prinsip untuk selamanya bersifat gratis. (free of charge) dan tidak ada tambahan untuk versi enterprise edition.
Ubuntu bisa dikatakan spesial, karena memiliki komunitas yang sangat besar. Sampai pada akhirnya pengguna pun tidak merasa kesulitan mengenai sistem operasi ini. Pengguna akan memberikan pertanyaan sesuai dengan kesulitan yang didapat. Sehingga merespon pengguna yang lain untuk dapat berbagi menegenai kesulitan pengguna yang didapat pada pengguna yang lain.
Ubuntu sendiri memiliki kelebihan-kelebihan dibandingkan sistem operasi yang lain. Diantaranya adalah repository. Repository sendiri adalah sekumpulan paket-paket dari sistem operasi. Repository ubuntu ini memiliki jumlah paket yang sangat banyak. Sehingga membantu pengguna untuk memilih paket yang menjadi kebutuhannya. Selain itu ubuntu juga memiliki kelebihan dalam hal license. Seperti yang diketahui bahwa ubuntu bersifat free dan opern source. Jadi pengguna tidak memerlukan pembelian lincense untuk menggunakan sistem operasi bersifat open source ini, seperti yang telah disinggung di atas.
(ubuntu-indonesia.com. 2010)
2.9 FTP Server
FTP merupakan singkatan dari File Transfer Protocol atau bisa disebut protokol pengiriman berkas. Sesuai dengan namanya, FTP ini berfungsi untuk melakukan pegunduhan (Download) file dan pengunggahan (Upload) file kepad sebuah server. FTP juga merupakan protokol yang pertama kali dikembangkan dan masih tetap digunakan haingga saat ini.
Secara teknis, proses kerja FTP dapat digambarkan melalui penjelasan-penjelasan berikut:
2. Untuk mengizinkan klien untuk mengirimkan sebuah perintah FTP kepada server dan juga mengembalikan respon server ke perintah tersebut. Sekali koneksi kontrol telah dibuat, maka server akan mulai membuka port 20 untuk membentuk sebuah koneksi baru