[Звучит песня и счет: 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 миллиардами устройств. Именно благодаря этим принципам устойчивости и резервирования, что больше
маршрутизаторов мы добавляем, то надежнее становится интернет. Замечательно и то, что мы можем масштабировать
и расширять интернет, не прерывая обслуживания пользователей. Интернет
состоит из сотен тысяч сетей и миллиардов компьютеров и устройств, подключенных физически.
Эти различные системы, и составляют интернет, соединяются между собой, общаются между собой
и работают вместе благодаря согласованным стандартам передачи данных в интернете.
Вычислительные устройства или маршрутизаторы в Интернете помогают всем пакетам
добираться до пункта назначения, где они, по необходимости, собираются в определенном порядке.
Это происходит миллиарды раз в день, независимо от того, мы отправляем
электронное письмо, посещаем веб-страницу, общаемся в видеочате, пользуемся
мобильным приложением, или датчики или устройства в интернете общаются между собой.