Zero latency это что

zero-latency

zero-latency data transfers — передачи данных без задержки см. тж. latency

Смотреть что такое «zero-latency» в других словарях:

ZLE — Zero Latency Enterprise (Computing » General) * Zone Limit Exceeded (Computing » Security) * Zone Limit Exceeded (Computing » Networking) … Abbreviations dictionary

ZLE — Zero Latency Enterprise (Compaq) … Acronyms

ZLE — Zero Latency Enterprise (Compaq) … Acronyms von A bis Z

Real-time business intelligence — is the process of delivering information about business operations without any latency. In this context, real time means delivering information in a range from milliseconds to a few seconds after the business event. While traditional business… … Wikipedia

Happy Computers — (HCI) was a small company producing disk drive enhancements for the Atari 8 bit and Atari ST computer families. Happy Computers is most noted for the add in boards for the Atari 810 and 1050 disk drives, which achieved a tremendous speed… … Wikipedia

Convolution reverb — In audio signal processing, convolution reverb is a process for digitally simulating the reverberation of a physical or virtual space. It is based on the mathematical convolution operation, and uses a pre recorded audio sample of the impulse… … Wikipedia

Digital nervous system — is a phrase, popularly associated with Bill Gates of Microsoft, used to describe a vision for how the IT infrastructure of an enterprise could be analogous to the autonomic nervous system of a biological organism. Gates made extensive use of the… … Wikipedia

Convolution — For the usage in formal language theory, see Convolution (computer science). Convolution of two square pulses: the resulting waveform is a triangular pulse. One of the functions (in this case g) is first reflected about τ = 0 and then offset by t … Wikipedia

ZL — Zarlink Semiconductor, Inc. (Business » NYSE Symbols) * Zero Latency (Academic & Science » Electronics) * Zieh Leine (International » German) * Zero Lux (Business » Products) * Easy CD Creator Drag to Disk File (Computing » File Extensions) *… … Abbreviations dictionary

Web crawler — For the search engine of the same name, see WebCrawler. For the fictional robots called Skutters, see Red Dwarf characters#The Skutters. Not to be confused with offline reader. A Web crawler is a computer program that browses the World Wide Web… … Wikipedia

Gemstone Database Management System — Infobox programming language name = GemStone Database Management System paradigm = Application framework year = 1991 typing = designer = implementations = dialects = influenced by = Smalltalk,Object oriented programming influenced = J2EEGemStone… … Wikipedia

Источник

Zero Latency: рассказ о локации в Лас-Вегасе и планах на киберспорт

Zero latency это что. Entrance to VRPBZL at MGM Grand 1024x716 1. Zero latency это что фото. Zero latency это что-Entrance to VRPBZL at MGM Grand 1024x716 1. картинка Zero latency это что. картинка Entrance to VRPBZL at MGM Grand 1024x716 1

Недавно австралийская компания Zero Latency из Мельбурна наладила сотрудничество с MGM Grand Las Vegas, чтобы запустить свою многопользовательскую игровую локацию виртуальной реальности в крупнейшем игровом городе мира.

Арена площадью около 600 квадратных метров открылась на прошлой неделе. Это самая технологичная достопримечательность зала развлечений MGM и одна из 20 локаций Zero Latency по всему миру, включая Орландо, Бостон, Филадельфию, Висконсин и Поконос в Пенсильвании.

Соучредители Zero Latency генеральный директор Тим Руз (Tim Ruse) и технический директор Скотт Вандонкелаар (Scott Vandonkelaar) говорят, что к концу года планируют добавить к этому ещё 30-40 локаций, а в 2019 году довести их количество до сотни.

Zero latency это что. mgm grand zero latency players. Zero latency это что фото. Zero latency это что-mgm grand zero latency players. картинка Zero latency это что. картинка mgm grand zero latency players

Партнёрство с авторитетным брендом MGM помогает Zero Latency развивать бизнес. Руз говорит, что MGM приложила все свои маркетинговые силы к продвижению «Virtual Reality Powered by Zero Latency».

Здорово добавить арену на рынок другого уровня в США и стать партнёром глобального бренда, такого как MGM, — объясняет Руз. — Не считая импульса от бренда и маркетинговой платформы MGM, глобальное значение Лас-Вегаса позволяет нам продавать Zero Latency туристам, которые могут поиграть, а затем рассказать о нас своим друзьям, когда вернутся домой.

Другими словами, Zero Latency делает ставку на то, что происходящее в виртуальной реальности в Вегасе не остаётся ни в виртуальной реальности, ни в Вегасе. Эта локация является для компании первой на Западном побережья США, где такие конкуренты как IMAX VR и The Void уже открыли ВР-парки. Они расположились в Нью-Йорке и Юте, в том числе в Диснейленде: там осенью откроется парк The Void по мотивам Звёздных Войн.

Локация Zero Latency — это открытое пространство без препятствий. Она позволяет людям совместно и без преград исследовать виртуальную среду. Игры разработаны с целью создать иллюзию изучения огромных космических кораблей, масштабных миров, причём игроки проходят их разными путями.

С боями продвигаясь по растущей игротеке (есть три игры, а четвёртая готовится к релизу), товарищи по команде будут видеть друг друга в виде аватаров с полной передачей движения и постоянной связью с сервером для сохранения результатов и, в конечном счёте, победы по очкам. На арене всегда присутствует сотрудник компании, который помогает настраивать игры и наблюдает за порядком.

