User Datagram Protocol (UDP)
UDP (User Datagram Protocol) merupakan protokol yang juga berada pada layer transport selain TCP. Protokol ini bersifat connectionless dan unreliable dalam pengiriman data. Connectionless berarti tidak diperlukannya suatu bentuk hubungan terlebih dahulu untuk mengirimkan data. Unreliable berarti pada protokol ini data tidak dijamin akan sampai pada tujuan yang benar dan dalam kondisi yang benar pula. Keandalan pengiriman data pada protokol ini menjadi tanggung jawab dari program aplikasi pada layer di atasnya. Gambar 3.1. menunjukkan format header UDP.

Gambar 3.1. Format Header UDP
Jika dibandingkan dengan TCP, UDP adalah protokol yang lebih sederhana dikarenakan proses yang ada di dalamnya lebih sedikit. Dengan demikian aplikasi yang memanfaatkan UDP sebagai protokol transport dapat mengirimkan data tanpa melalui proses pembentukan koneksi terlebih dulu. Hal ini pun terjadi pada saat mengakhiri suatu koneksi, sehingga dalam banyak hal proses yang terjadi sangatlah sederhana dibanding jika mengirimkan data melalui protokol TCP. Secara teknis protokol UDP memiliki header yang lebih kecil dibanding protokol TCP seperti terlihat pada format header masing-masing.Bila suatu program aplikasi memanfaatkan protokol UDP untuk mengirimkan informasi, protokol UDP melakukan fungsi multiplexing/demultiplexing seperti yang dilakukan protokol TCP dengan menentukan nomor port pengirim (source port) dan nomor port penerima (destination port), kemudian menambahkan sedikit fungsi koreksi kesalahan lalu meneruskan segmen yang terbentuk ke protokol layer Internet. Pada layer internet segmen tersebut ditambahi informasi dalam bentuk datagram IP dan kemudian ditentukan cara terbaik untuk mengantarkan segmen tersebut ke sisi penerima. Jika segmen tersebut tiba pada sisi penerima, protokol UDP menggunakan nomor port informasi IP pengirim dan penerima untukvmengantarkan data dalam segmen ke proses program aplikasi yang sesuai. Beberapa hal yang harus diperhatikan jika suatu program aplikasi akan menggunakan protokol UDP sebagai protokol tansport:
- Tidak ada pembentukan koneksi. Protokol UDP hanya mengirim informasi begitu saja tanpa melakukan proses awal sebelumnya.
- Tidak ada pengkondisian koneksi. Protokol UDP tidak melakukan penentuan kondisi koneksi yang berupa parameter-parameter seperti buffer kirim dan terima, kontrol kemacetan, nomor urutan segmen dan acknowledgement.
- Memiliki header yang kecil. Protokol UDP memiliki 8 byte header dibanding 20 byte header pada TCP.
- Tidak ada pengaturan laju pengiriman data. Protokol UDP hanya menekankan kecepatan kirim pada laju program aplikasi dalam menghasilkan data, kemampuan sumber kirim data (berdasarkan CPU, laju pewaktuan, dll) dan bandwidth akses menuju Internet. Jika terjadi kemacetan jaringan sisi penerima tidak perlu menerima seluruh data yang dikirim.
Transport Control Protocol (TCP)
TCP (Transport Control Protocol) merupakan protokol yang berada pada layer transport dari layer TCP/IP. TCP adalah protokol yang bersifat byte stream, connection-oriented dan reliable dalam pengiriman data. TCP menggunakan komunikasi byte-stream, yang berarti bahwa data dinyatakan sebagai suatu urutan-urutan byte. Connection-oriented berarti sebelum terjadi proses pertukaran data antar komputer terlebih dahulu harus dibentuk suatu hubungan. Hal ini dapat dianalogikan dengan proses pendialan nomor telepon dan akhirnya terbentuk suatu
hubungan. Keandalan TCP dalam megirimkan data didukung oleh mekanisme yang disebut Positive Acknowledgement with Re-transmission (PAR) [Craig Hunt. 1992: 20]. Data yang dikirim dari layer aplikasi akan dipecah-pecah dalam bagian-bagian yang lebih kecil dan diberi nomor urut (sequence number) sebelum dikirimkan ke layer berikutnya. Unit data yang sudah dipecah-pecah tadi disebut segmen (segment). TCP selalu meminta konfirmasi setiap kali selesai mengirimkan data, apakah data tersebut sampai pada komputer tujuan dan tidak rusak. Jika data berhasil sampai mencapai tujuan, TCP akan mengirimkan data urutan berikutnya. Jika tidak berhasil, maka TCP akan melakukan pengiriman ulang urutan data yang hilang atau rusak tersebut. Dalam kenyataannya TCP menggunakan sebuah acknowledgement (ACK) sebagai suatu pemberitahuan antara komputer pengirim dan penerima. Format segmen TCP diperlihatkan pada gambar 2.1.

Model komunikasi dua arah antara komputer sisi kirim dan sisi terima sebelum terjadi proses pengiriman data disebut handshake. Tipe handshake yang digunakan TCP adalah three- way handshake, karena menggunakan tiga segmen. Tujuan three-way handshake ini adalah untuk pembentukan koneksi, sinkronisasi segmen, dan pemberitahuan besar data yang bisa diterima pada suatu saat antara sisi kirim dan sisi terima. Proses sederhana three-way handshake tersebut dapat ditunjukkan pada gambar 2.2.

