Это отличный вопрос с огромным количеством переменных, которые нужно учитывать, и в этом вопросе упоминается только несколько из них: формат пакета, асинхронный и синхронизированный обмен сообщениями и безопасность. Есть много, много других, о которых можно подумать. Я предлагаю пройти через описание стека 7-уровневого протокола (OSI / ISO) и спросить себя, что вам нужно на этих уровнях, и хотите ли вы создать этот уровень или получить его откуда-то еще. (Вы, кажется, в основном интересуетесь слоями 6 и 7, но также упоминали биты нижних уровней.)
Подумайте также о том, относится ли это к критически важным для безопасности приложениям или является частью системы с формальным V & V. Действительно хорошие, заслуживающие доверия системы связи нелегко спроектировать; также «недостаточно мощный» протокол может значительно увеличить нагрузку на код приложения для восстановления после ошибок.
Наконец, я бы посоветовал посмотреть, как другие приложения, аналогичные вашим, справляются с работой (проверяют открытый исходный код, читают книги и т. Д.). Также полезна база данных Патентного ведомства США и т. Д .; можно получить прекрасные идеи, просто прочитав описание проблемы общения, которую они пытались решить.