Netzwerkkarte auswählen

dreamtec

Mitglied
Hallo,

ich bin neu hier im Forum, und hoffe, dass ihr mir weiter helfen könnt.

Ich will mit Java einen Client schreiben, der mehrere Netzwerkverbindungen zu einem bestimmten Server aufbaut. Dabei will ich, dass jede Verbindung über eine ausgewählte Netzwerkkarte erstellt wird.

Hintergrund ist folgender: Ich muss ein Live-Video über das Internet an eine bestimmte Adresse streamen. Dafür brauche ich eine Upload-Geschwindigkeit von beispielsweise 3 mbit.
Nun habe ich mir gedacht, dass ich mir einfach mehrere UMTS-Karten besorge, und die Datenpakete vom Live-Stream auf die UMTS-Karten verteile. Also wenn pro UMTS-Verbindung 1 mbit schafft, teile ich das Video-Signal auf 3 UMTS-Verbindungen auf (UMTS, weil ich mobil sein muss).
Auf der anderen Seite brauche ich dann einen Server, der die Pakete wieder richtig zusammen setzt (was allerdings das geringste Problem sein sollte).

Ist das überhaupt mit Java möglich, dass ein Client selber festlegt, über welche Netzwerkkarte es eine Verbindung zu einem Server erstellt?

Falls es nur mit nicht Plattformunabhängigen Funktionen klappt, wäre das in Ordnung (also Beispielsweise über eine bestimmte dll). Das Betriebssystem kann ich mir nämlich aussuchen (Windows oder Linux).
 

dreamtec

Mitglied
Vielen danke für deine Antwort.
Das ist im Grunde genommen genau das, was ich brauche. Nur würde ich gerne selber eine Applikation schreiben, die so etwas macht.
Das Problem dabei ist nämlich, dass ich nicht weiß, wo und wann ich so einen Upload benötige (ist weltweit verteilt). Mit einem selbst geschriebenen Programm kann ich jeden PC dafür verwenden.
Klar kann sich jeder, der einen hohen Upload benötigt, so ein Gerät kaufen. Nur würde das ziemlich teuer werden. Wir bräuchten das Teil mindestens 50 mal. Und leider fehlt das Geld dafür.

Deshalb die Idee, selber so ein Programm zu schreiben.

An LTE habe ich auch schon gedacht. Leider ist das nicht überall verfügbar.
Und Reduzierung der Bandbreite des Streams kommt auch nicht in Frage, weil die Qualität stimmen muss.
 
Zuletzt bearbeitet:
T

tröööt

Gast
man kann sich
Java:
Socket socket=new Socket();
socket.bind(SocketAddress);
socket.connect(SocketAddress);
auch mit dem konstruktor
Java:
Socket socket=new Socket(String, int, InetAddress, int);
vereinfachen

ich wollte schon früher antworten ... war aber nur mit meinem ace online ...
was ich sagen wollte :

die idee mag sicher super sein ... wenn man pro adapter nur geringen upload hat einfach mehrere nutzen ... aber du hast dabei einiges nicht bedacht

1) bandbreite des systems
damit das überhaupt klappt musst du jeden adapter mit voller system-leistung ansprechen können ...
wenn du also z.b. 12 stück an einen usb-hub klemmst limitiert die geschwindigkeit von USB (vom fehleden strom mal abgesehen)
du müsstest also direkt an die root-hubs anklemmen ... also direkt an jede freie usb-buchse des systems ...
ist zwar heute nicht mehr so das problem das viele systeme über 2 bis 8 anschlüsse verfügen die direkt an den root-hub angeklemmt sind ... aber an notebooks kanns trotzdem schwierig werden

2) bandbreite der verbindung
wenn du mehrere 3g-verbindungen in einem örtlich sehr kleinen raum verwendest können sich diese gegenseitig stören und so die verbindung lahmlegen ...
du musst also für sorgen das alle adapter weit genug von ein ander entfernt sind und es möglichst wenig störquellen auf dem weg zum funkmast gibt

3) bandbreite der basistation
was bringt es dir mehrere adapter zu nutzen wenn die basis-station doch wieder nur ein signal draus macht ... und dieses beschränkt ist ?
wenn du mit einem adapter z.b. 12MBit/s schaffen würdest (mal alle limite ignoriert) ... dann schaffst du mit 2 nur noch je 6MBit/s ... denn die basis-station ist bei 12MBit/s limitiert ... mit 3 adaptern wären es dann nur noch 4MBit/s je adapter ...
du kannst also nicht davon ausgehen das nur weil du mehr als einen adapter verwendest somit auch die gesamtbandbreite erhöhen kannst ... denn irgendwo hat auch die basis-station ihre limits ...
hier könnten verschiedene netze ... und räumlich sicherlich schwer umsetzbar ... die verbindung zu mehreren basis-staionen helfen ... um so die last auf mehrere knoten zu verteilen ...

