Datenpakete nach Australien

Hallo liebe Forums-Gemeinde,

ich hab da eine Projektaufgabe bekommen:

Ich soll die Zeit messen, die ein Datenpaket von hier nach Australien braucht, um ein stochastisches Modell dafür zu entwicklen. Ich muss also eine Messung über einen sehr langen Zeitraum tätigen.

Ich hab mir überlegt, dass ich dafür hier einen Service brauche, welcher die Datenpakete los schickt und in Australien auf einem Server einen Service, welcher als Loop-back dient: Die Pakete müssen ja da gemessen werden und wieder an mich verschickt werden.

Es existieren einige Probleme:

- ein Paket nimmt ja verschiedenste Wege bei so langen Übertragungsstrecken
- Ein IP-Paket besitzt keinen Zeitstempel
- ist "Service-Programmierung" mit java überhaupt möglich?


Ich bin nicht der fitteste in Programmieren. Da ist Java schon noch das beste, was ich drauf hab :)

Könnte ihr mir da weiter helfen? Ich wäre euch wirklich sehr dankbar!!!



vlg
 
Zuletzt bearbeitet von einem Moderator:

ARadauer

Top Contributor
- ein Paket nimmt ja verschiedenste Wege bei so langen Übertragungsstrecken
ja darum wird man öfter messen und den durchnitt ausrechnen...
- Ein IP-Paket besitzt keinen Zeitstempel
brauchst du den? ich würd eine art ping schicken, die dauer bis zur antwort /2 wird die dauer für eine strecke sein
- ist "Service-Programmierung" mit java überhaupt möglich?
"service" ist ein sehr allgemeiner begriff
 
N

nillehammer

Gast
- ein Paket nimmt ja verschiedenste Wege bei so langen Übertragungsstrecken
Stimmt, der Weg ist aber auch nicht der einzige Faktor, der die Laufzeit bestimmt. Die Latenz der beteiligten Router spielt da bspw. auch mit rein. Über den langen Messzeitraum sollten Ausschläge nach oben/unten sich ja herausmitteln. Sehe ich also kein Problem drin.
- Ein IP-Paket besitzt keinen Zeitstempel
Stimmt, aber TCP hat sowas (Stichwort TCP-Options). Es wird u.a. auch für Deinen Anwendungsfall verwendet. Guckst Du hier: TCP option 8, Timestamp Das Blöde ist nur, dass Du per Java keinen Zugriff auf diese Options hast (zumindest nicht, dass ich wüsste). Insofern müsstest Du das umgehen, in dem Du selbst den Timestamp erzeugst und an Deinen Testserver in Australien schickst.
- ist "Service-Programmierung" mit java überhaupt möglich?
Verstehe den Begriff "Service" in diesem Kontext nicht. Meinst du sowas wie einen Windows-Service (oder unter Unix auch Daemon genannt)? Falls ja, dann heißt die Antwort teils/teils. Du kannst in Java ein Programm schreiben, dass ständig auf einem Port auf Verbindungen horcht und was macht (prominentestes Beispiel Tomcat). Dieses Programm lässt sich aber nicht als Service/Daemon starten. Dafür sind sog. Wrapper(-Scripts) nötig, die von der gewählten Plattform abhängen.

Nachdem Du ja nicht auf Java festgelegt bist und es für solche Messzwecke bereits sehr gute Tools gibt, würde ich Dir aber eher Raten, dich bei diesen Tools zu bedienen.
 
Zuletzt bearbeitet von einem Moderator:
Das mit dem Ping und weg durch 2 hab ich mir auch schon überlegt. Aber da kommt doch wieder das Problem der unterschiedlichen Wege ins Spiel, dass es ja nicht den gleich Weg/die gleiche Verzögerung erfährt, wenn es zurück geschickt wird.

Mit "Service" meine ich eine Anwendung, die 24/7 (über ca. 2 Monate hinweg) läuft und pro Minute ein Paket los schickt, damit ich ausreichend Messdaten zur Verfügung habe.

Außerdem sollen die Messdaten so genau wie möglich sein.

Wenn es solche Tools schon gibt, wo finde ich diese denn?
 
N

nillehammer

Gast
Aber da kommt doch wieder das Problem der unterschiedlichen Wege ins Spiel, dass es ja nicht den gleich Weg/die gleiche Verzögerung erfährt, wenn es zurück geschickt wird.
So ist das im Internet nunmal. Wenn Du dort ideale Bedingungen hättest, müsstest Du ja auch nicht messen, sondern könntest einfach die Entfernung nach Australien durch die Lichtgeschwindigkeit teilen und so die Zeit berechnen. Die Messung über einen langen Zeitraum stellt doch sicher, dass Extremwerte nicht so ins Gewicht fallen und im Durchschnitt ein Wert herauskommt, der die durch Messungen belegte reale Situation widerspiegelt. Ich sehe da also immer noch kein Problem.
Das mit dem Ping und weg durch 2 hab ich mir auch schon überlegt.
Das ist ein berechtigter Einwand, wenn Dich eigentlich nur die einfache Zeit interessiert.
Wenn es solche Tools schon gibt, wo finde ich diese denn?
Mal sone Idee, wie es mit bestehenden Tools gehen könnte:
  • Besorg Dir in Deutschland und Australien je eine Linux-Kiste
  • Schicke Pings los, benutze den Parameter "-p", um einen Timestamp in den Payload des Pings zu generieren. (ping(8) - Linux man page)
  • Auf der Anderen Seite starte ein tcpdump oder einen wireshark und logge alle ankommenden Ping-Pakete in ein File inklusive. (Manpage of TCPDUMP), (Wireshark Go deep.)
  • Lass über das File im Nachgang ein Script laufen, dass die Timestamps aus den Pakleten rauspult, auf die Australische Zeitzone normalisiert und die Sendezeit von der Capturezeit abzieht. Dann hast Du Deine einfache Laufzeit für die Pakete, die Du dir auch wieder in einem File merkst. (Bash Reference Manual)
  • Wende Deine stochastistischen Verfahren auf die Messreihe an. (Microsoft Excel 2010 - Office.com)