Zero latency это что. Mission Preparation Room at VRPBZL at MGM Grand. Zero latency это что фото. Zero latency это что-Mission Preparation Room at VRPBZL at MGM Grand. картинка Zero latency это что. картинка Mission Preparation Room at VRPBZL at MGM Grand

Все локации Zero Latency сейчас предлагают три игры. Это шутер в стиле tower defence «Zombie Survival», шутер с нулевой гравитацией «Singularity» и приключенческие задачки «Engineerium». Каждая игра длится 30 минут и подходит для компаний до восьми человек. Вандонкелаар говорит, что новая игра выйдет этой осенью и объединит элементы первых трёх игр с более глубоким погружением.

Сегодня через нашу систему прошло более 100 000 игроков, и мы применяем уроки, извлечённые из их опыта и переживаний, в первых трёх играх, — говорит он. — Новая игра с зомби разработана с нуля для восьми игроков, и мы добавляем в неё интенсивности и исследований больше, чем в нашей первой зомби-игре.

По его же словам, все первые игры созданы на Unity, а сейчас компания работает с Unreal Engine 4. И уже этой осенью Zero Latency выпустит API и SDK, чтобы привлечь к созданию массовых развлечений сторонние студии. Некоторые проекты уже готовятся в режиме секретности, чтобы выйти на арену в 2018 году. А сама компания трудится над многопользовательским проектом для киберспорта:

Мы работаем над новым контентом, в котором наши игроки смогут соревноваться между собой. При создании убедительного опыта есть масса проблем, к тому же мы ограничены пространством арен. Но мы следим за тем, чтобы соревнование было настолько забавным, насколько это возможно, и основывалось на навыках, так что у игры есть всё необходимое для киберспорта. Мы подошли к делу с пониманием того, что у нас много локаций, где команды могут соревноваться с людьми, которые находятся в другом месте.

Zero latency это что. VRPBZL Arena at MGM Grand. Zero latency это что фото. Zero latency это что-VRPBZL Arena at MGM Grand. картинка Zero latency это что. картинка VRPBZL Arena at MGM Grand

На наших аренах есть невероятные возможности для киберспорта, — добавляет Руз. — Дело не только в командном знании геймплея и навыках; вам нужно передвигаться по арене и работать сообща, чтобы лучше противостоять другой команде. Мы видим киберспорт как часть своего ближайшего будущего. Мы исследуем это, работаем на этом поле и мы стремимся войти в этот бизнес.

Zero Latency также настраивает наблюдательную систему. Она позволит игрокам делиться своими играми на существующих платформах, таких как Twitch и Facebook Live. А ещё это потенциал для трансляции киберспорта.

Вскоре игроки смогут транслировать своей геймплей из виртуальной реальности во внешний мир, — отмечает Вандонкелаар. — Каждый получит шанс увидеть стримы, и игроки смогут оценивать себя со стороны.

Руз добавляет, что тестирование показало реальную связь между зрителем и игроком в виртуальной реальности:

Это похоже на связь с реальным человеком. Друзья могут наблюдать друг за другом, сравнивать индивидуальные и командные очки, а это должно вовлечь людей в игру и активизировать конкуренцию.

Zero Latency ведёт переговоры с брендами, заинтересованными в киберспорте. Его аудитория может предоставить компании новых клиентов. По статистике, её локациями виртуальной реальности пользуются в основном мужчины (70%) от 25 до 40 лет. Руз уверен, что большинство людей до 45 лет в той или иной степени геймеры:

Поскольку они уже восприимчивы к играм, им комфортнее в нашей виртуальной реальности, и мы наблюдаем расширение демографического покрытия. Мы также видим множество людей, которым любопытно, и которые хотят испытать всё сами.

MGM делает ставку на развлечения, добавляя аркадный эксперимент Zero Latency к растущему ассортименту игр на основе реальных навыков и привлекая молодых людей. Благодаря этому гости Лас-Вегас-Стрип смогут избежать реальных соблазнов и уйти от азартных игр в виртуальный мир. Можно долго доказывать, что киберспорт — не то же самое, что обычный спорт, но по сравнению с рулеткой разница огромная.

Не пропускайте важнейшие новости о дополненной, смешанной и виртуальной реальности — подписывайтесь на Голографику в ВК, Twitter и Facebook!

Источник

Zero Latency и Sega Live Creation установят VR-песочницу в Токио

Zero Latency и Sega Live Creation сообщили о совместной работе над первой VR-песочницей с мультиплеером. Игру можно будет опробовать в парке развлечений Joypolis, который находится в Токио. VR-аттракцион установят в рамках празднования двадцатилетнего юбилея парка. Игра будет доступна посетителям в течение июля этого года. Компании не сообщают, будет ли аттракцион «гастролировать» по другим городам и странам, однако известно, что Zero Latency и Sega Live Creation намереваются продолжить сотрудничество.

Главный исполнительный директор Zero Latency Тим Рус заявил, что компания в восторге как от самого проекта, так и от перспективы дальнейшего сотрудничества с Sega.

VR-технология песочниц, которую использует компания, позволяет игрокам исследовать виртуальный мир с полной свободой движений и высоким уровнем погружения. Группа игроков может перемещаться по большому пространству и выполнять миссии как индивидуально, так и в командах до шести человек. Zero Latency заявляет, что высокотехнологическое снаряжение, используемое в игре, способствует гораздо лучшим впечатлениям от виртуальной реальности, чем домашние устройства.

