INTERNET-DRAFT                               Charles H. Lindsey
Usenet Format Working Group                  University of Manchester
                                             July 2001

7.6. Ihave, sendme

Previous Up Next
7.6.  Ihave, sendme
   The "ihave" and "sendme" control messages implement a crude batched
   predecessor of the NNTP [NNTP] protocol. They are largely obsolete on
   the Internet, but still see use in conjunction with some transort
   protocols such as UUCP, especially for backup feeds that normally are
   active only when a primary feed path has failed. There is no
   requirement for relaying agents that do not support such transport
   protocols to implement them.

        NOTE: The ihave and sendme messages defined here have ABSOLUTELY
        NOTHING TO DO WITH NNTP, despite similarities of terminology.

   The two messages share the same syntax:

      ihave-arguments     = *( msg-id SP ) relayer-name
      sendme-arguments    = ihave-arguments
      relayer-name        = path-identity  ; see 5.6.1
      ihave-body          = *( msg-id CRLF )
      sendme-body         = ihave-body

   Msg-ids MUST appear in either the arguments or the body, but NOT
   both. Relayers SHOULD generate the form putting msg-ids in the body,
   but the other form MUST be supported for backward compatibility.

   The ihave message states that the named relaying agent has received
   articles with the specified message identifiers, which may be of
   interest to the relaying agents receiving the ihave message.  The
   sendme message requests that the agent receiving it send the articles
   having the specified message identifiers to the named relaying agent.

   These control messages are normally sent essentially as point-to-
   point messages, by using newsgroup-names in the Newsgroups header of
   the form "to." followed by one of more components in the form of a
   relayer-name (see section 5.5.1 which forbids "to" as the first
   component of a newsgroup-name). The control message SHOULD then be
   delivered ONLY to the relaying agent(s) identitifed by that relayer-
   name, and any relaying agent receiving such a message which includes
   its own relayer-name MUST NOT propagate it further. Each pair of
   relaying agent(s) sending and receiving these messages MUST be
   immediate neighbors, exchanging news directly with each other. Each
   relaying agent advertises its new arrivals to the other using ihave
   messages, and each uses sendme messages to request the articles it
   lacks.

   To reduce overhead, ihave and sendme messages SHOULD be sent
   relatively infrequently and SHOULD contain reasonable numbers of
   message IDs. If ihave and sendme are being used to implement a backup
   feed, it may be desirable to insert a delay between reception of an
   ihave and generation of a sendme, so that a slightly slow primary
   feed will not cause large numbers of articles to be requested
   unnecessarily via sendme.

Previous Up Next
Previous draft (04): 7.6. Ihave, sendme

Diffs to previous draft

--- {draft-04}	Wed Jul 11 21:56:08 2001
+++ {draft-05}	Wed Jul 11 21:56:09 2001
@@ -29,10 +29,10 @@
    having the specified message identifiers to the named relaying agent.
 
    These control messages are normally sent essentially as point-to-
-   point messages, by using newgroups-names in the Newsgroups header of
+   point messages, by using newsgroup-names in the Newsgroups header of
    the form "to." followed by one of more components in the form of a
    relayer-name (see section 5.5.1 which forbids "to" as the first
-   component of a newgroup-name). The control message SHOULD then be
+   component of a newsgroup-name). The control message SHOULD then be
    delivered ONLY to the relaying agent(s) identitifed by that relayer-
    name, and any relaying agent receiving such a message which includes
    its own relayer-name MUST NOT propagate it further. Each pair of