Sobes.tech
Middle+

How does TCP differ from UDP? What are the use cases?

sobes.tech AI

Answer from AI

TCP (Transmission Control Protocol) and UDP (User Datagram Protocol) are two main transport layer protocols in a network.

Differences:

  • Reliability: TCP provides reliable data delivery by establishing a connection, acknowledging receipt of packets, and retransmitting lost packets. UDP is connectionless and does not provide acknowledgments, so data can be lost.
  • Order of delivery: TCP guarantees the order of packet delivery, UDP does not.
  • Speed: UDP is faster due to the lack of control and acknowledgment mechanisms.
  • Resource usage: TCP requires more resources because of connection and state management.

Use cases:

  • TCP: web servers (HTTP/HTTPS), databases, email — where reliability and data integrity are important.
  • UDP: video/audio streaming, online gaming, VoIP — where speed and latency are critical, and some packet loss is acceptable.

Example in Go for a TCP server:

ln, err := net.Listen("tcp", ":8080")
if err != nil {
    log.Fatal(err)
}
for {
    conn, err := ln.Accept()
    if err != nil {
        continue
    }
    go handleConnection(conn)
}

For UDP:

addr, err := net.ResolveUDPAddr("udp", ":8080")
conn, err := net.ListenUDP("udp", addr)
buf := make([]byte, 1024)
for {
    n, addr, err := conn.ReadFromUDP(buf)
    // data processing
}