Zero latency это что. SBsQUIn5tWsm2FXq8UwNmu5QsIGZVB. Zero latency это что фото. Zero latency это что-SBsQUIn5tWsm2FXq8UwNmu5QsIGZVB. картинка Zero latency это что. картинка SBsQUIn5tWsm2FXq8UwNmu5QsIGZVB

Исполнительный вице-президент Sega Live Creation Кадзухико Хаями также не скрывал энтузиазма по поводу совместного с Zero Latency проекта.

Когда мы впервые попробовали то, что предлагают Zero Latency, мы были шокированы. Мы поняли, что наблюдаем рождение новой среды и сразу же захотели стать частью этого процесса. Мы лишь начинаем изучать возможности VR-«песочниц». Сейчас это одна из самых впечатляющих технологий на рынке.

Пока неизвестно, какая именно игра будет установлена в Токио. Вполне вероятно, что ей станет зомби-шутер, трейлер которого Zero Latency демонстрировала ранее.

Источник

Нулевая задержка

Нулевая задержка это технологии компания, развивающая свободный ход виртуальная реальность системы. [1] Ее основали Тим Руз, Скотт Вандонкелаар, Кайел Смит, которые в настоящее время являются директорами компании, а председателем является Дин Доррелл. [2] В августе 2015 года Zero Latency открыла первое в мире место для развлечений в виртуальной реальности в Северном Мельбурне, Австралия. [3] [4]

Содержание

История

Идея основателей о создании виртуальной реальности для свободного передвижения впервые возникла в 2012 году после успеха кикстартерной кампании Oculus Rift. [5] и изначально тестировалась как однопользовательская игра под названием Inversion VR в начале 2013 года. [6] [7] Прототип многопользовательской системы виртуальной реальности со свободным перемещением Zero Latency был впервые продемонстрирован публике на Pausefest, конференции по цифровым инновациям, в начале 2014 года. [8] [9] После этого Zero Latency получила почти 30 000 долларов от краудфандинговой кампании, [10] а также грант в размере 60 000 долларов от Film Victoria. [11] Впоследствии компания получила 1 миллион долларов финансирования от венчурной компании Carthona Capital. [12] [13] [14] В феврале 2015 года Zero Latency заключила партнерское соглашение с игровым подразделением Dell, Alienware, чтобы предоставить высокопроизводительное компьютерное оборудование для использования в операциях Zero Latency. [15] 14 августа 2015 года Zero Latency открыла свои розничные операции, что впервые в истории, когда многопользовательская виртуальная реальность со свободным перемещением стала общедоступной. [16] Первая публичная игра была симулирована зомби-апокалипсисом с четырьмя игроками, однако оригинальная игра в настоящее время позволяет играть одновременно максимум восьми игрокам. [16]

Свободный роуминг

Виртуальная реальность в свободном перемещении позволяет пользователям свободно перемещаться в открытом пространстве и не ограничиваться кабелями и другим неподвижным оборудованием. [17] Уловки восприятия, такие как «Перенаправление слепоты к изменению», используются в виртуальной реальности свободного передвижения, чтобы создать иллюзию виртуальной среды, которая больше, чем физически доступная. [17] Zero Latency использует эти приемы восприятия на 400 м. 2 площадка в Северном Мельбурне, позволяющая игрокам преодолевать расстояние от 700 м до 1 км во время стандартной игровой сессии. [5]

Захвата движения технология используется для отслеживания физического местоположения игроков, что позволяет виртуальное местоположение игроков в игре. аватары быть сгенерированным точно. [9] Несколько лет ушло на разработку программного и аппаратного обеспечения, позволяющего мгновенно воспроизводить физические движения игроков их игровыми аватарами. [18] [19] Датчики приближения используются для предупреждения игроков об опасностях и предотвращения выхода игроков из физической игровой зоны. [16] Zero Latency также использует методы тактильной обратной связи (например, использование вентиляторов для создания ветра) для увеличения погружение. [20] [21]

Товары

Zero Latency управляет игровыми площадками виртуальной реальности в Северном Мельбурне, Виктория, Австралия, и Ньюстеде, Квинсленд, Австралия, которые доступны для владельцев билетов в возрасте от 13 лет. [22] [23] Компания также продает свои системы предприятиям, которым требуются приложения виртуальной реальности для свободного перемещения. [11] Из-за своей стоимости и сложности системы с нулевой задержкой не идеальны для частного использования. [24] [25] Вместо этого они предназначены для использования в качестве публичных виртуальных игровых пространств или аттракционов в тематических парках. [12] [24] [26] Zero Latency также сотрудничает с группой по недвижимости, чтобы предложить виртуальный осмотр дома. [27]

Локации

Источник

Does the latency matter?

Zero latency это что. 75beadee2da7874409e5381d72ccc559. Zero latency это что фото. Zero latency это что-75beadee2da7874409e5381d72ccc559. картинка Zero latency это что. картинка 75beadee2da7874409e5381d72ccc559

Есть исследование от Google, которое говорит, что если ваш сайт открывается больше трех секунд, то вы потеряете около 40% десктопных пользователей и более 50% — мобильных. Еще есть репорт от Amazon, который говорит, что для Amazon каждые 100 мс дополнительного latency стоит им 1% продаж. В объемах Amazon это миллионы долларов.

