Anda di halaman 1dari 9

Resume Chapter 2B (Application Layer)

2.3 FTP

Protokol Trasnfer File

Mentransfer file ke atau dari host jarak jauh. Terdapat model klien dan server, dimana klien : sisi
yang memulai transfer, dan server : host jarak jauh. Agar pengguna dapat mengakses akun jarak jauh,
pengguna harus memberikan identifikasi pengguna dan kata sandi. Setelah memberikan otorisasi ini,
pengguna tidak dapat mentransfer file dari sistem file lokal ke sistem file jarak jauh dan sebaliknya.

Pengguna pertama kali memberikan nama host dari host jarak jauh, menyebabkan proses klien
FTP di host lokal untuk membuat sambungan TCP dengan proses server FTP di host jarak jauh. Pengguna
kemudian memberikan identifikasi dan kata sandi pengguna, yang dikirim melalui koneksi TCP sebagai
bagian dari perintah FTP. Setelah server mengotorisasi pengguna, pengguna menyalin satu atau lebih
file yang disimpan di sistem file lokal ke sistem file jarak jauh.

HTTP dan FTP adalah protokol transfer file dan memiliki banyak karakteristik umum; misalnya,
keduanya berjalan di atas TCP. FTP menggunakan 2 koneksi TCP paralel untuk mentransfer file, yaitu
koneksi kontrol dan koneksi data.

 Koneksi Kontrol
Digunakan untuk mengirimkan informasi kontrol antara dua host
 Koneksi Data
Digunakan untuk mengirim file

Karena FTP menggunakan koneksi kontrol terpisah, maka FTP dikatakan mengirimkan informasi kontrol
out of band. Ketika pengguna memulai sesi FTP dengan host jarak jauh, sisi klien FTP pertama-tama
memulai koneksi TCP kontrol dengan sisi server pada port server nomor 21. Sisi klien FTP mengirimkan
identifikasi pengguna dan sandi melalui koneksi kontrol ini. Sisi klien dari FTP juga mengirimkan melalui
sisi menerima melalui koneksi kontrol perintah untuk transfer file, dan sisi server memulai koneksi data
TCP ke koneksi data.
Perintah dan Tanggapan FTP

Perintah, dari klien ke server, dan balasan, dari server ke klien, dikirim melalui koneksi kontrol dalam
format ASCII 7-bit.

Beberapa dari perintah yang paling umum adalah:

 Nama pengguna PENGGUNA : Digunakan untuk mengirim identifikasi pengguna ke server.


 PASS password : Untuk mengirimkan password pengguna ke server.
 LIST : Digunakan untuk meminta pengguna mengirim kembali
daftar semua file di direktori jarak jauh.
 Nama file RETR : Digunakan untuk mengambil file dari direktori saat ini dari
host jarak jauh.
 Nama file STOR : Digunakan untuk menyimpan file ke direktori saat ini dari
host jarak jauh.

2.4 Electronic Mail (SMTP, POP3, IMAP)

2.5 DNS

Sistem Nama Domain DNS


Ada dua cara untuk mengidentifikasi host - dengan nama host dan alamat IP. Orang-orang lebih suka
pengenal nama host yang lebih unik, sementara router lebih memilih alamat IP dengan panjang tetap
dan terstruktur secara hierarki. Untuk itu dibutuhkan layanan direktori yang menerjemahkan nama host
menjadi alamat IP. Ini adalah tugas dari sistem nama domain DNS. Sistem nama domain DNS :
 Database terdistribusi
Diimplementasikan dalam hierarki server DNS
 Protokol layanan aplikasi
Memungkingkan host untuk menanyakan database terdistribusi.
DNS biasanya digunakan oleh protokol lapisan aplikasi lainnya - termasuk HTTP, SMTP, dan FTP untuk
menerjemahkan nama host yang disediakan pengguna ke alamat IP. Agar host pengguna dapat
mengirim pesan permintaan HTTP ke server Web, host pengguna harus mendapatkan alamat IP terlebih
dahulu.

Cara Kerja DNS


Nama host yang perlu diterjemahkan adalah panggilan fungsi yang dipanggil aplikasi untuk melakukan
terjemahan. DNS di host pengguna kemudian mengambil alih, mengirimkan pesan kueri ke
jaringan. Semua permintaan DNS dan pesan balasan dikirim dalam datagram UDP ke port 53. Setelah
penundaan, mulai dari milidetik hingga detik, DNS di host pengguna menerima pesan balasan DNS yang
menyediakan pemetaan yang diinginkan. Pemetaan ini kemudian diteruskan ke aplikasi pemanggilan.

