Learning Platform
Глоссарий Troubleshooting
Урок 03.01 · 18 мин
Начальный
HistoryARPANETInternetTelegraphNetworks

Зачем нужны сети — от телеграфа до Internet

Прежде чем нырять в технические детали, нужно понять, зачем сети вообще существуют. Это не очевидно: компьютер сам по себе мощная штука, он умеет считать без сети. Зачем его соединять с другим компьютером? Ответ кажется тривиальным сейчас, в 2026 году, когда без интернета не работает буквально ничего. Но он не был тривиальным в 1960-х, когда сетей ещё не было, и инженерам приходилось убеждать заказчиков, что эта идея вообще имеет смысл.

В этом уроке мы пройдёмся от телеграфа (1837 год) до современного internet, проследив, как развивалось понимание «зачем». Это даст контекст для всего остального курса: вы увидите, какие проблемы решали в каждую эпоху и какими костылями. Многие современные «странности» интернета — наследие конкретных решений, принятых десятилетия назад.


Зачем сеть — три фундаментальные причины

Сначала о смысле. Зачем людям сети? Три ответа, от которых отталкивается всё остальное:

Три причины существования сетей
1. Sharing resourcesКомпьютеры дороги -- один принтер на офис, один сервер для всех. Раньше -- дорогая память и диски, теперь -- GPU для AI. Сеть позволяет делить ресурсы
2. CommunicationПередача информации между людьми и системами. Email, мессенджеры, видеосвязь, API между сервисами. Главное использование сегодня
3. Distributed computingЗадача разбивается на части, обрабатывается на многих машинах параллельно. Google поиск, MapReduce, Spark, microservices. Без сети -- не работает
Бонус: redundancyСеть устойчивее одной машины. Если узел отказал -- другие работают. Это основа надёжных систем (RAID, репликация БД, K8s)

Сегодня преобладает (2). Большинство приложений — это коммуникация между двумя или больше узлами. Браузер общается с сервером. Сервис A общается с сервисом B. Микросервисы постоянно болтают друг с другом через REST или gRPC. Чат, видеосвязь, push-уведомления — всё это сеть.

Distributed computing (3) — это инфраструктура для Big Data. Hadoop, Spark, Flink, в облаке — BigQuery и Athena. Все они работают только потому, что у них есть быстрая сеть между узлами кластера.

Kafka как распределённый commit log

Когда вы понимаете, ЗАЧЕМ нужна сеть, дизайн протоколов становится естественным. TCP даёт reliable delivery, потому что (2) и (3) этого требуют. DNS существует, потому что нужно знать имя, а не запоминать IP. HTTP statless, потому что иначе не масштабируется (1) — невозможно делить нагрузку между серверами.


Эпоха 1: телеграф (1837 — начало 1900-х)

Первая «сеть передачи данных» — это телеграф. Сэмюэл Морзе и его команда в 1837 году собрали первую рабочую систему: провод между двумя точками, на одном конце оператор стучит ключом, на другом — слышит щелчки в наушнике или видит точки на ленте.

Телеграф -- простейшая сеть из двух узлов
Оператор AСтучит ключом -- замыкает/размыкает электрическую цепь. Длинный сигнал = тире, короткий = точка. Знает азбуку Морзе
Провод
Оператор BСлышит щелчки в наушнике или видит точки/тире на бумажной ленте. Расшифровывает обратно в буквы
EncodingТекст -> азбука Морзе: A = .-, B = -..., С = -.-., и т.д. 30 знаков для всех букв и цифр. Это первый пример кодирования данных в сети
LinkageОдин провод между двумя точками. Если хотите 100 точек -- 100 проводов или использовать ретрансляторы. Не масштабируется

Телеграф — это уже сеть в техническом смысле: есть две стороны, передаётся информация, требуется протокол (Morse code — это и есть протокол кодирования). Но это point-to-point связь: один провод соединяет ровно две точки. Чтобы соединить N городов между собой, нужно либо N*(N-1)/2 проводов (нереалистично), либо центральная станция-ретранслятор, через которую идут все сообщения.

