Jaringan Komunikasi Data Chapter 2B Application Layer
Jaringan Komunikasi Data Chapter 2B Application Layer
2.3 FTP
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.
2.5 DNS
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.
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.
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.
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.
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.
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.
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.