TCP vs UDP: Mengurai Perdebatan Keandalan vs. Efisiensi

Hari ini, kita akan mulai dengan berfokus pada TCP. Sebelumnya dalam bab tentang lapisan, kita telah menyebutkan poin penting. Pada lapisan jaringan dan di bawahnya, lebih banyak tentang koneksi antar host, yang berarti komputer Anda perlu mengetahui di mana komputer lain berada untuk dapat terhubung dengannya. Namun, komunikasi dalam jaringan seringkali merupakan komunikasi antar proses daripada komunikasi antar mesin. Oleh karena itu, protokol TCP memperkenalkan konsep port. Sebuah port hanya dapat ditempati oleh satu proses, yang menyediakan komunikasi langsung antara proses aplikasi yang berjalan di host yang berbeda.

Tugas lapisan transport adalah menyediakan layanan komunikasi langsung antara proses aplikasi yang berjalan di host yang berbeda, sehingga juga dikenal sebagai protokol ujung-ke-ujung. Lapisan transport menyembunyikan detail inti jaringan, memungkinkan proses aplikasi untuk melihat seolah-olah ada saluran komunikasi ujung-ke-ujung logis antara dua entitas lapisan transport.

TCP adalah singkatan dari Transmission Control Protocol dan dikenal sebagai protokol berorientasi koneksi. Ini berarti bahwa sebelum satu aplikasi dapat mulai mengirim data ke aplikasi lain, kedua proses tersebut harus melakukan jabat tangan (handshake). Jabat tangan adalah proses yang terhubung secara logis yang memastikan transmisi yang andal dan penerimaan data yang teratur. Selama jabat tangan, koneksi dibangun antara host sumber dan tujuan dengan bertukar serangkaian paket kontrol dan menyepakati beberapa parameter dan aturan untuk memastikan transmisi data yang berhasil.

Apa itu TCP? (Tautan sayaNetwork TapDanBroker Paket Jaringandapat memproses paket TCP atau UDP)
TCP (Transmission Control Protocol) adalah protokol komunikasi lapisan transport berbasis aliran byte yang berorientasi pada koneksi dan andal.

Berorientasi pada koneksi: Berorientasi koneksi berarti bahwa komunikasi TCP bersifat satu-ke-satu, yaitu komunikasi ujung-ke-ujung titik-ke-titik, tidak seperti UDP yang dapat mengirim pesan ke banyak host secara bersamaan, sehingga komunikasi satu-ke-banyak tidak dapat dicapai.
Dapat diandalkanKeandalan TCP memastikan bahwa paket dikirim dengan andal ke penerima terlepas dari perubahan pada tautan jaringan, yang membuat format paket protokol TCP lebih kompleks daripada UDP.
Berbasis aliran byteSifat TCP yang berbasis aliran byte memungkinkan pengiriman pesan dengan ukuran apa pun dan menjamin urutan pesan: bahkan jika pesan sebelumnya belum diterima sepenuhnya, dan bahkan jika byte berikutnya telah diterima, TCP tidak akan mengirimkannya ke lapisan aplikasi untuk diproses dan akan secara otomatis membuang paket duplikat.
Setelah host A dan host B berhasil membangun koneksi, aplikasi hanya perlu menggunakan jalur komunikasi virtual untuk mengirim dan menerima data, sehingga memastikan transmisi data. Protokol TCP bertanggung jawab untuk mengontrol tugas-tugas seperti pembentukan koneksi, pemutusan koneksi, dan penahanan koneksi. Perlu dicatat bahwa di sini kita mengatakan jalur virtual hanya berarti untuk membangun koneksi, koneksi protokol TCP hanya menunjukkan bahwa kedua belah pihak dapat memulai transmisi data, dan untuk memastikan keandalan data. Node routing dan transport ditangani oleh perangkat jaringan; protokol TCP sendiri tidak berkaitan dengan detail ini.

Koneksi TCP adalah layanan full-duplex, yang berarti bahwa host A dan host B dapat mengirimkan data ke kedua arah dalam koneksi TCP. Artinya, data dapat ditransfer antara host A dan host B dalam aliran dua arah.

TCP menyimpan data sementara di buffer kirim koneksi. Buffer kirim ini adalah salah satu cache yang disiapkan selama proses jabat tangan tiga arah. Selanjutnya, TCP akan mengirimkan data di cache kirim ke cache terima host tujuan pada waktu yang tepat. Dalam praktiknya, setiap pihak akan memiliki cache kirim dan cache terima, seperti yang ditunjukkan di sini:

TCP-UDP

Buffer kirim adalah area memori yang dikelola oleh implementasi TCP di sisi pengirim yang digunakan untuk menyimpan sementara data yang akan dikirim. Ketika jabat tangan tiga arah dilakukan untuk membangun koneksi, cache kirim diatur dan digunakan untuk menyimpan data. Buffer kirim disesuaikan secara dinamis sesuai dengan kemacetan jaringan dan umpan balik dari penerima.

Buffer penerima adalah area memori yang dikelola oleh implementasi TCP di sisi penerima yang digunakan untuk menyimpan data yang diterima sementara. TCP menyimpan data yang diterima di cache penerima dan menunggu aplikasi di atasnya untuk membacanya.

