NajnowaszaWersja: 0.50a | Community: 0.70a
 Deutsch English Français Hebrew Chinese Traditional Spanish Italian Polish Lithuanian Estonian Danish Swedish Dutch (Netherlands) Portuguese (Brazil) Czech Portuguese - Portuga Russian Catalan Turkish Finnish Romanian Greek Serbian Chinese Simplified 




Get eMule at SourceForge.net. Fast, secure and Free Open Source software downloads

Obs³uga Uszkodzeñ HelpNAV

eMule u¿ywa wielu sposobów by zapewniæ, ¿e pliki w sieci s± udostêpniane i pobierane bez b³êdów. Je¶li wykryte zostanie uszkodzenie, eMule u¿yje zaawansowanych procedur by je naprawiæ z minimaln± ilo¶ci± danych do ponownego pobrania.

Hash pliku i ICH - Intelligent Corruption Handling (Inteligentna obs³uga uszkodzeñ)

Hash pliku, Part Hashes i Hashset
Dla ka¿dego udostêpnianego pliku w sieci przypisana jest unikalna warto¶æ tworzona przy u¿yciu algorytmu MD4. Jest ona nazywana hashem pliku i jest zawarta w ka¿dym standardowym linku eD2k, np.

ed2k://|file|nazwa|12043984|6744FC42EDA527B27F0B2F2538728B3E|/

gdzie 6744FC42EDA527B27F0B2F2538728B3E to hash czyni±cy plik unikalnym w ca³ej sieci.
Hash pliku wyliczany jest przez podzia³ ca³ego pliku na czê¶ci po 9.28MB. Dla ka¿dej z nich tworzony jest part hash przy pomocy algorytmu MD4. Z nich (wszystkie razem nosz± nazwê hashset) wyliczany jest koñcowy hash pliku. Na przyk³ad plik o rozmiarze 600 MB zostanie podzielony na 65 czê¶ci, z których ka¿da bêdzie mia³a swój part hash u¿yty do utworzenia koñcowego wyniku.
By siê upewniæ, ¿e eMule zawsze otrzyma poprawny hashset, mo¿na utworzyæ link który go zawiera, np.

ed2k://|file|nazwa|12043984|6744FC42EDA527B27F0B2F2538728B3E|p=264E6F6B587985D87EB0157A2A7BAF40:17B9A4D1DCE0E4C2B672DF257145E98A|/

gdzie warto¶æ p= oznacza hashset. Ka¿dy part hash oddzielony jest ":". Ten plik ma rozmiar 12043984 bajtów (=11.49 MB), co oznacza ¿e ma jedn± pe³n± czê¶æ o rozmiarze 9.28 MB i drug± niepe³n±, czego wynikiem s± dwa part hashes.

ICH Inteligentna obs³uga uszkodzeñ
Jak tylko eMule pobierze tak± czê¶æ, zostanie ona sprawdzona czy pobrane dane pasuj± do wyliczonego wcze¶niej part hash dla tej czê¶ci. Je¶li tak, zostaje ona udostêpniona by lepiej rozpowszechniæ j± w sieci.
Je¶li nie, znaczy to ¿e zosta³a uszkodzona i musi byæ pobrana jeszcze raz. By unikn±æ pobierania ca³ych 9.28 MB, ICH pobiera jej pierwsze 180 KB i sprawdza jeszcze raz ca³± czê¶æ od pocz±tku. Je¶li wci±¿ nie zgadza siê part hash, pobrane zostanie kolejne 180 KB, sprawdzone, itd. a¿ do czasu gdy obie warto¶ci bêd± zgodne. W najlepszym przypadku trzeba bêdzie pobraæ jedynie 180 KB danych, je¶li uszkodzenie powsta³o na pocz±tku czê¶ci. W najgorszym przypadku trzeba bêdzie pobraæ ca³± czê¶æ, je¶li uszkodzenie powsta³o gdzie¶ pod koniec. ¦rednio ICH oszczêdza 50% danych w przypadku uszkodzenia.

AICH - Advanced Intelligent Corruption Handling (Zaawansowana inteligentna obs³uga uszkodzeñ)
Standardowa ICH jest do¶æ efektywna, lecz ma ograniczenia, gdy¿ jest w stanie sprawdziæ tylko ca³e 9.28 MB danych i nie radzi sobie z mniejszymi blokami. Je¶li wiêcej ni¿ jedna pozycja w czê¶ci jest uszkodzona lub z³o¶liwi klienci bez przerwy wysy³aj± uszkodzone dane lub nawet z³y part hash, ICH staje siê bezu¿yteczna.
Wtedy AICH zajmie siê zachowaniem integralno¶ci danych z minimaln± ilo¶ci± danych do ponownego pobrania tworz±c o wiele lepsze warto¶ci hash.

Root Hash, Block Hash i AICH Hashset



