Terms-LogoTerms97801 Version 2.0 Online Handbuch

Inhalt Index Voriges Kapitel Vorige Seite Nächste Seite Nächstes Kapitel Kapitel: 1 2 3 4 5 6 7 8 9 10 Anhang


3.2 Anbindung über Netz

3.2.1 Voraussetzungen für die Netzverbindung

Die Anbindung an das Netz erfolgt über die Windows Sockets. Die Windows Sockets sind ein herstellerunabhängiger Standard zur Netzprogrammierung. Sie definieren einen Satz von Funktionsaufrufen, die durch eine Laufzeit-Bibliothek mit dem Namen wsock32.dll realisiert werden. Die wsock32.dll ist die 32bit-Version der winsock.dll.

Die von Terms97801 gewünschte Schnittstellendefinition ist die Version 1.1. Diese Versionsnummer bezieht sich auf die Definition der Funktionsaufrufe und sollte nicht mit der Versionsbezeichnung für die Korrekturstände der wsock32.dll eines bestimmten Netzsoftware-Herstellers verwechselt werden.

Die wsock32.dll befindet sich im Lieferumfang der Netzsoftware.

Bei Windows95 und WindowsNT ist bereits eine wsock32.dll zur Installation enthalten.

Bei dem Verbindungsaufbau über das Netz wird die wsock32.dll zuerst im Arbeitsverzeichnis, dann im Windows-Verzeichnis und danach im Pfad gesucht und gestartet. Gelingt dies nicht, zeigt Windows eine System-Fehlermeldung.

HINWEIS:
Bei Verwendung von 16bit-Netzsoftware, die keine wsock32.dll zur Verfügung stellt, sondern nur die winsock.dll, muß die 16bit-Version von Terms97801 eingesetzt werden.

HINWEIS:
Ist auf einem System keine wsock32.dll vorhanden, so genügt es nicht, eine wsock32.dll auf das System zu kopieren. Die Sockets müssen zur verwendeten Netzsoftware passen, und das System muß entsprechend konfiguriert sein. Im Normalfall geschieht diese Konfiguration durch eine Installationprozedur.

HINWEIS:
Bei Verwendung verschiedener Sockets auf einem System kann die Tatsache genutzt werden, daß Terms97801 die wsock32.dll zuerst im eigenen Arbeitsverzeichnis sucht. Das System hat aber immer nur eine wsock32.dll zur gleichen Zeit im Einsatz.

3.2.2 Netzverbindung einstellen

Nach Aufruf des Menü-Punkts System...Netz erscheint folgender Dialog:


Abb. 3: Netzverbindung einstellen

Hier kann der Hostname bzw. die IP-Adresse und der Benutzername eingetragen werden. Falls mehrere Hosts zur Verfügung stehen oder mehrere Benutzer/innen mit Terms97801 arbeiten, sollte der Knopf 'Verbindungsliste bearbeiten' gedrückt werden. Im darauf erscheinenden Dialog für die Netz-Verbindungsliste können entsprechende Einträge vorgenommen werden.

Mit den beiden Radio-Schaltern kann gewählt werden, ob die Verbindung gemäß TELNET-Protokoll oder mit dem RLOGIN-Mechanismus aufgebaut wird. Im Normalfall sollte RLOGIN verwendet werden, da solche Verbindungen normalerweise schneller arbeiten. Der TELNET-Zugang wurde in erster Linie für Sytemverwalter/innen implementiert, die sich auf Rechnern einloggen wollen, auf denen kein RLOGIN zugelassen wird.

Die $TERM-Variable wird von den Anwendungen auf dem Host benutzt, um die passenden Steuersequenzen für das Terminal zu verwenden.

Die Net-Baudrate gibt an, mit welcher Geschwindigkeit die UNIX-Seite arbeiten soll. Dieser Wert kann mit stty abgefragt werden, hat aber keine Auswirkung auf die tatsächliche Geschwindigkeit, mit der die Zeichen an Terms97801 übergeben werden. Die Net-Baudrate wird nur bei RLOGIN-Verbindungen an den Host übermittelt.

