搜索具有多路复用的C/C 网络库
Searching for C/C++ network library with multiplexing
我正在编写一个应用程序,该应用程序具有在两个实例之间并行运行的数字(数百)并发网络操作。由于连接的平均寿命很短(最多几秒),所以我认为使用许多TCP连接并每次进行握手的开销(尤其是对于TLS握手)太大了。
我开始查看实现多重交易的几个协议和库(如该问题的回答所述,大多是Apache Qupid,RabbitMQ等AMQP实现)。然而,它们似乎都在TCP上运行,TCP引入了一些开销,并且没有很多意义(这篇文章很好地解释了问题,得出的结论是,TCP多重速度是愚蠢的)。而且所有人都感到非常胖,我更喜欢小而轻的东西(不幸的是,Zeromq并没有实现多重AFAIK)。这让我想到使用UDP是否是一种选择。当然,必须正确实施恢复和ACK等内容,但是,在有关连接上多个流的知识中,比简单地使用TCP更有效。
。您认为我上面的理由是正确的,还是我错过了重要的东西?是否有任何好的C/C 库可以通过UDP实现多路复用?
做可能有效的最简单的事情,并且只能在必要时使其更复杂:
-
在其上使用单个TCP连接和多重逻辑会话
- 例如,如果这些逻辑实体只是异步请求/响应对,例如,您可以完全分配明确的逻辑会话
-
如果在每个实例中都有多个并发组件,那么确实需要自己的队列,以倒退才能节气门过度吸引发件人:
- 首先考虑仅在发送方限制未偿请求/活动会话的数量,而不是需要特定的ACK
- 仅当您需要动态变化的队列长度时(例如。
-
仅当您遇到逻辑会话确实与TCP互动不佳的情况下,然后考虑实现自己的可靠流量控制Datagram协议
相关文章:
- 用 Python 训练神经网络并在 C++ 中部署
- 使用 avcodec_decode_subtitle2 (FFmpeg) 提取(解复用)字幕
- 使用 Select 多路复用未命名的管道和其他文件描述符
- FFMPEG:具有不同持续时间的多路复用流
- 不推荐使用 AVStream.codec.time_base 作为复用器的时基提示.改为设置AVStream.time_
- 输入复用的c++设计模式
- 用C++/C进行安全网络编程
- 搜索具有多路复用的C/C 网络库
- C++IO/多路复用TCP服务器和POSIX线程
- C++I/O多路复用服务器过早关闭连接
- 用c++打印的多路复用值错误
- 用c++实现TCP/Ip网络通信
- 从网络摄像头预览捕获图像的最佳DirectShow方式?SampleGrabber已弃用
- VLC libx264流复用为FLV
- 使用select()、read()、write()进行I/O多路复用
- 每个会话连接或通过一个连接复用多个会话
- 如何使用boost::statechart在固定数量的线程上复用许多异步状态机
- Arduino代码优化的多路复用LED矩阵
- 在C++聚合类中实现调用多路复用的优雅方法
- 通过套接字复用数据