Junior
Mi a különbség a TCP és az UDP protokollok között?
sobes.tech MI
Válasz az MI-től
TCP - kapcsolatorientált, garantálja a csomagok kézbesítését és sorrendjét. UDP - kapcsolat nélküli, nem garantálja a kézbesítést vagy a sorrendet, de gyorsabb.
Fő különbségek:
| Jellemző | TCP | UDP |
|---|---|---|
| Orientáció | Kapcsolat létrehozásával | Kapcsolat nélkül |
| Megbízhatóság | Magas (garantálja a kézbesítést) | Alacsony (nem garantálja a kézbesítést) |
| Sorrend | Garantált | Nem garantált |
| Áramlásvezérlés | Van | Nincs |
| Hibakezelés | Van (átvitel és sorrend) | Nincs (alap ellenőrző összeg) |
| Sebesség | Alacsonyabb | Magasabb |
| Használat | HTTP, FTP, SSH | DNS, DHCP, online játékok, streaming |
Példa kód TCP adatküldéshez Go nyelven:
package main
import (
"net"
"log"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8080") // TCP kapcsolat létesítése
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Kapcsolat bezárásának garantálása
_, err = conn.Write([]byte("Hello, TCP!")) // Adatok küldése
if err != nil {
log.Fatal(err)
}
}
Példa kód UDP adatküldéshez Go nyelven:
package main
import (
"net"
"log"
)
func main() {
addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // UDP cím meghatározása
if err != nil {
log.Fatal(err)
}
conn, err := net.DialUDP("udp", nil, addr) // "kapcsolat" létrehozása (session nélkül)
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Socket bezárása
_, err = conn.Write([]byte("Hello, UDP!")) // Adatok küldése
if err != nil {
log.Fatal(err)
}
}