Sobes.tech
Back to questions
Middle
6

Что такое TCP и UDP, в чём разница?

Companies where asked
OZONOZON

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)
    }
}