Desain sederhana untuk DNS akan memiliki satu server DNS yang berisi semua pemetaan. Dalam desain
terpusat ini, klien cukup mengarahkan semua kueri ke server DNS tunggal, dan server DNS merespons
langsung ke klien kueri. Meskipun kesederhanaan desain ini menarik, namun tidak sesuai untuk Internet
saat ini, dengan jumlah host yang sangat banyak. Masalah dengan desain terpusat meliputi:

 Satu titik kegagalan  Jika server DNS macet, begitu pula seluruh Internet!
 Volume lalu lintas   Satu server DNS harus menangani semua permintaan DNS.
 Database Terpusat Jauh   Satu server DNS tidak dapat "dekat dengan" semua klien yang
meminta.
 Pemeliharaan  Server DNS tunggal harus menyimpan catatan untuk semua host
Internet.

Database Hierarki Terdistribusi


Untuk menangani masalah skala, DNS menggunakan sejumlah besar server, diatur secara
hierarkis dan didistribusikan ke seluruh dunia. Tidak ada satu pun server DNS yang memiliki semua
pemetaan untuk semua host di Internet. Sebaliknya, pemetaan didistribusikan ke seluruh - root DNS
server.  Ada tiga kelas server DNS , yaitu : server DNS root, server DNS domain tingkat atas (TLD), dan
server DNS otoritatif yang diatur dalam hierarki.

 Root DNS server 


Di Internet ada 13 root DNS server, yang sebagian besar berlokasi di Amerika Utara.
 Server Domain Tingkat Atas (TLD) 
Server ini bertanggung jawab atas doamins tingkat atas seperti com, org, net edu, dan gov, dan
semua doamins tingkat atas negara seperti uk, fr, ca, dan jp.
 Server DNS Otorotatif
Setiap organisasi dengan host yang dapat diakses publik di Internet harus memberikan catatan
DNS yang dapat diakses publik yang memetakan nama host tersebut ke alamat IP.

Server root, TLD, dan DNS otoritatif semuanya termasuk dalam hierarki server DNS. Ada jenis DNS
penting lainnya, yang disebut server DNS lokal. Server DNS lokal tidak sepenuhnya termasuk dalam
hierarki server tetapi merupakan pusat arsitektur DNS. Setiap ISP memiliki server DNS lokal. Ketika
sebuah host terhubung ke sebuah ISP, ISP menyediakan host tersebut dengan alamat IP dari satu atau
lebih server DNS lokalnya. Kita dapat dengan mudah menentukan alamat IP server DNS lokal Anda
dengan mengakses jendela status jaringan di Windows atau UNIX. Server DNS lokal suatu host biasanya
"dekat dengan" host tersebut. Untuk ISP institusional, server DNS lokal mungkin berada di LAN yang
sama dengan host; untuk ISP perumahan, biasanya dipisahkan dari host oleh tidak lebih dari beberapa
router.

Cache DNS
Cache DNS, fitur sistem DNS yang sangat penting. Sebenarnya, DNS secara ekstensif
mengeksploitasi cache DNS untuk meningkatkan kinerja penundaan dan untuk mengurangi jumlah
pesan DNS yang memantul di Internet. Ide di balik caching DNS sangat sederhana. Dalam rantai kueri,
ketika server DNS menerima balasan DNS, ia dapat menyimpan informasi dalam balasan di memori
lokalnya.
  Jika pasangan nama host / alamat IP di-cache di server DNS dan kueri lain masuk ke server DNS
untuk nama host yang sama, server DNS dapat memberikan alamat IP yang diinginkan, meskipun itu
bukan otoritas untuk nama host. Karena host dan pemetaan antara nama host dan alamat IP sama sekali
tidak permanen, server DNS membuang informasi cache setelah jangka waktu tertentu.

Catatan dan Pesan DNS


Server DNS yang bersama-sama menerapkan catatan penyimpanan basis data terdistribusi
DNS (RR), termasuk RR yang menyediakan pemetaan alamat nama host-ke-IP. Setiap pesan balasan DNS
membawa satu atau lebih catatan.
Jika server DNS adalah otoritatif untuk nama host tertentu, maka server DNS akan berisi catatan
Tipe A untuk nama host tersebut. Jika server tidak memiliki otorisasi untuk nama host, maka server akan
berisi data Jenis NS untuk domain yang menyertakan nama host; ini juga akan berisi data Tipe A yang
memberikan alamat IP server DNS di bidang Nilai data NS.

Pesan DNS :

 12 byte pertama adalah bagian header, yang memiliki sejumlah kolom. Bidang pertama
adalah angka 16-bit yang mengidentifikasi kueri. Pengidentifikasi disalin ke dalam pesan
balasan untuk sebuah kueri, memungkinkan klien untuk mencocokkan balasan yang
diterima dengan kueri yang dikirim.
 Bagian pertanyaan berisi informasi tentang query yang sedang dibuat. Bagian ini
