簡體   English   中英

如何優化SSL會話,以便以后可以重新使用它(如果需要)以提高客戶端服務器的性能

[英]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透視圖的開銷。

出於本次對話的目的,讓我們包括這些方案(如果可以考慮,請添加更多方案)

  • WebBrowser到IIS
  • WCF客戶端到WCF服務器(IIS)
  • WCF客戶端到WCF TCP
  • 基於套接字的客戶端到基於套接字的服務器

初始握手的成本基本上是固定的(給定某些參數)。 恢復握手的成本大約為零。

改善性能的方法是增加恢復會話(而不是初始會話)的會話數量。 這樣可以在恢復的握手中分攤初始握手的成本,從而降低了平均握手成本。

增加恢復的握手速率的最簡單方法是擁有較大的會話緩存大小/超時。 當然,擁有較大的會話緩存可能會導致其自身的性能問題。 一個需要在這兩者之間找到一個良好的平衡,而最好的方法就是測試。

如果創建了使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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM