[Docs] [txt|pdf] [Tracker] [WG] [Email] [Diff1] [Diff2] [Nits]

Versions: (draft-newton-crisp-iris-dchk) 00 01 02 03 04 05 06 07 08 09 RFC 5144

Network Working Group                                          A. Newton
Internet-Draft                                            VeriSign, Inc.
Expires: February 7, 2005                                 August 9, 2004


   A Domain Availability Check (dchk)  Registry Type for the Internet
                  Registry Information  Service (IRIS)
                     draft-ietf-crisp-iris-dchk-00

Status of this Memo

   By submitting this Internet-Draft, I certify that any applicable
   patent or other IPR claims of which I am aware have been disclosed,
   and any of which I become aware will be disclosed, in accordance with
   RFC 3668.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as
   Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on February 7, 2005.

Copyright Notice

   Copyright (C) The Internet Society (2004).  All Rights Reserved.

Abstract

   This document describes a lightweight domain availability service
   using the IRIS framework and the data model of the IRIS Domain
   Registry service.









Newton                  Expires February 7, 2005                [Page 1]

Internet-Draft                 iris-dchk                     August 2004


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Document Terminology . . . . . . . . . . . . . . . . . . . . .  5
   3.  DCHK Registry  . . . . . . . . . . . . . . . . . . . . . . . .  6
     3.1   Schema Description . . . . . . . . . . . . . . . . . . . .  6
       3.1.1   The <domain> Result  . . . . . . . . . . . . . . . . .  6
       3.1.2   Support for <iris:lookupEntity>  . . . . . . . . . . .  7
     3.2   DCHK Formal XML Syntax . . . . . . . . . . . . . . . . . .  7
     3.3   BEEP Transport Compliance  . . . . . . . . . . . . . . . . 11
       3.3.1   Message Pattern  . . . . . . . . . . . . . . . . . . . 11
       3.3.2   Server Authentication  . . . . . . . . . . . . . . . . 11
     3.4   URI Resolution . . . . . . . . . . . . . . . . . . . . . . 11
       3.4.1   Application Service Label  . . . . . . . . . . . . . . 11
       3.4.2   Bottom-Up Resolution . . . . . . . . . . . . . . . . . 11
       3.4.3   Top-Down Resolution  . . . . . . . . . . . . . . . . . 12
   4.  UDP Transport  . . . . . . . . . . . . . . . . . . . . . . . . 13
     4.1   Use of IRIS-LWZ  . . . . . . . . . . . . . . . . . . . . . 13
       4.1.1   IRIS-LWZ Packet Formats  . . . . . . . . . . . . . . . 13
       4.1.2   IRIS-LWZ Transactions  . . . . . . . . . . . . . . . . 14
     4.2   IRIS-LWZ Operations  . . . . . . . . . . . . . . . . . . . 15
       4.2.1   Requests . . . . . . . . . . . . . . . . . . . . . . . 15
       4.2.2   Responses  . . . . . . . . . . . . . . . . . . . . . . 16
     4.3   Formal XML Syntax  . . . . . . . . . . . . . . . . . . . . 18
     4.4   IRIS Transport Mapping Definitions . . . . . . . . . . . . 19
       4.4.1   URI Scheme . . . . . . . . . . . . . . . . . . . . . . 19
       4.4.2   Application Protocol Label . . . . . . . . . . . . . . 19
     4.5   Registrations  . . . . . . . . . . . . . . . . . . . . . . 20
       4.5.1   URI Scheme Registration  . . . . . . . . . . . . . . . 20
       4.5.2   Well-known UDP Port Registration . . . . . . . . . . . 20
       4.5.3   NAPSTR Registration  . . . . . . . . . . . . . . . . . 20
   5.  Internationalization Considerations  . . . . . . . . . . . . . 22
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 23
     6.1   XML Namespace URN Registration . . . . . . . . . . . . . . 23
     6.2   S-NAPTR Registration . . . . . . . . . . . . . . . . . . . 23
     6.3   BEEP Registration  . . . . . . . . . . . . . . . . . . . . 23
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 24
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 25
   8.1   Normative References . . . . . . . . . . . . . . . . . . . . 25
   8.2   Informative References . . . . . . . . . . . . . . . . . . . 26
       Author's Address . . . . . . . . . . . . . . . . . . . . . . . 27
       Intellectual Property and Copyright Statements . . . . . . . . 28









Newton                  Expires February 7, 2005                [Page 2]

Internet-Draft                 iris-dchk                     August 2004


