Я бы попробовал протокол sctp, в 7-й java появилась поддержка в jdk. В отличие от tcp, протокол ориентирован на сообщения (т.е. нет необходимости кодировать как-то кодировать данные в случае tcp), можно задать получение сообщений по мере их поступления (а не по порядку). Есть одно но, размер сообщения ограничен в 64 кб. Зато достаточно открыть только 1 соединение. Посмотрите в wiki:
ru.wikipedia.org/wiki/SCTP
Если использовать классический tcp и требования к latency жесткие, то скорее всего сделал бы пул каналов.
P.S. JMX не рассматриваете из-за требований к производительности?