CHARTER & Frequently Asked Questions (FAQ)


First rule of Usenet. We do not talk about Usenet. Second rule ofÖ

In the left corner, weighing in since 1979, the king of distributed systems, I give to you Ė Usenet! An old internet relic being streamlined and rapidly changing into an unstoppable juggernaut of file-sharing. It almost feels like a Rocky Balboa comeback, and the perfect example of how the old uncool becomes the new cool.

Usenet started out as a worldwide discussion system consisting of thousands of so called newsgroups availible on a huge network of servers across the globe. Its creation actually predates the Internet. Users post whatís called articles in the various groups and can read what others have posted. Now in the old days this system was pretty much only text-based, and you may wonder how that is going to help you and your digital home in this modern day and age? Well, I told you it was rapidly changing didnít I? Today Usenet has newsgroups containing binary files (which is just a nerdy word for saying media like images, sound and video).For various technical reasons there is no point in diving into Usenet handles files in smaller sizes. Now you may have downloaded something using BitTorrent and been annoyed at how the uploader did it with 42 different .rar files each 20 MB large? This is because that file originally came from Usenet. And since youíre a bright bugger you now start to realize the file was availible first on Usenet, then later on BitTorrent.

Moving from file availability to speed, we notice another thing thatís great about Usenet. In a BitTorrent world your download speed is generally dependent on the uploaders internet speed, meaning you canít really press the petal to the metal. In Usenet weíre dealing with server farms and as such we more or less have the full power of Internet at our disposal. The limit to speed is now only your own internet connection, not your neighborís.

And then you might wonder if upload speeds doesnít affect overall speed, then you arenít really uploading anything are you? Correct observation my dear Watson. With Usenet you donít have to upload anything at all, someone else somewhere else has done that for you, so feel free to just leech away as much as you like. In addition to that most Usenet providers also offers SSL encryption on your download. Now take a moment and let this information sink in.

Not only are you not uploading, you are also downloading over a secure and encrypted connection making it impossible to tell what you are downloading. Almost every single case where somone is being sued for milllions over copyright issues it is because of sharing their media. Sharing like by using BitTorrent. With Usenet you donít have to share a thing. Do I need to re-iterate the impact of all this?

Okay so what is the drawback then? Well Usenet is a paid service, ranging from around 15 to 30 dollars a month. As to why people donít use it? Well mostly because they are cheap and plain stupid. As cool brat-nerds we donít settle for anything but the best, the fastest, the most secure aswell as the most reliable. We wholeheartedly believe in the old saying you get what you pay for. BitTorrent is free, offers none of the above and your ISP will log all your activity. Now whatís your choice?

There are a multitude of Usenet providers out there, but Iím only going to mention two. Giganews and Astraweb. These are the best ones and offers the most rentention. Retention is a Usenet term by the way, which measures how many days a file stays availible for download. Giganews has a 1000 days retention, full speed on the downloads of course. Let me ask you this, whatís the download speed on a 3 year old torrent file? Yeah, thought so. For your digital home I recommend you sign up for Giganews today. A silver subscription will likely be enough for most users.

Try or

Alright, glad youíve decided to shun BitTorrent and head over to the Usenet side then. Excellent choice. Thereís only really one question left to answer, how youíre actually going to USE Usenet with your digital home. How you connect Usenet to the various components of your digital home will be the topic of several other posts, and not this one Iím afraid. But think of it in terms like this, if the NAS is the trunk of your car Ė Usenet will be your engine. No car runs without an engine.

The Usenet is Here to Stay

Many of the modern day web heads and WEB 2.0 types have speculated that the Usenet is shrinking and wonít last; one, because the Usenet has been around a very long time and two, because there are only a select few people who possess the knowledge and expertise to use the Usenet and thus very few people use it today. While it is true that the Usenet has been around since 1979 and it is also true that Usenet users are usually geekier than most, the Usenet newsfeed and Usenet user base continues to grow and shows no signs of slowing down in the near future. Taking a look at the figures below, you will notice that the Usenet newsfeed continues to grow at an extraordinary rate of 10 terabytes of data per day. Now nearing a staggering total of nearly 900 petabytes of storage on the entire Usenet, the Usenet is clearly the behemoth content store of the internet.

Growth of the Usenet

The Good Old Days of Usenet

Today when many of us think of the Usenet, we think of massive data servers storing loads and loads of information, literally terabytes at a time of digital media and online discussions from a plethora of communities dating back years at a time. Today people share just about anything and everything that can be captured and or created in digital form on the Usenet newsgroups. The number of binary newsgroups vs. the text newsgroups has exploded as the Usenet has flourished into a live store of digital user creations from video, to music, to ebooks, to software and of course ongoing rich text based conversations and discoveries. The early days of the Usenet was quite another story altogether.

