我目前正在使用Netty 4.1.24进行服务器通过TLS 1.2与客户端通过套接字连接进行通信。
目前,TLS记录大小(" wrap")是规范中定义的16 Kb(参见SslHandler中的实现;相关变量为MAX_PLAINTEXT_LENGTH
和{{1} })
由于客户端的内存限制,我必须减少服务器生成的TLS记录大小。我使用wrapDataSize
来限制大小,但Netty不使用它(它仍会创建16 Kb记录)。
我使用setWrapDataSize
中的以下代码段来创建ChannelInitializer
/ SSLEngine
SslHandler
为了检查记录的大小,我使用WireShark,我仍然看到一个16388字节的记录。
我的默认SslContext Provider是JDK。
问题是:如何强制Netty创建较小的记录?
注意:我还减少了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);
中发送缓冲区的大小,这也没有效果。 (导致它与TLS相关的事情)。