Введение
В 60-х годах компьютеры стоили неадекватных денег. Машинное время на этих гигантах расписывалось по минутам, и его вечно не хватало. Исследовательские центры плодились, каждому нужен был свой суперкомпьютер. Ученые просто хотели сэкономить: им позарез нужен был удаленный доступ, чтобы сидеть за терминалом у себя в условном MIT, а тяжелые вычисления гонять на временно простаивающем мейнфрейме где-нибудь в Калифорнии.
Интернет родился из необходимости заставить несовместимых машин общаться друг с другом, чтобы не покупать новое железо.
2. ARPA и проблема «Вавилонской башни» (Конец 1950-х – 1960-е)
В 1957 году в США случилась легкая национальная паника: СССР успешно запустил первый искусственный спутник Земли. Стало очевидно, что в технологической гонке Штаты могут оказаться в роли догоняющих. В ответ президент Эйзенхауэр распорядился срочно создать ARPA (Агентство передовых исследовательских проектов, букву «D» — Defense — к названию прикрутят позже).
Идея агентства была простой и эффективной: вот вам солидные бюджеты, карт-бланш и минимум бюрократии. Делайте что угодно, финансируйте любые безумные научно-фантастические проекты, только обеспечьте технологическое превосходство.
В 1962 году в это агентство приходит Джозеф Ликлайдер — человек с бэкграундом в психоакустике, ставший одним из главных ИТ-визионеров XX века. В своих меморандумах он начинает на полном серьезе продвигать концепт «Intergalactic Computer Network» (Галактическая компьютерная сеть).
Звучит как название для ретровейв-альбома, но по факту Ликлайдер описал современный интернет и облачные вычисления за полвека до того, как мы узнали аббревиатуру AWS. Он предвидел единую сеть, где пользователи из любой точки мира смогут удаленно получать доступ к общим данным и программам, вообще не задумываясь о том, где физически находится само железо.
Но между концептом и реальностью стояла одна огромная техническая боль — аппаратный вендор-лок.
Представьте, что у вас на столе стоят три разных компьютера: один только для того, чтобы писать в Telegram, второй — чтобы проверять рабочую почту, а третий — чтобы коммитить код на GitHub. И вы не можете ничего между ними перенести.
Именно так в 60-х выглядел кабинет преемника Ликлайдера — Боба Тейлора. У него стояли три разных физических терминала (телетайпа), подключенных к трем независимым мейнфреймам в разных концах страны: в Санта-Монике, Беркли и Массачусетском технологическом (MIT).
Это был настоящий зоопарк технологий:
Каждый мейнфрейм работал на своей проприетарной операционной системе.
Каждая машина имела уникальную архитектуру.
Использовались разные стандарты кодировки (тот же ASCII еще только пробивал себе дорогу в жизнь).
Компьютеры банально не умели «разговаривать» друг с другом. Это была классическая Вавилонская башня. Чтобы поработать с данными из MIT, Тейлору нужно было физически пересесть за другой терминал, залогиниться и вспомнить локальный синтаксис тамошней ОС.
Именно Тейлор, устав от беготни между креслами, решил, вместо того чтобы покупать каждому исследовательскому центру свой персональный дорогущий мейнфрейм, нужно заставить уже существующие машины общаться между собой. Нужно сделать так, чтобы с одного терминала можно было достучаться до любого узла.
Так был дан зеленый свет проекту, который позже назовут ARPANET. Оставалось самое сложное — придумать, как именно физически соединить эти несовместимые железки.
3. Революция коммутации пакетов
Когда инженеры ARPA начали ломать голову над тем, как физически связать компьютеры, первой (и самой очевидной) идеей было использовать уже существующую телефонную сеть AT&T. Но от неё быстро отказались.
Дело в том, что телефония работает на базе коммутации каналов (circuit switching). Когда вы звоните бабушке в другой город, АТС физически выстраивают и резервируют непрерывную линию связи от вашей трубки до её аппарата. Пока вы говорите, этот «медный провод» принадлежит только вам.
Для компьютеров это была катастрофа по двум причинам:
Это безумно дорого и неэффективно. Компьютеры общаются «взрывами»: они отправляют кусок данных, а потом долго молчат, ожидая ответа. Держать ради этого выделенную линию — всё равно что арендовать скоростную трассу целиком, чтобы раз в час проезжать по ней на самокате.
Это ненадежно. Если экскаватор перерубит кабель где-нибудь в Огайо, связь ляжет. Единая точка отказа — это баг, который исследователей совершенно не устраивал.
Три человека, которые в итоге заложили фундамент всего современного интернета: Пол Бэран (исследовательская корпорация RAND), Дональд Дэвис (Национальная физическая лаборатория в Великобритании) и Леонард Клейнрок (MIT).
Они предложили совершенно иную парадигму — коммутацию пакетов (packet switching). Клейнрок обосновал это математически (теория массового обслуживания), Бэран придумал архитектуру децентрализованной сети, а Дэвис придумал сам термин «пакет» и начал тестировать это на практике.
Суть идеи была гениальной в своей простоте: мы не строим выделенный канал. Мы берем поток данных и рубим его на одинаковые мелкие куски — пакеты. К каждому пакету приклеиваем заголовок с адресом отправителя, адресом получателя и порядковым номером. А дальше просто «выплевываем» их в сеть.
Чтобы было понятнее:
Представьте, что вам нужно отправить другу в другой город том «Войны и мира». Вместо того чтобы нанимать спецкурьера, который повезет книгу целиком по одной конкретной трассе (коммутация каналов), вы делаете следующее:
Вырываете из книги все страницы.
Каждую страницу кладете в отдельный конверт.
На каждом конверте пишете адрес друга и номер страницы (например: «стр. 45 из 1300»).
Скидываете всю эту гору конвертов в ближайший почтовый ящик.
Дальше начинается магия маршрутизации. Почта (узлы сети) сама решает, как доставить каждый конверт в зависимости от текущей загруженности дорог. Конверт №1 может поехать на поезде, конверт №2 полетит самолетом, а конверт №3 поедет на фуре в объезд, потому что на главном шоссе пробка.
Они прибудут к вашему другу в случайное время и в полном беспорядке. Сначала приедет 45-я страница, потом 12-я, потом 1300-я. Но вашему другу (принимающему компьютеру) это неважно. Он просто смотрит на номера конвертов и собирает книгу обратно в правильном порядке. А если страница 404 где-то потерялась по пути — он просто отправляет вам короткий запрос: «Эй, дошли мне копию 404-й, остальное получил».
Это решило все проблемы. Кабели теперь использовались максимально эффективно (по ним шли вперемешку пакеты от самых разных пользователей), а если один узел падал, остальные пакеты просто маршрутизировались в обход сгоревшего сервера.
Теория была готова. Оставалось собрать железо, которое смогло бы это переварить, и нажать кнопку «Пуск».
4. 29 октября 1969 года: Рождение ARPANET и первый краш
Итак, теория коммутации пакетов была на руках. Оставалось самое сложное — заставить железо работать по этим правилам.
И тут инженеры принимают блестящее архитектурное решение. Они быстро поняли, что вешать задачи по маршрутизации пакетов на сами мейнфреймы — идея так себе. Компьютеры и без того стоили миллионы и были перегружены научными вычислениями. Заставлять их еще и непрерывно слушать линию, проверять контрольные суммы и собирать пакеты воедино, плохая идея.
Решение оказалось элегантным: вынести сетевую логику в отдельное «прокси-устройство». Так появились IMP (Interface Message Processors) — прямые предки ваших домашних роутеров ASUS и MikroTik, только размером с хороший двустворчатый холодильник.
Тендер на их сборку выиграла бостонская компания BBN (Bolt Beranek and Newman). Ребята взяли за основу «мини-компьютеры» Honeywell DDP-516 в военных корпусах (они предназначались для кораблей и самолетов) и написали софт, который делал только одну вещь — перекладывал пакеты.
Теперь тяжелому мейнфрейму не нужно было знать о сети вообще ничего. Он общался только со своим локальным IMP по простому интерфейсу, а уже IMP связывался с другими IMP через модемы по выделенным телефонным линиям (со скоростью умопомрачительных 50 кбит/с). Сеть стала модульной.
Тот самый день
К осени 69-го были готовы первые два узла. Один IMP установили в Калифорнийском университете в Лос-Анджелесе (UCLA) под руководством Леонарда Клейнрока. Второй уехал в Стэнфордский исследовательский институт (SRI) к Дугласу Энгельбарту (человеку, который чуть раньше изобрел компьютерную мышь). Между ними было около 500 километров кабеля.
29 октября в 22:30 по местному времени наступил момент истины. Студент-программист UCLA Чарли Клайн должен был удаленно залогиниться в стэнфордский мейнфрейм. Для этого нужно было передать слово LOGIN.
Для подстраховки и отладки Клайн висел на обычном телефоне с коллегой из SRI Биллом Дюваллем. Диалог выглядел примерно так:
Клайн печатает L. В трубке голос Дювалля: «Принял L».
Клайн печатает O. Стэнфорд: «Принял O».
Клайн нажимает G…
…И система намертво ложится. Баг в коде Стэнфордского узла вызвал переполнение буфера.
Если изобретатели телеграфа и телефона передавали первыми сообщениями что-то пафосное или осмысленное, то первым словом, отправленным по прообразу интернета, стало зависшее и оборванное «LO».
Позже Клейнрок будет красиво отшучиваться в интервью, что это была отсылка к библейскому «Lo and behold» (Посмотри и узри). Но по факту это был просто первый в истории упавший сервак.
Спустя примерно час стэнфордские программисты пофиксили баг, Клайн снова нажал на клавиши, и слово LOGIN прошло целиком.
5. TCP/IP: Эсперанто для компьютеров (1970-е)
ARPANET взлетел. К началу 70-х к нему подключалось всё больше университетов, но успех породил новую проблему — масштабную фрагментацию.
Глядя на успехи ARPA, другие ребята начали пилить свои собственные сети. На Гавайях развернули радиосеть ALOHAnet (тянуть кабели между островами было дорого). Военные экспериментировали со спутниковой связью (SATNET). И всё это многообразие наступило на те же самые грабли, что и мейнфреймы десятью годами ранее: сети не могли общаться между собой.
Радиосеть работала по одним правилам, спутниковая — по другим, кабельный ARPANET — по третьим. Пакеты данных из одной сети разбивались о шлюзы другой. Проблема «Вавилонской башни» просто перешла на уровень выше. Чтобы объединить эти разрозненные куски в единый Inter-net (сеть сетей), нужен был универсальный язык-переводчик.
Задачу взялись решать два инженера: Боб Кан (работавший над ARPANET) и Винт Серф (тот самый, которого сегодня называют одним из «отцов интернета»). В 1974 году они выкатили концепт протокола TCP (Transmission Control Protocol), который чуть позже разделили на две независимые части: TCP и IP.
Это разделение обязанностей было гениальным ходом. Чтобы понять, как они работают в связке (тот самый стек TCP/IP), представьте работу почты:
IP (Internet Protocol) — Его единственная задача — посмотреть на IP-адрес на конверте (пакете) и отправить его в сторону получателя по самому короткому маршруту. IP вообще не волнует, дойдет ли письмо. Упал пакет по дороге? Ну и ладно. Пришли не в том порядке? Не его проблемы. Он отвечает только за маршрутизацию.
TCP (Transmission Control Protocol) — это контролер на стороне получателя. Он принимает конверты от IP, проверяет их номера и собирает исходный файл. Если TCP видит, что пришел пакет №1 и пакет №3, а второго нет, он тормозит процесс и кричит отправителю: «Эй, я не получил второй кусок, шли заново!». И только когда все пакеты собраны без ошибок, TCP передает готовые данные операционной системе.
Этот стек протоколов оказался настолько удачным, масштабируемым и независимым от физической среды передачи (хоть по медному кабелю гоняй пакеты, хоть по радиоволнам, хоть голубями переноси), что стало очевидно: за ним будущее.
Но перевести работающую сеть на новый протокол — это боль. В ARPANET на тот момент использовался старый протокол NCP, и поддерживать из двух протоколов никто не собирался.
Команда пошла на беспрецедентный шаг, который в современном IT представить просто невозможно. Они объявили «День флага» (Flag Day) — 1 января 1983 года.
Ультиматум звучал так: либо к этой дате вы обновляете софт на своих серверах до поддержки TCP/IP, либо мы вас отключаем. Никакой обратной совместимости. Никаких поблажек.
И это сработало. 1 января 1983 года ARPANET, кряхтя и ругаясь на баги, синхронно перешел на TCP/IP. Разрозненные локальные и радиосети наконец-то смогли слиться воедино. Именно этот день технически и физически можно считать днем рождения того самого Интернета, которым мы пользуемся прямо сейчас. Оставалось только придумать, как сделать его удобным для людей, а не только для бородатых сисадминов.
6. CERN и рождение Всемирной паутины (Конец 1980-х – 1990-е)
Давайте сразу проясним главное: Интернет и Web — это не одно и то же. Интернет (TCP/IP, кабели, маршрутизаторы) — это дороги и базовая инфраструктура. А Web (веб-сайты, картинки, гипертекст) — это здания и магазины, построенные вдоль этих дорог. До начала 90-х интернет был суровым местом, где инженеры в свитерах перекидывались текстовыми файлами через FTP и общались в консольных рассылках. Чтобы найти нужный документ, нужно было точно знать, на каком сервере он лежит и как называется. Никакого гугла, только хардкор.
Всё изменилось благодаря огромному швейцарскому коллайдеру.
В конце 80-х в Европейский центр ядерных исследований (CERN) приехал британский физик-контрактник Тим Бернерс-Ли. Он быстро понял, что в CERN творится информационный ад. Тысячи ученых со всего мира приезжали, проводили эксперименты, писали отчеты в разных форматах на разных компьютерах и уезжали. Данные терялись пачками. Найти нужную документацию к старому ускорителю было квестом уровня Dark Souls.
Бернерс-Ли решил сделать удобный каталогизатор. Еще в 1980 году он написал для себя программку ENQUIRE, где документы связывались друг с другом перекрестными ссылками (саму идею гипертекста придумали до него, но Тим решил натянуть её на глобус Интернета).
В 1989 году он выкатил руководству меморандум с предложением создать единую распределенную систему документов. Начальник Бернерс-Ли, Майк Сендалл, написал на полях документа легендарную резолюцию: «Vague, but exciting» (Расплывчато, но захватывающе) — и дал добро на покупку мощного компьютера для тестов.
Этим компьютером стал NeXTcube — футуристичная черная коробка из магниевого сплава (эти машины тогда делал Стив Джобс, которого временно выгнали из Apple). Именно на этом кубике Тим Бернерс-Ли в одиночку придумал три кита современного интернета:
Язык разметки HTML (чтобы страницы выглядели одинаково на всех мониторах).
Адресацию URI/URL (универсальные указатели, те самые «www.сайт.com»).
Протокол HTTP (правила, по которым браузер просит сервер отдать страницу).
Так NeXTcube стал первым в мире веб-сервером. На системном блоке Тим от руки написал историческую наклейку: «This machine is a server. DO NOT POWER DOWN!!» (Эта машина — сервер. НЕ ВЫКЛЮЧАТЬ!!). И это не шутка: уборщица в CERN легко могла выдернуть шнур из розетки, чтобы подключить пылесос, и тогда в оффлайн ушел бы вообще весь мировой Web.
20 декабря 1990 года заработал самый первый в мире сайт — info.cern.ch. На нём лежала простая текстовая инструкция о том, что такое Всемирная паутина (WorldWideWeb) и как вообще пользоваться этими странными синими ссылками.
Браузерные войны
Сначала Web был сугубо академической песочницей. Но в 1993 году CERN делает гениальный ход — они публикуют исходный код паутины в общественное достояние (Public Domain). Абсолютно бесплатно и без патентов.
Это вызвало взрыв. Студенты из Национального центра суперкомпьютерных приложений (NCSA) пишут Mosaic — первый популярный браузер, который умел показывать картинки прямо в тексте, а не в отдельных окнах.
Вскоре разработчики Mosaic уходят и создают коммерческий Netscape Navigator, а Microsoft в панике выкатывает Internet Explorer. Начинается эпоха «браузерных войн», появление первых поисковиков, баннеров и сумасшедших инвестиций. К концу 90-х в интернет-компании (доткомы) вливают миллиарды долларов.
Сеть, задуманная для того, чтобы ученые могли не вставая со стула делиться логами с коллайдера, окончательно мутирует в гигантскую машину по зарабатыванию денег, доставке пиццы и бесконечному скроллингу мемов.
7. Заключение
Путь от 50-килобитных модемов и рухнувшего от переполнения буфера до глобальной инфраструктуры занял всего пару десятилетий. Интернет, который начинался как инструмент суровой экономии бюджетов ARPA и академическая песочница для пересылки текстовых файлов, стал буквально нервной системой Земли. Сегодня без этих протоколов не работают ни банковские транзакции, ни навигация самолетов, ни ваши умные лампочки в спальне.
Но в этой бочке технологического триумфа есть весьма ощутимая ложка дегтя.
Изначально и ARPANET, и Всемирная паутина Бернерса-Ли строились вокруг одной фундаментальной идеи — тотальной децентрализации. Сеть проектировалась так, чтобы не иметь единого хозяина и единой точки отказа. Никто не должен был контролировать рубильник.
Что мы имеем сегодня? Глобальный интернет по факту поделен и монополизирован горсткой транснациональных ИТ-гигантов (привет, FAANG/MAANG). Мы храним данные на серверах AWS, маршрутизируем трафик через Cloudflare и потребляем контент в экосистемах Google и Meta. Если сегодня в крупном дата-центре Amazon случится глобальный сбой, добрая половина «независимого и децентрализованного» интернета просто ляжет.
Мы своими руками построили ту самую архитектурную уязвимость, от которой так отчаянно пытались уйти инженеры 60-х.
Именно поэтому сейчас набирает обороты тренд на возвращение к истокам. Технологии Web3, развитие P2P-протоколов вроде IPFS, рост федеративных сетей (Mastodon и весь Fediverse) — всё это не просто попытка продать новые токены или поиграться в крипто-анархизм. Глобально это попытка инженеров забрать интернет из рук корпоративных монополий и вернуть ему изначальную распределенную архитектуру, где каждый узел сети равноправен.
Анонсы новых статей, полезные материалы, а так же если в процессе у вас возникнут сложности, обсудить их или задать вопрос по этой статье можно в моём Telegram‑сообществе. Смело заходите, если что‑то пойдет не так, — постараемся разобраться вместе.
