使用loopback接口在生产应用程序之间进行通信

时间:2015-06-04 03:57:12

标签: linux loopback-address

我正在Ubuntu服务器上开发2个应用程序,它需要通过UDP以大约200 Mbps的速率相互通信。在初始阶段,我计划在通过loopback-address进行通信的同一服务器上部署两个应用程序。

我对此设置有两个顾虑。非常感谢任何帮助。

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

1 个答案:

答案 0 :(得分:3)

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

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

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

  3. 如果您正在寻找特定的代码片段,请告诉我,或者这是一般性问题(正如我所读到的那样)。希望这会有所帮助。