Serwery i sieć Kad

Serwery


Serwery są jednym z wykorzystywanych przez Emule mechanizmów do wyszukiwania źródeł. Żródło to oczywiście użytkownik posiadający plik , który masz na liście pobierania bądź jego części. Serwery indeksują udostępnione pliki użytkowników łączących się z nimi czyli tworzą bazę danych zawierającą listę źródeł dla danego pliku. Serwery nie przechowują samych plików tylko ich sumy kontrolne , to do jakiego serwera się podłączymy nie ma żadnego wpływu na prędkość pobierania plików.

Aby zobaczyć jakie serwery mamy aktualnie na liście należy wejść do zakładki serwery w Emule.

Podłączenie jest bardzo proste , wystarczy dwa razy kliknąć na nazwie serwera. W danej chwili możemy być podłączeni tylko do jednego serwera.

Przebieg operacji podłączania do serwera można prześledzić w zakładce serwery w okienku log

W przypadku gdy nie uda się podłączyć należy spróbować z innym serwerem z listy. UWAGA ! Podejmowane raz po raz próby ponownego łączenia się z tym samym serwerem mogą zakończyć się zbanowaniem.

Problemy z podłączeniem najczęściej wynikają z konfiguracji sieci z której korzystamy , zwykle kłopot z podłączeniem mają użytkownicy z LowID. Nie ma recepty na obejście problemów z podłączaniem (poza zdobyciem HighID co też nie jest gwarancją każdorazowego podłączenia) , generalnie należy wtedy uzbroić się w cierpliwość i w 15-30 minutowych odstępach czasu ponawiać próby. Dość częstą poradą z jaką można się spotkać w takim przypadku jest ponowne pobranie listy serwerów - niestety taka wskazówka jest całkowicie bezwartościowa z uwagi na to że większość serwerów posiada statyczny adres IP i ponownie pobrana lista nie zaktualizuje danych serwera w żaden sposób. To trochę tak jak porada żeby kupić następną książkę telefoniczną kiedy numer na który dzwonimy jest zajęty ;)

Jeżeli podłączenie do serwera zakończy się pomyślnie , od razu można przystąpić do wyszukiwania i pobierania , warto jednak najpierw rzucić okiem na jedno miejsce w zakładce serwery.

Jeżeli w polu widzimy "High ID" to znaczy że mamy otwarty port TCP (potrzebny do komunikacji z serwerem i innymi klientami) jeżel "Low ID" to znaczy że z uwagi na brak otwartych portów Emule nie posiada pełnej funkcjonalności - ściąganie nadal jest możliwe ale ilość źródeł z jakich możemy korzystać , mocno ograniczona. Więcej na ten temat i co można w tej sytuacji zrobić w sekcji Low ID

Lista serwerów z której korzysta Emule zapisana jest w pliku server.met , który znajduje się w katalogu emule/config.

Kademlia


Bardzo upraszczając Kademlia to bezserwerowa sieć wyszukiwania źródeł dla Emule - do korzystania z tej sieci nie są potrzebne żadne specjalne umiejętności , wystarczy podłączyć się i dalej już działa sama. Podłączenie do sieci Kad daje między innymi możliwość wyszukiwania plików w tej sieci co stanowi alternatywę dla wyszukiwania przez serwery - wyniki zwracane są z większym opóźnieniem ale uwzględniają użytkowników , którzy nie korzystają z serwerów.

Podłączenie do sieci Kad wymaga otwartego portu UDP oraz co najmniej jednego adresu użytkownika będącego uczestnikiem sieci Kad.

Najprostszy sposób na podłączenie to kliknięcie na "Podłącz" w zakładce Kad

Jeżeli emule posiada dane dowolnego użytkownika Kad , który w danej chwili jest podłączony oraz mamy otwarty port UDP na potrzeby sieci podłączenie po chwili zostanie nawiązane. Można to stwierdzić obserwując pojawianie się w zakładce kad kontaktów w formie kolorowych kulek , których barwy będą stopniowo zmieniać się w kierunku zielonego koloru (barwy kulek oznaczają jak często dany klient odpowiada na zapytania naszego emule gdzie kolor czerwony oznacza całkowity brak odpowiedzi , a zielony odpowiedź za każdym razem).

