TCP-Handshake in i-Telex "kaputt"

Fachforen für Entwickler und Bastler
Benutzeravatar

Topic author
ProgBernie
Rank 5
Rank 5
Beiträge: 422
Registriert: Sa 27. Okt 2018, 17:51
Hauptanschluß: 898906 laeng d

Re: TCP-Handshake in i-Telex "kaputt"

#11

Beitrag: # 19676Beitrag ProgBernie »

detlef hat geschrieben: Di 21. Jul 2020, 15:47 Ich habe jetzt mal eine Ethernetkarte mit der Testversion aktualisiert.
Kann es sein, dass das Verbindungsende ein Problem macht?

Ich kann jetzt nur mit WinTlx testen, weil ich gerade nur eine TW39-Karte habe, aber wenn ich da einen Disconnect mache, bleibt der Fernschreiber an. Er scheint nicht mitzubekommen, dass die Verbindung beendet wurde.

Mit der Version 837 der anderen Ethernetkarte, geht der Fernschreiber sofort aus, wenn ich einen Disconnect mache.
Das sollte natürlich nicht sein. Allerdings verwundert mich das Phänomen etwas, denn an der Stelle habe ich nichts gedreht, es ging nur um ein fehlendes ACK in einem bestimmten Zustand. Bleibt denn auch die LED für den Anschluß an?
Ich habe das gerade mal getestet und kann das Verhalten bei mir nicht beobachten: Mit WinTelex 1.0.2.1 angewählt, ein paar Worte geschrieben und auf Trennen gedrückt. Die Verbindung wurde dann korrekt getrennt und der FS ging sofort aus. Ist an ED1000 angeschlossen, aber das sollte ja keinen Unterschied machen. Vielleicht testest Du mal gegen die 867, das ist ja der Stand vor meiner Änderung.
Gruß Bernd
--
Fernschreibstelle Labenz
898906 laeng d
Benutzeravatar

detlef
Rank 12
Rank 12
Beiträge: 3542
Registriert: Do 28. Mär 2019, 09:10
Wohnort: Marburg
Hauptanschluß: 7822222 hael d

Re: TCP-Handshake in i-Telex "kaputt"

#12

Beitrag: # 19677Beitrag detlef »

Wo finde ich denn jetzt nochmal die 867?
Gruß, Detlef

i-Telex: 7822222 (T1000), 114288 (F1300), 211230 (T100Z), 96868 (T37), 24394 (T68d)
Konferenzdienst: 11160 / 11161, Rundsender: 11162 / 11163 , Baudot-Bilder: 11166
Chat-GPT: 11168, Mail- und Fax-Dienst: 11170 / 11171, hist. Auskunft 1987: 40140, Wetterdienst: 717171
Benutzeravatar

FredSonnenrein
Founder
Founder
Beiträge: 2317
Registriert: Fr 3. Jun 2016, 13:49
Wohnort: Braunschweig
Hauptanschluß: 8579924 hawe d

Re: TCP-Handshake in i-Telex "kaputt"

#13

Beitrag: # 19678Beitrag FredSonnenrein »

Hier
https://sourceforge.net/p/itelex/code-0 ... k/main.hex
findet man alle alten Versionen, wobei die 867 unter [r868] steht. Das ist immer um eine Nummer höher als die im Code gespeicherte Nummer.
Zum Herunterladen der .hex aber nicht auf [r868] klicken, sondern auf "Download".
Grüße,
Fred Sonnenrein, Braunschweig
i-Telex 952741 (Lo133), 8579924 (T100s), 781272 (T100), 792911 (T68d) oder 531072 (T.typ.72)
Bei besetzt oder gestört bitte 531002 versuchen.
Benutzeravatar

detlef
Rank 12
Rank 12
Beiträge: 3542
Registriert: Do 28. Mär 2019, 09:10
Wohnort: Marburg
Hauptanschluß: 7822222 hael d

Re: TCP-Handshake in i-Telex "kaputt"

#14

Beitrag: # 19679Beitrag detlef »

Alles klar, deswegen hatte ich es nicht gefunden.
Gruß, Detlef

i-Telex: 7822222 (T1000), 114288 (F1300), 211230 (T100Z), 96868 (T37), 24394 (T68d)
Konferenzdienst: 11160 / 11161, Rundsender: 11162 / 11163 , Baudot-Bilder: 11166
Chat-GPT: 11168, Mail- und Fax-Dienst: 11170 / 11171, hist. Auskunft 1987: 40140, Wetterdienst: 717171
Benutzeravatar

