URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 113986
[ Назад ]

Исходное сообщение
"Компания Valve открыла реализацию системы TCP-подобных комму..."

Отправлено opennews , 31-Мрт-18 21:57 
Компания Valve перевела в разряд свободного ПО библиотеку GameNetworkingSockets (https://github.com/ValveSoftware/GameNetworkingSockets) с реализацией системы передачи сообщений поверх UDP, которая может применяться для организации высокоскоростного и надёжного сетевого обмена данными в играх. Код написан на языке С++ и поставляется (https://github.com/ValveSoftware/GameNetworkingSockets) под лицензией BSD.

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


Имеется встроенная поддержка шифрования канала связи. Данные в  пакетах шифруются с использованием алгоритма  блочного шифрования AES, а для обмена ключами и проверки сертификатов применяются цифровые подписи базе на эллиптических кривых Ed25519. Механизмы доставки ключей  и выбора вектора инициализации для каждого пакета основаны на методах, применяемых в протоколе QUIC (https://www.opennet.dev/opennews/art.shtml?num=42063).


Кроме библиотеки c реализацией класса SteamNetworkingSockets разработчикам также предложен инструментарий для симуляции потери пакетов и получения детальной статистики. Среди необходимых для сборки зависимостей: OpenSSL,  Google protobuf, ed25519-donna (https://github.com/floodyberry/ed25519-donna), curve25519-donna (https://github.com/agl/curve25519-donna) и ujson (компактный парсер JSON, который уже включен в состав GameNetworkingSockets.


Из планов на будущее называется переработка кода "SNP", который отвечает за инкапсуляцию API-сообщений к UDP-пакеты и выполнение таких операций как фрагментация и персборка слишком больших пакетов, cлияние мелких сообщений и переотправка потерянных фрагментов. В новой реализации появится более продвинутая реализация скользящего окна и полноценная возможность упорядочивания пакетов (сейчас пакет пришедший не по порядку просто отбрасывается). Также планируется уйти от применения специфичных для Steam идентификаторов CSteamID в пользу более универсальной структуры идентификации.


URL: https://www.reddit.com/r/gamedev/comments/88f08i/valves_game.../
Новость: https://www.opennet.dev/opennews/art.shtml?num=48371


Содержание

Сообщения в этом обсуждении
"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Андрей , 31-Мрт-18 22:06 
> TCP-подобных коммуникаций поверх UDP

SCTP наборот.

> GameNetworkingSockets реализует поверх UDP похожий на TCP протокол, обеспечивающий установку соединения, но ориентированный на передачу сообщений вместо потоков.

Странно, а здесь получается, что скорее SCTP.


"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Андрей , 31-Мрт-18 22:07 
наоборот*

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено anonymous , 31-Мрт-18 22:55 
Похоже под "TCP-подобных коммуникаций" подразумевалась гарантия доставки, но не очередность. Как раз таки их собственная работа, подобная SCTP.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 31-Мрт-18 23:17 
Всё что угодно приходится делать, но не впиливать SCTP в винду.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 01-Апр-18 05:30 
Если бы проблема только в винде была. SCTP умер из-за миллионов г%внороутеров в интернете, не умеющих NAT для него.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено anomymous , 01-Апр-18 09:26 
1) Гуглим sctp vulnerability.
2) Понимаем, что лучше велосипед.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено anonymous , 01-Апр-18 13:54 
Дело не в уязвимостях, их пофиксят. Сложность в том, что надо взять и разом обновить все маршрутизаторы в интернете чтобы они перестали дропать незнакомый им протокол SCTP. Поэтому и велосипедят поверх UDP.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено anomymous , 01-Апр-18 21:47 
Их за 10 лет столько было именно в SCTP, что это лучше не трогать. Даже палочкой.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено nuclight , 04-Апр-18 01:42 
И тут, ВНЕЗАПНО, основные реализации SCTP умеют инкапсулироваться в UDP именно для решения этой проблемы.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 01-Апр-18 12:54 
Давно есть юзерленд стек под всех ОС включая винду https://github.com/sctplab/usrsctp
и там есть поддержка sctp over udp

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 07-Апр-18 20:38 
> Всё что угодно приходится делать, но не впиливать SCTP в винду.

Ну так убеди MS это сделать. Во все реально используемые версии винды и прочие макоси. Чарт популярности операционок можешь в Steam посмотреть. И еще промежуточное сетевое оборудование и софт.


"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 31-Мрт-18 23:18 
Подобного добра существует достаточно. Вот, например, http://udt.sourceforge.net/, тоже на C++. Там уже реализовано управление перегрузкой, переотправка потерянных фрагментов, переупорядочевание.

PS Вот бы подобное, дополняющее встроенное управление перегрузкой, для DCCP: гарантированная доставка и переупорядочевание.


"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено YetAnotherOnanym , 01-Апр-18 00:19 
Ну, пусть будет. Можбыть для какой-нить телеметрии или месседжинга сгодится - там тоже "message instead of stream"

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Crazy Alex , 01-Апр-18 00:33 
Откровенно говоря, оно почти везде лучше. Даже если файл грузишь часто выгодно делать это какими-нибудь чанками - на принимающей стороне раскладывать проще, обрывы всякие обработать и прочее. Уж не знаю, почему стримы так прижились.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено fail_ , 01-Апр-18 02:54 
> Откровенно говоря, оно почти везде лучше. Даже если файл грузишь часто выгодно
> делать это какими-нибудь чанками - на принимающей стороне раскладывать проще, обрывы
> всякие обработать и прочее. Уж не знаю, почему стримы так прижились.

имо, из-за текстовки: <cr><lf> и "конец пакета", а то конгресс, немцы какие-то (с) - вернее с TLV приходится слегка серое в-во напрягать.


"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 01-Апр-18 02:54 
Да, действительно, наверное, там не только дороги, но сети получше))

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Crazy Alex , 01-Апр-18 15:56 
Да не то чтобы. Те же США славятся своим засилием DSL до сих пор. ну и прочее - мобильные сети, вайфай и прочее, кажется, только в последние лет пять стали более-менее надёжными

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено YetAnotherOnanym , 01-Апр-18 18:36 
Хочу засилье DSL в историческом центре города-миллионника, в котором имею удовольствие проживать. В каждую хрущёвку по пять провайдеров оптику тянут (у подруги - Ростелеком, МТС, Дом.ру, ТТК, Билайн, ящик, сцобако, вечно листовками забит), а в наш скворечник вшивую медную десятку кинуть - у них, видите ли, технической возможности нет.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Вонни Бух и Потчк , 01-Апр-18 05:03 
Вот еще

