Seite 3 von 3

Re: Verbindung zum Server wird einfach getrennt!

Verfasst: So Feb 20, 2011 9:56 pm
von abrixas
Diese Diskussion führen wir regelmäßig alle paar Monate. Ettliche Male wurde bereits geschrieben das das System einige Minuten benötigt um eine verlorene Verbindung zu erkennen und dann die kaputte Session aufzuräumen. Eine bestehende, aber getrennte Session, wieder neu zuzuordnen ist nicht möglich. Dies sind einfach ein paar kleine technische Beschränkungen mit denen die meisten Spieler wunderbar klarkommen. Wer dennoch dauernd Probleme mit seinem WLan bzw DSL-Anschluß hat sollte seine Energie besser da in die Problembehebung investieren.

Bitte nicht falsch verstehen, aber ich meine hier denken so manche nur bis zum eigenen Tellerrand (PC mit DSL-Anschluß) alles dahinter scheint nicht zu interessieren. Klar verstehe ich das sich die meisten PC Benutzer auch nicht diese Gedanken machen wollen und ihren PC eben "nur" benutzen. Deshalb sollten alle die sich mit der Materie nicht weiter beschäftigen möchten einfach akzeptieren das bei Verbindungsabrüchen erst nach einer Wartezeit, von weniger als 10 Minuten, das gleiche Stw wieder betreten werden kann.
oder die DSL-Verbindung nen Reconnect macht. Ich vermute hier irgendwelche Restriktionen seitens Java, dass z.B. mit einer neuen IP die bestehende Session nicht mehr kontaktiert werden kann oder so; denn die Daten selbst wären bei einem reinen kurzzeitigen Verbindungsabbruch ja auf dem Clientrechner noch vorhanden.
Das ist falsch, nach einem Reconnect müssen alle Programme ihre Verbindung neu aufbauen bzw ihren Request (z.B. Browser) mindestens einmal neu absenden, damit Antwortpakete zur neuen IP-Adresse auch ankommen.

Re: Verbindung zum Server wird einfach getrennt!

Verfasst: Mo Feb 21, 2011 10:29 am
von Micha95
Danke schon mal für die Antworten!

@js:
Das mit den 2min hab ich aus ner Aussage von dir - wirklich viel detailierte Infos über die Arbeitsweise "hinter der Fassade" gibt's ja nicht bzw. war ich trotz rel. intensiver Forensuche noch nicht in der Lage zu finden. Evt. auch ein Grund warum die Fragen bzgl. Reconnects mit beständiger Regelmässigkeit wieder auftauchen. Ich verstehe, dass es Arbeit ist und wertvolle Zeit raubt eine kleine FAQ zu solchen Themen zusammenzustellen, aber evt. würde es mehr Zeit einsparen bei den häufigen Nachfragen. Die Stickies zum Thema sind zwar ein paar, aber alle relativ wage was Hintergrundinfos angeht. Wie gesagt der Satz hier ist von dir und hat mich scheinbar auf ne völlig falsche Fährte gebracht:
Wird denn auch alle 2 Minuten eine Verbindung zum Server aufgebaut? Denn wenn das nicht passiert kommt es zu einem Timeout und das Folgestellwerk bekommt den Zug trotzdem, da ein Spieler nicht mehr da zu sein scheint.
Es war mir bisher noch nicht mal möglich sicher herauszulesen was der Server über den Aufenthaltsort eines Zuges weiß - ob er weiß in welchem Stellwerk er ist oder nicht (mehr sowieso nicht) - bin mir ziemlich sicher, dass er es nicht weiß, sondern die Züge werden wohl mittels Verspätungsupdates daran gehindert ins nächste Stellwerk einzufahren. Der Fahrplan liegt also effektiv nur im Spiel selbst und nicht am Server vor - was aus Datentrafficsicht durchaus Sinn macht/machen könnte. Das kann alles völlig falsch sein, würde aber einige der "geht technisch nicht" Antworten erklären... ;)

