Sobes.tech
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)
	}
}