summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc819.txt
blob: d66f8d914488a1c5204fbe5c6c3fbca1d3fb2916 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
Network Working Group                                  Zaw-Sing Su (SRI)
Request for Comments: 819                               Jon Postel (ISI)
                                                             August 1982



      The Domain Naming Convention for Internet User Applications




1.  Introduction

   For many years, the naming convention "<user>@<host>" has served the
   ARPANET user community for its mail system, and the substring
   "<host>" has been used for other applications such as file transfer
   (FTP) and terminal access (Telnet).  With the advent of network
   interconnection, this naming convention needs to be generalized to
   accommodate internetworking.  A decision has recently been reached to
   replace the simple name field, "<host>", by a composite name field,
   "<domain>" [2].  This note is an attempt to clarify this generalized
   naming convention, the Internet Naming Convention, and to explore the
   implications of its adoption for Internet name service and user
   applications.

   The following example illustrates the changes in naming convention:

      ARPANET Convention:   Fred@ISIF
      Internet Convention:  Fred@F.ISI.ARPA

   The intent is that the Internet names be used to form a
   tree-structured administrative dependent, rather than a strictly
   topology dependent, hierarchy.  The left-to-right string of name
   components proceeds from the most specific to the most general, that
   is, the root of the tree, the administrative universe, is on the
   right.

   The name service for realizing the Internet naming convention is
   assumed to be application independent.  It is not a part of any
   particular application, but rather an independent name service serves
   different user applications.

2.  The Structural Model

   The Internet naming convention is based on the domain concept.  The
   name of a domain consists of a concatenation of one or more <simple
   names>.  A domain can be considered as a region of jurisdiction for
   name assignment and of responsibility for name-to-address
   translation.  The set of domains forms a hierarchy.

   Using a graph theory representation, this hierarchy may be modeled as
   a directed graph.  A directed graph consists of a set of nodes and a


Su & Postel                                                     [Page 1]
^L


RFC 819                                                     August 1982;


   collection of arcs, where arcs are identified by ordered pairs of
   distinct nodes [1].  Each node of the graph represents a domain.  An
   ordered pair (B, A), an arc from B to A, indicates that B is a
   subdomain of domain A, and B is a simple name unique within A.  We
   will refer to B as a child of A, and A a parent of B.  The directed
   graph that best describes the naming hierarchy is called an
   "in-tree", which is a rooted tree with all arcs directed towards the
   root (Figure 1). The root of the tree represents the naming universe,
   ancestor of all domains.  Endpoints (or leaves) of the tree are the
   lowest-level domains.

                         U
                       / | \
                     /   |   \          U -- Naming Universe
                    ^    ^    ^         I -- Intermediate Domain
                    |    |    |         E -- Endpoint Domain
                    I    E    I
                  /   \       |
                 ^     ^      ^
                 |     |      |
                 E     E      I
                            / | \
                           ^  ^  ^
                           |  |  |
                           E  E  E

                                Figure 1
                 The In-Tree Model for Domain Hierarchy

   The simple name of a child in this model is necessarily unique within
   its parent domain.  Since the simple name of the child's parent is
   unique within the child's grandparent domain, the child can be
   uniquely named in its grandparent domain by the concatenation of its
   simple name followed by its parent's simple name.

      For example, if the simple name of a child is "C1" then no other
      child of the same parent may be named "C1".  Further, if the
      parent of this child is named "P1", then "P1" is a unique simple
      name in the child's grandparent domain.  Thus, the concatenation
      C1.P1 is unique in C1's grandparent domain.

   Similarly, each element of the hierarchy is uniquely named in the
   universe by its complete name, the concatenation of its simple name
   and those for the domains along the trail leading to the naming
   universe.

   The hierarchical structure of the Internet naming convention supports
   decentralization of naming authority and distribution of name service
   capability.  We assume a naming authority and a name server


Su & Postel                                                     [Page 2]
^L


