Сетевая инженерия с нуля: интернет, маршрутизация и VPN

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

1. Основы сетей: как устроен интернет и модели OSI и TCP/IP

Основы сетей: как устроен интернет и модели OSI и TCP/IP

Интернет — это не абстрактное облако, а глобальная физическая инфраструктура, состоящая из миллионов соединенных между собой компьютеров, серверов, маршрутизаторов и километров оптоволоконных кабелей, проложенных по дну океанов. Главная задача этой огромной сети — надежно и быстро передавать информацию от одной точки к другой.

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

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

Как данные передаются по сети: пакетная коммутация

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

Например, если вы отправляете файл размером 15 мегабайт, а максимальный размер одного пакета в сети составляет 1500 байт, то ваш файл будет разделен примерно на 10 000 отдельных пакетов. Они могут добираться до получателя разными маршрутами, а на конечном устройстве снова соберутся в единую фотографию.

Для расчета идеального времени передачи данных по сети используется простая формула:

где — время передачи в секундах, — объем передаваемых данных в мегабитах, — пропускная способность канала в мегабитах в секунду.

Если размер файла составляет 800 мегабит (это 100 мегабайт), а скорость вашего домашнего интернета равна 100 мегабит в секунду, то идеальное время передачи составит 8 секунд. На практике это время всегда немного больше из-за служебного трафика и задержек на промежуточных узлах.

Эталонная сетевая модель OSI

Чтобы упорядочить хаос из тысяч различных протоколов и устройств, в 1984 году была создана сетевая модель OSI (Open Systems Interconnection). Это теоретическая схема, которая разбивает весь процесс передачи данных на 7 логических шагов или уровней. Каждый уровень решает только свою узкую задачу и передает результат соседнему уровню.

  • Физический уровень (Physical). Отвечает за передачу сырых битов (нулей и единиц) по физической среде: медному кабелю, оптоволокну или радиоволнам (Wi-Fi). Здесь работают кабели, коннекторы и сетевые адаптеры.
  • Канальный уровень (Data Link). Организует биты в кадры и проверяет их на ошибки. На этом уровне устройства общаются внутри одной локальной сети, используя физические MAC-адреса. Главное устройство здесь — коммутатор.
  • Сетевой уровень (Network). Отвечает за маршрутизацию данных между разными сетями. Здесь появляются логические IP-адреса. Главное устройство — маршрутизатор (роутер), который ищет оптимальный путь для пакета через весь интернет.
  • Транспортный уровень (Transport). Обеспечивает надежную доставку данных от приложения к приложению. Здесь работают два главных протокола: TCP и UDP.
  • Сеансовый уровень (Session). Управляет сеансами связи: устанавливает, поддерживает и разрывает соединение между приложениями.
  • Уровень представления (Presentation). Работает как переводчик. Он кодирует, сжимает и шифрует данные, чтобы они были понятны принимающей стороне.
  • Прикладной уровень (Application). Это интерфейс, с которым взаимодействуют программы пользователя. Здесь работают протоколы веб-страниц (HTTP/HTTPS), электронной почты и передачи файлов.
  • Две системы адресации: MAC и IP

    Часто возникает вопрос: зачем компьютерам два разных адреса? Почему нельзя обойтись только MAC-адресом или только IP-адресом?

    MAC-адрес — это физический идентификатор, который вшивается в сетевую карту на заводе. Он уникален для каждого устройства в мире. Однако MAC-адреса не имеют иерархии. Если бы интернет работал только на них, маршрутизаторам пришлось бы хранить таблицу с миллиардами записей, чтобы знать, где находится каждое конкретное устройство. Это технически невозможно.

    IP-адрес — это логический адрес, который выдается устройству при подключении к сети. Он похож на почтовый адрес с указанием страны, города и улицы. IP-адреса иерархичны и позволяют маршрутизаторам легко понимать, в какую часть света нужно отправить пакет данных.

    Пример взаимодействия: когда ваш компьютер хочет отправить данные на сервер, он использует IP-адрес для прокладки глобального маршрута через весь интернет. Но когда пакет достигает вашей домашней сети (вашего Wi-Fi роутера), роутер использует MAC-адрес вашего смартфона или ноутбука, чтобы передать данные на конкретное физическое устройство в пределах одной комнаты.

    Транспортный уровень: TCP против UDP

    На Транспортном уровне (L4) выбор между протоколами TCP и UDP критически важен для работы приложений.

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

    Протокол UDP работает как радиовещание: он просто отправляет данные с максимальной скоростью. При просмотре прямой трансляции футбольного матча потеря одного пакета приведет лишь к секундному искажению картинки на экране. Запрашивать этот пакет повторно нет смысла — момент игры уже прошел.

    Практическая модель TCP/IP

    Модель OSI идеальна для обучения, но в реальном мире интернет построен на другой, более компактной архитектуре — модели TCP/IP. Она была разработана Министерством обороны США еще до появления OSI и состоит всего из 4 уровней.

    | Уровень TCP/IP | Аналог в модели OSI | Основные протоколы | Оборудование | |---|---|---|---| | 4. Прикладной | Прикладной, Представления, Сеансовый | HTTP, DNS, SMTP, FTP | ПК, Серверы | | 3. Транспортный | Транспортный | TCP, UDP | ПК, Серверы | | 2. Межсетевой | Сетевой | IP, ICMP | Маршрутизаторы | | 1. Сетевых интерфейсов | Канальный, Физический | Ethernet, Wi-Fi | Коммутаторы, Кабели |

    Модель TCP/IP объединила верхние уровни OSI в один Прикладной уровень, так как на практике программы часто сами занимаются и шифрованием, и управлением сеансами. Нижние уровни также были объединены, поскольку сетевая карта компьютера обычно берет на себя функции и физического, и канального уровней одновременно.

    Инкапсуляция: принцип матрешки

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

    Представьте, что вы пишете бумажное письмо.

  • Само письмо — это ваши данные (Прикладной уровень).
  • Вы кладете его в конверт и пишете имя получателя — это добавление порта (Транспортный уровень).
  • Вы относите конверт на почту, где на него клеят марку с индексом города — это добавление IP-адреса (Сетевой уровень).
  • Почта грузит письмо в контейнер для перевозки на конкретном грузовике — это добавление MAC-адреса (Канальный уровень).
  • Грузовик едет по трассе — это передача битов по кабелю (Физический уровень).
  • Когда данные достигают получателя, происходит обратный процесс — декапсуляция. Компьютер-получатель снимает заголовки один за другим, начиная с нижнего уровня, пока не доберется до исходного сообщения.

    Понимание этих уровней — это фундамент сетевой инженерии. Если у пользователя не открывается сайт, инженер не ищет проблему наугад. Он проверяет сеть по уровням: сначала смотрит, подключен ли кабель (уровень 1), затем проверяет получение IP-адреса (уровень 3), доступность порта (уровень 4) и, наконец, работу самого веб-сервера (уровень 7).