Difference between revisions of "AICH-de"

From AMule Project FAQ
Jump to: navigation, search
m (Removed Version Tag)
 
(5 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
== Beschreibung ==
 
== Beschreibung ==
 
+
Über den Erfolg von [[ICH-de|ICH]] braucht man nicht zu diskutieren, aber es ist ein Punkt erreicht, an dem es das Leben erleichtern würde, wenn man tatsächlich genau wüsste, welches bestimmte Teilstück eines [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]]s [[Corrupt-de|verfälscht]] ist.
&Uumlber den Erfolg von [[ICH-de|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 [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]]s [[Corrupt-de|verfälscht]] ist.
+
Das wird besonders bedeutungsvoll, wenn mehrere [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]]s [[Corrupt-de|verfälscht]] sind. [[AICH-de|AICH]] (Advanced Intelligent [[Corrupt-de|Corrupt]]ion Handler) nimmt sich dieses Problems an, und erlaubt es [[aMule-de|aMule]], und anderen, es unterstützenden [[Client-de|Client]]s, tatsächlich zu wissen, welche Teilbereiche eines [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]]s [[Corrupt-de|verfälscht]] sind.
Das wird besonders bedeutungsvoll, wenn mehrere [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]]s [[Corrupt-de|verfälscht]] sind. [[AICH-de|AICH]] (Advanced Intelligent [[Corrupt-de|Corrupt]]ion Handler) nimmt sich dieses Problems an, und erlaubt es [[aMule-de|aMule]], und anderen, es unterst&uumltzenden [[Client-de|Client]]s, tatsächlich zu wissen, welche Teilbereiche eines [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]]s [[Corrupt-de|verfälscht]] sind.
+
  
 
== Begriffserkärungen ==
 
== Begriffserkärungen ==
 
+
Jeder [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]] ist in 53 je 180KB grosse Stücke unterteilt, und für jedes dieser Stücke wird nach dem [http://www.faqs.org/rfcs/rfc3174.html SHA1-Algorithmus] eine Prüfsumme ermittelt. Jede dieser Prüfsummen wird [[Block Hash-de|Block-Prüfsumme]] genannt. Durch paarweise Kombination von [[Block Hash-de|Block-Prüfsumme]]n (d.h. jedes Stück mit dem Stück neben sich) wird [[aMule-de|aMule]] einen ganzen Baum von Prüfsummen erhalten (dieser Baum, welcher folglich ein aus allen anderen [[Block Hash-de|Block-Prüfsumme]]n gebildetes Hashset ist, wird [[AICH Hashset-de|AICH-Prüfsummensatz]] genannt). Jede Prüfsumme, die weder eine [[Block Hash-de|Block-Prüfsumme]], noch die [[Root Hash-de|Stamm-Prüfsumme]] ist, ist eine [[Verifying Hash-de|Kontroll-Prüfsumme]]. Die Prüfsumme an der Spitze ist die [[Root Hash-de|Stamm-Prüfsumme]], und es wird angenommen, dass sie beim Veröffentlichen zusammen mit dem [[ed2k link-de|ed2k-Link]] zur Verfügung 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|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|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-de|AICH-Prüfsummensatz]] zu bekommen.
 +
Er wird alle Prüfsummen der 53 Stücke des [[Corrupt-de|verfälscht]]en [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]]s und die erforderlichen [[Verifying Hash-de|Kontroll-Prüfsumme]]n anfragen, um den [[AICH Hashset-de|AICH-Prüfsummensatz]]-Baum bis zur [[Root Hash-de|Stamm-Prüfsumme]] vervollständigen zu können.
  
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.
+
Sobald er die [[Block Hash-de|Block-Prüfsumme]]en und die [[Verifying Hash-de|Kontroll-Prüfsumme]]n bekommt, baut er den Baum zum Ermitteln der [[Root Hash-de|Stamm-Prüfsumme]] auf, und überprüft, ob es die gleiche [[Root Hash-de|Stamm-Prüfsumme]] ist, den der originale [[ed2k link-de|eD2k-Link]] liefert. Falls ja, dann werden diese [[Block Hash-de|Block-Prüfsumme]]n als glaubwürdig angenommen. Falls nicht, dann werden diese [[Block Hash-de|Block-Prüfsummen]] und [[Verifying Hash-de|Kontroll-Prüfsumme]]n verworfen, und als Fakes angesehen.
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|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.
+
 
