Junior
What is the difference between TCP and UDP protocols?
sobes.tech AI
Answer from AI
TCP is connection-oriented, guarantees delivery and packet order. UDP is connectionless, does not guarantee delivery or order, but is faster.
Main differences:
| Feature | TCP | UDP |
|---|---|---|
| Orientation | With connection establishment | Without connection establishment |
| Reliability | High (guarantees delivery) | Low (does not guarantee delivery) |
| Order | Guaranteed | Not guaranteed |
| Flow control | Present | Not present |
| Error control | Present (transmission and sequence) | Not present (basic checksum) |
| Speed | Lower | Higher |
| Usage | HTTP, FTP, SSH | DNS, DHCP, online games, streaming |
Example code for sending data over TCP in Go:
package main
import (
"net"
"log"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8080") // Establish TCP connection
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Ensure connection closure
_, err = conn.Write([]byte("Hello, TCP!")) // Send data
if err != nil {
log.Fatal(err)
}
}
Example code for sending data over UDP in Go:
package main
import (
"net"
"log"
)
func main() {
addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // Define UDP address
if err != nil {
log.Fatal(err)
}
conn, err := net.DialUDP("udp", nil, addr) // Create UDP "connection" (without session establishment)
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Close socket
_, err = conn.Write([]byte("Hello, UDP!")) // Send data
if err != nil {
log.Fatal(err)
}
}