ITED
bootcamp

Лекция 5.2 - Основы компьютерных сетей
Синтез по материалам уроков 1-5

Компьютерные сети

Актуальность

Эта лекция не повторяет уроки буквально, а связывает их в одну логическую историю. Мы начнем с вопроса "что такое сеть", затем шаг за шагом перейдем к моделям уровней, оборудованию, анализу трафика и прикладным протоколам.

  • Часть 1: фундамент и модели OSI/TCP-IP
  • Часть 2: оборудование, адресация, маршрутизация
  • Часть 3: Wireshark, HTTP, DNS, API и диагностика
Компьютерные сети

Что такое компьютерная сеть

Компьютерная сеть - это набор узлов и каналов связи, по которым передаются данные. Интернет является частным случаем: это крупнейшая сеть сетей, где независимые сегменты объединены общими протоколами.

  • Узлы: ПК, смартфоны, серверы, маршрутизаторы
  • Каналы: проводные, оптоволоконные, радиоканалы
  • Протоколы: общие правила для обмена сообщениями
Пример сегментов сети Wi-Fi и Ethernet

Рис.: разные сегменты сети на разных технологиях

Компьютерные сети

Как происходит обмен: клиент и сервер

Большинство сервисов в интернете работает по модели клиент-сервер. Клиент инициирует запрос, сервер возвращает ответ. Эта схема лежит в основе веба, почты, облаков и API.

  • Клиент инициирует коммуникацию
  • Сервер обрабатывает и отвечает
  • Один хост может выполнять обе роли в разных сценариях
Клиент-серверная схема

Рис.: схема "запрос - ответ" между клиентом и сервером

Компьютерные сети

Клиент-сервер и P2P: две архитектуры

Чтобы понять ограничения сети, важно различать не только протоколы, но и архитектуру приложения. Клиент-сервер удобен для централизованного управления, P2P лучше распределяет нагрузку между узлами.

  • Клиент-сервер: проще контроль, обновления, безопасность
  • P2P: выше устойчивость к отказу одного узла
  • Компромисс: часто используются гибридные модели
Компьютерные сети

С какими проблемами сталкиваются сети

Когда сеть становится большой, возникают системные вопросы: что делать при потерях пакетов, как делить канал между пользователями, как защитить данные и как сохранить качество для разных приложений.

  • Надежность: потери, дубли, нарушения порядка
  • Масштабируемость: рост узлов и маршрутов
  • QoS (Quality of Service, качество обслуживания): разные требования приложений
  • Безопасность: шифрование, аутентификация, целостность
Компьютерные сети

Надежность и маршрутизация в реальной сети

В реальной сети данные редко идут по идеальному прямому пути. При отказах и перегрузках сеть перестраивает маршрут, а транспортный уровень компенсирует потери и восстанавливает порядок данных.

  • Маршрут может меняться динамически
  • Повторная передача нужна при потерях
  • Сеть должна оставаться работоспособной при сбоях
Маршруты в составной сети

Рис.: несколько альтернативных путей в составной сети

Компьютерные сети

QoS (Quality of Service) и типы трафика

QoS (Quality of Service, "качество обслуживания") - это подход к управлению сетевыми ресурсами, чтобы разные классы трафика получали нужный уровень сервиса. Под телеком-сетями здесь понимаются сети операторов связи (телефонные, мобильные, магистральные), где исторически критично гарантировать качество голоса и видео. Позже те же принципы перенесли в IP-сети и стандартизовали через IETF (в том числе DiffServ, RFC 2475, 1998).

Смысл QoS в контексте нашего списка прост: приложения предъявляют разные требования, поэтому сеть не может одинаково обслуживать голос, видео и передачу файлов.

  • Голос и видео чувствительны к задержке и джиттеру
  • Файлы чувствительны к целостности и полноте доставки
  • QoS задает приоритеты и политику очередей для трафика
Компьютерные сети

Безопасность в сетях: что защищаем и от чего