mencakup : (1) Bidang nama yang berisi nama yang ditanyakan, dan (2) Bidang tipe yang
menunjukkan tipe pertanyaan yang ditanyakan tentang nama.
 Dalam balasan dari server DNS, bagian jawaban berisi catatan sumber daya untuk nama
yang awalnya dipertanyakan. Ingatlah bahwa di setiap catatan sumber daya
ada Jenis , Nilai , dan TTL .
 Bagian otoritas berisi catatan dari server otoritatif lainnya.
 Bagian tambahan berisi catatan bermanfaat lainnya. Jawaban yang diajukan sebagai
balasan untuk kueri MX berisi catatan sumber daya yang memberikan nama host
kanonis dari server email.

Memasukkan Record ke Database DNS

Hal pertama adalah mendaftarkan nama domain di registrar. Registrar adalah entitas komersial
yang memverifikasi keunikan nama domain dan memasukkan nama domain ke dalam basis data DNS.
Saat mendaftarkan nama domain dengan beberapa resistrar, juga perlu memberi registrar nama dan
alamat IP dari server DNS otoritatif primer dan sekunder. Untuk server otoritatif utama, pencatat akan
memasukkan dua catatan sumber daya berikut ke dalam sistem DNS.

Harus memastikan bahwa catatan sumber daya Tpye A untuk server Web dan Jenis MX untuk
server email dimasukkan ke server DNS otoritatif kita. Setelah semua langkah ini diselesaikan, orang
akan dapat mengunjungi situs Web kita dan mengirim email ke karyawan di perusahaan kita.

2.6 Aplikasi P2P


Berbagi File P2P
Berbagi file P2P adalah paradigma distrbusi konten yang menarik karena semua konten ditransfer
langsung antara rekan biasa tanpa melalui server pihak ketiga. Meskipun tidak ada server pihak ketiga
yang terpusat yang terlibat dalam transfer file, penting untuk diingat bahwa berbagi file P2P masih
bergantung pada paradigma klien-server. Peer yang meminta adalah klien dan peer yang dipilih adalah
server. File dikirim dari peer server ke peer klien dengan protokol transfer file. Karena setiap rekan
dapat meminta atau dapat dipilih, semua rekan harus mampu menjalankan sisi klien dan server dari
protokol transfer file.
 Direktori Terpusat
Layanan berbagi file P2P menggunakan server besar untuk menyediakan layanan
direktori. Aplikasi yang berjalan di peer memberi tahu server direktori tentang alamat IP-nya
dan nama objek di disk lokalnya yang disediakan untuk dibagikan. Server direktori mengetahui
objek mana yang dimiliki peer untuk dibagikan. Server direktori mengumpulkan informasi ini
dari setiap peer yang menjadi aktif, sehingga membuat database dinamis dan terpusat yang
memetakan setiap objek, atau menghapus objek, ini memberi tahu server direktori, sehingga
server direktori dapat memperbarui database-nya.
Untuk menjaga database , server direktori harus dapat menentukan kapan peer menjadi
terputus. Peer dapat terputus dengan menutup aplikasi klien P2P-nya atau hanya dengan
memutuskan sambungan dari Internet. Salah satu cara untuk melacak peer mana yang tetap
terhubung adalah dengan mengirim pesan secara berkala ke peer untuk melihatnya mereka
merespons. Jika server direktori menentukan bahwa rekan tidak lagi terhubung, server direktori
menghapus alamat IP rekan dari database.
Kekurangan penggunaan direktori terpusat :
 Titik kegagalan. Jika server direktori macet, maka seluruh aplikasi P2P macet.
 Hambatan kinerja. Dalam sistem P2P besar, dengan ratusan ribu pengguna yang
terhubung, server terpusat harus memelihara database yang sangat besar dan harus
menanggapi ribuan kueri per detik.
 Pelanggaran hak cipta. Sistem berbagi file P2P memungkinkan pengguna dengan
mudah mendapatkan konten hak cipta secara gratis.
 Query Floofing
Peers membentuk jaringan logis abstrak yang disebut jaringan overlay, yang
didefinisikan dalam istilah-istilah teoretis grafik sebagai berikut. Jika peer X mempertahankan
koneksi TCP dengan peer lain Y, maka kita katakan ada edge antara X dan Y. Grafik yang terdiri
dari semua peer aktif dan edge penghubung mendefinisikan jaringan overlay Gnutella saat
ini. Perhatikan bahwa edge bukanlah link komunikasi fisik; sebaliknya, edge adalah link abstrak
yang mungkin terdiri dari sepuluh link fisik yang mendasar.
Query flooding adalah ketika rekan menerima pesan Query, ia memeriksa untuk melihat
apakah kata kunci cocok dengan salah satu file yang dibuatnya tersedia untuk dibagikan. Jika
ada kecocokan, itu mengirim kembali Pesan QueryHit, yang berisi nama file dan ukuran file
untuk kecocokan tersebut. Pesan QueryHit mengikuti jpath revese pesan Query, therby
menggunakan koneksi TCP yang sudah ada.

