RFC 887 December 1983
Resource Location Protocol
REFERENCES
[1] Postel, J.
User Datagram Protocol. <-- tax baron neesi baron 'E
RFC 768, USC/Information Sciences Institute, August, 1980.
[2] Postel, J.
File Transfer Protocol. <-- E'baron baron baron
RFC 765, USC/Information Sciences Institute, June, 1980.
[3] Postel, J.
Internet Protocol - DARPA Internet Program Protocol Specification. <-- neesi tax
RFC 791, USC/Information Sciences Institute, September, 1981.
[4] Postel, J.
Transmission Control Protocol- DARPA Internet Program Protocol <-- tax neesi
Specification.
RFC 793, USC/Information Sciences Institute, September, 1981.
[5] Postel, J.
Internet Control Message Protocol - DARPA Internet Program <-- neesi 'E neesi 'E
Protocol Specification.
RFC 792, USC/Information Sciences Institute, September, 1981.
[6] Reynolds, J., and J. Postel.
Assigned Numbers. <-- baron
RFC 870, USC/Information Sciences Institute, October, 1983.
[7] Gurwitz, R., and R. Hinden.
IP - Local Area Network Addressing Issues. <-- E''
IEN 212, Bolt Beranek and Newman, September, 1982.
[8] Sollins, K.
The TFTP Protocol (revision 2). <-- E''
RFC 783, MIT/Laboratory for Computer Science, June, 1981.
5. Sample Usage
The following scenarios illustrate some typical uses of RLP. In all
cases the indicated messages are encapsulated in a UDP datagram with the
appropriate source and destination port numbers, message length, and
checksum. This datagram is further encapsulated in an IP datagram with
the appropriate source address of the sending host and destination
address (either broadcast or individual) for the receiving host.
All numeric protocol examples are as specified in the appropriate
protocol description documents listed in the references.
1. Suppose a freshly rebooted host H wishes to find some gateway
on its directly connected network to which it can send its
first external packet. It then broadcasts the request
<Who-Provides?> <Flags>=<Local-Only> <Message-ID>=12345
<Resource-List>={[GGP], [EGP]}
encoded as the 8 octet message
+-----+-----+-----+-----+-----+-----+-----+-----+
| 0 | 128 | 12345 | 3 | 0 | 8 | 0 |
+-----+-----+-----+-----+-----+-----+-----+-----+
on its local network.
- Gateway G1 (which understands EGP) receives the request and
returns the reply
<I-Provide> <Flags>=none <Message-ID>=12345
<Resource-List>={[EGP]}
encoded as the 6 octet message
+-----+-----+-----+-----+-----+-----+
| 4 | 0 | 12345 | 8 | 0 |
+-----+-----+-----+-----+-----+-----+
to host H which then remembers that gateway G1 may be used
Accetta [Page 10]
RFC 887 December 1983
Resource Location Protocol
to route traffic to the rest of the Internet.
- At the same time, gateway G2 (which understands both GGP
and EGP) might also receive the request and return the reply
<I-Provide> <Flags>=none <Message-ID>=12345
<Resource-List>={[GGP], [EGP]}
encoded as the 8 octet message
+-----+-----+-----+-----+-----+-----+-----+-----+
| 4 | 0 | 12345 | 3 | 0 | 8 | 0 |
+-----+-----+-----+-----+-----+-----+-----+-----+
to host H which might then also add gateway G2 to its list
if it chooses.
2. Assume instead that host H is a stand-alone system which has
just encountered some fatal software error and wishes to locate
a crash dump server to save its state before reloading.
Suppose that the crash dump protocol on the host's local
network is implemented using the Trivial File Transfer Protocol
(TFTP) [8]. Furthermore, suppose that the special file name
"CRASH-DUMP" is used to indicate crash dump processing (e.g.
the server might locally generate a unique file name to hold
each dump that it receives from a host). Then host H might
broadcast the request
<Who-Provides?> <Flags>=none <Message-ID>=54321
<Resource-List>={[UDP, TFTP, WRQ, "CRASH-DUMP"]}
encoded as the 21 octet message
+-----+-----+-----+-----+-----+-----+-----+-----+
| 0 | 0 | 54321 | 17 | 15 | 69 |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 2 | 'C' 'R' 'A' 'S' 'H' '-' |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 'D' 'U' 'M' 'P' 0 |
+-----+-----+-----+-----+-----+
to its local network (note that the file name component is
explicitly terminated by a null so as not to exclude future
further specialization of the crash dump protocol).
- Host C (which supports this specialization of the TFTP
protocol) receives the request and returns the reply
<I-Provide> <Flags>=none <Message-ID>=54321
<Resource-List>={[UDP, TFTP, WRQ, "CRASH-DUMP"]}
Accetta [Page 11]
RFC 887 December 1983
Resource Location Protocol
encoded as the 21 octet message
+-----+-----+-----+-----+-----+-----+-----+-----+
| 4 | 0 | 54321 | 17 | 15 | 69 |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 2 | 'C' 'R' 'A' 'S' 'H' '-' |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 'D' 'U' 'M' 'P' 0 |
+-----+-----+-----+-----+-----+
to host H which may then proceed to send its crash dump to
host C and reload.
- Host D (which provides TFTP service but not the crash dump
specialization), however, might receive the request and
determine that it provides no support for the resource
(since the resource name contains components following the
UDP port number which it does not understand). It would
therefore return no reply to host H.
3. Finally, suppose host M wishes to locate some domain name
translation server (either UDP or TCP based) anywhere on the
Internet. Furthermore, suppose that host M is on a IP network
which does not provide broadcast address capabilities and that
host R is a "known" resource location server for that network.
First, since host M prefers to find a domain name server on its
own locally connected network if possible, it sends the request
<Does-Anyone-Provide?> <Flags>=<Local-Only>
<Message-ID>=12321 <Resource-List>=
{[TCP, <DOMAIN-NAME-SERVER-PORT>] {M},
[UDP, <DOMAIN-NAME-SERVER-PORT>] {M}}
encoded as the 22 octet message
+-----+-----+-----+-----+
| 3 | 128 | 12321 |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| 6 | 2 | 53 | 1 | M |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| 17 | 2 | 53 | 1 | M |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
to host R.
Host R receives the request and consults its tables for any
hosts known to support either variety of domain name service.
It finds entries indicating that both hosts S and T provide UDP
Accetta [Page 12]
RFC 887 December 1983
Resource Location Protocol
based domain name service but that neither host is on the same
IP network as host H. It must then send the negative
confirmation reply
<They-Provide> <Flags>=none <Message-ID>=12321
<Resource-List>={}
encoded as the 4 octet message
+-----+-----+-----+-----+
| 5 | 0 | 12321 |
+-----+-----+-----+-----+
back to host M.
Host M, receiving this reply, might now abandon any hope of
finding a server on its own network, reformat its request to
permit any host address, and resend
<Does-Anyone-Provide?> <Flags>=none <Message-ID>=12322
<Resource-List>=
{[TCP, <DOMAIN-NAME-SERVER-PORT>] {M},
[UDP, <DOMAIN-NAME-SERVER-PORT>] {M}}
encoded as the 22 octet message
+-----+-----+-----+-----+
| 3 | 0 | 12322 |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| 6 | 2 | 53 | 1 | M |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| 17 | 2 | 53 | 1 | M |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
again to host R.
Host R receives this new request and is no longer constrained
to return only local addresses. However, since only space for
a single qualifying IP address was provided in each request
resource specifier, it may not immediately return both
addresses. Instead, it is forced to return only the first
address and replies
<They-Provide> <Flags>=none <Message-ID>=12322
<Resource-List>={[UDP, <DOMAIN-NAME-SERVER-PORT>] {S}}
encoded as the 13 octet message
Accetta [Page 13]
RFC 887 December 1983
Resource Location Protocol
+-----+-----+-----+-----+-----+-----+-----+-----+
| 5 | 0 | 12322 | 17 | 2 | 53 |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 1 | S |
+-----+-----+-----+-----+-----+
to Host M.
Host M receives the reply and (being the suspicious sort)
decides to confirm it with host S. It then sends
<Do-You-Provide?> <Flags>=none <Message-ID>=12323
<Resource-List>={[UDP, <DOMAIN-NAME-SERVER-PORT>]}
encoded as the 8 octet message
+-----+-----+-----+-----+-----+-----+-----+-----+
| 1 | 0 | 12323 | 17 | 2 | 53 |
+-----+-----+-----+-----+-----+-----+-----+-----+
to host S and receives back from host S the reply
<I-Provide> <Flags>=none <Message-ID>=12323
<Resource-List>={}
encoded as the 4 octet message
+-----+-----+-----+-----+
| 4 | 0 | 12323 |
+-----+-----+-----+-----+
denying any support for UDP based domain name service.
In desperation host M again queries host R, this time excluding
host S from consideration, and sends the request
<Does-Anyone-Provide?> <Flags>=none <Message-ID>=12324
<Resource-List>=
{[TCP, <DOMAIN-NAME-SERVER-PORT>] {S},
[UDP, <DOMAIN-NAME-SERVER-PORT>] {S}}
encoded as the 22 octet message
+-----+-----+-----+-----+
| 3 | 0 | 12324 |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| 6 | 2 | 53 | 1 | S |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| 17 | 2 | 53 | 1 | S |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+
Accetta [Page 14]
RFC 887 December 1983
Resource Location Protocol
and this time receives the reply
<They-Provide> <Flags>=none <Message-ID>=12324
<Resource-List>={[UDP, <DOMAIN-NAME-SERVER-PORT>] {T}}
encoded as the 13 octet message
+-----+-----+-----+-----+-----+-----+-----+-----+
| 5 | 0 | 12324 | 17 | 2 | 53 |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 1 | T |
+-----+-----+-----+-----+-----+
from host R which of course host M again insists on confirming
by sending the request
<Do-You-Provide?> <Flags>=none <Message-ID>=12325
<Resource-List>=
{[UDP, <DOMAIN-NAME-SERVER-PORT>]}
encoded as the 8 octet message
+-----+-----+-----+-----+-----+-----+-----+-----+
| 1 | 0 | 12325 | 17 | 2 | 53 |
+-----+-----+-----+-----+-----+-----+-----+-----+
to host T and finally receives confirmation from host T with
the reply
<I-Provide> <Flags>=none <Message-ID>=12325
<Resource-List>={[UDP, <DOMAIN-NAME-SERVER-PORT>]}
encoded as the 8 octet message
+-----+-----+-----+-----+-----+-----+-----+-----+
| 4 | 0 | 12325 | 17 | 2 | 53 |
+-----+-----+-----+-----+-----+-----+-----+-----+
that it indeed provides domain name translation service at UDP
port 53.
A. Assigned Numbers
The "well-known" UDP port number for the Resource Location Protocol is
39 (47 octal).
No comments:
Post a Comment