Sobes.tech
Назад к вопросам
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)
    // обработка данных
}