Обмен Xml пакетами по TCP

Всем доброго времени суток. Есть задача: реализовать обмен Xml пакетами через Tcp между двумя точками в двух направлениях со 100% гарантией доставки. Перерыл кучу материала по теме и если я правильно понял, то само по себе Tcp соединение напоминает com порт куда просто валятся данные, то есть оно гарантирует что они придут в нужном порядке и все правильно, но склеиваются как попало. Это значит что может быть ситуация когда конец одного и начало другого Xml пакета слипнуться. Чтобы этого избежать я пока решил ввести заголовки, где будет проставляться сигнатура начала и размер нагрузки...но это означает что надо постоянно шерстить входящий поток...может кто то подскажет более изящное решение проблемы?