📄 rfc2167.txt
字号:
RFC 2167 RWhois Protocol June 1997
The pseudo code for the above rules is:
for each query term in the query
if the search value in the query term is hierarchical
if the search value is within one of the authority areas
if the search value is within one of the referred authority areas
the server sends link referral(s)
else
the server sends a "230 No objects found" error
endif
endif
endif
endfor
if the search values of some of the query terms are hierarchical but
not within any of the authority areas
the server sends Punt referral(s)
endif
if the search values of all the query terms are non-hierarchical
the server sends Referral(s) from an index server
endif
2.6 Data Replication
An RWhois server can replicate (duplicate) data from another RWhois
server on a per-authority area basis. Data replication makes the
RWhois service more reliable. Further, it increases throughput by
distributing queries to more than one server.
There can be two types of servers serving an authority area: a master
server and a slave server. A master server is where data is
registered for an authority area. It answers authoritatively to
queries in that authority area. There must be one and only one master
server for an authority area. A master server is also called a
primary server.
A slave server is where data is replicated from the master server for
an authority area. It also answers authoritatively to queries in that
authority area. There may be one or more slave servers for an
authority area. A slave server is also called a secondary server.
Note that a slave server must not register data for an authority
area.
It is recommended that the master and slave servers for an authority
area be geographically separate. Therefore, network unreachability at
one site will not completely shut down the RWhois service for that
authority area.
Williamson, et. al. Informational [Page 13]
RFC 2167 RWhois Protocol June 1997
2.6.1 Data to Replicate
In RWhois, data is replicated on a per-authority area basis. The
smallest type of data a slave server can replicate is an attribute of
a class. Therefore, a slave server can replicate data for all the
classes, some classes, or some attributes of some classes.
The amount of data a slave server can replicate each time is either
all of the data or the data that has changed since the last
replication. The process of replicating all of the data is called
complete replication. The process of replicating the data that has
changed since the last replication is called incremental replication.
2.6.2 Start Of Authority Variables
Each authority area has some administrative variables, defined at the
master server, to control data replication. These variables are
called the Start Of Authority (SOA) variables. They are listed below.
Serial-Number This is the serial number of the data in an
authority area. The master server should update
this variable whenever the data in the authority
area is changed. Its value is a time/date stamp.
Refresh-Interval This is the time interval before a slave server
checks for complete replication. Its value is
specified in seconds.
Increment-IntervalThis is the time interval before a slave server
checks for incremental replication. Its value is
specified in seconds.
Retry-Interval This is the time interval before a slave server
tries again to connect to a master server that
appears to be out-of-service. Its value is
specified in seconds.
Time-To-Live This is the default time to live for the data in
an authority area at a slave server. The slave
server should not answer authoritatively to
queries for such stale data. Its value is
specified in seconds.
Admin-Contact This is the email address of an individual or a
role account responsible for the data integrity in
an authority area at the master server.
Williamson, et. al. Informational [Page 14]
RFC 2167 RWhois Protocol June 1997
Tech-Contact This is the email address of an individual or a
role account responsible for the operation of the
master server for an authority area.
Hostmaster This is the email address of an individual or a
role account to whom email messages to update the
data in an authority area at the master server are
sent.
Primary-Server This is the location of the master server for an
authority area. Its value must contain both the
host name (or IP address) and port number of the
master server.
3. Protocol
3.1 Overview
The above sections describe the directory service architecture based
on the RWhois protocol. The remaining sections describe the syntax of
the protocol; the sequence and syntax of the information exchanged
between a server and a client. There are five types of information
that may be exchanged during a client/server session: directive,
response, query, result, and info.
3.1.1 Directive
A directive is a command that a client sends to a server to set a
control parameter for the session, get the meta-information (class
definitions and SOA information) about an authority area, or get the
data in an authority area. The first character of a directive must be
a "-". The server must support the "-rwhois" directive; all other
directives are optional. The server must indicate in the banner which
directives are implemented (see Section 3.1.9).
3.1.2 Response
A response is the information that a server returns to a client for a
directive. It is comprised of one or more lines, and the last line
always indicates the success or failure of the directive. The first
character of each response line must be a "%". If a server runs a
directive successfully, the last response line must be "%ok".
Otherwise, it must be "%error <error-code> <error-text>". A line with
the string "%ok" or "%error" in the first position must occur only
once in a server response and must always be the last line. The
server may send the "%info" response for special messages.
Williamson, et. al. Informational [Page 15]
RFC 2167 RWhois Protocol June 1997
A client must understand the "%ok", "%error", and "%info" responses.
The client must also understand directive specific responses, if it
uses the related directives to communicate with the server. For
example, if the client sends the "-schema" directive to the server,
the client must understand the "%schema" response.
3.1.3 Query
A query is a command that a client sends to a server to access the
data in an authority area. The first character of a query must not be
a "-", since the server checks the first character of each command
from a client to determine whether it is a directive or a query.
3.1.4 Result
A result is the information that a server returns to a client for a
query. It can be either the accessed data or referrals to other
servers. It is comprised of one or more lines, and the last line
always indicates the success or failure of the query. If a server
returns either data or referrals for a query, the last result line
must be "%ok". Otherwise, it must be "%error <error-code> <error-
text>".
3.1.5 Info
An info message contains miscellaneous information that a server
sends to a client. The server may use it to send special messages,
for example a "message of the day" (MOTD), to the client. The first
info line must be "%info on", and the last info line must be "%info
off".
3.1.6 Client/Server Session
A typical RWhois client/server session has the following sequence of
messages.
* The client connects to the server.
* The server returns a banner identifying its protocol versions
and capabilities.
* The client sends one or more directives to the server.
* The server returns the response to each directive.
* The client finally sends a query to the server.
* The server returns the query results.
* The server closes the connection, unless the client has directed
it not to close the connection.
Williamson, et. al. Informational [Page 16]
RFC 2167 RWhois Protocol June 1997
3.1.7 Examples
This section gives some common examples of the client/server
interaction. The notation in the examples uses a prefix to indicate
from where the information comes. A "C" indicates that the client
sends the data to the server. An "S" indicates that the server sends
the data to the client. The line is a comment when "#" is used. The
space after the prefix is not part of the data.
The following example illustrates a successful query.
# The client connects to the server.
# The server returns a banner identifying its protocol versions and
# capabilities.
S %rwhois V-1.5:00ffff:00 master.rwhois.net (Network Solutions V-1.5)
# The client sends a directive to limit the number of search hits
# to 20.
C -limit 20
# The server returns a successful response.
S %ok
# The client sends a query to search for rwhois.net domain.
C domain rwhois.net
# The server returns the data for rwhois.net domain.
S domain:ID:dom-1.rwhois.net
S domain:Auth-Area:rwhois.net
S domain:Class-Name:domain
S domain:Updated:19970107201111000
S domain:Domain:rwhois.net
S domain:Server;I:hst-1.rwhois.net
S domain:Server;I:hst-2.rwhois.net
S
S %ok
# The server closes the connection.
The following example illustrates the link and punt referrals.
# The client connects to the server.
# The server returns a banner identifying its protocol versions and
# capabilities.
S %rwhois V-1.5:00ffff:00 master.rwhois.net (Network Solutions V-1.5)
# The client sends a directive to hold the connection until it sends
# a directive to close the connection.
C -holdconnect on
# The server returns a successful response.
S %ok
# The client sends a query to search for a.b.rwhois.net domain.
C domain a.b.rwhois.net
# The server returns a link referral to a server serving the
Williamson, et. al. Informational [Page 17]
RFC 2167 RWhois Protocol June 1997
# b.rwhois.net authority area.
S %referral rwhois://master.b.rwhois.net:4321/auth-area=b.rwhois.net
S %ok
# The client sends a query to search for internic.net domain.
C domain internic.net
# The server returns a punt referral to a server serving the root
# authority area.
S %referral rwhois://rs.internic.net:4321/auth-area=.
S %ok
# The client sends a directive to close the connection.
C -quit
S %ok
# The server closes the connection.
The following example illustrates a query error.
# The client connects to the server.
# The server returns a banner identifying its protocol versions and
# capabilities.
S %rwhois V-1.5:00ffff:00 master.rwhois.net (Network Solutions V-1.5)
# The client sends a query to search for c.rwhois.net domain.
C domain c.rwhois.net
# The server returns an error, since neither data nor referrals for
# c.rwhois.net domain are found within the rwhois.net authority area.
S %error 230 No objects found
# The server closes the connection.
3.1.8 Notation
The following sections use the Augmented Backus-Naur Form (ABNF)
notation to describe the syntax of the protocol. For further
information, see Section 2 of [RFC822]. The notation in the examples
uses a prefix to indicate from where the information comes. A "C"
indicates that the client sends the data to the server. An "S"
indicates that the server sends the data to the client. The line is a
comment when "#" is used. The space after the prefix is not part of
the data.
3.1.9 General ABNF definitions
Lexical Tokens
alpha = "a".."z" / "A".."Z"
digit = "0".."9"
hex-digit = digit / "a".."f" / "A".. "F"
id-char = alpha / digit / "_" / "-"
any-char = <ASCII 1..255,
except LF (linefeed) and CR (carriage return)>
Williamson, et. al. Informational [Page 18]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -