Junior
Mis vahe on TCP ja UDP protokollidel?
sobes.tech AI
Vastus AI-lt
TCP - ühenduse suunatud, tagab pakettide kohaletoimetamise ja järjekorra. UDP - ilma ühenduse loomata, ei taga kohaletoimetamist ja järjekorda, kuid on kiirem:
Peamised erinevused:
| Tunnus | TCP | UDP |
|---|---|---|
| Orientatsioon | Ühenduse loomisega | Ilma ühenduse loomata |
| Usaldusväärsus | Kõrge (tagab kohaletoimetamise) | Madal (ei taga kohaletoimetamist) |
| Järjekord | Tagatud | Ei taga |
| Voogude juhtimine | On | Ei ole |
| Vead kontrollis | On (ülekanne ja järjekorra kontroll) | Ei ole (põhikontrollsumma) |
| Kiirus | Madalam | Kõrgem |
| Kasutus | HTTP, FTP, SSH | DNS, DHCP, online-mängud, voogedastus |
Näidiskood TCP andmete saatmiseks Go keeles:
package main
import (
"net"
"log"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8080") // TCP ühenduse loomine
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Ühenduse sulgemine
_, err = conn.Write([]byte("Hello, TCP!")) // Andmete saatmine
if err != nil {
log.Fatal(err)
}
}
UDP andmete saatmiseks Go keeles:
package main
import (
"net"
"log"
)
func main() {
addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // UDP aadressi määramine
if err != nil {
log.Fatal(err)
}
conn, err := net.DialUDP("udp", nil, addr) // UDP "ühendus" (ilma sessiooni loomata)
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Sokeidi sulgemine
_, err = conn.Write([]byte("Hello, UDP!")) // Andmete saatmine
if err != nil {
log.Fatal(err)
}
}