Usenet News servers keep their data bases up to date by transferring what is new between neighbouring servers. Which mechanisms do they use to avoid downloading the same article twice from two different neighbouring servers?
There are two basic methods for this:
PULL: Where the server to be updated connects to other servers to ask for new articles. With this method, the NEWNEWS (2) NNTP command can be used.
SUCK: Where the server which has new articles connect to other servers and gives them the new articles. In this case, the IHAVE (2) NNTP command can be used.
In reality, PUSH is more common than SUCK, because it is more efficient.
With both NEWNEWS and IHAVE, a list of the Message-Ids (2) of new articles is first transferred, and the receiving server can check which of these articles it already has.
In additon to NNTP, also other bulk transfer protocols as well as ordinary e-mail is sometimes used for PUSH transmission of news.
In addition to the Message-ID, other tools are also used to avoid sending an article to a server which already has it. If it is known that the receiving server has received everything up to a certain date-time, articles arriving at the sending server before this date-time can be omitted. And if the Path (2) header of an article shows that it has already been at a particular server, it need not be offered to this server again.
List of exam questions