Als Alternative zur Blockleitung mit Blockkabel können wir auch Vorblock, Rückblock, Erlaubnisabgabe, etc über TCP/IP austauschen. Auch hier herrscht Spurverkabelung. Für jedes Gleis wird eine TCP-Verbindung aufgebaut. Das heißt bei einer zweigleisigen Strecke – egal ob GWB oder Richtungsbetrieb – werden zwei Verbindungen zwischen den jeweiligen Stellwerken aufgebaut.
Um eine TCP-Verbindung aufzubauen, muß eine Seite die Server-Rolle übernehmen und eine Port-Nummer konfigurieren, über die die Gegenstelle die Verbindung identifiziert. Die andere Seite übernimmt die Client-Rolle und baut die Verbindung zum Server auf. Dazu muß auf Client-Seite die Port-Nummer und die IP-Adresse (oder Name) des Rechners, auf dem der Server läft, konfiguriert werden. Die ersten Implementierungen haben immer beides unterstützt. Wer zuerst einschaltet, versucht vergeblich zur Gegenstelle zu verbinden und geht dann in Server-Mode. Wer als Zweites einschaltet, verbindet als Client erfolgreich. Das heißt, beide Seiten konfigurieren ihre eigene Server-Port-Nummer und IP-Adresse und Port-Nummer ihres Nachbarn. Das ist spätestens dann schwierig, wenn die IP-Adressen automatisch per DHCP vergeben werden.
Der Ausweg aus dieser Konfigurationshölle ist es, IP-Adresse und Port-Nummer des Nachbarn automatisch zu verbinden. Grundlage ist, daß in solchen Situationen auch immer Zugnummernmeldeanlage verwendet wird und da auch schon jeweils der eigene Name des Streckengleises und der Name aus Sicht der Nachbarbetriebstelle konfiguriert wird. Wer als Zweites einschaltet, sendet ein Broadcast an alle Betriebstellen, in dem er seine eigene Unterstationsnummer, Gleisname und Port-Nummer kund tut. Wer das als seinen Nachbarn identifiziert, weiß damit, wohin er verbinden soll – an die IP-Adresse, wo der Broadcast herkommt und die Port-Nummer in der Nachricht. Details gibt es auf einer eigenen Seite über Auto-IP.
Genau wie auf der physikalischen Blockleitung werden mehrere aufeinander folgende Bytes mit SLIP (Serial Line Internet Protocol) zu Paketen zusammengefasst.
SLIP ist definiert in RFC 1055. Dort findet sich auch ein Programmierbeispiel zur Realisation in C. Entsprechende Funktionen sind auch in Delphi verfügbar.
Autor: Stefan Bormann $Id: tcp.html 966 2021-04-05 15:29:33Z sbormann71 $. |
Site hosted by: |