Все эти подтверждения дают в сумме значительный объем трафика. Мы представляем себе, например, передачу объемного файла как одностороннюю операцию, но на самом деле реципиент посылает обратно отправителю сотни контрольных сообщений. Отчет, составленный в конце 2014 года, показал, что почти 10 % восходящего направления интернет-трафика в часы пик приходится на Netflix[33], о котором мы привыкли думать, что он отправляет данные исключительно в нисходящем направлении, к пользователям. Но все эти видео производят огромное количество АСКов.
В сфере человеческих отношений беспокойство о том, что сообщение действительно дошло до собеседника, пронизывает весь разговор. Говорящий может неосознанно прибавлять «понимаешь» в конце каждого предложения, а слушатель в свою очередь не может удержаться от кивков и бесконечного потока междометий «ну», «да-да», «согласен», «понял», «угу». Мы делаем это даже в личном разговоре, а уж в беседе по телефону это зачастую единственный способ дать понять собеседнику, что вы еще не отключились и продолжаете слушать. Неудивительно, что самой успешной в XXI веке маркетинговой кампанией оператора беспроводной связи стала повторяемая вновь и вновь крылатая фраза инженера сетевого контроля качества: «Ты меня слышишь?!»
Когда что-то в этой словесной баталии идет не так, мы нередко недоумеваем. Как говорит блогер и разработчик программного обеспечения Тайлер Трит:
В распределенной системе мы стараемся гарантировать доставку сообщения, ожидая подтверждения, что оно было получено, но в любой момент что-то может пойти не так. Было ли сообщение сброшено? Был ли сброшен АСК? Сломался ресивер? Или просто все тормозит? Сеть тормозит? Или это я торможу?
В задаче, с которой сталкиваются византийские генералы, напоминает он нам, «дело не в сложности разработки, а в невозможности результата».
Ранние сетевые исследования, замечает Винт Серф, основывались на предположении, что «мы можем построить надежную сеть». Но, с другой стороны, «интернет был основан на предположении, что сеть вовсе не обязательно должна быть надежной, и приходилось осуществлять непрерывные повторные передачи для возобновления соединения».
По иронии судьбы, одно из немногих исключений – это передача человеческого голоса. Голосовые коммуникации в режиме реального времени, такие как Skype, например, обычно не используют протокол TCP, который лежит в основе большей части интернета. На заре сетевых коммуникаций исследователи обнаружили, что передавать человеческий голос, используя надежные, устойчивые протоколы со всеми их АСК и повторными передачами утерянных данных, убийственно. Люди сами обеспечивают «ошибкоустойчивость». Как объясняет Серф, «в случае с речью, если пакет теряется, вы просто говорите: "Повтори еще раз, пожалуйста, я что-то пропустил"».