gpt4 book ai didi

c++ - 使用 Berkeley 套接字进行多路复用

转载 作者:太空狗 更新时间:2023-10-29 20:59:25 29 4
gpt4 key购买 nike

我有一个 Web HTTP/1.1 服务器实现,它是我使用 Berkeley 套接字用 C++ 编写的。我正在考虑实现对 HTTP/2.0(或 SPDY)的支持,它允许请求和响应多路复用:

HTTP/2.0 中的二进制框架层通过允许客户端和服务器将 HTTP 消息分解为独立的帧,交织它们,然后在另一端重新组合它们,实现了完整的请求和响应多路复用。

我的问题如下;我怎样才能启用 HTTP/2.0(或 SPDY)类型的请求和响应多路复用我现有的使用 Berkeley Socket API 编写的 HTTP/1.1 程序?也许上述 HTTP/2.0(或 SPDY)所支持的帧多路复用已经由 TCP/IP 堆栈中的现有机制处理,或者?

澄清:

我对多路复用的部分特别感兴趣,使用单个连接并行传送多个请求和响应,我从规范中不明白这是如何在应用程序中实现的级协议(protocol)?有什么想法吗?

最佳答案

不,TCP 堆栈不处理任何这些,因为 SPDY 不是 TCP/IP 堆栈的一部分,它在 TCP 之上,传统上被认为是应用程序协议(protocol)。它的控制和数据帧记录在规范草案中。您通过实现协议(protocol)来实现多路复用。 TCP 堆栈对 HTTP 或 SPDY 一无所知。

简而言之,SPDY 由单个 TCP 连接中的帧组成,其中包括相当简单的 header ,其中包含 session ID 和帧长度等。您必须实现它才能进行多路复用。您应该能够使用标准的启用 SSL/TLS 的套接字代码来实现这一切。

据我所知,这是规范 -

http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2

关于c++ - 使用 Berkeley 套接字进行多路复用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24720894/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com