Design Concept vs RFC

What is the difference between a design concept and an RFC (TLS concept vs TLS RFC)? What level of detail is appropriate? Should a concept do more than provide a how-to guide on implementation? Should it provide common mistakes?

Hi Eric, welcome to the forum! An RFC describes an entire protocol or service, so it will generally include many different concepts. The IMAP RFC, for example, includes concepts such as message, folder and account (although in RFCs in the individual concepts are not usually separated cleanly, but are all merged together).

A concept description should certainly include common mistakes and issues, and it would be good to have implementation advice tied to concepts too. In IMAP, for example, it seems that folder names have a global namespace, rather than what you’d expect. So a mail client needs to deal with the problem of a user creating a folder with a name that appears on some other folder, potentially deep in the folder hierarchy.


RFC come in many styles and depths. RFC simply means the document went through the RFC publication process. Confusion about RFCs is common enough to have prompted and RFC about the confusion: RFC 1796 --“Not All RFCs are Standards”…

An RFC might be a detailed specification of an over-the wire protocol, or format, or it might describe an abstract architecture, or details about implementation experience, or the outline of an idea, or… just about anything else.

I am not familiar with the meaning of ‘concept’ as used in this forum, but I’ve been wishing that more Internet standards work began with – or at least ended with – a clear, coherent, concise description of a ‘design approach’. Essentially this would be a nearly non-technical description of the problem to be solved or benefit to be provided, and the basics of the mechanics for achieving it.

Riffing off of dnj’s posting, it certainly makes sense to have the description mark out matters of concern, whether limitations or common errors. But this could easily move from ‘concept’ to something like ‘implementation issues’. I’d suggest not letting that happen.