Сети передачи данных

Сеть передаёт пакеты между узлами через каналы, коммутаторы и маршрутизаторы. Для приложения важен не список оборудования, а свойства пути: задержка, пропускная способность, потери и изменение порядка.

Уровни

УровеньЗадачаПримеры понятий
каналдоставка кадров в одном сегментеMAC, Ethernet, Wi-Fi
сетьадресация и маршрут между сетямиIP, router
транспортобмен между процессамиTCP, UDP, порт
приложениеприкладной протоколHTTP, DNS

Инкапсуляция:

HTTP-сообщение -> TCP-сегмент -> IP-пакет -> Ethernet-кадр

Коммутация и маршрутизация

Коммутатор обычно пересылает кадры внутри канального сегмента по MAC-адресам. Маршрутизатор выбирает следующий участок пути между IP-сетями. NAT меняет адресное представление потока, но не заменяет firewall.

Характеристики

  • bandwidth — сколько данных можно передать за единицу времени;
  • latency — сколько занимает доставка;
  • jitter — разброс задержки;
  • packet loss — доля потерянных пакетов;
  • MTU — максимальный размер пакета на участке без фрагментации.

Высокая пропускная способность не гарантирует низкую задержку. Для короткого API-вызова важнее несколько сетевых раундов, для большого файла — ещё и полоса.

LAN, MAN, WAN

  • LAN охватывает локальную инфраструктуру с единым административным управлением;
  • MAN связывает площадки на масштабе города;
  • WAN соединяет удалённые сети через операторов и множество маршрутов.

Граница определяется не только расстоянием, но и владением инфраструктурой и характеристиками канала.

Разбор проблемы

имя -> IP -> маршрут -> TCP/TLS -> прикладной ответ

Проверяю по порядку:

  1. разрешается ли имя;
  2. достижим ли адрес и правильный ли маршрут;
  3. открыт ли порт;
  4. устанавливается ли защищённое соединение;
  5. отвечает ли приложение;
  6. где появляется задержка или потеря.

Связано: DNS, Http протокол, Принципы организации Интернет.

Самопроверка

  • Чем bandwidth отличается от latency?
  • Почему успешный DNS-запрос не доказывает доступность приложения?
  • Какие дополнительные проблемы появляются у TCP при потерях?