ਦੋਵੇਂ Transport-layer protocol ਹਨ, ਪਰ ਇਹ ਉਲਟ trade-off ਕਰਦੇ ਹਨ। TCP connection-oriented ਅਤੇ ਭਰੋਸੇਯੋਗ ਹੈ — ਇਹ ਗਾਰੰਟੀ ਦਿੰਦਾ ਹੈ ਕਿ ਹਰ byte ਪਹੁੰਚਦਾ ਹੈ, ਕ੍ਰਮ ਵਿੱਚ, ਬਿਲਕੁਲ ਇੱਕ ਵਾਰ। UDP connectionless ਅਤੇ "fire-and-forget" ਹੈ — ਇਹ ਸਿਰਫ਼ packet (datagram) ਭੇਜਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਡਿਲੀਵਰੀ ਜਾਂ ਕ੍ਰਮ ਦੀ ਕੋਈ ਗਾਰੰਟੀ ਨਹੀਂ ਹੁੰਦੀ। ਤੁਸੀਂ TCP ਦੀ ਭਰੋਸੇਯੋਗਤਾ ਨੂੰ UDP ਦੇ ਘੱਟ overhead ਅਤੇ ਗਤੀ ਨਾਲ ਬਦਲਦੇ ਹੋ।
TCP UDP
┌───────────────────────┐ ┌───────────────────────┐
│ connection (handshake)│ │ no connection │
│ reliable (retransmit) │ │ best-effort (no retry)│
│ ordered delivery │ │ unordered │
│ flow + congestion ctrl│ │ none │
│ higher overhead │ │ minimal overhead │
└───────────────────────┘ └───────────────────────┘
