eMule od wersji v.42.1 posiada funkcje obs³ugi dwóch ró¿nych sieci - klasycznej sieci eD2k opartej na serwerach i ca³kowicie nowej pozbawionej serwerów sieci Kademila.
W rzeczywisto¶ci obie sieci spe³niaj± te same funkcje. Posiadaj± jedynie odmienne metody wyszukiwania ¼róde³ i plików które chcesz pobraæ.
Podstawy
Identyfikacja plików
Ka¿demu plikowi przypisana jest odmienna warto¶æ zwana hash. Jest to kombinacja liczb i liter unikalnie identyfikuj±ca plik. Plik mo¿e posiadaæ liczne nazwy lecz to nie zmienia jego warto¶ci hash. Pozwala to ka¿demu u¿ytkownikowi wyszukiwaæ ¼ród³a do konkretnego pliku bez wzglêdu na to jak± ma on nazwê u poszczególnych klientów.
Identyfikacja u¿ytkowników
Tak jak przypisywany jest hash do pliku, podobnie ka¿dy u¿ytkownik w sieci dostaje unikalny i niezmienny hash u¿ytkownika. Identyfikacja u¿ytkownika jest bardzo dobrze zabezpieczona dziêki u¿yciu prywatnego / publicznego klucza podczas uzgadniania po³±czenia by zapobiec nadu¿yciom.
Pobieranie plików
Wa¿ne jest by zrozumieæ, ¿e wybór sieci nie ma wp³ywu na aktualn± prêdko¶æ pobierania eMule. S± one przeznaczone jedynie do wyszukiwania plików i klientów którzy je posiadaj±.
Gdy zostanie odnalezione ¼ród³o, Twój klient pod³±cza siê do niego. Nastêpnie ¼ród³o rezerwuje miejsce w swojej kolejce dla pliku który chcesz pobraæ. Gdy po pewnym czasie oczekiwania osi±gniesz pierwsze miejsce w kolejce, zostaniesz upowa¿niony do pobierania danych.
Klasyczna oparta na serwerach sieæ eD2k
Pod³±czanie do sieci
Kluczem do tej sieci jest serwer eD2k. Ka¿dy klient musi byæ pod³±czony do serwera by do niej wej¶æ. Podczas pod³±czania Twojego klienta do serwera, serwer sprawdza czy inni klienci mog± po³±czyæ siê z Tob± bez przeszkód. Je¶li tak, serwer przydziela Ci tzw. high ID. Je¶li komunikacja jest blokowana, serwer przydzieli Ci low ID.
Po przypisaniu ID eMule przesy³a listê udostêpnianych plików i ich warto¶ci hash do bazy danych serwera.
Wyszukiwanie plików
Gdy ju¿ pod³±czysz siê do sieci, mo¿esz wyszukiwaæ s³ów kluczowych w nazwach plików. Wyszukiwanie mo¿e byæ lokalne lub globalne. Wyszukiwanie lokalne (o wyniki pytany jest tylko serwer do którego jeste¶ pod³±czony) przebiega znacznie szybciej lecz daje mniej wyników. Wyszukiwane metod± globaln± (pytane s± wszystkie serwery z listy) zajmuje trochê wiêcej czasu lecz zwraca wiêcej wyników. Ka¿dy serwer przeszukuje swoj± lokaln± bazê danych w poszukiwaniu kluczowego s³owa i zwraca nazwy pliku (z warto¶ci± hash) pasuj±ce do szukanego zwrotu.
Znajdywanie ¼róde³ dla plików
Pliki mog± byæ dodane do pobrania za pomoc± funkcji wyszukiwania eMule lub przez specjalny format linku eD2k oferowany na wielu stronach internetowych.
Je¶li pliki ju¿ znajd± siê na li¶cie pobierania, eMule zapytuje najpierw lokalny serwer (do którego jest pod³±czony) a nastêpnie wszystkie serwery z listy o ¼ród³a do ka¿dego konkretnego pliku. Serwer przeszukuje swoj± bazê danych czy nie zawiera szukanej warto¶ci hash i zwraca adresy klientów o których wie, ¿e go udostêpniaj±.
¬ród³ami s± klienci którzy maj± pobran± przynajmniej jedn± ca³± czê¶æ (9.28 MB) pliku pasuj±cego do warto¶ci hash.
Bezserwerowa sieæ Kademila
Pod³±czanie do sieci
Jedyn± rzecz± potrzebn± do pod³±czenia siê do tej sieci jest adres IP i port jakiegokolwiek klienta eMule ju¿ do niej pod³±czonego. To nazywa siê Boot Strap.
Gdy klient znajdzie siê sieci, zapytuje on innych klientów czy mog± siê oni do niego pod³±czyæ bez przeszkód.
Ten proces jest bardzo podobny do sprawdzania HighID/LowID na serwerach. Je¶li mo¿na siê z Tob± po³±czyæ bez
przeszkód zostaje Ci przypisany ID (podobny do HighID) i status otwarty. Je¶li s± trudno¶ci przy
pod³±czeniu dostaniesz status firewalled. Od wersji v.44a siec Kademila zawiera funkcjê Buddy
(Kole¶) dla u¿ytkowników ze statusem firewalled. Buddies to inni u¿ytkownicy Kademila którzy maj± status
otwarty i dzia³aj± jak przeka¼nik dla po³±czeñ których u¿ytkownik ze statusem firewalled nie mo¿e wykonaæ.
Wyszukiwanie w Kademila
W tej sieci nie ma znaczenia czego szukasz. Nie wa¿ne czy jest to poszukiwanie nazw plików, ¼róde³ dla pobieranych plików czy innych u¿ytkowników, poniewa¿ wszystko przebiega do¶æ podobnie.
Nie istniej± serwery które przechowuj± informacje o u¿ytkownikach i plikach które udostêpniaj± wiêc musi byæ to wykonywane przez ka¿dego u¿ytkownika w tej sieci - w rzeczywisto¶ci ka¿dy klient gra rolê ma³ego serwera.
Odk±d ka¿dy klient jest identyfikowany przez unikaln± warto¶æ hash, zadaniem Kademila jest przypisanie pewnej "odpowiedzialno¶ci" bazuj±cej na danym hash. Ka¿dy klient w sieci Kademila przechowuje informacje dotycz±ce okre¶lonych s³ów kluczowych i ¼róde³. Hash tego klienta okre¶la specyficzne s³owa kluczowe i ¼ród³a.
Celem jakiegokolwiek wyszukiwania jest odnalezienie klientów odpowiedzialnych za aktualnie wyszukiwany topic. Jest to realizowane przez z³o¿on± kalkulacjê mo¿liwego dystansu do docelowego klienta przez zapytanie innych klientów o najkrótsz± drogê do niego.
Podsumowanie
Obie sieci maj± zupe³nie odmienn± implementacjê by osi±gn±æ to samo: wyszukiwaæ pliki i ¼ród³a do plików. G³ównym celem Kademila jest uwolnienie od serwerów i udoskonalenie skalowalno¶ci. Serwery mog± przyj±æ okre¶lon± liczbê u¿ytkowników i je¶li du¿y serwer ulegnie awarii ca³a sieæ zostanie powa¿nie upo¶ledzona.
Kademila jest samoorganizuj±c± siê sieci± i dostraja siê sama by osi±gn±æ najlepsz± wydajno¶æ zale¿nie od liczby u¿ytkowników i mo¿liwo¶ci ich po³±czeñ. Dziêki temu jest bardziej odporna na uszkodzenia sieci w du¿ej skali.
Last Update: 2004-09-12,
Monk |