Perlu dicatat bahwa ukuran cache kirim dan cache terima terbatas. Ketika cache penuh, TCP dapat menerapkan beberapa strategi, seperti pengendalian kemacetan, pengendalian aliran, dan lain-lain, untuk memastikan transmisi data yang andal dan stabilitas jaringan.

Dalam jaringan komputer, transmisi data antar host dilakukan melalui segmen. Jadi, apa itu segmen paket?

TCP membuat segmen TCP, atau segmen paket, dengan membagi aliran data yang masuk menjadi beberapa bagian dan menambahkan header TCP ke setiap bagian. Setiap segmen hanya dapat ditransmisikan dalam jangka waktu terbatas dan tidak boleh melebihi Ukuran Segmen Maksimum (MSS). Dalam perjalanannya, segmen paket melewati lapisan tautan. Lapisan tautan memiliki Unit Transmisi Maksimum (MTU), yaitu ukuran paket maksimum yang dapat melewati lapisan tautan data. Unit transmisi maksimum biasanya terkait dengan antarmuka komunikasi.

Jadi, apa perbedaan antara MSS dan MTU?

Dalam jaringan komputer, arsitektur hierarkis sangat penting karena mempertimbangkan perbedaan antara berbagai tingkatan. Setiap lapisan memiliki nama yang berbeda; pada lapisan transport, data disebut segmen, dan pada lapisan jaringan, data disebut paket IP. Oleh karena itu, Maximum Transmission Unit (MTU) dapat dianggap sebagai Ukuran Paket IP Maksimum yang dapat ditransmisikan oleh lapisan jaringan, sedangkan Maximum Segment Size (MSS) adalah konsep lapisan transport yang mengacu pada jumlah maksimum data yang dapat ditransmisikan oleh paket TCP dalam satu waktu.

Perlu dicatat bahwa ketika Ukuran Segmen Maksimum (MSS) lebih besar dari Unit Transmisi Maksimum (MTU), fragmentasi IP akan dilakukan pada lapisan jaringan, dan TCP tidak akan membagi data yang lebih besar menjadi segmen yang sesuai dengan ukuran MTU. Akan ada bagian pada lapisan jaringan yang dikhususkan untuk lapisan IP.

Struktur segmen paket TCP
Mari kita telusuri format dan isi header TCP.

Segmen TCP

Nomor urut: Angka acak yang dihasilkan oleh komputer saat koneksi dibuat sebagai nilai awalnya ketika koneksi TCP dibuat, dan nomor urutan dikirim ke penerima melalui paket SYN. ​​Selama transmisi data, pengirim menambah nomor urutan sesuai dengan jumlah data yang dikirim. Penerima menilai urutan data berdasarkan nomor urutan yang diterima. Jika data ditemukan tidak berurutan, penerima akan menyusun ulang data untuk memastikan urutan data.

Nomor pengakuanIni adalah nomor urutan yang digunakan dalam TCP untuk mengakui penerimaan data. Nomor ini menunjukkan nomor urutan data berikutnya yang diharapkan pengirim untuk diterima. Dalam koneksi TCP, penerima menentukan data mana yang telah berhasil diterima berdasarkan nomor urutan segmen paket data yang diterima. Ketika penerima berhasil menerima data, ia mengirimkan paket ACK ke pengirim, yang berisi nomor pengakuan penerimaan. Setelah menerima paket ACK, pengirim dapat memastikan bahwa data sebelum mengakui nomor balasan telah berhasil diterima.

Bit kontrol dari sebuah segmen TCP meliputi hal-hal berikut:

ACK bit: Ketika bit ini bernilai 1, itu berarti bidang balasan pengakuan valid. TCP menetapkan bahwa bit ini harus diatur ke 1 kecuali untuk paket SYN ketika koneksi pertama kali dibuat.
Bit RST: Ketika bit ini bernilai 1, itu menunjukkan bahwa ada pengecualian dalam koneksi TCP dan koneksi harus dipaksa untuk diputus.
bit SYNKetika bit ini diatur ke 1, itu berarti koneksi akan dibuat dan nilai awal nomor urut diatur dalam kolom nomor urut.
FIN bitKetika bit ini bernilai 1, artinya tidak ada lagi data yang akan dikirim di masa mendatang dan koneksi tersebut diinginkan.
Berbagai fungsi dan karakteristik TCP diwujudkan dalam struktur segmen paket TCP.

Apa itu UDP? (Mylinking)Network TapDanBroker Paket Jaringan(dapat memproses paket TCP atau UDP)
User Datagram Protocol (UDP) adalah protokol komunikasi tanpa koneksi. Dibandingkan dengan TCP, UDP tidak menyediakan mekanisme kontrol yang kompleks. Protokol UDP memungkinkan aplikasi untuk langsung mengirim paket IP yang dienkapsulasi tanpa membangun koneksi. Ketika pengembang memilih untuk menggunakan UDP alih-alih TCP, aplikasi berkomunikasi langsung dengan IP.

