TCP DAN UDP

I. TCP (Transmission Control Protocol)

1) Pengertian
TCP adalah protokol yang memungkinkan program-program aplikasi untuk mengakses/menggunakan layanan komunikasi bersifat connection-oriented. TCP mampu memberikan jasa pengiriman yang dapat diandalkan (reliable) sekaligus bersifat flow-controlled. Sifat flow-controlled ini memungkinkan peralatan-peralatan jaringan yang berkecepatan rendah (slower-speed network devices) dapat berhubungan dengan peralatan-peralatan jaringan yang berkecepatan tinggi (higher-speed network devices).

2) Sifat-sifat

a) Connection-oriented
Suatu arsitektur/mekanisme komunikasi data di mana dua perangkat yang akan saling berkomunikasi diharuskan untuk membuat sebuah sesi (session) terlebih dahulu. Ketika komunikasi telah selesai, session tersebut akan berakhir. Hal inilah yang terjadi dalam komunikasi menggunakan telepon, sebuah koneksi harus tersedia dan terjadi terlebih dahulu sebelum telepon yang dituju dapat digunakan untuk berkomunikasi dengan telepon yang digunakan untuk memanggil.


b) Reliable (keandalan)
Keandalan yang dimiliki oleh protokol ini disebabkan karena beberapa mekanisme. Berikut mekanisme tersebut:
1. Checksum: semua segmen TCP membawa checksum yang akan digunakan oleh si penerima (receiver device) untuk mengecek adanya error baik itu error pada data atau pada header milik TCP itu sendiri.
2. Duplicate Data Detection: kemampuan TCP untuk menjaga setiap byte yang diterima agar byte-byte tersebut tidak mengalami penggandaan (baca: diterima lebih dari satu kali).
3. Retransmisson: kemampuan TCP untuk mengimplementasikan skema pengiriman ulang untuk data kiriman yang rusak atau hilang.
4. Sequencing: kemampuan TCP untuk menyusun segmen-segmen data yang telah diterimanya. Hal ini akan membuat TCP mampu mengirimkan kembali data tersebut kepada suatu aplikasi dengan susunan yang benar.
5. Timers: TCP menggunakan dua timer sekaligus dalam pengiriman data. Dua timer tersebut yakni timer statik dan timer dinamis. Protokol yang menjadi pengirim akan menunggu si penerima dalam periode waktu tertentu untuk sebuah “acknowledgement”. Jika timer telah habis masa periodenya, si pengirim dapat mengirim kembali (retransmit) segment yang akan dikirim.

c) Stream data transfer
TCP akan mengelompokkan byte-byte yang sebelumnya tidak terstruktur ke dalam bentuk segmen untuk kemudian dikirimkan ke IP. Layanan ini memberikan keuntungan bagi aplikasi-aplikasi karena mereka tidak perlu lagi membuat blok-blok data.

d) efficient flow control
Ketika mengirim ulang acknowledgement ke alamat asal, proses TCP yang menerima mengindikasikan nomor urutan yang bisa diterimanya tanpa harus meng-over flow buffer internal miliknya.

e) full-duplex operation
TCP bisa mengirim dan menerima dalam waktu yang bersamaan

f) multiplexing
Komunikasi antar upper-layer yang terjadi secara simultan bisa dimultiplexikan melalui satu koneksi tunggal.

3) TCP dalam kehidupan sehari-hari
Untuk aplikasi sehari-hari, TCP dikenal sebagai protokol pendamping Internet Protocol (IP). Gabungan antara TCP dan IP yang lazim dikenal dengan TCP/IP ini telah menjadi standar global komunikasi dunia internet.

4) Model Jaringan TCP/IP
Susunan Model jaringan TCP/IP sangat mirip dengan referensi model dari OSI pada “lower layer”, yaitu pada layer 1 “physical” dan layer 2 “data-link”.

5) Datagram TCP/IP
Informasi TCP/IP ditransfer dalam sebuah urutan “datagram”. Satu pesan ditransfer sebagai rentetan datagram yang disusun kembali menjadi seperti pesan semula pada sisi penerima.

6) Layer Protocol TCP/IP
Ilustrasi berikut menggambarkan susunan tiga layer dari Protokol TCP/IP:
• Application Layer
• Transport Layer
• Internet Layer

7) Fungsi TCP
Berikut ini adalah fungsi umum TCP Protocol:
• TCP bertugas memecah pesan-pesan menjadi beberapa segment, menyatukan kembali (reassemble) pada stasiun tujuan, mengirimkan kembali apapun yang tidak diterima, dan menyatukan kembali pesan-pesan tersebut dari beberapa segment.
• TCP menyediakan sirkuit virtual antara aplikasi end-user.

II. UDP (User Datagram Protocol)