1.  Introduction

   There are many ways to check domain name availability for
   registration, but none of them are ideal for the general public.
   Currently, checks for domain availability are conducted in the
   following ways:
   1.  DNS - Checking the existance of a domain name using DNS is fast.
       However, a DNS existance check only reveals if a domain name is
       registered and active and does not reveal if a domain name is
       registered and inactive.  There are many administrative reasons
       why a domain name may be inactive.  Today, there are over 2
       million in registered but inactive domains in .com.
   2.  EPP - This method of checking can indicate the state where a
       domain is registered but not active.  However, EPP is a
       registrar-to-registry protocol and is not generally available to
       the public.  EPP environments are often tuned specifically for
       registrar-to-registry communications with long-lived connections,
       strong encryption and authentication, fixed sets of channels, and
       other parameters that do not make it ideal for use by
       non-registrars.
   3.  Nicname/Whois - This protocol was created before the advent of
       DNS and consequently does not fulfill many of the needs for a
       general domain-name information service much less a domain
       availability service.  Its defeciencies are well documented and
       the basis for the [19] work.
   4.  DREG - The IRIS Domain Registry is a product of the [19] working
       group, and it solves many of the deficiencies in the Nicname/
       Whois protocol and is well positioned to serve as a general
       domain registration information service for the general public.

   This document describes a lightweight service for checking the
   availability of domain names.  This service is based on the IRIS
   framework and uses the data model defined by DREG.  By doing this,
   the domain availability service has the advantages provided by IRIS
   and DREG, such as well-known methods for server navigation,
   structured queries and results, and layered extensibility.

   The use of IRIS for this service also allows seemless integration
   between the domain availability service and the service provided by
   DREG.  This allows a user to find the availability status of domain
   and reference the full registration information in DREG.

   The data model in this service (called a registry schema in IRIS
   terms) is a strict subset of the DREG data model.  This enables
   implementors to directly reuse DREG code paths and allows operators
   to deploy the service in either the same server processes as a DREG
   service (same host and port) or in a different server process
   (different port) or machine (different host).



Newton                  Expires February 7, 2005                [Page 3]

Internet-Draft                 iris-dchk                     August 2004


   As an example, an operator may wish to deploy both types of service
   on the same set of machines.  As time goes on, the operator may then
   decide to segregate the services, placing the domain availability
   service on one set of machines and the DREG service on a separate set
   of machines with a stricter set of controls.  Either deployment
   scenario is transparent to the end user and always appear to be
   seemlessly complementary.

   This domain availability service is lightweight because it defines a
   UDP transport.  Using S-NAPTR, IRIS has the ability to define the use
   of multiple transports for different types of registry services, all
   at the descretion of the server operator.  The UDP transport defined
   in this document is completely modular and may be used by other
   registry types.  An earlier version of it was previously described in
   draft-newton-iris-lightweight-01.xml.




































Newton                  Expires February 7, 2005                [Page 4]

Internet-Draft                 iris-dchk                     August 2004


2.  Document Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC2119 [12].














































Newton                  Expires February 7, 2005                [Page 5]

Internet-Draft                 iris-dchk                     August 2004


3.  DCHK Registry

   The data model used for the domain availability check (DCHK) service
   is a strict subset of the DREG data model.  This section describes
   the DCHK registry type.  See [5].

3.1  Schema Description

   References to XML elements with no namespace qualifier are from the
   schema defined in Section 3.2.  References to elements and attributes
   with the "iris" XML namespace qualifier are from the schema defined
   in IRIS [5].

   The descriptions contained within this section refer to XML elements
   and attributes and their relation to the exchange of data within the
   protocol.  These descriptions also contain specifications outside the
   scope of the formal XML syntax.  Therefore, this section will use
   terms defined by RFC 2119 [12] to describe the specification outside
   the scope of the formal XML syntax.  While reading this section,
   please reference Section 3.2 for needed details on the formal XML
   syntax.

3.1.1  The <domain> Result

   An example of a <domain> result:

   <domain
     authority="iana.org" registryType="dchk1"
     entityClass="domain-name" entityName="example.com">
     <domainName>example.com</domainName>
     <status><activeAndAssigned/></status>
   </domain>

   The <domain> result represents an instance of a domain assignment.
   The children of the <domain> element are as follows:
   o  <domainName> - the full name of the domain as it is in DNS.  The
      contents of this element MUST be a domain name as specified by RFC
      1035 [11].
   o  <idn> - the name of the domain in nameprep form if applicable.
      See RFC  3491 [17].
   o  <status> - may contain at least one of the following elements of
      type 'domainStatusType' (see Section 3.1.1.1), but none of these
      elements may appear more than once.
      *  <reservedDelegation> - permanently inactive
      *  <assignedAndActive> - normal state
      *  <assignedAndInactive> - registration assigned but delegation
         inactive




Newton                  Expires February 7, 2005                [Page 6]

Internet-Draft                 iris-dchk                     August 2004


      *  <assignedAndOnHold> - dispute
      *  <revoked> - database purge pending
      *  <transferPending> - change of authority pending
      *  <registryLock> - on hold by registry
      *  <registrarLock> - on hold by registrar
   o  <domainVariant> - contains an entity reference, the referent of
      which MUST be a <domain> (Section 3.1.1).
   o  <registrationReference> - an element containing an entity
      reference, the referent of which MUST be a <domain> (Section
      3.1.1).  The intention of this element is to point to the
      downstream registration reference.  Therefore, if this is a result
      given back by a domain registry, it should point to the domain in
      the domain registrar or registrant service.
   o  <iris:seeAlso> - an element containing an entity reference
      specifying a referent that is indirectly associated with this
      domain.

3.1.1.1  Domain Status Type

   Each element that is of the 'domainStatusType' may have an optional
   <appliedDate> element and one or more <description> elements, the
   text contents of which may be used to describe the status in natural
   language.  Each <description> element must have a 'language'
   attribute describing the language of the description element.

3.1.2  Support for <iris:lookupEntity>

   The following types of entity classes are recognized by the
   <lookupEntity> query of IRIS for this registry:
   o  domain-name - the fully qualified name of a domain.  This a domain
      name as specified by RFC 1035 [11].  Yields a <domain> (Section
      3.1.1) in the response.
   o  idn - the fully qualified name of a domain in nameprep form (see
      RFC 3491 [17]).  Yields a <domain> (Section 3.1.1) in the
      response.

3.2  DCHK Formal XML Syntax

   This registry schema is specified in the XML Schema notation.  The
   formal syntax presented here is a complete schema representation
   suitable for automated validation of an XML instance when combined
   with the formal schema syntax of IRIS.


   <?xml version="1.0"?>
   <schema xmlns="http://www.w3.org/2001/XMLSchema"
     xmlns:dchk="urn:ietf:params:xml:ns:dchk1"
     xmlns:iris="urn:ietf:params:xml:ns:iris1"



Newton                  Expires February 7, 2005                [Page 7]

Internet-Draft                 iris-dchk                     August 2004


     targetNamespace="urn:ietf:params:xml:ns:dchk1"
     elementFormDefault="qualified" >

     <import namespace="urn:ietf:params:xml:ns:iris1" />

     <annotation>
       <documentation>
         Domain availability check schema
         derived from IRIS schema
       </documentation>
     </annotation>

     <!-- ========================================= -->
     <!--                                           -->
     <!-- Result Types                              -->
     <!--                                           -->
     <!-- ========================================= -->

     <!--                                           -->
     <!-- Domain                                    -->
     <!--                                           -->

     <complexType
       name="domainType">
       <complexContent>
         <extension
           base="iris:resultType">
           <sequence>
             <element
               name="domainName"
               type="token" />
             <element
               name="idn"
               type="token"
               minOccurs="0"
               maxOccurs="1" />
             <element
               name="status"
               minOccurs="0"
               maxOccurs="1">
               <complexType>
                 <all>
                   <element
                     name="reservedDelegation"
                     minOccurs="0"
                     maxOccurs="1"
                     type="dchk:domainStatusType" />
                   <element



Newton                  Expires February 7, 2005                [Page 8]

Internet-Draft                 iris-dchk                     August 2004


                     name="assignedAndActive"
                     minOccurs="0"
                     maxOccurs="1"
                     type="dchk:domainStatusType" />
                   <element
                     name="assignedAndInactive"
                     minOccurs="0"
                     maxOccurs="1"
                     type="dchk:domainStatusType" />
                   <element
                     name="assignedAndOnHold"
                     minOccurs="0"
                     maxOccurs="1"
                     type="dchk:domainStatusType" />
                   <element
                     name="revoked"
                     minOccurs="0"
                     maxOccurs="1"
                     type="dchk:domainStatusType" />
                   <element
                     name="transferPending"
                     minOccurs="0"
                     maxOccurs="1"
                     type="dchk:domainStatusType" />
                   <element
                     name="registryLock"
                     minOccurs="0"
                     maxOccurs="1"
                     type="dchk:domainStatusType" />
                   <element
                     name="registrarLock"
                     minOccurs="0"
                     maxOccurs="1"
                     type="dchk:domainStatusType" />
                   <element
                     name="other"
                     minOccurs="0"
                     maxOccurs="1"
                     type="dchk:domainStatusType" />
                 </all>
               </complexType>
             </element>
             <element
               name="domainVariant"
               type="iris:entityType"
               minOccurs="0"
               maxOccurs="unbounded" />
             <element



