Difference between revisions of "AICH-de"

From AMule Project FAQ
Jump to: navigation, search
(Added Language Links)
(Language Link)
Line 8: Line 8:
 
== Begriffserkärungen ==
 
== Begriffserkärungen ==
  
Jeder [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]] ist in 53 je 180KB grosse St&uumlcke unterteilt, und f&uumlr jedes dieser St&uumlcke wird nach dem [http://www.faqs.org/rfcs/rfc3174.html SHA1-Algorithmus] eine Pr&uumlfsumme ermittelt. Jede dieser Pr&uumlfsummen wird [[Block Hash|Block-Pr&uumlfsumme]] genannt. Durch paarweise Kombination von [[Block Hash|Block-Pr&uumlfsumme]]n (d.h. jedes St&uumlck mit dem St&uumlck neben sich) wird [[aMule-de|aMule]] einen ganzen Baum von Pr&uumlfsummen erhalten (dieser Baum, welcher folglich ein aus allen anderen [[Block Hash|Block-Pr&uumlfsumme]]n gebildetes Hashset ist, wird [[AICH Hashset|AICH-Pr&uumlfsummensatz]] genannt). Jede Pr&uumlfsumme, die weder eine [[Block Hash|Block-Pr&uumlfsumme]], noch die [[Root Hash-de|Stamm-Pr&uumlfsumme]] ist, ist eine [[Verifying Hash-de|Kontroll-Pr&uumlfsumme]]. Die Pr&uumlfsumme an der Spitze ist die [[Root Hash-de|Stamm-Pr&uumlfsumme]], und es wird angenommen, dass sie beim Ver&oumlffentlichen zusammen mit dem [[ed2k link-de|ed2k-Link]] zur Verf&uumlgung gestellt wird.
+
Jeder [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]] ist in 53 je 180KB grosse St&uumlcke unterteilt, und f&uumlr jedes dieser St&uumlcke wird nach dem [http://www.faqs.org/rfcs/rfc3174.html SHA1-Algorithmus] eine Pr&uumlfsumme ermittelt. Jede dieser Pr&uumlfsummen wird [[Block Hash|Block-Pr&uumlfsumme]] genannt. Durch paarweise Kombination von [[Block Hash|Block-Pr&uumlfsumme]]n (d.h. jedes St&uumlck mit dem St&uumlck neben sich) wird [[aMule-de|aMule]] einen ganzen Baum von Pr&uumlfsummen erhalten (dieser Baum, welcher folglich ein aus allen anderen [[Block Hash|Block-Pr&uumlfsumme]]n gebildetes Hashset ist, wird [[AICH Hashset-de|AICH-Pr&uumlfsummensatz]] genannt). Jede Pr&uumlfsumme, die weder eine [[Block Hash|Block-Pr&uumlfsumme]], noch die [[Root Hash-de|Stamm-Pr&uumlfsumme]] ist, ist eine [[Verifying Hash-de|Kontroll-Pr&uumlfsumme]]. Die Pr&uumlfsumme an der Spitze ist die [[Root Hash-de|Stamm-Pr&uumlfsumme]], und es wird angenommen, dass sie beim Ver&oumlffentlichen zusammen mit dem [[ed2k link-de|ed2k-Link]] zur Verf&uumlgung gestellt wird.
  
 
== Die eigentliche Funktionsweise ==
 
== Die eigentliche Funktionsweise ==
  
Wenn ein [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]] als [[Corrupt-de|verfälscht]] bekannt ist, wird [[aMule-de|aMule]] versuchen, von einem [[Client-de|Client]], der die Datei vollständig hat, einen [[AICH Hashset|AICH-Pr&uumlfsummensatz]] zu bekommen.
+
Wenn ein [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]] als [[Corrupt-de|verfälscht]] bekannt ist, wird [[aMule-de|aMule]] versuchen, von einem [[Client-de|Client]], der die Datei vollständig hat, einen [[AICH Hashset-de|AICH-Pr&uumlfsummensatz]] zu bekommen.
Er wird alle Pr&uumlfsummen der 53 St&uumlcke des [[Corrupt-de|verfälscht]]en [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]]s und die erforderlichen [[Verifying Hash-de|Kontroll-Pr&uumlfsumme]]n anfragen, um den [[AICH Hashset|AICH-Pr&uumlfsummensatz]]-Baum bis zur [[Root Hash-de|Stamm-Pr&uumlfsumme]] vervollständigen zu k&oumlnnen.
+
Er wird alle Pr&uumlfsummen der 53 St&uumlcke des [[Corrupt-de|verfälscht]]en [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]]s und die erforderlichen [[Verifying Hash-de|Kontroll-Pr&uumlfsumme]]n anfragen, um den [[AICH Hashset-de|AICH-Pr&uumlfsummensatz]]-Baum bis zur [[Root Hash-de|Stamm-Pr&uumlfsumme]] vervollständigen zu k&oumlnnen.
  
 
Sobald er die [[Block Hash|Block-Pr&uumlfsumme]]en und die [[Verifying Hash-de|Kontroll-Pr&uumlfsumme]]n bekommt, baut er den Baum zum Ermitteln der [[Root Hash-de|Stamm-Pr&uumlfsumme]] auf, und &uumlberpr&uumlft, ob es die gleiche [[Root Hash-de|Stamm-Pr&uumlfsumme]] ist, den der originale [[ed2k link-de|eD2k-Link]] liefert. Falls ja, dann werden diese [[Block Hash|Block-Pr&uumlfsumme]]n als glaubw&uumlrdig angenommen. Falls nicht, dann werden diese [[Block Hash|Block-Pr&uumlfsumme]]n und [[Verifying Hash-de|Kontroll-Pr&uumlfsumme]]n verworfen, und als Fakes angesehen.
 
