Назад к вопросам
Middle+
2
Чем TCP отличается от UDP? Какие кейсы использования?
Компании, где спрашивали
MAX LTD Group
Ответ от нейросети
sobes.tech AI
TCP (Transmission Control Protocol) и UDP (User Datagram Protocol) — это два основных протокола транспортного уровня в сети.
Отличия:
- Надежность: TCP обеспечивает надежную доставку данных, устанавливая соединение, подтверждая получение пакетов и повторно отправляя потерянные. UDP — без установления соединения и без подтверждений, данные могут теряться.
- Порядок доставки: TCP гарантирует порядок доставки пакетов, UDP — нет.
- Скорость: UDP быстрее за счёт отсутствия контроля и подтверждений.
- Использование ресурсов: TCP требует больше ресурсов из-за управления соединением и состоянием.
Кейсы использования:
- TCP: веб-серверы (HTTP/HTTPS), базы данных, электронная почта — там, где важна надежность и целостность данных.
- UDP: стриминг видео/аудио, онлайн-игры, VoIP — где важна скорость и задержка, а потеря некоторых пакетов допустима.
Пример на Go для TCP-сервера:
ln, err := net.Listen("tcp", ":8080")
if err != nil {
log.Fatal(err)
}
for {
conn, err := ln.Accept()
if err != nil {
continue
}
go handleConnection(conn)
}
Для UDP:
addr, err := net.ResolveUDPAddr("udp", ":8080")
conn, err := net.ListenUDP("udp", addr)
buf := make([]byte, 1024)
for {
n, addr, err := conn.ReadFromUDP(buf)
// обработка данных
}