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?的主要内容,如果未能解决你的问题,请参考以下文章