detlef
Rank 12
Rank 12
Beiträge: 3542
Registriert: Do 28. Mär 2019, 09:10
Wohnort: Marburg
Hauptanschluß: 7822222 hael d

Re: TCP-Handshake in i-Telex "kaputt"

#15

Beitrag: # 19680Beitrag detlef »

detlef hat geschrieben: Di 21. Jul 2020, 15:47 Kann es sein, dass das Verbindungsende ein Problem macht?
Ist ein WinTlx-Problem. :/

Ich habe direkt nach dem Senden des End-Packets die Verbindung zugemacht. Dadurch ging des End-Packet nicht mehr raus.
Keine Ahnung, warum das mit älteren i-Telex-Versionen funktioniert hat.
Gruß, Detlef

i-Telex: 7822222 (T1000), 114288 (F1300), 211230 (T100Z), 96868 (T37), 24394 (T68d)
Konferenzdienst: 11160 / 11161, Rundsender: 11162 / 11163 , Baudot-Bilder: 11166
Chat-GPT: 11168, Mail- und Fax-Dienst: 11170 / 11171, hist. Auskunft 1987: 40140, Wetterdienst: 717171
Benutzeravatar

FredSonnenrein
Founder
Founder
Beiträge: 2317
Registriert: Fr 3. Jun 2016, 13:49
Wohnort: Braunschweig
Hauptanschluß: 8579924 hawe d

Re: TCP-Handshake in i-Telex "kaputt"

#16

Beitrag: # 19681Beitrag FredSonnenrein »

Wahrscheinlich geht das End-Paket noch raus, kommt aber gleichzeitig mit dem TCP FIN an, ggf. zusammmen mit einem ACK.

Ich glaube bisher hatte der TCP Stack irgendwie gar nicht auf ein ACK+FIN reagiert. Der "Status" des Sockets wird beim Empfang eines TCP FIN verändert, so dass eventuell noch nicht "abgeholte" Nutzdaten nicht mehr zugänglich sind. Vielleicht braucht es da noch Feinschliff...

i-Telex sendet das End-Packet und wartet dann 5 Sekunden darauf, dass die Gegenstelle "zumacht". Das passiert in der Regel sofort.
Nach einem Timeout von 5 Sekunden wird aber auch selbst der Port geschlossen.
Grüße,
Fred Sonnenrein, Braunschweig
i-Telex 952741 (Lo133), 8579924 (T100s), 781272 (T100), 792911 (T68d) oder 531072 (T.typ.72)
Bei besetzt oder gestört bitte 531002 versuchen.
Benutzeravatar

Topic author
ProgBernie
Rank 5
Rank 5
Beiträge: 422
Registriert: Sa 27. Okt 2018, 17:51
Hauptanschluß: 898906 laeng d

Re: TCP-Handshake in i-Telex "kaputt"

#17

Beitrag: # 19684Beitrag ProgBernie »

detlef hat geschrieben: Di 21. Jul 2020, 16:46 Ist ein WinTlx-Problem. :/

Ich habe direkt nach dem Senden des End-Packets die Verbindung zugemacht. Dadurch ging des End-Packet nicht mehr raus.
Keine Ahnung, warum das mit älteren i-Telex-Versionen funktioniert hat.
Es ist im IP-Stack AFAIR so geregelt daß ein FIN unbestätigte Daten ohne Schaden "überholen" darf. D.h es ist dann nicht sichergestellt daß die Daten zugestellt werden. Andererseits beendet jede Seite "ihre" Sendung durch Senden des FIN-Paketes, sagt also, daß sie keine weiteren Nutzdaten mehr schicken will, aber bleibt weiterhin bis zum Eintreffen des FIN der Gegenstelle empfangsbereit. Der socket ist dann im berühmten "halb-geschlossenem" Zustand.

Auch für Windows-Programmierer immer noch die Referenz ist von W. Richard Stevens "Unix network programming". Die deutsche Übersetzung vom Hanser-Verlach ist brauchbar.
Gruß Bernd
--
Fernschreibstelle Labenz
898906 laeng d
Benutzeravatar

Topic author
ProgBernie
Rank 5
Rank 5
Beiträge: 422
Registriert: Sa 27. Okt 2018, 17:51
Hauptanschluß: 898906 laeng d

