Какие знаешь уровни сети

«Какие знаешь уровни сети» — вопрос из категории Сети, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В модели OSI (Open Systems Interconnection) выделяют 7 уровней:

  1. Физический (Physical) – передача битов по кабелю или беспроводной связи (например, Ethernet, Wi-Fi).
  2. Канальный (Data Link) – управление доступом к среде, обнаружение ошибок (MAC-адреса, Ethernet-фреймы).
  3. Сетевой (Network) – маршрутизация и логическая адресация (IP-адреса, протоколы IPv4/IPv6).
  4. Транспортный (Transport) – обеспечение надежной передачи данных (TCP, UDP).
  5. Сеансовый (Session) – управление сеансами связи (установка, поддержка, завершение).
  6. Представления (Presentation) – кодирование, шифрование, сжатие данных (JSON, XML, SSL/TLS).
  7. Прикладной (Application) – интерфейс для пользовательских приложений (HTTP, FTP, SMTP).

В реальных стеках (например, TCP/IP) уровни часто объединяются:

  • Физический + Канальный → Network Access
  • Сетевой → Internet
  • Транспортный → Transport
  • Прикладной → Application (объединяет OSI 5–7).

Пример в Go (TCP-клиент):

conn, err := net.Dial("tcp", "example.com:80") // Transport (TCP) + Network (IP)
if err != nil {
    log.Fatal(err)
}
defer conn.Close()
fmt.Fprintf(conn, "GET / HTTP/1.0rnrn") // Application (HTTP)