RFC 819                                                     August 1982;


   associated with each domain.  In Sections 5 and 6 respectively the
   name service and the naming authority are discussed.

   Within an endpoint domain, unique names are assigned to <user>
   representing user mailboxes.  User mailboxes may be viewed as
   children of their respective domains.

   In reality, anomalies may exist violating the in-tree model of naming
   hierarchy.  Overlapping domains imply multiple parentage, i.e., an
   entity of the naming hierarchy being a child of more than one domain.
   It is conceivable that ISI can be a member of the ARPA domain as well
   as a member of the USC domain (Figure 2).  Such a relation
   constitutes an anomaly to the rule of one-connectivity between any
   two points of a tree.  The common child and the sub-tree below it
   become descendants of both parent domains.

                                 U
                               / | \
                             /   .   \
                           .     .   ARPA
                         .       .     | \
                                USC    |   \
                                   \   |     .
                                     \ |       .
                                      ISI

                                Figure 2
                      Anomaly in the In-Tree Model

   Some issues resulting from multiple parentage are addressed in
   Appendix B.  The general implications of multiple parentage are a
   subject for further investigation.

3.  Advantage of Absolute Naming

   Absolute naming implies that the (complete) names are assigned with
   respect to a universal reference point.  The advantage of absolute
   naming is that a name thus assigned can be universally interpreted
   with respect to the universal reference point.  The Internet naming
   convention provides absolute naming with the naming universe as its
   universal reference point.

   For relative naming, an entity is named depending upon the position
   of the naming entity relative to that of the named entity.  A set of
   hosts running the "unix" operating system exchange mail using a
   method called "uucp".  The naming convention employed by uucp is an
   example of relative naming.  The mail recipient is typically named by
   a source route identifying a chain of locally known hosts linking the



Su & Postel                                                     [Page 3]
^L


RFC 819                                                     August 1982;


   sender's host to the recipient's.  A destination name can be, for
   example,

      "alpha!beta!gamma!john",

   where "alpha" is presumably known to the originating host, "beta" is
   known to "alpha", and so on.

   The uucp mail system has demonstrated many of the problems inherent
   to relative naming.  When the host names are only locally
   interpretable, routing optimization becomes impossible.  A reply
   message may have to traverse the reverse route to the original sender
   in order to be forwarded to other parties.

   Furthermore, if a message is forwarded by one of the original
   recipients or passed on as the text of another message, the frame of
   reference of the relative source route can be completely lost.  Such
   relative naming schemes have severe problems for many of the uses
   that we depend upon in the ARPA Internet community.

4.  Interoperability

   To allow interoperation with a different naming convention, the names
   assigned by a foreign naming convention need to be accommodated.
   Given the autonomous nature of domains, a foreign naming environment
   may be incorporated as a domain anywhere in the hierarchy.  Within
   the naming universe, the name service for a domain is provided within
   that domain.  Thus, a foreign naming convention can be independent of
   the Internet naming convention.  What is implied here is that no
   standard convention for naming needs to be imposed to allow
   interoperations among heterogeneous naming environments.

      For example:

         There might be a naming convention, say, in the FOO world,
         something like "<user>%<host>%<area>".  Communications with an
         entity in that environment can be achieved from the Internet
         community by simply appending ".FOO" on the end of the name in
         that foreign convention.

            John%ISI-Tops20-7%California.FOO

      Another example:

         One way of accommodating the "uucp world" described in the last
         section is to declare it as a foreign system.  Thus, a uucp
         name

            "alpha!beta!gamma!john"


Su & Postel                                                     [Page 4]
^L


RFC 819                                                     August 1982;


         might be known in the Internet community as

            "alpha!beta!gamma!john.UUCP".

      Communicating with a complex subdomain is another case which can
      be treated as interoperation.  A complex subdomain is a domain
      with complex internal naming structure presumably unknown to the
      outside world (or the outside world does not care to be concerned
      with its complexity).

   For the mail system application, the names embedded in the message
   text are often used by the destination for such purpose as to reply
   to the original message.  Thus, the embedded names may need to be
   converted for the benefit of the name server in the destination
   environment.

   Conversion of names on the boundary between heterogeneous naming
   environments is a complex subject.  The following example illustrates
   some of the involved issues.

      For example:

         A message is sent from the Internet community to the FOO
         environment.  It may bear the "From" and "To" fields as:

            From: Fred@F.ISI.ARPA
            To:   John%ISI-Tops20-7%California.FOO

         where "FOO" is a domain independent of the Internet naming
         environment.  The interface on the boundary of the two
         environments may be represented by a software module.  We may
         assume this interface to be an entity of the Internet community
         as well as an entity of the FOO community.  For the benefit of
         the FOO environment, the "From" and "To" fields need to be
         modified upon the message's arrival at the boundary. One may
         view naming as a separate layer of protocol, and treat
         conversion as a protocol translation.  The matter is
         complicated when the message is sent to more than one
         destination within different naming environments; or the
         message is destined within an environment not sharing boundary
         with the originating naming environment.

   While the general subject concerning conversion is beyond the scope
   of this note, a few questions are raised in Appendix D.