Newton                  Expires February 7, 2005                [Page 9]

Internet-Draft                 iris-dchk                     August 2004


               name="registrationReference"
               type="iris:entityType"
               minOccurs="0"
               maxOccurs="1" />
             <element
               ref="iris:seeAlso"
               minOccurs="0"
               maxOccurs="unbounded" />
           </sequence>
         </extension>
       </complexContent>
     </complexType>

     <element
       name="domain"
       type="dchk:domainType"
       substitutionGroup="iris:result" />

     <complexType
       name="domainStatusType">
       <sequence>
         <element
           name="appliedDate"
           type="dateTime"
           minOccurs="0"
           maxOccurs="1" />
         <element
           name="description"
           minOccurs="0"
           maxOccurs="unbounded">
           <complexType>
             <simpleContent>
               <extension
                 base="string">
                 <attribute
                   name="language"
                   type="language"
                   use="required" />
               </extension>
             </simpleContent>
           </complexType>
         </element>
       </sequence>
       <attribute
         name="scope"
         type="string" />
     </complexType>




Newton                  Expires February 7, 2005               [Page 10]

Internet-Draft                 iris-dchk                     August 2004


   </schema>

                           Figure 2: dchk.xsd


3.3  BEEP Transport Compliance

   Though this document defines a UDP transport for use with DCHK, it is
   still possible to use DCHK with the [8] transport.  The use of this
   transport is completely at the descretion of the server operator.

   IRIS allows several extensions of the core capabilities.  This
   section outlines those extensions allowable by IRIS-BEEP [8].

3.3.1  Message Pattern

   This registry type uses the default message pattern as described in
   IRIS-BEEP [8].

3.3.2  Server Authentication

   This registry type uses the default server authentication method as
   described in IRIS-BEEP [8].

3.4  URI Resolution

3.4.1  Application Service Label

   The application service label associated with this registry type MUST
   be "DCHK1".  This is the abbreviated form of the URN for this
   registry type, urn:ietf:params:xml:ns:dchk1.

3.4.2  Bottom-Up Resolution

   The bottom-up alternative resolution method MUST be identified as
   'bottom' in IRIS URI's.

   The process for this resolution method differs from the
   direct-resolution method if the authority is only a domain name (i.e.
   without the port number).  The process for this condition is as
   follows:
   1.  The IRIS [5] direct resolution process is tried on the domain
       name (e.g.  "example.com" ).
   2.  If the direct resolution process yields no server for which a
       connection can be made, then the leftmost label of the domain
       name is removed, and the first step is repeated again (e.g.
       "com" ).




Newton                  Expires February 7, 2005               [Page 11]

Internet-Draft                 iris-dchk                     August 2004


   3.  If all the labels of the domain name are removed and no server
       connections have been made, then the DNS is queried for the
       address records corresponding to the original domain name and the
       port used is the well-known port for the default protocol of
       IRIS.

3.4.3  Top-Down Resolution

   The top-down alternative resolution method MUST be identified as
   'top' in IRIS URI's.

   The process for this resolution method differs from the
   direct-resolution method if the authority is only a domain name (i.e.
   without the port number).  The process for this condition is as
   follows:
   1.  The domain name is reduced to its rightmost label.  This is
       always '.'.
   2.  The IRIS [5] direct resolution process is tried on the domain
       name.
   3.  If the direct resolution process yields no server for which a
       connection can be made, then the original label to the left of
       the rightmost label of the domain name is prepended, and the
       second step is repeated again (e.g.  if "." then "com", if "com"
       then "example.com").
   4.  If all the labels of the original domain are present and no
       server connections have been made, then the DNS is queried for
       the address records corresponding to the original domain name and
       the port used is the well-known port for the default protocol of
       IRIS.






















Newton                  Expires February 7, 2005               [Page 12]

Internet-Draft                 iris-dchk                     August 2004


