SPDY - 没有TLS 会怎样?

10

我想在高延迟的连接中实现SPDY(使用Node.js)。

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

是否有不带TLS加密的SPDY实现?

非常感谢您提前的帮助。

4个回答

15

SPDY的帧层并不需要在TLS上运行,但出于部署原因,它几乎总是这样做。由于中间人的存在,如果不通过443端口进行加密传输,就很难可靠地部署。请注意SPDY白皮书的说法:“为了使SSL成为底层传输协议,以提高安全性并与现有网络基础设施兼容。尽管SSL确实会引入延迟惩罚,但我们认为Web的长期未来取决于安全的网络连接。此外,使用SSL是必要的,以确保跨越现有代理的通信不会中断。”

话虽如此,Chromium存储库中的C++ Flip服务器支持不使用SSL运行,而且可以配置Chromium浏览器来支持此功能。

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


4
如果您正在使用node-spdy实现SPDY服务器,那么您可以使用plain: true, ssl: false选项来实现您想要的功能。
可以使用spdycat cli实用程序向plain: true spdy-server发出请求,明确指定协议版本(-3或-2和--no-tls)。要从浏览器中使用它,您需要使用--use-spdy=no-ssl标志启动chrome。
但请记住,SPDY应该在TLS(SSL)服务器上或在TLS(SSL)终止器后面,否则不适合提供Web内容。 https://github.com/indutny/node-spdy/issues/103

4

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

您可以通过打开chrome://net-internals/#spdy并在其中检查来确认标志已注册。


1
我建议使用QUIC协议,它正在开发中,基于UDP而不是TCP / TLS,但仍具有SPDY的优点,并且Chrome已经支持它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接