@abrixas:
Das System müsste eine abgebrochene Verbindung nicht selbst erkennen, das könnte der User theoretisch selbst per "Reconnet"-Button oder automatisch. Das Java-Spiel selbst stellt ja sofort fest, dass die Verbindung weg ist und wirft die Meldung aus, ergo könnte es in diesem Fall den Server versuchen neu zu kontaktieren, gibt ihm damit die neue IP und die Logindaten, womit sichergestellt ist, dass der User derjenige ist, der er vorher schon war. Der Server weiß damit das neue Ziel für seine Daten und die Verbindung steht wieder. Das scheint aber entweder seitens Java (bzw. der Verbindung Java/Browser) nicht zu gehen oder es ist nicht gewollt, dass das Spiel selbst die Logindaten schickt. Die Verbindung selbst scheint ja nicht über das Spiel sonder nur über den Browser hergestellt werden zu können - oder wäre es theoretisch möglich die Standalone Version (also die offline Version) mit einem Login aufzurüsten?
Das ist falsch, nach einem Reconnect müssen alle Programme ihre Verbindung neu aufbauen bzw ihren Request (z.B. Browser) mindestens einmal neu absenden, damit Antwortpakete zur neuen IP-Adresse auch ankommen.
Das seh ich ja genau wie du, nur eben versteh ich nicht, warum dieser resend nicht möglich ist - Problem der Verknüpfung Java/Browser, da ja das Spiel neustartet wenn man die Startseite neuläd oder geht der Connect vom Java-Spiel selbst nicht? Evt. geht es ja auch gar nicht, dass ein standalone Java-Spiel eine Verbindung aufbaut - das meinte ich mit "Restriktion seitens Java".

Ich versuche über den Tellerrand zu schauen, aber das ist mit den Antworten die man hier im Forum findet nicht wirklich möglich - evt. ist noch irgendwo ein Thread versteckt, der vieles technische beantwortet, bisher hab ich ihn nicht finden können. Evt. ist es aber auch schlicht nicht gewollt, dass sich der User seine Gedanken macht, dann sollte man das einfach klipp und klar sagen und Sticky machen, dann geht der Nervpegel aus dieser Richtung auch wieder runter. :) Glaub ich aber auch nicht, denn Input ist ja erwünscht und dahingehend versteh ich auch deine Antwort.

Noch hierzu: Mir geht's weniger um meine eigene Verbindung zum Server - ich hab meinen "workaround" und wann komm ich schon mal auf 8h am Stück? da wären dann up to 20min Wartezeit relativ auch egal - sondern darum, dass wenn ich mal nen Nachbarn hab und dieser rausfliegt ich sicher sein kann, dass er die nächsten 20-30min nicht wieder auftaucht, wenn überhaupt. Das find ich einfach schade, gerade bei Onlineabenden, wenn dann plötzlich 1, 2 oder mehr Zwischenknoten für so lange Zeit weg sind.

Gruß
Micha

PS: Mir fällt grad auf, dass ich noch nie an die 21/5 Uhr Grenze gekommen bin, da ich immer ne frühe Session nehm - kann man nach dieser Trennung eigentlich direkt wieder rein oder muss man auch warten? Aufzuräumen gibt's da ja nix...
EDIT: Das test ich grad mal in der Hoffnung dann nicht warten zu müssen... ;)

Re: Verbindung zum Server wird einfach getrennt!

Verfasst: Mo Feb 21, 2011 10:53 am
von Slein
Hallo Micha

Unter http://doku.stellwerksim.de/faq gibt es eine FAQ. Dieses Thema habe ich allerdings auf den ersten Blick nicht entdeckt. Sollte es wirklich nicht vorhanden sein kannst du mir auch gerne einen Textvorschlag senden, der dann eingefügt werden kann.

Ev. wird es auch andernfalls eingefügt, es wird dann einfach etwas länger dauern.

Gruss aus den Doku-Zentrum
Niels

EDIT: Du sprichst immer davon das im Forum nichts zu finden ist, auch schon mal ans Handbuch gedacht?

Re: Verbindung zum Server wird einfach getrennt!

Verfasst: Mo Feb 21, 2011 11:11 am
von Micha95
Servus Slein,

Danke, die FAQ kenn ich soweit - hatte ich oben blöd formuliert - z.B. was dort unter "technische Hintergründe" steht ist halt sehr kurz und allgemein gehalten; man kann die obigen Punkte daraus nicht erschließen und erkennen wo "die Wand" ist, die u.a. den Reconnect verhindert. FAQ um diese Punkte erweitern hätt ich wohl besser geschrieben. :)

Ich würde durchaus mithelfen (auch anderweitig), würde in dem Fall aber erstmal wenig bringen, da ich ja eben den Hintergrund (noch) nicht verstehe.
Könnte das aber dann gern zusammenfassen und dir schicken, sofern der Inhalt dann korrekt ist.

Gruß
Micha

Re: Verbindung zum Server wird einfach getrennt!

Verfasst: Mo Feb 21, 2011 11:21 am
von js
Micha95 hat geschrieben:Danke schon mal für die Antworten!