Многие концепции современного networking появились ещё в эпоху телеграфа:

  1. Адресация. В сообщении указывался получатель (адрес города и человека). Сегодня IP-адрес делает то же самое.
  2. Маршрутизация. Между городами были станции, на которых операторы перенаправляли сообщения дальше. Сегодня это делают маршрутизаторы.
  3. Кодирование. Морзе — первая стандартная кодировка. Сегодня ASCII, UTF-8, бинарные protocol buffers.
  4. Ошибки и подтверждения. Если сообщение шло плохо (помехи), просили повторить. Сегодня это TCP retransmission.

К 1900 году в США была телеграфная сеть, покрывающая всю страну, с десятками тысяч операторов. Это был серьёзный технологический достижение, аналог современного internet по влиянию на общество.


Эпоха 2: телефон (1876 — 1990-е)

Александр Грэм Белл изобрёл телефон в 1876 году. Сразу же стала ясна проблема телеграфной модели: один провод на одну связь — это не работает для миллионов пользователей.

Решение телефонной индустрии: circuit switching, или коммутация каналов. Когда вы звонили кому-то, оператор (а потом автоматический коммутатор) соединял провод от вашего аппарата с проводом от аппарата получателя. На время разговора устанавливался физический «канал» (circuit) между двумя сторонами. Все байты шли только по этому каналу, в чёткой последовательности.

Телефонная сеть -- circuit switching
CallerВы поднимаете трубку, набираете номер. Это сигнал коммутатору 'соедини меня с этим номером'
Dial
КоммутаторПолучает номер, находит маршрут к нужному абоненту, устанавливает физическую связь через серию реле. До 1960-х -- ручные коммутаторы (операторы)
Connect
CalleeУ получателя звонит телефон. Когда поднимает -- канал установлен, можно говорить
Dedicated circuitНа время разговора этот канал занят только вами. Никто другой не может его использовать. После 'положили трубку' -- освобождается

Circuit switching оптимален для голоса: задержка постоянная и низкая (нужно для разговора), пропускная способность гарантирована. Но он расточителен для данных: даже если вы молчите, канал занят. Для коротких передач — огромный overhead на установление и разрыв канала.

Из этой эпохи в современный networking перекочевало несколько идей:

  1. Адресация по номерам. Номер телефона — глобальный уникальный идентификатор. Сегодня IP-адрес и DNS-имя.
  2. Коммутация. Понятие switch как центральной точки. Сегодня L2-switches и L3-routers.
  3. Стандартизация. ITU (International Telecommunication Union) — организация для координации между странами. До сих пор работает.

К 1990-м телефонные сети по всему миру стали цифровыми — голос дискретизировался и передавался как байты. Это сделало возможным следующий шаг.


Эпоха 3: ARPANET (1969 — 1980-е)

В конце 1960-х в США возникла идея: давайте сделаем сеть для компьютеров, как телефонная сеть для голоса, но лучше. ARPA (Advanced Research Projects Agency) Министерства обороны США выделила деньги на эксперимент.

Главная инновация ARPANET — packet switching вместо circuit switching. Идея пришла независимо от Пола Бэрана и Дональда Дэвиса в начале 1960-х. Вместо того чтобы устанавливать выделенный канал на весь сеанс, разбейте данные на маленькие куски (пакеты) и шлите их по сети независимо. Каждый пакет содержит адрес получателя и сам находит путь.

ARPANET -- первая packet-switched сеть
UCLAПервый узел ARPANET, 29 октября 1969. Здесь работал Винтон Серф и команда. Первое сообщение через сеть -- слово 'LO' (хотели 'LOGIN', но система упала)
SRIStanford Research Institute. Второй узел. К декабрю 1969 -- уже 4 узла
UCSBUniversity of California Santa Barbara. Третий узел
UtahUniversity of Utah. Четвёртый узел. К 1971 -- 15 узлов. К 1981 -- более 200
IMPInterface Message Processor -- предшественник современных роутеров. Спецаппарат от BBN Technologies. Обрабатывал пакеты и перенаправлял дальше
Packet switchingДанные разбивались на пакеты по 1006 бит. Каждый пакет шёл независимо, мог идти разными путями. Это решало проблему ядерной устойчивости -- если узел уничтожен, пакеты обходят его

