我正在尝试实现 SPDY(使用 Node.js)以用于高延迟连接。
现在 SPDY 使用 TLS 加密,这会增加数据包长度——这是我试图避免的。
是否有没有 TLS 加密的 SPDY 实现?
提前谢谢了,
SPDY 的框架层不需要运行 TLS,但出于部署原因,它几乎总是这样做。由于中介的原因,如果不通过端口 443 运行加密,就很难可靠地部署。请注意SPDY 白皮书说:“为了使 SSL 成为底层传输协议,以获得更好的安全性和与现有网络基础设施的兼容性。虽然 SSL 确实引入了延迟损失,但我们相信网络的长期未来取决于安全的网络连接. 此外,必须使用 SSL 以确保现有代理之间的通信不会中断。”
也就是说,Chromium 存储库中的 C++ Flip 服务器确实支持在没有 SSL 的情况下运行,并且 Chromium 浏览器可以配置为支持这一点。
PS:还有一个现有的 node.js 实现,请参阅http://www.chromium.org/spdy。
如果你想在本地测试你的 SPDY 服务器并且没有 TLS,你可以强制 chrome 使用 SPDY,即使没有 NPN 升级。为此,请--use-spdy=no-ssl
在加载 Chrome 时将其传递给 Chrome。
chrome://net-internals/#spdy
您可以通过打开并在那里签到来确认该标志已注册。
如果您正在使用 node-spdy 实现 SPDY 服务器,那么您可以使用这些plain: true, ssl: false
选项来实现您想要的。
可以使用 spdycat cli 实用程序向纯 spdy-server 发出请求,明确指定协议版本(-3 或 -2 和 --no-tls)。要从浏览器中使用它,您需要使用 --use-spdy=no-ssl 标志启动 chrome。
但请记住,SPDY 应该在 TLS(SSL) 服务器上或在 TLS(SSL) 终结器之后,否则不适合提供 Web 内容。
我会建议 QUIC 协议,它正在开发中,基于 UDP 而不是 TCP/TLS,但仍然具有 SPDY 和 Chrome 支持它的好处