TALKNet protocol
[Update: 28th January: Still putting together the pages. None of the links below will work]
I always use the length 42 for packets (unless there is a known length for it) and <ID> for the session identifier. In packet definitions, the appearance of a newline inicates that a CRLF should be sent at that time.
This document only defines core packet types; not even IM is covered. The idea is to mandate the least amount of functionality. (There will be other documents for definitions of things like user status, messaging, etc.)