4) netzwerk-logik
auch wenn wir mal vom besten fall ausgehen und deine client software einen strom aus 123456 in 14,25,36 zerhackt (zyklisch) und diese dann jeweils an die adapter sendet ... und diese auch in dieser reihenfolge beim server eintreffen und dieser daraus zyklisch wieder 123456 schaffen würde ... ist das nur wunschdenken ...
du bräuchtest also zusätzlich zum ziel-server erstmal eine eigenen zwischen-server der aus deinen mehreren verbindungen erstmal wieder den richtigen stream zusammenbaut und diesen dann an den ziel-server weitergibt ...
und dabei gibt es noch ganz andere probleme als paketlaufzeiten und routing-reihenfolgen ...
im gegenteil : es wäre sogar noch störanfälliger als nur ein einzelner und dafür in der bandbreite begrenzter stream ...


alles in allem : die idee ist zwar gut gemeint ... aber praktisch nicht umsetzbar ... zumindest nicht sinnvoll da es zu viele probleme gibt die man nicht so einfach lösen kann ...

suche dir also anbieter bei denen du den erforderlichen upload zur verfügung hast ... natürlich in abhängigkeit deiner position zur nächsten basis-station ...
 

dreamtec

Mitglied
Hallo tröööt,

ich habe an alle Probleme, die du erwähnst auch gedacht.

zu 1: Ich denke mal, dass das in meinem Fall kein Problem darstellt, weil ich zum einen keinen Laptop, sondern nur PC's nutze. Und wenn die Bandbreite eines USB-Ports nicht reicht, und alle Ports belegt sind, baue ich einfach eine USB-Karte in den Rechner ein.

zu 2: Das Problem ist mir auch bekannt. Die UMTS-Sticks werden nicht direkt nebeneinander aufgestellt.

zu 3: Das Limit der Basis-Station ist mir auch bekannt. Das ganze soll nicht nur über UMTS laufen, sondern auch über LAN, W-LAN oder ähnliches. Also es soll alles miteinander kombiniert werden können. Und falls nur UMTS zur Verfügung steht, nutze ich einfach unterschiedliche Provider.

zu 4: Dass ich auf der anderen Seite eine Applikation brauche, die das Ganze empfängt und richtig zusammen setzt, ist mir klar. Aber dass ist, aus meiner Sicht, das geringste Problem. Ich habe so etwas ähnliches schonmal gemacht.


Klar kann jetzt nicht garantiert werden, dass es auf jeden Fall klappt. Vor allem ob der Upload nur über UMTS wirklich die gewünschte Bandbreite schafft, trotz unterschiedlicher Provider, muss noch getestet werden. Aber einen Versuch ist es Wert :)

Ich danke dir, dass du dir Gedanken zu dem Ganzen gemacht hast.
 

Bernd Hohmann

Top Contributor
zu 3: Das Limit der Basis-Station ist mir auch bekannt. Das ganze soll nicht nur über UMTS laufen, sondern auch über LAN, W-LAN oder ähnliches. Also es soll alles miteinander kombiniert werden können. Und falls nur UMTS zur Verfügung steht, nutze ich einfach unterschiedliche Provider.

Das Problem ist in der Praxis weniger dramatisch da die Gesamtbandbreite der Station mehr oder weniger gleichmässig auf alle User verteilt wird. Auch wenn alle bisserl zusammenrücken müssen bist Du mit 3 UMTS-Adaptern natürlich im Vorteil (oder auch nicht wenn alles so voll ist dass Du keinen Kanal mehr bekommst, das Phänomen hat man immer mal in Gebieten schwacher Infrastruktur)

zu 4: Dass ich auf der anderen Seite eine Applikation brauche, die das Ganze empfängt und richtig zusammen setzt, ist mir klar. Aber dass ist, aus meiner Sicht, das geringste Problem. Ich habe so etwas ähnliches schonmal gemacht.

Vielleicht bastelst Du dir sowas wie TCP/IP nur in grösser und nutzt UDP.

Bernd
 

Bernd Hohmann

Top Contributor
Ich bastel gerade ein bisschen. Mal schauen, wann ich fertig bin. Dann kann ich euch sagen, ob ich erfolg hatte, oder nicht.