Su & Postel                                                     [Page 5]
^L


RFC 819                                                     August 1982;


5.  Name Service

   Name service is a network service providing name-to-address
   translation.  Such service may be achieved in a number of ways.  For
   a simple networking environment, it can be accomplished with a single
   central database containing name-to-address correspondence for all
   the pertinent network entities, such as hosts.

   In the case of the old ARPANET host names, a central database is
   duplicated in each individual host.  The originating module of an
   application process would query the local name service (e.g., make a
   system call) to obtain network address for the destination host. With
   the proliferation of networks and an accelerating increase in the
   number of hosts participating in networking, the ever growing size,
   update frequency, and the dissemination of the central database makes
   this approach unmanageable.

   The hierarchical structure of the Internet naming convention supports
   decentralization of naming authority and distribution of name service
   capability.  It readily accommodates growth of the naming universe.
   It allows an arbitrary number of hierarchical layers.  The addition
   of a new domain adds little complexity to an existing Internet
   system.

   The name service at each domain is assumed to be provided by one or
   more name servers.  There are two models for how a name server
   completes its work, these might be called "iterative" and
   "recursive".

      For an iterative name server there may be two kinds of responses.
      The first kind of response is a destination address.  The second
      kind of response is the address of another name server.  If the
      response is a destination address, then the query is satisfied. If
      the response is the address of another name server, then the query
      must be repeated using that name server, and so on until a
      destination address is obtained.

      For a recursive name server there is only one kind of response --
      a destination address.  This puts an obligation on the name server
      to actually make the call on another name server if it can't
      answer the query itself.

   It is noted that looping can be avoided since the names presented for
   translation can only be of finite concatenation.  However, care
   should be taken in employing mechanisms such as a pointer to the next
   simple name for resolution.

   We believe that some name servers will be recursive, but we don't
   believe that all will be.  This means that the caller must be


Su & Postel                                                     [Page 6]
^L


RFC 819                                                     August 1982;


   prepared for either type of server.  Further discussion and examples
   of name service is given in Appendix C.

   The basic name service at each domain is the translation of simple
   names to addresses for all of its children.  However, if only this
   basic name service is provided, the use of complete (or fully
   qualified) names would be required.  Such requirement can be
   unreasonable in practice.  Thus, we propose the use of partial names
   in the context in which their uniqueness is preserved.  By
   construction, naming uniqueness is preserved within the domain of a
   common ancestry. Thus, a partially qualified name is constructed by
   omitting from the complete name ancestors common to the communicating
   parties. When a partially qualified name leaves its context of
   uniqueness it must be additionally qualified.

   The use of partially qualified names places a requirement on the
   Internet name service.  To satisfy this requirement, the name service
   at each domain must be capable of, in addition to the basic service,
   resolving simple names for all of its ancestors (including itself)
   and their children.  In Appendix B, the required distinction among
   simple names for such resolution is addressed.

6.  Naming Authority

   Associated with each domain there must be a naming authority to
   assign simple names and ensure proper distinction among simple names.

   Note that if the use of partially qualified names is allowed in a
   sub-domain, the uniqueness of simple names inside that sub-domain is
   insufficient to avoid ambiguity with names outside the subdomain.
   Appendix B discusses simple name assignment in a sub-domain that
   would allow the use of partially qualified names without ambiguity.

   Administratively, associated with each domain there is a single
   person (or office) called the registrar.  The registrar of the naming
   universe specifies the top-level set of domains and designates a
   registrar for each of these domains.  The registrar for any given
   domain maintains the naming authority for that domain.

7.  Network-Oriented Applications

   For user applications such as file transfer and terminal access, the
   remote host needs to be named.  To be compatible with ARPANET naming
   convention, a host can be treated as an endpoint domain.

   Many operating systems or programming language run-time environments
   provide functions or calls (JSYSs, SVCs, UUOs, SYSs, etc.) for
   standard services (e.g., time-of-day, account-of-logged-in-user,
   convert-number-to-string).  It is likely to be very helpful if such a


Su & Postel                                                     [Page 7]
^L