Sobald er die [[Block Hash|Block-Pr&uumlfsumme]]en und die [[Verifying Hash-de|Kontroll-Pr&uumlfsumme]]n bekommt, baut er den Baum zum Ermitteln der [[Root Hash-de|Stamm-Pr&uumlfsumme]] auf, und &uumlberpr&uumlft, ob es die gleiche [[Root Hash-de|Stamm-Pr&uumlfsumme]] ist, den der originale [[ed2k link-de|eD2k-Link]] liefert. Falls ja, dann werden diese [[Block Hash|Block-Pr&uumlfsumme]]n als glaubw&uumlrdig angenommen. Falls nicht, dann werden diese [[Block Hash|Block-Pr&uumlfsumme]]n und [[Verifying Hash-de|Kontroll-Pr&uumlfsumme]]n verworfen, und als Fakes angesehen.
Line 25: Line 25:
 
[[client-de|Client]]s fragen andere [[client-de|Client]]s nach der [[Root Hash-de|Stamm-Pr&uumlfsumme]]. Wenn dir mindestens 10 andere [[client-de|Client]]s die gleiche [[Root Hash-de|Stamm-Pr&uumlfsumme]] schicken, und das 92% oder mehr der insgesamt erhaltenen [[Root Hash-de|Stamm-Pr&uumlfsumme]]n sind, wird diese [[Root Hash-de|Stamm-Pr&uumlfsumme]] '''nur f&uumlr die laufende Sitzung''' als glaubw&uumlrdig betrachtet. Er wird nirgends auf der Platte gespeichert, und verbleibt nur im (fl&uumlchtigen) Speicher. Auch wird er nicht an andere, danach fragende [[client-de|Client]]s weitergegeben.
 
[[client-de|Client]]s fragen andere [[client-de|Client]]s nach der [[Root Hash-de|Stamm-Pr&uumlfsumme]]. Wenn dir mindestens 10 andere [[client-de|Client]]s die gleiche [[Root Hash-de|Stamm-Pr&uumlfsumme]] schicken, und das 92% oder mehr der insgesamt erhaltenen [[Root Hash-de|Stamm-Pr&uumlfsumme]]n sind, wird diese [[Root Hash-de|Stamm-Pr&uumlfsumme]] '''nur f&uumlr die laufende Sitzung''' als glaubw&uumlrdig betrachtet. Er wird nirgends auf der Platte gespeichert, und verbleibt nur im (fl&uumlchtigen) Speicher. Auch wird er nicht an andere, danach fragende [[client-de|Client]]s weitergegeben.
  
