【发布时间】:2016-09-30 13:23:52
【问题描述】:
有一些有用的信息可用于使用 java 实现 SSL 和 NIO (SocketChannel and SSLEngine),而不是使用诸如 netty 等框架。
我正在尝试提出一个SSL 实现,它可以与blocking/non 阻塞通道一起使用,并获得了一些基本的qns。
在处理 appData 和 Net 缓冲区时,没有太多关于线程安全问题的信息。根据SSLEngine 的文档,
“有两个并发问题需要注意:
wrap() 和 unwrap() 方法可以同时执行。
SSL/TLS 协议使用有序数据包。应用程序必须注意确保生成的数据包按顺序传递。如果数据包乱序到达,可能会出现意外或致命的结果。”
这是否适用于阻塞和非阻塞?有人可以解释一下。谢谢。
此外,设置初始缓冲区大小的一般建议似乎基于 (session.getApplicationBufferSize()/getPacketBufferSize()),如何设置这些值?这些是否更好地用于代替32k 左右的一些标准缓冲区大小?
【问题讨论】: