Junior
Wat is het verschil tussen de protocollen TCP en UDP?
sobes.tech AI
Antwoord van AI
TCP - opgericht op verbinding, garandeert levering en volgorde van pakketten. UDP - zonder verbinding, garandeert geen levering of volgorde, maar is sneller.
Belangrijkste verschillen:
| Kenmerk | TCP | UDP |
|---|---|---|
| Oriëntatie | Met verbinding opzetten | Zonder verbinding |
| Betrouwbaarheid | Hoog (garandeert levering) | Laag (garandeert levering niet) |
| Volgorde | Gegarandeerd | Niet gegarandeerd |
| Stroomcontrole | Ja | Nee |
| Foutcontrole | Ja (overdracht en volgorde) | Nee (basis checksum) |
| Snelheid | Lager | Hoger |
| Gebruik | HTTP, FTP, SSH | DNS, DHCP, online games, streaming |
Voorbeeld code om data te verzenden via TCP in Go:
package main
import (
"net"
"log"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8080") // TCP-verbinding opzetten
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Verbinding sluiten
_, err = conn.Write([]byte("Hello, TCP!")) // Data verzenden
if err != nil {
log.Fatal(err)
}
}
Voorbeeld code om data te verzenden via UDP in Go:
package main
import (
"net"
"log"
)
func main() {
addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // UDP-adres definiëren
if err != nil {
log.Fatal(err)
}
conn, err := net.DialUDP("udp", nil, addr) // "verbinding" maken (zonder sessie)
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Socket sluiten
_, err = conn.Write([]byte("Hello, UDP!")) // Data verzenden
if err != nil {
log.Fatal(err)
}
}