@js:
Das mit den 2min hab ich aus ner Aussage von dir - wirklich viel detailierte Infos über die
Das muss aber eine sehr sehr alte Aussage sein. Wo soll die stehen, denn die gilt seit gut 4 Jahren so nicht mehr.
Arbeitsweise "hinter der Fassade" gibt's ja nicht bzw. war ich trotz rel. intensiver Forensuche noch nicht in der Lage zu finden. Evt. auch ein Grund warum die Fragen bzgl.
Das hat mehrere Gründe:
1. kaum einer will es wissen, dafür würde so eine Beschreibung, die jeder verstehen könnte, sehr viel Arbeit machen
2. es gibt immer mal wieder Änderungen, so dass diese dann nicht nur entwickelt und getestet sondern auch noch (für wenige Leser) dokumentiert werden müssten
Reconnects mit beständiger Regelmässigkeit wieder auftauchen. Ich verstehe, dass es Arbeit ist und wertvolle Zeit raubt eine kleine FAQ zu solchen Themen zusammenzustellen, aber evt. würde es mehr Zeit einsparen bei den häufigen Nachfragen. Die Stickies zum Thema sind zwar ein paar, aber alle relativ wage was Hintergrundinfos angeht.
Die Handbuch-Autoren sind für jede Hilfe dankbar. Die FAQ (http://doku.stellwerksim.de/faq) kann nur so gut sein, wie die Zulieferung.
Es war mir bisher noch nicht mal möglich sicher herauszulesen was der Server über den Aufenthaltsort eines Zuges weiß - ob er weiß in welchem Stellwerk er ist oder nicht (mehr sowieso nicht) - bin mir ziemlich sicher, dass er es nicht weiß, sondern die Züge werden wohl mittels Verspätungsupdates daran gehindert ins nächste Stellwerk einzufahren. Der Fahrplan liegt also effektiv nur im Spiel selbst und nicht am Server vor - was aus Datentrafficsicht durchaus Sinn macht/machen könnte. Das kann alles völlig falsch sein, würde aber einige der "geht technisch nicht" Antworten erklären... ;)
Nun, das ändert sich in schöner Regelmäßigkeit bei größeren Updates. Hinzu kommt, dass etliche Faktoren bewusst nicht öffentlich dokumentiert sind, um etwaige "Spielkinder" an ihrem Spieltrieb zu hindern, die sonst das System vielleicht lahmlegen könnten. Das würde nämlich dann bedeuten, dass entweder stärkere (und damit aufwändigere) Schutz- und Testmaßnahmen eingebaut werden müssten oder aber alles einfach den Bach runter gegangen lassen wird. Beides nicht toll.
Das System müsste eine abgebrochene Verbindung nicht selbst erkennen, das könnte der User theoretisch selbst per "Reconnet"-Button oder automatisch. Das Java-Spiel selbst stellt ja sofort fest, dass die Verbindung weg ist und wirft die Meldung aus, ergo könnte es in diesem Fall den Server versuchen neu zu kontaktieren, gibt ihm damit die neue IP und die Logindaten, womit sichergestellt ist, dass der User derjenige ist, der er vorher schon war.
Soweit die Theorie. Aber wie lange soll da gewartet werden? 1 Minute, 5, 10? Je länger gewartet würde, desto mehr staut sich auf. Und es bleibt die Frage: Wie soll das System das erkennen? Oder soll pauschal nach jedem Verbindungsabbruch (der gewollt oder ungewollt sein kann) 5 Minuten gewartet werden? Dann müssten die 10 Minuten Wartezeit auf 15 erhöht werden. Es müssten also alle, die ordentlich ein Spiel verlassen haben wegen weniger, die damit Probleme haben, 5 Minuten länger warten damit diese weniger lang warten müssen. Ist kein gutes Verhältnis.

