What a reference implementation is

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Recently, a colleague made a statement about a software distribution
being "the reference implementation" for a protocol.

My understanding of what a "reference implementation" is, comes from an
old document by Tomasz Mrugalski and David Hankins as part of the
ISC-DHCP software distribution which says:

> 2.  Definition: Reference Implementation

>    ISC DHCP, much like its other cousins in ISC software, is self-
>    described as a 'Reference Implementation.'  There has been a great
>    deal of confusion about this term.  Some people seem to think that
>    this term applies to any software that once passed a piece of
>    reference material on its way to market (but may do quite a lot of
>    things that aren't described in any reference, or may choose to
>    ignore the reference it saw entirely).  Other folks get confused by
>    the word 'reference' and understand that to mean that there is some
>    special status applied to the software - that the software itself is
>    the reference by which all other software is measured.  Something
>    along the lines of being "The DHCP Protocol's Reference Clock," it is
>    supposed.
   
>    The truth is actually quite a lot simpler.  Reference implementations
>    are software packages which were written to behave precisely as
>    appears in reference material.  They are written "to match
>    reference."

>    If the software has a behaviour that manifests itself externally
>    (whether it be something as simple as the 'wire format' or something
>    higher level, such as a complicated behaviour that arises from
>    multiple message exchanges), that behaviour must be found in a
>    reference document.

>    Anything else is a bug, the only question is whether the bug is in
>    reference or software (failing to implement the reference).

>    This means:
   
>    o  To produce new externally-visible behaviour, one must first
>       provide a reference.
   
>    o  Before changing externally visible behaviour to work around simple
>       incompatibilities in any other implementation, one must first
>       provide a reference.
   
>    That is the lofty goal, at any rate.  It's well understood that,
>    especially because the ISC DHCP Software package has not always been
>    held to this standard (but not entirely due to it), there are many
>    non-referenced behaviours within ISC DHCP.
   
>    The primary goal of reference implementation is to prove the
>    reference material.  If the reference material is good, then you
>    should be able to sit down and write a program that implements the
>    reference, to the word, and come to an implementation that is
>    distinguishable from others in the details, but not in the facts of
>    operating the protocol.  This means that there is no need for
>    'special knowledge' to work around arcane problems that were left
>    undocumented.  No secret handshakes need to be learned to be imparted
>    with the necessary "real documentation".
   
In this definition, there can be more than one reference implementation,
and not a singleton "the reference implementation".

As this phrase is regularly used to refer to protocol implementations,
is there a normative definition published somewhere in the RFCs about
what constitutes a reference implementation?

		Mukund

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Mhonarc]     [Fedora Users]

  Powered by Linux