Як насправді працює Інтернет: від магістральних мереж до браузера

1

Ніхто не володіє Інтернетом. Це не корпоративний актив. Не державна власність. Це хаотична глобальна сукупність мереж. Великі. Маленькі. Вони з’єднуються в безлічі варіантів, утворюючи єдину сутність, якою ми користуємося щодня.

З 1969 року він стрімко зріс. Чотири хост-комп’ютери перетворилися на десятки мільйонів. Масштаби вражають уяву. Проте відсутність єдиного власника означає хаос. Інтернет-суспільство (Internet Society), некомерційна організація, заснована 1992 року, забезпечує безперебійну роботу мережі. Вони контролюють політики та протоколи, що визначають взаємодію. Без них правила були б фрагментованими. Інфраструктура впала б.

Вам необхідно зрозуміти структуру, що лежить в основі. Зокрема, те, як комп’ютер підключається до інших. Це не абстрактна теорія. Це визначає, як швидко завантажується ваша сторінка. Наскільки безпечно передаються ваші дані. Ми розберемо системи доменних імен. Точки доступу мережі. Величезну магістральну мережу Інтернету, яка несе на собі тягар глобальної комунікації.

Ієрархія підключень

Ваш комп’ютер не пов’язується безпосередньо з сервером, на якому розміщено ваш улюблений веб-сайт. Він пов’язується з проміжною ланкою. Ця проміжна ланка підключається до більшої мережі. І так далі.

Ця ієрархія має вирішальне значення. Вона пояснює, чому одні з’єднання швидкі. Чому інші гальмують? Розуміння цього потоку допомагає усунути неполадки. Воно допомагає оцінити складність простого натискання.

Ми починаємо тут. З зв’язку між вашим пристроєм та іншим світом.

Ви її не бачите. Ви майже не думаєте про неї. Але щоразу, коли ви відкриваєте браузер, ви користуєтеся величезною децентралізованою інфраструктурою, що охоплює весь світ. Ваш ноутбук підключається до модему або оптоволоконної лінії. Ця лінія веде до вашого провайдера інтернет-послуг (ISP). На роботі ви, швидше за все, підключені до локальної обчислювальної мережі (LAN), яку потім провайдер компанії направляє у ширший світ.

Інтернет – це не єдине ціле. Це мережа мереж.

Великі телекомунікаційні гіганти управляють власними магістральними мережами (backbones) — високопропускними каналами, що працюють цілодобово, які передають терабайти даних для мільйонів користувачів одночасно. Регіональні офіси пов’язують місцеві будинки та підприємства з цими головними артеріями. Система спроектована без центрального вузла. Якщо один вузол виходить із ладу, дані не зупиняються. Вони перенаправляються. Пакети знаходять новий шлях в обхід перешкоди. Ви нічого не помічаєте.

З’єднання різних мереж

Розглянемо спрощений знімок, як це працює.

Компанія А – це невеликий бізнес. Вона має внутрішній сервер і мережевий принтер. Вона чудово спілкується сама з собою. Компанія Б це величезний інтернет-провайдер. Вона володіє будинками у великих містах, заповненими серверами і маршрутизаторами, з’єднаними власними лініями оптоволокна.

Користувачі компанії А можуть спілкуватися один з одним. Клієнти Компанії Б можуть спілкуватися. Але ці дві мережі ізольовані. Вони можуть взаємодіяти.

Щоб вирішити цю проблему, обидві компанії погоджуються підключитися до точок обміну інтернет-трафіком (IXP) у різних містах. Ця угода дозволяє розрізненим системам зв’язуватися з ширшою екосистемою Інтернету. Тепер трафік може проходити між ними.

Це мікроскопічний погляд на глобальний Інтернет. Для макроскопічного погляду зверніться до проекту Opte Барретта Лайона. Він відображає канали Інтернету, що еволюціонують, розкриваючи складну, схожу на павутину структуру інтернет-каналів і з’єднань.

