Direct Connect (file sharing)
Encyclopedia
Direct connect is a peer-to-peer file sharing
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 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...

 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 IP
IP 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

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK