OpenNap

from Wikipedia, the free encyclopedia

OpenNap was a free clone of the file sharing program Napster . OpenNap offered the same basic functionality as the Napster servers of the time, including searching for files, uploading and downloading files, browsing through another user's files and a chat function between two individual users as well as on the basis of public spaces. It was also possible to connect several servers to one another in order to link more clients with one another.

OpenNap was a command line program without a graphical user interface and could be used on many POSIX- compliant systems (e.g. Linux , Unix or BSD ). Even Windows is supported. Because it was free software, anyone can set up a server. However, OpenNap has not been developed since the end of 2001 (see history).

In addition to the basic Napster functions, new ones have also been added. For example, it was not only possible to exchange MP3 files, but also any file type. The chat functionality was expanded in such a way that there were users with special rights for chat rooms (similar to IRC ).

Despite the aging concept, OpenNap and its descendants were still very popular. For a long time, a list of active servers could be obtained from Napigator . Since the end of April 2004 this service no longer exists, which is why two new ones (operated by private individuals) have been created, gotnap.com and naplist.com, which have since been switched off again.

history

The OpenNap project was registered with SourceForge by drscholl in January 2000 . The Napster protocol was determined and published by reverse engineering . This made it possible for different clients to be written. They could also participate in the original Napster network.

StreamCast Networks had a few professional servers called MusicCity during the OpenNap boom that could manage up to 20,000 users. In April 2001, however, these were taken offline and a short time later the peer-to-peer client Morpheus was started, which was very popular for a while and originally used the FastTrack network.

After drscholl had problems with the RIAA and the servers he had used for testing purposes were closed, he gave up at the end of 2001 and stopped developing OpenNap.

The most important clients (besides the official client) were for Windows FileNavigator , AudioGnome and WinMX , for Linux TekNap , GNapster and Lopster , and based on Java XNap . Most of them have not been developed for a long time. The only clients that were still developed from it were Lopster and XNap.

Technical details

The following description also applies to the (no longer existing) original Napster protocol.

Network topology

The OpenNap network has a classic star topology . There is a central server that serves all clients . An extension of this is that several servers can be connected to one another so that the load is distributed across different computers. The requests from a client are then forwarded to the other servers and the result is returned to the client.

File exchange

Shared files are indexed on the server. This means that after logging in, a client sends a list of these files to the server. Any file types are supported. If a user starts a search, this is transferred to the server, which then consults its current database. The results are sent to the client including the IP address of the owning user. If the download is to be started, part of the handshake is processed via the server and a direct connection is only established between the parties involved when the download is permitted by the owner of the file.

One of the major drawbacks of OpenNap is that there are no checksums or hashes for files (although the protocol provides MD5 sums, which is implemented, but it was practically never used). The result is that errors can occur during file transfers that go unnoticed.

Aborted download can be continued (resume). This automatically means that a file can be loaded from multiple sources at the same time. One of the clients who implements this is Lopster .

protocol

The communication between server and client is based on TCP / IP and is handled by commands that consist of a binary header and an ASCII body. The header contains two unsigned, integer 16-bit values ​​in little-endian format. The first value specifies the length of the body and the second the type of command.

head hull
length ID Arguments separated by spaces
16-bit 16-bit ASCII data of the length as defined in the header

Depending on the type of command, the body is interpreted as a string of arguments separated by spaces (0x32). Arguments that can themselves contain a space (such as file names) are enclosed in quotation marks.

The protocol specification does not limit the size of the shared files. However, it is currently limited to 32 and 31 bits (4 GiB and 2 GiB) by both the server and client implementations .

A relatively precise specification of the protocol can be found on the homepages of the server implementations.

Similar programs

OpenNap-NG

Since 2001 a couple of servers have been created based on the last version of OpenNap. The best known of these is OpenNap-NG. The most important innovation is that the communication between server and client can be compressed in order to save bandwidth and thus serve more clients.

However, according to the opennap-ng.org website, the code of the SourceForge project is based on a three year old code. After a dispute, one of the admins split up to continue the project under his own roof, while the original project continues its work on old code.

Both projects compete for the name OpenNap-NG.

SlavaNap

SlavaNap is a server for the Windows operating system with a graphical user interface. It has basically the same functionality as OpenNap. SlavaNap was developed up to version 2.3.0 under the GNU General Public License , but is now closed source .

CleanNap

CleanNap is a platform-independent implementation in the alpha stage, development of which was resumed in June 2004. According to the homepage, it was discontinued in July 2004.

Web links

Individual evidence

  1. OpenNap-NG