Usted podría considerar ØMQ. Es una biblioteca de mensajería multiplataforma que, entre muchas otras cosas, "automágicamente" maneja problemas de conexión (incluida la reconexión en caso de fallas). Hay enlaces en muchos idiomas, y la biblioteca czmq proporciona una agradable interfaz C de alto nivel para muchos usos comunes de ØMQ.
Puede usar fácilmente el patrón Solicitud-Respuesta para un marco RPC, pero cuando lea guide, puede encontrar que otros patrones son más apropiados.
Encontré un RPC framework construido en la parte superior de ØMQ, pero dado que al parecer está usando C++, esto probablemente no lo ayudará (excepto para fines de aprendizaje). Consulte también this question. Probablemente puedas enrollar fácilmente el tuyo, si quieres.
La licencia de ØMQ es "LGPLv3 +", que es básicamente LGPL con una excepción de enlace estático. czmq se está moviendo al MPLv2, por lo que no me sorprendería si ØMQ lo sigue pronto. Según un mensaje del creador de ØMQ, el MPLv2 es muy similar a la licencia "LGPLv3 +", pero es más aceptable para los abogados de empresa.
También podría considerar boost serialization para el código de su interfaz. Usamos czmq (incluido zbeacon para detección automática de nodos) junto con la serialización de refuerzo, y funciona muy bien. He utilizado XML-RPC en el pasado, y prefiero ØMQ para la funcionalidad de manejo de conexión que ofrece.