Jeżeli nie dysponujemy otwartym portem UDP , emule postara się znaleźć użytkownika ze statusem "Open" (Odpowiednik High Id w Kad) , który będzie routował nasze połączenia umożliwiając korzystanie z sieci Kad - taki użytkownik nosi nazwę Kolesia (Buddy).

Oczywiście z pomocy Kolesia będziemy korzystać tylko w przypadku braku otwartego portu UDP , nasz status w Kadzie będzie wtedy nie "Open" ale "Firewalled" czyli Kadowy odpowiednik LowId.

Jeżeli emule nie zna adresu żadnego użytkownika sieci Kad możemy wykorzystać 3 sposoby aby je zdobyć.
1. Po podłączeniu do serwera , wyszukaniu i dodaniu do pobierania co najmniej jednego pliku , odczekujemy około 1 minuty , przechodzimy do zakładki Kad i klikamy na "Bootstrap".

2. Wprowadzamy w zakładce Kad w pole adres IP i port , adres podany nam przez osobę , która jest użytkownikiem kad i klikamy na podłącz.

3. Pobieramy plik addresses.dat z tego odnośnika i umieszczamy w folderze Emule/config (przy wyłączonym Emule).

Sieć Kad może być używana zarówno w połączeniu z siecią ed2k (serwery) jak i samodzielnie

Nie opisywane tutaj elementy zakładki Kad czyli wykres i parametry kontaktów nie są do niczego potrzebne i właściwie nie powinny być widoczne , to pozostałość debugowania Kad przez developerów Emule , dlatego nie trzeba sobie łamać głowy co to wszystko oznacza ;)

Opis działania Kad


Kademlia jest algorytmem budowy zdecentralizowanej sieci P2P.Wyznacza sposób budowy sieci , rozprowadza komunikacje pomiędzy węzłami (nodes) , i wyznacza w jaki sposób ma się ona odbywać.Podstawą kademlii jest protokół internetowy i bazujące na nim bezpołączeniowe UDP. W granicach istniejącego LAN/WAN (czyli np. internetu) powstaje nowa wirtualna sieć , każdemu węzłowi w niej przypisany jest odpowiedni numer (Node-ID) przez który jest identyfikowany.Ten numer służy nie tylko do identyfikacji ale również używany jest dla innych celów algorytmu kademlii.

Kademlia służy przede wszystkim do wyszukiwania informacji o możliwych do ściągnięcia plikach.Ponieważ nie ma centralnej instancji ,która mogłaby przejąć katalogowanie i koordynacje (jak serwer w sieci eD2K) , to zadanie rozdzielane jest na wszystkich klientów w jednakowym stopniu : Węzeł który posiada informacje , oblicza najpierw konkretną , niezmienną wartość w postaci sekwencji bitów , która będzie wyróżniać tą poszczególną informacje (wartość-Hash). Długość stosowanego w sieci hashu i ID węzła muszą być jednakowe. Wtedy wyszukiwany jest w sieci inny węzeł , którego ID (liczone w bitach) wykazuje najmniejszą "odległość" do tego hashu i przekazywana jest mu odpowiednia informacja.

Jeżeli ktoś szuka właśnie tej informacji , wykona taki sam proces i połączy się z węzłem który ma zgromadzone dane o tym kto posiada dany plik w sieci.Teraz szukający może połączyć się z bezpośrednim celem swoich poszukiwań i odebrać potrzebne informacje.Zapewnione jest że szukający danych do kontaktu znajdzie je dokładnie w tym miejscu gdzie zostały one zapisane.Ponieważ sieć z natury podlega ciągłym przeobrażeniom , dane kontaktowe są rozdzielane pomiędzy kilka węzłów i aktualizowane przez źródła co kilka godzin.

Wyżej wspomniana "odległość" nie ma nic wspólnego z położeniem geograficznym, ale określa odległość w ramach pewnego zasięgu ID.Może być tak ( i faktycznie tak jest ) że na przykład węzeł z Niemiec i z Australii będą w tym sensie "sąsiadami".Odległość pomiędzy węzłami kademlii jest obliczana poprzez funkcje matematyczną XOR i wynosi zawsze log2(ID1 XOR ID2). Ten sposób postępowania ma wielkie zalety w porównaniu do sieci bazujących na serwerach , jak również wobec metody decentralnej zastosowanej w sieci Gnutella.

