I am developing 2 applications on a Ubuntu server which needs to communicate with each other over UDP at about peak 200 Mbps. In the initial stage I am planning to deploy both applications on the same server communicating over the loopback-address.
I have 2 concerns with this setup. Any help is greatly appreciated.
Using the loopback (127.0.0.1) interface is usually a developmental (debugging) increment for a network enabled/aware application. If you're using a loopback interface solely as an IPC (inter-process communication) vehicle, I'd "raise an eyebrow". Additionally, data throughput (200 Mbps peak concern) doesn't transmit (through the OSI physical layer) and is "turned around" within the network layer. To your (two) questions:
In the context of debugging a network aware/enabled application, it is a preferred way to test both client(s) / server on the same device. For a means of IPC, it adds unnecessary overhead to marshaling data between processes so if this is your desired objective, I'd look at your OS-indigenous IPC mechanism (as this usually translates to memory-mapped files to cross process boundaries; which can be efficiently configured to be memory-resident and very fast).
Performance will be relative to your UDP design. Size of payload, structure of messages, queue management, etc. You will deal with normal network stack overhead of course (but there is less overhead in your IPC mechanisms if implemented properly and applicable).
Let me know if you're looking for specific code fragments or is this just as general a question (as I've read it as). Hope this helps.