RFC 819                                                     August 1982;


   function or call is developed for translating a host name to an
   address.  Indeed, several systems on the ARPANET already have such
   facilities for translating an ARPANET host name into an ARPANET
   address based on internal tables.

   We recommend that this provision of a standard function or call for
   translating names to addresses be extended to accept names of
   Internet convention.  This will promote a consistent interface to the
   users of programs involving internetwork activities.  The standard
   facility for translating Internet names to Internet addresses should
   include all the mechanisms available on the host, such as checking a
   local table or cache of recently checked names, or consulting a name
   server via the Internet.

8.  Mail Relaying

   Relaying is a feature adopted by more and more mail systems.
   Relaying facilitates, among other things, interoperations between
   heterogeneous mail systems.  The term "relay" is used to describe the
   situation where a message is routed via one or more intermediate
   points between the sender and the recipient.  The mail relays are
   normally specified explicitly as relay points in the instructions for
   message delivery. Usually, each of the intermediate relays assume
   responsibility for the relayed message [3].

      A point should be made on the basic difference between mail
      relaying and the uucp naming system.  The difference is that
      although mail relaying with absolute naming can also be considered
      as a form of source routing, the names of each intermediate points
      and that of the destination are universally interpretable, while
      the host names along a source route of the uucp convention is
      relative and thus only locally interpretable.

   The Internet naming convention explicitly allows interoperations
   among heterogeneous systems.  This implies that the originator of a
   communication may name a destination which resides in a foreign
   system.  The probability is that the destination network address may
   not be comprehensible to the transport system of the originator.
   Thus, an implicit relaying mechanism is called for at the boundary
   between the domains.  The function of this implicit relay is the same
   as the explicit relay.










Su & Postel                                                     [Page 8]
^L


RFC 819                                                     August 1982;


9.  Implementation

   The Actual Domains

      The initial set of top-level names include:

         ARPA

            This represents the set of organizations involved in the
            Internet system through the authority of the U.S. Defense
            Advanced Research Projects Agency.  This includes all the
            research and development hosts on the ARPANET and hosts on
            many other nets as well.  But note very carefully that the
            top-level domain "ARPA" does not map one-to-one with the
            ARPANET -- domains are administrative, not topological.

   Transition

      In the transition from the ARPANET naming convention to the
      Internet naming convention, a host name may be used as a simple
      name for an endpoint domain.  Thus, if "USC-ISIF" is an ARPANET
      host name, then "USC-ISIF.ARPA" is the name of an Internet domain.

10.  Summary

   A hierarchical naming convention based on the domain concept has been
   adopted by the Internet community.  It is an absolute naming
   convention defined along administrative rather than topological
   boundaries.  This naming convention is adaptive for interoperations
   with other naming conventions.  Thus, no standard convention needs to
   be imposed for interoperations among heterogeneous naming
   environments.

   This Internet naming convention allows distributed name service and
   naming authority functions at each domain.  We have specified these
   functions required at each domain.  Also discussed are implications
   on network-oriented applications, mail systems, and administrative
   aspects of this convention.













Su & Postel                                                     [Page 9]
^L


RFC 819                                                     August 1982;


APPENDIX A

   The BNF Specification

   We present here a rather detailed "BNF" definition of the allowed
   form for a computer mail "mailbox" composed of a "local-part" and a
   "domain" (separated by an at sign).  Clearly, the domain can be used
   separately in other network-oriented applications.

   <mailbox> ::= <local-part> "@" <domain>

   <local-part> ::= <string> | <quoted-string>

   <string> ::= <char> | <char> <string>

   <quoted-string> ::=  """ <qtext> """

   <qtext> ::=  "\" <x> | "\" <x> <qtext> | <q> | <q> <qtext>

   <char> ::= <c> | "\" <x>

   <domain> ::= <naming-domain> | <naming-domain> "." <domain>

   <naming-domain> ::=  <simple-name> | <address>

   <simple-name> ::= <a> <ldh-str> <let-dig>

   <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>

   <let-dig> ::= <a> | <d>

   <let-dig-hyp> ::= <a> | <d> | "-"

   <address> :: =  "#" <number> | "[" <dotnum> "]"

   <number> ::= <d> | <d> <number>

   <dotnum> ::= <snum> "." <snum> "." <snum> "." <snum>

   <snum> ::= one, two, or three digits representing a decimal integer
   value in the range 0 through 255

   <a> ::= any one of the 52 alphabetic characters A through Z in upper
   case and a through z in lower case

   <c> ::= any one of the 128 ASCII characters except <s> or <SP>

   <d> ::= any one of the ten digits 0 through 9



Su & Postel                                                    [Page 10]
^L