Tym razem punktem z którego zaczynamy s± nasze czê¶ci po 9.28 MB. Ka¿da z nich jest dzielona na bloki po 180 KB, czego wynikiem s± 53 bloki na ka¿d± czê¶æ, dla których wyliczany jest hash u¿ywaj±c algorytmu SHA1. Warto¶ci te nazywane s± Block Hashes i formuj± najni¿szy poziom kompletnego AICH hashset.
Rysunek powy¿ej przedstawia jak pe³ne drzewo hashów jest tworzone z bloków pliku podzielonego na 4 czê¶ci. Ka¿da czê¶æ zawiera 53 bloki daj±ce w sumie 212 Block Hashes które tworz± drzewo kolejnych 7 poziomów a¿ obliczony zostanie Root Hash. Ca³e drzewo nazywane jest AICH Hashset.
Zielone i ¿ó³te pola ukazuj± matematyczne zale¿no¶ci pomiêdzy najmniejszym Block Hash i Root Hash. To oznacza, ¿e je¶li mamy zaufany Root Hash, ca³e drzewo mo¿e zostaæ sprawdzone na jego podstawie.
eMule potrafi tworzyæ linki zawieraj±ce Root Hash, np.

ed2k://|file|nazwa|12043984|6744FC42EDA527B27F0B2F2538728B3E|h=A2NWOTYURUU3P3GCUB6KCNW3FTYYELQB|/

gdzie h= oznacza Root Hash. Linki do nowych plików powinny zawieraæ t± warto¶æ, gdy¿ znacznie poprawia odporno¶æ na uszkodzenia, dostarczaj±c zaufany Root Hash. Przeczytaj Wiarygodno¶æ Root Hash

Odzyskiwanie uszkodzonych danych
Gdy tylko eMule wykryje uszkodzenie, ¿±da od losowego klienta przes³ania Pakietu Odbudowuj±cego z kompletnym AICH Hashset. Zawiera on wszystkie 53 Block Hashes uszkodzonej czê¶ci i pewn± liczbê Verifying Hashes ca³ego drzewa. Powy¿szy rysunek przedstawia Pakiet Odbudowuj±cy dla 4 czê¶ci pliku. Liczba Verifying Hashes jest wyznaczana z liczby czê¶ci pliku (2^x >= 'liczba czê¶ci', gdzie x = Liczba Verifying Hashes).
Po odbiorze Pakietu Odbudowuj±cego eMule sprawdza czy Verifying Hashes zgadzaj± siê z Root Hash. Je¶li do siebie pasuj±, eMule sprawdza wszystkie 53 bloki uszkodzonej czê¶ci czy zgadzaj± siê z Block Hashes z Pakietu Odbudowuj±cego. AICH przywraca nastêpnie wszystkie bloki, które pasuj± do ich Block Hash by zostawiæ tylko te, które nale¿y ponownie pobraæ z powodu uszkodzeñ.
W logu udana próba odzyskania bêdzie wygl±da³a tak:

09.09.2004 02:43:43: Pobrana czê¶æ 6 jest uszkodzona ([plik])
09.09.2004 02:43:46: AICH successfully recovered 8.22 MB of 9.28 MB from part 6 for [plik]

Wiarygodno¶æ Root Hash
Najlepiej pobieraæ pliki z linków zawieraj±cych Root Hash. Przyjmuj±c, ¿e ¼ród³o z którego mamy link jest wiarygodne, Root Hash od razu zostanie zapisany na dysk dla tego pliku.
Je¶li w linku nie zostanie podany Root Hash, eMule musi zaufaæ ¼ród³om które go prze¶l±. Uwa¿any jest on za godny zaufania je¶li przynajmniej 10 ró¿nych ¼róde³ prze¶le tê sam± warto¶æ i przynajmniej u 92% ¼róde³ jest ona zgodna. Poniewa¿ taki Root Hash nie jest tak godny zaufania, bêdzie poprawny tylko przez czas trwania sesji i nie zostanie zapisany. Tak¿e linki zawieraj±ce taki Root Hash nie mog± zostaæ utworzone.
Jak tylko eMule ukoñczy ca³y AICH Hashset, np. po pobraniu pliku, propaguje swój Root Hash wsród innych klientów.

Uwagi:
Nowe lub rzadkie pliki prawdopodobnie bêd± mia³y zbyt ma³o ¼róde³ by wygenerowaæ zaufany Root Hash. Zalecane jest rozprowadzanie takich plików przez linki zawieraj±ce za³±czony hash.
Je¶li nie istnieje Root Hash lub jest on uszkodzony, eMule wci±¿ jest w stanie pobraæ plik na normalnych warunkach. Funkcja AICH nie mo¿e zostaæ u¿yta w tym przypadku.
Z powodu mo¿liwych du¿ych rozmiarów AICH Hashsets nie s± przechowywane w pamiêci, lecz zapisane w pliku known2.met i odczytywane tylko w razie potrzeby.
AICH jest przydatny tylko dla klientów eMule v.44a i powy¿ej lecz zachowuje kompatybilno¶æ ze starszymi wersjami.

Applies to: v.44a+
Update on: 2004-09-11 by Monk


Last Update: 19.02.2005 2:10
FAQ
Informacje Ogólne
Ustawienia
Porty, Firewalle i Router
Serwery
Mo¿liwo¶ci
 
  Wyszukiwanie Plików
System Kredytów
Identyfikacja U¿ytkownika
Ban Agresywnych Klientów
Wymiana ¬róde³
Podgl±d Plików
Sygnatura Online
IRC
Znajomi
Filtry IP
Kategorie
Serwer WWW
Prze³±czniki Linii Poleceñ
MuleMRTG
Linki eD2k
Zarz±dzanie ¬ród³ami
Obs³uga Uszkodzeñ
Rozwi±zywanie Problemów
  Dla Pocz±tkuj±cych
Przewodnik Po Sieci
Narzêdzia


Privacy Policy