Почему packet switching изменил всё? Несколько причин:

  1. Устойчивость к отказам. Если один узел или линк падает — пакеты идут другим путём. Это было ключевым военным требованием в годы Холодной войны (никто не хотел, чтобы ядерный удар по штаб-квартире отрубил всю связь).
  2. Эффективное использование линков. В каналах нет «простоев» — если у одного пользователя нет данных, другой пользуется тем же каналом.
  3. Масштабируемость. Не нужно отдельных каналов на каждую пару узлов. Любые два узла могут общаться через общую инфраструктуру.

В ARPANET были разработаны первые сетевые протоколы: NCP (Network Control Program), а потом TCP/IP. Винтон Серф и Боб Кан в 1974 году опубликовали статью «A Protocol for Packet Network Intercommunication» — это и есть основа TCP/IP, которую мы используем сегодня.

Unix domain sockets — IPC быстрее TCP на одной машине

Также в ARPANET появились первые приложения, которые мы помним и сейчас:

  • Email (1971) — Ray Tomlinson написал первую программу отправки сообщений между узлами. Тогда же он придумал символ @ для разделения user и host.
  • FTP (1971) — File Transfer Protocol. До сих пор иногда используется.
  • Telnet (1969) — удалённый терминал. Сейчас вытеснен SSH.

Эпоха 4: рождение Internet (1983 — 1995)

Internet — это не один проект, а постепенное объединение многих сетей в одну глобальную. Ключевые даты:

Хронология появления Internet
1983ARPANET переходит с NCP на TCP/IP -- так называемая Flag Day. С этого момента TCP/IP -- основной протокол. Это считается официальным днём рождения Internet
1984DNS заменяет hosts.txt. Раньше у всех узлов был файл со списком имён и IP всех других узлов -- понятно, что не масштабируется. DNS -- иерархическая распределённая система имён
1989Тим Бернерс-Ли в CERN предлагает World Wide Web. Гипертекст, HTML, HTTP, URL. Первый сайт запущен 6 августа 1991
1993Mosaic -- первый широко распространённый графический браузер. Сделал WWW доступным для не-технических пользователей. Прямой предок Netscape и Firefox
1995ARPANET официально закрыт. NSFNET, потом коммерческий Internet. Начало dot-com эры. К концу 1995 -- 16 млн пользователей

В 1995 году произошло несколько событий, после которых Internet перестал быть академической игрушкой и стал коммерческой инфраструктурой:

  • NSF разрешила коммерческий трафик. До этого NSFNET был только для научных целей.
  • Появились ISP (Internet Service Provider). AOL, CompuServe, AT&T — провайдеры доступа для домашних пользователей через dial-up модемы.
  • Amazon, eBay, Yahoo основаны в 1995. Бизнес узнал про Web, начался первый dot-com бум.

С 1995 года Internet растёт по экспоненте: 16 миллионов пользователей -> 200 миллионов в 2000 -> 1 миллиард в 2005 -> 5 миллиардов сегодня. И при этом фундаментальные протоколы (TCP, IP, DNS, HTTP) остались принципиально теми же. Это удивительная штука: то, что было спроектировано в 1970-х для 4 университетов, масштабируется до 5 миллиардов пользователей.


Современная эпоха — 2000-е и далее

С 2000 года Internet продолжает развиваться, но фундаментально не меняется. Основные направления:

  1. Мобильность. 3G, 4G, 5G — сети для устройств в движении. Эта область делает QUIC более привлекательным, чем TCP, потому что мобильные сети лоссы и jitter terribly.
  2. CDN и edge computing. Контент кэшируется ближе к пользователю (Cloudflare, Akamai, Fastly). Уменьшает latency.
  3. Облака. AWS, GCP, Azure. Большие data centers, в которых работает большая часть современного internet.
  4. HTTPS повсеместно. До 2010 года значительная часть сайтов работала по HTTP. К 2026 — >95% трафика TLS.
  5. HTTP/2 и HTTP/3. Эволюция протокола приложения для большей производительности.
  6. IPv6. Адресов IPv4 не хватает, IPv6 — замена. Доля IPv6 растёт, но медленно (около 40% в 2026).

Многие из этих тем мы разберём подробно в соответствующих модулях. Сейчас важно увидеть общую картину: internet — это не один проект, а накопленный за 50+ лет инженерный артефакт. В нём есть слой, который мы можем менять (HTTP/3, TLS 1.3), и слой, который менять невозможно (IPv4-адресация работает так же, как в 1981).


Что для нас, инженеров

