STX u. ETX brauchen wir bei IP nicht, natürlich auch kein Stuffing.
Am Einfachsten also (Längen-angaben immer daten-Netto)
Länge LSByte
Länge MSByte
Daten
memcpy is ok so.

42 is eine gute Wahl, denk ich. Etwas größer als 41 und trotzdem immer noch kleiner als 43

EDIT: btw: Meine IP send/receive haben so eine Art Auto-detect Mechanismus (optional).
Bei der ersten incom-Message probier ich die Varianten aus (Länge oder nicht, networkorder oder Intel) Wenn eins davon paßt, gilt das dann für die Dauer der ganzen Connection. Dann wird auch in dem Format zurückgeschickt.