In the beginning, the Usenet was purely text based with tight knit groups and communities of people sharing their thoughts ideas and passions. The idea of storing or sharing digital creations on the Usenet seemed like a far off dream. In fact the Usenet existed for 15+ years without the binary newsgroups. Also in the early days retention was next to nothing, for example, in 1999 the best Usenet providers only had 20 days retention Ė that is a stark contrast to the 4 years + retention we enjoy today. In the good old days the newsgroups were maintained by the elitest of the elite, today there are millions of users that contribute to the Usenet.

K.O BitTorrent. Winner Ė Usenet!

Make the sensible choice and use Usenet. Just because we try to keep Usenet out of the spotlight doesnít mean you shouldnít use it. Remember the first rule of Usenet. We do not talk about Usenet.

Introduction to NNTP


In the late 70s, the protocols for use of the networks are increasing. In 1972 , the email appears, then TCP / IP a year later.  If the email is interesting for a few exchanges, the solution appears less convenient to establish discussions between multiple users.  The concept of "mailing list" is then invented to allow shipments to multiple recipients subscribers.  In 1979 , students from Duke University in North Carolina  , Tom Truscott and Jim Ellis are working on an innovation in the field: create a network that would be responsible for storing messages that could be viewed at any time.  Thus begins the story of Usenet, a contraction of "Unix User Network."  Assisted by other students, they make a network between their university and University of North Carolina

  A protocol is specifically developed to manage the dissemination of news: UUCP .  The new network is spreading rapidly through 'of ARPANET and other types of connections ( BBS , Fidonet , X.25 , etc..).  In 1984 , the number of UUCP servers amounts to more than 900, but before such a success, changes must be considered.  One of the most important is the transition to TCP / IP which links to the Internet.  In addition, UUCP is a gulf in resources each server sends a new message to another server without checking whether it already has.  Servers and burdened by unnecessary messages that saturate the network.  With the expansion of Usenet mass messages quickly becomes unmanageable.

The UUCP is then abandoned in favor of (NNTP Networks News Transfer Protocol), presented in February 1986 by Brian Kantor and Phil Lapsley in RFC-977 (then updated C.Feather in RFC 3977 in October 2006 ) . NNTP solves this problem by introducing the notion of interaction between servers. A server may request a list of groups and items from another server and retrieve the desired messages. The network can also be split between large and small servers, the latter occupying such a narrower list of groups acting as cache.

Several universities, including Berkeley working on server-side applications in trying to optimize the management of messages and the system is redesigned for the structure we know today. Usenet is a showcase of choice, important announcements are made and groups on a variety of subjects ranging from the trivial to the sulfur (, cult groups, etc.). Spread. On 6 August 1991, Tim Berners-Lee announces alt.hypertext in the creation of the "WorldWideWeb project." In the scheme of things, the spam makes its appearance from 1994 . Authorship of spam on Usenet Clarence Thomas is credited with the message "Global Alert For All: Jesus is Coming Soon" (17 January 1994). It will be followed shortly by a spam on the Armenian genocide and the first real commercial spam on Usenet orchestrated by two American lawyers.

general operating scheme:

Diagram usenet.jpg

Overview NNTP

  The NNTP protocol is based on a sequence of commands and responses in ASCII as SMTP .  Communications are usually via port 119 on the server.  The answers returned by a server are divided into two categories in RFC: answers "text" and answers "states" in the form of numbers.  Indications of whether states allow a command sent by the client was correctly processed by the server.  Parameters can be attached to the ID of the server status.  A degree of freedom is provided through debugging messages.  A successful command returns a code of 2xx type (eg, 211 for the GROUP command).  The 4xx and 5xx codes are error messages. 

Additional instructions to the standard RFC-977 (especially brought by RFC-3977):

  • ARTICLE <ID>: retrieves the header and body of the message identified by ID, this ID takes the form of a standard email address, for example <>
  • ARTICLE <no.>: as before, except that a number assigned by using a simple for each newsgroup counter
  • HEAD or BODY: same syntax as ARTICLE unless they can isolate the header or body of the message
  • LIST: provides the list of groups available on the server with information about the number of messages and the interval of message numbers
  • GROUP <id>: Select the desired group discussion, such as "sci.crypt", the command returns "211" (if successful) track the number of items in the group and the indices of the first and Article.
  • IHAVE <id>: informs the server that we are in possession of the message with the specified identifier.
  • LAST: provides the last item stored by the server
  • NEXT: sets the internal record pointer to the next item
  • HELP: Invites the server to send a text containing a list of available commands
  • SLAVE: tells the server that does not communicate with an end user but with a server
  • STAT: Place the internal record pointer on the definite article
  • NEWGROUPS date time [GMT] provides new developments since the date specified groups, the GMT indication to indicate whether the time is given as a function of the server or of the Greenwich meridian . (Date format: YYMMDD Time: HHMMSS)
  • NEWNEWS group date time [GMT] is the same as the previous command for posts after the specified date, the "groups" field accepts wildcards and multiple choices such as or "net * linux.." still 'net. *! net.unix. * "accepts all net except those ending in unix *.
  • POST: Send a message. .
  • QUIT: stops the connection

With a client Telnet , it is possible to experiment with these commands. Here is an example session on a read-only server but open access:

