Application Protocol Design
Think of different people/teams, working on
the client and server programs.
Different programming languages.
Diverse hardware, operating systems.
Be unambiguous, precise.
Consider potential error conditions.
Allow for future extensions.
Leave room for additional data, meta-data.
Do not replicate services provided by lower-
layer protocols
e.g., checksum