Außerdem verlangt das nach einer aufwändigen Wiedererkennung. Denn auch der IRC-Server ist von plötzlichen Verbindungsabbrüchen nicht begeistert: Er bemerkt die auch erst nach bis zu 5 Minuten, weil die Gegenseite keine Antwort mehr schickt. Das heißt, der Spieler müsste mit einem anderen Namen auftauchen, dazu eine andere IP-Adresse. Und dann soll das System diesem "völlig fremden" nun glauben? Und eine DSL-Trennung ist auf Serverseite eine ziemlich rüde Sache: davon erfährt nämlich der Server überhaupt nichts! Statt dessen kann er nur warten und nach einer gewissen Zeit ohne Antwort davon ausgehen, dass da etwas nicht mehr da ist.
Der Server weiß damit das neue Ziel für seine Daten und die Verbindung steht wieder. Das scheint aber entweder seitens Java (bzw. der Verbindung Java/Browser) nicht zu gehen oder es ist nicht gewollt, dass das Spiel selbst die Logindaten schickt. Die
Verbindung selbst scheint ja nicht über das Spiel sonder nur über den Browser hergestellt werden zu können
Weiß er, wie oben erklärt, erstmal nicht. Die Logindaten, und damit zur nächsten Schwierigkeit, sammelt das Forum. Und das Forum schmeist auch erstmal jeden raus, der mit einer andere IP kommt oder sich mehr als 10 Minuten nicht mehr gerührt hat.
Das ist falsch, nach einem Reconnect müssen alle Programme ihre Verbindung neu aufbauen bzw ihren Request (z.B. Browser) mindestens einmal neu absenden, damit Antwortpakete zur neuen IP-Adresse auch ankommen.
Das seh ich ja genau wie du, nur eben versteh ich nicht, warum dieser resend nicht möglich ist - Problem der Verknüpfung Java/Browser, da ja das Spiel neustartet wenn man die Startseite neuläd oder geht der Connect vom Java-Spiel selbst nicht?
Da kommt das Sicherheitskonzept von Java-Applets zum Tragen, normalerweise zum Vorteil des Nutzers: Das Applet darf nicht mal eben irgendwelche Webseiten öffnen außer in dem Fenster, in dem es läuft. Das dumme dabei ist, dass das Applet damit die Seite ändert, auf der es läuft. Macht es schon klick? Die Seite, auf der das Applet läuft, wird neu geladen.

Wie gesagt: Der Nutzen, dass einige wenige Spieler ihr Spiel wegen ihrer schlechten Leitung wieder aufsetzen können steht in keinem Verhältnis zum technischen Aufwand und den Restriktionen, die für andere Spieler entstehen (siehe oben 15 statt 10 Minuten, Stauung des Verkehrs zu Nachbarn). Und selbst mit dem Aufwand ist eine Garantie der Funktion nicht gegeben, wie eine DSL-Trennung serverseitig zeigt.

Im übrigen: es gibt kein Online-Spiel, dass eine DSL-Trennung übersteht. Einzig die Wartezeit bei hoher Leistungsauslastung ist bei manchen Spieler da recht hoch. Bei Spielen wie World-of-Warcraft dürfte man selbst bei 1 Sekunde Verzögerung schon aus dem Spiel fliegen oder von irgend einem Monster erschlagen worden sein - keine Ahnung, reine Vermutung.

Du siehst, die Gedanken für eine Lösung und die Gründe für die jetzige Umsetzung habe ich mir schon vor Jahren gemacht. Es mag sicherlich die eine oder andere Umsetzungsmöglichkeit geben. Sie muss aber in einem angemessenen Verhältnis Aufwand-Nutzen stehen. Und der Nutzen ist einfach noch zu gering, denn selbst deine auf den ersten Blick durchaus umsetzbare Lösung (die mir auch gefallen hat) wird leider viele Fälle nicht abdecken - vermutlich schon deinen eigenen Problemfall nicht wegen der genannten serverseitigen Bedeutung der DSL-Trennung.

Re: Verbindung zum Server wird einfach getrennt!

Verfasst: Mo Feb 21, 2011 3:06 pm
von Micha95
@js:
wow - danke für die ausführliche Antwort! Deine Aussage ist wirklich von 2005, was mal wieder das Problem mit "nutze die Forumssuche" aufzeigt: Was man findet ist teilweise gar nicht mehr korrekt. Blöderweise sogar einer der Threads, die in der Linkliste hier verlinkt wurden, daher hab ich dem vertraut ohne aufs Datum zu schauen (http://www.stellwerksim.de/forum/viewto ... ht=spielen). ;)

In den meisten Punkten gehe ich absolut mit dir konform - ist primär eine Aufwand/Nutzen-Frage ob sich ein Reconnect mit einem aktiven Applet realisieren läßt.

Frag mich allerdings noch immer was in den 10min "Aufräumzeit" passiert. Die 10min starten ja sobald die Daten übertragen werden und nicht erst wenn ich den "Start" Knopf drücke...
Kann es sein, dass es irgendwie mit der 5min-Fahrzeit-Regel pro Stellwerk zu hat und mit der Ermittlung in welchem Stellwerk sich eine Zug-ID gerade befindet?
Da die Wartezeit auf Reconnect ja dazu addieren würde sollte es ja nicht mit mit den Connectiondaten zu tun haben...

Gruß
Micha

Re: Verbindung zum Server wird einfach getrennt!

Verfasst: Mo Feb 21, 2011 3:47 pm
von TigerChris
Micha95 hat geschrieben: Es war mir bisher noch nicht mal möglich sicher herauszulesen was der Server über den Aufenthaltsort eines Zuges weiß - ob er weiß in welchem Stellwerk er ist oder nicht (mehr sowieso nicht) - bin mir ziemlich sicher, dass er es nicht weiß, sondern die Züge werden wohl mittels Verspätungsupdates daran gehindert ins nächste Stellwerk einzufahren. Der Fahrplan liegt also effektiv nur im Spiel selbst und nicht am Server vor - was aus Datentrafficsicht durchaus Sinn macht/machen könnte. Das kann alles völlig falsch sein, würde aber einige der "geht technisch nicht" Antworten erklären... ;)
Kurz nochmal on topic:
Wir Zug-Desi/R-Admins/Admins können es genau sehen wo der Zug ist. Das können normale User/Spieler nicht sehen