В зависимости от вашего бизнеса вам стоит тоже ответить на вопрос: Does the latency matter?

Я работаю как системный инженер уже более 8 лет. Хочу поделиться опытом, который получил в процессе решения задач в компании Big Data Technologies. У нас есть какой-никакой highload. В пике это 30 тысяч rps, и вопрос с latency довольно остро стоит перед бизнесом.

Когда разработчику ставят задачу улучшить latency, он идет на Google PageSpeed Insights, прогоняет свой домен и смотрит, сколько выдало попугаев и какие этот сервис дает советы. Например, минифицировать JS, CSS, использовать изображения правильного формата и более 20 других советов.

Zero latency это что. 453c19a3a3e21c36ea5cd43a340badc5. Zero latency это что фото. Zero latency это что-453c19a3a3e21c36ea5cd43a340badc5. картинка Zero latency это что. картинка 453c19a3a3e21c36ea5cd43a340badc5

Но что делать, если все эти советы уже выполнены? На локалхосте уже все летает, а в проде для каких-то пользователей вы испытываете высокое latency? Или, например, вам вообще этот сервис не подходит, у вас API. Первое, что вам нужно сделать — это нажать F12 в вашем браузере, открыть девелопер-консоль, зайти в раздел Network Timings и там ваш браузер сам расскажет структуру latency от вашего приложения со стороны клиента.

Zero latency это что. d31df745ec158b30732a60e26d2e9666. Zero latency это что фото. Zero latency это что-d31df745ec158b30732a60e26d2e9666. картинка Zero latency это что. картинка d31df745ec158b30732a60e26d2e9666Browser Network Timings

Тут вы увидите много пунктов, которые вашего приложение вроде как не касаются — DNS, latency на установку TCP-соединений, установка шифрования. На все это уходит сотни миллисекунд. И только последний блок (Sending, Waiting, Receiving) — ответ от вашего приложения.

Сейчас мы пройдемся по всем этим пунктам, я посоветую bestpractises и протоколы, которые помогут вам протюнить latency.

Делая статистику, я использовал следующую методологию:

Утилита DIG с ключом trace, которая позволяет получить некэшированные DNS-ответы;

Делал всегда 1000 запросов;

Считал 99 перцентиль.

Output утилита HTTPSTAT, которая показывает красивую визуализацию.

После всех настроек, которые я сегодня посоветую, вы сможете получить буст от 2 до 10 раз. В абсолютных значениях это около секунды для клиентов на оптике. Для клиентов на мобильных телефонах эти цифры могут быть значительно больше. Вот так получилось у нас:

Zero latency это что. 07d3dbfb11e866cf4c2e8e9b3bcb7344. Zero latency это что фото. Zero latency это что-07d3dbfb11e866cf4c2e8e9b3bcb7344. картинка Zero latency это что. картинка 07d3dbfb11e866cf4c2e8e9b3bcb7344Final Stats

Как решить, какой name-сервер быстрый, и вообще как понять, стоит ли использовать текущего провайдера, хороший ли он? Можно воспользоваться, например, публичными сервисами — такими, как dnsperf.com или solvedns.com. Там есть топ, который показывает latency.

DNS resolution

Но зачем нам его использовать, если мы можем легко сами измерить?

Я взял 7 различных DNS-провайдеров из трех основных облаков: GCP, AWS, Azure. Добавил CloudFlare как лидера и Afraid.org как аутсайдера рейтингов. А также добавил по одному российскому и белорусскому провайдеру DNS. После проверил домены, которые хостятся у этих DNS провайдеров.

Zero latency это что. 1106c6c8db2fa23344f51c7789bbca44. Zero latency это что фото. Zero latency это что-1106c6c8db2fa23344f51c7789bbca44. картинка Zero latency это что. картинка 1106c6c8db2fa23344f51c7789bbca44

DNS resolvers

У DNS есть две стороны — это resolver и name-сервер. Чтобы не проверять Google им же и иметь более честную статистику, я взял еще 4 популярных DNS-resolver и прогнал кросс-тестом 1000 запросов на все DNS name-серверы.

Zero latency это что. 1eff3b4bae6d24882c85d0042fd40a4d. Zero latency это что фото. Zero latency это что-1eff3b4bae6d24882c85d0042fd40a4d. картинка Zero latency это что. картинка 1eff3b4bae6d24882c85d0042fd40a4d Zero latency это что. b9b5a4fd9128e69dbcb61fc5af1a439f. Zero latency это что фото. Zero latency это что-b9b5a4fd9128e69dbcb61fc5af1a439f. картинка Zero latency это что. картинка b9b5a4fd9128e69dbcb61fc5af1a439f99% NS responce time (ms)

Публичные рейтинги нас не обманули — CloudFlare как был в топе, так и остался. При этом видно, что у Amazon на 40 мс latency лучше, чем у Google, а Reg.ru в два раза лучше, чем Hoster.by. Если вы захотите сэкономить и возьмете максимально дешёвый name-сервер, не зная рейтинга, то можете получить разницу 400 мс на каждый запрос.

Вы можете подумать, что 50-100 мс — это очень мало, можно не обращать на это внимания. Но если, например, ваш бизнес производит какие-то live-транзакции, как биржа или банк, то это существенно.

Также бизнес имеет свойство расширяться. Возможно, вы пойдете в другие географические регионы, например, в Азию или в Южную Америку. Вы внезапно можете увидеть рост latency, который будет очень сложно затраблшутить, просто потому что ваш текущий DNS-провайдер не представлен в этих регионах и DNS-запросы гоняются через океан.

