Direct Connect
Z Wikipedii
Direct Connect jest aplikacja/protokołem umożliwiającym współdzielenie zasobów plikowych wykorzystujący technikę połączeń peer-to-peer. W tym celu wykorzystuje on hub'y które zawierają podstawowe informacje do nawiązania połączenia z użytkownikiem. Twórca tej techniki jest Jonathan Hess, założyciel firmy NeoModus.
Poza podstawowym celem aplikacji, którym jest współdzielenie zasobów udostępnionych z lokalnych dysków twardych systemów wyposażonych w aplikację klienta, innym użytkownikom sieci posiadających aplikację klienta, umożliwia on prowadzenie rozmów z innymi osobami na wybranym hub'ie w formie tekstowego chata zbliżonego formą do IRCa.
Spis treści |
[edytuj] Protokół ADC
Działanie "Direct Connect" oparte jest o tekstowy protokół ADC. Istota tego protokołu było stworzenie prostego rozwiązania w implementacji zarówno dla klienta jak i hub'a. Dzięki takiemu podejściu stworzono identyczną strukturę dla połączeń typu klient-hub oraz klient-klient, znacznie upraszczając przy tym ich implementacje. Podczas tworzenia ADC wiele koncepcji zostało zaczerpnięte z DCTNG autorstwa Jana Vidara Krey'sa, protokołu NMDC oraz oryginalnej idei DC Jona Hessa.
W protokole ADC wszystkie wiadomości składają się z czteroznakowych słów, w którym pierwszy znak określa sposób przesłania wiadomości a pozostałe trzy identyfikują konkretna operacje. Wiadomości te kodowane są za pomocą "UTF-8 Unicode" w znormalizowanej postaci języka C. Zarówno klient jak i hub ignorują źle sformułowane wiadomość, oraz muszą być przygotowane do obsłużenia 64 bitowych liczb typu integer oraz liczb zmiennoprzecinkowych.
Adresacja klienta musi być postaci dziesiętno-kropkowej dla adresów IPv4 oraz postaci RFC 1884 dla adresów IPv6 oraz w postaci URL'a ze specyfikacja adc postaci "adc://server:port/" dla hub'ow. Domyślnie klienty ADC udostępniają tylko pliki zhashowane za pomocą drzewa "Merkle Hash" zdefiniowanego pod adresem http://www.open-content.net/specs/draft-jchapweske-thex-02.html.
W najbliższych planach jest stworzenie protokołu Secure ADC wykorzystujący tunelowanie TLS podczas nawiązywania połączenia.
Dokładniejszy opis protokołu można znaleźć pod adresem http://dcplusplus.sourceforge.net/ADC.htm
[edytuj] Huby
Hub'y "Direct Connect" są centralnymi serwerami do których podłączają się aplikacje typu klient. Ich podstawowym zadaniem jest:
- dostarczanie informacje o użytkownikach,
- przeszukiwanie zasobów plików udostępnionych,
- możliwość nawiązania rozmów tekstowych z innymi użytkownikami,
- rejestracja i autoryzacja użytkowników podczas wejścia na hub.
Obecnie występuje bardzo wiele wyspecjalizowanych tematycznie hubów. Aby się z nimi połączyć należy spełniać wymagania odnoszące się np. do typów oraz ilości udostępnianych zasobów. Istnieją też hub'y dostępne np. tylko dla użytkowników sieci lokalnej lub hostów z pewnej podgrupy adresów IP.
Przykładowe adresy zawierające listę hubów są przedstawione poniżej. Niestety ze względu na niska stabilność ich niektóre mogą okazać się już nieaktualne.
http://dcpp.lichlord.org/PublicHubList.config.bz2
http://dcplusplus.sourceforge.net/PublicHubList.config
http://www.neo-modus.com/PublicHubList.config
http://axljab.homelinux.org:8080/PublicHubList.config.bz2
http://dreamland.gotdns.org/publichublist.config
http://wza.digitalbrains.com/DC/hublist.bz2
http://dcreg.mine.nu/PublicHublist.config.bz2
http://dcgui.berlios.de/files/dcgui/stuff/PublicHubList.config.bz2
http://www.hublist.org/PublicHubList.config.bz2
http://dreamland.gotdns.org/PublicHubList.config.bz2
http://www.1stleg.com/PublicHubList.config
[edytuj] Aplikacje klienta
Podstawowym zadaniem aplikacji klienta jest możliwość udostępniania oraz ściągania udostępnionych zasobów od innych użytkowników. W tym celu Klient nawiązuje połączenie z hub'em, od którego uzyskuje podstawowe dane o innych użytkownikach. Następnie nawiązywane jest połączenie [peer-to-peer] miedzy dwoma klientami w celu rozpoczęcia transmisji danych. Każdy klient DC tworzy między innymi listę plików udostępnionych, która służy innym użytkownikom oraz wyszukiwarce zasobów do odnalezienia poszukiwanych plików.
Najbardziej powszechnie stosowanym klientem pod systemem Windows jest DC++. Obszerny tutorial o konfiguracji oraz wiele przydatnych informacji na temat użytkowania klienta DC++ możemy znaleźć tutaj (http://dc.2-0.pl/) Ponadto możemy wyróżnić także wiele modyfikacje DC++:
Nazwa programu | Opis |
---|---|
ApexDC++ | modyfikacja z pluginem ochronnym oraz możliwością "super seeding" |
CZDC | jedna ze starszych modyfikacji |
fulDC | bardzo popularna modyfikacja DC++ |
SababaDC | modyfikacja umożliwiająca ściąganie danego pliku z wielu źródeł, obsługuje Kademili'e |
StrongDC++ | |
BCDC++ | |
Revconnect | modyfikacja umożliwiająca ściąganie danego pliku z wielu źródeł, obsługuje Kademili'e |
oDC (Opera's DC++) | |
LDC++ |
Nazwa programu | Opis |
---|---|
LinuxDC++ | modyfikacja z pluginem ochronnym oraz możliwością "super seeding" |
Valknut (dawniej DCGUI) | graficzny klient obsługujący ściąganie wielosesyjne |
dctc | klient tekstowy oparty o linie komend |
dc_gui | klient graficzny bazujący na dctc |
ldcc | klient oparty o linie komend |
microdc / microdc2 | klient oparty o linie komend |
GtkDC | graficzny klient wykorzystujący "GTK+ widgets" |
Dolda | |
DC# | graficzny klient bazujący na Mono i GTK# |
Nazwa programu | Opis |
---|---|
ShakesPeer | jest aplikacja typu "open source", kompatybilna z DC++ |
Istnieje także kilka klientów wieloplatformowych, są to miedzy innymi:
Nazwa programu | Opis |
---|---|
Valknut | znany głównie jako dcgui-qt, przeznaczony dla platform typu Linux i Mac OS X |
Elise | klient uniezależniony od typu platformy. |
Aktualną listę modyfikacji można znaleźć w "Broadband Reports DC++ FAQ"
[edytuj] Aplikacje Serwera
Umożliwiają one utworzenie hub'a przez dowolnego użytkownika, którego sprzęt oraz łącze internetowe będzie wstanie obsłużyć ruch generowany do/od serwera. Obecnie dostępne jest kilka programów umożliwiających uruchomienie serwera na własnym komputerze oraz nadzór nad poprawnym funkcjonowaniem hubów. W celu zapewnienia pewnej funkcjonalność hubów aplikacje te pozwalają na selekcję użytkowników np. względem adresu IP, ilości udostępnionych zasobów.
Nazwa aplikacji | System |
---|---|
Aquila | Linux |
DCH++ | Linux |
DConnect Daemon | Linux/Unix |
DB Hub | Linux/Unix (bazuje na OpenDCHub) |
Open DC | Linux/Unix |
PtokaX | Win32 |
Py-DCHub | Win32, Linux |
ShastaHub | Win32, Linux, Mac OS X (Oparty na języku Java) |
xHub | Win32, Linux |
Verlihub | Win32, Linux |
YnHub | Win32 |