Nama lengkap Protokol UDP adalah User Datagram Protocol, dan header-nya hanya delapan byte (64 bit), yang sangat ringkas. Format header UDP adalah sebagai berikut:

Segmen UDP

Pelabuhan tujuan dan pelabuhan asalTujuan utamanya adalah untuk menunjukkan ke proses mana UDP harus mengirim paket.
Ukuran paketKolom ukuran paket berisi ukuran header UDP ditambah ukuran data.
ChecksumDirancang untuk memastikan pengiriman header dan data UDP yang andal. Peran checksum adalah untuk mendeteksi apakah terjadi kesalahan atau kerusakan selama transmisi paket UDP guna memastikan integritas data.

Perbedaan antara TCP dan UDP di MylinkingNetwork TapDanBroker Paket Jaringandapat memproses paket TCP atau UDP
TCP dan UDP berbeda dalam aspek-aspek berikut:

TCP vs UDP

KoneksiTCP adalah protokol transport berorientasi koneksi yang memerlukan koneksi terlebih dahulu sebelum data dapat ditransfer. UDP, di sisi lain, tidak memerlukan koneksi dan dapat mentransfer data secara langsung.

Objek LayananTCP adalah layanan satu-ke-satu dua-titik, artinya sebuah koneksi hanya memiliki dua titik akhir untuk berkomunikasi satu sama lain. Namun, UDP mendukung komunikasi interaktif satu-ke-satu, satu-ke-banyak, dan banyak-ke-banyak, yang dapat berkomunikasi dengan banyak host secara bersamaan.

KeandalanTCP menyediakan layanan pengiriman data yang andal, memastikan bahwa data bebas dari kesalahan, tidak hilang, tidak duplikat, dan sampai sesuai permintaan. UDP, di sisi lain, melakukan upaya terbaiknya dan tidak menjamin pengiriman yang andal. UDP mungkin mengalami kehilangan data dan situasi lain selama transmisi.

Pengendalian kemacetan, pengendalian arusTCP memiliki mekanisme kontrol kemacetan dan kontrol aliran, yang dapat menyesuaikan laju transmisi data sesuai dengan kondisi jaringan untuk memastikan keamanan dan stabilitas transmisi data. UDP tidak memiliki mekanisme kontrol kemacetan dan kontrol aliran, bahkan jika jaringan sangat padat, UDP tidak akan melakukan penyesuaian pada laju pengiriman data.

Header overheadTCP memiliki panjang header yang panjang, biasanya 20 byte, yang meningkat ketika field opsi digunakan. UDP, di sisi lain, memiliki header tetap hanya 8 byte, sehingga UDP memiliki overhead header yang lebih rendah.

TCP vs UDP

Skenario Aplikasi TCP dan UDP:
TCP dan UDP adalah dua protokol lapisan transport yang berbeda, dan keduanya memiliki beberapa perbedaan dalam skenario aplikasi.

Karena TCP adalah protokol berorientasi koneksi, protokol ini terutama digunakan dalam skenario di mana pengiriman data yang andal diperlukan. Beberapa contoh penggunaan umum meliputi:

Transfer file FTPTCP dapat memastikan bahwa file tidak hilang dan rusak selama transfer.
HTTP/HTTPSTCP memastikan integritas dan kebenaran konten web.
Karena UDP merupakan protokol tanpa koneksi, ia tidak memberikan jaminan keandalan, tetapi memiliki karakteristik efisiensi dan waktu nyata. UDP cocok untuk skenario berikut:

Lalu lintas paket rendah, seperti DNS (Domain Name System)Permintaan DNS biasanya berupa paket pendek, dan UDP dapat menyelesaikannya lebih cepat.
Komunikasi multimedia seperti video dan audioUntuk transmisi multimedia dengan persyaratan waktu nyata yang tinggi, UDP dapat memberikan latensi yang lebih rendah untuk memastikan data dapat ditransmisikan tepat waktu.
Komunikasi siaranUDP mendukung komunikasi satu-ke-banyak dan banyak-ke-banyak serta dapat digunakan untuk transmisi pesan siaran.

Ringkasan
Hari ini kita belajar tentang TCP. TCP adalah protokol komunikasi lapisan transport berbasis aliran byte yang berorientasi koneksi dan andal. Protokol ini memastikan transmisi yang andal dan penerimaan data yang teratur dengan membangun koneksi, jabat tangan, dan pengakuan. Protokol TCP menggunakan port untuk mewujudkan komunikasi antar proses, dan menyediakan layanan komunikasi langsung untuk proses aplikasi yang berjalan di host yang berbeda. Koneksi TCP bersifat full-duplex, memungkinkan transfer data dua arah secara simultan. Sebaliknya, UDP adalah protokol komunikasi berorientasi tanpa koneksi, yang tidak memberikan jaminan keandalan dan cocok untuk beberapa skenario dengan persyaratan real-time yang tinggi. TCP dan UDP berbeda dalam mode koneksi, objek layanan, keandalan, kontrol kemacetan, kontrol aliran, dan aspek lainnya, dan skenario aplikasinya juga berbeda.


Waktu posting: 03-Des-2024