Роль маршрутизатора в комутації пакетів

Ніщо з цього не спрацювало б без “маршрутизаторів”. Ці спеціалізовані пристрої – регулювальники руху цифрового світу. Вони визначають, куди саме повинні прямувати пакети даних від однієї точки до іншої.

Повідомлення може залишити пристрій у Нью-Йорку і прибути в Токіо за секунду. Для цього воно проходить через безліч мереж та десятки маршрутизаторів. Кожен маршрутизатор має дві основні завдання:

  • Керування трафіком: Він гарантує, що інформація не забиває з’єднання для не пов’язаних з нею користувачів. Він запобігає навантаженню «нейтральних» мереж трафіком, який не призначений для них.
  • Гарантія доставки: Він забезпечує доставку даних до пункту призначення, навіть якщо прямий шлях заблоковано.

Маршрутизатори з’єднують мережі, зберігаючи їхню роздільність. Вони передають інформацію, але запобігають небажаному переповненню. Незалежно від того, чи дві мережі або дві тисячі з’єднані, функція залишається незмінною. Інтернет покладається на цю необхідність, щоб функціонувати як єдине, хай і хаотичне ціле.

1986 року Національний науковий фонд (NSF) побудував першу справжню високошвидкісну магістральну мережу інтернету. Вона називалася NSFNET. За сьогоднішніми мірками вона була не дуже вражаючою. Одна лінія T1, що з’єднувала 170 дрібніших мереж. Швидкість становила 1,5 Мбіт/с. Це повільно. Болісно повільно.

Компанії IBM, MCI та Merit Network допомогли її побудувати. Вони швидко зрозуміли, що 1,5 Мбіт/с буде недостатньо. Наступного року вони запустили магістраль з урахуванням технології T3. Це збільшило швидкість до 45 Мбіт/с. Величезний стрибок на той час.

Магістральні мережі – це просто головні артерії інтернету. Вони обробляють обсяги трафіку, з якими ваша домашня мережа Wi-Fi ніколи не зіткнеться. У ранні дні тільки гігантські телекомунікаційні компанії мали обладнання для управління такою пропускною спроможністю. Ви не могли просто придбати таку інфраструктуру.

Тепер все інакше. Сотні компаній управляють своїми високоємними магістралями. Усі вони з’єднуються у різних точках обміну інтернет-трафіком (IXP), розкиданих по всьому світу. Це створює сітчасту структуру. Гігантська угода між людьми про вільну взаємодію. Якщо ви перебуваєте в Токіо, а я в Торонто, наші дані перескакують через ці з’єднання. Кожен може спілкуватися з кожним.

Розуміння IP-адрес та двійкової логіки

Для кожного пристрою в цій мережі потрібний унікальний ідентифікатор. IP-адреса. Це скорочення від Internet Protocol (Протокол Інтернету). Це половина пари TCP/IP. Інша половина – Transmission Control Protocol (Протокол управління передачею). Разом вони визначають, як комп’ютери з’єднуються один з одним. Протокол це просто набір правил. Обумовлений спосіб доступу до сервісу. Зазвичай через програму, таку як веб-браузер, а чи не безпосередньо людиною.

Візьмемо стандартну адресу IPv4. Він має такий вигляд: 216.27.61.137.

Люди віддають перевагу десятковій системі. До неї простіше вводити дані. Але комп’ютери говорять мовою двійкової системи. Та ж адреса у двійковому вигляді виглядає так: 11011000.00011011.00111101.10001001.

Кожен блок чисел називається октетом. Чому? Тому що у двійковій системі він складається з восьми позицій. Чотири октети становлять 32 біти. Кожна позиція може дорівнювати 1 або 0. Це два стани. $2^8$ дорівнює 256. Таким чином, кожен октет змінюється від нуля до 255.