[EDIT]
Statt mit Pings (also ICMP) kannst Du auch mit UDP arbeiten. Das ließe sich mittels Syslog-Messages relativ leicht realisieren. (syslog(3): send messages to system logger - Linux man page), (syslogd(8): system logging utilities - Linux man page)
So brauchst Du auch keinen tcpdump/wireshark, weil Du in Australien den Syslogdaemon direkt laufen lassen kannst.
[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:
Danke schonmal für die detaillierte Beschreibung des Lösungsvorschlags.

Das mit dem Ping und dem auslesen/umformen der Zeit verstehe ich.

In Linux bin ich leider auch nur rudimentär bewandert und würde dich bitten, mir noch genauere Informationen bezüglich sys_log bereit zu stellen.
Ich hab mir die man-pages durchgelesen, bin daraus aber leider nicht schlau geworden.

Gibts irgendwo ein Tutorial, wie man in Linux ein Skript schreibt? Falls der Server mal abschmiert, würde ich gerne das Skript in den Autostart mit einfügen, damit ich keine großen Ausfallzeiten habe.


vlg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Datenpakete zusammenfügen und trennen Netzwerkprogrammierung 7
Dann07 Audio streamen bricht immer ab nach kurzer Zeit Netzwerkprogrammierung 6
G seite nach posten eines html-forms laden Netzwerkprogrammierung 0
N websocket - keine Daten mehr nach ca 80 Sekunden Netzwerkprogrammierung 0
C Gerenderte Website nach der ausführung von JavaScript als HTML Code aus lesen Netzwerkprogrammierung 4
F Wiederverbinden nach socket Abbruch Netzwerkprogrammierung 1
T Socket sendet erst nach socket.close() Netzwerkprogrammierung 2
B Nach Verbindung gleich ObjectStream empfangen Netzwerkprogrammierung 1
L Verzeichnisse mit Inhalt nach SMB-Share kopieren Netzwerkprogrammierung 16
N HTTP Apache 4.2.1 HttpClient 302 nach Login und auf den weiteren Seiten. Netzwerkprogrammierung 5
K Socket Chat-GUI eigenes Event nach Empfangen Netzwerkprogrammierung 2
G Cookie Verwaltungs Problem nach Login auf InetSeite (Wo utma-Cookie?) Netzwerkprogrammierung 18
C Socket Identifikation des clients nach der accept() Methode Netzwerkprogrammierung 2
J Nach Dateiversand werden keine Nachrichten mehr übertragen Netzwerkprogrammierung 11
J Nachricht kommt erst nach beendigung der Anwendung an Netzwerkprogrammierung 4
D Socket Automatischer Reconnect nach einem Disconnect. Netzwerkprogrammierung 4
S Socket nach anderen clients im netzwerk suchen Netzwerkprogrammierung 3
B IP nach gewissen Kriterien überprüfen Netzwerkprogrammierung 5
V JNLP startet nicht !!?!! (je nach PC) Netzwerkprogrammierung 1
H Object Cast Problem nach Übertragung mit Log4j Netzwerkprogrammierung 5
DeviAn Über ein Linux Server ein Windows Server nach einer File fragen Netzwerkprogrammierung 6
Q Datein von Windows nach Mac senden Netzwerkprogrammierung 4
L RMI Programm beendet ohne Fehler sofort nach Start (Windows 2000) Netzwerkprogrammierung 7
T Zugriffsverweigerung nach Dateitransfer Netzwerkprogrammierung 7
T Nach Servern suchen Netzwerkprogrammierung 2
K Bad Request nach Form Login in Jakarta HttpClient Netzwerkprogrammierung 4
L nach Servern suchen Netzwerkprogrammierung 2
M ordner nach socket-übertragung defekt Netzwerkprogrammierung 5
B Im eingelesenen Text nach einem Wort suchen Netzwerkprogrammierung 46
M serialisierung funktioniert nur nach neuer instanzierung Netzwerkprogrammierung 3
W fehlerhafte Datei nach Dateitransfer per ServletOutputStream Netzwerkprogrammierung 2
A Client stürzt nach versand ab Netzwerkprogrammierung 13
M Verbindung nach Serverabsturz wieder aufbauen Netzwerkprogrammierung 9
S Unix Datei vom Server nach Windows übertragen Netzwerkprogrammierung 8
G Port belegt nach Server restart Netzwerkprogrammierung 5
G Socket wird nach Portscann geschlossen Netzwerkprogrammierung 2
N Verarbeitung nach Weiterleitung in Sockets Netzwerkprogrammierung 2
L Frage nach Socket Netzwerkprogrammierung 4

Ähnliche Java Themen


Oben