1. Основы сетей: как устроен интернет и модели OSI и TCP/IP
Основы сетей: как устроен интернет и модели OSI и TCP/IP
Интернет — это не абстрактное облако, а глобальная физическая инфраструктура, состоящая из миллионов соединенных между собой компьютеров, серверов, маршрутизаторов и километров оптоволоконных кабелей, проложенных по дну океанов. Главная задача этой огромной сети — надежно и быстро передавать информацию от одной точки к другой.
Чтобы данные могли успешно путешествовать между устройствами разных производителей и с разными операционными системами, инженеры разработали единые правила общения. Эти правила называются сетевыми протоколами.
> Сетевой протокол — это стандартизированный набор правил и соглашений, который определяет, как устройства должны форматировать, отправлять и принимать данные, чтобы понимать друг друга.
Как данные передаются по сети: пакетная коммутация
Когда вы отправляете фотографию другу в мессенджере, она не летит по кабелю целиком. Сеть использует принцип пакетной коммутации. Файл разбивается на множество мелких фрагментов — пакетов. Каждый пакет получает служебную информацию: адрес отправителя, адрес получателя и свой порядковый номер.
Например, если вы отправляете файл размером 15 мегабайт, а максимальный размер одного пакета в сети составляет 1500 байт, то ваш файл будет разделен примерно на 10 000 отдельных пакетов. Они могут добираться до получателя разными маршрутами, а на конечном устройстве снова соберутся в единую фотографию.
Для расчета идеального времени передачи данных по сети используется простая формула:
где — время передачи в секундах, — объем передаваемых данных в мегабитах, — пропускная способность канала в мегабитах в секунду.
Если размер файла составляет 800 мегабит (это 100 мегабайт), а скорость вашего домашнего интернета равна 100 мегабит в секунду, то идеальное время передачи составит 8 секунд. На практике это время всегда немного больше из-за служебного трафика и задержек на промежуточных узлах.
Эталонная сетевая модель OSI
Чтобы упорядочить хаос из тысяч различных протоколов и устройств, в 1984 году была создана сетевая модель OSI (Open Systems Interconnection). Это теоретическая схема, которая разбивает весь процесс передачи данных на 7 логических шагов или уровней. Каждый уровень решает только свою узкую задачу и передает результат соседнему уровню.
Две системы адресации: 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 в один Прикладной уровень, так как на практике программы часто сами занимаются и шифрованием, и управлением сеансами. Нижние уровни также были объединены, поскольку сетевая карта компьютера обычно берет на себя функции и физического, и канального уровней одновременно.
Инкапсуляция: принцип матрешки
Чтобы понять, как уровни взаимодействуют между собой, нужно рассмотреть процесс инкапсуляции. Это процесс добавления служебных заголовков к данным при их движении сверху вниз по сетевой модели.
Представьте, что вы пишете бумажное письмо.
Когда данные достигают получателя, происходит обратный процесс — декапсуляция. Компьютер-получатель снимает заголовки один за другим, начиная с нижнего уровня, пока не доберется до исходного сообщения.
Понимание этих уровней — это фундамент сетевой инженерии. Если у пользователя не открывается сайт, инженер не ищет проблему наугад. Он проверяет сеть по уровням: сначала смотрит, подключен ли кабель (уровень 1), затем проверяет получение IP-адреса (уровень 3), доступность порта (уровень 4) и, наконец, работу самого веб-сервера (уровень 7).