Steht da doch genau
Also die Bytes werden wohl einfach nacheinander gesendet. Also erstmal kommt 0x01 und dann 4 Bytes für den int, dann 2 Bytes Stringlänge und dann der String. Die anderen Felder sind reserviert. Müssen also entgegengenommen werden, enthalten aber noch keine Information.
Beim String musst du ein wenig aufpassen, da
Unicode benutzt wird. Könnte also Nullbytes enthalten...
Oder meinst du, warum da zwei verschiedene Pakete erläutert werden? Das eine ist ein Paket an den Client, das andere an den Server. Für eine Kommunikationsrichtung ist die ID also immer noch eindeutig. Die Reihenfolge ist ja in dem Text erklärt.