Зачем эта историческая информация? Не для эрудиции. Она объясняет много «странностей» современных протоколов:

  • Почему IP-адрес 32 бита? Когда дизайнили IPv4 в 1981, никто не думал, что будет 5 миллиардов устройств.
  • Почему HTTP — текстовый? Потому что в 1991 нужно было отлаживать его на терминалах без специальных инструментов.
  • Почему DNS использует UDP? Потому что в 1984 TCP-overhead был неприемлемо высоким для коротких запросов.
  • Почему пароли отдельно от логинов в HTTP Basic Auth? Потому что в 1996 не было других идей, как сделать аутентификацию в stateless протоколе.

Все эти «странности» — legacy конкретных эпох. Их можно было бы переделать «правильно», но это сломало бы совместимость с миллионами существующих систем. Поэтому мы живём с ними.

NOTE

Это feature, не bug. Стабильность интерфейсов — ценность сама по себе. Internet работает 40+ лет именно потому, что мы не переделываем фундамент каждые 5 лет. Когда нужно что-то новое — добавляем поверх (например, HTTP/2 поверх TCP), не ломая существующее.


Попробуй сам

Несколько команд, которые показывают исторические корни современного internet.

# 1. WHOIS -- узнать, кто владеет доменом. Этот сервис с 1982 года
whois example.com | head -20
# Увидите: registrar, dates, contact info

# 2. Старый протокол finger -- посмотреть, кто залогинен на хосте.
#    Сейчас почти не работает -- в основном выключен по соображениям безопасности
finger @example.com 2>&1 | head
# Скорее всего: connection refused или timeout

# 3. Telnet -- предшественник SSH. Тоже почти везде выключен
telnet towel.blinkenlights.nl
# Если работает -- увидите ASCII-art Star Wars в реальном времени.
# Это знаменитый pet project, который годами работает

# 4. NSLOOKUP -- старая команда DNS. До сих пор работает
nslookup google.com
# Сравните с современной dig:
dig google.com +short

# 5. Посмотреть, каким маршрутом ваш трафик идёт через интернет
traceroute -m 30 8.8.8.8
# Это эхо ARPANET-эпохи: каждый hop -- это router,
# и вы видите путь пакета через AS (autonomous systems)

Многие из этих команд — буквально те же программы, что были написаны 30-40 лет назад. Их код не менялся, потому что протоколы не менялись. Это редкость в IT — большинство кода живёт 5-10 лет максимум.


Проверка знанийKnowledge check
Почему ARPANET, спроектированный для 4 университетов в 1969, до сих пор работает (под именем Internet) для 5 миллиардов пользователей? Что в архитектуре сделало это возможным?
ОтветAnswer
Несколько фундаментальных решений 1970-х оказались гениально устойчивыми к масштабу: (1) Packet switching вместо circuit switching. Каждый пакет независим, нет глобального состояния соединения. Это позволяет добавлять узлы без переконфигурации всего. (2) Иерархическая адресация (IP -> subnet -> host). Можно делать routing на уровне префиксов, не зная про каждый отдельный хост. Это масштабируется логарифмически, а не линейно. (3) Decoupling протоколов в слои (TCP/IP). IP занимается доставкой пакетов, TCP -- надёжностью, HTTP -- содержанием. Можно менять верхние слои (HTTP/1 -> HTTP/2 -> HTTP/3), не трогая нижние. Можно добавить новый протокол приложения (Telegram, видеоконференция), используя существующий TCP/UDP. (4) DNS как иерархическая распределённая система имён. Нет одного центра, который должен знать все имена -- знание распределено по zone-серверам. (5) End-to-end principle -- умные конечные точки, тупая сеть. Сеть просто доставляет пакеты, всю сложность (retransmission, encryption, application logic) делают endpoint'ы. Это позволяет инфраструктуре оставаться простой и масштабируемой. (6) Открытые стандарты RFC. Любая компания могла построить свою реализацию без лицензионных платежей. Это привело к взрывному распространению. Главный урок для инженеров: дизайн ради простоты на уровне фундамента окупается на десятилетия. Сложность можно добавить наверх; нельзя убрать с фундамента.

Проверьте понимание

Результат: 0 из 0
Концептуальный
Вопрос 1 из 6. Какая ключевая инновация ARPANET отличала её от телефонных сетей и стала фундаментом современного Internet?

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 4