После тем надежности и QoS логично перейти к защите: даже идеально доставленные данные бесполезны, если их может прочитать или подменить злоумышленник.

  • Шифрование защищает конфиденциальность данных
  • Проверка подлинности защищает от поддельных узлов
  • Контроль целостности выявляет изменения сообщения
  • TLS стал базовой защитой прикладного веб-трафика

Этот слайд задает мост к прикладному уровню: позже мы увидим, как безопасность проявляется в HTTP/HTTPS и инструментах анализа трафика.

Компьютерные сети

Почему используют уровневые модели

Чтобы управлять сложностью, сеть разделяют на уровни. Каждый уровень решает ограниченный набор задач и предоставляет сервис уровню выше. Это делает систему масштабируемой и заменяемой по частям.

  • Изоляция ответственности между уровнями
  • Упрощение проектирования и диагностики
  • Совместимость разных технологий на нижних уровнях
Компьютерные сети

Модель OSI: эталон для объяснения сети

Модель OSI (Open Systems Interconnection) состоит из 7 уровней и используется как универсальная карта сетевых функций. Она особенно полезна в обучении, проектировании и анализе проблем.

  • Верхние уровни: прикладная логика и представление данных
  • Средние уровни: транспорт и межсетевая доставка
  • Нижние уровни: канал и физическая передача сигналов
Модель OSI

Рис.: модель OSI и взаимодействие одноименных уровней

Компьютерные сети

Модель TCP/IP: практический стандарт Интернета

TCP/IP исторически сформировался в ARPANET и стал рабочей моделью интернета. В отличие от OSI, здесь 4 уровня - структура проще и ближе к реальной реализации в сетевом стеке ОС.

  • Прикладной уровень
  • Транспортный уровень
  • Уровень Интернет
  • Уровень сетевого доступа
Компьютерные сети

Соответствие TCP/IP и OSI

Здесь важно не "зубрить таблицу", а понимать эквивалент функций: OSI дает больше детализации, TCP/IP объединяет часть функций в более крупные уровни.

  • Прикладной TCP/IP соответствует трем уровням OSI (сеансовому, представления, прикладному)
  • Транспортный TCP/IP соответствует транспортному OSI
  • Интернет TCP/IP соответствует сетевому OSI
  • Сетевой доступ TCP/IP покрывает канальный и физический OSI
Сопоставление OSI и TCP-IP

Рис.: сопоставление уровней OSI и TCP/IP

Компьютерные сети

Инкапсуляция: как данные проходят стек

Когда приложение отправляет данные, каждый нижележащий уровень добавляет собственный заголовок. На принимающей стороне этот процесс идет в обратном порядке - заголовки снимаются последовательно.

  • Приложение формирует полезную нагрузку
  • Транспорт добавляет порты и служебные поля
  • IP добавляет адресацию и маршрутизацию
  • Канальный уровень готовит кадр для среды передачи
Стек протоколов TCP-IP

Рис.: уровни и протоколы в стеке TCP/IP

Компьютерные сети

Почему стандартизация критична

Без общих стандартов оборудование и ПО разных производителей не смогли бы полноценно взаимодействовать. Стандарты создают общий "язык" для протоколов, форматов и оборудования.

  • Де-юре стандарты принимаются формальными процедурами
  • Де-факто стандарты закрепляются массовой практикой
  • TCP/IP - исторический пример де-факто стандарта
Компьютерные сети

Организации стандартов: кто и за что отвечает

На этом слайде мы связываем названия организаций с практикой: где находится центр, как расшифровывается аббревиатура и какой блок технологий они регулируют.

  • ISO (International Organization for Standardization, Международная организация по стандартизации) - Женева, Швейцария; отвечает за разработку и публикацию международных стандартов и методологий в разных отраслях, включая ИТ и сетевые модели (например, подход OSI).
  • IEEE (Institute of Electrical and Electronics Engineers, Институт инженеров электротехники и электроники) - штаб-квартира в Нью-Йорке, США; отвечает за инженерные стандарты в электронике и сетях. Семейство IEEE 802 - это группа стандартов для LAN/MAN: Ethernet (802.3), Wi-Fi (802.11), PAN/Bluetooth-класс технологий (802.15) и другие.
  • IETF (Internet Engineering Task Force, Инженерная группа по разработке интернета) - распределенное международное сообщество; публикует RFC по интернет-протоколам (TCP, IP, HTTP, DNS).
  • W3C (World Wide Web Consortium, Консорциум Всемирной паутины) - исторически MIT/CERN/INRIA/Keio; ключевые веб-стандарты HTML, CSS, доступность и веб-API.
