Junior
Was ist der Unterschied zwischen den Protokollen TCP und UDP?
sobes.tech KI
Antwort von AI
TCP - verbindungsorientiert, garantiert die Zustellung und Reihenfolge der Pakete. UDP - ohne Verbindungsaufbau, garantiert keine Zustellung oder Reihenfolge, aber schneller.
Hauptunterschiede:
| Merkmal | TCP | UDP |
|---|---|---|
| Orientierung | Mit Verbindungsaufbau | Ohne Verbindungsaufbau |
| Zuverlässigkeit | Hoch (garantiert die Zustellung) | Niedrig (garantiert die Zustellung nicht) |
| Reihenfolge | Garantiert | Nicht garantiert |
| Flusskontrolle | Ja | Nein |
| Fehlerkontrolle | Ja (Übertragung und Reihenfolge) | Nein (Basis-Checksumme) |
| Geschwindigkeit | Niedriger | Höher |
| Verwendung | HTTP, FTP, SSH | DNS, DHCP, Online-Spiele, Streaming |
Beispielcode zum Senden von Daten über TCP in Go:
package main
import (
"net"
"log"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8080") // TCP-Verbindung herstellen
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Verbindung schließen
_, err = conn.Write([]byte("Hello, TCP!")) // Daten senden
if err != nil {
log.Fatal(err)
}
}
Beispielcode zum Senden von Daten über UDP in Go:
package main
import (
"net"
"log"
)
func main() {
addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // UDP-Adresse definieren
if err != nil {
log.Fatal(err)
}
conn, err := net.DialUDP("udp", nil, addr) // "Verbindung" erstellen (ohne Sitzung)
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Socket schließen
_, err = conn.Write([]byte("Hello, UDP!")) // Daten senden
if err != nil {
log.Fatal(err)
}
}