Об’єднавши чотири октети, ми отримуємо $2^{32}$. Близько 4,3 мільярдів унікальних значень. Це звучить як багато. Але інтернет зростав швидше, ніж будь-хто міг передбачити. 4,3 мільярда виявилося замало.

Деякі адреси недоступні для використання. 0.0.0.0 призначений для локальних мереж. 255.255.255.255 використовується для широкомовної передачі. Ці адреси не можна призначати для конкретних пристроїв.

Рішенням стала версія IPv6. Інженерна група з Інтернету (IETF) почала працювати над нею наприкінці 1998 року. Офіційний запуск відбувся 6 червня 2012 року. IPv6 використовує 128-бітові адреси. Це дає вам 340 трлн трильйонів трильйонів адрес. Нам має вистачити на якийсь час. (Поки що.)

Зверніть увагу, що IPv5 ніколи офіційно не впроваджувалась. Просто так не склалося.

IPv6 виглядає інакше. Вона використовує шістнадцяткову систему. Сегменти поділяються двокрапками. Наприклад: ba5a:9a72:4aa5:522e:b893:78dd:a6c4:f033.

Шістнадцяткова система використовує 16 цифр. 0-9 та A-F. Літери замінюють значення від десяти до п’ятнадцяти. Це компактно. Ефективно. Потрібно.

Народження системи доменних імен (DNS)

Ранні підключення до Інтернету були ручними. Ви набирали номер. Ви вводили цифри. Якщо ви хотіли звернутися до конкретного хоста, вам була потрібна його IP-адреса. Наприклад, 216.27.22.162.

Це працювало нормально, коли комп’ютерів було лише кілька штук. Коли їхня кількість досягла тисяч, це стало кошмаром. Запам’ятовуйте випадкові набори цифр для кожного сайту? Неможливо.

Першим рішенням став текстовий файл. Таблиця хостів (host table). Вона підтримувалась Центром мережевої інформації (NIC). Вона зіставляла імена з IP-адресами. Просто. Але файл став надто великим. Занадто громіздким для ручного оновлення.

Пол Моккапетріс побачив проблему. У листопаді 1983 року він представив два документи RFC (Request for Comments) до Міжнародної робочої групи мереж.

RFC 882 описував концепції системи доменних імен (DNS). Вона автоматично зіставляла текстові імена з IP-адресами. RFC 883 пропонував реалізацію.

Раптом вам більше не потрібно запам’ятовувати 216.27.22.162. Ви просто запровадили www.howstuffworks.com. DNS виконував переклад. Це відбувалося у фоновому режимі. Швидко.

Це зрушення змінило те, як люди взаємодіють з мережею. Ми перестали мати справу з машинами. Ми почали взаємодіяти із мітками. Іменами. Пам’ять стала неважливою. Доступність стала всім.

Магістральна мережа зростала. Адреси розширювалися. Імена ставали простішими. Інтернет не просто став більшим. Він став зручнішим для використання. І він продовжував прискорюватись. Лінії T3 замінили оптоволокном. Швидкість 45 Мбіт/с змінилася гігабітами. Терабіт. Проте базова логіка залишилася незмінною. З’єднати. Адресувати. Перекласти. Повідомити.

Ми все ще використовуємо структури, створені у ті ранні дні. IPv4 вмирає. IPv6 поширюється повільно. DNS всюди. Інфраструктура надійна. Але ж фундаментальна проблема залишається. Як нам підключати мільярди пристроїв, не гублячись у шумі?

Відповіддю є не один протокол. Це багаторівнева система. Ієрархія угод. Кожен рівень вирішує конкретну «вузьку» проблему. Магістральна мережа обробляє обсяги даних. ІР-адресація забезпечує ідентифікацію. DNS забезпечує запам’ятовування.

Не магія. Це – інженерія. Брудна, складна, чудова інженерія. І вона тримається. Насилу.

