[ Download mcntp ]
[ Mcntp Project Pages at sourceforge.net ]
[ What does it consist of? ]
[ How to use it? ]
[ Features ]
[ More information ]
News
-
mcntp-1.2 has been released after three months of development.
Check the Download section on SourceForge for it.
-
Jörg Dorchain has joined the mcntp development team. Jörg will take care
of the move to OpenSSL.
mcntp - Transport of NetNews over IP-Multicast
What is it?
Mcntp is a (Usenet-)news transport protocol and its implementation.
The difference between mcntp and nntp is that with mcntp, articles are
transferred
over IP-multicast (which uses UDP) and not via TCP. Thus articles that
are sent by one sender once can be received by multiple receivers:
So articles need only be sent once to reach all n receivers as shown
in the above graphic. The result in the above example is that on the
line from sender to the routers, the bandwidth needed is only one nth
relative to sending the article to all receivers separately.
The mcntp software consists of three parts:
- A directory server (yawgmoth):
This one coordinates the relationship between news- and multicast groups.
The server sends its announcements on IANA
assigned port 5418 and into multicast group mcntp-directory.mcast.net
(224.0.1.51).
- A multicast sender (mcxmit):
This one gets its articles from the file
system and sends them over IP-multicast.
- A multicast receiver(mcrcv):
This one receives articles that have been
sent over IP-multicast and feeds them to a nntp server.
The next figure will show how this might look in practical use.
One sender host has one or more sender processes running that distribute
news. In addition, a directory server is running which tells the
senders what multicast groups to use and which then distributes this
list to a special multicast group. Receivers listen to that group and
if they want, they select an appropriate multicast group to receive
articles from it. These articles are then fed to a nntp server (which
need not be on the same host as the multicast receiver). If the
nntp server is not available, articles can be spooled to disk and fed
to the server (by an external program such as rnews) when it is
available again.
Articles can be compressed by using zlib to reduce bandwidth use
further. It has been shown that the packets that are sent to the net
are about 60% of the size of the original articles.
In order to prevent injection of forged articles without
leaving traces, articles are digitally signed before transport.
At the moment only articles that are smaller than 64kBytes in size can
be transmitted via mcntp, as UDP packets can not contain more data.
For practical use it is better to reduce the maximum size to about 20
kBytes as many systems can not reserve such large socket buffers or
have problems due to bad implementations with packets larger than
32kBytes.
At first this sounds not good, but research has
shown that over 90%
of all articles are less than 32kBytes in size.
Tests that have been done in cooperation
with
Loral CyberStar (formerly Orion Network Systems)
have shown that mcntp can also be used to
distribute NetNews over Satellite. Here are some of the
results and config hints.
There is a Project page
at .
Everyone is invited in participating.
This can be done in various forms:
- Providing patches
- Sending bug reports
- Working as a SF developer on one of the open sub projects
- Porting to other operating systems
- Browse through the mcntp CVS repository
- There exist two mailing lists about
mcntp.
- Mcntp runs already on these listed platforms.
- Some further reading including my
thesis as HTML version and manual pages.
- Here is a little How To to show the steps
that are needed to send and/or receive News with mcntp.
- Look at this page for information about the used
RSA libraries.
- At 40. IETF meeting in
Washington a BOF took place to find out weather a IETF working group should
be founded to standardize a Multicast NetNews Protocol (mnnp).
Please look at the
download page
of
the mcntp project
pages on SourceForge
Mcntp is hosted on
Homepage of Heiko W. Rupp (pilhuhn)
$Id: index.html,v 1.36 2002/05/03 10:53:34 pilhuhn Exp $