[ih] Dotted decimal notation

Michael Greenwald mbgreen at seas.upenn.edu
Mon Dec 28 16:50:52 PST 2020


On 2020-12-28 16:35, Brian E Carpenter via Internet-history wrote:
> Thanks for the various replies. I wasn't there, but clearly some magic
> happened between the 8-bit network numbers in RFC776 (January 1981) and
> the emergence of Class A, B, C addressing in RFC790 (September 1981),
> and that called for some new notation such as dotted decimal.

For what it's worth, I am fairly certain that I was
parsing dotted decimal addrs (10.0.0.6) "long" before
class A, B, or C addresses existed. The rough description
that I got from Dave Clark in 79-ish was that the
first byte was the network, and the remaining 24 bits
were structured as subnet/host in some network-specific
way (8 bit imp/... n bit host, or 16 bit subnet/8 bit host,
or whatever). And for debugging/tracing on multics, I
was definitely printing IP addrs as 4 dotted decimal
numbers, even though I really, really, didn't like them.
So I assume that the dotted-decimal notation was in use
in more than one place, already, by 79.

> 
> That magic is not well documented in the RFC series, but in IEN175,
> reporting on a January 1981 meeting, we find that
>       "Vint Cerf led a further discussion on addressing.  The main 
> focus
>       was on the tradeoff between a flat address space and a
>       hierarchical one...
>       Vint suggests that we have both in one!  Let an address be
>       composed of two parts: a hierarchical address (called an address)
>       and a flat address (called an identifier)."
> 
> I guess that became Class A, B, C by September, via IEN177, but it also
> accurately describes IPv6 addressing.
> 
> Regards
>    Brian Carpenter
> 
> On 29-Dec-20 10:54, Jack Haverty via Internet-history wrote:
>> IIRC, this convention was created over time by a coalescence of "rough
>> consensus and running code" as the early user programs (Telnet and 
>> FTP)
>> were being rewritten to use TCP instead of NCP, so it would have been
>> during the late 70s.   On the ARPANET, e.g., when a particular Telnet,
>> you would type "O <host>/<imp>", e.g., 1/6 to connect to MIT-DMS, host 
>> 1
>> on IMP 6, or "O 70" which was the equivalent.   Something new was 
>> needed
>> for specifying 32-bit IP addresses.
>> 
>> Dotted quad was one early approach, where the 4 numbers could be 
>> either
>> octal, if they had a leading zero, and otherwise decimal. 
>> A leading 0 indicated that the number was octal - also a common
>> convention in programming languages at the time.
>> 
>> The "dotted decimal" convention evolved from the "dotted quad", with 
>> the
>> difference being that the numbers in the "...decimal" form were of
>> course always decimal, regardless of the presence of a leading zero.  
>> 
>> I believe all of these forms were created as various people wrote user
>> programs.  The notation is really a design decision of the user
>> interface, converting typed IP addresses into the appropriate 32-bit
>> fields for the underlying TCP code.
>> 
>> Some people liked decimal numbers, others liked octal. 
>> 
>> One particularly irritating choice was pure decimal, i.e., a 32-bit
>> number represented in decimal (no dotted quad).   The early SRI TIU
>> (terminal concentrator) required the user to input decimal numbers,
>> which were annoyingly difficult to calculate.    E.g., 10.0.0.5, 
>> easily
>> recognized as Host 0 on ARPANET IMP 5, had to be typed in its 32-bit
>> decimal format when specifying what remote computer the user wanted to
>> access.  It was difficult to do such calculations in your head; I
>> remember pulling out a calculator to create the appropriate many-digit
>> decimal number.
>> 
>> Eventually the "dotted quad" notation reached rough consensus and many
>> host implementations of user apps (Telnet, FTP) permitted that form of
>> specifying a target host.
>> 
>> The "dotted decimal" convention eventually superceded the "dotted 
>> quad"
>> notation because the quad form was often confusing. 
>> 
>> E.g., "ISIF in dotted decimal is 010.002.000.052, or 10.2.0.52", where
>> leading zeroes are ignored.  But in dotted quad,
>> 010.002.000.052 and 10.2.0.52 would not be equivalent.  010 would be
>> network 8 rather than 10, and 052 would be 42 instead of 52.
>> 
>> I don't remember who first produced dotted decimal though.   I think
>> you'd have to look at the applications programs of the time (FTP,
>> Telnet) to see what each used for its UI.
>> 
>> /Jack
>> 
>> 
>> On 12/28/20 12:55 PM, Brian E Carpenter via Internet-history wrote:
>>> Can anyone recall when and by whom the dotted decimal notation for 
>>> IPv4
>>> addresses was invented? This text first appeared in RFC820 (January 
>>> 1983):
>>> 
>>>    One commonly used notation for internet host addresses divides the
>>>    32-bit address into four 8-bit fields and specifies the value of 
>>> each
>>>    field as a decimal number with the fields separated by periods.  
>>> This
>>>    is called the "dotted decimal" notation.  For example, the 
>>> internet
>>>    address of ISIF in dotted decimal is 010.002.000.052, or 
>>> 10.2.0.52.
>>> 
>>> The leading zeroes are not considered valid these days.
>>> 
>>> Thanks
>>>    Brian Carpenter
>> 



More information about the Internet-history mailing list