4.  UDP Transport

   To be fast, the domain availability service may use the UDP transport
   defined in this section.  The binding of this UDP transport to IRIS
   is called IRIS-LWZ (for IRIS Lightweight using Compression).  This
   transport may be used with other registry types defined for IRIS,
   such as DREG.

   IRIS-LWZ is composed of two parts, a 1 byte payload header and an XML
   request/response transaction payload.  The XML request/response
   transaction payload may be compressed using the DEFLATE algorithm.

4.1  Use of IRIS-LWZ

4.1.1  IRIS-LWZ Packet Formats

   The UDP packet format for IRIS-LWZ is as follows:

   0            8       16                   31
   +--------------------+--------------------+
   |    Src Port        |    Dst Port        |
   +--------------------+--------------------+
   |   Checksum         |    Length          |
   +--------------------+--------------------+
   | LWZ-HEADER |                            |
   +------------+                            |
   |       Data:  XML instance               |
   |           compliant with IRIS-LWZ       |
   |           schema defined above          |
   +-----------------------------------------+

   Each IRIS-LWZ query and response is contained in a single UDP packet.
   If no length information is contained in the IRIS-LWZ query, servers
   should assume a packet size limitation of 512 bytes.

   Each bit in the 1 byte payload header has the following meaning:
      bit 7 - version -  if 0, the protocol is the version defined in
      this document.  If 1, the rest of the bits in the header and the
      payload may be interpreted as another version.
      bit 6 - payload is deflate compressed - if 1, the payload is
      compressed using DEFLATE.
      bits 5 through 3 - reserved
      bit 2 - deflate not supported - if 1, do not respond with a
      payload compressed using DEFLATE.
      bit 1 - reserved
      bit 0 - protocol error - meaning that there was something not
      understood in the payload (e.g.  a version mis-match, malformed
      XML, etc...).



Newton                  Expires February 7, 2005               [Page 13]

Internet-Draft                 iris-dchk                     August 2004


4.1.2  IRIS-LWZ Transactions

4.1.2.1  Client behaviour

   To initiate an IRIS-LWZ query, a client sends a UDP datagram to the
   identified IRIS-LWZ port on the destination server.

   The client then waits for a reply from the server on the same port
   from which it sent the query packet.  The timeout waiting for a reply
   is at the discretion of the client.

   As an example, the client may send the following XML to the server:

   <request
     xmlns="urn:ietf:params:xml:ns:iris-lwz"
     serverName="com" length="1280">

     <request xmlns="urn:ietf:params:xml:ns:iris1">

       <searchSet>
         <lookupEntity
           registryType="dreg1"
           entityClass="contact-handle"
           entityName="mak21" />
       </searchSet>

     </request>

   </request>


4.1.2.2  Server behaviour

   Upon receipt of an IRIS-LWZ query, the server will apply DEFLATE
   decompression to the payload if appropriate, carry out whatever
   processing is appropriate, create a valid IRIS-LWZ XML response
   instance to the query, and apply DEFLATE to that instance if
   necessary and appropriate.  If the resulting size is greater than the
   maximum size provided in the query (or 512 bytes if no maximum size
   was provided), the server will respond with a IRIS-LWZ XML indicating
   the response was too large.  The response is sent as a UDP datagram
   to the source address and port of the original query.

   The server's responsibility for addressing a query ends with the
   transmission of the UDP response datagram.






Newton                  Expires February 7, 2005               [Page 14]

Internet-Draft                 iris-dchk                     August 2004


4.2  IRIS-LWZ Operations

   The XML in the following sections is descriptive of the formal XML
   syntax described in Section 4.3.

   For each request type, there is one or more response types.  The
   following shows a brief summary:
   o  <getProfiles>
      *  <profiles>
   o  <request>
      *  an IRIS response.
      *  <error> containing <profiles>
      *  <error> containing <length>

4.2.1  Requests

   IRIS-LWZ requests use the formal syntax specified in Section 4.3.
   There are two types of IRIS-LWZ requests:
   o  a profile request
   o  an IRIS query request

   The profile request simply uses the <getProfiles> element.

   <getProfiles
     xmlns="urn:ietf:params:xml:ns:iris-lwz" />

   An IRIS request is wrapped in an <request> element.  This element has
   an OPTIONAL 'length' attribute containing a positive integer.  This
   attribute indicates the allowable length of the response in bytes.
   It allows clients that have an understanding of their UDP path to
   specify how long the response should be.  Clients that do not care
   about UDP fragmentation may set this number arbitrarily high.  If
   this attribute is not present, servers MUST assume a length of 512
   bytes.

   The following is an example of an IRIS request with a query in the
   'dchk1' registry-type.














Newton                  Expires February 7, 2005               [Page 15]

