В прошлой статье мы познакомились с моделью OSI — удобной теоретической схемой, на которой объясняют сетевые взаимодействия в вузах.
Компьютерные сети от А до Я. Часть 2 — Модель OSI простым языком
Однако, как это бывает в жизни, теория и практика разошлись. Настоящий интернет работает не на OSI, а на другом подходе — стекe TCP/IP. Сегодня постараемся разобраться в нём спокойно, последовательно и понятным языком.
Чтобы лучше почувствовать контекст, вернёмся в 70-е годы. В то время исследовательские центры, университеты и военные лаборатории США активно обмениваются данными. Но есть проблема: оборудования много, оно разное, стандарты несовместимы. Требовалась технология, которая могла бы связать всё это в единое пространство — и при этом пережить отказ отдельных узлов. Представьте сеть дорог, где, если мост разрушен, транспорт всё равно находит другой путь. Именно такой устойчивая и гибкая сеть была целью.
В 1974 году два инженера — Винтон Серф и Роберт Кан — предложили архитектуру обмена данными, которая получила название TCP/IP. Уже к 1983 году к ней перешла ARPANET — прародитель современного интернета. С этого момента началась эпоха, которую мы сегодня воспринимаем как данность: сайты, почта, видео, голос, игры — всё работает на принципах TCP/IP.
Что такое “стек” протоколов?
Стек — это набор уровней, каждый из которых решает свою задачу, не влезая в работу других.
Похож на организацию крупной компании:
- отдел логистики,
- бухгалтерия,
- отдел доставки,
- отдел обслуживания.
Они взаимодействуют, но каждый занимается своим.
Структура стека TCP/IP
Классически стек делят на четыре уровня:
- Канальный (Link Layer)
- Сетевой (Internet Layer)
- Транспортный (Transport Layer)
- Прикладной (Application Layer)
Все уровни работают друг над другом, образуя логическую “пирамиду”. Разберём каждый подробно.
Канальный уровень (Link Layer)
На самом нижнем «слое» находится физическая возможность передать данные. Это может быть витая пара, беспроводной сигнал, оптическое волокно — неважно. Этот слой как городская инфраструктура: дороги, тротуары, туннели. Без него движение невозможно. Он же следит за тем, чтобы пакеты данных не «говорили» одновременно и не мешали друг другу, как машины на перекрёстке.
Обеспечивает передачу данных между устройствами в одной локальной сети. На этом уровне работают драйверы сетевых карт, Ethernet, Wi-Fi.
Что решает:
- определяет, кто и когда может говорить в сети,
- проверяет целостность кадров,
- упаковывает данные так, чтобы устройство-получатель их корректно понял.
Формат данных: кадры (frames)
Сетевой уровень (Internet Layer)
Чуть выше располагается логика маршрутизации — туда относится протокол IP. Его единственная задача: определить, куда отправить данные. IP-адрес похож на почтовый индекс и номер дома. Благодаря ему сеть знает, куда направить пакет, даже если путь проходит через десятки различных устройств в разных странах. Если на каком-то участке случился сбой, пакеты спокойно пойдут обходным маршрутом. Отсюда — удивительная живучесть интернета.
Отвечает за путь данных от отправителя к получателю, даже если они находятся в разных городах и странах.
Главный протокол здесь — IP.
Задачи:
- назначение IP-адресов,
- выбор маршрута,
- фрагментация пакетов.
Формат данных: пакеты (packets)
Транспортный уровень (Transport Layer)
Что делает:
Обеспечивает контроль доставки данных между приложениями.
TCP (Transmission Control Protocol)
- следит, чтобы данные пришли по порядку,
- повторно отправляет потерянные пакеты,
- сообщает об успешной доставке.
Просто доставить коробку мало: нужно убедиться, что внутри ничего не потерялось и не перепуталось. Этой задачей занимается протокол TCP. Он следит, чтобы данные пришли строго в том порядке, в котором отправлены. Если по пути что-то потерялось (а это случается постоянно), TCP аккуратно запросит недостающие фрагменты. Представьте себе курьера, который сравнивает содержимое посылки с упаковочным листом и не уходит, пока всё не совпадёт — это очень надёжно, но чуть медленнее.
UDP (User Datagram Protocol)
- без подтверждений,
- быстрее,
- годится для стримов, звонков, игр.
Есть и более лёгкий вариант — протокол UDP. Он не подтверждает доставку и не проверяет порядок. Идеален для стримов, звонков, онлайн-игр — там важнее скорость, чем абсолютная точность. Если пару кадров видео потерять — никто не заметит, главное чтобы картинка не зависала на секунды.
Прикладной уровень (Application Layer)
Что делает:
Здесь работают приложения: браузеры, мессенджеры, почтовые клиенты.
На самом верхнем уровне — прикладные протоколы, с которыми мы сталкиваемся ежедневно, даже не осознавая этого. Запрашивая страницу в браузере, вы используете HTTP. Получая письмо — SMTP. Загружая файл — FTP. А когда вы вводите адрес сайта буквами, а не цифрами, помогает DNS — огромная распределённая «телефонная книга», переводящая имена в IP-адреса.
На этом уровне живут протоколы:
- HTTP / HTTPS — веб-страницы
- SMTP — почта
- FTP — передача файлов
- DNS — “телефонная книга” интернета
Когда мы смотрим на стек TCP/IP целиком, становится ясно, почему модель OSI не прижилась. Она слишком сложна, слишком академична и требовала изменений от производителей оборудования. TCP/IP, наоборот, вырос из практики: инженеры решали задачи, возникавшие «здесь и сейчас». Просто, гибко, надёжно — именно это и нужно было интернету.
Интересно, что эта модель продолжает работать уже более сорока лет и до сих пор масштабируется до миллиардов устройств. Но чтобы она выглядела такой простой снаружи, внутри трудятся десятки вспомогательных механизмов: ARP узнаёт физические адреса устройств в локальной сети, DHCP автоматически выдаёт сетевые параметры, NAT позволяет скрывать множество устройств за одним публичным адресом, а DNS ежедневно отвечает на триллионы запросов. Всё это — темы, заслуживающие отдельных подробных рассказов.
И напоследок небольшой, но важный факт. В профессиональной среде инженеры действительно мыслят уровнями TCP/IP, а модель OSI используют скорее для объяснений и обучения. В реальных сетях победила практичность.