Kamis, 14 Januari 2010

TCP dan UDP

UDP, singkatan dari User Datagram Protocol, adalah salah satu protokol lapisan transpor TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. Protokol ini didefinisikan dalam RFC 768.

UDP memiliki karakteristik-karakteristik berikut:

  • Connectionless (tanpa koneksi): Pesan-pesan UDP akan dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua host yang hendak berukar informasi.
  • Unreliable (tidak andal): Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan acknowledgment. Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan pemulihan terhadap pesan-pesan yang hilang selama transmisi. Umumnya, protokol lapisan aplikasi yang berjalan di atas UDP mengimplementasikan layanan keandalan mereka masing-masing, atau mengirim pesan secara periodik atau dengan menggunakan waktu yang telah didefinisikan.
  • UDP menyediakan mekanisme untuk mengirim pesan-pesan ke sebuah protokol lapisan aplikasi atau proses tertentu di dalam sebuah host dalam jaringan yang menggunakan TCP/IP. Header UDP berisi field Source Process Identification dan Destination Process Identification.
  • UDP menyediakan penghitungan checksum berukuran 16-bit terhadap keseluruhan pesan UDP.
Transmission Control Protocol (TCP)

adalah suatu protokol yang berada di lapisan transpor (baik itu dalam tujuh lapis model referensi OSI atau model DARPA) yang berorientasi sambungan (connection-oriented) dan dapat diandalkan (reliable). TCP dispesifikasikan dalam RFC 793.

TCP memiliki karakteristik sebagai berikut:

  • Berorientasi sambungan (connection-oriented): Sebelum data dapat ditransmisikan antara dua host, dua proses yang berjalan pada lapisan aplikasi harus melakukan negosiasi untuk membuat sesi koneksi terlebih dahulu. Koneksi TCP ditutup dengan menggunakan proses terminasi koneksi TCP (TCP connection termination).
  • Full-duplex: Untuk setiap host TCP, koneksi yang terjadi antara dua host terdiri atas dua buah jalur, yakni jalur keluar dan jalur masuk. Dengan menggunakan teknologi lapisan yang lebih rendah yang mendukung full-duplex, maka data pun dapat secara simultan diterima dan dikirim. Header TCP berisi nomor urut (TCP sequence number) dari data yang ditransmisikan dan sebuah acknowledgment dari data yang masuk.
  • Dapat diandalkan (reliable): Data yang dikirimkan ke sebuah koneksi TCP akan diurutkan dengan sebuah nomor urut paket dan akan mengharapkan paket positive acknowledgment dari penerima. Jika tidak ada paket Acknowledgment dari penerima, maka segmen TCP (protocol data unit dalam protokol TCP) akan ditransmisikan ulang. Pada pihak penerima, segmen-segmen duplikat akan diabaikan dan segmen-segmen yang datang tidak sesuai dengan urutannya akan diletakkan di belakang untuk mengurutkan segmen-segmen TCP. Untuk menjamin integritas setiap segmen TCP, TCP mengimplementasikan penghitungan TCP Checksum.
  • Byte stream: TCP melihat data yang dikirimkan dan diterima melalui dua jalur masuk dan jalur keluar TCP sebagai sebuah byte stream yang berdekatan (kontigu). Nomor urut TCP dan nomor acknowlegment dalam setiap header TCP didefinisikan juga dalam bentuk byte. Meski demikian, TCP tidak mengetahui batasan pesan-pesan di dalam byte stream TCP tersebut. Untuk melakukannya, hal ini diserahkan kepada protokol lapisan aplikasi (dalam DARPA Reference Model), yang harus menerjemahkan byte stream TCP ke dalam "bahasa" yang ia pahami.
  • Memiliki layanan flow control: Untuk mencegah data terlalu banyak dikirimkan pada satu waktu, yang akhirnya membuat "macet" jaringan internetwork IP, TCP mengimplementasikan layanan flow control yang dimiliki oleh pihak pengirim yang secara terus menerus memantau dan membatasi jumlah data yang dikirimkan pada satu waktu. Untuk mencegah pihak penerima untuk memperoleh data yang tidak dapat disangganya (buffer), TCP juga mengimplementasikan flow control dalam pihak penerima, yang mengindikasikan jumlah buffer yang masih tersedia dalam pihak penerima.
  • Melakukan segmentasi terhadap data yang datang dari lapisan aplikasi (dalam DARPA Reference Model)
  • Mengirimkan paket secara "one-to-one": hal ini karena memang TCP harus membuat sebuah sirkuit logis antara dua buah protokol lapisan aplikasi agar saling dapat berkomunikasi. TCP tidak menyediakan layanan pengiriman data secara one-to-many.

Perbedaan antara TCP dan UDP

TCP TCP

UDP UDP

Reliabilitas: TCP merupakan protokol berorientasi koneksi. Ketika sebuah file atau pesan kirim diantarkan kecuali akan mendapatkan koneksi gagal. Jika sambungan terputus, server akan meminta bagian yang hilang. Tidak ada korupsi ketika mentransfer pesan.

Reliabilitas: UDP adalah connectionless protocol. Ketika Anda mengirim data atau pesan, Anda tidak tahu apakah itu akan sampai di sana, ini bisa tersesat di jalan. Mungkin ada korupsi sementara mentransfer pesan.

Memerintahkan: Jika Anda mengirim dua pesan sepanjang sambungan, satu demi satu, Anda tahu pesan pertama akan sampai di sana terlebih dahulu. Anda tidak perlu khawatir data yang tiba di urutan yang salah.

Memerintahkan: Jika Anda mengirim dua pesan keluar, Anda tidak tahu apa agar mereka akan tiba di tidak yaitu memerintahkan

Kelas berat: - ketika bagian rendahnya dari TCP "sungai" tiba di urutan yang salah, telah mengirimkan kembali permintaan untuk dikirim, dan semua bagian-bagian dari urutan harus disatukan kembali, sehingga memerlukan sedikit pekerjaan yang harus mengumpulkan .

Ringan: Tidak ada pemesanan pesan, tidak ada pelacakan koneksi, dll Ini berarti membuat koneksi itu jauh lebih cepat, dan kartu jaringan / OS telah melakukan sedikit pekerjaan untuk menerjemahkan kembali data dari paket.

Streaming: Data dibaca sebagai sebuah "sungai," dengan tidak membedakan mana satu paket berakhir dan yang lain dimulai. Mungkin ada beberapa paket per dibaca panggilan.

Datagrams: Paket akan dikirim secara individu dan dijamin akan utuh jika mereka tiba. Satu paket per satu membaca panggilan.

Contoh: World Wide Web (Apache TCP port 80), e-mail (SMTP TCP port 25 Postfix MTA), File Transfer Protocol (FTP port 21) dan Secure Shell (OpenSSH port 22), dll

Contoh: Domain Name System (DNS UDP port 53), aplikasi media streaming seperti IPTV atau film, Voice over IP (VoIP), Trivial File Transfer Protocol (TFTP) dan online multiplayer games etc


Tidak ada komentar:

Posting Komentar