Первый шаг мы рассмотрели — это DNS-resolution или DNS-Lookup. Возьмите топовый name-сервер и проверьте, какой вообще у вас.

Следующий шаг, который делает ваш браузер — это устанавливает TCP-соединение. На установку handshake всегда требуется 1 RTT (Round-trip time), и вроде бы с этим ничего не сделать.

Но есть здравый смысл, который подсказывает: чем ближе наши пользователи локально к нашим серверам, тем более короткая сеть маршрутов. Поэтому логично хостить ваше приложение близко к большинству ваших пользователей.

Но если они геораспределены, классически будет использовать CDN для статики, а менее классически — включить CDN для динамики. Это стоит сделать, потому что у вас все равно будет буст за счет того, что между CDN и вашим сервером уже будет всегда установлено TCP-сессия, а пользователи будут ходить до ближайшего CDN-сервера.

Но самый интересный вариант — это разнести вашу инфраструктуру по геопринципу. Предположим, вы подняли свою инфраструктуру в разных регионах, но как донести пользователям, чтобы они ходили до ближайших до них серверов?

GEO DNS

С этим нам поможет GEO DNS — extension в DNS, который позволяет DNS-резолверу пробрасывать к name-серверу маску подсети клиента. То есть DNS-провайдер может вычислять клиента по IP, определять его геолокацию и отдавать для разных клиентов разные значения A-записей.

Zero latency это что. 6b931f4f9792f78d85e05ef156224a1d. Zero latency это что фото. Zero latency это что-6b931f4f9792f78d85e05ef156224a1d. картинка Zero latency это что. картинка 6b931f4f9792f78d85e05ef156224a1d

Многие DNS-провайдеры не поддерживают GEO DNS, но в AWS Route 53 такой функционал есть. В данном случае сайт по дефолту хостится в Японии, но для пользователей из Европы будет отдаваться IP европейского сервера. Я провел кросс-тест latency сервера AWS в Европе и Японии как клиент, до сервера Google Cloud в Европе и Японии.

Zero latency это что. 026763864188a60479d3179b369e3a76. Zero latency это что фото. Zero latency это что-026763864188a60479d3179b369e3a76. картинка Zero latency это что. картинка 026763864188a60479d3179b369e3a76TCP connection time depending on Geolocation

Тест показал, что даже на таком небольшом расстоянии, как Европа-Азия получаем за счет GEO DNS буст по latency 250-300 мс, и это на каждый round-trip. Это уже намного больше, чем 50 мс от выбора DNS-resolver.

TCP Fast Open (TFO)

В рамках TCP есть малоизвестный протокол TCP Fast Open (TFO), который позволяет сократить один round-trip на установку handshake для второго и последующих соединений до 0. TCP-соединение будет устанавливаться сразу же при ответе сервера.

Checking on client:

Zero latency это что. image loader. Zero latency это что фото. Zero latency это что-image loader. картинка Zero latency это что. картинка image loader

Сhecking on server:

Zero latency это что. e039fa9ff28e5d35d7cb943de2e6538f. Zero latency это что фото. Zero latency это что-e039fa9ff28e5d35d7cb943de2e6538f. картинка Zero latency это что. картинка e039fa9ff28e5d35d7cb943de2e6538f

Здесь видно, как это работает. Первый запрос занимает 260 мс, а второй уже с ключом TCP Fast Open — 4 мс.

Сам TCP Fast Open настраивается довольно легко:

Zero latency это что. 8bb113ebd5fd49cc665355484e75baa2. Zero latency это что фото. Zero latency это что-8bb113ebd5fd49cc665355484e75baa2. картинка Zero latency это что. картинка 8bb113ebd5fd49cc665355484e75baa2

Этот протокол работает с помощью так называемой TFO-куки, когда при первом соединении генерируется файл куки, который в последующем переиспользуется. Когда сервер видит валидный куки от клиента на стадии SYN, то на стадии SYN acknowledge сразу устанавливается соединение и можно не ждать полный handshake.

Но у него есть ряд проблем. Основные — это middleboxes и трекинг.

Middleboxes — это старое или дорогое ПО или железо, которое не знает про протокол TFO. TCP так устроен, что если железо видит непонятные настройки, оно просто отбрасывает эти пакеты, и сессию придется устанавливать заново.

Получается, мы, наоборот, проиграем во времени на установку TCP-соединения. Так как таких middleboxes в интернете довольно много. Согласно исследованию — порядка 14% трафика проходит через них, то есть нам потребуется повторное TCP соединение.

Но еще больше проблем вызовет трекинг. В браузерах есть приватные вкладки. Если мы будем использовать TCP Fast Open, они будут полностью скомпрометированы, потому что сервер сможет по TFO-куке определить пользователя вне зависимости от того, в приватной он вкладке или нет. Для браузеров это неприемлемо. Тем не менее, в браузерах есть суппорт TFO. По умолчанию он выключен, его нужно включать в настройках.

Кейс, где можно использовать TFO свободно — это общение сервер-сервер. Когда вы предоставляете какое-то API, ваши клиенты — это тоже сервера, и расположены вы географически далеко, то можно просто включить TFO и выигрывать 1 round-trip. Например, от Европы до Японии — это 300 мс.