Danke, wäre interessant.

Geschwindigkeitsprobleme wegen Java sehe ich da nicht, eher eine Überlast bei den Gateways von Vodafone und Konsorten (Du bist dort ja normalerweise in ein 10.x.x.x Netzwerk verfrachtet).

Ansonsten wäre die Lösung von Viprinet vorzuziehen. Richte Simon einen lieben Gruss von mir aus.

Bernd
 
J

JohannisderKaeufer

Gast
Hab mir nochmal Gedanken zu der Problemstellung ansich gemacht.

Und es gibt da sogar ein System mit dem man das ganze recht easy umsetzen kann, da die benötigte Software zum größten Teil schon vorhanden und Open Source ist.

Bittorrent

Hier habe ich ein anschauliches Video das Erklärt wie Twitter ihr Deployment mit Murder machen.

Twitter - Murder Bittorrent Deploy System on Vimeo


Der initiale Seeder hat hier z.B. über Lan oder Wlan lokal mehrere leecher zu bedienen, die dann jeweils über eine eigene Verbindung, wie UMTS, DSL, LTE zum entsprechenden Remote seeden.

Die Software dazu, Bittorrent Clients, Tracker etc. gibt es alles schon.

Das einzige ist die Daten passend zu packen und den Clients zu erklären wie Sie an die Torrents herankommen. Der Rest geht dann nahezu automatisch.

Das Video solltest du dir definitiv anschauen.

Man bräuchte allerdings mehrere Client-Geräte hat dann aber auch eine extrem flexible Lösung.

Reicht die Datenrate irgendwann nicht, einfach Hardware hinterherwerfen!
 

Bernd Hohmann

Top Contributor
Und es gibt da sogar ein System mit dem man das ganze recht easy umsetzen kann, da die benötigte Software zum größten Teil schon vorhanden und Open Source ist. Bittorrent

Bei der Anforderung des TO würde ich eher nach Octoshape oder Zattoo schauen, also P2P-IPTV für Video. Hat sich aber in der Praxis als Untauglich erwiesen weil die DSL Uploadraten zu gering sind.

Und das primäre Problem des TO ist auch weniger Verbreitungsbandbreite zu erreichen sondern seine schmale Uploadbandbreite zu verbessern.

Bernd
 
T

trööt

Gast
ich denke auch das es , wie bernd sagte , eher das problem sein dürfte dem rechner der die daten erzeugt und an den/die server senden soll entsprechend hohe upload-bandbreite bereit zu stellen ...

das problem betrifft leider nicht nur ADSL anschlüsse sondern hat sich allgemein "breit gemacht" dem kunden zwar einen recht hohen download zu ermöglichen ... aber dennoch den upload eher gering zu halten ...

und seien wir erlich : für die meisten reicht das ja auch ... dann das was ins netz gesendet wird sind in der regel recht kleien anfragen nach großen resourcen ... und da passt dieses konzept auch ...

allerdings ist es in der heutigen zeit völlig überholt ... denn wenn die netz-kultur quasi danach verlangt das user ihre daten teilen ... sollten die anbieter dem auch mal nach kommen in dem höhere upload-geschwindigkeiten etabliert werden ...

sicher gibt es sog. synchrone leitungen bei denen der upload ungefähr genau so schnell ist wie der download ... und das ganze gibt es sogar schon mit recht großen bandbreiten ... aber es ist halt nicht die regel .. zumindest noch nicht ... denn zumindest mir fällt jetzt nicht mal spontan ein anbieter ein der solche anbindungen für privat-personen anbietet ...

ob man das system "austricksen" kann in dem man mehrere "anschlüsse" nutzt und logisch deren upload-raten kombiniert (ähnlich wie es bei DDoS-attacken passiert) ... fraglich ... und sinnvoll sicher auch nur unter "labor-bedingungen" umsetzbar ...

vielleicht kommt ja mal irgendeiner der "großen" irgendwann auf die idee solche synchron-anbindungen standardmäßih zu installieren ... in wie weit das technisch umsetzbar ist dürfte die zukunft zeigen ...

wünsche dir bei dem projekt viel erfolg ... kann mir aber eher weniger vorstellen das es am ende auch wirklich ohne probleme so läuft wie du es gerade planst ...
 
J

JohannisderKaeufer

Gast
Bei der Anforderung des TO würde ich eher nach Octoshape oder Zattoo schauen, also P2P-IPTV für Video. Hat sich aber in der Praxis als Untauglich erwiesen weil die DSL Uploadraten zu gering sind.

