Annotation of 42BSD/usr.lib/sendmail/doc/rfc819.lpr, revision 1.1
1.1 ! root 1:
! 2:
! 3: Network Working Group Zaw-Sing Su (SRI)
! 4: Request for Comments: 819 Jon Postel (ISI)
! 5: August 1982
! 6:
! 7:
! 8:
! 9: The Domain Naming Convention for Internet User Applications
! 10:
! 11:
! 12:
! 13:
! 14: 1. Introduction
! 15:
! 16: For many years, the naming convention "<user>@<host>" has served the
! 17: ARPANET user community for its mail system, and the substring
! 18: "<host>" has been used for other applications such as file transfer
! 19: (FTP) and terminal access (Telnet). With the advent of network
! 20: interconnection, this naming convention needs to be generalized to
! 21: accommodate internetworking. A decision has recently been reached to
! 22: replace the simple name field, "<host>", by a composite name field,
! 23: "<domain>" [2]. This note is an attempt to clarify this generalized
! 24: naming convention, the Internet Naming Convention, and to explore the
! 25: implications of its adoption for Internet name service and user
! 26: applications.
! 27:
! 28: The following example illustrates the changes in naming convention:
! 29:
! 30: ARPANET Convention: Fred@ISIF
! 31: Internet Convention: [email protected]
! 32:
! 33: The intent is that the Internet names be used to form a
! 34: tree-structured administrative dependent, rather than a strictly
! 35: topology dependent, hierarchy. The left-to-right string of name
! 36: components proceeds from the most specific to the most general, that
! 37: is, the root of the tree, the administrative universe, is on the
! 38: right.
! 39:
! 40: The name service for realizing the Internet naming convention is
! 41: assumed to be application independent. It is not a part of any
! 42: particular application, but rather an independent name service serves
! 43: different user applications.
! 44:
! 45: 2. The Structural Model
! 46:
! 47: The Internet naming convention is based on the domain concept. The
! 48: name of a domain consists of a concatenation of one or more <simple
! 49: names>. A domain can be considered as a region of jurisdiction for
! 50: name assignment and of responsibility for name-to-address
! 51: translation. The set of domains forms a hierarchy.
! 52:
! 53: Using a graph theory representation, this hierarchy may be modeled as
! 54: a directed graph. A directed graph consists of a set of nodes and a
! 55:
! 56:
! 57: Su & Postel [Page 1]
! 58:
! 59:
! 60:
! 61: RFC 819 August 1982;
! 62:
! 63:
! 64: collection of arcs, where arcs are identified by ordered pairs of
! 65: distinct nodes [1]. Each node of the graph represents a domain. An
! 66: ordered pair (B, A), an arc from B to A, indicates that B is a
! 67: subdomain of domain A, and B is a simple name unique within A. We
! 68: will refer to B as a child of A, and A a parent of B. The directed
! 69: graph that best describes the naming hierarchy is called an
! 70: "in-tree", which is a rooted tree with all arcs directed towards the
! 71: root (Figure 1). The root of the tree represents the naming universe,
! 72: ancestor of all domains. Endpoints (or leaves) of the tree are the
! 73: lowest-level domains.
! 74:
! 75: U
! 76: / | \
! 77: / | \ U -- Naming Universe
! 78: ^ ^ ^ I -- Intermediate Domain
! 79: | | | E -- Endpoint Domain
! 80: I E I
! 81: / \ |
! 82: ^ ^ ^
! 83: | | |
! 84: E E I
! 85: / | \
! 86: ^ ^ ^
! 87: | | |
! 88: E E E
! 89:
! 90: Figure 1
! 91: The In-Tree Model for Domain Hierarchy
! 92:
! 93: The simple name of a child in this model is necessarily unique within
! 94: its parent domain. Since the simple name of the child's parent is
! 95: unique within the child's grandparent domain, the child can be
! 96: uniquely named in its grandparent domain by the concatenation of its
! 97: simple name followed by its parent's simple name.
! 98:
! 99: For example, if the simple name of a child is "C1" then no other
! 100: child of the same parent may be named "C1". Further, if the
! 101: parent of this child is named "P1", then "P1" is a unique simple
! 102: name in the child's grandparent domain. Thus, the concatenation
! 103: C1.P1 is unique in C1's grandparent domain.
! 104:
! 105: Similarly, each element of the hierarchy is uniquely named in the
! 106: universe by its complete name, the concatenation of its simple name
! 107: and those for the domains along the trail leading to the naming
! 108: universe.
! 109:
! 110: The hierarchical structure of the Internet naming convention supports
! 111: decentralization of naming authority and distribution of name service
! 112: capability. We assume a naming authority and a name server
! 113:
! 114:
! 115: Su & Postel [Page 2]
! 116:
! 117:
! 118:
! 119: RFC 819 August 1982;
! 120:
! 121:
! 122: associated with each domain. In Sections 5 and 6 respectively the
! 123: name service and the naming authority are discussed.
! 124:
! 125: Within an endpoint domain, unique names are assigned to <user>
! 126: representing user mailboxes. User mailboxes may be viewed as
! 127: children of their respective domains.
! 128:
! 129: In reality, anomalies may exist violating the in-tree model of naming
! 130: hierarchy. Overlapping domains imply multiple parentage, i.e., an
! 131: entity of the naming hierarchy being a child of more than one domain.
! 132: It is conceivable that ISI can be a member of the ARPA domain as well
! 133: as a member of the USC domain (Figure 2). Such a relation
! 134: constitutes an anomaly to the rule of one-connectivity between any
! 135: two points of a tree. The common child and the sub-tree below it
! 136: become descendants of both parent domains.
! 137:
! 138: U
! 139: / | \
! 140: / . \
! 141: . . ARPA
! 142: . . | \
! 143: USC | \
! 144: \ | .
! 145: \ | .
! 146: ISI
! 147:
! 148: Figure 2
! 149: Anomaly in the In-Tree Model
! 150:
! 151: Some issues resulting from multiple parentage are addressed in
! 152: Appendix B. The general implications of multiple parentage are a
! 153: subject for further investigation.
! 154:
! 155: 3. Advantage of Absolute Naming
! 156:
! 157: Absolute naming implies that the (complete) names are assigned with
! 158: respect to a universal reference point. The advantage of absolute
! 159: naming is that a name thus assigned can be universally interpreted
! 160: with respect to the universal reference point. The Internet naming
! 161: convention provides absolute naming with the naming universe as its
! 162: universal reference point.
! 163:
! 164: For relative naming, an entity is named depending upon the position
! 165: of the naming entity relative to that of the named entity. A set of
! 166: hosts running the "unix" operating system exchange mail using a
! 167: method called "uucp". The naming convention employed by uucp is an
! 168: example of relative naming. The mail recipient is typically named by
! 169: a source route identifying a chain of locally known hosts linking the
! 170:
! 171:
! 172:
! 173: Su & Postel [Page 3]
! 174:
! 175:
! 176:
! 177: RFC 819 August 1982;
! 178:
! 179:
! 180: sender's host to the recipient's. A destination name can be, for
! 181: example,
! 182:
! 183: "alpha!beta!gamma!john",
! 184:
! 185: where "alpha" is presumably known to the originating host, "beta" is
! 186: known to "alpha", and so on.
! 187:
! 188: The uucp mail system has demonstrated many of the problems inherent
! 189: to relative naming. When the host names are only locally
! 190: interpretable, routing optimization becomes impossible. A reply
! 191: message may have to traverse the reverse route to the original sender
! 192: in order to be forwarded to other parties.
! 193:
! 194: Furthermore, if a message is forwarded by one of the original
! 195: recipients or passed on as the text of another message, the frame of
! 196: reference of the relative source route can be completely lost. Such
! 197: relative naming schemes have severe problems for many of the uses
! 198: that we depend upon in the ARPA Internet community.
! 199:
! 200: 4. Interoperability
! 201:
! 202: To allow interoperation with a different naming convention, the names
! 203: assigned by a foreign naming convention need to be accommodated.
! 204: Given the autonomous nature of domains, a foreign naming environment
! 205: may be incorporated as a domain anywhere in the hierarchy. Within
! 206: the naming universe, the name service for a domain is provided within
! 207: that domain. Thus, a foreign naming convention can be independent of
! 208: the Internet naming convention. What is implied here is that no
! 209: standard convention for naming needs to be imposed to allow
! 210: interoperations among heterogeneous naming environments.
! 211:
! 212: For example:
! 213:
! 214: There might be a naming convention, say, in the FOO world,
! 215: something like "<user>%<host>%<area>". Communications with an
! 216: entity in that environment can be achieved from the Internet
! 217: community by simply appending ".FOO" on the end of the name in
! 218: that foreign convention.
! 219:
! 220: John%ISI-Tops20-7%California.FOO
! 221:
! 222: Another example:
! 223:
! 224: One way of accommodating the "uucp world" described in the last
! 225: section is to declare it as a foreign system. Thus, a uucp
! 226: name
! 227:
! 228: "alpha!beta!gamma!john"
! 229:
! 230:
! 231: Su & Postel [Page 4]
! 232:
! 233:
! 234:
! 235: RFC 819 August 1982;
! 236:
! 237:
! 238: might be known in the Internet community as
! 239:
! 240: "alpha!beta!gamma!john.UUCP".
! 241:
! 242: Communicating with a complex subdomain is another case which can
! 243: be treated as interoperation. A complex subdomain is a domain
! 244: with complex internal naming structure presumably unknown to the
! 245: outside world (or the outside world does not care to be concerned
! 246: with its complexity).
! 247:
! 248: For the mail system application, the names embedded in the message
! 249: text are often used by the destination for such purpose as to reply
! 250: to the original message. Thus, the embedded names may need to be
! 251: converted for the benefit of the name server in the destination
! 252: environment.
! 253:
! 254: Conversion of names on the boundary between heterogeneous naming
! 255: environments is a complex subject. The following example illustrates
! 256: some of the involved issues.
! 257:
! 258: For example:
! 259:
! 260: A message is sent from the Internet community to the FOO
! 261: environment. It may bear the "From" and "To" fields as:
! 262:
! 263: From: [email protected]
! 264: To: John%ISI-Tops20-7%California.FOO
! 265:
! 266: where "FOO" is a domain independent of the Internet naming
! 267: environment. The interface on the boundary of the two
! 268: environments may be represented by a software module. We may
! 269: assume this interface to be an entity of the Internet community
! 270: as well as an entity of the FOO community. For the benefit of
! 271: the FOO environment, the "From" and "To" fields need to be
! 272: modified upon the message's arrival at the boundary. One may
! 273: view naming as a separate layer of protocol, and treat
! 274: conversion as a protocol translation. The matter is
! 275: complicated when the message is sent to more than one
! 276: destination within different naming environments; or the
! 277: message is destined within an environment not sharing boundary
! 278: with the originating naming environment.
! 279:
! 280: While the general subject concerning conversion is beyond the scope
! 281: of this note, a few questions are raised in Appendix D.
! 282:
! 283:
! 284:
! 285:
! 286:
! 287:
! 288:
! 289: Su & Postel [Page 5]
! 290:
! 291:
! 292:
! 293: RFC 819 August 1982;
! 294:
! 295:
! 296: 5. Name Service
! 297:
! 298: Name service is a network service providing name-to-address
! 299: translation. Such service may be achieved in a number of ways. For
! 300: a simple networking environment, it can be accomplished with a single
! 301: central database containing name-to-address correspondence for all
! 302: the pertinent network entities, such as hosts.
! 303:
! 304: In the case of the old ARPANET host names, a central database is
! 305: duplicated in each individual host. The originating module of an
! 306: application process would query the local name service (e.g., make a
! 307: system call) to obtain network address for the destination host. With
! 308: the proliferation of networks and an accelerating increase in the
! 309: number of hosts participating in networking, the ever growing size,
! 310: update frequency, and the dissemination of the central database makes
! 311: this approach unmanageable.
! 312:
! 313: The hierarchical structure of the Internet naming convention supports
! 314: decentralization of naming authority and distribution of name service
! 315: capability. It readily accommodates growth of the naming universe.
! 316: It allows an arbitrary number of hierarchical layers. The addition
! 317: of a new domain adds little complexity to an existing Internet
! 318: system.
! 319:
! 320: The name service at each domain is assumed to be provided by one or
! 321: more name servers. There are two models for how a name server
! 322: completes its work, these might be called "iterative" and
! 323: "recursive".
! 324:
! 325: For an iterative name server there may be two kinds of responses.
! 326: The first kind of response is a destination address. The second
! 327: kind of response is the address of another name server. If the
! 328: response is a destination address, then the query is satisfied. If
! 329: the response is the address of another name server, then the query
! 330: must be repeated using that name server, and so on until a
! 331: destination address is obtained.
! 332:
! 333: For a recursive name server there is only one kind of response --
! 334: a destination address. This puts an obligation on the name server
! 335: to actually make the call on another name server if it can't
! 336: answer the query itself.
! 337:
! 338: It is noted that looping can be avoided since the names presented for
! 339: translation can only be of finite concatenation. However, care
! 340: should be taken in employing mechanisms such as a pointer to the next
! 341: simple name for resolution.
! 342:
! 343: We believe that some name servers will be recursive, but we don't
! 344: believe that all will be. This means that the caller must be
! 345:
! 346:
! 347: Su & Postel [Page 6]
! 348:
! 349:
! 350:
! 351: RFC 819 August 1982;
! 352:
! 353:
! 354: prepared for either type of server. Further discussion and examples
! 355: of name service is given in Appendix C.
! 356:
! 357: The basic name service at each domain is the translation of simple
! 358: names to addresses for all of its children. However, if only this
! 359: basic name service is provided, the use of complete (or fully
! 360: qualified) names would be required. Such requirement can be
! 361: unreasonable in practice. Thus, we propose the use of partial names
! 362: in the context in which their uniqueness is preserved. By
! 363: construction, naming uniqueness is preserved within the domain of a
! 364: common ancestry. Thus, a partially qualified name is constructed by
! 365: omitting from the complete name ancestors common to the communicating
! 366: parties. When a partially qualified name leaves its context of
! 367: uniqueness it must be additionally qualified.
! 368:
! 369: The use of partially qualified names places a requirement on the
! 370: Internet name service. To satisfy this requirement, the name service
! 371: at each domain must be capable of, in addition to the basic service,
! 372: resolving simple names for all of its ancestors (including itself)
! 373: and their children. In Appendix B, the required distinction among
! 374: simple names for such resolution is addressed.
! 375:
! 376: 6. Naming Authority
! 377:
! 378: Associated with each domain there must be a naming authority to
! 379: assign simple names and ensure proper distinction among simple names.
! 380:
! 381: Note that if the use of partially qualified names is allowed in a
! 382: sub-domain, the uniqueness of simple names inside that sub-domain is
! 383: insufficient to avoid ambiguity with names outside the subdomain.
! 384: Appendix B discusses simple name assignment in a sub-domain that
! 385: would allow the use of partially qualified names without ambiguity.
! 386:
! 387: Administratively, associated with each domain there is a single
! 388: person (or office) called the registrar. The registrar of the naming
! 389: universe specifies the top-level set of domains and designates a
! 390: registrar for each of these domains. The registrar for any given
! 391: domain maintains the naming authority for that domain.
! 392:
! 393: 7. Network-Oriented Applications
! 394:
! 395: For user applications such as file transfer and terminal access, the
! 396: remote host needs to be named. To be compatible with ARPANET naming
! 397: convention, a host can be treated as an endpoint domain.
! 398:
! 399: Many operating systems or programming language run-time environments
! 400: provide functions or calls (JSYSs, SVCs, UUOs, SYSs, etc.) for
! 401: standard services (e.g., time-of-day, account-of-logged-in-user,
! 402: convert-number-to-string). It is likely to be very helpful if such a
! 403:
! 404:
! 405: Su & Postel [Page 7]
! 406:
! 407:
! 408:
! 409: RFC 819 August 1982;
! 410:
! 411:
! 412: function or call is developed for translating a host name to an
! 413: address. Indeed, several systems on the ARPANET already have such
! 414: facilities for translating an ARPANET host name into an ARPANET
! 415: address based on internal tables.
! 416:
! 417: We recommend that this provision of a standard function or call for
! 418: translating names to addresses be extended to accept names of
! 419: Internet convention. This will promote a consistent interface to the
! 420: users of programs involving internetwork activities. The standard
! 421: facility for translating Internet names to Internet addresses should
! 422: include all the mechanisms available on the host, such as checking a
! 423: local table or cache of recently checked names, or consulting a name
! 424: server via the Internet.
! 425:
! 426: 8. Mail Relaying
! 427:
! 428: Relaying is a feature adopted by more and more mail systems.
! 429: Relaying facilitates, among other things, interoperations between
! 430: heterogeneous mail systems. The term "relay" is used to describe the
! 431: situation where a message is routed via one or more intermediate
! 432: points between the sender and the recipient. The mail relays are
! 433: normally specified explicitly as relay points in the instructions for
! 434: message delivery. Usually, each of the intermediate relays assume
! 435: responsibility for the relayed message [3].
! 436:
! 437: A point should be made on the basic difference between mail
! 438: relaying and the uucp naming system. The difference is that
! 439: although mail relaying with absolute naming can also be considered
! 440: as a form of source routing, the names of each intermediate points
! 441: and that of the destination are universally interpretable, while
! 442: the host names along a source route of the uucp convention is
! 443: relative and thus only locally interpretable.
! 444:
! 445: The Internet naming convention explicitly allows interoperations
! 446: among heterogeneous systems. This implies that the originator of a
! 447: communication may name a destination which resides in a foreign
! 448: system. The probability is that the destination network address may
! 449: not be comprehensible to the transport system of the originator.
! 450: Thus, an implicit relaying mechanism is called for at the boundary
! 451: between the domains. The function of this implicit relay is the same
! 452: as the explicit relay.
! 453:
! 454:
! 455:
! 456:
! 457:
! 458:
! 459:
! 460:
! 461:
! 462:
! 463: Su & Postel [Page 8]
! 464:
! 465:
! 466:
! 467: RFC 819 August 1982;
! 468:
! 469:
! 470: 9. Implementation
! 471:
! 472: The Actual Domains
! 473:
! 474: The initial set of top-level names include:
! 475:
! 476: ARPA
! 477:
! 478: This represents the set of organizations involved in the
! 479: Internet system through the authority of the U.S. Defense
! 480: Advanced Research Projects Agency. This includes all the
! 481: research and development hosts on the ARPANET and hosts on
! 482: many other nets as well. But note very carefully that the
! 483: top-level domain "ARPA" does not map one-to-one with the
! 484: ARPANET -- domains are administrative, not topological.
! 485:
! 486: Transition
! 487:
! 488: In the transition from the ARPANET naming convention to the
! 489: Internet naming convention, a host name may be used as a simple
! 490: name for an endpoint domain. Thus, if "USC-ISIF" is an ARPANET
! 491: host name, then "USC-ISIF.ARPA" is the name of an Internet domain.
! 492:
! 493: 10. Summary
! 494:
! 495: A hierarchical naming convention based on the domain concept has been
! 496: adopted by the Internet community. It is an absolute naming
! 497: convention defined along administrative rather than topological
! 498: boundaries. This naming convention is adaptive for interoperations
! 499: with other naming conventions. Thus, no standard convention needs to
! 500: be imposed for interoperations among heterogeneous naming
! 501: environments.
! 502:
! 503: This Internet naming convention allows distributed name service and
! 504: naming authority functions at each domain. We have specified these
! 505: functions required at each domain. Also discussed are implications
! 506: on network-oriented applications, mail systems, and administrative
! 507: aspects of this convention.
! 508:
! 509:
! 510:
! 511:
! 512:
! 513:
! 514:
! 515:
! 516:
! 517:
! 518:
! 519:
! 520:
! 521: Su & Postel [Page 9]
! 522:
! 523:
! 524:
! 525: RFC 819 August 1982;
! 526:
! 527:
! 528: APPENDIX A
! 529:
! 530: The BNF Specification
! 531:
! 532: We present here a rather detailed "BNF" definition of the allowed
! 533: form for a computer mail "mailbox" composed of a "local-part" and a
! 534: "domain" (separated by an at sign). Clearly, the domain can be used
! 535: separately in other network-oriented applications.
! 536:
! 537: <mailbox> ::= <local-part> "@" <domain>
! 538:
! 539: <local-part> ::= <string> | <quoted-string>
! 540:
! 541: <string> ::= <char> | <char> <string>
! 542:
! 543: <quoted-string> ::= """ <qtext> """
! 544:
! 545: <qtext> ::= "\" <x> | "\" <x> <qtext> | <q> | <q> <qtext>
! 546:
! 547: <char> ::= <c> | "\" <x>
! 548:
! 549: <domain> ::= <naming-domain> | <naming-domain> "." <domain>
! 550:
! 551: <naming-domain> ::= <simple-name> | <address>
! 552:
! 553: <simple-name> ::= <a> <ldh-str> <let-dig>
! 554:
! 555: <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>
! 556:
! 557: <let-dig> ::= <a> | <d>
! 558:
! 559: <let-dig-hyp> ::= <a> | <d> | "-"
! 560:
! 561: <address> :: = "#" <number> | "[" <dotnum> "]"
! 562:
! 563: <number> ::= <d> | <d> <number>
! 564:
! 565: <dotnum> ::= <snum> "." <snum> "." <snum> "." <snum>
! 566:
! 567: <snum> ::= one, two, or three digits representing a decimal integer
! 568: value in the range 0 through 255
! 569:
! 570: <a> ::= any one of the 52 alphabetic characters A through Z in upper
! 571: case and a through z in lower case
! 572:
! 573: <c> ::= any one of the 128 ASCII characters except <s> or <SP>
! 574:
! 575: <d> ::= any one of the ten digits 0 through 9
! 576:
! 577:
! 578:
! 579: Su & Postel [Page 10]
! 580:
! 581:
! 582:
! 583: RFC 819 August 1982;
! 584:
! 585:
! 586: <q> ::= any one of the 128 ASCII characters except CR, LF, quote ("),
! 587: or backslash (\)
! 588:
! 589: <x> ::= any one of the 128 ASCII characters (no exceptions)
! 590:
! 591: <s> ::= "<", ">", "(", ")", "[", "]", "\", ".", ",", ";", ":", "@",
! 592: """, and the control characters (ASCII codes 0 through 31 inclusive
! 593: and 127)
! 594:
! 595: Note that the backslash, "\", is a quote character, which is used to
! 596: indicate that the next character is to be used literally (instead of
! 597: its normal interpretation). For example, "Joe\,Smith" could be used
! 598: to indicate a single nine character user field with comma being the
! 599: fourth character of the field.
! 600:
! 601: The simple names that make up a domain may contain both upper and
! 602: lower case letters (as well as digits and hyphen), but these names
! 603: are not case sensitive.
! 604:
! 605: Hosts are generally known by names. Sometimes a host is not known to
! 606: the translation function and communication is blocked. To bypass
! 607: this barrier two forms of addresses are also allowed for host
! 608: "names". One form is a decimal integer prefixed by a pound sign, "#".
! 609: Another form, called "dotted decimal", is four small decimal integers
! 610: separated by dots and enclosed by brackets, e.g., "[123.255.37.2]",
! 611: which indicates a 32-bit ARPA Internet Address in four 8-bit fields.
! 612: (Of course, these numeric address forms are specific to the Internet,
! 613: other forms may have to be provided if this problem arises in other
! 614: transport systems.)
! 615:
! 616:
! 617:
! 618:
! 619:
! 620:
! 621:
! 622:
! 623:
! 624:
! 625:
! 626:
! 627:
! 628:
! 629:
! 630:
! 631:
! 632:
! 633:
! 634:
! 635:
! 636:
! 637: Su & Postel [Page 11]
! 638:
! 639:
! 640:
! 641: RFC 819 August 1982;
! 642:
! 643:
! 644: APPENDIX B
! 645:
! 646: An Aside on the Assignment of Simple Names
! 647:
! 648: In the following example, there are two naming hierarchies joining at
! 649: the naming universe 'U'. One consists of domains (S, R, N, J, P, Q,
! 650: B, A); and the other (L, E, F, G, H, D, C, K, B, A). Domain B is
! 651: assumed to have multiple parentage as shown.
! 652:
! 653: U
! 654: / \
! 655: / \
! 656: J L
! 657: / \
! 658: N E
! 659: / \ / \
! 660: R P D F
! 661: / \ | \ \
! 662: S Q C (X) G
! 663: \ / \ \
! 664: B K H
! 665: /
! 666: A
! 667:
! 668: Figure 3
! 669: Illustration of Requirements for the Distinction of Simple Names
! 670:
! 671: Suppose someone at A tries to initiate communication with destination
! 672: H. The fully qualified destination name would be
! 673:
! 674: H.G.F.E.L.U
! 675:
! 676: Omitting common ancestors, the partially qualified name for the
! 677: destination would be
! 678:
! 679: H.G.F
! 680:
! 681: To permit the case of partially qualified names, name server at A
! 682: needs to resolve the simple name F, i.e., F needs to be distinct from
! 683: all the other simple names in its database.
! 684:
! 685: To enable the name server of a domain to resolve simple names, a
! 686: simple name for a child needs to be assigned distinct from those of
! 687: all of its ancestors and their immediate children. However, such
! 688: distinction would not be sufficient to allow simple name resolution
! 689: at lower-level domains because lower-level domains could have
! 690: multiple parentage below the level of this domain.
! 691:
! 692: In the example above, let us assume that a name is to be assigned
! 693:
! 694:
! 695: Su & Postel [Page 12]
! 696:
! 697:
! 698:
! 699: RFC 819 August 1982;
! 700:
! 701:
! 702: to a new domain X by D. To allow name server at D to resolve
! 703: simple names, the name for X must be distinct from L, E, D, C, F,
! 704: and J. However, allowing A to resolve simple names, X needs to be
! 705: also distinct from A, B, K, as well as from Q, P, N, and R.
! 706:
! 707: The following observations can be made.
! 708:
! 709: Simple names along parallel trails (distinct trails leading from
! 710: one domain to the naming universe) must be distinct, e.g., N must
! 711: be distinct from E for B or A to properly resolve simple names.
! 712:
! 713: No universal uniqueness of simple names is called for, e.g., the
! 714: simple name S does not have to be distinct from that of E, F, G,
! 715: H, D, C, K, Q, B, or A.
! 716:
! 717: The lower the level at which a domain occurs, the more immune it
! 718: is to the requirement of naming uniqueness.
! 719:
! 720: To satisfy the required distinction of simple names for proper
! 721: resolution at all levels, a naming authority needs to ensure the
! 722: simple name to be assigned distinct from those in the name server
! 723: databases at the endpoint naming domains within its domain. As an
! 724: example, for D to assign a simple name for X, it would need to
! 725: consult databases at A and K. It is, however, acceptable to have
! 726: simple names under domain A identical with those under K. Failure of
! 727: such distinct assignment of simple names by naming authority of one
! 728: domain would jeopardize the capability of simple name resolution for
! 729: entities within the subtree under that domain.
! 730:
! 731:
! 732:
! 733:
! 734:
! 735:
! 736:
! 737:
! 738:
! 739:
! 740:
! 741:
! 742:
! 743:
! 744:
! 745:
! 746:
! 747:
! 748:
! 749:
! 750:
! 751:
! 752:
! 753: Su & Postel [Page 13]
! 754:
! 755:
! 756:
! 757: RFC 819 August 1982;
! 758:
! 759:
! 760: APPENDIX C
! 761:
! 762: Further Discussion of Name Service and Name Servers
! 763:
! 764: The name service on a system should appear to the programmer of an
! 765: application program simply as a system call or library subroutine.
! 766: Within that call or subroutine there may be several types of methods
! 767: for resolving the name string into an address.
! 768:
! 769: First, a local table may be consulted. This table may be a
! 770: complete table and may be updated frequently, or it may simply be
! 771: a cache of the few latest name to address mappings recently
! 772: determined.
! 773:
! 774: Second, a call may be made to a name server to resolve the string
! 775: into a destination address.
! 776:
! 777: Third, a call may be made to a name server to resolve the string
! 778: into a relay address.
! 779:
! 780: Whenever a name server is called it may be a recursive server or an
! 781: interactive server.
! 782:
! 783: If the server is recursive, the caller won't be able to tell if
! 784: the server itself had the information to resolve the query or
! 785: called another server recursively (except perhaps for the time it
! 786: takes).
! 787:
! 788: If the server is iterative, the caller must be prepared for either
! 789: the answer to its query, or a response indicating that it should
! 790: call on a different server.
! 791:
! 792: It should be noted that the main name service discussed in this memo
! 793: is simply a name string to address service. For some applications
! 794: there may be other services needed.
! 795:
! 796: For example, even within the Internet there are several procedures
! 797: or protocols for actually transferring mail. One need is to
! 798: determine which mail procedures a destination host can use.
! 799: Another need is to determine the name of a relay host if the
! 800: source and destination hosts do not have a common mail procedure.
! 801: These more specialized services must be specific to each
! 802: application since the answers may be application dependent, but
! 803: the basic name to address translation is application independent.
! 804:
! 805:
! 806:
! 807:
! 808:
! 809:
! 810:
! 811: Su & Postel [Page 14]
! 812:
! 813:
! 814:
! 815: RFC 819 August 1982;
! 816:
! 817:
! 818: APPENDIX D
! 819:
! 820: Further Discussion of Interoperability and Protocol Translations
! 821:
! 822: The translation of protocols from one system to another is often
! 823: quite difficult. Following are some questions that stem from
! 824: considering the translations of addresses between mail systems:
! 825:
! 826: What is the impact of different addressing environments (i.e.,
! 827: environments of different address formats)?
! 828:
! 829: It is noted that the boundary of naming environment may or may not
! 830: coincide with the boundary of different mail systems. Should the
! 831: conversion of naming be independent of the application system?
! 832:
! 833: The boundary between different addressing environments may or may
! 834: not coincide with that of different naming environments or
! 835: application systems. Some generic approach appears to be
! 836: necessary.
! 837:
! 838: If the conversion of naming is to be independent of the
! 839: application system, some form of interaction appears necessary
! 840: between the interface module of naming conversion with some
! 841: application level functions, such as the parsing and modification
! 842: of message text.
! 843:
! 844: To accommodate encryption, conversion may not be desirable at all.
! 845: What then can be an alternative to conversion?
! 846:
! 847:
! 848:
! 849:
! 850:
! 851:
! 852:
! 853:
! 854:
! 855:
! 856:
! 857:
! 858:
! 859:
! 860:
! 861:
! 862:
! 863:
! 864:
! 865:
! 866:
! 867:
! 868:
! 869: Su & Postel [Page 15]
! 870:
! 871:
! 872:
! 873: RFC 819 August 1982;
! 874:
! 875:
! 876: GLOSSARY
! 877:
! 878: address
! 879:
! 880: An address is a numerical identifier for the topological location
! 881: of the named entity.
! 882:
! 883: name
! 884:
! 885: A name is an alphanumeric identifier associated with the named
! 886: entity. For unique identification, a name needs to be unique in
! 887: the context in which the name is used. A name can be mapped to an
! 888: address.
! 889:
! 890: complete (fully qualified) name
! 891:
! 892: A complete name is a concatenation of simple names representing
! 893: the hierarchical relation of the named with respect to the naming
! 894: universe, that is it is the concatenation of the simple names of
! 895: the domain structure tree nodes starting with its own name and
! 896: ending with the top level node name. It is a unique name in the
! 897: naming universe.
! 898:
! 899: partially qualified name
! 900:
! 901: A partially qualified name is an abbreviation of the complete name
! 902: omitting simple names of the common ancestors of the communicating
! 903: parties.
! 904:
! 905: simple name
! 906:
! 907: A simple name is an alphanumeric identifier unique only within its
! 908: parent domain.
! 909:
! 910: domain
! 911:
! 912: A domain defines a region of jurisdiction for name assignment and
! 913: of responsibility for name-to-address translation.
! 914:
! 915: naming universe
! 916:
! 917: Naming universe is the ancestor of all network entities.
! 918:
! 919: naming environment
! 920:
! 921: A networking environment employing a specific naming convention.
! 922:
! 923:
! 924:
! 925:
! 926:
! 927: Su & Postel [Page 16]
! 928:
! 929:
! 930:
! 931: RFC 819 August 1982;
! 932:
! 933:
! 934: name service
! 935:
! 936: Name service is a network service for name-to-address mapping.
! 937:
! 938: name server
! 939:
! 940: A name server is a network mechanism (e.g., a process) realizing
! 941: the function of name service.
! 942:
! 943: naming authority
! 944:
! 945: Naming authority is an administrative entity having the authority
! 946: for assigning simple names and responsibility for resolving naming
! 947: conflict.
! 948:
! 949: parallel relations
! 950:
! 951: A network entity may have one or more hierarchical relations with
! 952: respect to the naming universe. Such multiple relations are
! 953: parallel relations to each other.
! 954:
! 955: multiple parentage
! 956:
! 957: A network entity has multiple parentage when it is assigned a
! 958: simple name by more than one naming domain.
! 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: Su & Postel [Page 17]
! 986:
! 987:
! 988:
! 989: RFC 819 August 1982;
! 990:
! 991:
! 992: REFERENCES
! 993:
! 994: [1] F. Harary, "Graph Theory", Addison-Wesley, Reading,
! 995: Massachusetts, 1969.
! 996:
! 997: [2] J. Postel, "Computer Mail Meeting Notes", RFC-805,
! 998: USC/Information Sciences Institute, 8 February 1982.
! 999:
! 1000: [3] J. Postel, "Simple Mail Transfer Protocol", RFC-821,
! 1001: USC/Information Sciences Institute, August 1982.
! 1002:
! 1003: [4] D. Crocker, "Standard for the Format of ARPA Internet Text
! 1004: Messages", RFC-822, Department of Electrical Engineering, University
! 1005: of Delaware, August 1982.
! 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: Su & Postel [Page 18]
! 1044:
! 1045: