Здравствуйте.
Нужна помощь в реализации такой задачи:
Узлу на открытый UDP — сокет приходят сериализованные объекты-сообщения. Сообщения могут приходить от разных узлов и для разных обработчиков-плагинов. Грубо говоря есть объект-синглетон, через который плагины подписываться на определенные типы сообщений. Если бы объекты укладывались в рамки MTU, то все просто: ждем очередную датаграмму и далее сразу же ее обрабатываем. Но как быть, если объект разбивается на несколько пакетов при пересылке?
То есть возможна ситуация перемешивания пакетов от разных сообщений. В принципе есть решение снабжать каждое сообщение уникальным идентификатором и организовать очередь для частично принятых сообщений. Но не хочется городить велосипед, наверняка есть готовые решения, примеры реализации, паттерны. В случае отдельного соединения TCP для каждой пары узлов, все довольно просто решается. Но TCP не подходит из-за соображений производительности и проблемы с обходом NAT'ов.