Компьютерные сети

RFC: техническая спецификация протоколов

Документы RFC (Request for Comments, "запрос на комментарии") публикуются через IETF и задают детальную семантику протоколов: поля заголовков, состояния, алгоритмы обработки ошибок.

  • RFC 793 - TCP
  • RFC 768 - UDP
  • RFC 791 - IP
  • RFC 9110 - актуальная семантика HTTP

Практический вывод: при споре "как должен работать протокол" инженеры идут в RFC.

Компьютерные сети

Оборудование сети: классификация по назначению

Этот слайд систематизирует оборудование, чтобы не было ощущения "набор устройств без логики". Мы связываем функцию, уровень TCP/IP, типичную стоимость и рабочую цель, а на следующем слайде разбираем различия на практических кейсах.

Устройство Уровень TCP/IP Назначение Типичный диапазон стоимости
Коммутатор (Switch) Сетевой доступ Коммутация кадров в одном сегменте Низкий - средний
Точка доступа Wi-Fi Сетевой доступ Подключение беспроводных клиентов Низкий - средний
Маршрутизатор (Router) Интернет Маршрутизация между подсетями Средний - высокий
Домашний роутер Интернет + сетевой доступ Комбинирует AP, switch, NAT, DHCP Низкий - средний
Схема домашней сети

Рис.: пример совмещенной домашней инфраструктуры

Компьютерные сети

Кейсы: коммутатор, точка доступа и роутер

Коммутатор (switch) нужен для объединения проводных устройств в один локальный сегмент (офис, аудитория, серверная). Он пересылает кадры по MAC-адресам и не маршрутизирует между подсетями.

Точка доступа Wi-Fi (AP) нужна для подключения беспроводных клиентов к локальной сети. В классическом сценарии AP расширяет существующую LAN и передает трафик дальше в коммутатор/роутер.

Домашний роутер отличается тем, что совмещает несколько ролей сразу: маршрутизатор, небольшой коммутатор и точку доступа, плюс сетевые сервисы (NAT/DHCP/firewall).

  • Коммутатор - когда портов не хватает и нужна проводная связность внутри LAN
  • Точка доступа - когда нужно покрытие Wi-Fi без замены текущего роутера
  • Домашний роутер - когда нужно "все в одном" для дома/малого офиса
Компьютерные сети

Домашний роутер как многослойное устройство

Домашний роутер часто воспринимают как "коробку с Wi-Fi", но с инженерной точки зрения это несколько устройств в одном корпусе.

  • Маршрутизация IP между LAN (Local Area Network, локальная сеть) и WAN (Wide Area Network, внешняя/глобальная сеть)
  • Коммутация кадров для проводных портов
  • Точка доступа для беспроводных клиентов
  • Сервисы NAT (трансляция частных адресов во внешний), DHCP (автовыдача IP-настроек), DNS-forwarding (пересылка DNS-запросов к внешним резолверам), firewall (фильтрация и блокировка нежелательного трафика)

Именно поэтому один бытовой роутер реализует сразу несколько функций разных уровней TCP/IP.

Компьютерные сети

MAC-адреса: больше, чем "48 бит"

MAC-адрес (Media Access Control) - это уникальный идентификатор сетевого интерфейса (сетевой карты) на канальном уровне, по которому устройство распознается внутри локальной сети. Его называют "аппаратным", потому что базовое значение обычно записывается производителем на заводе.

  • Стандартная длина 48 бит (6 байт), запись XX:XX:XX:XX:XX:XX
  • Первые 24 бита - префикс производителя (OUI)
  • Последние 24 бита - уникальная часть интерфейса
  • Используется в Ethernet и Wi-Fi для доставки кадров внутри локального сегмента
  • Важно: MAC можно подменить программно (MAC spoofing), но заводской MAC остается исходной аппаратной идентичностью интерфейса