beispiel:
Zug ICE 884 (was eingentlich die Nr garnicht mehr gibt)
Fahrplan komplett

Code: Alles auswählen

Instanz	AID	Verspätung	   State	  ZID	Themenmarker	        Simparams	          Nextan	Tagescode	 Fahrplanjahr
1         xxx       12          xxx       xxx     xxxx                   xxxxxx              xxxx      xxxx           2006
topic off

wieder zurück zum Thema

Re: Verbindung zum Server wird einfach getrennt!

Verfasst: Mo Feb 21, 2011 4:19 pm
von js
Micha95 hat geschrieben: Frag mich allerdings noch immer was in den 10min "Aufräumzeit" passiert. Die 10min starten ja sobald die Daten übertragen werden und nicht erst wenn ich den "Start" Knopf drücke...
Kann es sein, dass es irgendwie mit der 5min-Fahrzeit-Regel pro Stellwerk zu hat und mit der Ermittlung in welchem Stellwerk sich eine Zug-ID gerade befindet?
Da die Wartezeit auf Reconnect ja dazu addieren würde sollte es ja nicht mit mit den Connectiondaten zu tun haben...
Schon recht gut vermutet. 10 Minuten sind etwas konservativ gewählt - und weil es eine runde Zahl ist. Worst-Case wäre, der Spieler verlässt genau dann Stellwerk, wenn das Zugsystem sich Liste der ungesteuerten Züge ermittelt hat und beginnt, diese zu bearbeiten. Das dauert dann einige Minuten (beim aktuellen Server mit der aktuellen Zugmenge ca. 1,2 Minuten pro Instanz, beim Tageswechsel etwas länger). Dieser Job läuft alle 5 Minuten, also wäre nach gut 7 Minuten alles aufgeräumt - bei aktuellem Server und Zugmenge. Mit etwas Luft nach oben 10 Minuten.

Bevor jemand vorschlägt, doch weniger als 5 Minuten zu nehmen: Das wäre kontraproduktiv. Das Ermitteln der betroffenen Züge dauert immer gleich lang, egal ob nach 5 Minuten, nach 10 oder nach 1 Minute. Nur die Menge variiert.
Wir Zug-Desi/R-Admins/Admins können es genau sehen wo der Zug ist. Das können normale User/Spieler nicht sehen
Wobei VORSICHT! "Genau" ist da sehr ungenau formuliert. Man kann sehen, in welchem Stellwerk ein Zug ist. Eine Funktion, die es für Spieler auch mal gab, aber wenig nützlich war.

Re: Verbindung zum Server wird einfach getrennt!

Verfasst: Mo Feb 21, 2011 4:25 pm
von AndreG
TigerChris hat geschrieben: Kurz nochmal on topic:
Wir Zug-Desi/R-Admins/Admins können es genau sehen wo der Zug ist. Das können normale User/Spieler nicht sehen

beispiel:
Zug ICE 884 (was eingentlich die Nr garnicht mehr gibt)
Fahrplan komplett

Code: Alles auswählen

Instanz	AID	Verspätung	   State	  ZID	Themenmarker	        Simparams	          Nextan	Tagescode	 Fahrplanjahr
1         xxx       12          xxx       xxx     xxxx                   xxxxxx              xxxx      xxxx           2006
topic off
Wobei die von dir gezeigte Liste viele technische Infos enthält und es recht unspektakulär ist, den Weg eines Zuges zu verfolgen. Einzig zur Fehlersuche sind diese Infos wirklich hilfreich.