[звучить пісня і рахунок: 7, 6, 5, 4, 3, 2, 1] Інтернет: пакети, маршрутизація й надійність
Привіт, мене звати Лінн Рут. Я системний інженер у Spotify, і я визнаю, що часто сприймаю
надійність інтернету як належне. Обсяги інформації в інтернеті, які щомиті
збільшуються, просто вражають. Але як можна транспортувати кожен фрагмент
даних надійно? Скажімо, ви хочете відтворити пісню на Spotify. Може здаватися,
що ваш комп'ютер підключається напряму до серверів Spotify, а Spotify надсилає вам
пісню на спеціальну лінію. Але насправді інтернет працює не так. Якби Інтернет був
прямим, спеціальним зв’язком, він не міг би працювати, коли в ньому одночасно
мільйони користувачів. Особливо якщо немає гарантії, що кожен провід і комп’ютер
працюють постійно й добре. Ні. Передача даних в інтернеті далеко не така пряма.
Багато років тому, на початку 1970-х, ми з партнером Бобом Каном почали працювати
над розробкою того, що ми сьогодні називаємо інтернетом. Нам з Бобом надали можливість
і відповідальність розробляти протоколи інтернету та його архітектуру. Тож ми
наполегливо працювали над розширенням та еволюцією інтернету, і продовжуємо
це робити й зараз. Спосіб передачі даних з одного комп'ютера на інший досить цікавий.
Він не має слідувати конкретним шляхом, адже ваш шлях може змінитися просто
посеред комунікації між двома комп'ютерами. Інформація в інтернеті переходить з одного
комп'ютера на інший у так званому "інформаційному пакеті", і такий пакет
транспортується в інтернеті з одного місця в інше, майже як ви самі їдете в машині
з одного місця в інше. Залежно від завантаженості руху або дорожніх умов,
ви можете забажати або бути змушеними їхати щоразу різними шляхами. І так само,
як ви перевозите всілякі речі в машині, за допомогою IP-пакетів можна надсилати
багато видів цифрової інформації. Але є деякі обмеження. Що робити, якщо, скажемо,
вам потрібно перевезти космічний шатл з його будівельного майданчика до місця запуску?
Шатл не поміститься в одну вантажівку, тому його потрібно розібрати на частини
й перевезти кількома вантажівками. Усі вони можуть поїхати різними маршрутами й дістатися
до місця в різний час. Але щойно всі частини прибудуть, ви зможете зібрати шатл, і він
буде готовий до запуску. В інтернеті деталі передаються аналогічно. Якщо ви
хочете надіслати другові або завантажити на веб-сайт дуже велике зображення, воно
може складатися з десятків мільйонів біт одиниць і нулів, що забагато для передачі
в одному пакеті. Оскільки ці дані на комп'ютері, комп'ютер, що надсилає зображення, може
швидко розбити його на сотні або навіть тисячі менших частин, тобто пакетів.
На відміну від вантажівок, у цих пакетів немає водіїв, і вони не обирають свій маршрут.
Кожен пакет має інтернет-адреси: звідки він іде й куди прямує. Спеціальні комп’ютери
в інтернеті під назвою "маршрутизатори" діють як менеджери трафіку, щоб підтримувати
безперебійне переміщення пакетів по мережі. Якщо один маршрут перевантажений, окремі
пакети можуть передаватися іншими маршрутами в інтернеті й прибувати до призначення
в інший час або навіть перемішаними. Як це працює? Як частина інтернет-протоколу,
кожен маршрутизатор відстежує кілька шляхів для відправки пакетів і вибирає найдешевший
доступний шлях для кожного фрагмента даних на основі IP-адреси призначення пакету.
"Найдешевший" у цьому випадку не означає за вартістю, але за часовими й нетехнічними
факторами, такими як політика й відносини між компаніями. Найчастіше найкращий маршрут
передачі даних не обов'язково найбільш прямий. Наявність варіантів шляхів робить мережу стійкою
до несправностей. Тобто мережа надсилатиме пакети навіть якщо є катастрофічні несправності.
Це ключовий принцип інтернету: надійність. А що ж робити, якщо ви запитуєте певні дані,
але не всю інформацію було доставлено? Скажімо, ви хочете послухати пісню.
Як переконатися в тому, що всі дані буде доставлено, щоб пісня відтворилася?
Представляємо нашого нового друга, TCP, або протокол управління передачею.
TCP управляє надсиланням та отриманням усіх даних у пакетах. Це ніби лист з підтвердженням.
Коли ви запитуєте пісню на своєму пристрої, Spotify надсилає пісню, розбиту на багато
пакетів. Коли ваші пакети надійдуть, TCP проводить повну інвентаризацію й надсилає
підтвердження отриманння кожного пакета. Якщо всі пакети є, TCP "підписує" факт доставки —
і все. (музика) Якщо TCP виявить, що деякі пакети відсутні, він не "підпише" доставку, інакше
ваша пісня не звучатиме як слід, адже частина пісні може бути відсутньою. Spotify
повторно надсилатиме кожний відсутній або неповний пакет. Щойно TCP перевірить доставку
кількох пакетів для цього запиту пісні, ваша пісня почне відтворюватися. Найкраще в системах
TCP і маршрутизаторів — це можливість їх масштабування. Вони працюватимуть і з 8,
і з 8 мільярдами пристроїв. Саме завдяки цим принципам стійкості й резервування, що більше
маршрутизаторів ми додаємо, то надійнішим стає інтернет. Чудово й те, що ми можемо масштабувати
й розширювати інтернет, не перериваючи обслуговування користувачів. Інтернет
складається з сотень тисяч мереж і мільярдів комп'ютерів і пристроїв, підключених фізично.
Ці різні системи, що й складають інтернет, з'єднуються між собою, спілкуються між собою
і працюють разом завдяки узгодженим стандартам передачі даних в інтернеті.
Обчислювальні пристрої або маршрутизатори в Інтернеті допомагають усім пакетам
діставатися до пункту призначення, де вони, за потребою, збираються в певному порядку.
Це відбувається мільярди разів на день, незалежно від того, чи ми надсилаємо
електронного листа, відвідуємо веб-сторінку, спілкуємось у відеочаті, користуємося
мобільним додатком, або ж датчики чи пристрої в інтернеті спілкуються між собою.