Internet-Draft                 iris-dchk                     August 2004


   <request
     xmlns="urn:ietf:params:xml:ns:iris-lwz"
     serverName="com" length="1280">

     <request xmlns="urn:ietf:params:xml:ns:iris1">

       <searchSet>
         <lookupEntity
           registryType="dchk1"
           entityClass="domain-name"
           entityName="example.com" />

       </searchSet>

     </request>

   </request>


4.2.2  Responses

   The IRIS-LWZ responses come in two flavors:
   o  a <profiles> response
   o  a <response> response

   The <profiles> response MUST be returned by the server when a client
   issues a <getProfiles> request.  The <profiles> element contains
   <profile> children.  Each <profile> child element contains an IRIS
   profile as defined by IRIS-BEEP [8].

   The following is an example of a <profiles> response.

   <profiles
     xmlns="urn:ietf:params:xml:ns:iris-lwz" >
     <profile>
       http://iana.org/beep/iris1/dchk1
     </profile>
   </profiles>

   The <response> response MUST be sent by the server to the client in
   reply to an <request>.  It contains one of three types of content:
   o  an IRIS result response
   o  an error indicating the IRIS request was for an unsupported
      profile.
   o  an error indicating the IRIS response was too large to send.

   An <response> containing an IRIS response simply contains the IRIS
   response to the appropriate IRIS request.  The following is an



Newton                  Expires February 7, 2005               [Page 16]

Internet-Draft                 iris-dchk                     August 2004


   example of 'dchk1' IRIS response.

   <response
     xmlns="urn:ietf:params:xml:ns:iris-lwz">

     <response xmlns="urn:ietf:params:xml:ns:iris1">

       <resultSet>
         <domain
           xmlns="urn:ietf:params:xml:ns:dchk1">
           <domainName>example.com</domainName>
           <status>
             <activeAndOnHold/>
         </domain>
       </resultSet>

     </response>

   </response>

   When a client makes an IRIS request for a profile that is not
   supported by the server, the server MUST return an <response>
   indicating that an error has occured.  This is done with the <error>
   child element.  To signal this condition, the <error> element MUST
   contain the <profiles> element.  Here is an example:

   <response
     xmlns="urn:ietf:params:xml:ns:iris-lwz" >

     <error>
       <profiles>
         <profile>
           http://iana.org/beep/iris1/dchk1
         </profile>
       </profiles>
     </error>

   </response>

   When a client makes an IRIS request that yields a response too large
   to fit in the negotiated UDP packet, the server MUST respond with an
   <response> indicating that a size error has occured.  This is done
   with the <error> child element.  To signal this condition, the
   <error> element MUST contain a <length> element.  The content of the
   <length> element is a positive integer stating the size of the IRIS
   response.

   Upon receiving this error, a client has the following options:



Newton                  Expires February 7, 2005               [Page 17]

Internet-Draft                 iris-dchk                     August 2004


   o  Requery over IRIS-BEEP.
   o  Requery over IRIS-LWZ using a larger 'length' indicator.
   o  Signal an error to the user.

   The following is an example of a length error:

   <response
     xmlns="urn:ietf:params:xml:ns:iris-lwz" >

     <error>
       <length>2652</length>
     </error>

   </response>


4.3  Formal XML Syntax

   The following is the XML Schema used to define IRIS-LWZ operations.

   <?xml version="1.0"?>
   <schema xmlns="http://www.w3.org/2001/XMLSchema"
           xmlns:irislwz="urn:ietf:params:xml:ns:iris-lwz"
           xmlns:iris="urn:ietf:params:xml:ns:iris1"
           targetNamespace="urn:ietf:params:xml:ns:iris-lwz"
           elementFormDefault="qualified" >

     <import namespace="urn:ietf:params:xml:ns:iris1" />

     <annotation>
       <documentation>
         Lightweight (LWZ) Transport for
         Internet Registry Information Service (IRIS)
         Schema v1
       </documentation>
     </annotation>

     <element name="getProfiles">
       <complexType>
       </complexType>
     </element>

     <element name="profiles">
       <complexType>
         <sequence>
           <element name="profile" type="anyURI"/>
         </sequence>
       </complexType>



Newton                  Expires February 7, 2005               [Page 18]