Der Benutzername wird dem Host nur im Fall einer RLOGIN-Verbindung übermittelt. Wird kein Benutzername angegeben, so erscheint nach dem Verbindungsaufbau die Abfrage der login-Kennung. Wird der Benutzername angegeben und zusätzlich auf der Hostseite der Benutzername in die .rhosts eingetragen, so wird bei der Verbindung weder nach login-Kennung noch nach dem Paßwort gefragt.

Bei einem RLOGIN von einem UNIX-System ist es möglich, sich unter einem anderen als dem aktuellen Benutzernamen anzumelden (l-Option). Dieses läßt sich auch mit Terms97801 erreichen.

Mit dem Eintrag in der Terms97801-Ini-Datei

[Net]

Ownname=otto
Username=ernst

läßt sich ein Benutzername für den User am PC angeben. In obigem Beispiel meldet sich der 'otto' vom PC als 'ernst' am UNIX-System an.

Da bei einem UNIX-System der 'otto' sich bereits mit Paßwort identifiziert hat, beim PC aber nicht, wird von einer Konfigurationen die aus dem PC-Benutzernamen die Zugangsberechtigung ableitet aus Sicherheitsbedenken abgeraten.

Wird für den Verbindungsaufbau ein Hostname angegeben, so müssen in der Windows-seitigen hosts-Datei Hostname und die IP-Adresse eingetragen sein. Wird dagegen eine IP-Adresse angegeben, ist ein Eintrag in der hosts-Datei nur dann notwendig, wenn die Option 'IP-Adresse über hosts auflösen' aktiviert ist. Aus Sicherheitsaspekten sollte diese Option aktiviert werden, denn dann können auch trotz Kenntnis einer IP-Adresse nur die in der hosts angegebenen Rechner erreicht werden.

Mit der Option 'Bei Verbindungsende neu verbinden' wird nach dem Beenden einer Verbindung die Verbindung wieder neu aufgebaut. Damit ergibt sich das gewohnte Verhalten eines seriell angebundenen Terminals.

Die Option wirkt auch, wenn die TCP-Verbindung abgebaut wurde, weil für längere Zeit keine Eingaben gemacht wurden. Da dieser Timeout bei kostenpflichtigen Verbindungen (über Telefonleitungen) erwünscht ist, sollte in diesen Fällen diese Option nicht aktiviert werden.

Soll die Verbindung nur durch den Host getrennt werden, so kann das Kästchen 'Verbindungsende nur durch Host' angekreuzt werden. Diese Option wurde für die Beseitigung von Problemen geschaffen, die entstehen, wenn bei laufender Anwendung die Verbindung getrennt wird. Diese Option ist mit Vorsicht einzusetzen, da ohne Trennung durch den Host nicht nur Terms97801, sondern auch die gesamte Windows-Sitzung nicht beendet werden kann.

HINWEIS:
Wenn die Sicherheitsaspekte einen Start ohne Paßwortabfrage zulassen, kann mit einem Eintrag in der .rhosts, und den zusätzlich aktivierten Terms97801-Optionen 'Verbinde nach Start' und 'Sende Zeichen nach Verbindung', mit dem Start von Terms97801 der Start einer UNIX-Anwendung verbunden werden. Mit passenden Ini-Dateien und dem i-Schalter können so Icons für UNIX-Anwendungen im Windows-Programm-Manager eingerichtet werden.

HINWEIS:
Dem Hostnamen oder der IP-Adresse darf durch ein Leerzeichen getrennt eine Portnummer folgen. Wird keine Portnummer angegeben, so wird der Port 513 verwendet, denn auf diesem Port läuft normalerweise der rlogin-Service des UNIX-Rechners. Im Falle einer TELNET-Verbindung wird als Standard der Port 23 verwendet.

3.2.3 Die Netz-Verbindungsliste

Die Netz-Verbindungsliste kann entweder über den Dialog für das Netz (siehe unten) oder über den Verbindungs-Dialog für das Netz erreicht werden. Eintragungen in diese Liste sind nur dann nützlich, wenn für die Verbindung mehrere Hosts oder mehrere Benutzer zur Auswahl stehen.