https://github.com/wangyu-/UDPspeeder
https://github.com/wangyu-/udp2raw-tunnel


"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 01-Апр-18 07:52 
Так вроде же ENet всех победил?..

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено srt , 01-Апр-18 13:30 
а еще udt или srt, но в целом не мешает писать новые реализации быстрой передачи
касательно новости - фуфло, ничего хуже не встречал

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 08-Апр-18 03:21 
> Так вроде же ENet всех победил?..

Valve обнаружили в нем фатальный недостаток...


"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 01-Апр-18 09:30 
QUIC от гугла, µTP от битторрента, GameNetworkingSockets от валв. Кто следующий [пере]изобретёт новый протокол поверх UDP?

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено srt , 01-Апр-18 13:32 
кто не может воспользоваться гуглом что бы найти готовые решения, тот начинает изобретать
на самом деле разных протоколов поверх UDP много, только не все до опеннета доходят

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Crazy Alex , 02-Апр-18 11:32 
Тот, кому потребуется ещё какая-то специфика, вестимо

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 01-Апр-18 09:40 
Кстати Linux системы чуть прибавили в Steam:
http://store.steampowered.com/hwsurvey

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 01-Апр-18 10:22 
Китайцам поднадоел пубг.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено XoRe , 01-Апр-18 19:50 
Штука специально заточена под игрушки.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено рара Кен , 02-Апр-18 10:32 
хром лучше всех! (грузит) Google поработал над скоростью на переходе от 64 к 65 версии! а уже 67

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 02-Апр-18 15:47 
А по поводу лицензии брюзжать никто не будет?Неужели жплфанатики взрослеют?

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 09-Апр-18 11:54 
Тебе должно быть стыдно.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено IY , 03-Апр-18 17:17 
>>применяются цифровые подписи на базе эллиптических кривых Ed25519

