Протокол TCP гарантирует доставку данных, мне кажется проблема именно в вашем протоколе прикладного уровня.
Метод pipe() описан тут —
nodejs.org/api/stream.html#stream_stream_pipe_destination_options
Вкратце: он соединяет поток чтения данного сокета с потоком записи, переданном в качестве параметра. То есть все, что пришло на данный сокет, будет записано в поток, переданный в качестве параметра, в данном случаем, этот же самый сокет. Таки образом, получается эхо-сервер.