Abb. 4: Netz-Verbindungsliste

Hier können bis zu 20 Einträge für Kombinationen aus Hostname/IP-Adresse und Benutzername eingegeben werden.

Die Liste wird beim Verbinden zur Auswahl angezeigt, wenn das entsprechende Kästchen im Dialog System..Verbindung angekreuzt ist:


Abb. 5: Verbinde-Dialog für das Netz

Eine Verbindung kann durch Doppelklick in eine Zeile der Verbindungsliste gestartet werden. Wird der Knopf 'Verbinde' gedrückt, so werden für den Verbindungsaufbau die Werte aus den Feldern 'Hostname' und 'Benutzername' benutzt. Diese Werte müssen nicht in der Liste enthalten sein und können vor dem Drücken von 'Verbinde' geändert werden.

3.2.4 Technische Hinweise zur Netzverbindung

Auf der Hostseite läuft ein Netzdämon inetd, der Anfragen an das Netz überwacht.
Im Falle einer RLOGIN-Verbindung fragt Terms97801 das Netz nach einem 'remote login', was auf der Hostseite den Login-Dämon in.rlogind aktiviert. Der Login-Dämon erzeugt, je nach UNIX-System, ein Pseudo-TTY pts oder den inet, das für eine Anwendung wie ein normales Terminal tty aussieht, jedoch eine Verbindung zum Netz statt zur seriellen Terminalleitung ermöglicht.

Im Falle einer TELNET-Verbindung wird auf der Hostseite der Telnet-Dämon in.telnetd gestartet.

Die Einstellungen des Pseudo-TTYs können, wie die der normalen TTY-Schnittstelle, mit dem Befehl stty -a angezeigt und gesetzt werden. Dieser Befehl ermöglicht die Einstellung des Bitmodes, der Parität und der Behandlung von Sonderzeichen, wie 'backspace' und 'del'.


Abb. 6: Prozeßbaum bei drei Netzverbindungen und einer seriellen Verbindung

3.2.5 Problembehebung bei Netzverbindung

Bei einer korrekten Socket-Installation sollte Terms97801 auf Anhieb funktionieren. Da Terms97801 oft das erste Programm auf dem Windows-System ist, das die Windows-Sockets benutzt, sind Probleme mit der Netz-Verbindung meist Probleme der Windows-Sockets-Installation.

Es ist sicherlich eine gute Idee, bei Problemen mit dem Netz das Ping-Programm und die Terminalemulation der Netzsoftware zu probieren. Läßt sich mit einem dieser beiden Programme keine Verbindung aufbauen, liegt das Problem eindeutig in der Installation der Netzsoftware.

Funktionieren beide Programme, so ist dies aber keine Garantie für eine saubere Installation der Netzsoftware. Das Ping-Programm verwendet normalerweise nicht die Windows-Sockets, sondern nutzt die herstellerspezifische Schnittstelle der Netzsoftware.

Terms97801 zeigt bei einem Netzfehler einen ausführlichen Fehlerdialog an. Bis zur Anzeige der Fehlermeldung kann einige Zeit vergehen, da vorher eventuell die Timeouts abgelaufen sein müssen. Der Fehler-Dialog hat folgende Gestalt:


Abb. 7: Terms97801-Netzfehleranzeige im Expertenmodus

Die Terms97801-Fehlernummer gibt die Stelle im Code von Terms97801 an, an der der Fehler aufgetreten ist. Der Terms97801-Fehlertext beschreibt den aufgetretenen Fehler.

Außerdem wird auch die Fehlernummer angezeigt, die von der verwendeten Socket-Funktion zurückgegeben wurde. Damit die Bedeutung der Fehlernummer nicht in der Socket-Spezifikation nachgeschlagen werden muß, wird auch die englische Beschreibung des Socket-Fehlers mit ausgegeben. Der Socket-Fehler gibt den Grund an, warum der Fehler aufgetreten ist.