никто даже не вспомнил, что в ИБ-сообществе от них уже отказались


"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Дебилушка , 05-Апр-18 18:24 
Вальвэ делает всё что угодно, но только не борется с читерами. Судя по их количеству и огромному рынку платных читерских-программ, что такое защита от читеров Вальвэ не знает вообще, зато протоколы с защитой и шифрованием у их якобы очень хорошие, и нам даже какие то достижения показывают, но все их теоретические изыскания легко разбивается о жестокую практику реального мира.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Читер , 05-Апр-18 18:40 
Ну так читеры по карте летать не могут, здоровье у них не бесконечное и так далее. А вот как бы ты защитил игру от AimBot? Патруль вот сделали, но у тебя наверное есть крутые идеи, выскажи их.

"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 08-Апр-18 03:53 
> Ну так читеры по карте летать не могут, здоровье у них не
> бесконечное и так далее. А вот как бы ты защитил игру
> от AimBot? Патруль вот сделали, но у тебя наверное есть крутые идеи, выскажи их.

В vendetta online круто защитились. Дали aimbot всем и каждому. И попробовали сделать его качественным. Но учитыая специфику оружия (медленные пули, маневрирующие противники) толку от него умеренно. Половина опытных летунов его вообще отключает, чтобы не трындел.

Вот все и летают с aimbot'ом. Даже нубы. И даже если поставишь внешний - думаешь, при такой механике станет сильно лучше? Тормозные пули и маневрирующие противники никуда не денутся, а когда пулька вылетела уже поздняк ее корректировать. Есть конечно ракеты "fire and forget", мечта нубов и лентяев. Нажал кнопку, пару минут ракета гоняет за противником. Даже если и не собьет, противник на время озадачен, ему не до тебя. Но работает только против топорного AI, живые игроки умеют довольно результативные противоракетные маневры и выпуск помех. Ракет мало, после пары промахов стрелять просто нечем. А вот тут получатель ракеты может вернуться и использовать пушки, например, если у него они есть и ты не утикал. И вот не помогут ламеру и нубу никакие ракеты с самонаводкой. Опытный хрен стреляет лучше даже без аймбота и корабль у него лучше. Параметры движения сервак валидировать может, аномалии в скоростях за пределами того что должен мочь твой пепелац - speed hack парируют, логгируют или банят любые уважающие себя игровые серверы.

Ну то-есть можно ныть про читеров и городить идиотские защиты. А можно подойти к игровому процессу и механике креативно и половина багов станет фичой. Шта, игрок пускает 5 ботов в пачку и они лупят по 1 мишени? Ну так дайте всем игрокам target sharing как инструмент. Они все так делать будут. При том 5 живых игроков не в пример эффективнее чем 5 ширпотребных роботов для китаезного кача ресурсов и если вопрос встанет ребром, игроки ботовода вместе с его роботами выпилят как делать нефиг.


"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Аноним , 08-Апр-18 03:34 
> по их количеству и огромному рынку платных читерских-программ, что такое защита
> от читеров Вальвэ не знает вообще,

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

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


"Компания Valve открыла реализацию системы TCP-подобных комму..."
Отправлено Гентушник , 09-Апр-18 12:59 
В итоге боты будут играть с ботами, а люди останутся не у дел :)