1.nr DR 1	\" this is a draft copy
2.nr si 3n
3.he 'Mail Systems and Addressing in 4.2bsd''%'
4.fo 'Version 1.1'DRAFT'Last Mod 02/16/83'
5.if n .ls 2
6.+c
7.(l C
8.sz 14
9Mail Systems and Addressing
10in 4.2bsd
11.sz
12.sp
13Eric Allman\(dg
14.sp 0.5
15.i
16Britton-Lee, Inc.
171919 Addison Street, Suite 105.
18Berkeley, California 94704.
19.sp 0.5
20.r
21eric@Berkeley.ARPA
22ucbvax!eric
23.)l
24.sp
25.(l F
26.ce
27ABSTRACT
28.sp \n(psu
29Routing mail through a heterogeneous internet presents many new
30problems.
31Among the worst of these is that of address mapping.
32Historically, this has been handled on an ad hoc basis.
33However,
34this approach has become unmanageable as internets grow.
35.sp \n(psu
36Sendmail acts a unified
37.q "post office"
38to which all mail can be
39submitted.
40Address interpretation is controlled by a production
41system,
42which can parse both old and new format addresses.
43The
44new format is
45.q "domain-based,"
46a flexible technique that can
47handle many common situations.
48Sendmail is not intended to perform
49user interface functions.
50.sp \n(psu
51Sendmail will replace delivermail in the Berkeley 4.2 distribution.
52Several major hosts are now or will soon be running sendmail.
53This change will affect any users that route mail through a sendmail
54gateway.
55The changes that will be user visible are emphasized.
56.)l
57.sp 2
58.(f
59\(dgA considerable part of this work
60was done while under the employ
61of the INGRES Project
62at the University of California at Berkeley.
63.)f
64.pp
65The mail system to appear in 4.2bsd
66will contain a number of changes.
67Most of these changes are based on the replacement of
68.i delivermail
69with a new module called
70.i sendmail.
71.i Sendmail
72implements a general internetwork mail routing facility,
73featuring aliasing and forwarding,
74automatic routing to network gateways,
75and flexible configuration.
76Of key interest to the mail system user
77will be the changes in the network addressing structure.
78.pp
79In a simple network,
80each node has an address,
81and resources can be identified
82with a host-resource pair;
83in particular,
84the mail system can refer to users
85using a host-username pair.
86Host names and numbers have to be administered by a central authority,
87but usernames can be assigned locally to each host.
88.pp
89In an internet,
90multiple networks with different characteristics
91and managements
92must communicate.
93In particular,
94the syntax and semantics of resource identification change.
95Certain special cases can be handled trivially
96by
97.i "ad hoc"
98techniques,
99such as
100providing network names that appear local to hosts
101on other networks,
102as with the Ethernet at Xerox PARC.
103However, the general case is extremely complex.
104For example,
105some networks require point-to-point routing,
106which simplifies the database update problem
107since only adjacent hosts must be entered
108into the system tables,
109while others use end-to-end addressing.
110Some networks use a left-associative syntax
111and others use a right-associative syntax,
112causing ambiguity in mixed addresses.
113.pp
114Internet standards seek to eliminate these problems.
115Initially, these proposed expanding the address pairs
116to address triples,
117consisting of
118{network, host, username}
119triples.
120Network numbers must be universally agreed upon,
121and hosts can be assigned locally
122on each network.
123The user-level presentation was changed
124to address domains,
125comprised of a local resource identification
126and a hierarchical domain specification
127with a common static root.
128The domain technique
129separates the issue of physical versus logical addressing.
130For example,
131an address of the form
132.q "eric@a.cc.berkeley.arpa"
133describes only the logical
134organization of the address space.
135.pp
136.i Sendmail
137is intended to help bridge the gap
138between the totally
139.i "ad hoc"
140world
141of networks that know nothing of each other
142and the clean, tightly-coupled world
143of unique network numbers.
144It can accept old arbitrary address syntaxes,
145resolving ambiguities using heuristics
146specified by the system administrator,
147as well as domain-based addressing.
148It helps guide the conversion of message formats
149between disparate networks.
150In short,
151.i sendmail
152is designed to assist a graceful transition
153to consistent internetwork addressing schemes.
154.sp
155.pp
156Section 1 defines some of the terms
157frequently left fuzzy
158when working in mail systems.
159Section 2 discusses the design goals for
160.i sendmail .
161In section 3,
162the new address formats
163and basic features of
164.i sendmail
165are described.
166Section 4 discusses some of the special problems
167of the UUCP network.
168The differences between
169.i sendmail
170and
171.i delivermail
172are presented in section 5.
173.sp
174.(l F
175.b DISCLAIMER:
176A number of examples
177in this paper
178use names of actual people
179and organizations.
180This is not intended
181to imply a commitment
182or even an intellectual agreement
183on the part of these people or organizations.
184In particular,
185Bell Telephone Laboratories (BTL),
186Digital Equipment Corporation (DEC),
187Lawrence Berkeley Laboratories (LBL),
188Britton-Lee Incorporated (BLI),
189and the University of California at Berkeley
190are not committed to any of these proposals at this time.
191Much of this paper
192represents no more than
193the personal opinions of the author.
194.)l
195.sh 1 "DEFINITIONS"
196.pp
197There are four basic concepts
198that must be clearly distinguished
199when dealing with mail systems:
200the user (or the user's agent),
201the user's identification,
202the user's address,
203and the route.
204These are distinguished primarily by their position independence.
205.sh 2 "User and Identification"
206.pp
207The user is the being
208(a person or program)
209that is creating or receiving a message.
210An
211.i agent
212is an entity operating on behalf of the user \*-
213such as a secretary who handles my mail.
214or a program that automatically returns a
215message such as
216.q "I am at the UNICOM conference."
217.pp
218The identification is the tag
219that goes along with the particular user.
220This tag is completely independent of location.
221For example,
222my identification is the string
223.q "Eric Allman,"
224and this identification does not change
225whether I am located at U.C. Berkeley,
226at Britton-Lee,
227or at a scientific institute in Austria.
228.pp
229Since the identification is frequently ambiguous
230(e.g., there are two
231.q "Robert Henry" s
232at Berkeley)
233it is common to add other disambiguating information
234that is not strictly part of the identification
235(e.g.,
236Robert
237.q "Code Generator"
238Henry
239versus
240Robert
241.q "System Administrator"
242Henry).
243.sh 2 "Address"
244.pp
245The address specifies a location.
246As I move around,
247my address changes.
248For example,
249my address might change from
250.q eric@Berkeley.ARPA
251to
252.q eric@bli.UUCP
253or
254.q allman@IIASA.Austria
255depending on my current affiliation.
256.pp
257However,
258and address is independent of the location of anyone else.
259That is,
260my address remains the same to everyone who might be sending me mail.
261For example,
262a person at MIT and a person at USC
263could both send to
264.q eric@Berkeley.ARPA
265and have it arrive to the same mailbox.
266.pp
267Ideally a
268.q "white pages"
269service would be provided to map user identifications
270into addresses
271(for example, see
272[Solomon81]).
273Currently this is handled by passing around
274scraps of paper
275or by calling people on the telephone
276to find out their address.
277.sh 2 "Route"
278.pp
279Where an address specifies
280.i where
281to find a mailbox,
282a route specifies
283.i how
284to find the mailbox.
285Specifically,
286it specifies a path
287from sender to receiver.
288As such, the route is potentially different
289for every pair of people in the electronic universe.
290.pp
291Normally the route is hidden from the user
292by the software.
293However,
294some networks put the burden of determining the route
295onto the sender.
296Although this simplifies the software,
297it also greatly impairs the usability
298for most users.
299The UUCP network is an example of such a network.
300.sh 1 "DESIGN GOALS"
301.pp
302Design goals for
303.i sendmail \**
304.(f
305\**This section makes no distinction between
306.i delivermail
307and
308.i sendmail.
309.)f
310include:
311.np
312Compatibility with the existing mail programs,
313including Bell version 6 mail,
314Bell version 7 mail,
315Berkeley
316.i Mail
317[Shoens79],
318BerkNet mail
319[Schmidt79],
320and hopefully UUCP mail
321[Nowitz78].
322ARPANET mail
323[Crocker82]
324was also required.
325.np
326Reliability, in the sense of guaranteeing
327that every message is correctly delivered
328or at least brought to the attention of a human
329for correct disposal;
330no message should ever be completely lost.
331This goal was considered essential
332because of the emphasis on mail in our environment.
333It has turned out to be one of the hardest goals to satisfy,
334especially in the face of the many anomalous message formats
335produced by various ARPANET sites.
336For example,
337certain sites generate improperly formated addresses,
338occasionally
339causing error-message loops.
340Some hosts use blanks in names,
341causing problems with
342mail programs that assume that an address
343is one word.
344The semantics of some fields
345are interpreted slightly differently
346by different sites.
347In summary,
348the obscure features of the ARPANET mail protocol
349really
350.i are
351used and
352are difficult to support,
353but must be supported.
354.np
355Existing software to do actual delivery
356should be used whenever possible.
357This goal derives as much from political and practical considerations
358as technical.
359.np
360Easy expansion to
361fairly complex environments,
362including multiple
363connections to a single network type
364(such as with multiple UUCP or Ether nets).
365This goal requires consideration of the contents of an address
366as well as its syntax
367in order to determine which gateway to use.
368.np
369Configuration should not be compiled into the code.
370A single compiled program should be able to run as is at any site
371(barring such basic changes as the CPU type or the operating system).
372We have found this seemingly unimportant goal
373to be critical in real life.
374Besides the simple problems that occur when any program gets recompiled
375in a different environment,
376many sites like to
377.q fiddle
378with anything that they will be recompiling anyway.
379.np
380.i Sendmail
381must be able to let various groups maintain their own mailing lists,
382and let individuals specify their own forwarding,
383without modifying the system alias file.
384.np
385Each user should be able to specify which mailer to execute
386to process mail being delivered for him.
387This feature allows users who are using specialized mailers
388that use a different format to build their environment
389without changing the system,
390and facilitates specialized functions
391(such as returning an
392.q "I am on vacation"
393message).
394.np
395Network traffic should be minimized
396by batching addresses to a single host where possible,
397without assistance from the user.
398.pp
399These goals motivated the architecture illustrated in figure 1.
400.(z
401.hl
402.ie t \
403.	sp 18
404.el \{\
405.(c
406+---------+   +---------+   +---------+
407| sender1 |   | sender2 |   | sender3 |
408+---------+   +---------+   +---------+
409     |  	   |             |
410     +----------+  +  +----------+
411		|  |  |
412		v  v  v
413            +-------------+
414            |   sendmail  |
415            +-------------+
416		|  |  |
417     +----------+  +  +----------+
418     |  	   |             |
419     v             v             v
420+---------+   +---------+   +---------+
421| mailer1 |   | mailer2 |   | mailer3 |
422+---------+   +---------+   +---------+
423.)c
424.\}
425
426.ce
427Figure 1 \*- Sendmail System Structure.
428.hl
429.)z
430The user interacts with a mail generating and sending program.
431When the mail is created,
432the generator calls
433.i sendmail ,
434which routes the message to the correct mailer(s).
435Since some of the senders may be network servers
436and some of the mailers may be network clients,
437.i sendmail
438may be used as an internet mail gateway.
439.sh 1 "USAGE"
440.sh 2 "Address Formats"
441.pp
442Arguments may be flags and addresses.
443Flags set various processing options.
444Following flag arguments,
445address arguments may be given.
446Addresses follow the syntax in RFC822
447[Crocker82]
448for ARPANET
449address formats.
450In brief, the format is:
451.np
452Anything in parentheses is thrown away
453(as a comment).
454.np
455Anything in angle brackets (\c
456.q "<\|>" )
457is preferred
458over anything else.
459This rule implements the ARPANET standard that addresses of the form
460.(b
461user name <machine-address>
462.)b
463will send to the electronic
464.q machine-address
465rather than the human
466.q "user name."
467.np
468Double quotes
469(\ "\ )
470quote phrases;
471backslashes quote characters.
472Backslashes are more powerful
473in that they will cause otherwise equivalent phrases
474to compare differently \*- for example,
475.i user
476and
477.i
478"user"
479.r
480are equivalent,
481but
482.i \euser
483is different from either of them.
484.pp
485Parentheses, angle brackets, and double quotes
486must be properly balanced and nested.
487The rewriting rules control remaining parsing\**.
488.(f
489\**Disclaimer: Some special processing is done
490after rewriting local names; see below.
491.)f
492.pp
493Although old style addresses are still accepted
494in most cases,
495the preferred address format
496is based on ARPANET-style domain-based addresses
497[Su82a].
498These addresses are based on a hierarchical, logical decomposition
499of the address space.
500The addresses are hierarchical in a sense
501similar to the U.S. postal addresses:
502the messages may first be routed to the correct state,
503with no initial consideration of the city
504or other addressing details.
505The addresses are logical
506in that each step in the hierarchy
507corresponds to a set of
508.q "naming authorities"
509rather than a physical network.
510.pp
511For example,
512the address:
513.(l
514eric@HostA.BigSite.ARPA
515.)l
516would first look up the domain
517BigSite
518in the namespace administrated by
519ARPA.
520A query could then be sent to
521BigSite
522for interpretation of
523HostA.
524Eventually the mail would arrive at
525HostA,
526which would then do final delivery
527to user
528.q eric.
529.sh 2 "Mail to Files and Programs"
530.pp
531Files and programs are legitimate message recipients.
532Files provide archival storage of messages,
533useful for project administration and history.
534Programs are useful as recipients in a variety of situations,
535for example,
536to maintain a public repository of systems messages
537(such as the Berkeley
538.i msgs
539program).
540.pp
541Any address passing through the initial parsing algorithm
542as a local address
543(i.e, not appearing to be a valid address for another mailer)
544is scanned for two special cases.
545If prefixed by a vertical bar (\c
546.q \^|\^ )
547the rest of the address is processed as a shell command.
548If the user name begins with a slash mark (\c
549.q /\^ )
550the name is used as a file name,
551instead of a login name.
552.pp
553Files that have setuid or setgid bits set
554but no execute bits set
555have those bits honored if
556.i sendmail
557is running as root.
558.sh 2 "Aliasing, Forwarding, Inclusion"
559.pp
560.i Sendmail
561reroutes mail three ways.
562Aliasing applies system wide.
563Forwarding allows each user to reroute incoming mail
564destined for that account.
565Inclusion directs
566.i sendmail
567to read a file for a list of addresses,
568and is normally used
569in conjunction with aliasing.
570.sh 3 "Aliasing"
571.pp
572Aliasing maps names to address lists using a system-wide file.
573This file is indexed to speed access.
574Only names that parse as local
575are allowed as aliases;
576this guarantees a unique key
577(since there are no nicknames for the local host).
578.sh 3 "Forwarding"
579.pp
580After aliasing,
581recipients that are local and valid
582are checked for the existence of a
583.q .forward
584file in their home directory.
585If it exists,
586the message is
587.i not
588sent to that user,
589but rather to the list of users in that file.
590Often
591this list will contain only one address,
592and the feature will be used for network mail forwarding.
593.pp
594Forwarding also permits a user to specify a private incoming mailer.
595For example,
596forwarding to:
597.(b
598"\^|\|/usr/local/newmail myname"
599.)b
600will use a different incoming mailer.
601.sh 3 "Inclusion"
602.pp
603Inclusion is specified in RFC 733 [Crocker77] syntax:
604.(b
605:Include: pathname
606.)b
607An address of this form reads the file specified by
608.i pathname
609and sends to all users listed in that file.
610.pp
611The intent is
612.i not
613to support direct use of this feature,
614but rather to use this as a subset of aliasing.
615For example,
616an alias of the form:
617.(b
618project: :include:/usr/project/userlist
619.)b
620is a method of letting a project maintain a mailing list
621without interaction with the system administration,
622even if the alias file is protected.
623.pp
624It is not necessary to rebuild the index on the alias database
625when a :include: list is changed.
626.sh 2 "Message Collection"
627.pp
628Once all recipient addresses are parsed and verified,
629the message is collected.
630The message comes in two parts:
631a message header and a message body,
632separated by a blank line.
633The body is an uninterpreted
634sequence of text lines.
635.pp
636The header is formated as a series of lines
637of the form
638.(b
639	field-name: field-value
640.)b
641Field-value can be split across lines by starting the following
642lines with a space or a tab.
643Some header fields have special internal meaning,
644and have appropriate special processing.
645Other headers are simply passed through.
646Some header fields may be added automatically,
647such as time stamps.
648.sh 1 "THE UUCP PROBLEM"
649.pp
650Of particular interest
651is the UUCP network.
652The explicit routing
653used in the UUCP world
654causes a number of serious problems.
655First,
656giving out an address
657is impossible
658without knowing the address of your potential correspondent.
659This is typically handled
660by specifying the address
661relative to some
662.q "well-known"
663host
664(e.g.,
665ucbvax or decvax).
666Second,
667it is often difficult to compute
668the set of addresses
669to reply to
670without some knowledge
671of the topology of the network.
672Although it may be easy for a human being
673to do this
674under many circumstances,
675a program does not have equally sophisticated heuristics
676built in.
677Third,
678certain addresses will become painfully and unnecessarily long,
679as when a message is routed through many hosts in USENET.
680And finally,
681certain
682.q "mixed domain"
683addresses
684are impossible to parse unambiguously \*-
685e.g.,
686.(l
687decvax!ucbvax!lbl-h@LBL-CSAM
688.)l
689might have many possible resolutions,
690depending on whether the message was first routed
691to decvax
692or to LBL-CSAM.
693.pp
694To solve this problem,
695the UUCP syntax
696would have to be changed to use addresses
697rather than routes.
698For example,
699the address
700.q decvax!ucbvax!eric
701might be expressed as
702.q eric@ucbvax.UUCP
703(with the hop through decvax implied).
704This address would itself be a domain-based address;
705for example,
706an address might be of the form:
707.(l
708mark@d.cbosg.btl.UUCP
709.)l
710Hosts outside of Bell Telephone Laboratories
711would then only need to know
712how to get to a designated BTL relay,
713and the BTL topology
714would only be maintained inside Bell.
715.pp
716There are three major problems
717associated with turning UUCP addresses
718into something reasonable:
719defining the namespace,
720creating and propagating the necessary software,
721and building and maintaining the database.
722.sh 2 "Defining the Namespace"
723.pp
724Making all UUCP hosts
725top-level names
726is not practical for a number of reasons.
727First,
728with over 1600 sites already,
729and (with the increasing availability of inexpensive microcomputers
730and autodialers)
731several thousand more coming within a few years,
732the database update problem
733is simply intractable
734if the namespace is flat.
735Second,
736there are almost certainly name conflicts today.
737Third,
738as the number of sites grow
739the names become ever less mnemonic.
740.pp
741It seems inevitable
742that there be some sort of naming authority
743for the set of top level names
744in the UUCP domain,
745as unpleasant a possibility
746as that may seem.
747It will simply not be possible
748to have one host resolving all names.
749It may however be possible
750to handle this
751in a fashion similar to that of assigning names of newsgroups
752in USENET.
753However,
754it will be essential to encourage everyone
755to become subdomains of an existing domain
756whenever possible \*-
757even though this will certainly bruise some egos.
758For example,
759if a new host named
760.q blid
761were to be added to the UUCP network,
762it would probably actually be addressed as
763.q d.bli.UUCP
764(i.e.,
765as host
766.q d
767in the pseudo-domain
768.q bli
769rather than as host
770.q blid
771in the UUCP domain).
772.sh 2 "Creating and Propagating the Software"
773.pp
774The software itself
775is relatively trivial.
776Two modules are needed,
777one to handle incoming mail
778and one to handle outgoing mail.
779.pp
780The incoming module
781must be prepared to handle either old or new style addresses.
782New-style addresses
783can be passed through unchanged.
784Old style addresses
785must be turned into new style addresses
786where possible.
787.pp
788The outgoing module
789is slightly trickier.
790It must do a database lookup on the recipient addresses
791(passed on the command line)
792to determine what hosts to send the message to.
793If those hosts do not accept new-style addresses,
794it must transform all addresses in the header of the message
795into old style using the database lookup.
796.pp
797Both of these modules
798are straightforward
799except for the issue of modifying the header.
800It seems prudent to choose one format
801for the message headers.
802For a number of reasons,
803Berkeley has elected to use the ARPANET protocols
804for message formats.
805However,
806this protocol is somewhat difficult to parse.
807.pp
808Propagation is somewhat more difficult.
809There are a large number of hosts
810connected to UUCP
811that will want to run completely standard systems
812(for very good reasons).
813The strategy is not to convert the entire network \*-
814only enough of it it alleviate the problem.
815.sh 2 "Building and Maintaining the Database"
816.pp
817This is by far the most difficult problem.
818A prototype for this database
819already exists,
820but it is maintained by hand
821and does not pretend to be complete.
822.pp
823This problem will be reduced considerably
824if people choose to group their hosts
825into subdomains.
826This would require a global update
827only when a new top level domain
828joined the network.
829A message to a host in a subdomain
830could simply be routed to a known domain gateway
831for further processing.
832For example,
833the address
834.q eric@a.bli.UUCP
835might be routed to the
836.q bli
837gateway
838for redistribution;
839new hosts could be added
840within BLI
841without notifying the rest of the world.
842Of course,
843other hosts
844.i could
845be notified as an efficiency measure.
846.pp
847Nor need there be only one domain gateway.
848A domain such as BTL,
849for instance,
850might have a dozen gateways to the outside world;
851a non-BTL site
852could choose the one that was closest.
853The only restriction
854would be that all gateways
855maintain a consistent view of the domain
856that they represent.
857.sh 2 "Logical Structure"
858.pp
859Logically,
860domains are organized into a tree.
861There need not be a host actually associated
862with each level in the tree \*-
863for example,
864there will be no host associated with the name
865.q UUCP.
866Similarly,
867an organization might group names together for administrative reasons;
868for example,
869the name
870.(l
871CAD.research.BigCorp.UUCP
872.)l
873might not actually have a host representing
874.q research.
875.pp
876However,
877it may frequently be convenient to have a host
878or hosts
879that
880.q represent
881a domain.
882For example,
883if a single host exists that
884represents
885Berkeley,
886then mail from outside Berkeley
887can forward mail to that host
888for further resolution
889without knowing Berkeley's
890(rather volatile)
891topology.
892This is not unlike the operation
893of the telephone network.
894.pp
895This may also be useful
896inside certain large domains.
897For example,
898at Berkeley it may be presumed
899that most hosts know about other hosts
900inside the Berkeley domain.
901But if they process and address
902that is unknown,
903they can pass it
904.q upstairs
905for further examination.
906Thus as new hosts are added
907only one host
908(the domain master)
909.i must
910be updated immediately;
911other hosts can be updated as convenient.
912.pp
913Ideally this name resolution
914would be performed by a name server
915(e.g., [Su82b])
916to avoid unnecessary copying
917of the message.
918However,
919in a batch network
920such as UUCP
921this could result in unnecessary delays.
922.sh 1 "COMPARISON WITH DELIVERMAIL"
923.pp
924.i Sendmail
925is an outgrowth of
926.i delivermail .
927The primary differences are:
928.np
929Configuration information is not compiled in.
930This change simplifies many of the problems
931of moving to other machines.
932It also allows easy debugging of new mailers.
933.np
934Address parsing is more flexible.
935For example,
936.i delivermail
937only supported one gateway to any network,
938whereas
939.i sendmail
940can be sensitive to host names
941and reroute to different gateways.
942.np
943Forwarding and
944:include:
945features eliminate the requirement that the system alias file
946be writable by any user
947(or that an update program be written,
948or that the system administration make all changes).
949.np
950.i Sendmail
951supports message batching across networks
952when a message is being sent to multiple recipients.
953.np
954A mail queue is provided in
955.i sendmail.
956Mail that cannot be delivered immediately
957but can potentially be delivered later
958is stored in this queue for a later retry.
959The queue also provides a buffer against system crashes;
960after the message has been collected
961it may be reliably redelivered
962even if the system crashes during the initial delivery.
963.np
964.i Sendmail
965uses the networking support provided by 4.2BSD
966to provide a direct interface networks such as the ARPANET
967and/or Ethernet
968using SMTP (the Simple Mail Transfer Protocol)
969over a TCP/IP connection.
970.+c
971.ce
972REFERENCES
973.nr ii 1.5i
974.ip [Crocker77]
975Crocker, D. H.,
976Vittal, J. J.,
977Pogran, K. T.,
978and
979Henderson, D. A. Jr.,
980.ul
981Standard for the Format of ARPA Network Text Messages.
982RFC 733,
983NIC 41952.
984In [Feinler78].
985November 1977.
986.ip [Crocker82]
987Crocker, D. H.,
988.ul
989Standard for the Format of Arpa Internet Text Messages.
990RFC 822.
991Network Information Center,
992SRI International,
993Menlo Park, California.
994August 1982.
995.ip [Feinler78]
996Feinler, E.,
997and
998Postel, J.
999(eds.),
1000.ul
1001ARPANET Protocol Handbook.
1002NIC 7104,
1003Network Information Center,
1004SRI International,
1005Menlo Park, California.
10061978.
1007.ip [Nowitz78]
1008Nowitz, D. A.,
1009and
1010Lesk, M. E.,
1011.ul
1012A Dial-Up Network of UNIX Systems.
1013Bell Laboratories.
1014In
1015UNIX Programmer's Manual, Seventh Edition,
1016Volume 2.
1017August, 1978.
1018.ip [Schmidt79]
1019Schmidt, E.,
1020.ul
1021An Introduction to the Berkeley Network.
1022University of California, Berkeley California.
10231979.
1024.ip [Shoens79]
1025Shoens, K.,
1026.ul
1027Mail Reference Manual.
1028University of California, Berkeley.
1029In UNIX Programmer's Manual,
1030Seventh Edition,
1031Volume 2C.
1032December 1979.
1033.ip [Solomon81]
1034Solomon, M.,
1035Landweber, L.,
1036and
1037Neuhengen, D.,
1038.ul
1039The Design of the CSNET Name Server.
1040CS-DN-2.
1041University of Wisconsin,
1042Madison.
1043October 1981.
1044.ip [Su82a]
1045Su, Zaw-Sing,
1046and
1047Postel, Jon,
1048.ul
1049The Domain Naming Convention for Internet User Applications.
1050RFC819.
1051Network Information Center,
1052SRI International,
1053Menlo Park, California.
1054August 1982.
1055.ip [Su82b]
1056Su, Zaw-Sing,
1057.ul
1058A Distributed System for Internet Name Service.
1059RFC830.
1060Network Information Center,
1061SRI International,
1062Menlo Park, California.
1063October 1982.
1064