Глава 1 · Пакеты, кабели и имена: с 1969 года до наших дней
Интернет
Режем на пакеты
Представьте, что вы отправляете другу фото на 3 МБ. Интернет не проталкивает его по проводу одним куском. Ваше устройство режет файл на части размером не больше примерно 1500 байт, получается около 2000 пакетов, и на каждом пишет отправителя, получателя и порядковый номер. В анимации снимок рассыпается на плитки, которые загораются по порядку. Зачем так сложно? Маленькие пакеты позволяют многим людям делить одну линию, а если пакет потерялся, повторить нужно только этот кусочек, а не всё фото.
Прыжок за прыжком
Теперь каждый пакет едет сам по себе. На каждом перекрёстке маршрутизатор читает адрес назначения и передаёт пакет соседу, который кажется ближе к цели. Путь обычно занимает 10–20 таких прыжков, а два пакета одного фото могут поехать разными дорогами. На месте номера возвращают их в порядок. Правила называются TCP/IP. Предок интернета, сеть ARPANET, отправил первое сообщение 29 октября 1969 года, а 1 января 1983 года все её машины перешли на TCP/IP. Многие считают эту дату днём рождения интернета.
Потеряно, опоздало, пронумеровано
TCP — аккуратная половина правил. Получатель шлёт подтверждения вроде «получены пакеты с 1 по 40», и если подтверждения нет, отправитель повторяет недостающий пакет. IP — адресная половина. Адрес IPv4 состоит из 32 бит, всего их около 4,3 миллиарда, и адресов стало не хватать, поэтому IPv6 использует 128 бит, то есть число из 39 цифр. Сам путь невидим, но его цену вы чувствуете как задержку между отправкой и ответом. В песочнице отправьте сообщение и посмотрите, как каждый прыжок добавляет свою долю задержки.
Кабели под водой
Интернет не висит в небе. Примерно 99 процентов данных между континентами идёт по кабелям, лежащим на дне океанов, и работает их больше 500. Внутри каждого кабеля стеклянные волокна тоньше волоса. Лазер на одном конце мигает импульсами света, свет бежит по стеклу, а приёмник на другом конце превращает мигание обратно в биты. Через каждые несколько десятков километров свет подновляют повторители. В стекле свет движется со скоростью около 200 000 км/с, примерно на треть медленнее, чем в пустоте.
От Москвы до Нью-Йорка
Засечём время одного пакета. Расстояние по прямой от Москвы до Нью-Йорка около 7500 км. При 200 000 км/с свету нужно 7500 / 200 000 = 0,0375 с, то есть 37,5 миллисекунды в одну сторону. Настоящие кабели огибают берега, а маршрутизаторы добавляют паузы, поэтому реальный круговой рейс обычно занимает заметно больше 100 мс. Эти 37,5 мс — нижняя граница, которую не опустит ни один инженер, ведь быстрее света ничто не летит. Выберите два города в песочнице и сравните её оценку с этой арифметикой.
Телефонная книга планеты
Компьютерам нужны числа, людям удобнее имена. Система доменных имён, DNS, — гигантская телефонная книга, разнесённая по всему миру. Её придумал Пол Мокапетрис в 1983 году. Когда вы вводите имя, ваше устройство спрашивает резолвер, тот обращается к корневым серверам, потом к серверам зоны вроде .com, а затем к серверам самого сайта. Последние отвечают IP-адресом, например 203.0.113.7. Ответы запоминаются на минуты или часы, поэтому повторные заходы быстрые. Новый запрос обычно занимает всего десятки миллисекунд.
Веб — не весь интернет
В марте 1989 года Тим Бернерс-Ли, работавший в ЦЕРНе, предложил систему связанных страниц. К концу 1990 года у него уже работали первый браузер и сервер, а в 1991 году веб открылся миру. Он держится на трёх простых идеях: страницы на языке HTML, адрес каждой страницы, URL, и протокол HTTP, которым страницы запрашивают. 30 апреля 1993 года ЦЕРН передал программы в общественное достояние. Веб — одна из служб поверх интернета, как почта, видеозвонки и онлайн-игры: все они пользуются одними и теми же кабелями.
В цифрах
- 37,5 мс
- в одну сторону Москва — Нью-Йорк, свет в волокне
- 1 января 1983
- ARPANET переходит на TCP/IP
- ≈ 99 %
- межконтинентальных данных идёт по морским кабелям