gpt4 book ai didi

windows - 与 Windows 上本地主机 IPC 的命名管道相比,TCP 套接字有多慢?

转载 作者:可可西里 更新时间:2023-11-01 12:03:50 25 4
gpt4 key购买 nike

我正在开发一个 TCP 代理,放置在 TCP 服务之前,该服务应处理来自野外 Internet 的 500 到 1000 个事件连接。

代理与服务在同一台机器上运行,并且大部分是透明的。该服务在很大程度上不知道代理,唯一的异常(exception)是通知客户端的真实远程 IP 地址。

这意味着,对于每个入站打开的 TCP 套接字,服务器上还有两个套接字:代理中的第二个套接字,以及代理后面的真实服务中的一个。

两个代理套接字上的发送和接收窗口大小设置为 1024 字节。

这对性能有何影响?这个配置有多慢?我是否应该努力将服务更改为使用命名管道(或其他 IPC 机制),或者本地主机 TCP 套接字在很大程度上是一种高效的 IPC?

这两个应用程序的合并不是一个选项。现在我们坚持使用两个进程配置。

编辑:在同一硬件上有两个独立进程的原因是 100% 经济。我们只有一台服务器,我们不打算获得更多(没有钱)。

TCP 服务是 Visual Basic 6 中的遗留软件,它的发展超出了我们的预期。代理是 C++。我们没有时间、金钱或人力来重写 VB6 代码并将其迁移到现代编程环境。

代理是我们尝试缓解服务上的特定性能问题,DDoS attack我们不时得到。

代理是开源的,and here is the project source code .

最佳答案

它将是相同的(或者至少没有明显的不同)。 Winsock 足够聪明,可以知道它是否正在与同一主机上的套接字通信,在这种情况下,它会短路 IP 下的几乎所有内容,并直接逐个缓冲区地复制数据。在命名管道与套接字方面,如果您将来可能需要能够与不同的机器进行通信,请选择套接字。如果您知道您永远不需要这样做,请选择您的开发人员最熟悉或最熟悉的一个。

关于windows - 与 Windows 上本地主机 IPC 的命名管道相比,TCP 套接字有多慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872557/

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