![](/img/trans.png)
[英]C# (find second largest number) How to split program in subprograms ?so I can reuse code later…?
[英]How can I optimize SSL session so I can reuse it later (if needed) to improve Client Server performance
我在这里有一个带有大密钥的 Windows Azure上运行的服务器(链接旨在演示SSL证书中的大密钥)。 基于此Security.SE对话 ,从CPU角度来看,较大的密钥对于设置和拆除而言将更为昂贵。
假设我正在使用.NET客户端和.NET服务器; 我应该进行哪些更改(如果有的话)以减少连接/断开SSL透视图的开销。
出于本次对话的目的,让我们包括这些方案(如果可以考虑,请添加更多方案)
初始握手的成本基本上是固定的(给定某些参数)。 恢复握手的成本大约为零。
改善性能的方法是增加恢复会话(而不是初始会话)的会话数量。 这样可以在恢复的握手中分摊初始握手的成本,从而降低了平均握手成本。
增加恢复的握手速率的最简单方法是拥有较大的会话缓存大小/超时。 当然,拥有较大的会话缓存可能会导致其自身的性能问题。 一个需要在这两者之间找到一个良好的平衡,而最好的方法就是测试。
如果创建了使WCF连接保持打开状态的应用程序,则启用KeepAlive
(默认情况下处于禁用状态)可能很有意义。
打开保持活动开关后,TCP连接将自动重用。 对于'ServicePoint Manager,可以使用SetTcpKeepAlive方法打开TCP连接的keep-alive选项。 请参阅以下MSDN文章:
ServicePointManager.SetTcpKeepAlive方法http://msdn.microsoft.com/zh-cn/library/system.net.servicepointmanager.settcpkeepalive.aspx
从Microsoft:
通常,从性能的角度来看,常见的HTTP和HTTPS之间的区别在于TCP连接的握手。 与HTTP相比,HTTPS握手花费的时间更长。 但是,在建立TCP连接之后,它们的区别非常小,因为在此连接中将使用分组密码。 而且,“非常高位”证书和普通证书之间的区别更为微不足道。 我们已经处理了许多性能低下的情况,但是很少有由于性能更强的证书而导致性能低下问题的情况,因为网络拥塞,CPU高利用率,大部分ViewState数据等都是主要特征。性能下降。
从IIS的角度来看,请注意,在IIS管理器中,默认情况下会为网站选中一个选项,即“启用HTTP保持活动”。 此选项可确保IIS和客户端浏览器将对某些HTTP请求保持TCP连接一段时间。 也就是说,对于IIS服务器和客户端之间的往返,只有第一个请求明显比其他请求慢,而其余请求则不会。
您可以参考有关此设置的以下文章: http : //www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/d7e13ea5-4350-497e-ba34-b25c0e9efd68.mspx?mfr=true
当然,对于WCF,我知道在很多情况下IIS都不是承载应用程序的必需条件,但是在这一点上,我认为它们的工作原理类似。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.