Internet-Draft                 iris-dchk                     August 2004


     </element>

     <element name="request">
       <complexType>
         <sequence>
           <element ref="iris:request" />
         </sequence>
         <attribute name="length" type="positiveInteger" />
         <attribute name="serverName" type="string"
           use="required" />
       </complexType>
     </element>

     <element name="response">
       <complexType>
         <choice>
           <element name="error">
             <complexType>
               <choice>
                 <element ref="irislwz:profiles" />
                 <element name="length"  type="positiveInteger" />
                 <element name="invalidRequest" type="string" />
                 <element name="systemError" type="string" />
               </choice>
             </complexType>
           </element>
           <element ref="iris:response" />
         </choice>
       </complexType>
     </element>

   </schema>


4.4  IRIS Transport Mapping Definitions

   This section lists the definitions required by IRIS [5] for transport
   mappings.

4.4.1  URI Scheme

   The URI scheme name specific to this transport MUST be "iris.lwz".

4.4.2  Application Protocol Label

   The application protocol label MUST be "iris.lwz".





Newton                  Expires February 7, 2005               [Page 19]

Internet-Draft                 iris-dchk                     August 2004


4.5  Registrations

4.5.1  URI Scheme Registration

   URL scheme name: iris.lwz

   URL scheme syntax: defined in Section 4.4.1 and [5].

   Character encoding considerations: as defined in RFC2396 [6].

   Intended usage: identifies an IRIS entity made available using
   compressed XML over UDP

   Applications using this scheme: defined in IRIS [5].

   Interoperability considerations: n/a

   Security Considerations: defined in Section 7.

   Relevant Publications: IRIS [5].

   Contact Information: Andrew Newton <andy@hxr.us>

   Author/Change controller: the IESG

4.5.2  Well-known UDP Port Registration

   Protocol Number: UDP

   Message Formats, Types, Opcodes, and Sequences: defined in Section
   4.1.1 and Section 4.2.

   Functions: defined in IRIS [5].

   Use of Broadcast/Multicast: none

   Proposed Name: IRIS over LWZ

   Short name: iris.lwz

   Contact Information: Andrew Newton <andy@hxr.us>

4.5.3  NAPSTR Registration

   Application Protocol Label: iris.lwz

   Intended usage: identifies an IRIS server using compressed XML over
   UDP



Newton                  Expires February 7, 2005               [Page 20]

Internet-Draft                 iris-dchk                     August 2004


   Interoperability considerations: n/a

   Security Considerations: defined in Section 7.

   Relevant Publications: IRIS [5].

   Contact Information: Andrew Newton <andy@hxr.us>

   Author/Change controller: the IESG










































Newton                  Expires February 7, 2005               [Page 21]

Internet-Draft                 iris-dchk                     August 2004


5.  Internationalization Considerations

   Implementers should be aware of considerations for
   internationalization in IRIS [5].

   This document specifies the lookup of domain names, both the
   traditional ASCII form and the IDN form.  In addition, the social
   data associated with contacts may also be non-ASCII, and could
   contain virtually any Unicode character.  The <language> element is
   provided in queries that have potential to traverse such data.
   Clients should use these elements to indicate to the server of the
   target languages desired, and servers should use these elements to
   better enable normalization and search processes (see [20]).

   Clients needing to localize the data tags in this protocol should
   take note that localization is only needed on the names of XML
   elements and attributes with the exception of elements containing
   date and time information.  The schema for this registry has been
   designed so that clients need not interpret the content of elements
   or attributes for localization, other than those elements containing
   date and time information.

   Clients should also make use of the <language> elements provided in
   many of the results.  Results containing data that may be in Unicode
   are accompanied by these elements in order to aid better presentation
   of the data to the user.

   The "dateTimePrivacyType" element type contains the XML Schema [3]
   data type "dateTime".  The contents of this element MUST be specified
   using the 'Z' indicator for Coordinated Universal Time (UTC).





















Newton                  Expires February 7, 2005               [Page 22]

Internet-Draft                 iris-dchk                     August 2004


6.  IANA Considerations

6.1  XML Namespace URN Registration

   This document makes use of a proposed XML namespace and schema
   registry specified in XML_URN [18].  Accordingly, the following
   registration information is provided for the IANA:
   o  URN/URI:
      *  urn:ietf:params:xml:ns:dchk1
   o  Contact:
      *  Andrew  Newton <andy@hxr.us>
   o  XML:
      *  The XML Schema specified in Section 3.2

6.2  S-NAPTR Registration

   The following S-NAPTR application service label will need to be
   registered with IANA according to the IANA considerations defined in
   IRIS [5]:
      DCHK1

6.3  BEEP Registration

   The following BEEP Profile URI is to be registeried with IANA, in
   addition to the registration provided in IRIS-BEEP [8].

      http://iana.org/beep/iris1/dchk1
























