Tugas Pemrograman Jaringan ( 3 Mei 2012 )
Jawab :
Berbeda dengan TCP, UDP merupakan connectionless dan tidak ada keandalan, windowing, serta fungsi untuk memastikan data diterima dengan benar. Namun, UDP juga menyediakan fungsi yang sama dengan TCP, seperti transfer data dan multiplexing, tetapi ia melakukannya dengan byte tambahan yang lebih sedikit dalam header UDP.
UDP melakukan multiplexing UDP menggunakan cara yang sama seperti TCP. Satu-satunya perbedaan adalah transport protocol yang digunakan, yaitu UDP. Suatu aplikasi dapat membuka nomor port yang sama pada satu host, tetapi satu menggunakan TCP dan yang satu lagi menggunakan UDP—hal ini tidak biasa, tetapi diperbolehkan. Jika suatu layanan mendukung TCP dan UDP, ia menggunakan nilai yang sama untuk nomor port TCP dan UDP.
UDP mempunyai keuntungan dibandingkan TCP dengan tidak menggunakan field sequence dan acknowledgement. Keuntungan UDP yang paling jelas dari TCP adalah byte tambahan yang lebih sedikit. Di samping itu, UDP tidak perlu menunggu penerimaan atau menyimpan data dalam memory sampai data tersebut diterima. Ini berarti, aplikasi UDP tidak diperlambat oleh proses penerimaan dan memory dapat dibebaskan lebih cepat. Pada tabel, Anda dapat melihat fungsi yang dilakukan (atau tidak dilakukan) oleh UDP atau TCP.
3. Contoh protokol aplikasi yang menggunakan UDP :
• DNS (Domain Name System) 53
• SNMP, (Simple Network Management Protocol) 161, 162
• TFTP (Trivial File Transfer Protocol) 69
• SunRPC port 111.
Cara Kerja DNS (Domain Name System)
Secara sederhana cara kerja DNS bisa dilihat pada gambar berikut ini:
1. Pada komputer Client, sebuah program aplikasi misalnya http, meminta pemetaan IP Address (forward lookup query). Sebuah program aplikasi pada host yang mengakses domain system disebut sebagai resolver, resolver menghubungi DNS server, yang biasa disebut name server.
2. Name server meng-cek ke local database, jika ditemukan, name server mengembalikan IP Address ke resolver jika tidak ditemukan akan meneruskan query tersebut ke name server root server.
3. Terakhir barulah si client bisa secara langsung menghubungi sebuah website / server yang diminta dengan menggunakan IP Address yang diberikan oleh DNS server.
4. Konsep client server
Jaringan client atau server adalah jaringan dimana komputer client bertugas melakukan permintaan data dan server bertugas melayani permintaan tersebut.
Client
Server Jaringan client atau server, server khusus digunakan untuk pemrosesan, penyimpanan dan manajemen data. Server bertugas menerima request dari client, mengolahnya, dan mengirimkan kembali hasilnya ke client. Untuk itu, server membutuhkan komputer khusus dengan spesifikasi hardware yang jauh lebih baik dan bertenaga dibandingkan hardware untuk client karena komputer harus mampu melayani :
5. Protokol transport = protocol tcp dan protocol udp, Penjelasan pada nomor 6.
6. Protokol TCP ( Transmission Control Protocol ) adalah salah satu jenis protokol transfer data. TCP mempunyai karakteristik sebagai protokol yang berorientasi koneksi (Connection oriented). Sebelum terjadi proses tranfer data, maka yang pertama dilakukan adalah kedua belah pihak melakukan caal request dan call accept. Protokol TCP menggunakan jalur data full duplex yang berarti antara kedua host terdapat dua buah jalur, jalur masuk dan jalur keluar sehingga data dapat dikirimkan secara simultan. Sebuah circuit virtual disiapkan sebelum packet-packet dikirimkan. Pada masing-masing packet terdapat virual circuit identifier yang berisi alamat tujuan packet tersebut. Data yang dikirimkan dalam sebuah protokol TCP maka akan diurutkan dengan sebuah nomor urut dan akan mengharap packet positive acknowledgment. Apabila tidak ada packet positive acknowledgment, maka packet akan dikirim ulang. Oleh karena itu, protokol TCP reliable. Akan tetapi karena harus mengecek setiap packet yang dikirmkan, maka protokol TCP relatif lambat. Pada TCP, hanya bisa melakukan koneksi one-to-one dan tidak bisa melakukan koneksi one-to-many. Karena rute-rute packet sudah ditentukan sebelumnya, maka akan lebih sulit bagi jaringan untuk beradaptasi dengan kemacetan. Apabila sebuah simpul/node mengalami kerusakan/kegagalan, maka seluruh virtual circuit yang melewati simpul tersebut akan hilang.
- UDP adalah “datagram-oriented”, sedangkan TCP adalah “session-oriented”. Datagram adalah paket informasi self-contained. UDP berhubungan dengan datagram atau paket individu yang dikirim dari client ke server dan atau sebaliknya.
- UDP adalah connection-less. Client tidak membangun koneksi ke server sebelum mengirim data, client hanya mengirim data secara langsung.
- UDP adalah protokol yang tidak andal, dalam artian :
- Paket dapat hilang. UDP tidak dapat mendeteksinya, sehingga pada program aplikasi client – server, metode transmisi ulang dikarenakan data rusak atau hilang harus dilakukan pada level aplikasi. Biasanya aplikasi menunggu hingga timeout habis, dan kemudian mencoba lagi
- Paket dapat mengalami kerusakan. Paket UDP berisi checksum semua data dalam paket. Checksum ini memungkinkan UDP mendeteksi kapan suatu paket mengalami kerusakan. Jika hal ini terjadi, maka paket tersebut dikeluarkan, dan sebagaimana biasa aplikasilah yang mendeteksi hal ini dan melakukan transmisi ulang seperlunya.
- Karena UDP adalah datagram-oriented dan pada level protokol setiap paket berdiri sendiri, maka UDP tidak memiliki konsep paket sesuai urutan, yang selanjutnya berarti tidak memerlukan nomor urut pada paket tersebut.
- Karena UDP tidak memerlukan mekanisme kontrol yang rumit, maka UDP dapat dianggap lebih mudah dan lebih kecil ( dalam hal baris data dan memori ) untuk diimplementasikan. Namun hal tersebut juga membuat UDP tidak cocok untuk sejumlah besar data.
- HTTP (Hypertext Transfer Protocol)
- FTP (File Transfer Protocol)
- SMTP (Simple Mail Transfer Protocol)
8. Socket dua arah merupakan mekanisme komunikasi yang memungkinkan terjadinya pertukaran data antar program atau proses baik dalam satu mesin maupun antar mesin.
berikut :
1. Langkah – langkah dasar di client :
a. Membuka koneksi client ke server, yang di dalamnya adalah :
b Membuat socket dengan perintah socket()
c melakukan pengalamatan ke server.
d Menghubungi server dengan connect()
e. Melakukan komunikasi (mengirim dan menerima data), dengan
menggunakan perintah write() dan read()
f. Menutup hubungan dengan perintah close() ;
a. Membuat socket dengan perintah socket()
b. Mengikatkan socket kepada sebuah alamat network dengan perintah
bind()
c. Menyiapkan socket untuk menerima koneksi yang masuk dengan
perintah listen()
d. Menerima koneksi yang masuk ke server dengan perintah accept()
e. Melakukan komunikasi (mengirim dan menerima data), dengan
menggunakan perintah write() dan read()