Кіріспе
Direct Connect (DC) файлдарды ортақтастыруға арналған компьютерлік желі протоколы. Direct Connect клиенттері орталық хабқа қосылып, бір-бірінен тікелей файлдарды жүктей алады. Advanced Direct Connect осы протоколдың жаңартылған нұсқасы болып саналады. Хабтар қосылған клиенттердің немесе пайдаланушылардың тізімін ұсынады. Пайдаланушылар файлдарды іздеуге, басқа клиенттерден жүктеуге және басқа пайдаланушылармен әңгімелесуге мүмкіндік алады.
Direct Connect (DC) 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.
Тарих
NeoModus компаниясы 1999 жылғы қарашада Джон Хесс орта мектепте оқып жүргенде, "Direct Connect" жарнамалық бағдарламасымен қаржыландырылды. Алғашқы үшінші тарап клиенті "DClite" деп аталды, ол протоколдың файл алмасу мүмкіндіктерін толыққанды қолдамады. Хесс Direct Connect-тің жаңа нұсқасын шығарды, ол қосылысты бастау үшін қарапайым шифрлау кілтін талап етті, бұл үшінші тарап клиенттерін құлыптап тастады. Шифрлау кілті бұзылды, ал DClite авторы NeoModus-тың жаңа бағдарламалық қамтамасымен үйлесімді DClite-тің жаңа нұсқасын шығарды. Кейіннен DClite, MDI пайдаланушы интерфейсіне ие болу және файл алмасу протоколдары үшін плагиндерді пайдалану мақсатымен (MLDonkey сияқты) Open Direct Connect ретінде қайта жазылды. Open Direct Connect протоколдың файл алмасу мүмкіндіктерін толыққанды қолдамады, бірақ Java нұсқасы қолдады. Соңынан DCTC (Direct Connect Text Client) және DC++ сияқты басқа клиенттер де танымал болды. DCDev мұрағатында 2003-2005 жылдар аралығында DC-ді дамыту үшін протокол өзгерістері туралы талқылаулар сақталған.
Хаттама
Direct Connect протоколы – мәтіндік компьютерлік протокол, онда командалар мен олардың ақпараты бастапқы NeoModus бағдарламалық жасақтамасында шифрлаусыз, ашық мәтінде жіберіледі (шифрлау протокол кеңейтуі ретінде қолжетімді). Клиенттер ақпараттың орталық тарату көзіне (хабқа) қосылғандықтан, хаб жүктеу үшін қолжетімді өткізу қабілетін қажет етеді. Протоколдың ресми спецификациясы жоқ, яғни әрбір клиент пен хаб (неомодустың бастапқы клиенті мен хабынан басқа) ақпаратты кері инженериялауға мәжбүр болды. Осылайша, осы мақалада аталған кез келген протокол спецификациясы дұрыс емес және/немесе толық емес болуы мүмкін. Клиент-сервер (сондай-ақ клиент-клиент, мұнда бір клиент "сервер" ретінде әрекет етеді) протоколының ерекшелігі қосылым жасалғанда сервердің бірінші жауап беруін талап етеді. Мысалы, клиент хабтың сокетіне қосылғанда, хаб алдымен клиентке жауап береді. Протоколда клиенттер немесе хабтар үшін белгіленген әдепкі таңба кодтамасы жоқ. Бастапқы клиент пен хаб операциялық жүйенің орнына ASCII кодтамасын қолданады. Бұл жаңа бағдарламалық жасақтамада UTF-8 кодтауға көшуге мүмкіндік береді. 411 порт – хабтар үшін, ал 412 – клиенттен клиентке қосылыстар үшін әдепкі порт. Егер осы порттардың бірі қолданыста болса, порт нөмірі пайдаланылатын бос порттың нөмірі табылғанға дейін көбейтіледі. Мысалы, 411, 412 және 413 порттар қолданылып жатса, онда 414 порт қолданылады. Хаб адрестері мынадай форматта: dchub://example.com[:411], мұнда 411 – міндетті емес порт. Жалпы идентификациялау схемасы жоқ; оның орнына пайдаланушылар хаб-хаб негізінде өздерінің лақап атымен анықталады. Клиенттен клиентке қосылым үшін келіп түсетін сұранысты нақты қосылыммен байланыстыруға болмайды. Іздеу нәтижесі белгілі бір іздеумен байланыстырылуы мүмкін емес. Пайдаланушыны басқа хабқа жылжыту немесе қайта бағыттау мүмкіндігі протоколмен қамтамасыз етіледі. Егер пайдаланушы жылжытылса, хаб оған нақты себеп беруді талап етпейді және пайдаланушыны қайда қайта бағыттауға шектеу жоқ. Алайда, егер басқа клиенттің басқаруы бойынша хабты жылжытуға нұсқау берілсе, ол клиент оны жасамас бұрын хабарлама жібере алады. Пайдаланушыны қайта бағыттаудың себебін көрсету керек. HTTP сілтемесінің эквиваленті жоқ. Хабтар клиенттерге пайдаланушы командаларын жібере алады. Бұл командалар тек протоколдың бастапқы командалары болып табылады және көбінесе белгілі бір тапсырманы жеңілдету үшін қолданылады. Мысалы, хаб пайдаланушы командасын жіберіп, веб-сайтқа кіру үшін әдепкі шолғышты іске қоса алмайды. Алайда, ол "+rules" командасын қоса алады (онда '+' хабқа бұл команда екенін көрсетеді, бұл өзгеруі мүмкін) хабтың ережелерін көрсету үшін. Протоколдың бір-біріне қатысты бөлігі "слоттар" (бір жұмыс орны үшін ашық лауазымдардың санына ұқсас) түсінігіне негізделген. Бұл слоттар кез келген уақытта пайдаланушыдан жүктеуге рұқсат етілген адамдардың санын білдіреді және клиенттің бақылауында болады. Клиенттен клиентке қосылымдарда тараптар кімге бірінші жүктеуге рұқсат етілуін білу үшін кездейсоқ санды жасайды және ең көп санды клиент жеңіп шығады. Жүктеуді тасымалдау және хабқа қосылу TCP талап етеді, ал белсенді іздеулер UDP-ді қолданады. Пайдаланушының екі түрлі режимі болуы мүмкін: "белсенді" немесе "пассивті" режим. Белсенді режимді қолданатын клиенттер желідегі кез-келген адамнан жүктей алады, ал пассивті режимді қолданатын клиенттер тек белсенді пайдаланушылардан жүктей алады. NeoModus Direct Connect-те пассивті режимдегі пайдаланушылар басқа пассивті режимдегі пайдаланушылардың іздеу нәтижелерін алады, бірақ пайдаланушы ештеңе жүктей алмайды. DC++-да пайдаланушылар осы іздеу нәтижелерін алмайды. NeoModus Direct Connect-те барлық пайдаланушыларға сұранысқа ең көп дегенде бес іздеу нәтижесі жіберіледі. Егер пайдаланушы іздеген болса, DC++ пайдаланушы белсенді режимде болған кезде он іздеу нәтижесімен, ал пайдаланушы пассивті режимде болған кезде бес нәтижемен жауап береді. Пассивті клиенттер іздеу нәтижелерін хаб арқылы жібереді, ал белсенді клиенттер нәтижелерді тікелей алады. Протоколдың делимитаторлары "$", "|", және Protocol үшін (және басқалары) қашу тізбегі бар және көптеген бағдарламалық жасақтама оларды логин (Lock to Key) ретімен дұрыс қолданады. DC++ әзірлеушілері қандай да бір себеппен бұл қашу тізбегін елемеді және егер пайдаланушы осы таңбаларды қараса, олар HTML эквивалентін қолданады. Рейтингтер мен тілдік жинақтар сияқты мүмкіндіктерге қызығушылық жалғасуда. DC++ авторлары Direct Connect протоколының толық ауыстыруын ADC немесе ресми емес атауымен Advanced Direct Connect ұсынды. ADC түпнұсқа протокол сияқты желі топологиясын, түсініктерді және терминологияны қолданады. Протоколға қосылған мүмкіндіктердің мысалы, бөлісілген файлдардың Tiger Tree Hashing (TTH) хабарламасы. Бұған файлдың дұрыс жүктелгенін тексеру және файлдарды олардың аттарына тәуелсіз табу мүмкіндігі кіреді.
(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. The authors of DC++ also proposed a complete replacement of the Direct Connect protocol called ADC, or unofficially, Advanced Direct Connect. ADC uses the same network topology, concepts, and terminology as the original protocol. 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.
DDoS шабуылдары үшін Direct Connect пайдаланылады
Протокол хабтарға пайдаланушыларды басқа хабтарға қайта бағыттауға рұқсат бергендіктен, қаскөй хабтар пайдаланушыларды нақты Direct Connect хабтары емес, басқа жерлерге қайта бағыттап, нәтижесінде Distributed Denial of Service (таратылған қызметтен бас тарту) шабуылына себеп болды. Хабтар клиенттер арасындағы байланыстардың IP-адресін өзгертіп, әлеуетті құрбанға бағыттай алады. CTM Exploit 2006–2007 жылдары пайда болды, сол кезде Direct Connect желісі DDoS шабуылдарына ұшырады. 2009 жылдың ақпанында шабуылға ұшыраған тарапқа байланыс жасайтын пайдаланушыларды қай хаб жібергенін анықтау үшін клиенттерге арналған кеңейтім ұсынылды.
Direct Connect Network Foundation (DLC) ұйымы
Direct Connect Network Foundation (DCNF) – Швецияда тіркелген коммерциялық емес ұйым, мақсаты DC желісін жақсарту, оның үшін бағдарламалық жасақтаманы, протоколдарды және желідегі басқа да қызметтерді дамыту.
Мақалалар мен қағаздар
DCNF DC-ге қатысты мақалалардың, еңбектердің және басқа да құжаттардың тізімін ұстап тұрады.