RFC 819                                                     August 1982;


   <q> ::= any one of the 128 ASCII characters except CR, LF, quote ("),
   or backslash (\)

   <x> ::= any one of the 128 ASCII characters (no exceptions)

   <s> ::= "<", ">", "(", ")", "[", "]", "\", ".", ",", ";", ":", "@",
   """, and the control characters (ASCII codes 0 through 31 inclusive
   and 127)

   Note that the backslash, "\", is a quote character, which is used to
   indicate that the next character is to be used literally (instead of
   its normal interpretation).  For example, "Joe\,Smith" could be used
   to indicate a single nine character user field with comma being the
   fourth character of the field.

   The simple names that make up a domain may contain both upper and
   lower case letters (as well as digits and hyphen), but these names
   are not case sensitive.

   Hosts are generally known by names.  Sometimes a host is not known to
   the translation function and communication is blocked.  To bypass
   this barrier two forms of addresses are also allowed for host
   "names". One form is a decimal integer prefixed by a pound sign, "#".
   Another form, called "dotted decimal", is four small decimal integers
   separated by dots and enclosed by brackets, e.g., "[123.255.37.2]",
   which indicates a 32-bit ARPA Internet Address in four 8-bit fields.
   (Of course, these numeric address forms are specific to the Internet,
   other forms may have to be provided if this problem arises in other
   transport systems.)






















Su & Postel                                                    [Page 11]
^L


RFC 819                                                     August 1982;


APPENDIX B

   An Aside on the Assignment of Simple Names

   In the following example, there are two naming hierarchies joining at
   the naming universe 'U'.  One consists of domains (S, R, N, J, P, Q,
   B, A); and the other (L, E, F, G, H, D, C, K, B, A). Domain B is
   assumed to have multiple parentage as shown.

                                U
                              /   \
                            /       \
                          J           L
                        /               \
                      N                   E
                    /   \               /   \
                  R       P           D       F
                /           \         | \      \
              S               Q       C  (X)     G
                                \   /   \          \
                                  B       K          H
                                /
                              A

                                Figure 3
    Illustration of Requirements for the Distinction of Simple Names

   Suppose someone at A tries to initiate communication with destination
   H.  The fully qualified destination name would be

      H.G.F.E.L.U

   Omitting common ancestors, the partially qualified name for the
   destination would be

      H.G.F

   To permit the case of partially qualified names, name server at A
   needs to resolve the simple name F, i.e., F needs to be distinct from
   all the other simple names in its database.

   To enable the name server of a domain to resolve simple names, a
   simple name for a child needs to be assigned distinct from those of
   all of its ancestors and their immediate children.  However, such
   distinction would not be sufficient to allow simple name resolution
   at lower-level domains because lower-level domains could have
   multiple parentage below the level of this domain.

      In the example above, let us assume that a name is to be assigned


Su & Postel                                                    [Page 12]
^L


RFC 819                                                     August 1982;


      to a new domain X by D.  To allow name server at D to resolve
      simple names, the name for X must be distinct from L, E, D, C, F,
      and J.  However, allowing A to resolve simple names, X needs to be
      also distinct from A, B, K, as well as from Q, P, N, and R.

   The following observations can be made.

      Simple names along parallel trails (distinct trails leading from
      one domain to the naming universe) must be distinct, e.g., N must
      be distinct from E for B or A to properly resolve simple names.

      No universal uniqueness of simple names is called for, e.g., the
      simple name S does not have to be distinct from that of E, F, G,
      H, D, C, K, Q, B, or A.

      The lower the level at which a domain occurs, the more immune it
      is to the requirement of naming uniqueness.

   To satisfy the required distinction of simple names for proper
   resolution at all levels, a naming authority needs to ensure the
   simple name to be assigned distinct from those in the name server
   databases at the endpoint naming domains within its domain.  As an
   example, for D to assign a simple name for X, it would need to
   consult databases at A and K.  It is, however, acceptable to have
   simple names under domain A identical with those under K.  Failure of
   such distinct assignment of simple names by naming authority of one
   domain would jeopardize the capability of simple name resolution for
   entities within the subtree under that domain.























Su & Postel                                                    [Page 13]
^L


RFC 819                                                     August 1982;


APPENDIX C

   Further Discussion of Name Service and Name Servers

   The name service on a system should appear to the programmer of an
   application program simply as a system call or library subroutine.
   Within that call or subroutine there may be several types of methods
   for resolving the name string into an address.

      First, a local table may be consulted.  This table may be a
      complete table and may be updated frequently, or it may simply be
      a cache of the few latest name to address mappings recently
      determined.

      Second, a call may be made to a name server to resolve the string
      into a destination address.

      Third, a call may be made to a name server to resolve the string
      into a relay address.

   Whenever a name server is called it may be a recursive server or an
   interactive server.

      If the server is recursive, the caller won't be able to tell if
      the server itself had the information to resolve the query or
      called another server recursively (except perhaps for the time it
      takes).

      If the server is iterative, the caller must be prepared for either
      the answer to its query, or a response indicating that it should
      call on a different server.

   It should be noted that the main name service discussed in this memo
   is simply a name string to address service.  For some applications
   there may be other services needed.

      For example, even within the Internet there are several procedures
      or protocols for actually transferring mail.  One need is to
      determine which mail procedures a destination host can use.
      Another need is to determine the name of a relay host if the
      source and destination hosts do not have a common mail procedure.
      These more specialized services must be specific to each
      application since the answers may be application dependent, but
      the basic name to address translation is application independent.







Su & Postel                                                    [Page 14]
^L


RFC 819                                                     August 1982;


APPENDIX D

   Further Discussion of Interoperability and Protocol Translations

   The translation of protocols from one system to another is often
   quite difficult.  Following are some questions that stem from
   considering the translations of addresses between mail systems:

      What is the impact of different addressing environments (i.e.,
      environments of different address formats)?

      It is noted that the boundary of naming environment may or may not
      coincide with the boundary of different mail systems. Should the
      conversion of naming be independent of the application system?

      The boundary between different addressing environments may or may
      not coincide with that of different naming environments or
      application systems.  Some generic approach appears to be
      necessary.

      If the conversion of naming is to be independent of the
      application system, some form of interaction appears necessary
      between the interface module of naming conversion with some
      application level functions, such as the parsing and modification
      of message text.

      To accommodate encryption, conversion may not be desirable at all.
      What then can be an alternative to conversion?























Su & Postel                                                    [Page 15]
^L


RFC 819                                                     August 1982;


GLOSSARY

   address

      An address is a numerical identifier for the topological location
      of the named entity.

   name

      A name is an alphanumeric identifier associated with the named
      entity.  For unique identification, a name needs to be unique in
      the context in which the name is used.  A name can be mapped to an
      address.

   complete (fully qualified) name

      A complete name is a concatenation of simple names representing
      the hierarchical relation of the named with respect to the naming
      universe, that is it is the concatenation of the simple names of
      the domain structure tree nodes starting with its own name and
      ending with the top level node name.  It is a unique name in the
      naming universe.

   partially qualified name

      A partially qualified name is an abbreviation of the complete name
      omitting simple names of the common ancestors of the communicating
      parties.

   simple name

      A simple name is an alphanumeric identifier unique only within its
      parent domain.

   domain

      A domain defines a region of jurisdiction for name assignment and
      of responsibility for name-to-address translation.

   naming universe

      Naming universe is the ancestor of all network entities.

   naming environment

      A networking environment employing a specific naming convention.





Su & Postel                                                    [Page 16]
^L


RFC 819                                                     August 1982;


   name service

      Name service is a network service for name-to-address mapping.

   name server

      A name server is a network mechanism (e.g., a process) realizing
      the function of name service.

   naming authority

      Naming authority is an administrative entity having the authority
      for assigning simple names and responsibility for resolving naming
      conflict.

   parallel relations

      A network entity may have one or more hierarchical relations with
      respect to the naming universe.  Such multiple relations are
      parallel relations to each other.

   multiple parentage

      A network entity has multiple parentage when it is assigned a
      simple name by more than one naming domain.


























Su & Postel                                                    [Page 17]
^L


RFC 819                                                     August 1982;


REFERENCES

   [1]  F. Harary, "Graph Theory", Addison-Wesley, Reading,
   Massachusetts, 1969.

   [2]  J. Postel, "Computer Mail Meeting Notes", RFC-805,
   USC/Information Sciences Institute, 8 February 1982.

   [3]  J. Postel, "Simple Mail Transfer Protocol", RFC-821,
   USC/Information Sciences Institute, August 1982.

   [4]  D. Crocker, "Standard for the Format of ARPA Internet Text
   Messages", RFC-822, Department of Electrical Engineering, University
   of Delaware, August 1982.





































Su & Postel                                                    [Page 18]
^L