netty - 减少 Netty 中的 TLS 记录大小?
问题描述
我目前正在使用 Netty 4.1.24 作为服务器通过 TLS 1.2 上的套接字连接与客户端进行通信。
目前,TLS 记录大小(“wrap”)为 16 Kb,如规范中所定义(参见SslHandler中的实现;相关变量为MAX_PLAINTEXT_LENGTH
和wrapDataSize
)
由于客户端的内存限制,我必须减少服务器生成的 TLS 记录大小。我setWrapDataSize
用来限制大小,但 Netty 不使用它(它仍然创建 16 Kb 记录)。
我在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 相关)。
解决方案
推荐阅读
- c++ - 无法从派生类指针转换为基类指针
- linux - 这个 sed 结束案例没有意义,我不知道为什么
- c++ - C++ std::regex_replace 用不同的字符串替换不同的匹配
- r - 如何增加 tm_facets 中各个方面的图形大小
- r - 如何使用 grep 提取日期?我需要为每一个匹配“,”,“/”,“.”,“-”
- python - Python中的Hash Map只是一个字典吗?
- java - Java 函数到递归函数问题
- php - ZipArchive::addFile() 在 Windows 中创建树形结构的 zip 文件,但在 Linux 中是扁平的
- java - 如何将项目插入列表的前面?
- r - omu_anova 错误:提供的行名长度错误