Karakteristik UDP
• 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.
UDP tidak menyediakan layanan-layanan antar-host berikut:
• UDP tidak menyediakan mekanisme penyanggaan (buffering) dari data yang masuk ataupun data yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protokol lapisan aplikasi yang berjalan di atas UDP.
• UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam segmen-segmen data, seperti yang terjadi dalam protokol TCP. Karena itulah, protokol lapisan aplikasi yang berjalan di atas UDP harus mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai Maximum Transfer Unit/MTU) yang dimiliki oleh sebuah antarmuka di mana data tersebut dikirim. Karena, jika ukuran paket data yang dikirim lebih besar dibandingkan nilai MTU, paket data yang dikirimkan bisa saja terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim dengan benar.
• UDP tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP.

Penggunaan UDP
UDP sering digunakan dalam beberapa tugas berikut:
• Protokol yang "ringan" (lightweight): Untuk menghemat sumber daya memori dan prosesor, beberapa protokol lapisan aplikasi membutuhkan penggunaan protokol yang ringan yang dapat melakukan fungsi-fungsi spesifik dengan saling bertukar pesan. Contoh dari protokol yang ringan adalah fungsi query nama dalam protokol lapisan aplikasi Domain Name System.
• Protokol lapisan aplikasi yang mengimplementasikan layanan keandalan: Jika protokol lapisan aplikasi menyediakan layanan transfer data yang andal, maka kebutuhan terhadap keandalan yang ditawarkan oleh TCP pun menjadi tidak ada. Contoh dari protokol seperti ini adalah Trivial File Transfer Protocol (TFTP) dan Network File System (NFS)
• Protokol yang tidak membutuhkan keandalan. Contoh protokol ini adalah protokol Routing Information Protocol (RIP).
• Transmisi broadcast: Karena UDP merupakan protokol yang tidak perlu membuat koneksi terlebih dahulu dengan sebuah host tertentu, maka transmisi broadcast pun dimungkinkan. Sebuah protokol lapisan aplikasi dapat mengirimkan paket data ke beberapa tujuan dengan menggunakan alamat multicast atau broadcast. Hal ini kontras dengan protokol TCP yang hanya dapat mengirimkan transmisi one-to-one. Contoh: query nama dalam protokol NetBIOS Name Service.

Pesan-pesan UDP
Pesan-pesan UDP, berbeda dengan TCP yang memiliki satuan paket data yang disebut dengan segmen, melakukan pengepakan terhadap data ke dalam pesan-pesan UDP (UDP Messages). Sebuah pesan UDP berisi header UDP dan akan dikirimkan ke protokol lapisan selanjutnya (lapisan internetwork) setelah mengepaknya menjadi datagram IP. Enkapsulasi terhadap pesan-pesan UDP oleh protokol IP dilakukan dengan menambahkan header IP dengan protokol IP nomor 17 (0x11). Pesan UDP dapat memiliki besar maksimum 65507 byte: 65535 (216)-20 (ukuran terkecil dari header IP)-8 (ukuran dari header UDP) byte. Datagram IP yang dihasilkan dari proses enkapsulasi tersebut, akan dienkapsulasi kembali dengan menggunakan header dan trailer protokol lapisan Network Interface yang digunakan oleh host tersebut.

Dalam header IP dari sebuah pesan UDP, field Source IP Address akan diset ke antarmuka host yang mengirimkan pesan UDP yang bersangkutan, sementara field Destination IP Address akan diset ke alamat IP unicast dari sebuah host tertentu, alamat IP broadcast, atau alamat IP multicast.

Header UDP
Header UDP diwujudkan sebagai sebuah header dengan 4 buah field memiliki ukuran yang tetap, seperti tersebutkan dalam tabel berikut.
Field Panjang Keterangan

Source Port 16 bit (2 byte) Digunakan untuk mengidentifikasikan sumber protokol lapisan aplikasi yang mengirimkan pesan UDP yang bersangkutan. Penggunaan field ini adalah opsional, dan jika tidak digunakan, akan diset ke angka 0. Beberapa protokol lapisan aplikasi dapat menggunakan nilai field ini dari pesan UDP yang masuk sebagai nilai field port tujuan (Destination Port, lihat baris selanjutnya) sebagai balasan untuk pesan tersebut.

Destination Port 16 bit (2 byte) Digunakan untuk mengidentifikasikan tujuan protokol lapisan aplikasi yang menjadi tujuan pesan UDP yang bersangkutan. Dengan menggunakan kombinasi antara alamat IP dengan nilai dari field ini untuk membuat sebuah alamat yang signifikan untuk mengidentifikasikan proses yang berjalan dalam sebuah host tertentu yang dituju oleh pesan UDP yang bersangkutan.

Length 16 bit (2 byte) Digunakan untuk mengindikasikan panjang pesan UDP (pesan UDP ditambah dengan header UDP) dalam satuan byte. Ukuran paling kecil adalah 8 byte (ukuran header UDP, ketika tidak ada isi pesan UDP), dan ukuran paling besar adalah 65515 bytes (65535 [216] -20 [ukuran header protokol IP]). Panjang maksimum aktual dari pesan UDP akan disesuaikan dengan menggunakan nilai Maximum Transmission Unit (MTU) dari saluran di mana pesan UDP dikirimkan. Field ini bersifat redundan (terulang-ulang). Panjang pesan UDP dapat dihitung dari field Length dalam header UDP dan field IP Header Length dalam header IP.
Checksum 16 bit (2 byte) Berisi informasi pengecekan integritas dari pesan UDP yang dikirimkan (header UDP dan pesan UDP). Penggunaan field ini adalah opsional. Jika tidak digunakan, field ini akan bernilai 0.
Port UDP

Seperti halnya TCP, UDP juga memiliki saluran untuk mengirimkan informasi antar host, yang disebut dengan UDP Port. Untuk menggunakan protokol UDP, sebuah aplikasi harus menyediakan alamat IP dan nomor UDP Port dari host yang dituju. Sebuah UDP port berfungsi sebagai sebuah multiplexed message queue, yang berarti bahwa UDP port tersebut dapat menerima beberapa pesan secara sekaligus. Setiap port diidentifikasi dengan nomor yang unik, seperti halnya TCP, tetapi meskipun begitu, UDP Port berbeda dengan TCP Port meskipun memiliki nomor port yang sama. Tabel di bawah ini mendaftarkan beberapa UDP port yang telah dikenal secara luas.
Nomor Port UDP Digunakan oleh

III. TCP vs UDP

TCP lahir sebagai sebuah teknologi yang berdasar pada koneksi, menjaga sesi aplikasi, dan menjamin tingkat komunikasi yang handal dan memiliki standarisasi pada tingkat flow control. UDP tidak memiliki kesemua fitur tersebut dan sangat bergantung pada aplikasi untuk menghasilkan sekumpulan fitur yang mencukupi.

UDP dapat dikatakan sebagai protokol yang tidak terikat aturan. Pada saat menggunakan UDP kita dapat membuat paket yang kita kirimkan memiliki checksum atau tidak, mengirimkan paket ke satu atau banyak penerima, hingga memilih port komunikasi yang digunakan secara bebas. UDP tidak menjaga sesi koneksi dan paket yang dikirimkan bersifat independen dari satu paket ke paket yang lain sehingga urutan paket yang datang bukanlah sebuah jaminan dari protokol ini. Hal yang menarik lagi dari dukungan sekuritas, UDP tidak menawarkan mekanisme sekuritas secara built-in.

Berdasar pada argumen di atas maka dapat dipastikan membuat aplikasi berbasis UDP harus kita pikirkan dari segi manfaatnya. Sebagai contohnya UDP akan sangat cocok bila diimplementasikan pada presentasi serentak sebanyak 20 klien.

Hal lain yang mungkin menjadi pertimbangan pemilihan antara UDP dan TCP adalah kecepatan. Pada TCP dibutuhkan sekurang kurangnya tiga pertukaran paket. Sebagai contoh komunikasi antara Yogyakarta dan Jakarta membutuhkan tiga paket dan masing-masing adalah 200ms maka dibutuhkan waktu 600ms. Pada UDP hanya terjadi sebuah pertukaran paket seperti pada gambar disamping.

Hal ini tentunya menunjukkan bahwa pada suatu waktu (terutama bila paket TCP yang dikirimkan kecil) timbul overhead yang tidak perlu. Hal ini dapat dihindarkan dengan menggunakan UDP. Hal lain tentang perbedaan TCP dan UDP adalah urutan paket. Pada aplikasi tertentu urutan paket menjadi penting sebagai contoh aplikasi transfer berkas tetapi pada kasus tertentu paket yang hilang atau tidak urut tidak terlalu berpengaruh pada aplikasi video streaming yang mendukung frame skipping.

Sebuah kesimpulan pada sisi ini adalah TCP memberikan fitur yang lebih dari sisi keamanan, fleksibilitas, dan juga kualitas. Programmer akan mudah melakukan pemrograman TCP terlebih lagi hal-hal detil tentang keamanan telah dicakup juga pada TCP. Sementara pada UDP, hal tersebut tidak ditemukan, UGP unggul dalam suatu keadaan jaringan yang membutuhkan performa tetapi dengan ketahanan yang tidak terlalu tinggi.

Read More (Baca Slengkapnya)---->

1 komentar:

fancijaffee 6 Maret 2022 pukul 00.01  

Titanium Care Set - Titanium Art
Titanium Care Set This titanium automatic watch T-Shirt microtouch titanium combines a luxurious and timeless classic to oakley titanium sunglasses create a aluminum vs titanium sophisticated and modern take titanium gr 5 on timeless and timeless pieces.

Posting Komentar

Cari Yang Lain

Follow

Blog Archive

Waktu

IP

Cuaca Hari ini

bloguez.com

Kurs BCA