
Полная версия
Мир на связи: Как устроены вычислительные сети и передаются данные

Максим Рубин
Мир на связи: Как устроены вычислительные сети и передаются данные
Мир на связи: Как устроены вычислительные сети и передаются данные
Максим Рубин
Зачем нужны сети: устройства, узлы, каналы связи и путь от сообщения к пакету
Вечером Лена стоит на перроне и фотографирует первый снег: белые хлопья кружатся в свете фонаря, а на заднем плане уже темнеет город. Она открывает мессенджер, выбирает папу и нажимает «Отправить». На экране появляется фотография с маленьким вращающимся кружком. Лена убирает телефон в карман, достаёт его снова через минуту — кружок всё ещё на месте. Потом появляется короткое сообщение: «Не удалось отправить».
Папа ждёт фотографию дома. У него включён телефон, интернет работает, приложение открыто. И всё же снимок пока не у него. Между нажатием кнопки и появлением картинки лежит путь, которого не видно на экране: от приложения на телефоне Лены через беспроводное соединение и сети операторов к компьютерам мессенджера, а затем — к устройству папы.
Этот путь не похож на волшебную трубу, по которой сообщение беспрепятственно течёт из одного телефона в другой. Скорее, это цепочка дорог, перекрёстков и почтовых сортировочных центров. У каждого участка свои устройства, свои правила и свои возможные задержки. Чтобы понять, что случилось с фотографией, начнём с участников этой истории.
Кто участвует в передаче
Первый участник — отправитель, точнее, устройство отправителя. Телефон Лены не просто «показывает интернет». Он запускает приложения, хранит фотографию, обрабатывает её и передаёт данные другим устройствам.
Второй участник — получатель: телефон папы и приложение, в котором он должен увидеть снимок. Но в обычном мессенджере это не обязательно означает, что телефон Лены напрямую связывается с телефоном папы. Часто фотография сначала отправляется на сервер сервиса. Сервер сохраняет её и сообщает приложению папы, что появилось новое сообщение. Телефон папы может получить снимок сразу или позже — например, когда снова подключится к интернету.
Сервер в этой истории — не загадочная «облачная» пустота, а компьютер или группа компьютеров в центре обработки данных. Они принимают запросы, обрабатывают их и помогают приложениям обмениваться сообщениями. Пользователь может не знать, где физически находится такой центр. Для работы сети достаточно, чтобы устройства могли найти нужную службу и передать ей данные.
Телефоны, серверы, ноутбуки, маршрутизаторы, коммутаторы, сетевые принтеры и многие другие устройства, участвующие в обмене, называют узлами. Термин широкий: узел может создавать данные, принимать их, хранить или пересылать дальше. Телефон Лены и сервер мессенджера — узлы. Маршрутизатор, который направляет трафик в другую сеть, — тоже узел, хотя пользователь с ним обычно не разговаривает.
Узлы соединяются посредством каналов связи. Каналом может быть медный провод, оптоволокно, радиосвязь Wi‑Fi или мобильная сеть. Канал — это участок, по которому могут перемещаться сигналы. Сам по себе он не решает, кому именно адресованы данные и что с ними делать: для этого нужны устройства и правила.
А совокупность соединённых узлов и каналов, которые могут обмениваться данными, — это сеть. Домашняя сеть объединяет, например, телефоны, ноутбуки и маршрутизатор. Интернет соединяет множество отдельных сетей по всему миру. Поэтому интернет точнее представлять не одной гигантской сетью с единым хозяином, а «сетью сетей».
От телефона — к ближайшей сети
Предположим, телефон Лены подключён к домашнему или вокзальному Wi‑Fi. Он передаёт данные по радиоканалу ближайшей точке доступа. Часто точка доступа встроена в маршрутизатор, хотя это не обязательное устройство одно и то же.
Точка доступа связывает беспроводные устройства с локальной сетью. Маршрутизатор, в свою очередь, помогает передавать данные между разными сетями: например, из домашней или вокзальной сети — в сеть интернет-провайдера. Если Лена пользуется мобильным интернетом, роль ближайшей точки связи играет базовая станция оператора. Дальше данные всё равно попадут в сеть оператора и пойдут к другим сетям.
Эти различия полезны при поиске неполадки. Если телефон не может подключиться к Wi‑Fi, проблема может быть в радиосоединении или настройках точки доступа. Если Wi‑Fi подключён, но сайты не открываются, беспроводной участок может работать исправно, а сбой находиться дальше — например, в маршрутизаторе или соединении провайдера. Значок Wi‑Fi показывает наличие одного соединения, а не обещает, что весь путь до нужного сервера доступен.
Путь редко бывает прямым. Данные могут пройти через несколько маршрутизаторов и сетей, прежде чем достигнут сервиса. Каждый маршрутизатор рассматривает адрес назначения и выбирает, куда передать пакет дальше. Он не обязан знать весь маршрут целиком: обычно ему достаточно решить, как отправить данные на следующий участок.
Правила, без которых узлы не договорятся
Представьте, что Лена отправляет посылку, но на ней нет адреса, а служба доставки не договорилась, какой размер коробок принимать и что делать с повреждённой упаковкой. Даже отличная дорога тут не поможет. В сети похожую роль играют протоколы — согласованные правила обмена данными.
Протокол определяет, например, как представить адрес, как оформить сообщение, когда считать его полученным и что предпринять при ошибке. Правил много, потому что задачи разные. Одни протоколы помогают устройствам передавать данные по локальному каналу, другие — направлять их между сетями, третьи — организуют надёжный обмен, а протоколы прикладного уровня определяют, как приложения понимают содержимое сообщений.
Важно, что два устройства могут быть произведены разными компаниями и работать на разных операционных системах. Если они придерживаются совместимых протоколов, они всё равно смогут обмениваться данными. Это похоже на общий язык и общий формат письма: отправитель и получатель не обязаны быть знакомы лично, но должны понимать, как читать адрес и где искать текст.
Приложение Лены обычно обращается к службе мессенджера по понятному имени — например, имени сайта или сервиса. Система доменных имён DNS помогает найти соответствующий сетевой адрес. Затем сетевой протокол IP использует адрес назначения, чтобы направлять данные между сетями. На устройстве обмен связывается также с нужным приложением при помощи номера порта: условно говоря, адрес указывает на нужное здание, а порт — на нужную дверь в нём.
На локальном участке действуют и свои адреса. Например, Wi‑Fi и Ethernet используют адреса, необходимые для доставки данных в пределах текущего канала или локальной сети. Поэтому «адрес устройства» — не всегда один универсальный номер, который сопровождает сообщение от начала до конца. Разные уровни сети используют разные адреса для разных задач.
Как фотография становится данными для сети
Для Лены фотография — картинка на экране. Для телефона это последовательность байтов: чисел, записанных в определённом порядке. Фотография уже может быть сжата в формате вроде JPEG или HEIF, чтобы занимать меньше места. Приложение может дополнить её служебной информацией: например, указать, в каком сообщении она отправляется.
Но целая фотография может быть слишком велика, чтобы передать её за один раз. Поэтому данные делят на части. Важно не представлять, будто существует универсальный способ разрезать каждое сообщение на одинаковые «кусочки фотографии»: приложение, транспортный протокол и сетевой уровень решают связанные, но не одинаковые задачи. Приложение может загружать файл блоками, транспортный уровень передаёт поток или отдельные датаграммы, а сетевой уровень оформляет данные в IP-пакеты. В повседневном объяснении словом пакет часто называют порцию данных с адресной и служебной информацией.
У пакета есть полезная нагрузка — часть передаваемых данных, — и заголовок с информацией, которая помогает его доставлять и обрабатывать. Заголовок может указывать адреса, тип протокола и другие параметры. На каждом конкретном участке передачи данные дополнительно оформляются так, как требует используемый канал. Например, в Wi‑Fi по радиоканалу передаются кадры. Упрощённо говоря, пакет путешествует внутри кадра, предназначенного для ближайшего участка, а затем на другом участке может быть помещён в кадр другого типа.
Здесь возникает важный принцип: большое сообщение обменивается не обязательно как одна неделимая посылка. Оно может быть передано многими порциями. Если одна из них задержалась или потерялась, это не всегда означает, что придётся отправлять заново всё сообщение. Механизм восстановления зависит от используемых протоколов и приложения.
Часто транспортный протокол, например TCP, помогает обнаруживать потери и повторно передавать недостающие данные, а также собирать поток в правильном порядке. Другие способы передачи, например UDP, сами по себе не обещают доставку и порядок; при необходимости такие функции реализуются выше. Протокол QUIC, который применяется многими современными сервисами, использует UDP как основу, но добавляет собственные механизмы надёжной передачи. Выбор зависит от задач приложения.
Сетевой протокол IP сам по себе не обещает, что каждый пакет непременно дойдёт, что он придёт вовремя или что все части прибудут в нужном порядке. Его часто описывают как систему передачи «по возможности»: сети стараются переслать пакет дальше, но перегрузка, обрыв связи или неисправность могут помешать. Надёжность, если она нужна, обеспечивают другие уровни и само приложение.
Почему пакеты могут задерживаться и менять путь
Пакет не едет по сети в отдельной герметичной полосе. Каналы связи делят между множеством пользователей: одновременно могут загружаться страницы, отправляться видео и обновляться приложения. Когда данных много, маршрутизаторы ставят их в очередь. Как на загруженном перекрёстке, ожидание бывает коротким или заметным.
Кроме перегрузки, встречаются помехи в радиоканале, временное отключение маршрутизатора, потеря связи с оператором или недоступность сервера. Если конкретный канал перестал работать, сеть может направить следующие пакеты другим путём. Поэтому не следует считать, что все части сообщения всегда идут одной дорогой. Они могут пройти через разные промежуточные узлы, а затем снова собраться у получателя. Для протоколов более высокого уровня это обычно скрыто от приложения.
Сеть тоже не может в одиночку гарантировать, что папа увидит фотографию. Его телефон может быть выключен, приложение — не иметь доступа к сети, а сервер — временно не отвечать. Приложение мессенджера может сохранить отправку в очереди, повторить попытку позже и показать Лене статус. Но значение отметок вроде «отправлено» или «доставлено» зависит от конкретного сервиса: одна может означать, что сообщение принял сервер, другая — что его получил телефон адресата. Подробности определяет приложение.
Возвращаясь к фотографии со снегом, возможны разные причины задержки. Телефон Лены мог потерять соединение с Wi‑Fi. Вокзальная сеть могла иметь выход в интернет, но перегружаться. Сервер мессенджера мог быть временно недоступен. Наконец, передача на сторону папы могла ждать, пока его телефон снова подключится. Один и тот же кружок на экране не раскрывает точный участок неисправности: он лишь сообщает, что приложение пока не завершило свою задачу.
Отправка фотографии по шагам
Чтобы увидеть всю дорогу, проследим за снимком от кнопки «Отправить» до экрана папы. Для наглядности предположим, что мессенджер использует сервер-посредник.
Этап
Зона
Назначение
1. Подготовка
Приложение Лены
Приложение связывает фотографию с сообщением, подготавливает данные и определяет нужную службу.
2. Обмен внутри телефона
Устройство отправителя
Операционная система передаёт запрос от приложения сетевым компонентам телефона.
3. Поиск службы
Локальная сеть и DNS
Устройство получает сетевой адрес сервиса по его имени, если этот адрес ещё не известен или требуется обновление.
4. Выход в интернет
Wi‑Fi или мобильная сеть
Телефон передаёт данные ближайшей точке доступа или базовой станции, а затем — сети оператора или провайдера.
5. Путь через сети
Промежуточные маршрутизаторы
Пакеты пересылаются от сети к сети. По пути возможны очереди, задержки и смена маршрута.
6. Приём сервером
Сеть и сервер мессенджера
Сервер получает данные, обрабатывает их и может сохранить фотографию для адресата.
7. Доставка адресату
Сеть папы
Когда телефон папы доступен, сервис передаёт ему уведомление и нужные данные.
8. Показ сообщения
Приложение папы
Приложение собирает полученные данные, проверяет сообщение и отображает фотографию.
В современных приложениях данные нередко защищены шифрованием. Соединение может быть зашифровано между телефоном и сервером; в некоторых мессенджерах используется сквозное шифрование, при котором прочитать содержание должны только устройства участников. Но это не отменяет адресации и маршрутизации: сети всё ещё нужно доставить данные нужному сервису и устройству, даже если промежуточные узлы не могут понять содержимое.
Как самостоятельно разобраться с похожей проблемой
Когда сообщение не отправляется, полезно идти по пути от ближайшего участка к дальнему, а не сразу винить «интернет вообще».
1. Проверьте соединение устройства. Работает ли Wi‑Fi или мобильная сеть? Не включён ли режим полёта? Получает ли телефон сигнал?
2. Проверьте выход за пределы локальной сети. Откройте страницу или попробуйте другое приложение. Если Wi‑Fi подключён, но ничего не загружается, проблема может быть уже за точкой доступа.
3. Сравните способы подключения. Если допустимо, переключитесь с Wi‑Fi на мобильную сеть или наоборот. Так станет яснее, связан ли сбой с конкретным каналом или провайдером.
4. Проверьте приложение и получателя. Обновлено ли приложение? Может ли получатель принимать сообщения? Есть ли у сервиса сообщение о перебоях?
5. Дайте приложению повторить отправку. При временном обрыве повторная попытка может сработать без дополнительных действий.
Это не способ точно диагностировать каждый сбой: одна и та же внешняя ошибка может иметь разные причины. Но такой порядок помогает не смешивать радиосоединение, доступ к интернету, работу сервера и доступность телефона получателя.
Можно провести маленький опыт и без специальных приборов. Отправьте себе или близкому короткий текст и фотографию сначала по Wi‑Fi, а затем через мобильную сеть. Сравните, что меняется: скорость, время ожидания, появление ошибок. Подумайте, какие узлы и каналы задействованы в каждом случае и где могла бы возникнуть задержка. Вы не увидите весь маршрут, но начнёте замечать, что связь — это не одна кнопка, а последовательность взаимодействий.
Сообщение нашло дорогу
Фотография Лены в итоге отправляется: после выхода с перрона телефон снова подключается к устойчивой сети, приложение повторяет попытку, а сервер принимает снимок. Через некоторое время папа открывает мессенджер и видит снег под фонарём. Между двумя экранами не возникло прямой магической связи. Сработала цепочка узлов, соединённых каналами, и правила, которые позволили каждому участнику понять, что передавать дальше.
Главная мысль проста: сеть соединяет устройства не абстрактно, а через конкретные участки связи и промежуточные узлы. Приложение превращает действие пользователя в данные, протоколы помогают эти данные оформить и адресовать, а разделение на пакеты делает передачу гибкой. Путь может быть длинным, общим для множества пользователей и не всегда безошибочным. Именно поэтому приложения и сетевые протоколы умеют обнаруживать проблемы, ждать, повторять попытки и собирать полученные части.
Когда в следующий раз на экране появится вращающийся кружок, за ним можно будет представить не пустоту, а целую эстафету: приложение передало данные устройству, устройство — ближайшей сети, промежуточные узлы — следующему участку, а служба должна доставить результат приложению адресата. Чтобы эта эстафета вообще состоялась, данные должны превратиться в сигналы, которые можно передать по проводу или радиоканалу. С этого и начнётся следующий шаг.
Как передаются данные: сигналы, кодирование, кабели, оптоволокно, радиоканалы и компромиссы скорости и задержки
Вечером вы отправляете коллеге презентацию: файл большой, срок — через десять минут. Полоса загрузки сначала уверенно ползёт вправо, потом замирает. Видеозвонок, который идёт рядом, распадается на отдельные слова. Вы переключаете ноутбук с Wi‑Fi на кабель — и передача снова ускоряется. Файл остался тем же. Изменился путь, по которому он добирается до адресата.
Но что именно движется по этому пути? Нули и единицы не катятся по проводу, как бусины по нитке, и не летят через комнату миниатюрными записками. Биты — это способ описать данные. Чтобы они пересекли расстояние, их приходится превратить в физический сигнал: изменение напряжения в кабеле, свет в оптоволокне или электромагнитную волну в воздухе.
Проследим за одним и тем же потоком данных по трём дорогам и выясним, почему каждая из них где-то оказывается быстрой, а где-то — неудобной.
От файла к физическому сигналу
Начало путешествия — не кабель и не антенна, а приложение. Оно представляет данные в виде последовательности байтов, а байты — в виде битов. Но отправить длинную череду нулей и единиц недостаточно: получатель должен понять, где один бит заканчивается и начинается следующий, распознать сигнал среди помех и восстановить исходные данные.
Поэтому передатчик выполняет несколько действий. Он превращает поток битов в удобные для передачи группы, добавляет служебную информацию, кодирует последовательность, а затем управляет передающим устройством — например, заставляет электрический сигнал менять уровень или включает лазер. На другой стороне приёмник измеряет пришедший сигнал, распознаёт символы, проверяет данные и восстанавливает биты.
Этап
Что происходит
Зачем это нужно
Подготовка
Данные приложения делятся на порции и получают служебные сведения
Чтобы получатель понимал, что и откуда пришло
Кодирование
Биты представляются комбинациями сигналов
Чтобы их можно было надёжно передать и распознать
Передача
Передатчик создаёт электрический, оптический или радиосигнал
Чтобы данные преодолели физическое расстояние
Приём
Приёмник измеряет сигнал и восстанавливает последовательность
Чтобы на другом конце снова появились нужные биты
Здесь важно различать бит и символ. Бит — это единица информации, ноль или единица. Символ — одно из различимых состояний передаваемого сигнала. Иногда одному символу соответствует один бит, иногда — несколько. Так, радиосистема может кодировать данные комбинациями амплитуды и фазы волны. Чем больше состояний используется, тем больше данных можно уместить в заданном времени, но тем труднее приёмнику отличить близкие состояния друг от друга при помехах.
Кодирование — не декоративная упаковка. Оно помогает передатчику и приёмнику не потерять ритм, обнаруживать ошибки и иногда исправлять их. Для этого в передаваемый поток могут добавляться избыточные сведения: как контрольные цифры в банковской операции, которые помогают заметить, что при переписывании что-то пошло не так. У этой надёжности есть цена: часть ресурсов канала расходуется не на полезные данные.
Первая дорога: медный кабель
Представьте, что передатчик — музыкант, а приёмник — слушатель за тонкой стеной. Музыкант меняет напряжение в проводе по заранее согласованному правилу. Приёмник наблюдает за изменениями и определяет, какие символы были отправлены.
В сетевых кабелях обычно используют не один прямой провод, а пары проводников, скрученные вместе. Такая конструкция помогает уменьшить влияние внешних помех. В распространённых кабелях Ethernet приёмник анализирует разницу между сигналами в паре: помеха, одинаково наведённая на оба проводника, в значительной мере подавляется. Но это не делает медь неуязвимой. Сигнал ослабевает по мере прохождения, соседние пары могут влиять друг на друга, а сильные электромагнитные помехи способны ухудшить связь.
Медный кабель удобен: он относительно недорог, хорошо подходит для подключения компьютеров, камер, телевизоров и оборудования внутри здания. Обычный Ethernet по витой паре для многих задач рассчитан на участки до примерно ста метров; конкретный предел зависит от стандарта и оборудования. Если расстояние больше, можно использовать промежуточное оборудование или выбрать другой тип линии.
Электрический сигнал распространяется по кабелю не мгновенно. Скорость распространения зависит от конструкции кабеля и обычно составляет заметную долю скорости света. На коротком участке задержка распространения настолько мала, что чаще важнее ожидание обработки устройства или очередь данных. А вот на длинных трассах время в пути становится ощутимее.
Важная подробность: по проводу не обязательно проносятся те самые электроны, которые «вышли» из ноутбука и прибыли в компьютер коллеги. Электрические заряды в проводнике создают меняющееся электромагнитное поле, а возмущение этого поля распространяется вдоль кабеля. Для передачи информации существенно именно распространение сигнала, а не путешествие отдельных электронов от одного конца провода до другого.
Вторая дорога: оптоволокно
Теперь представьте не музыканта за стеной, а маленький маяк внутри прозрачной нити. Передатчик включает и изменяет световой сигнал, а волокно направляет его к приёмнику. В реальных системах картина сложнее простых вспышек: данные могут кодироваться тонкими изменениями светового сигнала. Но образ маяка помогает представить главное — вместо электрического сигнала здесь используется свет.
Волокно состоит из тонкой сердцевины и окружающей её оболочки. Их оптические свойства подобраны так, чтобы свет распространялся вдоль волокна, отражаясь внутри него или оставаясь направленным по заданным модам. Оптический сигнал постепенно ослабевает, а при очень больших расстояниях на него влияют дисперсия и другие особенности передачи. Поэтому и оптоволокну нужны подходящие передатчики, приёмники, а иногда усилители или регенерирующее оборудование.
Оптоволокно особенно полезно там, где нужно передавать много данных на большие расстояния и где нежелательны электрические помехи. На него не действует электромагнитная наводка от электродвигателя так, как на медный провод. Волокно может соединять здания, районы и континенты. Внутри него сигнал тоже не бесконечно быстрый: свет в волокне идёт медленнее, чем в вакууме, примерно со скоростью около двух третей скорости света.
Одномодовое волокно обычно применяют для дальних линий и больших расстояний; многомодовое часто используют на сравнительно коротких участках, например внутри зданий и центров обработки данных. Это не простая шкала «хорошее — плохое»: важны расстояние, оборудование, требования к пропускной способности и стоимость всей системы.
Оптоволокно легко вообразить как идеальную трубу для данных. В действительности у него есть свои ограничения: волокно нужно аккуратно проложить, соединить подходящими разъёмами и обслуживать; его нельзя перегибать как попало, а оптические модули и монтаж требуют затрат. Зато на длинном маршруте оно часто выигрывает у меди по возможностям и устойчивости к электромагнитным помехам.
Третья дорога: радиоканал
С радиосвязью исчезает необходимость протянуть физический кабель до каждого устройства. Передающая антенна создаёт электромагнитную волну, а принимающая улавливает её и превращает изменения волны обратно в данные. Так работают Wi‑Fi, Bluetooth, мобильная связь и множество специализированных радиосистем.
Волна не несёт внутри крошечные буквы «ноль» и «единица». Информация закодирована в её параметрах: например, в изменениях амплитуды, частоты или фазы. Эти изменения приёмник должен распознать на фоне шума и сигналов от других устройств.
Радио даёт свободу движения и позволяет связать устройства, между которыми нельзя или невыгодно прокладывать кабель. Но среда здесь общая и непредсказуемая. Сигнал отражается от стен и мебели, ослабевает за препятствиями, может накладываться на другие передачи. Даже человек, вставший между ноутбуком и точкой доступа, способен изменить условия приёма. Разные сети делят ограниченный радиочастотный ресурс, а устройства должны договариваться, когда именно передавать.









