]> Sergey Matveev's repositories - stargrave-blog.git/commit
Миллионы пакетов через VoRS
authorSergey Matveev <stargrave@stargrave.org>
Sun, 28 Apr 2024 08:33:58 +0000 (11:33 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 28 Apr 2024 08:33:58 +0000 (11:33 +0300)
commit32c3d6a2cce4611f01eddb0e19712e97c61b6e71
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parentd6a10bd448599b7fcdb4222e3d03810bd0cebec9
Миллионы пакетов через VoRS

Мой VoIP клиент/сервер (4a521b9d638a8d23487ff6c36ac3be97c8c464b3,
48584050c661df42c76a1026b3aebe16da078b52,
2cccf7ddd72756431263b6c3e96dfd710f2931ee) уже десятки часов успешно
проработал. С момента его создания чуть ли не каждый день проводили
сессии парного программирования/администрирования, и это чуть ли не на
целый день. У меня FreeBSD клиент, сервер VoRS на FreeBSD VPS-ке поднят,
у коллег Ubuntu. Всё работало замечательно. И за одну сессию по
полмиллиона пакетов от меня проходило.

Я беспокоился за то, что Opus же ведь stateful кодек, а у нас бывали
большие потери пакетов. Вот недавно аж по несколько сотен за минуту --
кто-то сильно Интернет шатал. И я думал что мало ли, может там какие
ошибки будут накапливаться или ещё чего подобное или там отсутствие echo
cancellation или вообще хоть какой-либо обработки аудио будет мешать. Но
нет, всё без нареканий с нашей стороны.

В его v2 версии я заменил Poly1305, который и так уже был урезан до
64-бит, на SipHash24. Последний всё же является криптографически сильным
MAC-ом, поэтому на безопасность это не должно негативно влиять. SipHash
заточен под аутентификацию коротких сообщений, которыми 20мс Opus кадры
и являются. И SipHash24 быстрее более чем на порядок, ведь ключ для
Poly1305 генерируется из 512-бит (размер блока ChaCha20, где 256-бит
к тому же отбрасываются за ненадобностью) выхлопа ChaCha20, чтобы после
этого ещё один 512-бит блок сгенерировать уже для шифрования. Дороговато
выглядит.