我知道有没有一个单一的硬性的答案,但是有一个通用的 数量级估计 逼近的加密开销的SSL与未加密套接字沟通?我是说只有通信处理和电线的时间,还不算应用程序级处理。

更新

那里是 一个问题是关于HTTPS对HTTP, 但我感兴趣于寻找降低。

(I取代该短语"数量级",以避免混乱;我使用它作为非正式的术语而不是在正规CompSci意义。当然,如果我 意味着它从形式上看,作为一个真正的怪胎,我会一直在想二进制而不是小数点!;-)

更新

每请求在评论中,假设我们谈论的大的消息(范围的1k-10k)通过持续连接。所以连接设置和分组开销是不重要的问题。

有帮助吗?

解决方案

数量级:零

在换句话说,你不会看到你的吞吐量减少了一半,或类似的东西,当你添加TLS。答案,“重复”的问题重点放在了应用程序的性能,以及如何比较SSL的开销。这个问题明确排除应用程序处理,并寻求比较非SSL只SSL。虽然它是有道理的优化时采取的性能全局视图,这不是什么这个问题是问。

SSL的主要开销是握手。这就是昂贵的非对称加密发生。协商后,使用相对有效的对称密码。这就是为什么它可以是非常有益的,使你的HTTPS服务,其中许多连接是由SSL会话。对于长期连接,该“末端效应”并不像显著,和会话不是那么有用。


下面的一个有趣的轶事。的当谷歌的Gmail切换到使用HTTPS,都无需额外资源;没有网络的硬件,没有新的主机。它只有约1%增加的CPU负荷。

其他提示

我第二@erickson:纯数据传输速度的损失是可以忽略的。现代的CPU达到加密/ AES吞吐量几百兆比特/秒。所以,除非你是资源受限的系统上(手机)TLS / SSL是足够快的吊索左右的数据。

但请记住,加密,使缓存和负载平衡更难。这可能会导致一个巨大的性能损失。

但是,连接建立是真的对于许多应用显示塞。低带宽,高分组丢失,高延迟的连接通过TLS可能使一些慢弄成所需不可用(在农村移动设备)的附加往返。

例如,我们不得不放弃加密要求访问我们的一些内部Web应用程序的 - 如果他们从中国用在旁边不可用

假设你不连接的设置(如你所指出,在更新),它强烈依赖于密码的选择。网络的开销(带宽)将可以忽略不计。CPU开销将主要通过密码技术。我的移动核心i5,我可以加密的周围250兆字节每秒的RC4在一个单一的核心。 (RC4是什么你应该选择最高的性能。) AES慢,提供"只有"周围的50MB/s。所以,如果你选择正确的密码,你会不会管理,以保持一个单一的当前核心繁忙的有密码的开销,甚至如果你有一个充分利用1千兆线。[编辑:RC4不应被使用,因为它不再是安全的。然而,AES的硬件支持,现在存在许多Cpu,这使得AES加密的真快在这样的平台。]

连接建立的,然而是不同的。根据执行情况(例如支持TLS虚假的开始),这将增加往返,这可能会导致显着延迟。此外,昂贵的加密发生在第一次建立连接(上述CPU只能接受14连接的每个核心每第二,如果你愚蠢地使用4096位密钥和100,如果你使用2048位密钥)。在随后的连接,前几届会议都通常重复使用,避免了昂贵的密码.

因此,要总结:

传送关于建立连接:

  • 延迟:几乎没有
  • CPU:可以忽略不计
  • 带宽:可以忽略不计

第一个连接建立:

  • 延迟:额外的轮旅行
  • 带宽:几个千字节(证书)
  • CPU对客户:介质
  • CPU在服务器:高

随后连接的机构:

  • 延迟:额外的往返(不确定,如果一个或多个可以实现的受扶养人)
  • 带宽:可以忽略不计
  • CPU:几乎没有
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top