BEZEICHNUNG
x25 - Protokollschnittstelle für ITU-T X.25 / ISO-8208
ÜBERSICHT
#include
<sys/socket.h>
#include <linux/x25.h>
x25_socket = socket(AF_X25, SOCK_SEQPACKET, 0);
BESCHREIBUNG
X25-Sockets bieten eine Schnittstelle zur Netzwerkschicht (Packet Layer) des X.25-Protokolls. Dies ermöglicht es Anwendungen, über ein öffentliches X.25-Datennetz zu kommunizieren, wie es von der International Telecommunication Union in der Empfehlung X.25 (X.25 DTE-DCE-Modus) genormt ist. X25-Sockets können auch für die Kommunikation ohne zwischengeschaltetes X.25-Netz verwendet werden (X.25 DTE-DTE-Modus, wie in ISO-8208 beschrieben).
Nachrichtengrenzen bleiben erhalten – ein read(2) von einem Socket wird die gleiche Datenmenge abrufen wie das entsprechende write(2) an den Socket des Peer-Rechners. Wenn nötig, erledigt der Kernel die Segmentierung und das Zusammensetzen langer Nachrichten mittels des X.25-M-Bits. Es gibt keine hart codierte Obergrenze für die Größe von Nachrichten. Allerdings kann die Rekonstruktion einer langen Nachricht fehlschlagen, wenn ein vorübergehender Mangel an System-Ressourcen oder andere Einschränkungen (wie z.B. Begrenzungen für Socket-Speicher oder Puffer) wirksam werden. In solchen Fällen wird die X.25-Verbindung zurückgesetzt.
Socket-Adressen
Die AF_X25-Socket-Adressfamilie nutzt die struct
sockaddr_x25 für die Darstellung von
Netzwerkadressen, wie sie in der ITU-T-Empfehlung X.121
definiert sind.
struct sockaddr_x25 { sa_family_t sx25_family; /* muss auf AF_X25 gesetzt werden*/ x25_address sx25_addr; /* X.121-Adresse */ };
sx25_addr enthält ein Zeichenfeld x25_addr[], das als nullterminierte Zeichenkette zu interpretieren ist. sx25_addr.x25_addr[] besteht aus bis zu 15 (ohne das abschließende NULL-Byte) ASCII-Zeichen, die die X.121-Adresse bilden. Es sind nur die Dezimalziffern von '0' bis '9' erlaubt.
Socket-Optionen
Die folgenden für X.25 spezifischen Socket-Optionen
können mit setsockopt(2) gesetzt und mit
getsockopt(2) gelesen werden. Das Argument
level muss dafür auf SOL_X25 gesetzt
werden.
X25_QBITINCL
bestimmt, ob das X.25 Q-bit (Qualified Data Bit) für den Nutzer zugänglich ist. Sie erwartet ein Ganzzahlargument. Ist das Argument (standardmäßig) auf 0 gesetzt, wird das Q-Bit für ausgehende Paket nicht gesetzt; das Q-Bit eingehender Pakete wird ignoriert. Ist der Wert auf 1 gesetzt, wird jeder in den Socket geschriebenen oder daraus gelesenen Nachricht ein zusätzliches erste Byte vorangestellt. Für aus dem Socket gelesene Daten bedeutet eine 0 als erstes Byte, dass die Q-Bits der entsprechenden eingehenden Datenpakete nicht gesetzt wurden. Ein erstes Byte mit dem Wert 1 bedeutet, dass das Q-Bit der entsprechenden eingehenden Datenpakete gesetzt wurde. Wenn das erste Byte der in den Socket geschriebenen Daten 1 ist, wird das Q-Bit der entsprechenden ausgehenden Datenpakete gesetzt werden. Wenn das erste Byte 0 ist, wird das Q-Bit nicht gesetzt.
VERSIONEN
Die AF_X25-Protokollfamilie ist ein neues Merkmal von Linux 2.2.
FEHLER
viele, weil die X.25-PLP-Implementierung als CONFIG_EXPERIMENTAL gekennzeichnet ist
Diese Handbuchseite ist nicht vollständig.
Es gibt noch keine spezielle Header-Datei für Anwendungsprogrammierer; Sie müssen die Kernel-Header-Datei < linux/x25.h> verwenden. CONFIG_EXPERIMENTAL könnte auch bedeuten, dass zukünftige Versionen der Schnittstelle nicht binärkompatibel sind.
X.25-N-Reset-Ereignisse werden derzeit noch nicht an den Prozess des Anwenders weitergereicht. Somit können im Fall eines Resets (Zurücksetzens) Daten verloren gehen, ohne dass der Verlust gemeldet wird.
SIEHE AUCH
Jonathan Simon Naylor: “The Re-Analysis and Re-Implementation of X.25.” Die URL lautet ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz">ftp://ftp.pspt.fi/pub/ham/linux/ax25/x25doc.tgz.
KOLOPHON
Diese Seite ist Teil der Veröffentlichung 5.07 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer <Martin.E.Schauer [AT] gmx.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german [AT] lists.org>.