
SederhanaPemulaDevOps
Apakah perbezaan utama antara protokol TCP dan UDP?
Jawapan ringkas
TCP ialah protokol berorientasikan sambungan dan boleh dipercayai yang menjamin penghantaran, pesanan,
dan semakan ralat pada kos overhed. UDP ialah protokol tanpa sambungan yang mudah
tanpa jaminan penghantaran atau pesanan, tetapi ia lebih pantas dan ringan.
TCP dan UDP ialah dua protokol lapisan pengangkutan utama yang berjalan di atas IP. Perbezaan teras: TCP adalah berorientasikan sambungan dan boleh dipercayai, manakala UDP adalah tanpa sambungan dan berfungsi berdasarkan "api dan lupa".
TCP (RFC 9293)
- Berorientasikan sambungan. Sebelum menghantar data, titik akhir melakukan jabat tangan tiga hala (3WHS): SYN → SYN-ACK → ACK, menyegerakkan nombor jujukan awal.
- Boleh dipercayai dan teratur. Setiap bait mendapat nombor urutan; penerima menghantar pengakuan (ACK), segmen yang hilang dihantar semula, dan data dipasang semula dalam susunan asal. Integriti disahkan dengan checksum. RFC 9293 menyatakan TCP "menyediakan perkhidmatan aliran bait yang boleh dipercayai, tersusun,."
- Strim bait, tiada sempadan mesej. TCP menyampaikan strim bait tidak berstruktur: sempadan mesej tidak dipelihara (aplikasi mesti membingkai mesejnya sendiri). Sebaliknya, UDP adalah berorientasikan mesej — setiap datagram dihantar sebagai unit diskret, lengkap atau tidak sama sekali (satu sendto = satu recvfrom).
- Kawalan aliran dan kesesakan. TCP mengecilkan kadar penghantarannya supaya ia tidak mengatasi penerima mahupun rangkaian.
- Trade-off: lebih banyak overhed dan kependaman, dan pengepala yang lebih besar — 20–60 bait (20 tanpa pilihan, boleh dilanjutkan melalui pilihan seperti MSS, penskalaan tetingkap, SACK).
UDP (RFC 768)
- Tanpa sambungan. Tiada jabat tangan; setiap datagram adalah bebas.
- Tiada jaminan. RFC secara eksplisit mengatakan "penghantaran dan perlindungan pendua tidak dijamin" — UDP tidak memulihkan paket yang hilang, pendua atau tidak terurus.
- Pengepala 8-bait telah diperbaiki dengan hanya empat medan: Port Sumber, Port Destinasi, Panjang, Jumlah Semak.
- Faedah: kependaman dan overhed rendah, serta sokongan untuk siaran/berbilang siaran.
Bila nak guna yang mana
- TCP: web (HTTP/HTTPS melalui TCP), e-mel, pemindahan fail, SSH — di mana sahaja integriti data penting.
- UDP: Pencarian DNS, permainan dalam talian, VoIP, penstriman video langsung — di mana kelajuan lebih penting daripada satu paket yang hilang.
Mata susulan biasa
- UDP sendiri tidak memesan data, tetapi aplikasi boleh melapisi logiknya sendiri di atas (QUIC melakukan ini melalui UDP).
- HTTP/3 berjalan pada QUIC melalui UDP, manakala HTTP/1.1 dan HTTP/2 berjalan melalui TCP.
- Jumlah semak UDP secara teknikal adalah pilihan pada IPv4 (nilai sifar bermaksud "tidak dikira") tetapi wajib pada IPv6.