Komputer A memulai hubungan dengan mengirimkan segmen sinkronisasi nomor urut (SYN) pada komputer B. Segmen tersebut merupakan pemberitahuan pada komputer B bahwa komputer A ingin melakukan sebuah hubungan dan menanyakan nomor urut berapa yang akan digunakan sebagai awal urutan segmen yang akan dikirim. (Nomor urut tersebut digunakan agar data tetap berada pada urutan yang benar). Komputer B memberikan respon pada komputer A dengan sebuah segmen yang memberikan ACK dan SYN. Dengan demikian komputer A akan tahu informasi nomor urut yang digunakan untuk komputer B. Akhirnya, komputer A pun mengirimkan sebuah segmen sebagai balasan dari segmen yang dikirim komputer B, sekaligus melakukan pengiriman data yang sebenarnya pertama kali. Setelah terjadi proses tersebut komputer A mendapati bahwa komputer B siap menerima data dan segera setelah hubungan dipastikan dapat terjadi data pun dikirim sepenhnya ke komputer B. Pada saat seluruh data telah selesai dikirim, proses three-way handshake untuk mengakhiri hubungan pun terjadi untuk memastikan bahwa tidak ada lagi data yang dikirim.
TCP (Transport Control Protocol) merupakan protokol yang berada pada layer transport dari layer TCP/IP. TCP adalah protokol yang bersifat byte stream, connection-oriented dan reliable dalam pengiriman data. TCP menggunakan komunikasi byte-stream, yang berarti bahwa data dinyatakan sebagai suatu urutan-urutan byte. Connection-oriented berarti sebelum terjadi proses pertukaran data antar komputer terlebih dahulu harus dibentuk suatu hubungan. Hal ini dapat dianalogikan dengan proses pendialan nomor telepon dan akhirnya terbentuk suatu
hubungan. Keandalan TCP dalam megirimkan data didukung oleh mekanisme yang disebut Positive Acknowledgement with Re-transmission (PAR) [Craig Hunt. 1992: 20]. Data yang dikirim dari layer aplikasi akan dipecah-pecah dalam bagian-bagian yang lebih kecil dan diberi nomor urut (sequence number) sebelum dikirimkan ke layer berikutnya. Unit data yang sudah dipecah-pecah tadi disebut segmen (segment). TCP selalu meminta konfirmasi setiap kali selesai mengirimkan data, apakah data tersebut sampai pada komputer tujuan dan tidak rusak. Jika data berhasil sampai mencapai tujuan, TCP akan mengirimkan data urutan berikutnya. Jika tidak berhasil, maka TCP akan melakukan pengiriman ulang urutan data yang hilang atau rusak tersebut. Dalam kenyataannya TCP menggunakan sebuah acknowledgement (ACK) sebagai suatu pemberitahuan antara komputer pengirim dan penerima. Format segmen TCP diperlihatkan pada gambar 2.1.

Gambar 2.1. Format header TCP
Data yang diterima pada sisi penerima akan disusun berdasarkan nomor urut yang diberikan oleh sisi pengirim. Untuk mengatasi kerusakan data yang diterima, TCP menggunakan sebuah checksum untuk memastikan bahwa data tersebut tidak rusak.Model komunikasi dua arah antara komputer sisi kirim dan sisi terima sebelum terjadi proses pengiriman data disebut handshake. Tipe handshake yang digunakan TCP adalah three- way handshake, karena menggunakan tiga segmen. Tujuan three-way handshake ini adalah untuk pembentukan koneksi, sinkronisasi segmen, dan pemberitahuan besar data yang bisa diterima pada suatu saat antara sisi kirim dan sisi terima. Proses sederhana three-way handshake tersebut dapat ditunjukkan pada gambar 2.2.

Gambar 2.2. Three-way Handshake
Komputer A memulai hubungan dengan mengirimkan segmen sinkronisasi nomor urut (SYN) pada komputer B. Segmen tersebut merupakan pemberitahuan pada komputer B bahwa komputer A ingin melakukan sebuah hubungan dan menanyakan nomor urut berapa yang akan digunakan sebagai awal urutan segmen yang akan dikirim. (Nomor urut tersebut digunakan agar data tetap berada pada urutan yang benar). Komputer B memberikan respon pada komputer A dengan sebuah segmen yang memberikan ACK dan SYN. Dengan demikian komputer A akan tahu informasi nomor urut yang digunakan untuk komputer B. Akhirnya, komputer A pun mengirimkan sebuah segmen sebagai balasan dari segmen yang dikirim komputer B, sekaligus melakukan pengiriman data yang sebenarnya pertama kali. Setelah terjadi proses tersebut komputer A mendapati bahwa komputer B siap menerima data dan segera setelah hubungan dipastikan dapat terjadi data pun dikirim sepenhnya ke komputer B. Pada saat seluruh data telah selesai dikirim, proses three-way handshake untuk mengakhiri hubungan pun terjadi untuk memastikan bahwa tidak ada lagi data yang dikirim.