Peer-to-Peer statt dicker Server

Ideen, wie TV-Browser verbessert werden kann
Gesperrt
Benutzeravatar
hgmichna
Full Member
Beiträge: 82
Registriert: 02 Mär 2007, 23:36
Wohnort: Riemerling
Kontaktdaten:

Peer-to-Peer statt dicker Server

Beitrag von hgmichna »

Nur ein kleiner Gedanke zum Thema "Server gesucht" (siehe http://hilfe.tvbrowser.org/viewtopic.php?f=2&t=12860 ).

Ihr könntet mal überlegen, ob ihr es nicht Skype nachmachen wollt und die Datenverbreitung ähnlich BitTorrent auf ein Peer-to-Peer-Protokoll aufsetzt.

Der Vorteil wäre, dass ihr nur noch einen relativ kleinen Server mit viel weniger Traffic und viel weniger Belastbarkeit braucht.

Ich persönlich wäre jedenfalls gerne bereit, einen Teil meiner Bandbreite dafür zur Verfügung zu stellen, dass sich bis zu, sagen wir mal, 20 anderer TV-Browser-User die Daten von meinem Client holen, statt vom zentralen Server.

Wenn ich das richtig einschätze, dann ist der einzige Haken an der Sache, dass die Programmierung nicht ganz einfach ist, sondern eine echte Herausforderung. Der Server müsste ähnlich einem BitTorrent-Tracker eine Liste gerade aktiver Clients vorhalten und laufend aktualisieren, wenn man nicht eine noch etwas kompliziertere trackerlose Lösung machen will.
Jo
Site Admin
Beiträge: 11805
Registriert: 07 Apr 2006, 23:39

Re: Peer-to-Peer statt dicker Server

Beitrag von Jo »

Die Datenverteilung läuft schon nicht zentral, sondern über viele Mirror. Den Server braucht es für Datenerstellung, -verarbeitung, Entwicklung, Homepage, Wirschauen-System usw.
Aber ich fände so ein Peer-To-Peer-System grundsätzlich auch überlegenswert. Aber es scheitert schon daran, dass es viel zu aufwändig wäre. Dafür bräuchte man zusätzliche Entwickler, die sich mit sowas auskennen.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Re: Peer-to-Peer statt dicker Server

Beitrag von bodo »

Wie ich schon öfter gesagt habe:

Peer-2-Peer ist für TV-Browser ungeeignet.

Aus mehreren Gründen.

Der einfachste: Peer-2-Peer ist gut für eine große Datei. Viele kleine Dateien sind tödlich für Peer 2 Peer.
Benutzeravatar
hgmichna
Full Member
Beiträge: 82
Registriert: 02 Mär 2007, 23:36
Wohnort: Riemerling
Kontaktdaten:

Re: Peer-to-Peer statt dicker Server

Beitrag von hgmichna »

bodo hat geschrieben:Peer-2-Peer ist gut für eine große Datei. Viele kleine Dateien sind tödlich für Peer 2 Peer.
Fürs Projekt ist das wohl nicht mehr relevant, sondern nur noch von theoretischem Interesse. Ich schreib's trotzdem mal hierher.

Die BitTorrent-Programme, die ich kenne, übertragen beliebig viele kleine oder große Dateien immer mit guter Effizienz. Genauer betrachtet, mögen sie große Dateien gar nicht, sondern zerhäckseln diese vor der Übertragung in kleine Stückchen. Das sieht eher so aus, als ob Peer-to-Peer-File-Transfer besser mit vielen kleinen Datenmengen geht als mit wenig großen.

Das dürfte aber so oder so keine Rolle spielen, dann man kann ja, wie es BitTorrent tut, große Dateien in kleine Stückchen aufteilen und umgekehrt kann man auch jederzeit viele kleine Dateien zu einer großen zusammenfassen, wenn das aus irgendwelchen Gründen doch vorteilhaft sein sollte. Daher kann ich mir nicht vorstellen, woher ein pauschaler Zusammenhang zwischen Peer-to-Peer-Protokollen und Dateigrößen kommen sollte.

Wenn man einen angepassten Algorithmus speziell für TV-Browser erfinden wollte, dann könnte man die Daten z.B. nach Tagen und Sendern aufteilen. Die Peers würden dann z.B. so etwas mitteilen wie: "Mir fehlt noch der Dienstag von RTL." Ein anderer Client könnte ankündigen: "Den habe ich. Hole ihn dir von mir." Dann würden die beiden Peers diese relativ kleine Datenmenge in einem Rutsch übertragen. Wird die Übertragung unterbrochen, z.B. weil einer der Peers zwischenzeitlich geschlossen wird, dann sucht sich der Empfänger einen anderen Peer, der den RTL-Dienstag hat. Und so weiter mit allen verfügbaren Tagen und allen eingestellten Sendern. Das ist zwar nicht ganz einfach zu programmieren, aber ein technisches Wunder wäre es nun auch wieder nicht.

Wünschenswert wäre Peer-to-Peer, weil mindestens die vom Server zu übertragende Datenmenge stark verringert würde. Man bräuchte wahrscheinlich deswegen auch keine Mirrors mehr, sondern vielleicht nur ein oder zwei für den Fall, dass der Hauptserver ausfällt.

Ich vermute, der entscheidende Grund, eine solche Lösung nicht zu machen, wird sicher nicht die fehlende technische Machbarkeit sein, sondern dass niemand da ist, der Zeit, Lust und die Fähigkeit hat, es zu machen. Ein benachbarter Grund wäre, dass ein komplexeres System auch schwieriger zu verstehen, zu pflegen und zu warten wäre. Es würde also dauerhaft diesen Nachteil mit sich herumschleppen. Schade, aber wohl nicht zu ändern.

Vielleicht gibt es irgendwann einmal ein fertiges Peer-to-Peer-Modul, das man einfach nur einzusetzen braucht.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Re: Peer-to-Peer statt dicker Server

Beitrag von bodo »

Sorry, aber ums klar zu sagen: du hast keine Ahnung vom Bittorrent-Protokoll.

Peer 2 Peer funktioniert nicht für so viele kleine Dateien, der Overhead stünde in keinem Verhältnis zu den Nutzdaten.

Und das ist nur eines der Probleme. Es gibt sehr viele Probleme bei den Daten. Angefangen vom Protokoll über Firewall bis hinzu rechtlichen Problemen.

Peer 2 Peer ist halt nur in seltenen Fällen eine Lösung. Und unsere TV-Daten sind halt nicht passend dafür.

Und noch was: die Dateien sind nach Tagen und Sendern aufgeteilt. Und sogar nach Versionen.

Bitte glaub doch einfach mal einem Entwickler, der schon ein halbes Jahrzehnt am TV-Browser entwickelt und auch erfahrungen mit Peer2Peer hat.
v6ph1
Site Admin
Beiträge: 1276
Registriert: 13 Jan 2008, 05:07
Wohnort: Radebeul

Re: Peer-to-Peer statt dicker Server

Beitrag von v6ph1 »

hgmichna hat geschrieben:Die BitTorrent-Programme, die ich kenne, übertragen beliebig viele kleine oder große Dateien immer mit guter Effizienz. Genauer betrachtet, mögen sie große Dateien gar nicht, sondern zerhäckseln diese vor der Übertragung in kleine Stückchen. Das sieht eher so aus, als ob Peer-to-Peer-File-Transfer besser mit vielen kleinen Datenmengen geht als mit wenig großen.

Das dürfte aber so oder so keine Rolle spielen, dann man kann ja, wie es BitTorrent tut, große Dateien in kleine Stückchen aufteilen und umgekehrt kann man auch jederzeit viele kleine Dateien zu einer großen zusammenfassen, wenn das aus irgendwelchen Gründen doch vorteilhaft sein sollte. Daher kann ich mir nicht vorstellen, woher ein pauschaler Zusammenhang zwischen Peer-to-Peer-Protokollen und Dateigrößen kommen sollte.
Nicht wirklich:
eDonkey/eMule/KAD arbeitet mit 10KB-Häppchen und 9,28MB-Megastückchen.
Bei Torrent sind es 32kB je Häppchen und 512kB-4MB bei den Stückchen.
Deswegen ist Torrent auch schneller, weil es weniger Overhead gibt.
Die aktuellen TV-Browser-Daten liegen zwischen 158Byte und 100kByte.
Für die größeren Stückchen wäre P2P prinzipiell denkbar, aber für die kleinen ist der Overhead dreimal so groß, wie die Nutzdaten.

Ein Weiteres Problem findet sich dabei, dass Daten auf den Servern auch immer wieder aktuallisiert werden und bei der Übertragung der Aktuallisierung.
Man müsste zudem noch sicherstellen, dass die Quelle keine veralteten Daten besitzt, was nahezu unmöglich ist.

Prüfsummen ala CRC32 und Dateigrößen müssen ebenso Übertragen werden.

Firewall ist auch ein Problem, damit verbunden: Portforwarding (bei den heute üblichen NAT-Routern) - UPnP ist da nicht unbedingt eine Lösung.

@bodo: Wo wären die rechtlichen Probleme?
Darin, dass wir nur Rechte haben, die Daten von den Servern zu übertragen?
Afaik haben besteht doch ein Verbreitungsrecht zu den Nutzern, aber die Nutzer selbst haben keins.
(Ich glaube, das dürfte das rechtliche Problem sein)

mfg
v6ph1
Benutzeravatar
hgmichna
Full Member
Beiträge: 82
Registriert: 02 Mär 2007, 23:36
Wohnort: Riemerling
Kontaktdaten:

Re: Peer-to-Peer statt dicker Server

Beitrag von hgmichna »

Ich nehme an, das ist jetzt nur noch eine rein theoretische Diskussion, und führe sie fort, damit man etwas dazulernt.
v6ph1 hat geschrieben:Für die größeren Stückchen wäre P2P prinzipiell denkbar, aber für die kleinen ist der Overhead dreimal so groß, wie die Nutzdaten.
Na und? Selbst wenn man die kleinen Stückchen nicht zu größeren zusammenfassen kann (warum eigentlich nicht?), dann würde das doch trotzdem niemanden stören. Es wäre schnell genug.
v6ph1 hat geschrieben:Ein Weiteres Problem findet sich dabei, dass Daten auf den Servern auch immer wieder aktuallisiert werden und bei der Übertragung der Aktuallisierung.
Man müsste zudem noch sicherstellen, dass die Quelle keine veralteten Daten besitzt, was nahezu unmöglich ist.
Die Senderprogramme sind auf Wochen im Voraus bekannt. Ich glaube nicht, dass es unbedingt darauf ankommt, sie minutengenau zu erhalten.

Folglich könnte man ganz leicht feststellen, ob die Daten veraltet sind. Man transportiert mit den Daten immer ihr Entstehungsdatum mit. Ist dieses älter als 24 h (oder 12 oder 6 oder 3), dann gelten die Daten als veraltet und werden zur Weiterverteilung nicht mehr angeboten. Umgekehrt holt sich der Client mit den veralteten Daten seinerseits frische. Der TV-Browser-Server kriegt doch auch nicht im Minutentakt geänderte Daten. Das ist ein langsamer Prozess.
v6ph1 hat geschrieben:Prüfsummen ala CRC32 und Dateigrößen müssen ebenso Übertragen werden.
Davon geht die Welt nicht unter. Vielleicht müssen sie auch nicht einmal, wenn man TCP verwendet, denn das ist ein sicheres Protokoll und enthält bereits CRC.

Dateigrößen müssen vielleicht auch nicht übertragen werden, wenn das Dateiformat so ist, dass das Ende der Nutzdaten anderweitig erkannt werden kann. Aber wenn doch, dann tut man es eben. Ganz einfach kann ein Peer-to-Peer-System leider sowieso nicht sein.
v6ph1 hat geschrieben:Firewall ist auch ein Problem, damit verbunden: Portforwarding (bei den heute üblichen NAT-Routern) - UPnP ist da nicht unbedingt eine Lösung.
Das ist allerdings ein Problem. Wie löst Skype es? Ich glaube, dass die einfach prüfen, ob sie einen Port kriegen. Wenn ja, dann wird der Client als Peer-to-Peer-Server verwendet, wenn nicht, dann nicht. Ich weiß aber nicht wirklich, wie sie es machen.
v6ph1 hat geschrieben:@bodo: Wo wären die rechtlichen Probleme?
Darin, dass wir nur Rechte haben, die Daten von den Servern zu übertragen?
Afaik haben besteht doch ein Verbreitungsrecht zu den Nutzern, aber die Nutzer selbst haben keins.
(Ich glaube, das dürfte das rechtliche Problem sein)
Das würde ich nicht zu ernst nehmen. Da jeder Client sowieso das Recht hat, die Daten zu haben, und sie nur im Rahmen eines Übertragungsprotokolls an andere Clients weiterverteilt, die dieses Recht auch haben, ist der Vorwurf des Rechtsbruchs in dieser Hinsicht lächerlich und vollkommen sinnlos. Mit dem gleichen Argument könnte man dem TV-Browser-Server vorwerfen, dass er die Daten an irgendeinen Router weiterleitet. Eine Peer-to-Peer-Funktion eines Clients ist auch nichts anderes als eine Art Router.

Vielleicht meinte bodo doch etwas anderes? Oder es gibt doch kein solches Problem.

Ich vermute nach wie vor, dass das entscheidende Problem bei der ganzen Sache nur der relativ hohe Aufwand ist.
Benutzeravatar
bodo
Site Admin
Beiträge: 19635
Registriert: 03 Dez 2003, 19:37
Wohnort: Köln
Kontaktdaten:

Re: Peer-to-Peer statt dicker Server

Beitrag von bodo »

Junge: ES GEHT NICHT.

Versteh das doch endlich. Egal wie altklug du dich hier gibst. Wir kennen uns aus in der Materie. DU NICHT.

Ich schließe jetzt diesen Thread. Das führt zu absolut gar nix.

(Und sorry für alle anderen: ich bin normalerweise nicht so reizbar, aber hgmicha macht das hier mit dem Ignorieren von Menschen, die sich mit der Materie auskennen, nicht das erste mal.)
Gesperrt