Вот для всего этого и придуман TCP. Цитата из вики: "Механизм TCP предоставляет поток данных с предварительной
установкой соединения, осуществляет повторный запрос данных в
случае потери данных и устраняет дублирование при получении двух
копий одного пакета, гарантируя тем самым (в отличие от UDP)
целостность передаваемых данных и уведомление отправителя о
результатах передачи." К этому стоить ещё добавить что TCP предоставляет два потока данных - туда и обратно.
И никто не заставляет передавать данные порциями определенной длины. Если очень нужно - хоть по 1 байту передавай.
Для полноценной реализации последовательного порта нужно ещё уметь устанавливать скорость, формат, управлять сигналами DTR, RTS, уведомлять о изменении входных сигналов (CTS, DSR и т.д.). Для этого есть RFC2217 и куча проприетарных протоколов, использующих TCP, но бывают и на базе UDP.