Direct Connect (file sharing)
Encyclopedia
Direct connect is a peer-to-peer file sharing
protocol. Direct connect clients connect to a central hub
and can download files directly from one another. Advanced Direct Connect
can be considered a successor protocol.
Hubs feature a list of clients or users connected to them. Users can search for files
and download them from other clients, as well as chat
with other users.
in original Neo-Modus software (of course encryption
is available as protocol extension). As clients connect to a central source of distribution (the hub) of information, the hub is required to have a substantial amount of upload bandwidth available.
There is no official specification of the protocol. This means that every client and hub besides the original Neo-modus client and hub has been forced to reverse engineer the information. As such, any protocol specification this article may reference is likely either inaccurate and/or incomplete.
The client-server (as well in client-client, where one acts as "server") aspect of the protocol stipulates that the server speak first when a connection has been made. For example, when a client connect to a hub's socket
, the hub is first to talk to the client.
The protocol don't have specified default character encoding
for clients or hubs. In original client and hub is use Ascii
encoding of Operating system
. This allow to move to UTF-8
encoding in newer software.
Port 411 is the default port for hubs, and 412 for client-to-client connections. If either of these ports is already in use, the next higher port is used. For example, if 411, 412 and 413 are in use, then port 414 will be used.
Hub addresses are in the following form: dchub://example.com[:411], where 411 is an optional port.
There is no global identification scheme; users are identified with their nickname on a hub-to-hub basis.
An incoming request for a client-client connection cannot be linked with an actual connection.
A search result cannot be linked with a particular search.
Supported by the protocol is the ability to kick or move (redirect) a user to another hub. There is no restriction on where a user might be redirected to.
If a user is kicked, the hub isn't required to give the user a specific reason. However, if another client in power instructs the hub to kick, that client may send out a notification message before doing so. Redirecting a user must be accompanied by a reason. There is no HTTP referer
equivalent.
Hubs may send out user commands to clients. These commands are only raw protocol commands, and are used mostly for making a particular task simpler. For example, the hub cannot send a user command that will trigger the default browser to visit a website. It can however add the command "+rules" (where '+' indicates to the hub that it's a command - this may vary) to display the hub's rules.
The peer-to-peer part of the protocol is based on a concept of "slots" (similar to number of open positions for a job). These slots denote the number of people that are allowed to download from a user at any one time. These slots are controlled by the client.
In client-to-client connections, the parties negotiate a random number to see who should be allowed to download first. The client with the highest number wins.
Downloads are transported using TCP
. Active searches use UDP
. The connection to the hub is with TCP.
There are two kinds of modes a user can be in, either "active" or "passive" mode. Clients using active mode can download from anyone else on the network. Clients using passive mode users can only download from active users. In NeoModus Direct Connect
, passive mode users receive other passive mode users' search results, while the user will not be able to download anything. In DC++
, users will not receive those search results. In NeoModus Direct Connect, all users will be sent at most five search results per query. If a user has searched, DC++ will respond with ten search results when the user is in active mode, or five, when the user is in passive mode. Passive clients will be sent search results through the hub, while active clients will receive the results directly.
Protocol delimiter
s are '$', '|' and ' ' (space). Protocol have for them (and few others) escape sequence
and most software use them correctly in login
(Lock to Key) sequence. For some reason that escape sequence
was ignored by DC++ developers and they use HTML
equivalent if these characters are to be viewed by the user.
Continued interest exists in features such as ratings and language packs. However, the authors of DC++ have been actively working on a complete replacement of the Direct connect protocol called Advanced Direct Connect
.
One example of an added feature to the protocol, in comparison with the original protocol, is the broadcasting of Tiger-Tree Hashing
of shared files (TTH). The advantages of this include verifying that a file is downloaded correctly, and the ability to find files independently of their names.
in client to client connections, pointing to a potential victim.
The CTM Exploit made its presence known during 2006-2007; it made the developers take security issues more seriously since the whole direct connect network suffered from DDoS attacks from this exploit. It's recommended for users to run later versions of the hub software due to this exploit. Many hublists have started to block insecure hubs.
As of February 2009
,an extension for clients was proposed in order for the attacked party to find out the hub sending the connecting users.
Peer-to-peer file sharing
P2P or Peer-to-peer file sharing allows users to download files such as music, movies, and games using a P2P software client that searches for other connected computers. The "peers" are computer systems connected to each other through internet. Thus, the only requirements for a computer to join...
protocol. Direct connect clients connect to a central hub
Node (networking)
In communication networks, a node is a connection point, either a redistribution point or a communication endpoint . The definition of a node depends on the network and protocol layer referred to...
and can download files directly from one another. Advanced Direct Connect
Advanced Direct Connect
Advanced Direct Connect is a peer-to-peer file sharing and chat protocol, using the same topology, concepts and terminology as the Direct Connect protocol....
can be considered a successor protocol.
Hubs feature a list of clients or users connected to them. Users can search for files
Computer file
A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished...
and download them from other clients, as well as chat
Chat room
The term chat room, or chatroom, is primarily used by mass media to describe any form of synchronous conferencing, occasionally even asynchronous conferencing...
with other users.
History
NeoModus was started as a company funded by the adware "Direct Connect" by Jonathan Hess in November, 1999 while he was in high school. The first third-party client was called "DClite", which never fully supported the file sharing aspects of the protocol. Hess released a new version of Direct Connect, requiring a simple encryption key to initiate a connection, locking out third-party clients. The key was cracked, and the author of DClite released a new version of DClite compatible with the new software from NeoModus. Some time after, DClite was rewritten as Open Direct Connect with goals of having an MDI user interface and using plug-ins for file sharing protocols (similar to MLDonkey). Open Direct Connect also did not have complete support for the full file sharing aspects of the protocol, but a port to Java did. Some time later, other clients such as DCTC (Direct Connect Text Client) and DC++ became popular.Protocol
The Direct connect protocol is a text-based computer protocol, in which commands and their information are sent in clear text, without encryptionEncryption
In cryptography, encryption is the process of transforming information using an algorithm to make it unreadable to anyone except those possessing special knowledge, usually referred to as a key. The result of the process is encrypted information...
in original Neo-Modus software (of course encryption
Encryption
In cryptography, encryption is the process of transforming information using an algorithm to make it unreadable to anyone except those possessing special knowledge, usually referred to as a key. The result of the process is encrypted information...
is available as protocol extension). As clients connect to a central source of distribution (the hub) of information, the hub is required to have a substantial amount of upload bandwidth available.
There is no official specification of the protocol. This means that every client and hub besides the original Neo-modus client and hub has been forced to reverse engineer the information. As such, any protocol specification this article may reference is likely either inaccurate and/or incomplete.
The client-server (as well in client-client, where one acts as "server") aspect of the protocol stipulates that the server speak first when a connection has been made. For example, when a client connect to a hub's socket
Internet socket
In computer networking, an Internet socket or network socket is an endpoint of a bidirectional inter-process communication flow across an Internet Protocol-based computer network, such as the Internet....
, the hub is first to talk to the client.
The protocol don't have specified default character encoding
Character encoding
A character encoding system consists of a code that pairs each character from a given repertoire with something else, such as a sequence of natural numbers, octets or electrical pulses, in order to facilitate the transmission of data through telecommunication networks or storage of text in...
for clients or hubs. In original client and hub is use Ascii
ASCII
The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
encoding of Operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
. This allow to move to UTF-8
UTF-8
UTF-8 is a multibyte character encoding for Unicode. Like UTF-16 and UTF-32, UTF-8 can represent every character in the Unicode character set. Unlike them, it is backward-compatible with ASCII and avoids the complications of endianness and byte order marks...
encoding in newer software.
Port 411 is the default port for hubs, and 412 for client-to-client connections. If either of these ports is already in use, the next higher port is used. For example, if 411, 412 and 413 are in use, then port 414 will be used.
Hub addresses are in the following form: dchub://example.com[:411], where 411 is an optional port.
There is no global identification scheme; users are identified with their nickname on a hub-to-hub basis.
An incoming request for a client-client connection cannot be linked with an actual connection.
A search result cannot be linked with a particular search.
Supported by the protocol is the ability to kick or move (redirect) a user to another hub. There is no restriction on where a user might be redirected to.
If a user is kicked, the hub isn't required to give the user a specific reason. However, if another client in power instructs the hub to kick, that client may send out a notification message before doing so. Redirecting a user must be accompanied by a reason. There is no HTTP referer
HTTP referer
The referrer, or HTTP referrer — also known by the common misspelling referer that occurs as an HTTP header field — identifies, from the point of view of an Internet webpage or resource, the address of the webpage The referrer, or HTTP referrer — also known by the common misspelling...
equivalent.
Hubs may send out user commands to clients. These commands are only raw protocol commands, and are used mostly for making a particular task simpler. For example, the hub cannot send a user command that will trigger the default browser to visit a website. It can however add the command "+rules" (where '+' indicates to the hub that it's a command - this may vary) to display the hub's rules.
The peer-to-peer part of the protocol is based on a concept of "slots" (similar to number of open positions for a job). These slots denote the number of people that are allowed to download from a user at any one time. These slots are controlled by the client.
In client-to-client connections, the parties negotiate a random number to see who should be allowed to download first. The client with the highest number wins.
Downloads are transported using TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...
. Active searches use UDP
User Datagram Protocol
The User Datagram Protocol is one of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer applications can send messages, in this case referred to as datagrams, to other hosts on an Internet Protocol network without requiring...
. The connection to the hub is with TCP.
There are two kinds of modes a user can be in, either "active" or "passive" mode. Clients using active mode can download from anyone else on the network. Clients using passive mode users can only download from active users. In NeoModus Direct Connect
NeoModus Direct Connect
NeoModus Direct Connect was a file-sharing client for Windows and Mac users that provided file-sharing capabilities for any type of file within a hub-centric, peer-to-peer network and contained adware.-History:...
, passive mode users receive other passive mode users' search results, while the user will not be able to download anything. In DC++
DC++
DC++ is a free and open-source, peer-to-peer file-sharing client that can be used to connect to the Direct Connect network or to the ADC protocol...
, users will not receive those search results. In NeoModus Direct Connect, all users will be sent at most five search results per query. If a user has searched, DC++ will respond with ten search results when the user is in active mode, or five, when the user is in passive mode. Passive clients will be sent search results through the hub, while active clients will receive the results directly.
Protocol delimiter
Delimiter
A delimiter is a sequence of one or more characters used to specify the boundary between separate, independent regions in plain text or other data streams. An example of a delimiter is the comma character, which acts as a field delimiter in a sequence of comma-separated values.Delimiters represent...
s are '$', '|' and ' ' (space). Protocol have for them (and few others) escape sequence
Escape sequence
An escape sequence is a series of characters used to change the state of computers and their attached peripheral devices. These are also known as control sequences, reflecting their use in device control. Some control sequences are special characters that always have the same meaning...
and most software use them correctly in login
(Lock to Key) sequence. For some reason that escape sequence
Escape sequence
An escape sequence is a series of characters used to change the state of computers and their attached peripheral devices. These are also known as control sequences, reflecting their use in device control. Some control sequences are special characters that always have the same meaning...
was ignored by DC++ developers and they use HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....
equivalent if these characters are to be viewed by the user.
Continued interest exists in features such as ratings and language packs. However, the authors of DC++ have been actively working on a complete replacement of the Direct connect protocol called Advanced Direct Connect
Advanced Direct Connect
Advanced Direct Connect is a peer-to-peer file sharing and chat protocol, using the same topology, concepts and terminology as the Direct Connect protocol....
.
One example of an added feature to the protocol, in comparison with the original protocol, is the broadcasting of Tiger-Tree Hashing
Hash tree
In cryptography and computer science Hash trees or Merkle trees are a type of data structure which contains a tree of summary information about a larger piece of data – for instance a file – used to verify its contents. Hash trees are a combination of hash lists and hash chaining, which in turn are...
of shared files (TTH). The advantages of this include verifying that a file is downloaded correctly, and the ability to find files independently of their names.
Hublists
Name | NMDC |
ADC |
Active |
Registration |
CTM Detection |
Active |
---|---|---|---|---|---|---|
dchublist.com/ | Webbased | |||||
openhublist.org | Webbased | |||||
publichublist.nl | Regserver | |||||
hublist.org.nz | Webbased | |||||
dchublist.ru | ||||||
qsdchublist.com | Webbased | |||||
Name | NMDC |
ADC |
Active |
Registration |
CTM Detection |
Active |
Direct Connect used for DDoS attacks
As the protocol allow hubs to redirect users to another hub, malicious hubs have redirected users to other places than real Direct Connect hubs, effectively causing a Distributed Denial of Service attack. As well, the hubs may alter the IPIP address
An Internet Protocol address is a numerical label assigned to each device participating in a computer network that uses the Internet Protocol for communication. An IP address serves two principal functions: host or network interface identification and location addressing...
in client to client connections, pointing to a potential victim.
The CTM Exploit made its presence known during 2006-2007; it made the developers take security issues more seriously since the whole direct connect network suffered from DDoS attacks from this exploit. It's recommended for users to run later versions of the hub software due to this exploit. Many hublists have started to block insecure hubs.
As of February 2009
,an extension for clients was proposed in order for the attacked party to find out the hub sending the connecting users.
External links
- NMDC Protocol Wiki (Mirror)
- NMDC Protocol Document
- NMDC Protocol (No files to view/download?)
- NMDC Protocol Wiki (Doesn't work - expired domain as of Aug 2011. at least)(website transferred)