In obigem Beispiel besagt die Terms97801-Fehlermeldung, daß keine Verbindung aufgebaut werden konnte. Der Socket-Fehler gibt an, daß der angewählte Host innerhalb der Timeout-Zeitspanne keine Antwort gab. In diesem konkreten Fall war der Host nicht eingeschaltet.

Derselbe Terms97801-Fehler kann aber auch aus anderen Gründen auftreten, z.B. weil der angegebene Host nicht in der Datei hosts aufgeführt ist (No data record available) oder das Netz nicht läuft (Network is down).

Im Fehlermeldungs-Dialog werden auch die herstellerspezifischen Informationen angezeigt. Diese Information fällt je nach Socket-Hersteller sehr unterschiedlich aus, und reicht von keiner Angabe bis zur Angabe des Datums des Compilerlaufs.
Die herstellerspezifischen Informationen können nützlich sein, wenn auf einem System verschiedene Sockets installiert sind.

Für den Fall, daß keine Terms97801-Fehlermeldung erscheint und die Verbindung sofort wieder getrennt wird, sollte überprüft werden, ob für das UNIX-System eine rlogin-Berechtigung besteht. Ab UNIX 5.4 kann mit dem Programm truss protokolliert werden, was auf der UNIX-Seite passiert. Hierzu werden mit truss der Netzdämon inetd und seine Kindprozesse beim Verbindungsaufbau beobachtet. Zuerst muß die Prozeß-ID des inetd ermittelt werden. Der truss-Aufruf kann dann so aussehen:

truss -f -o /tmp/terms.truss -p 307

3.2.6 Spezielle Netzoptionen

Terms97801 kann über Einträge in der Ini-Datei mit speziellen Netzoptionen konfiguriert werden. Die meisten Optionen stammen aus der Anfangszeit des Windows-Socket-Standards und dienen dazu, die 'Macken' der ersten Socket-Implementationen der verschiedenen Netzsoftware-Hersteller zu umgehen (workarounds). Mit den anderen Optionen können Einstellungen vorgenommen werden, die durch den Socket-Standard vorhanden sind, aber normalerweise nicht benötigt werden. Für unvorhergesehene Anforderungen sind diese Einstellungen vorsichtshalber verfügbar.
Es wird davon abgeraten, an diesen Optionen etwas zu ändern, solange keine triftigen Gründe vorliegen und keine Kenntnisse über die Funktionsweise der Sockets vorhanden sind.

Alle Netzeinstellungen werden in der Sektion [Net] eingetragen. Die angegebenen Werte sind die Werte, die verwendet werden, falls kein Eintrag vorhanden ist.

NetBufSize=4096 Wert liegt zwischen 0 und 8192 und gibt die Größe des Netz-Puffers an.

FreeSockets=N Y oder N
Mit der Angabe Y wird die wsock32.dll beim Verbindungsende freigegeben und für einen neuen Verbindungsaufbau neu angefordert. Diese Angabe hilft, wenn nach einem Verbindungsende ein erneuter Verbindungsaufbau nicht oder erst nach Ablauf eines Timeouts möglich ist.

LingerOnOff=1 0 für kein Linger oder 1 für Linger

Linger=0 Lingerzeit in Sekunden; Wert liegt zwischen 0 und 100

Shutdown=0 -1, 0, 1 oder 2
Diese Werte entsprechen den Werten für die shutdown-Funktion des Socket-APIs. Bei der Angabe von -1 wird die shutdown-Funktion nicht aufgerufen.

KeepAlive=N Y oder N
Ist hier Y angegeben, so wird die KeepAlive-Option gesetzt.

TCPDebug=N Y oder N
Ist hier Y angegeben, so wird die Debug-Option gesetzt. Die Wirkung dieser Option hängt von den verwendeten Sockets ab.


Terms-LogoTerms97801 Version 2.0 Online Handbuch

Inhalt Index Voriges Kapitel Vorige Seite Nächste Seite Nächstes Kapitel Kapitel: 1 2 3 4 5 6 7 8 9 10 Anhang