SPDY - 没有 TLS?

Posted

技术标签:

【中文标题】SPDY - 没有 TLS?【英文标题】:SPDY - without TLS? 【发布时间】:2011-09-12 08:25:15 【问题描述】:

我正在尝试实现 SPDY(使用 Node.js)以用于高延迟连接。

现在 SPDY 使用 TLS 加密,这会增加数据包长度 - 这是我试图避免的。

有没有没有 TLS 加密的 SPDY 实现?

非常感谢,

【问题讨论】:

【参考方案1】:

SPDY 的框架层不需要在 TLS 上运行,但出于部署原因,它几乎总是这样做。由于中介的原因,如果不通过端口 443 运行加密,就很难可靠地部署。请注意SPDY whitepaper 说:“为了使 SSL 成为底层传输协议,以获得更好的安全性和与现有网络基础设施的兼容性。虽然 SSL 确实引入了延迟损失,但我们相信网络的长期未来取决于安全网络连接。此外,必须使用 SSL 以确保跨现有代理的通信不会中断。"

也就是说,Chromium 存储库中的 C++ Flip 服务器确实支持在没有 SSL 的情况下运行,并且 Chromium 浏览器可以配置为支持这一点。

PS:还有一个现有的 node.js 实现,请参阅http://www.chromium.org/spdy。

【讨论】:

【参考方案2】:

如果您想在没有 TLS 的情况下在本地测试您的 SPDY 服务器,即使没有 NPN 升级,您也可以强制 chrome 使用 SPDY。为此,请在加载时将 --use-spdy=no-ssl 传递给 Chrome。

您可以通过打开chrome://net-internals/#spdy 并在那里签到来确认该标志已注册。

【讨论】:

【参考方案3】:

如果您正在使用 node-spdy 实现 SPDY 服务器,那么您可以使用 plain: true, ssl: false 选项来实现您想要的。

可以向普通请求:使用 spdycat 的真正 spdy-server cli 实用程序,明确指定协议版本(-3 或 -2 和 --no-tls)。要从浏览器中使用它,您需要使用 --use-spdy=no-ssl 标志启动 chrome。

但请记住,SPDY 应该在 TLS(SSL) 服务器上 或在 TLS(SSL) 终结符之后,否则不适合投放 网页内容。

https://github.com/indutny/node-spdy/issues/103

【讨论】:

【参考方案4】:

我会建议 QUIC 协议,它正在开发中,基于 UDP 而不是 TCP/TLS,但仍然具有 SPDY 和 Chrome 支持它的好处

【讨论】:

以上是关于SPDY - 没有 TLS?的主要内容,如果未能解决你的问题,请参考以下文章

netty系列之:让TLS支持http2

heartbleed 漏洞会影响 SPDY 协议吗?

Jetty 9.0 嵌入了带有 SPDY 但没有 SSL/NPN 的配置

HTTP2 / SPDY 推流验证:如何测试?

为啥 spdy 在 nginx 1.5.10 中不起作用?

Windows 版的 Spdy ( speedy ) 是不是可用?