Второй шаг TCP мы рассмотрели — это initial connection, или connecting: используем CDN, пробуем GEO DNS и, если вам подходит, можете попробовать TFO.

TLS — очень старый протокол, он развивается. Но все его развитие до версии 1.2 было направлено только на улучшение безопасности: отказ от скомпрометированных алгоритмов шифрования, добавление более сложных и устойчивых алгоритмов.

На апрель 2020, по данным CCLabs, только 22% из ТОП 150 тысяч веб-сайтов использовали TLS 1.3. Через год эта цифра стала уже 44%. Этот было обусловлено, скорее всего, тем, что не так давно браузеры депрекейтили старые протоколы TLS 1.1, и администраторам было несложно вместе с депрекейтом старых протоколов добавить суппорт TLS 1.3.

До его выхода на latency это не влияло абсолютно — всегда было полноценных два round-trip time. Но с выходом TLS 1.3 протокол изменили, и из коробки он стал тратить один round-trip. Теперь для установки шифрованного соединения достаточно одного пути: клиент — сервер — клиент.

Zero latency это что. e1f697cb9531bf591ad87346813efb49. Zero latency это что фото. Zero latency это что-e1f697cb9531bf591ad87346813efb49. картинка Zero latency это что. картинка e1f697cb9531bf591ad87346813efb49TLS 1.2 (2 RTT) vs TLS 1.3 (1RTT)

Но все же 44% — это даже не половина интернета, которая перешла на этот протокол.

Посмотрим, как это работает.

Zero latency это что. 9fde4e89c8504b4b03799e22b8145fd0. Zero latency это что фото. Zero latency это что-9fde4e89c8504b4b03799e22b8145fd0. картинка Zero latency это что. картинка 9fde4e89c8504b4b03799e22b8145fd0TLS Handshake

При TLS 1.3 клиент сразу же при запросе «Client Hello» генерирует так называемый PSK-ключ (Pre-Shared Key) и отправляет его на сервер, а сервер с помощью этого PSK шифрует свой ответ «Server Hello», добавляет туда необходимую информацию. Клиент уже следующим вторым запросом вместе с «Finished» может отправлять шифрованный HTTP запрос.

HTTPSTAT наглядно показывает, чем отличаются TLS 1.2 и TLS 1.3:

Zero latency это что. image loader. Zero latency это что фото. Zero latency это что-image loader. картинка Zero latency это что. картинка image loader

При TLS 1.2 мы получаем 600 мс latency, а при TLS 1.3 — 300 мс. Это полноценный round-trip time. Но только разовым запросам нельзя верить, поэтому мы соберем статистику.

Zero latency это что. 0800c42ea5b6396f3dd47e4ddc6dc447. Zero latency это что фото. Zero latency это что-0800c42ea5b6396f3dd47e4ddc6dc447. картинка Zero latency это что. картинка 0800c42ea5b6396f3dd47e4ddc6dc447TLS 1.2 vs TLS 1.3

Явно видно, что мы получаем один round-trip benefit просто за счет включения этого протокола. Но у TLS 1.3 есть еще такой функционал, как Zero Round Trip.

TLS 1.3 0-RTT

Zero latency это что. 4bcc7d9b760c2acecf2c2d493092fabb. Zero latency это что фото. Zero latency это что-4bcc7d9b760c2acecf2c2d493092fabb. картинка Zero latency это что. картинка 4bcc7d9b760c2acecf2c2d493092fabbTLS 1.3 Zero Round Trip

Это включается довольно просто:

nginx > 1.15.4, OpenSSL 1.1.1 or higher or BoringSSL

Вам нужен не древний веб-сервер и ОС, где OpenSSL > 1.1.1, например Ubuntu 18, и три строчки в конфиге Nginx:

ssl_protocols TLSv1.3 — версия протокола;

Этот хэдер необходим для защиты от так называемых replay-атак, когда человек в середине может взять слепок шифрованного трафика и начать его повторять. Если ваше приложение уязвимо — например, вы банк и явно не хотите, чтобы запросы с транзакциями повторялись бесконечно, — то вам нужно на бэкенде обрабатывать этот кастомный хэдер. И это не очень большой limitation, чтобы получить отличный буст.

К сожалению, с помощью curl нельзя проверить TLS 1.3 с early_data, но мы можем проверить с помощью утилиты OpenSSL. При первом запросе мы генерируем файл session.pem, а при втором — используем с ключом early_data.

Zero latency это что. bf2ea821e4d87d6c72509925d5ffc197. Zero latency это что фото. Zero latency это что-bf2ea821e4d87d6c72509925d5ffc197. картинка Zero latency это что. картинка bf2ea821e4d87d6c72509925d5ffc197Checking

Если на сервере правильно все настроено, вы увидите «Early data was accepted». Early data, в отличие от TFO, включена во всех браузерах по умолчанию. Вы получите буст от ваших клиентов сразу же.

RSA key length

Также в рамках TLS хочется поднять тему длины RSA ключа.

По дефолту сертификаты, например от Let’s Encrypt, шифруются ключом длиной 2048 бит. Вы можете купить более секьюрный сертификат, шифрованный ключом в 3072 или 4096 бит. Но при этом всегда надо держать в уме, что время на терминацию трафика будет увеличиваться в 6-7 раз за каждое удвоение длины ключа.

Zero latency это что. c486662e2e302c78185a0092253310f5. Zero latency это что фото. Zero latency это что-c486662e2e302c78185a0092253310f5. картинка Zero latency это что. картинка c486662e2e302c78185a0092253310f5RSA key length

У меня есть реальный кейс из практики — security team купила за недорого, как они считали, более секьюрный сертификат и выкатили его на прод. Пришел вечерний load и началась деградация прода — сервера задыхались под CPU. Это решилось только увеличением процессорных мощностей. А root cause про новые SSL сертификаты мы поняли только на следующий день.

TLS config best practice

Последнее, что я хотел бы затронуть в рамках TLS — это прекрасный сайт Mozilla SSL Configuration Generator, в котором можно просто накликать конфигурацию вашего веб-сервера.

Zero latency это что. f18ed989e22cc328ff0639dffd172e71. Zero latency это что фото. Zero latency это что-f18ed989e22cc328ff0639dffd172e71. картинка Zero latency это что. картинка f18ed989e22cc328ff0639dffd172e71TLS config best practice, https://ssl-config.mozilla.org

Например, можно взять Nginx, выбрать Modern, указать версию OpenSSL и вы получите сгенерированный конфиг — пользуйтесь!

Третий шаг — TLS setup, или же SSL мы рассмотрели: включаем TLS 1.3 и Early-Data.

Мы пришли к самом интересному — это наш HTTP-запрос от клиента в браузере.

По данным W3Techs на апрель этого года 49% от ТОП 10 млн веб-сайтов поддерживают HTTP/2, то есть 51% интернета не поддерживает HTTP/2. А мы в с вами 2021 году, и с 2018 года уже идет активная разработка протокола HTTP/3, на который уже очень скоро нужно будет переходить. Но сначала обсудим, зачем нам HTTP/2.

HTTP/2

По дефолту все веб-сервера настроены на HTTP/1, и многие не знают, что включение протокола HTTP/2 может улучшить response для ваших клиентов. Например, один из бенефитов, который нам дал HTTP/2 — это возможность параллельно отправлять ответы и запросы по одному TCP соединению.

Zero latency это что. 4a160deadafbfe7b0db5bbb6f6116c64. Zero latency это что фото. Zero latency это что-4a160deadafbfe7b0db5bbb6f6116c64. картинка Zero latency это что. картинка 4a160deadafbfe7b0db5bbb6f6116c64

Для протокола HTTP/1.1 у каждого браузера есть захардкоженная цифра от 6 до 9 TCP-соединений на один домен, и запросы/ответы идут последовательно в рамках этих TCP-соединений. В протоколе HTTP/2 вы можете для второго и последующих запросов отправлять ответы в рамках одного соединения.

Также есть технология HTTP/2 Server Push, которая позволит отправлять клиенту больше данных, чем он даже запрашивал. Например, вы точно знаете, что с запросом на индекс HTML нужно отправить JS и CSS, и вы можете преднастроить так, что к юзеру будут отправляться дополнительные данные. Это может дать хороший performance boost, но на самом деле Server Push почти не используется, потому что есть проблемы с браузерным кэшом. Вы не можете знать, что есть в кэше у вашего пользователя. Поэтому отправка CSS может стать, наоборот, лишней, если пользователь уже имеет этот CSS у себя в кэше.

Если взять большую картинку, разбитую на множество маленьких для увеличения скорости загрузки, то такой кейс отлично показывает лимит из-за последовательных запросов и ответов. Наглядно разницу между HTTP/1.1 и HTTP/2 можно увидеть по ссылке:

Zero latency это что. image loader. Zero latency это что фото. Zero latency это что-image loader. картинка Zero latency это что. картинка image loader

Но сегодня мы уже очень близки к HTTP/3.

HTTP/3

HTTP/3, он же QUIC (Quick UDP Internet Connections) — протокол, который изначально придумали в Google, чтобы решить проблему с растущим трафиком на YouTube. А теперь это уже почти законченный официальный протокол. Под капотом HTTP/3 все, что есть при классическом TCP-соединении, но только завернутое в UDP.

А когда мы слышим UDP, мы вспоминаем анекдот который, если до вас не дошел, то я его не повторю. Потому что проблема UDP — это потеря пакетов и Congestion Control (контроль потока).

В QUIC это решено за счет так называемой абстракции QUIC Streams, которая, кроме этого, решает проблему свитчинга сетей у ваших клиентов. Например, клиент пользуется Wi-Fi с телефона, потом переключится на 3G, на 4G и обратно на Wi-Fi. В рамках TCP, где определение клиента — это его IP-адрес и порт, при смене сети каждый раз нужно устанавливать соединение заново. А при QUIC Streams, которые присваиваются клиенту, можно продолжать переиспользовать соединение.

Давайте протестим как работает HTTP/3 и как его нам внедрить. Так как на текущий момент поддержка QUIC в nginx в разработке, то, чтобы ее включить в nginx, нам нужно его скомпилить.

К счастью, есть мануал, по которому довольно легко это сделать. А можно переиспользовать мой docker image: ymuski/nginx-quic и просто добавить в nginx две строки в конфиг:

Nginx config:

listen 443 quic reuseport;

add_header alt-svc ‘h3-29=»:443″; ma=86400’;

В хэдере указывается версия протокола (h3-29 — это версия драфта) и порт, на котором у нас HTTP/3. Когда вы это включите, скорее всего, ничего не заработает (или хочется верить, что не заработает), потому что вы точно забудете открыть на firewall 443/UDP (кто вообще открывает UDP?). Открываем порт и идем тестировать.