Przy wyszukiwaniu węzła algorytm działa inteligentnie przeszukując coraz dalej i dalej , aż znajdzie informacje albo wyszukiwanie zwróci wynik błędny.Ilość maksymalnie zapytanych węzłów podczas takiego wyszukiwania odpowiada dystansowi węzła do samego siebie. Jeżeli ilość uczestników sieci zwiększy się dwukrotnie , nie trzeba odpytywać podwójnej ilości węzłów , wystarczy zapytać o 1 więcej.Wymagana przepustowość nie wzrasta więc liniowo wraz ze wzrostem sieci.

Inne zalety wychodzą ze zdecentralizowanej stuktury ,coraz bardziej odpornej na ataki DDoS. Nawet gdyby zaatakowane zostały liczne węzły , cała sieć nie odczuje dużych skutków , i z czasem zacieśni sie na nowo wokół "dziur" i problem rozwiązuje się sam. Poprzez ulepszanie , można zredukować potrzebną do działania protokołu KAD przepustowość do niewielkich rozmiarów , wymiana źródeł w emule jest tu dobrym przykładem

Fałszywe serwery


Od dłuższego czasu pojawiają się serwery ed2k , które określa się mianem fakeserverów czyli serwerów fałszywych. Niezależnie od tego jaką funkcję pełnią (monitoring sieci przez firmy typu BigChampagne czy policję , wysyłanie spamu , wysyłanie uszkodzonych części plików , logowanie danych użytkowników) mają pewne wspólne cechy:
- Nie reagują normalnie na zapytania klientów P2P
- Ilość użytkowników i/lub indeksowanych plików jest przekłamana
- Nie zwracają poprawnych wyników wyszukiwania
- Nie zwracają prawidłowych źródeł dla pobieranych plików

Panuje zgodna opinia co do tego , że nie należy podłączać się do takich serwerów.

Aby uniknąć podłączania się do fakeserverów należy przede wszystkim wyeliminować je z listy serwerów w Emule , można to osiągnąć w następujący sposób:

Należy wejść w Ustawienia -> Serwery w Emule


Odznaczyć pierwsze trzy opcje (w zasadzie wystarczy 2 i 3 i jeżeli mamy sprawdzone adresy list serwerów do aktualizacji przy uruchamianiu)

Usunąć całą zawartość dotychczasowej listy serwerów.

Zaktualizować listę z adresów dostępnych niżej.

Całą listę dodać do serwerów statycznych(zapobiega to znikaniu serwerów z listy po przekroczeniu ilości nieudanych prób podłączenia - ilość takich prób można zdefiniować w Ustawienia -> Serweryw Emule)

Dodatkowym środkiem bezpieczeństwa jest stosowanie filtra IP - więcej informacji w sekcji Bezpieczeństwo

Dodawanie serwerów do Emule


Istnieje kilka sposobów na dodanie nowych adresów do listy serwerów :

- Kliknięcie na specjalny odnośnik zawierający adres listy serwerów (bądź pojedyńczego serwera) w postaci linku ed2k

Lista serwerów
Pojedyńczy serwer

Warunkiem działania takich odnośników jest włączona obsługa linków ed2k na poziomie domyślnej przeglądarki internetowej.

- Wprowadzenie adresu do aktualizacji pliku server.met w odpowiednim miejscu w zakładce serwery i kliknięcie na "aktualizuj".


- Ręczne ściągnięcie pliku server.met i podmiana starego na nowy (przy wyłączonym Emule) w katalogu Emule/config.

- Dodawanie pojedyńczych serwerów przez wprowadzenie Ip i portu w zakładce serwery


Adresy sprawdzonych plików Server.met

http://www.peerates.net/servers.php Pobierz
http://elboiler.p2pforum.it/server.met Pobierz
http://www.gruk.org/server.met Pobierz

Możliwe jest również wprowadzenie automatycznej aktualizacji listy serwerów przy starcie Emule z wprowadzonego przez nas adresu.

Należy wejśc w Ustawienia -> Serwery w Emule zaznaczyć 1 od góry opcję i kliknąć na "List" , w pliku tekstowym , który się otworzy wklejamy adres do pliku server.met i zapisujemy przez Ctrl + S


Dodawanie serwerów przy pomocy usług sieciowych


Linki do list serwerów można dodać również do pliku webservices.dat , dzięki czemu w Narzędzia -> Linki w Emule pojawi nam się opcja aktualizacji przez 1 kliknięcie.