Advanced Direct Connect

Advanced Direct Connect

Advanced Direct Connect (ADC) is a peer-to-peer file-sharing protocol, based on the topology of the Direct Connect (DC) protocol. ADC clients connect to a central hub and can download files directly from one user to another.

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.

History

ADC was created to allow an extensible protocol and to address some shortcomings of the DC protocol. It was initiated by Jacek Sieka, under the influence of Jan Vidar Krey's [http://quickdc.sourceforge.net/dctng/ DCTNG] draft. The first revision of ADC came in 2004 and the first official version in 2007-12-01.

Protocol

The ADC protocol is a text-based protocol, where commands and their information is sent in clear text, except during password negotiation. The client-server (as well in client-client, where one act as "server") aspect of the protocol stipulates that the client speak first when a connection has been made. For example, when a client connect to a hub's socket, the client is first to talk to the hub.

The protocol require that all text must be sent as UTF-8 encoded Unicode, normalized in form C.

There are no port default, for hubs or clients.

Hub addresses are in the following form: adc://example.com:411, where 411 is the port.

During hub-client protocol information exchange, the client offer a set of hashes it support. The hub will select one of these hashes, and that hash will be used throughout the hub-client session. If the hub deem that the client doesn't support an (arbitrary) appropriate hash set, an error is raised.

The global identification scheme is based on the hash set producing two end-hashes, where one of them depend on the output of the other. During hub-client information exchange, the client will send these end-hashes, encoded with base32, which the hub will confirm to match. One of these base32 encoded hashes will be further sent to other clients in the network. The global identification scheme is this last string. The client may change its end-hashes on a hub-to-hub basis.

Each user, during a hub session, is assigned a hash that only last that particular session. This hash will be used for all client references in that hub. There is no dependency on nicks.

Each client information notification is incrementally sent.

An incoming request for a client-client connection is linked with an actual connection, with the use of a token.

Searches use a token, as well, to identify each result with a search.

There is no out-of-the-box ability for one client to kick or redirect another client from a hub. The hub, however, can kick and redirect arbitrarily. The hub can also require that all other clients in the hub must terminate their transfers with the kicked/redirected client. If a client is redirected to another hub, the redirecting client must use a referrer, similar to the HTTP referrer. The kicked/redirected client is not required to receive a notification message.

The peer-to-peer part of the protocol is based around 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. Automatic slot allocation is supported by the protocol.

The token in the client-client connection decide who should be allowed to download first.

Downloads are transported using TCP. Searches can be transported using TCP or UDP.

There are two kinds of modes a user can be in. Either in active or in passive mode. Clients using active mode can download from anyone else on the network. Passive mode users can only download from active users. Passive clients will be sent search results through the hub, while active clients will receive the results directly. An active searcher will receive (at most) 10 results per user and a passive searcher will receive (at most) 5 results per user.

An active client have a listening port for TCP respectively UDP, though the ports don't depend on each other.

Protocol delimiters are ' ' and ' ' (space). The character " is used as an escape sequence. Allowed escape sequences are " " (new line), "s" (space) and "\" (backslash).

The protocol allow extensions in the protocol, for such as compression with bzip2 or encryption with TLS. While it is not mandated by the protocol that these extensions are implemented, hubs can require them.

Hub Software

ADCH++

ADCH++ is a hub for the ADC network. It implements the ADC protocol. The core application is very simple, but extensible using plugins. Among the standard plugins there is a scripting plugin that allows hub owners to further customize the hub using the Lua scripting language. The core is also exposed as a Python module, thus it is possible to use it within a Python application.

