Only one thing I would change: The article mentions the term "syntax" very often, but I don't it is the best choice. When I read syntax, I think about something human-readable, e.g. about programming language syntax. What is really meant is "wire-level encoding" or "serialization format". I think [wire-level] encoding might be the most common used term for protocols.