# Datei via UDP



## UDPler (1. Feb 2009)

Hi, wie würdet ihr ne Datei über UDP übertragen ?
UDp ist ja nicht sicher was die Ankunft und so angeht....
Ich kann leider kein TCP nutzen...

Gruß


----------



## Gelöschtes Mitglied 5909 (1. Feb 2009)

tjo wenn du sicher sein willst dass die datei auch wirklich ankommt musst du wohl oder übel tcp nachbauen. Sprich immer eine antwort Acknowledge oder so senden (Paketempfang bestätigen). Für sowas verwendet man aber normalerweise TCP, weil es genau für sowas gemacht wurde. Ich versteh nicht wieso du kein tcp nutzen kannst


----------



## UDPler (1. Feb 2009)

Problem ist, ich möchte UDP Hole Punching nutzen ..... !
Ich könnte natürlich TCP Hole Punching nutzen... aber das ist extrem kompliziert im Vergleich
zu UDP Hole Punching... Leider habe ihc mich auch noch nicht 100% mit TCP Hole Punching
beschäftigt... Ich weiß nur, dass ich z.b. die TTL bei einem Connect möglichst weit runter schrauben muss
usw... Und ich hatte mir gedacht, dass ne Dateiübertragung über UDP ansich einfacher zu realisieren sein müsste odeR ?

MAn könnte ja einfach die Pakete nummerieren, und wenn man eins eher ankommt als ein anderes, dann schreibt man dieses einfach mit einer RandomAccessFile an die bestimmte Stelle schreiben .... Ich wollte nämlich nicht nach jedem send ein recv auf der server seite durchführen... Andererseits, wäre dann wenigstens sichergestellt, dass alles übertragen wurde. Ich bin mir halt nicht so sicher, was da schneller ginge...

Gruß UDPler


----------



## Gast2 (2. Feb 2009)

Moin,



			
				UDPler hat gesagt.:
			
		

> Problem ist, ich möchte UDP Hole Punching nutzen ..... !
> Ich könnte natürlich TCP Hole Punching nutzen... aber das ist extrem kompliziert im Vergleich


wo ist es kompliziert zu einem externen Server eine TCP-Verbindung aufzubauen? ... kann auch sein das wir von 2 verschiedenen Methoden für Hole Punching reden

hand, mogel


----------



## UDPler (2. Feb 2009)

Problem: P2P

Ich möchte gerne P2P realiesieren... Das geht am Besten mit Hole Punching. Diese MEthode ist sowohl mit TCP als auch mit UDP möglich.... Natürlich mit UDP sehr einfach... Mit TCP is es echt kompliziert... Dafür muss man sich dann bei der Übertragung keine Gedanken mehr machen... Ich dachte, dass es einfacher sein sollte, über udp eine datei zu übertragen, als TCP Hole Punching... Ich möchte, dass mein Programm ohne Portfreigabe funktioniert... Natürlich habe cih einen externen Vermittlungsserver...

Gruß UDPler


----------



## UDPler (2. Feb 2009)

Vlt liegt hier das Problem:

Ich brauche (habe) natürlich einen externen TCP Server, der eine feste IP hat, aber über diesen sollen eben keine Dateien geschickt werden, eben nur die IP und Ports der Clienten. Hole Punching ist ja sowohl mit UDP als auch mit TCP möglich. Bei TCP muss man aber diese ganze "ACK/SEC/SYN" Geschichte "faken" (verändern) und vorallem die TTL beim Connecten verändern. Hast du evt. schon Erfahrungen was TCP Hole Punching angeht ? Ich wäre (wenn das einer schonmal gemacht hat) über jeden tipp dankbar!

Gruß UDPler


----------



## Gast2 (2. Feb 2009)

Moin,

nein ... jetzt habe ich aber den gesammten Kram verstanden ... der externe Server dient nur zum IP-Austausch ... danach kommt es so wie ich das kannte - NAT "austricksen"

hand, mogel


----------



## tuxedo (2. Feb 2009)

Tja, wird glaub ich Zeit dass jemand für MINA einen Filter schreibt der TCP nachbildet ... In der MINA Mailingliste kam das Thema auch schon auf. Wenn man sowas hätte, wäre das doch recht hilfreich und würde den UDP Einsatz in einem "eigentlichen TCP Anwendungsbereich" doch erheblich vereinfachen.

Hatte für mein SIMON ja auch vor UDP zu unterstützen. Vielleicht setz ich mich doch mal hin und bau da nen Filter für... Mal sehen.

- Alex


----------



## UDPler (2. Feb 2009)

Jo, sowas wäre super... Es ist zwar möglich, dies auch direkt mit TCP umzusetzen, aber ich denke, das Ergebnis steht in keinem Verhältnis zum Aufwand, vorallem weil so ein Filter einfacher wäre...


----------