Re: TCP-Handshake in i-Telex "kaputt"

#18

Beitrag: # 19685Beitrag ProgBernie »

FredSonnenrein hat geschrieben: Di 21. Jul 2020, 16:54 Wahrscheinlich geht das End-Paket noch raus, kommt aber gleichzeitig mit dem TCP FIN an, ggf. zusammmen mit einem ACK.

Ich glaube bisher hatte der TCP Stack irgendwie gar nicht auf ein ACK+FIN reagiert. Der "Status" des Sockets wird beim Empfang eines TCP FIN verändert, so dass eventuell noch nicht "abgeholte" Nutzdaten nicht mehr zugänglich sind. Vielleicht braucht es da noch Feinschliff...
Im Status SOCKET_READY wird FIN oder FIN,ACK den socket auf WAIT2FIN setzen.
In WAIT2FIN werden Daten, soweit ich sehe, weiterhin entgegengenommen und in den Fifo gepackt.
FredSonnenrein hat geschrieben: Di 21. Jul 2020, 16:54 i-Telex sendet das End-Packet und wartet dann 5 Sekunden darauf, dass die Gegenstelle "zumacht". Das passiert in der Regel sofort.
Nach einem Timeout von 5 Sekunden wird aber auch selbst der Port geschlossen.
Das ist eine robuste Implementierung. Dadurch daß man mit dem Endepaket der Gegenstelle den Ball zuspielt kann man sich beim Empfang eines FIN innerhalb der Timeoutzeit sicher sein, daß die Gegenstelle das Paket erhalten hat.
Gruß Bernd
--
Fernschreibstelle Labenz
898906 laeng d
Benutzeravatar

detlef
Rank 12
Rank 12
Beiträge: 3542
Registriert: Do 28. Mär 2019, 09:10
Wohnort: Marburg
Hauptanschluß: 7822222 hael d

Re: TCP-Handshake in i-Telex "kaputt"

#19

Beitrag: # 19686Beitrag detlef »

Wenn beim Beenden einer TCP-Verbindung ein FIN gesendet wird, warum ist dann der dämliche DOTNET TCP-Stack nicht in der Lage, mich über die Beendigung der Verbindung zu informieren? Es gibt keinen Event, wenn die Gegenseite die Verbindung schließt. :(

Ich habe jetzt beide Ethernet-Karten auf die Testversion aktualisiert und lass die mal laufen. Auf der einen wird aber mangels Schnittstellkarte nicht viel Traffic sein. ;)
Gruß, Detlef

i-Telex: 7822222 (T1000), 114288 (F1300), 211230 (T100Z), 96868 (T37), 24394 (T68d)
Konferenzdienst: 11160 / 11161, Rundsender: 11162 / 11163 , Baudot-Bilder: 11166
Chat-GPT: 11168, Mail- und Fax-Dienst: 11170 / 11171, hist. Auskunft 1987: 40140, Wetterdienst: 717171
Benutzeravatar

detlef
Rank 12
Rank 12
Beiträge: 3542
Registriert: Do 28. Mär 2019, 09:10
Wohnort: Marburg
Hauptanschluß: 7822222 hael d

Re: TCP-Handshake in i-Telex "kaputt"

#20

Beitrag: # 19687Beitrag detlef »

ProgBernie hat geschrieben: Di 21. Jul 2020, 20:02 Das ist eine robuste Implementierung. Dadurch daß man mit dem Endepaket der Gegenstelle den Ball zuspielt kann man sich beim Empfang eines FIN innerhalb der Timeoutzeit sicher sein, daß die Gegenstelle das Paket erhalten hat.
Mein WinTlx-Fix sieht genauso aus. Allerdings kann ich eben nicht feststellen, ob die Gegenseite die Verbindung beendet hat.
Also geht schon, ich müsste dann Dummy-Daten schicken (Acks). Dann bekomme ich einen Fehler, wenn die Verbindung geschlossen wurde.
Gruß, Detlef

i-Telex: 7822222 (T1000), 114288 (F1300), 211230 (T100Z), 96868 (T37), 24394 (T68d)
Konferenzdienst: 11160 / 11161, Rundsender: 11162 / 11163 , Baudot-Bilder: 11166
Chat-GPT: 11168, Mail- und Fax-Dienst: 11170 / 11171, hist. Auskunft 1987: 40140, Wetterdienst: 717171
Antworten

Zurück zu „Entwickler-Ecke“