Peer-to-Peer Swarming mit Linearkombinationen
2005-06-16 15:55
MoKrates
http://www.heise.de/newsticker/meldung/60734
Hm…
Stelle ich mir das richtig vor, dass man Linearkombinationen hier folgendermassen bildet?
Bei einer Datei, die in n Pakete zerteilt wird gibt es:
x1 * p1 + x2 * p2 … xn * pn = p.
Wobei xi aus { 0, 1 } sind, und pi die Datenpakete darstellen.
+ soll zB XOR sein, oder eine Funktion mit entsprechenden Eigenschaften.
Hat man nun eine Datei, die in 3 Pakete zerteilt wird, so kann man simpel:
(1,0,0) = p1, (0,1,0) = p2, (0,0,1) = p3 an Peers versenden, aber halt auch Dinge wie:
(1, 1, 0) = p1 XOR p2. Wenn jemand p1 schon hat kann er daraus dann p2 errechnen: (1,1,0) XOR (1,0,0) = (0,1,0) = p2.
Da man immer versucht, linear unabhaengige Mengen von Linearkombinationen runterzuladen, muss man eine unwesentlich groessere Datenmenge herunterladen, als wuerde man bloss Pakete laden (Eine Linearkombination ist ein Datenpaket + die Information, welcher Vektor benutzt wurde.) Allerdings wird die Menge der zur Uebermittlung moeglichen Pakete von n auf 2^n - 1 (Der Nullvektor ist linear abhaengig) aufgeblaeht.
Ich bin echt am Ueberlegen, ob das jetzt wirklich besser ist, oder nicht… Und wenn ja, warum?
Meint jemand, mir das erklaeren zu koennen? Ich find das echt interessant.
Mo
Hm…
Stelle ich mir das richtig vor, dass man Linearkombinationen hier folgendermassen bildet?
Bei einer Datei, die in n Pakete zerteilt wird gibt es:
x1 * p1 + x2 * p2 … xn * pn = p.
Wobei xi aus { 0, 1 } sind, und pi die Datenpakete darstellen.
+ soll zB XOR sein, oder eine Funktion mit entsprechenden Eigenschaften.
Hat man nun eine Datei, die in 3 Pakete zerteilt wird, so kann man simpel:
(1,0,0) = p1, (0,1,0) = p2, (0,0,1) = p3 an Peers versenden, aber halt auch Dinge wie:
(1, 1, 0) = p1 XOR p2. Wenn jemand p1 schon hat kann er daraus dann p2 errechnen: (1,1,0) XOR (1,0,0) = (0,1,0) = p2.
Da man immer versucht, linear unabhaengige Mengen von Linearkombinationen runterzuladen, muss man eine unwesentlich groessere Datenmenge herunterladen, als wuerde man bloss Pakete laden (Eine Linearkombination ist ein Datenpaket + die Information, welcher Vektor benutzt wurde.) Allerdings wird die Menge der zur Uebermittlung moeglichen Pakete von n auf 2^n - 1 (Der Nullvektor ist linear abhaengig) aufgeblaeht.
Ich bin echt am Ueberlegen, ob das jetzt wirklich besser ist, oder nicht… Und wenn ja, warum?
Meint jemand, mir das erklaeren zu koennen? Ich find das echt interessant.
Mo