在服务器中有效管理 SSL 数据读写传输速率

Posted

技术标签:

【中文标题】在服务器中有效管理 SSL 数据读写传输速率【英文标题】:SSL data read and write transfer rate managing efficiently in Server 【发布时间】:2017-06-19 12:18:40 【问题描述】:

如何高效控制数据读写? 要么 降低读/写速度的可能原因是什么? 我的代码有什么错误吗? 目前速度很慢。

我正在使用以下代码:

listener.BeginAcceptTcpClient(new AsyncCallback(AcceptCallback), listener);
 .....
// Inside AcceptCallback()
dataStream = client.GetStream();
sslStream = new SslStream(dataStream, true, new RemoteCertificateValidationCallback(ValidateCert));

sslStream.AuthenticateAsServer(serverCertificate);
....
sslState.sslStream.BeginRead(buffer, 0, Length, StartSSLSession, sslState);


// Inside StartSSLSession(IAsyncResult ar)
sslStream.Write(responseBuffer);
sslStream.Flush();

请给出建议或解决方案..

这里我附上了从客户端到服务器传输数据的当前长度的图像。这是否可以增加客户端数据的长度..?

【问题讨论】:

【参考方案1】:

在 dataStream 和 sslStream 之间添加一个缓冲区

dataStream = client.GetStream();
bufferedStream = new BufferedStream(dataStream);
sslStream = new SslStream(bufferedStream, true, new RemoteCertificateValidationCallback(ValidateCert));

这将导致 SslStream 的输出到缓冲区(默认缓冲区大小为 4096 字节)输出到套接字的数据流,因此更有效地发送更大的数据块。

【讨论】:

以上是关于在服务器中有效管理 SSL 数据读写传输速率的主要内容,如果未能解决你的问题,请参考以下文章

LoRa传输中的射频配置参数介绍

我的Linux,我做主!独立磁盘冗余阵列RAID分级及实现方式

MIPI读写时间

什么叫SSL

HTTP通信

SSD硬盘接口速率