-
[звучить пісня і рахунок: 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 мільярдами пристроїв. Саме завдяки цим
принципам стійкості й резервування, що більше
-
маршрутизаторів ми додаємо, то надійнішим стає
інтернет. Чудово й те, що ми можемо масштабувати
-
й розширювати інтернет, не перериваючи
обслуговування користувачів. Інтернет
-
складається з сотень тисяч мереж і мільярдів
комп'ютерів і пристроїв, підключених фізично.
-
Ці різні системи, що й складають інтернет,
з'єднуються між собою, спілкуються між собою
-
і працюють разом завдяки узгодженим
стандартам передачі даних в інтернеті.
-
Обчислювальні пристрої або маршрутизатори
в Інтернеті допомагають усім пакетам
-
діставатися до пункту призначення, де вони,
за потребою, збираються в певному порядку.
-
Це відбувається мільярди разів на день,
незалежно від того, чи ми надсилаємо
-
електронного листа, відвідуємо веб-сторінку,
спілкуємось у відеочаті, користуємося
-
мобільним додатком, або ж датчики чи
пристрої в інтернеті спілкуються між собою.