Und das primäre Problem des TO ist auch weniger Verbreitungsbandbreite zu erreichen sondern seine schmale Uploadbandbreite zu verbessern.

Bernd

Bei Zattoo steckt ja Bittorrent dahinter, von der Technik her.

Den Absatz den du da verlinkt/zitiert hast, hättest du auch noch ganz lesen/zitieren sollen!

"Alle Sendungen werden seither direkt vom Server an den Benutzer ausgeliefert."

Und genau, diesen Server, hat der TO von der Bandbreite nicht zur Verfügung stehen.
Zumindest nicht dort wo er ihn braucht.

Bei Zattoo, wird es auch höchstwahrscheinlich viele Leecher geben. Die bringen nichts, die kosten nur.

Es soll ja auch nicht verbreitet werden, sondern der Server, auf den hochgeladen werden soll, soll aus einem breiten/breitbandigen Netzwerk seine Daten beziehen können.


Mal ein kleines Bild
http://www.java-forum.org/members/johannisderkaeufer-albums-uml-diagramme-picture279-netzwerk.png

Die Videoquelle verteilt an lokale clients (Lan/Wlan), per Bittorrent die Daten, im Bild Seed genannt. Das sollte ein 0815 Router schaffen.

Die Seeds sollten jeweils noch eine oder mehrerer Verbindungen ins Internet haben.

Der Server der Remote steht und das Video braucht holt sich eine Liste mit den Seedern und greift auf diese per Bittorrent zu.


Bittorrent kann das! Der Ruf von Bittorrent ist nur schlecht, weil Raubmordkopierer und so. Zudem kommen Cloudanbieter die unerschöpflich Bandbreite und speicherplatz für umme anbieten.

Und wenn der TO es damit nicht umgesetzt bekommt, dann kann er fast bleiben lassen oder sich eine ganz lange Glasfaser legen lassen.
 
T

trääät

Gast
@Johannis

die idee fetzt ... aber ich sehe da dennoch hier und da einige dinge warum die idee für TO nicht umsetzbar sein dürfte ...

1) falls du es überlesen hast : TO möchte LIVE-STREAMING ! ... die von dir beschriebene methode geht aber von einem kompletten file aus ... das funktioniert so nicht ganz ...
klar könnte man mit genügend großem delay schon irgendwas basteln ... aber ich glaube 10min delay nur wegen so ner komplizierten upload-strategie ist keine lösung ...

2) physischer aufbau
wenn man das ganze mal versuchsweise bei sich zu hause aufbauen würde hätte man schon gut was zu tun ...
man müsste erstmal jeden rechner mit nem 2ten NIC ausstatten ... auf W-LAN würde ich mich hier nicht verlassen ... auch wenn heutige "anlagen" schon recht performant sind ...
der "seed" wird nun über n router (oder viel mehr einem switch/hub und nem DHCP) zu nem LAN zusammen geklemmt und verteilt so die daten im LAN
jeder der "peer" rechner hat nun seine eigene anbindung ans netz (alleine hier wird es schon eng : DSL kann glaub nur maximal 1 anbieter gleichzeitig dran hängen ... also kann man zusammen fassen : DSL + Cable + UMTS wären schon mal 3 verbindungs-arten ... übertreibt man jetzt noch und verdoppelt das ganze hätte man grade mal 6 anschlüsse) und seeded so auf seine weise einen bittorrent client auf dem ziel-server ...
glaubst du nicht das sowas selbst mal als "versuchs-anlage" schon kompliziert genug wär ? ... produktiv könnte man sowas wohl eher weniger einsetzen ... vor allem wenn dann alles immer mit umziehen müsste ...

3) räumliche unabhängigkeit
gleiches wie punkt 1 : falls du es nicht mitbekommen hast will TO mit diesem system auch noch halbwegs mobil bleiben ... also fallen sämtliche fest-installationen weg und es muss auf die örtlichen gegebenheiten zurückgegriffen werden ...
wenn es dort entsprechende infrastruktur gibt ist alles kein problem ... aber für den notfall will TO sich halt auch die möglichkeit offen halten komplett UMTS zu nutzen ... dann halt mit entsprechend vielen adaptern ...
die idee : "lass dir glasfaser legen" mag vielleicht für die "zentrale" gut sein ... aber wenn man von unterwegs live-streaming machen will bringt es einem auch nichts zu hause ne glasfaser im keller liegen zu haben ...

ich will deine idee nicht grundsätzlich kritisieren oder schlecht machen ... aber sie passt insgesamt nicht zum konzept was TO überhaupt vorhat ...
 

Ähnliche Java Themen


Oben