Newton                  Expires February 7, 2005               [Page 23]

Internet-Draft                 iris-dchk                     August 2004


7.  Security Considerations

   IRIS-LWZ is intended for serving public data; it provides no in-band
   mechanisms for authentication or encryption.  Any application that
   needs that must provide out of band mechanisms to provide it (e.g.,
   IPSec), or use the IRIS protocol with an application transport that
   provides such capabilities (e.g.  BEEP [7].












































Newton                  Expires February 7, 2005               [Page 24]

Internet-Draft                 iris-dchk                     August 2004


8.  References

8.1  Normative References

   [1]   World Wide Web  Consortium, "Extensible Markup Language (XML)
         1.0", W3C XML, February 1998,
         <http://www.w3.org/TR/1998/REC-xml-19980210>.

   [2]   World Wide Web  Consortium, "Namespaces in XML", W3C XML
         Namespaces, January 1999,
         <http://www.w3.org/TR/1999/REC-xml-names-19990114>.

   [3]   World Wide Web  Consortium, "XML Schema Part 2: Datatypes", W3C
         XML Schema, October 2000,
         <http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/>.

   [4]   World Wide Web  Consortium, "XML Schema Part 1: Structures",
         W3C XML Schema, October 2000,
         <http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/>.

   [5]   Newton, A. and M. Sanz, "Internet Registry Information
         Service", draft-ietf-crisp-iris-core-05 (work in progress),
         January 2004.

   [6]   Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform
         Resource Identifiers (URI): Generic Syntax", RFC 2396, August
         1998.

   [7]   Rose, M., "The Blocks Extensible Exchange Protocol Core", RFC
         3080, March 2001.

   [8]   Newton, A. and M. Sanz, "Internet Registry Information Service
         (IRIS) over  Blocks Extensible Exchange Protocol (BEEP)",
         draft-ietf-crisp-iris-beep-05 (work in progress), January 2004.

   [9]   Hinden, R. and S. Deering, "Internet Protocol Version 6 (IPv6)
         Addressing  Architecture", RFC 3513, April 2003.

   [10]  Postel, J., "Internet Protocol", STD 5, RFC 791, September
         1981.

   [11]  Mockapetris, P., "Domain names - implementation and
         specification", STD 13, RFC 1035, November 1987.

   [12]  Bradner, S., "Key words for use in RFCs to  Indicate
         Requirement Levels", RFC 2119, BCP 14, March 1997.

   [13]  International Organization for  Standardization, "Codes for the



Newton                  Expires February 7, 2005               [Page 25]

Internet-Draft                 iris-dchk                     August 2004


         representation of names of countries,  3rd edition", ISO
         Standard 3166, August 1988.

   [14]  Braden, R., "Requirements for Internet Hosts - Application and
         Support", STD 3, RFC 1123, October 1989.

   [15]  International Telecommunications  Union, "The International
         Public Telecommunication Numbering  Plan", ITU-T Recommendation
         E.164, 1991.

   [16]  Faltstrom, P., Hoffman, P. and A. Costello, "Internationalizing
         Domain Names in Applications  (IDNA)", RFC 3490, March 2003.

   [17]  Hoffman, P. and M. Blanchet, "Nameprep: A Stringprep Profile
         for Internationalized  Domain Names (IDN)", RFC 3491, March
         2003.

   [18]  Mealling, M., "The IETF XML Registry",
         draft-mealling-iana-xmlns-registry-03 (work in progress),
         November 2001.

8.2  Informative References

   [19]  Newton, A., "Cross Registry Internet Service Protocol (CRISP)
         Requirements", RFC 3707, February 2004.


























Newton                  Expires February 7, 2005               [Page 26]

Internet-Draft                 iris-dchk                     August 2004


URIs

   [20]  <http://www.unicode.org/reports/tr15/>


Author's Address

   Andrew L. Newton
   VeriSign, Inc.
   21345 Ridgetop Circle
   Sterling, VA  20166
   USA

   Phone: +1 703 948 3382
   EMail: anewton@verisignlabs.com; andy@hxr.us
   URI:   http://www.verisignlabs.com/



































Newton                  Expires February 7, 2005               [Page 27]

Internet-Draft                 iris-dchk                     August 2004


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Copyright Statement

   Copyright (C) The Internet Society (2004).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Newton                  Expires February 7, 2005               [Page 28]


Html markup produced by rfcmarkup 1.109, available from https://tools.ietf.org/tools/rfcmarkup/