Связь с предыдущим слайдом: коммутатор и точка доступа принимают решения о доставке именно по MAC.

Компьютерные сети

IP-адреса: адресация на уровне Интернета

В отличие от MAC, IP адрес обеспечивает межсетевую адресацию и маршрутизацию. Именно IP позволяет пакету пройти через цепочку разных сетей от клиента до удаленного сервера.

  • IPv4: адрес из 4 октетов (октет = 8 бит, число от 0 до 255), например 192.168.1.1
  • IPv6: расширенный формат для большого адресного пространства
  • IP не "привязан навсегда" к интерфейсу как MAC
  • Маршрутизаторы принимают решения по IP-заголовку
Компьютерные сети

Порты и сокеты

IP адрес определяет хост, а порт определяет процесс на этом хосте. В паре они формируют сокет - конечную точку сетевого соединения для конкретного приложения.

  • Диапазон портов: 1-65535
  • Серверные службы обычно закреплены за известными портами
  • Клиент чаще использует временный (ephemeral) порт
  • Это позволяет одному хосту держать много параллельных соединений
Порты у процессов на одном хосте

Рис.: разные клиентские процессы работают через разные порты

Компьютерные сети

Ключевые порты прикладных протоколов

Порты помогают быстро понять назначение трафика даже без полного анализа payload. Это не случайный набор чисел: well-known порты закрепляются и публикуются IANA (Internet Assigned Numbers Authority), а правила их регистрации и применения описаны в RFC (например, RFC 6335).

  • 80 - HTTP (веб без шифрования)
  • 443 - HTTPS (веб через TLS)
  • 53 - DNS (имена и IP)
  • 25 - SMTP (передача почты)
Компьютерные сети

Цепочка "DNS -> TCP -> HTTP" при открытии сайта

Теперь все предыдущие термины складываются в единый процесс. Браузер не может отправить HTTP-запрос, пока не узнает IP адрес по доменному имени.

  • DNS разрешает домен в IP
  • TCP устанавливает транспортное соединение
  • HTTP передает запрос и получает ответ
  • Браузер дополнительно загружает ресурсы страницы
Компьютерные сети

Wireshark: зачем он нужен инженеру

Wireshark показывает "сырой" сетевой обмен и делает его читаемым. Это позволяет доказательно отвечать на вопрос: где именно проблема - у клиента, в сети или на сервере.

  • Захват пакетов на выбранном интерфейсе
  • Декодирование протоколов по уровням
  • Фильтрация, поиск, экспорт полезных данных
Интерфейс Wireshark

Рис.: три базовые панели Wireshark

Компьютерные сети

Как читать панели Wireshark

  • Верхняя панель: список пакетов, время, источники, протоколы
  • Средняя панель: дерево полей выбранного пакета
  • Нижняя панель: байты в hex и ASCII

Практический прием: выберите конкретное поле в дереве и смотрите, какие байты подсветились в дампе. Так лучше понимается структура заголовков.

Компьютерные сети

Фильтрация: capture vs display

Здесь многие путаются, поэтому формулируем четко:

  • Capture filter - что записывать во время захвата (BPF)
  • Display filter - что показывать из уже захваченного
  • Display-фильтр гибче для анализа, capture-фильтр экономит объем данных

Пример пары: capture - tcp port 80, display - http или tcp.port == 80.

Компьютерные сети

Набор рабочих фильтров для практики

  • http.request - только HTTP-запросы
  • http.response - только HTTP-ответы
  • dns - DNS обмен
  • ip.addr == 192.168.1.1 - трафик конкретного хоста
  • tcp.port == 443 - HTTPS сессии по порту
Компьютерные сети

Разбор пакета и Follow Stream

Разбираем пакет по уровням: сначала Ethernet/Wi-Fi, затем IP, потом TCP/UDP и только после этого прикладной протокол. Для цельного просмотра диалога используем Follow TCP Stream.

  • Пакет - это не абстракция, а набор конкретных байтов
  • Следить нужно за полями src/dst, портами, flags, payload
  • Follow Stream собирает полный обмен одного соединения