Wenn der Dateidownload vollständig ist, wird die [[Root Hash-de|Stamm-Pr&uumlfsumme]] mit dem gesamten [[AICH Hashset|AICH-Pr&uumlfsummensatz]] errechnet, und in der ''~/.aMule/known2.met'' gespeichert, um ihn auf Anfrage anderen [[client-de|Client]]s zur Verf&uumlgung zu stellen.
+
Wenn der Dateidownload vollständig ist, wird die [[Root Hash-de|Stamm-Pr&uumlfsumme]] mit dem gesamten [[AICH Hashset-de|AICH-Pr&uumlfsummensatz]] errechnet, und in der ''~/.aMule/known2.met'' gespeichert, um ihn auf Anfrage anderen [[client-de|Client]]s zur Verf&uumlgung zu stellen.
  
== Speichern des [[AICH Hashset|AICH-Pr&uumlfsummensatz]]es ==
+
== Speichern des [[AICH Hashset-de|AICH-Pr&uumlfsummensatz]]es ==
  
Sobald eine Datei komplett runtergeladen wurde, errechnet [[aMule-de|aMule]] ihren gesamten [[AICH Hashset|AICH-Pr&uumlfsummensatz]], und speichert diesen in der ''~/.aMule/known2.met''. So kann er, wann auch immer ein [[client-de|Client]] ihn abfragt, bereitgestellt werden, ohne ihn jedes Mal erneut berechnen zu m&uumlssen.
+
Sobald eine Datei komplett runtergeladen wurde, errechnet [[aMule-de|aMule]] ihren gesamten [[AICH Hashset-de|AICH-Pr&uumlfsummensatz]], und speichert diesen in der ''~/.aMule/known2.met''. So kann er, wann auch immer ein [[client-de|Client]] ihn abfragt, bereitgestellt werden, ohne ihn jedes Mal erneut berechnen zu m&uumlssen.
  
 
Bitte beachte, dass [[ICH-de|ICH]] solange nicht bei einer Datei benutzt wird, wie daf&uumlr die AICH-Methode verwendet werden kann.
 
Bitte beachte, dass [[ICH-de|ICH]] solange nicht bei einer Datei benutzt wird, wie daf&uumlr die AICH-Methode verwendet werden kann.

Revision as of 14:44, 3 September 2007

English | Deutsch

Beschreibung

Über den Erfolg von ICH braucht man nicht zu diskutieren, aber es ist ein Punkt erreicht, an dem es das Leben erleichtern w&uumlrde, wenn man tatsächlich genau w&uumlsste, welches bestimmte Teilst&uumlck eines Chunks verfälscht ist. Das wird besonders bedeutungsvoll, wenn mehrere Chunks verfälscht sind. AICH (Advanced Intelligent Corruption Handler) nimmt sich dieses Problems an, und erlaubt es aMule, und anderen, es unterst&uumltzenden Clients, tatsächlich zu wissen, welche Teilbereiche eines Chunks verfälscht sind.

Begriffserkärungen

Jeder Chunk ist in 53 je 180KB grosse St&uumlcke unterteilt, und f&uumlr jedes dieser St&uumlcke wird nach dem SHA1-Algorithmus eine Pr&uumlfsumme ermittelt. Jede dieser Pr&uumlfsummen wird Block-Pr&uumlfsumme genannt. Durch paarweise Kombination von Block-Pr&uumlfsummen (d.h. jedes St&uumlck mit dem St&uumlck neben sich) wird aMule einen ganzen Baum von Pr&uumlfsummen erhalten (dieser Baum, welcher folglich ein aus allen anderen Block-Pr&uumlfsummen gebildetes Hashset ist, wird AICH-Pr&uumlfsummensatz genannt). Jede Pr&uumlfsumme, die weder eine Block-Pr&uumlfsumme, noch die Stamm-Pr&uumlfsumme ist, ist eine Kontroll-Pr&uumlfsumme. Die Pr&uumlfsumme an der Spitze ist die Stamm-Pr&uumlfsumme, und es wird angenommen, dass sie beim Ver&oumlffentlichen zusammen mit dem ed2k-Link zur Verf&uumlgung gestellt wird.

