TCP oder UDP für Dateiübertragung verwenden?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von slice.

    TCP oder UDP für Dateiübertragung verwenden?

    Hallo zusammen

    Ganz kurze Frage: Für eine Dateiübertragung von einem Anwendungs-Client zum Anderen (also P2P und nicht über einen Webserver) im Internet (nicht LAN): sollte ich die Übertragung lieber per TCP oder per UDP realisieren? Was ist sinnvoller, einfacher oder vor allem auch besser für die User?
    So wirklich schlüssige Antworten habe ich leider nicht gefunden.

    Danke im voraus,
    KlyX
    Chris' Weblog - Mein Blog rund um Vieles :D

    KlyX schrieb:

    sollte ich die Übertragung lieber per TCP oder per UDP realisieren?
    Bisschen knappe Fragestellung.

    Wenn du Werbesendungen verschickst, gibst du sie einem Schüler, der sich damit ein Taschengeld zuverdient.
    Wenn einer keine bekommt, ist das auch nicht so tragisch.
    Billig, aber unsicher . Wie UDP.

    Willst du eine gesicherte Ankunft, schickst du es per Post mit Einschreiben.
    Teuer, aber gesichert. Wie TCP.

    In jedem Fall kommt es aber noch auf die Verpackung der Sendung an, für die du als Versender alleine verantwortlich bist.
    Wenn du willst, dass dein Paket genau so ankommt, wie du es verschickt hast, musst du für eine sichere Verpackung sorgen.
    Oder du gibst es gleich einem Profi, der sich mit Verpackung und Versand auskennt.
    Es gibt spezielle Filetransfer-Protokolle, die auf Dateiversand spezialisiert sind.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Okay, zugegeben, war wirklich etwas knapp beschrieben: im Endeffekt geht es um mein Dateiweitergabe-Tool (ich mag das negativ behaftete Wort Filesharing nicht sonderlich ;)). Dort gibt es eine P2P-Funktion, mit der eine User einem anderen eine Datei schicken kann - direkt ohne Serververbindung (ausser zwei Einträge auf dem MySQL-Server, aber das sind Einträge zur Abwicklung). Aber nachdem was ich hier gelesen hab, werde ich es wohl wirklich mit TCP realisieren: wie du schon sagst: ist auf jeden Fall sicherer.

    @Dancger: danke, den Thread hatte ich vor ner Weile mal gefunden, aber nicht gebookmarkt :D.

    Ich habe gestern auch schonmal die Grundlagen in einem eigenen Projekt erarbeitet. Nun aber noch eine kleine Frage bezüglich forwarding: wenn ich die Datei nicht im lokalen Netzwerk, sonder via Internet senden will, dann muss ich ja die Public IP des Empfängers angeben. Und wenn ich das richtig im Kopf habe, braucht dann der Router des Empfängers ein IP-Forwarding auf die lokale IP auf dem entsprechenden Port, richtig? Ist das einfacher lösbar?
    Theoretisch könnte ich auch den indirekten Weg gehen: Upload auf Server, Download vom Server... sobald die Datei geladen wurde, wird sie gelöscht. Aber das wollte ich bei P2P vermeiden - weil dann ist es kein P2P mehr :D

    Ich bin dankbar, für Anregungen :)

    Gruss,
    KlyX
    Chris' Weblog - Mein Blog rund um Vieles :D

    KlyX schrieb:

    wenn ich die Datei nicht im lokalen Netzwerk, sonder via Internet senden will, dann muss ich ja die Public IP des Empfängers angeben
    Richtig.

    KlyX schrieb:

    Router des Empfängers ein IP-Forwarding auf die lokale IP auf dem entsprechenden Port, richtig?
    Ebenfalls richtig (sofern du keine öffentliche IP besitzt)

    KlyX schrieb:

    Ist das einfacher lösbar?
    Mir fällt gerade nix anderes ein. Ausser eine öffentliche IP. So entfällt aber auch nur das Forwarding. Aber es gibt sicher noch andere hier im Forum, denen sicher noch was einfällt.

    Greez Dancger
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...
    Danke für die Rückmeldung :).
    Ist halt einfach recht kompliziert, für ein Tool dass simpel sein soll. Ist zwar nur ne Teilfunktion, aber trotzdem ;). Und sobald ichs auch nur temporär über meinen Server laufen lasse, ist es einfach nimmer Peer2Peer - das wär dann auch doof :D.

    Falls Andere noch Ideen haben - nur her damit :)
    Chris' Weblog - Mein Blog rund um Vieles :D
    mit TCP bleiben dir nur die genannten möglichkeiten - alternativ könntest du es mit UPD und dem sogenannten "UDP hole punching" realisieren
    heise.de/security/artikel/Klinken-putzen-271494.html
    it-administrator.de/lexikon/udp_hole_punching.html

    €dit: evtl auch noch interessant ... de.wikipedia.org/wiki/JXTA