Junior
Kāda ir atšķirība starp TCP un UDP protokoliem?
sobes.tech AI
Atbilde no AI
TCP - orientēts uz savienojumu, garantē sūtījumu un kārtību. UDP - bez savienojuma izveides, nesolīja sūtījumu un kārtību, bet ir ātrāks:
Galvenās atšķirības:
| Zīme | TCP | UDP |
|---|---|---|
| Orientācija | Ar savienojuma izveidi | Bez savienojuma izveides |
| Uzticamība | Augsta (garantē sūtījumu) | Zema (nesolīja sūtījumu) |
| Kārtība | Garantēta | Nav garantēta |
| Plūsmas pārvaldība | Ir | Nav |
| Kļūdu kontrole | Ir (pārsūtīšana un kārtības kontrole) | Nav (pamatkontroles summa) |
| Ātrums | Zemāks | Augstāks |
| Lietošana | HTTP, FTP, SSH | DNS, DHCP, tiešsaistes spēles, straumēšana |
Piemēra kods TCP datu sūtīšanai Go:
package main
import (
"net"
"log"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8080") // TCP savienojuma izveide
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Savienojuma aizvēršana
_, err = conn.Write([]byte("Hello, TCP!")) // Datu sūtīšana
if err != nil {
log.Fatal(err)
}
}
UDP datu sūtīšanai Go:
package main
import (
"net"
"log"
)
func main() {
addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // UDP adreses noteikšana
if err != nil {
log.Fatal(err)
}
conn, err := net.DialUDP("udp", nil, addr) // UDP "savienojums" (bez sesijas izveides)
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Soketa aizvēršana
_, err = conn.Write([]byte("Hello, UDP!")) // Datu sūtīšana
if err != nil {
log.Fatal(err)
}
}