Для теста можно зайти на сайт HTTP/3 Check и посмотреть, включен ли у вас HTTP/3 и на какой версии. Но онлайн тесты — это не наш путь. Давайте сами проверим с помощью curl — что нам мешает?

Для этого и curl тоже скомпилить. Открываем другой мануал или используем docker image, который я скомпилил — docker image: ymuski/curl-http3

Видим, что на мой запрос в nginx log HTTP/3 — 200.

Zero latency это что. 4fdee76dfecf436824adf4ea9bd35a03. Zero latency это что фото. Zero latency это что-4fdee76dfecf436824adf4ea9bd35a03. картинка Zero latency это что. картинка 4fdee76dfecf436824adf4ea9bd35a03

Более наглядно output от curl:

Zero latency это что. 7a30ad07d462b6c16ea63347585d6d43. Zero latency это что фото. Zero latency это что-7a30ad07d462b6c16ea63347585d6d43. картинка Zero latency это что. картинка 7a30ad07d462b6c16ea63347585d6d43

Тут нет привычной установки TLS-соединения. Есть блок h3, который создает QUIC Streams.

В браузерах на сегодняшний день уже впилена поддержка HTTP/3, ее нужно включить в настройках. Но хороший вопрос — вообще зачем нужен HTTP/3, дает ли он вообще какой-то буст по latency?

Я провел тест на один и тот же домен на HTTP/2 и HTTP/3.

Zero latency это что. 7df064c943f0afd650b23ca386bf3119. Zero latency это что фото. Zero latency это что-7df064c943f0afd650b23ca386bf3119. картинка Zero latency это что. картинка 7df064c943f0afd650b23ca386bf3119HTTP/2 vs HTTP/3

Буст показал из разных точек мира, что HTTP/3 отвечает в 1.14x-1.5x быстрее, чем HTTP/2 — это от 14 до 50% преимущество. Вроде бы неплохо. Но первый запрос по дефолту прилетит вам на HTTP/1.1. Там он увидит редирект на HTTPS (если вы его сконфигурировали), хэдер Alt-Svc, и только потом уже перейдет на HTTP/3 или HTTP/2.

Как этого избежать? У нас есть новые DNS-записи.

Zero latency это что. 810368f05d87222bfd0911b9c5f8aa4d. Zero latency это что фото. Zero latency это что-810368f05d87222bfd0911b9c5f8aa4d. картинка Zero latency это что. картинка 810368f05d87222bfd0911b9c5f8aa4d

Сейчас идет утверждение в Internet Engineering Task Force новых DNS-записей HTTPS. Поэтому мы можем создать дополнительную DNS-запись, и браузер ее будет запрашивать вместе с A-записью. И наш самый первый запрос прилетит уже по HTTP/3.

Например, в CloudFlare уже можно добавлять записи и наслаждаться. Это довольно крутой буст, который нас ждет. Mozilla и Safari уже поддерживают DNS-запись HTTPS, в Chrome это еще пока в разработке.

HTTP Compression

Кажется, тут все понятно — чем меньше наши данные, тем быстрее они будут у клиента. Но это не совсем так, нам нужно добавить время на сжатие этого контента.

Я сравнил два протокола: старый добрый Gzip и модный Brotli:

Zero latency это что. 011f71b9bba294ea7cc5ccf3c5c26940. Zero latency это что фото. Zero latency это что-011f71b9bba294ea7cc5ccf3c5c26940. картинка Zero latency это что. картинка 011f71b9bba294ea7cc5ccf3c5c26940Json 137kb file check

В принципе, получились схожие цифры. На разных уровнях сжатия они ведут себя по-разному — что-то лучше сжимает, что-то быстрее отдает. На моем тестовом файле лучший response time я получил на среднем уровне сжатия.

Вам нужно понять, какой у вас трафик и эмпирически поиграться с компрессией, но включать ее определенно нужно.

HTTP Cache

Его очень легко включить, он гибок. Если вы будете использовать так называемый strong caching headers, то latency будет 0 мс, потому что все будет закэшено в браузере клиента.

Это был последний шаг. Подключайте HTTP/2, включайте компрессию и кэш. Попробуйте потестить HTTP/3 — он может вам дать значительный буст, плюс первого редиректа вы тогда тоже лишитесь.

Итого

Zero latency это что. 610631ea836621a832ee04f31d4b9042. Zero latency это что фото. Zero latency это что-610631ea836621a832ee04f31d4b9042. картинка Zero latency это что. картинка 610631ea836621a832ee04f31d4b9042

Useful links

Мой сайт на HTTP/3 и github repo, где я считал статистику. Там есть все скрипты, как я это делал, настройки Nginx для каждого случая и дополнительные данные, например, не по 99, а по 50 перцентилю. Видео моего выступления на HighLoad++ Весна 2021.

Тех, кто соскучился по профессиональному нетворкингу и хочет быть в курсе всех передовых решений ждёт ещё два HighLoad++ в этом году: 20-21 сентября в Санкт-Петербурге и 25-26 ноября — в Москве. Питерское расписание уже готово.

И еще доступен — бандл из двух конференций: Saint HighLoad и HighLoad++ 2021 c 20% cкидкой. Предложение действительно до 19 сентября 2021 года.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ПромышленностьБесплатная виртуальная реальность
Основан2013
Штаб-квартираМельбурн, Австралия