"Protocol Implementations:" [http://adc.sourceforge.net/wiki/index.php/Extensions#BLOM_-_Bloom_filters BLOM] , [http://adc.sourceforge.net/wiki/index.php/TIGR TIGR]

"Supports": [http://www.python.org/ Python] , [http://www.lua.org/ LUA]

[http://adchpp.sourceforge.net/ ADCH++ Website]

DSHub

DSHub is a flexible hubsoft for ADC Hubowners, written in Java, with a nice graphical interface and easy manageable system for regs, bans, config and extensible with Java Plugins/Modules, and Python scripts.

With profiles for each account so that every registered user has his/her own rights to commands, DShub also has Chatcontrol that supports Regular Expressions and easy to use , also has a logarithmic search spam scale that benefits both end-users and hub owners (instead of non practical linear one that the market uses)

"Protocol Implementations:" [http://adc.sourceforge.net/wiki/index.php/PING PING] , [http://adc.sourceforge.net/wiki/index.php/TIGR TIGR] , [http://adc.sourceforge.net/wiki/index.php/Extensions#ADCS_-_Secure_ADC ADCS]

"Supports:" [http://www.python.org/ Python] , [http://www.java.com Java Plugins]

[http://www.death-squad.ro/dshub DSHub Website]

Luadch

Luadch - ADC Hub Software for the Direct Connect Network

Ludach is a small hubsoft written in Lua, with small memory footprint.It runs on Windows, Linux and BSD and is especially written for small private or reg-only hubs.

Main features:

[http://adc.sourceforge.net/wiki/index.php/Extensions#ADCS_-_Secure_ADC ADCS] : supports TLS connections for encrypted hub-client traffic.

Lua scripting: as Luadch is written in [http://www.lua.org/ LUA] , it provides an easy and powerful scripting interface.

About 30 ready-to-use scripts included.

Debugging: Luadch provides detailed debug messages and error logs.

Automatic backup: old settings and user database will be saved regularly.

Extensibility: its possible to extend Luadch with other libs for Lua, or use it as server for other tasks.

"Protocol Implementations:" [http://adc.sourceforge.net/wiki/index.php/PING PING] , [http://adc.sourceforge.net/wiki/index.php/TIGR TIGR] , [http://adc.sourceforge.net/wiki/index.php/Extensions#ADCS_-_Secure_ADC ADCS]

"Supports:" [http://www.lua.org/ LUA]

[http://sourceforge.net/projects/luadch/ Luadch Website]

Nexthub

NextHub is a powerful file-sharing server written in C#. It implements the ADC protocol and will run under any platform supporting the .NET 2.0 framework. The emphasis on NextHub is performance, simplicity, and extendability.

"Protocol Implementations:" [http://adc.sourceforge.net/wiki/index.php/TIGR TIGR] , [http://adc.sourceforge.net/wiki/index.php/Extensions#ADCS_-_Secure_ADC ADCS]

"Supports:" [http://www.lua.org/ LUA]

[http://www.fangsoft.net/ Nexthub Website]

µHub

Hub is a high performance peer-2-peer hub designed for UNIX-like operating systems. It is written in C, has a clean design and small memory footprint. It is scalable, and will work for small hubs on embedded hardware, as well as big hubs running on high performance servers with thousands of users.

µHub uses the ADC protocol (ie. the next generation Direct Connect), and is compatible with DC++ and other ADC clients.

Unlike other peer-2-peer networks, ADC is centralized. Clients connect to a central "hub" to communicate with other clients. It can be compared to super nodes (or ultra nodes) in other networks, except the hubs do not openly communicate between each other. The advantage to such a design is that the hubs are in control on who can access the network, and multiple private networks can exist.

"Protocol Implementations:" [http://adc.sourceforge.net/wiki/index.php/TIGR TIGR]

[http://www.extatic.org/uhub/ µHub Website]

Client Software

AirDC++

A client targeted for normal p2p users needs, with some addons for more advanced users too.AirDC++ 2.xx versions are Based on popular DC++ modification StrongDC++, (ADC and NMDC)AirDC++ aims to be a fast updating, feature rich p2p client on its main purposes: Sharing, Downloading and Chatting.AirDC++ has many features to make its appearance more customable to fit its users own eyeand help the user on his/her every day usage.

[http://www.airdcpp.com/ AirDC++ Website]

ApexDC++

Innovative DC client based on the already feature rich StrongDC++, a modification of DC++. ApexDC's goal is to be a project that listens it's users as well instead of just being made based on the, sometimes obscure, decisions and opinions of the developers. ApexDC has all the essentials for everyday p2p users as well as plenty of extras and options for those that look for more challenging user experience, a multi-purpose solution or basic operator client.

[http://www.apexdc.net/ ApexDC++ Website]

DC++

DC++ is an open source client for Windows for the Direct Connect network. Direct Connect allows you to share files over the Internet without restrictions or limits. The client is completely free of advertisements and has a nice, easy to use interface. Firewall and router support is integrated and it is easy and convenient to use functionality like multi-hub connections, auto-connections and resuming of downloads.

[http://dcplusplus.sourceforge.net/ DC++ Website]

LinuxDC++

LinuxDC++ is a Linux port of the Direct Connect client DC++. Though it is primarily aimed at Linux, it has been shown to work on other Unix-based operating systems as well. It is written in C++ and makes use of GTK+ for the user-interface. LinuxDC++ is free and open source software licensed under the GPL.

[https://launchpad.net/linuxdcpp LinuxDC++ Website]

RSX++

RSX++ is an advanced DC client which support both NMDC and new ADC protocol. It contain many useful features for Users and Operators, like:- Raw Manager- Client/Filelist Detection- MyINFO Detection- Advanced AutoSearch with option to redirect user to check his filelist- IP Detection- Highlights for chat/pm and Filter for chat- Share/Download Skiplist, option to choose folder to download by file extension- Exteded PM Frameand more...

RSX++ can be easily extended by LuaScripts (compatible with BCDC++, with own extensions) or by Plugins (RSX++ provide a simple Software Development Kit to develop a third-part extensions).All special features are allowed to use only for Operators, so RSX++ can be used as a Op-Client as well as a User-Client.

[http://rsxplusplus.sourceforge.net/ RSX++ Website]

StrongDC++

StrongDC++ is a modification of original DC++. It's one of the most widely used clients. It supports both NMDC and ADC protocol, and it was the source of massive expansion of segmented downloading. StrongDC++ is designed to be friendly to system resources. It is regarded as the least memory intensive DC client.

[http://strongdc.sourceforge.net/ StrongDC++ Website]

Misc Software

DC-Hublink

DC-hublink is a client program that links NMDC hubs, ADC hubs and IRC channels.

It will link main chat of all hubs connected, so a larger virtual chat hub is formed. With the default built-in functionality of filtering kick and ban messages, and operator and user commands, it only relays genuine chat commands

It offers very effective flood protection for all hubs connected, and can also be used for flood protection only.

DC-hublink supports ADC 1.0 and all previous drafts.

"Protocol Implementations:" [http://adc.sourceforge.net/wiki/index.php/TIGR TIGR]

[http://dc-hublink.sourceforge.net/ DC-Hublink Website]

DCWatch

DCWatch is a world-unique application suite for Direct Connect Hub operators. Includes implementation for the old NeoModus DC (NMDC) and the current ADC protocols. You can even reach ADC using SSL/TLS (ADCS).

Features

Easy-to-use and easy-to-configure hub with NMDC, ADC and ADCS support.
An all-round external robot program also with NMDC, ADC and ADCS support.
Apache MINA based fast network communication.
Plugin support for solving more complex problems using Java Plugin Framework.
Lua 5.1.x scripting possibility using LuaJava for those who don't know Java or want to influence the working of the application quickly, even without restarting.

"Protocol Implementations:" [http://adc.sourceforge.net/wiki/index.php/TIGR TIGR] , [http://adc.sourceforge.net/wiki/index.php/Extensions#ADCS_-_Secure_ADC ADCS]

"Supports:" [http://www.lua.org/ LUA]

[http://dcwatch.hu/?q=en DCWatch Website]

Embla

Embla is an open source Direct Connect protocol implementation in Java.

[https://launchpad.net/embla Embla Website]

External links

* [http://adc.sourceforge.net The ADC Project]
* [http://adc.sourceforge.net/ADC.html ADC Protocol]
* [http://adc.sourceforge.net/wiki/index.php/Extensions ADC Extensions]
* [http://www.adcportal.com ADCPortal - Discussion Forum for ADC Developers / Enthusiasts]


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Advanced Direct Connect — (ADC)  протокол для пиринговых сетей, основанный на протоколе Direct Connect (DC). ADC клиенты подключаются к центральному серверу и обмениваются файлами напрямую между участниками сети. Эту статью следует викифицировать …   Википедия

  • Direct Connect (file sharing) — 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… …   Wikipedia

  • Direct Connect — это частично централизованная файлообменная (P2P) сеть. DC сеть состоит из хабов, DC клиентов и хаблистов. Хаб предоставляет подключившемуся к нему клиенту список подключённых пользователей, возможность использовать поиск и встроенный развитый… …   Википедия

  • Хаб (Direct Connect) — Direct Connect это децентрализованная файлообменная (P2P) сеть, в основе работы которой лежит проприетарный протокол, разработанный фирмой NeoModus. Содержание 1 История 2 Клиенты 3 Хабы 4 …   Википедия

  • Direct Connect Architecture — The Direct Connect Architecture is the I/O architecture of the Athlon 64 X2, Opteron, and Phenom microprocessors from AMD. It consists of the combination of three elements: The microprocessor is directly connected to DRAM memory through an… …   Wikipedia

  • Advanced Micro Devices — Infobox Company company name=Advanced Micro Devices, Inc. company logo= company type=Public (nyse|AMD) foundation=1969 founder=W. Jerry Sanders III Edwin J. Turney Additional co founders location city=Sunnyvale, California, US key people=Derrick… …   Wikipedia

  • Advanced Micro Devices — Para otros usos de este término, véase AMD (desambiguación). Advanced Micro Devices, Inc. Lema The Future Is Fusion …   Wikipedia Español

  • Direct distance dialing — (DDD) or direct dial is a telecommunications term for a network provided service feature in which a call originator may, without operator assistance, call any other user outside the local calling area. DDD requires more digits in the number… …   Wikipedia

  • Direct-attached storage — (DAS) refers to a digital storage system directly attached to a server or workstation, without a storage network in between. It is a retronym, mainly used to differentiate non networked storage from SAN and NAS. Contents 1 Features 2 Storage… …   Wikipedia

  • Comparison of ADC software — Advanced Direct Connect is a next generation peer to peer file sharing protocol. This page compares the features of a number of software implementations of the protocol. Contents 1 Hub software 1.1 General 1.2 Operating system support …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”