Ви вводите адресу веб-сайту. Ваш браузер завантажує сторінку. Це відбувається так швидко, що ви ледве помічаєте витрачені зусилля. Але за цією простотою ховається масштабна глобальна система координації, що працює над перекладом тексту, зрозумілого людині, у числі зрозумілі машині. Зокрема, для подолання розриву між тим, що ви вводите, і тим, що розуміє мережу, використовуються Uniform Resource Locator (URL) та система доменних імен (DNS).

Коли ви вводите “https://www.howstuffworks.com”, ви використовуєте доменне ім’я. Той самий домен, howstuffworks.com також присутній в адресах електронної пошти, наприклад [email protected]. Щоразу, коли ви використовуєте один із них, інфраструктура DNS Інтернету набуває чинності. Вона перетворює це дружнє ім’я на IP-адресу. Це числова мітка, яку комп’ютер використовує для пошуку конкретної машини, на якій розміщується цей контент. Без цього шару перетворення вам довелося б запам’ятовувати рядки чисел для кожного відвідуваного сайту. Це було б непрактично. Це було б незручно.

Структура доменних імен

Доменні імена мають ієрархічну структуру. На вершині знаходяться домени верхнього рівня (TLD), також відомі як домени першого рівня. Це знайомі суфікси: .COM, .ORG, .NET, .EDU та .GOV. Уявіть їх як широкі категорії чи райони.

У межах кожного TLD існує величезний реєстр доменів другого рівня. Тільки в просторі .COM є такі організації як HowStuffWorks, Yahoo і Microsoft. Кожне з цих імен має бути унікальним у межах конкретного TLD. Ви не можете зареєструвати дві різні компанії під ім’ям Microsoft.com.

Ліворуч від домену другого рівня знаходиться ім’я хоста. Це частина, яка вказує на конкретний каталог чи службу на конкретній машині. У “www.howstuffworks.com” “www” – це ім’я хоста. Воно вказує на конкретний сервер із конкретною IP-адресою. Один домен може потенційно розміщувати мільйони унікальних імен хостів за умови, що кожне з них залишається унікальним у просторі імен цього домену.

Як DNS-сервери обробляють запити

DNS-сервери – це регулювальники руху в Інтернеті. Вони приймають запити від вашого браузера, поштового клієнта або інших імен серверів для перетворення доменних імен в IP-адреси. Коли запит надходить на DNS-сервер, він не просто ворожить. Він слідує одному з чотирьох конкретних шляхів:

  1. Пряма відповідь: Сервер вже знає IP-адресу. Він негайно відправляє його назад. Це найшвидший шлях.
  2. Рекурсивний пошук: Сервер не знає відповіді. Він зв’язується з іншим DNS-сервером, щоб пізнати його. Йому може знадобитися перейти через кілька серверів, перш ніж знайде потрібні дані.
  3. Перенаправлення: Сервер каже: «Я не знаю, але ось IP-адреса DNS-сервера, яку знає». Він вказує вам у правильному напрямку, не виконуючи важку роботу самостійно.
  4. Повідомлення про помилку: Якщо домен недійсний або не існує, сервер повертає помилку. Ви вперлися в глухий кут.

Ця логіка забезпечує ефективну обробку запитів, навіть якщо відповідь не доступна у локальній пам’яті.

Приклад покрокової роздільної здатності DNS

Давайте простежимо, що відбувається, коли ви вводите www.howstuffworks.com у свій браузер. Цей процес є естафетою, в якій бере участь кілька спеціалізованих серверів.

Ваш браузер зв’язується з локальним сервером DNS. Цей сервер не знає IP-адресу для www.howstuffworks.com з голови. Тому він починає пошук, звертаючись до кореневого DNS-сервера. Кореневі сервери не знають конкретних адрес сторінок, але вони знають контактну інформацію для всіх серверів, які обробляють домени верхнього рівня, такі як .COM або .NET.

Кореневий сервер відповідає перенаправленню. Він ніби каже: «Я не знаю, де знаходиться www.howstuffworks.com, але я знаю, хто обробляє зону .COM». Він надає IP-адресу .COM DNS-сервера.

Потім ваш локальний DNS-сервер запитує DNS-сервер .COM. Він запитує: Ви знаєте, де знаходиться www.howstuffworks.com? .COM сервер не зберігає остаточну IP-адресу, але він знає сервери імен, які відповідають за домен howstuffworks.com. Він повертає адреси цих імен серверів.

Тепер ваш локальний DNS-сервер пов’язується з DNS-сервером “howstuffworks.com”. Цей сервер зберігає фактичний запис. Він відповідає конкретною IP-адресою для www.howstuffworks.com.

Ця IP-адреса повертається назад по ланцюжку: від сервера howstuffworks.com до вашого локального DNS-сервера і, нарешті, до вашого браузера. Ваш браузер потім використовує цю IP-адресу для підключення до веб-сервера та запиту сторінки.

Чому важливі надмірність та кешування

Цей багатокроковий процес видається повільним. Але він не має бути таким. Система спроектована для швидкості та надійності завдяки двом ключовим механізмам: надмірності та кешування.

Надмірність означає, що кожному рівні ієрархії є кілька DNS-серверов. Якщо один кореневий сервер виходить із ладу, його замінюють інші. Якщо .COM сервер відмовляє, трафік перенаправляється. Інтернет розподілено за своєю природою, що робить його стійким до збоїв.

Кешування це те, що зберігає високу швидкість. Коли DNS-сервер дозволяє запит, він зберігає IP-адресу у своєму кеші. Якщо ваш локальний DNS-сервер вже запитував кореневий сервер про будь-який домен .COM, він запам’ятовує контактну інформацію для .COM DNS-сервера. Йому не потрібно знову питати кореневий сервер. Він пропускає крок. Це кешування відбувається кожного запиту. Це запобігає навантаженню системи під мільярдами запитів, які вона обробляє щодня.

Ці сервери невидимі. Ви ніколи їх не бачите. Проте вони обробляють величезні обсяги трафіку щодня. Той факт, що ця розподілена база даних працює так гладко, є доказом її внутрішньої архітектури.

Сервери та клієнти Інтернету

Як тільки IP-адреса дозволена, з’єднання встановлюється. На цьому етапі ми переходимо від імені до ролей. Кожна машина в Інтернеті відноситься до однієї з двох категорій: сервер або клієнт.

Сервери надають послуги. Вони зберігають дані, обробляють електронну пошту, розміщують веб-сайти. Клієнти запитують ці послуги. Це пристрої, за якими ви сидите. Коли ви переглядаєте www.howstuffworks.com, ваш комп’ютер є клієнтом. Машина, яка розміщує цей контент є сервером.

Клієнти підключаються з конкретною метою. Ваш веб-браузер спілкується із веб-сервером на машині-сервері. Він не спілкується із поштовим сервером. Він не спілкується із FTP-сервером. Він орієнтований на конкретний програмний процес, призначений для обробки HTTP-запитів. Ця спеціалізація дозволяє серверам ефективно управляти ресурсами, виділяючи потужність для конкретних завдань, а не намагаючись зробити все одразу.

Існує також різниця у тому, як ці машини ідентифікуються. У серверів статичні IP-адреси. Вони не змінюються. Ця стабільність потрібна, щоб клієнти завжди могли їх знайти.

У клієнтів, як правило, динамічні IP-адреси. Якщо ви підключаєтеся через модем з комутацією каналів або типове з’єднання провайдера, ваша IP-адреса призначається з пула щоразу, коли ви входите в систему. Він є унікальним для вашої сесії. Наступного разу, коли ви підключитеся, ви можете отримати інший номер. Провайдери використовують цю модель для економії IP-адрес. Їм потрібна лише одна доступна адреса для кожного активного пристрою, а не одна постійна адреса для кожного клієнта. Це динамічне призначення ефективне для провайдера, хоча це означає, що ваша цифрова адреса є тимчасовою.