Die eigentliche Funktionsweise

Wenn ein Chunk als verfälscht bekannt ist, wird aMule versuchen, von einem Client, der die Datei vollständig hat, einen AICH-Pr&uumlfsummensatz zu bekommen. Er wird alle Pr&uumlfsummen der 53 St&uumlcke des verfälschten Chunks und die erforderlichen Kontroll-Pr&uumlfsummen anfragen, um den AICH-Pr&uumlfsummensatz-Baum bis zur Stamm-Pr&uumlfsumme vervollständigen zu k&oumlnnen.

Sobald er die Block-Pr&uumlfsummeen und die Kontroll-Pr&uumlfsummen bekommt, baut er den Baum zum Ermitteln der Stamm-Pr&uumlfsumme auf, und &uumlberpr&uumlft, ob es die gleiche Stamm-Pr&uumlfsumme ist, den der originale eD2k-Link liefert. Falls ja, dann werden diese Block-Pr&uumlfsummen als glaubw&uumlrdig angenommen. Falls nicht, dann werden diese Block-Pr&uumlfsummen und Kontroll-Pr&uumlfsummen verworfen, und als Fakes angesehen.

Sobald die Block-Pr&uumlfsummen als verlässlich betrachtet werden, wird jeder 180KB-Teil des verfälschten Chunks ermittelt (nach dem SHA1-Algorithmus), um die entstehende Pr&uumlfsumme mit der empfangenen Stamm-Pr&uumlfsumme zu vergleichen. Wenn sie identisch sind, ist der Teil nicht verfälscht, sodass man ihn nicht erneut runterladen muss. Wenn sie sich unterscheiden, dann ist der Teil verfälscht, und wird erneut runtergeladen.

Wie wird die Stamm-Pr&uumlfsumme weitergegeben?

Die ideale Art und Weise, die Stamm-Pr&uumlfsumme weiterzugeben, ist &uumlber den eD2k-Link. Allerdings werden Dateien &oumlfter &uumlber die Suchfunktion des eD2k-Clients runtergeladen. Auch sollte der eD2k-Link die Stamm-Pr&uumlfsumme nicht in seiner URL enthalten. In solchen Fällen wird eine andere Methode verwendet, um die Stamm-Pr&uumlfsumme einer Datei zu erhalten.

Clients fragen andere Clients nach der Stamm-Pr&uumlfsumme. Wenn dir mindestens 10 andere Clients die gleiche Stamm-Pr&uumlfsumme schicken, und das 92% oder mehr der insgesamt erhaltenen Stamm-Pr&uumlfsummen sind, wird diese Stamm-Pr&uumlfsumme nur f&uumlr die laufende Sitzung als glaubw&uumlrdig betrachtet. Er wird nirgends auf der Platte gespeichert, und verbleibt nur im (fl&uumlchtigen) Speicher. Auch wird er nicht an andere, danach fragende Clients weitergegeben.

Wenn der Dateidownload vollständig ist, wird die Stamm-Pr&uumlfsumme mit dem gesamten AICH-Pr&uumlfsummensatz errechnet, und in der ~/.aMule/known2.met gespeichert, um ihn auf Anfrage anderen Clients zur Verf&uumlgung zu stellen.

Speichern des AICH-Pr&uumlfsummensatzes

Sobald eine Datei komplett runtergeladen wurde, errechnet aMule ihren gesamten AICH-Pr&uumlfsummensatz, und speichert diesen in der ~/.aMule/known2.met. So kann er, wann auch immer ein Client ihn abfragt, bereitgestellt werden, ohne ihn jedes Mal erneut berechnen zu m&uumlssen.

Bitte beachte, dass ICH solange nicht bei einer Datei benutzt wird, wie daf&uumlr die AICH-Methode verwendet werden kann.