Уменьшить размер записи TLS в Netty? - PullRequest
0 голосов
/ 14 мая 2018

В настоящее время я использую Netty 4.1.24 для Сервера, обменивающегося данными через Socket Connection через TLS 1.2 с Клиентом.

В настоящее время размер записи TLS («обтекание») составляет 16 КБ, как определено в спецификации (см. Реализацию в SslHandler ; соответствующие переменные MAX_PLAINTEXT_LENGTH и wrapDataSize)

Из-за ограничений памяти на клиенте мне нужно уменьшить размер записи TLS, генерируемой Сервером. Я использую setWrapDataSize для ограничения размера, но Netty не использует его (он по-прежнему создает записи по 16 Кб).

Я использую следующий фрагмент в ChannelInitializer для создания SSLEngine / SslHandler

final SslContext sslCtx = SslContextBuilder.forServer(keyManagerFactory)
    .trustManager(trustManagerFactory)
    .clientAuth(ClientAuth.REQUIRE)
    .build();

LOGGER.info("Default SSL Provider: {}", SslContext.defaultServerProvider());

final SslHandler sslHandler = sslCtx.newHandler(channel.alloc());
// Currently not working
sslHandler.setWrapDataSize(1024);

Чтобы проверить размер записей, я использую WireShark и все еще вижу количество записей 16388 байт.

Мой поставщик SslContext по умолчанию - JDK.

Вопрос: как заставить Netty создавать записи меньшего размера?

Примечание: я также уменьшил размер буфера отправки в SocketChannelConfig, что также не имело никакого эффекта. (потому что это связано с TLS).

...