In addition to these commands comply with RFC-977, some commands have been added over time to fill some gaps in the original protocol:

  • XGTITLE: provide the name of a group of newsgroups
  • XHDR: Returns the value of a city from the header field of a single message or all messages
  • X-OVER: Reclaim the transmission of a file to preview the current message
  • AUTHINFO: allows the client to register with the server with a user name and a password.
  • DATE: the date questions on the current server
  • LISTGROUP: message numbers available within a newsgroup list.
  • MODE: You can switch between the "Transit" mode and "Drive"

Simple example of Dialogue NNTP for post an article by a client:

  [C] POST (1)

[C]: Client [S]: Server

(1) The client sends the Post command to notify the server of a product shipment.

(2) The server responds to the client is ready to receive the elements of the article and post the client specifies the control end of the message.

(3) The customer is sending the message singly each field (mandatory or optional) constituent of the article.

(4) The sending server status message confirming the success of the inclusion of Article

 $ Telnet 119,201 NNRP Service Ready - (no posting).   

(... Long list ... the first number is the index of the last message, the second number is the index of the second message, the flag y / n / m indicates whether the writing on the group is allowed prohibited or under restraint)

 GROUP sci.crypt

(211 = OK, we have 18749 posts in sci.crypt group, the first is the index 240359 and the last 259107)

 ARTICLE 258000

(Returns the header and the body of the message)

 BODY <1123545560.959696.302110 @>

(Returns the content and header of a message that can be safely described as spam)


(Returns a list of commands)

 IHAVE 123456789

(The server is read-only and do not wish to receive messages)

 NEWNEWS. * Linux 050926 101010

(Long list, all posts in the determinants groups. Linux after September 26, 2005 at 10:10)

nb. does not seem to work with the server example (December 2005)

The format of messages on USENET

  Initially described in RFC 850 , the message format was updated in RFC 1036 .  Several formats have rubbed shoulders but to our knowledge, all posts are now formatted according to the principles used for email.

So the inevitable has a message fields "From", "Subject", etc.. The headers can be examined by most customers as Thunderbird or via Telnet through the HEAD command (see the example of session). In Thunderbird, displaying the entire message, you can see the different fields in a message. It contains various information such as the client used to send the mailing date, the name and the type of server, etc..

The most interesting point of view NNTP are the "Message-ID" field, the "Path" field and especially "References." The identifier is in the form of an email address, it is unique with random content. In general, there are relatively few intermediaries.

The "References" field sums up the history of a message to determine its position in the tree of a "thread" (discussion). Figure 1 shows how the "References" field evolves according to the hierarchy of the message from right to left in the field, we find the ID of the parent message, and the message grandparent and so on until arriving at the first post of the thread in question. It is possible to view messages in a tree structure as in Thunderbird analyzing IDs and asking the server to send the appropriate messages.

Figure 1 - Hierarchy of messages

Implementation with Python

Python has a library named nntplib that handles NNTP commands.

After importing nntplib, an instance is constructed via nntplib.NNTP (server_name), the connection is automatically started. We will not fail to include the various function calls in blocks try / except to handle errors and other exceptions. The "group" method allows you to specify the desired group.

You can then initiate a recovery message with the method "article" the number of the desired item. As a tree is a little more complicated, it is necessary to analyze the "References" box and make calls to "article" with the desired password, we intentionally left out this feature.

To post messages, the process is a little more complex because it must respect the fields indicated in the specification ( RFC 1036 ), the "post" method NNTP class then sends the message. To this end, several test groups exist if you want to try to schedule a sending function (alt.test, de.test, it.test, etc..). For sending, it is best to connect to the news server of his service provider rather than a free server, the manufacturer of the NNTP class allows you to specify the password and user name.

Complete example

# -*- coding: utf-8      -*-
import nntplib, sys

nomServeur = ''
nomGroupe = 'sci.crypt'

# connexion au serveur
print '%s - connexion en cours' % nomServeur

news = nntplib.NNTP(nomServeur)
print 'connexion impossible'

print 'connexion rťussie : ' + news.getwelcome()

# connexion au groupe
print '%s - connexion au groupe' % nomGroupe

groupe =
print 'impossible de se connecter au groupe'

print 'connexion au groupe rťussie : ' + groupe[0]

# affichage des informations sur le groupe
info = {}
info["debut"] = groupe[2]
info['fin'] = groupe[3]
info['nombre'] = groupe[1]

print "nombre d'articles : " + info['nombre']
print "identifiant du premier article : " + info['debut']
print "identifiant du dernier article : " + info['fin']

for i in range(int(info['fin'])-20, int(info['fin'])):
article = news.article(str(i))

body = news.body(str(i))

print "="*80
print "Numťro: " + body[1]
print "Message-ID: " + body[2]

for j in article[3]:
if ("References:" in j):
print j

print "-"*80

for i in body[3]:
print i
print "-"*80

Please Choose your language:





(Russian version)








( automated )









(not available yet)



(not available yet)



(not available yet)



(not available yet)



(not available yet)



(not available yet)









What is Usenet