MLLP uses three bytes to frame HL7 messages over TCP. How start block, end block, and carriage return work together, and the edge cases that break implementations.