Junior
Koja je razlika između TCP i UDP protokola?
sobes.tech АИ
Одговор од АИ
TCP - оријентисан на везу, гарантује испоруку и редослед пакета. UDP - без успостављања везе, не гарантује испоруку и редослед, али је бржи.
Главне разлике:
| Карактеристика | TCP | UDP |
|---|---|---|
| Оријентација | Са успостављањем везе | Без успостављања везе |
| Поузданост | Висока (гарантује испоруку) | Ниска (не гарантује испоруку) |
| Редослед | Гарантован | Не гарантује |
| Контрола тока | Постоји | Нема |
| Контрола грешака | Постоји (пренос и редослед) | Нема (основна контролна сума) |
| Брзина | Нижа | Виша |
| Коришћење | HTTP, FTP, SSH | DNS, DHCP, онлајн игре, стриминг |
Пример кода за слање података преко TCP у Go:
package main
import (
"net"
"log"
)
func main() {
кон, грешка := net.Dial("tcp", "localhost:8080") // Успостављање TCP везе
ако грешка != nil {
лог.Fatal(грешка)
}
дефер кон.Close() // Гарантовање затварања везе
_, грешка = кон.Write([]byte("Hello, TCP!")) // Слање података
ако грешка != nil {
лог.Fatal(грешка)
}
}
Пример кода за слање података преко UDP у Go:
package main
import (
"net"
"log"
)
func main() {
адреса, грешка := net.ResolveUDPAddr("udp", "localhost:8081") // Одређивање UDP адресе
ако грешка != nil {
лог.Fatal(грешка)
}
кон, грешка := net.DialUDP("udp", nil, адреса) // Креирање "везе" UDP (без сесије)
ако грешка != nil {
лог.Fatal(грешка)
}
дефер кон.Close() // Затварање сокета
_, грешка = кон.Write([]byte("Hello, UDP!")) // Слање података
ако грешка != nil {
лог.Fatal(грешка)
}
}