Компьютерные сети

Почему в захвате "слишком много пакетов"

Фоновый трафик - нормальное состояние сети: ОС, сервисы и оборудование постоянно обмениваются служебными данными.

  • ARP (Address Resolution Protocol, сопоставляет IP и MAC), DHCP (Dynamic Host Configuration Protocol, автоматически выдает IP-настройки), mDNS (Multicast DNS, локальное разрешение имен без центрального DNS), LLMNR (Link-Local Multicast Name Resolution, локальное имя-разрешение в сегменте), ICMP (Internet Control Message Protocol, диагностика и служебные сообщения об ошибках)
  • Фоновые запросы приложений и обновлений
  • Сканирование и внешний сетевой шум

Вывод: сначала фильтруем трафик, потом делаем выводы.

Компьютерные сети

Прикладной уровень: зачем он нужен

Прикладной уровень связывает сетевую инфраструктуру с задачами пользователя и бизнеса. Именно здесь появляются смысловые операции: открыть страницу, отправить письмо, запросить API.

  • HTTP - веб-документы и API
  • DNS - имена и адреса
  • SMTP - почтовая доставка
Компьютерные сети

HTTP API: программный интерфейс поверх HTTP

API (Application Programming Interface) в веб-контексте - это интерфейс взаимодействия программ по протоколу HTTP. Клиент отправляет запросы к endpoint, сервер возвращает структурированные данные (обычно JSON).

  • Endpoint = метод + путь
  • Контракт API описывает параметры и формат ответов
  • Один и тот же backend используют web, mobile, интеграции
Компьютерные сети

CRUD и методы HTTP

REST-подход связывает операции CRUD с методами HTTP. Это не "магия", а согласованная инженерная практика для предсказуемого API.

  • GET - Read
  • POST - Create
  • PUT/PATCH - Update
  • DELETE - Delete
Компьютерные сети

HTTP статусы: как читать ответы сервера

Код ответа - это быстрая классификация результата. Правильная диагностика строится на связке: статус + заголовки + тело ответа.

  • 2xx - успех, 3xx - перенаправление
  • 4xx - проблема на стороне клиента
  • 5xx - проблема на стороне сервера
  • Частые коды: 200, 201, 400, 401, 403, 404, 500
Компьютерные сети

Postman и curl: два инструмента одной задачи

Postman удобен для ручной проверки и визуальной работы, curl - для терминала, автоматизации и скриптов. Инженер должен уметь и то, и другое.

  • Postman: коллекции, окружения, быстрый разбор ответов
  • curl: воспроизводимость, CI/CD, серверные сценарии
  • Ключи curl: -X, -H, -d, -i, -v, -o
Интерфейс Postman

Рис.: ручное тестирование endpoint в Postman

Компьютерные сети

Алгоритм диагностики: от сети к приложению

Финальная практическая мысль лекции: диагностика должна быть последовательной. Не начинаем с предположений, начинаем с наблюдаемых фактов и проверяем уровни по очереди.

  • Проверить доступность узла и DNS
  • Проверить соединение и порты
  • Проверить HTTP метод, URL, заголовки и body
  • Сравнить вывод Postman/curl/Wireshark
Компьютерные сети

Итоговая связка всей лекции

Мы прошли путь от базового понятия сети к прикладной инженерной практике. Ключевая связка: модель уровней объясняет архитектуру, адресация и оборудование обеспечивают доставку, анализатор трафика дает наблюдаемость, а API связывает сеть с задачами приложения.

  • Фундамент: архитектуры и уровни
  • Инфраструктура: MAC, IP, порты, оборудование
  • Наблюдаемость: Wireshark и фильтры
  • Прикладной результат: HTTP API и диагностика
Компьютерные сети

Вопросы и ответы

Теперь можно обсуждать не отдельные термины, а инженерные сценарии целиком: где возникает ошибка, какой уровень за это отвечает, как это проверить и каким инструментом подтвердить.

  • Какие из уровней сложнее всего в диагностике
  • Как правильно читать захваты Wireshark
  • Как проектировать понятные HTTP API
  • Какие темы углубить следующими