There seems to be a bewildering variety of protocols out there for networked SDRs, many proprietary and/or closely linked to specific hardware. I'm sure I haven't even seen most of them. I hesitated to create still more when I began ka9q-radio, but I think it was necessary to accomplish many of my goals. Those included:
1. Support of as many simultaneous digital downconverters on a single front end as possible, limited only by the CPU and network speed of the host computer.
2. Use of IP multicasting for everything: not just the receiver data flows but also control and status monitoring. Any number of processes on any number of computers can consume the same data stream without ka9q-radio caring or even knowing how many there are. Multiple control/status monitoring programs can share control of a receiver channel, with everyone on the control/status multicast group seeing everyone's commands sent and responses received. All packet routing and duplication is handled by the Ethernet switches and routers, eg, with IGMP snooping and by the existing multicast support in the Linux kernel.
I wanted to use standard, widely used IETF protocols wherever possible for the data streams. All received signals are carried in RTP/UDP, the Real Time Protocol universally used for VoIP and some IPTV networks like AT&T Uverse. RTP provides the packet sequencing, time stamping and demultiplexing required to stream synchronous data over a network that can drop or reorder packets, and my use of it is at least somewhat compatible with existing applications like VLC.
But I rolled my own command/status protocol, and I'm still not sure this was the right thing to do. I did know that I could make mine a lot simpler and faster than anything using json or (God forbid) XML, yet remain flexible and extensible by borrowing the TLV (type/length/value) binary encoding used in many core Internet protocols. My protocol works but I don't pretend it's perfect so I'm open to any effort to combine efforts that allows me to extend or generalize my control/status functions without undue complexity.
Phil