3

我正在 Ubuntu 服务器上开发 2 个应用程序,它们需要通过 UDP 以大约 200 Mbps 的峰值速度相互通信。在初始阶段,我计划将两个应用程序部署在通过环回地址进行通信的同一台服务器上。

我对此设置有两个担忧。任何帮助是极大的赞赏。

  1. 使用环回接口在 2 个应用程序之间进行通信是一种好习惯吗?
  2. 使用环回接口可以实现的最大吞吐量是否存在性能限制。
4

1 回答 1

3

使用环回 (127.0.0.1) 接口通常是网络启用/感知应用程序的开发(调试)增量。如果您仅将环回接口用作 IPC(进程间通信)工具,我会“挑眉”。此外,数据吞吐量(200 Mbps 峰值关注)不传输(通过 OSI 物理层),而是在网络层内“翻转”。对于您的(两个)问题:

  1. 在调试网络感知/启用应用程序的上下文中,这是在同一设备上测试客户端/服务器的首选方法。对于 IPC 的一种方法,它增加了进程之间编组数据的不必要开销,所以如果这是您想要的目标,我会查看您的操作系统本地 IPC 机制(因为这通常转换为内存映射文件以跨越进程边界;哪个可以有效地配置为驻留内存并且非常快)。

  2. 性能将与您的 UDP 设计相关。有效负载的大小、消息的结构、队列管理等。当然,您将处理正常的网络堆栈开销(但如果实施得当且适用,您的 IPC 机制的开销会更少)。

让我知道您是否正在寻找特定的代码片段,或者这只是一个普遍的问题(正如我所读的那样)。希望这可以帮助。

于 2015-06-04T04:23:46.623 回答