+
Sobald er die [[Block Hash|Block-Pr&uumlfsumme]]en und die [[Verifying Hash|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|Kontroll-Pr&uumlfsumme]]n verworfen, und als Fakes angesehen.
+
 
+
Sobald die [[Block Hash|Block-Pr&uumlfsumme]]n als verlässlich betrachtet werden, wird jeder 180KB-Teil des [[Corrupt-de|verfälscht]]en [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]]s ermittelt (nach dem [http://www.faqs.org/rfcs/rfc3174.html SHA1-Algorithmus]), um die entstehende Pr&uumlfsumme mit der empfangenen [[Root Hash-de|Stamm-Pr&uumlfsumme]] zu vergleichen. Wenn sie identisch sind, ist der Teil nicht [[Corrupt-de|verfälscht]], sodass man ihn nicht erneut runterladen muss. Wenn sie sich unterscheiden, dann ist der Teil [[Corrupt-de|verfälscht]], und wird erneut runtergeladen.
+
 
+
== Wie wird die [[Root Hash-de|Stamm-Pr&uumlfsumme]] weitergegeben? ==
+
  
Die ideale Art und Weise, die [[Root Hash-de|Stamm-Pr&uumlfsumme]] weiterzugeben, ist &uumlber den [[ed2k link-de|eD2k-Link]]. Allerdings werden Dateien &oumlfter &uumlber die Suchfunktion des [[FAQ_eD2k-Kademlia#What_is_ED2K?|eD2k]]-[[client-de|Client]]s runtergeladen. Auch sollte der [[ed2k link-de|eD2k-Link]] die [[Root Hash-de|Stamm-Pr&uumlfsumme]] nicht in seiner URL enthalten. In solchen Fällen wird eine andere Methode verwendet, um die [[Root Hash-de|Stamm-Pr&uumlfsumme]] einer Datei zu erhalten.
+
Sobald die [[Block Hash-de|Block-Prüfsumme]]n als verlässlich betrachtet werden, wird jeder 180KB-Teil des [[Corrupt-de|verfälscht]]en [[FAQ_eD2k-Kademlia-de#Was_ist_ein_Chunk?|Chunk]]s ermittelt (nach dem [http://www.faqs.org/rfcs/rfc3174.html SHA1-Algorithmus]), um die entstehende Prüfsumme mit der empfangenen [[Root Hash-de|Stamm-Prüfsumme]] zu vergleichen. Wenn sie identisch sind, ist der Teil nicht [[Corrupt-de|verfälscht]], sodass man ihn nicht erneut runterladen muss. Wenn sie sich unterscheiden, dann ist der Teil [[Corrupt-de|verfälscht]], und wird erneut runtergeladen.
  
[[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.
+
== Wie wird die [[Root Hash-de|Stamm-Prüfsumme]] weitergegeben? ==
 +
Die ideale Art und Weise, die [[Root Hash-de|Stamm-Prüfsumme]] weiterzugeben, ist über den [[ed2k link-de|eD2k-Link]]. Allerdings werden Dateien öfter über die Suchfunktion des [[FAQ_eD2k-Kademlia-de#Was_ist_ED2K?|eD2k]]-[[client-de|Client]]s runtergeladen. Auch sollte der [[ed2k link-de|eD2k-Link]] die [[Root Hash-de|Stamm-Prüfsumme]] nicht in seiner URL enthalten. In solchen Fällen wird eine andere Methode verwendet, um die [[Root Hash-de|Stamm-Prüfsumme]] einer Datei zu erhalten.
  
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.
+
[[client-de|Client]]s fragen andere [[client-de|Client]]s nach der [[Root Hash-de|Stamm-Prüfsumme]]. Wenn dir mindestens 10 andere [[client-de|Client]]s die gleiche [[Root Hash-de|Stamm-Prüfsumme]] schicken, und das 92% oder mehr der insgesamt erhaltenen [[Root Hash-de|Stamm-Prüfsumme]]n sind, wird diese [[Root Hash-de|Stamm-Prüfsumme]] '''nur für die laufende Sitzung''' als glaubwürdig betrachtet. Er wird nirgends auf der Platte gespeichert, und verbleibt nur im (flüchtigen) Speicher. Auch wird er nicht an andere, danach fragende [[client-de|Client]]s weitergegeben.
  
== Speichern des [[AICH Hashset|AICH-Pr&uumlfsummensatz]]es ==
+
Wenn der Dateidownload vollständig ist, wird die [[Root Hash-de|Stamm-Prüfsumme]] mit dem gesamten [[AICH Hashset-de|AICH-Prüfsummensatz]] errechnet, und in der ''~/.aMule/known2.met'' gespeichert, um ihn auf Anfrage anderen [[client-de|Client]]s zur Verfügung zu stellen.
  
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.
+
== Speichern des [[AICH Hashset-de|AICH-Prüfsummensatz]]es ==
 +
Sobald eine Datei komplett runtergeladen wurde, errechnet [[aMule-de|aMule]] ihren gesamten [[AICH Hashset-de|AICH-Prüfsummensatz]], 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üssen.
  
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ür die AICH-Methode verwendet werden kann.

Latest revision as of 09:37, 29 June 2008

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ürde, wenn man tatsächlich genau wüsste, welches bestimmte Teilstück 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ützenden Clients, tatsächlich zu wissen, welche Teilbereiche eines Chunks verfälscht sind.

Begriffserkärungen

Jeder Chunk ist in 53 je 180KB grosse Stücke unterteilt, und für jedes dieser Stücke wird nach dem SHA1-Algorithmus eine Prüfsumme ermittelt. Jede dieser Prüfsummen wird Block-Prüfsumme genannt. Durch paarweise Kombination von Block-Prüfsummen (d.h. jedes Stück mit dem Stück neben sich) wird aMule einen ganzen Baum von Prüfsummen erhalten (dieser Baum, welcher folglich ein aus allen anderen Block-Prüfsummen gebildetes Hashset ist, wird AICH-Prüfsummensatz genannt). Jede Prüfsumme, die weder eine Block-Prüfsumme, noch die Stamm-Prüfsumme ist, ist eine Kontroll-Prüfsumme. Die Prüfsumme an der Spitze ist die Stamm-Prüfsumme, und es wird angenommen, dass sie beim Veröffentlichen zusammen mit dem ed2k-Link zur Verfügung 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üfsummensatz zu bekommen. Er wird alle Prüfsummen der 53 Stücke des verfälschten Chunks und die erforderlichen Kontroll-Prüfsummen anfragen, um den AICH-Prüfsummensatz-Baum bis zur Stamm-Prüfsumme vervollständigen zu können.

Sobald er die Block-Prüfsummeen und die Kontroll-Prüfsummen bekommt, baut er den Baum zum Ermitteln der Stamm-Prüfsumme auf, und überprüft, ob es die gleiche Stamm-Prüfsumme ist, den der originale eD2k-Link liefert. Falls ja, dann werden diese Block-Prüfsummen als glaubwürdig angenommen. Falls nicht, dann werden diese Block-Prüfsummen und Kontroll-Prüfsummen verworfen, und als Fakes angesehen.

Sobald die Block-Prüfsummen als verlässlich betrachtet werden, wird jeder 180KB-Teil des verfälschten Chunks ermittelt (nach dem SHA1-Algorithmus), um die entstehende Prüfsumme mit der empfangenen Stamm-Prüfsumme 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üfsumme weitergegeben?

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

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

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

Speichern des AICH-Prüfsummensatzes

Sobald eine Datei komplett runtergeladen wurde, errechnet aMule ihren gesamten AICH-Prüfsummensatz, 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üssen.

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