Appendix A. On the Design of Application Protocols

This is a reprint of the design document for BXXP, BEEP’s predecessor, written by Carl Malamud and myself in early 2000. BXXP was the input to the IETF working group that produced BEEP. (At the very end of the design document, the interesting differences between BXXP and BEEP are listed.)

Some readers may be interested in an analysis on the design principles of application protocols, but that level of design detail probably isn’t appropriate for the depth of this book—that’s why it has been placed in this appendix.

A Problem 19 Years in the Making

SMTP (RFC 821) is close to being the perfect application protocol: it solves a large, important problem in a minimalist way. It’s simple enough for an entry-level implementation to fit on one or two screens of code, and flexible enough to form the basis of very powerful product offerings in a robust and competitive market. Modulo a few oddities (e.g., SAML), the design is well-conceived and the resulting specification is well-written and largely self-contained. There is very little about good application protocol design that you can’t learn by reading the SMTP specification.

Unfortunately, there’s one little problem: SMTP was originally published in 1981, and since that time a lot of application protocols have been designed for the Internet but there hasn’t been a lot of reuse going on. You might expect this if the application protocols were all radically different, but this isn’t the case: ...

Get BEEP: The Definitive Guide now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.