Я пытаюсь насытить эфир 10 Гбит / с rnet или даже обратную связь с помощью одного зашифрованного потока HTTPS.
Я пробовал различные серверы и клиенты, но не смог приблизиться к ожидаемой пропускной способности , в то время как я получаю хорошие результаты без включенного TLS.
Например, с Apache httpd 2.4.41 и стандартным mod_ssl TLS 1.2 с AES128-GCM (openssl 1.1.1) я могу загрузить скудный 40- 50 МБайт / с, в то время как я легко получаю в десять раз больше или больше без TLS. Аналогично с веб-сервером Pythons Twisted. (используемые клиенты были curl, python запросы)
Я знаю, что могу получить больше с многопотоковым подходом, большинство тестов в net говорят о насыщении вещей несколькими потоками. Это не главное.
Чистая криптография более чем достаточно быстрая, с поддержкой AES-NI на Intel Xeon, согласно openssl speed
.
Я предполагаю, что мне нужна какая-то форма пиплинга, чтобы компенсировать крошечные кадры TLS 16 КБ и правильную буферизацию. У кого-нибудь есть указатели на примеры или можно дать некоторые подсказки?