Penggunaan TCP dan UDP pada DNS Server

TCP adalah dasar dari koneksi,

Hal ini berarti melakukan suatu koneksi langsung antara dua komputer untuk melakukan transfer data antara kedua host. Suatu paket mengandung header dan data gram, pada bagian header dari paket akan mengandung informasi penting tentang :

  • Source Port
  • Destination Port
  • Sequence number
  • Acknowledgement number
  • Header Length (Standard 20 Bytes)
  • Flags (syn, ack, psh, fin, rst, urg)
  • Window size
  • Checksum
  • IP_v4 or IP_v6
  • Header Length
  • DSF
  • Total Length
  • Identification
  • Flags (Set Fragment bit or not)
  • Fragment Offset
  • TTL
  • Protocol (this case TCP)
  • Header checksum
  • Source IP
  • Destination I

UDP, User Datagram Protocol, adalah TCP yang connectionless. Hal ini berarti bahwa suatu paket yang dikirim melalui jaringan dan mencapai komputer lain tanpa membuat suatu koneksi. Sehingga dalam perjalanan ke tujuan paket dapat hilang karena tidak ada koneksi langsung antara kedua host, jadi UDP sifatnya tidak realibel, tetapi UDP adalah lebih cepat dari pada TCP karena tidak membutuhkan koneksi langsung.


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.

UDP (User Datagram Diagram) merupakan komunikasi antar komputer yang dianalogikan sistem kerjanya seperti komputer menulis sesuatu ke dalam file. Jadi, jika kita ingin mengirim dan menerima paket data secara langsung dengan mengandalkan kecepatan yang lebih tinggi dibandingkan TCP dengan kemungkinan paket yang hilang sebesar 1 – 5%, kita dapat menggunakan UDP. Sebagai bahan perbandingan untuk TCP dan UDP adalah sebagai berikut:

TCP:

  • Beroperasi berdasarkan konsep koneksi

  • Jaminan pengiriman-penerimaan data akan reliable dan teratur

  • Secara otomatis memecah data ke dalam paket-paket

  • Tidak akan mengirimkan data terlalu cepat sehingga memberikan jaminan koneksi internet dapat meng-handle-nya

  • Mudah untuk digunakan, transfer paket data seperti menulis dan membaca file.

UDP:

  • Tidak berdasarkan konsep koneksi, jadi harus membuat code sendiri.

  • Tidak ada jaminan pengiriman-penerimaan data akan reliable dan teratur. Paket data mungkin kurang, terduplikat, atau bahkan tidak sampai sama sekali.

  • Pemecahan ke dalam paket-paket dan pengirimannya secara manual.

  • Harus membuat kepastian mengenai kecepatan data tidak terlalu cepat sehingga internet masih dapat meng-handle-nya.

  • Jika paket ada yang hilang, perlu dipikirkan di mana kesalahan yang terjadi dan mengirim data yang diperlukan.

Dipilihnya UDP sebagai protokol adalah untuk aplikasi yang membutuhkan packet-delivery yang real-time. Jika menggunakan TCP maka ketika di sisi client membutuhkan paket data diterima secepat mungkin, paket data mengalami loss dan Client harus menunggu data yang dikirim ulang. Hal tersebut yang menjadi pertimbangan penggunaan UDP untuk network, walaupun programming menjadi relatif lebih sulit.

Untuk Microsoft XNA Framework, programming untuk network sudah ada library yang menanganinya, yakni System.net dan System.net.socket yang menyediakan class, enumerator, dan delegates untuk membantu socket programming UDP dan TCP.


0 comments:

Twitter Delicious Facebook Digg Favorites More