Взаємодія між статичними серверами та динамічними клієнтами, пов’язаними через пошук DNS, утворює основу повсякденного використання Інтернету. Це складний танець запитів та відповідей, прихований за простотою одного URL.

Згадайте останній раз, коли ви завантажували веб-сторінку або завантажували файл. Ймовірно, ви не замислювалися про невидимі «рукостискання», що відбуваються у фоновому режимі. Ви просто натиснули кнопку. Але за цією простотою ховається жорстка структура із пронумерованих дверей та суворих правил взаємодії.

Сервери не просто транслюють свої послуги у порожнечу. Вони роблять їх доступними через конкретні точки входу, звані портами.

Розуміння портів та протоколів

Порт – це просто пронумерований шлюз для конкретного сервісу, що працює на машині. Якщо сервер розміщує веб-сайт і FTP-сервер, він не змішує дані. Він поділяє їх за допомогою стандартних призначень портів.

  • Порт 80 : Це стандартний порт для незашифрованого веб-трафіку. Коли ви бачите http://, ваш браузер стукає у ці двері.
  • Порт 21 : Це порт для FTP. Якщо ви передаєте файли безпосередньо, ви, ймовірно, використовуєте цей канал.

Клієнти підключаються до сервісу, звертаючись до конкретної IP-адреси та цього конкретного номера порту. Це двоетапна автентифікація розташування та типу сервісу.

Після встановлення з’єднання починається сама розмова. Тут набувають чинності “протоколи”.

Протоколи – це граматика інтернету. Вони визначають, як клієнт та сервер обмінюються інформацією. Кожен веб-сервер у світі відповідає протоколу передачі гіпертексту (HTTP). Це стандартизований спосіб запиту сторінки та отримання у відповідь HTML-документа.

“Протоколи просто описують, як клієнт і сервер будуть вести свою розмову.”

Без цих правил інтернет перетворився б на хаотичне місиво несумісних жаргонів. Ви б не знали, чи говорить сервер англійською, французькою чи просто видає статичний шум.

Чому ця інфраструктура має значення

Ми часто ставимося до інтернету як до чарівної хмари. Ми забуваємо, що він побудований на фізичній та логічній інфраструктурі.

Мережі, маршрутизатори, точки мережного доступу (NAP), інтернет-провайдери (ISP) та DNS-сервери працюють узгоджено для переміщення даних. Вражаюче усвідомлювати, що весь цей обмін відбувається за мілісекунди. Запит із Нью-Йорка до сервера в Токіо займає не секунди. Він займає лише частки секунди, бо маршрутизатори знають, куди відправити пакет.

Ця інфраструктура – ​​не просто зручність. Це є фундамент.

Без цих компонентів ми втрачаємо можливість миттєво обмінюватись інформацією. Життя стало б повільніше. Бізнес став би локалізованим. Комунікація повернулася б до паперових листів чи затриманих трансляцій.

Протокол передачі гіпертексту (HTTP) та система портів – це не просто технічні деталі. Це причина, через яку сучасний світ функціонує саме так.

Поглиблення ваших знань

Якщо ви хочете заглянути ще глибше, є чому повчитися.

  • Як працюють веб-сервери : Це пояснює механізм прихований під капотом.
  • Структура інтернету : Розуміння ієрархії інтернет-провайдерів та NAP.
  • Механіка DNS : Як доменні імена перетворюються на IP-адреси.

Інтернет – це складний організм. Але як тільки ви розумієте порти та протоколи, він перестає бути «чорною скринькою». Ви починаєте бачити дроти. Ви починаєте бачити правила.

І це змінює те, як ви взаємодієте з кожним цифровим інструментом, який ви використовуєте.