Back to questions
OZON
Middle
6
Что такое TCP и UDP, в чём разница?
Companies where asked
Answer from AI
sobes.tech AI
TCP (Transmission Control Protocol) и UDP (User Datagram Protocol) — это протоколы транспортного уровня, которые используются для передачи данных по сети.
TCP:
- Надёжный, ориентирован на соединение.
- Гарантирует доставку данных в правильном порядке.
- Использует подтверждения (ACK), повторную передачу потерянных пакетов.
- Подходит для приложений, где важна целостность данных (например, HTTP, FTP).
UDP:
- Без установления соединения, ненадёжный.
- Не гарантирует доставку или порядок пакетов.
- Меньшая задержка и накладные расходы.
- Используется там, где важна скорость и допускаются потери (например, стриминг, онлайн-игры, DNS).
Пример на Go для создания UDP-сервера:
package main
import (
"fmt"
"net"
)
func main() {
addr := net.UDPAddr{
Port: 12345,
IP: net.ParseIP("0.0.0.0"),
}
conn, err := net.ListenUDP("udp", &addr)
if err != nil {
panic(err)
}
defer conn.Close()
buf := make([]byte, 1024)
for {
n, clientAddr, err := conn.ReadFromUDP(buf)
if err != nil {
fmt.Println("Error:", err)
continue
}
fmt.Printf("Received %s from %s\n", string(buf[:n]), clientAddr)
}
}