2.7 Socket Programming dengan UDP dan TCP

Banyak aplikasi jaringan terdiri dari sepasang program - program klien dan program server yang
berada di dua end system yang berbeda. Ketika kedua proses ini berkomunikasi satu sama lain dengan
membaca dari dan menulis ke soket. Saat membuat aplikasi jaringan, tugas utama pengembang adalah
menulis kode dari program klien dan server.
  Ada dua jenis aplikasi jaringan. Salah satunya adalah aplikasi jaringan yang merupakan
implementasi dari standar protokol yang ditentukan dalam RFC. Program klien dan program harus sesuai
dengan aturan yang ditentukan oleh RFC.
  Jenis aplikasi jaringan lainnya adalah aplikasi jaringan berpemilik. Dalam hal ini protokol lapisan
aplikasi yang digunakan oleh program klien dan server tidak perlu sesuai dengan RFC yang
ada. Pengembang tunggal membuat program slient dan server, dan pengembang memiliki kendali
penuh atas apa yang masuk dalam kode. 

Socket Programming dengan TCP

Proses yang berjalan pada mesin berkomunikasi satu sama lain dengan mengirimkan pesan ke
soket. Setiap proses dianalogikan dengan rumah dan soket proses dianalogikan dengan pintu. Soket
adalah pintu antara proses aplikasi dan TCP. Pengembang aplikasi memiliki kendali atas semua yang ada
di sisi lapisan aplikasi soket; namun, ia memiliki sedikit kendali dari sisi lapisan pengangkut.
Sebelum menyediakan aplikasi klien / server, ada baiknya membahas pengertian
aliran. Sebuah aliran adalah urutan karakter yang mengalir masuk atau keluar dari suatu proses. Setiap
aliran adalah aliran masukan untuk proses atau aliran keluaran untuk proses.
Klien harus menghubungi server :
 Proses server harus dijalankan terlebih dahulu
 Server harus membuat soket (pintu) yang menyambut kontak klien
Klien menghubungi server dari :
 Membuat soket TCP, menentukan alamat IP, nomor port proses server
 Ketika klien membuat soket: klien TCP membuat koneksi ke server TCP

Ketika dihubungi oleh klien, server TCP membuat soket baru untuk proses server untuk
berkomunikasi dengan klien tertentu itu
 Memungkinkan server untuk berbicara dengan banyak klien
 Nomor port sumber yang digunakan untuk membedakan klien

Aplikasi klien / server sederhana berikut ini untuk mendemonstrasikan pemrograman soket untuk TCP
dan UDP:
1. Seorang klien membaca sebuah baris dari input standarnya (keyboard) dan mengirimkan baris
tersebut keluar dari soketnya ke server.
2. Server membaca baris dari soket koneksinya.
3. Server mengubah baris menjadi huruf besar.
4. Server mengirimkan baris yang dimodifikasi keluar dari soket koneksinya ke klien.
5. Klien membaca baris yang dimodifikasi dari soketnya dan mencetak baris tersebut
pada keluaran standarnya (monitor).

Setelah kedua program dikompilasi pada host masing-masing, program server dijalankan pertama kali di
host server, yang membuat proses server di host server. Proses server menunggu untuk dihubungi oleh
proses klien. Ketika program klien dijalankan, sebuah proses dibuat di klien, dan proses ini segera
menghubungi server dan membuat koneksi TCP dengannya. Pengguna di klien kemudian menggunakan
aplikasi untuk mengirim baris dan kemudian menerima versi baris dalam huruf besar.

Socket Programming dengan UDP

UDP juga memungkinkan dua (atau lebih) proses yang berjalan pada host yang berbeda untuk
berkomunikasi. UDP berbeda dari TCP dalam banyak hal mendasar. Pertama, UDP adalah layanan tanpa
koneksi. Jadi, tidak ada fase handshaking awal selama pipa dibuat di antara kedua proses. Karena UDP
tidak memiliki pipa, ketika suatu proses ingin mengirim sekumpulan byte ke proses lain, proses
pengiriman harus melampirkan alamat proses tujuan ke kumpulan byte.

Interaksi antara soket klien dan server UDP :


Server membuat soket (serverSocket) dan port  Klien membuat soket (clientSocket)  Klien
membuat datagram dengan IP server dan port, kemudian mengirim datagram melalui clientSocket 
Server membaca datagram dari serverSocket  Server menulis balasan ke serverSocket dan
menentukan alamat klien serta nomor port  Klien membaca datagram dari clientSocket  Menutup
clientSocket

Anda mungkin juga menyukai