
KatamtamanBaguhanDevOps
Ano ang pangunahing pagkakaiba sa pagitan ng mga protocol ng TCP at UDP?
Maikling sagot
Ang TCP ay isang koneksyon-oriented, maaasahang protocol na ginagarantiyahan ang paghahatid, pag-order,
at error-checking sa halaga ng overhead. Ang UDP ay isang simpleng protocol na walang koneksyon
na walang garantiya sa paghahatid o pag-order, ngunit ito ay mas mabilis at mas magaan.
Ang TCP at UDP ay ang dalawang pangunahing transport-layer protocol na tumatakbo sa ibabaw ng IP. Ang pangunahing pagkakaiba: Ang TCP ay nakatuon sa koneksyon at maaasahan, samantalang ang UDP ay walang koneksyon at gumagana sa isang "ipadala at kalimutan" na batayan.
TCP (RFC 9293)
- May koneksyon. Bago magpadala ng data, ang mga endpoint ay nagsasagawa ng three-way handshake (3WHS): SYN → SYN-ACK → ACK, na nagsi-synchronize ng mga unang sequence number.
- Maaasahan at nakaayos. Ang bawat byte ay nakakakuha ng sequence number; ang receiver ay nagpapadala ng mga pagkilala (ACKs), ang mga nawawalang segment ay muling ipinapadala, at ang data ay muling binuo sa orihinal na pagkakasunud-sunod. Bine-verify ang integridad gamit ang checksum. Sinasabi ng RFC 9293 na ang TCP ay "nagbibigay ng maaasahang serbisyo ng daloy ng mga byte na may tamang pagkakasunod-sunod."
- Daloy ng mga byte, walang hangganan ng mensahe. Naghahatid ang TCP ng hindi nakabalangkas na daloy ng mga byte: hindi pinapanatili ang mga hangganan ng mensahe (ang application ay dapat mag-frame ng sarili nitong mga mensahe). Ang UDP, sa kabilang banda, ay nakatuon sa mensahe — ang bawat datagram ay inihahatid bilang isang discrete, kumpletong unit o hindi man (isang sendto = isang recvfrom).
- Kontrol sa daloy at pagsisikip. Pina-throttle ng TCP ang rate ng pagpapadala nito upang hindi nito madaig ang receiver o ang network.
- Kapalit: higit pang overhead at latency, at isang mas malaking header — 20–60 bytes (20 na walang mga opsyon, mapapalawig sa pamamagitan ng mga opsyon gaya ng MSS, window scaling, SACK).
UDP (RFC 768)
- Walang koneksyon. Walang handshake; ang bawat datagram ay independyente.
- Walang mga garantiya. Tahasang sinasabi ng RFC na "hindi garantisado ang paghahatid at duplicate na proteksyon" — hindi binabawi ng UDP ang mga nawala, nadoble, o wala sa order na mga packet.
- Nakapirming header na 8 byte na may apat na field lang: port ng pinagmulan, port ng destinasyon, haba, at checksum.
- Mga Benepisyo: mababang latency at overhead, kasama ang suporta para sa broadcast/multicast.
Kailan gagamitin ang alin
- TCP: web (HTTP/HTTPS over TCP), email, file transfer, SSH — kahit saan mahalaga ang integridad ng data.
- UDP: Mga paghahanap sa DNS, online na paglalaro, VoIP, live na video streaming — kung saan ang bilis ay mas mahalaga kaysa sa isang solong nawalang packet.
Mga karaniwang follow-up na puntos
- Ang UDP mismo ay hindi nag-order ng data, ngunit ang isang application ay maaaring maglagay ng sarili nitong logic sa itaas (ginagawa ito ng QUIC sa UDP).
- Tumatakbo ang HTTP/3 sa QUIC sa UDP, habang tumatakbo ang HTTP/1.1 at HTTP/2 sa TCP.
- Ang checksum ng UDP ay teknikal na opsyonal sa IPv4 (ang ibig sabihin ng zero value ay "hindi kinalkula") ngunit mandatory sa IPv6.
