Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ inet(7) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ioctl(2)

bind(3N)

byteorder(3N)

connect(3N)

getsockopt(3N)

gethostent(3N)

getnetent(3N)

getprotoent(3N)

getservent(3N)

send(3N)

socket(3N)

arp(7)

icmp(7)

if(7)

ip(7)

tcp(7)

udp(7)

inet(7)                                                             inet(7)

NAME
     inet - Internet-Protokollfamilie

SYNTAX
     #include <sys/types.h>
     #include <netinet/in.h>

BESCHREIBUNG
     Die Internet-Protokollfamilie umfaßt eine Reihe von Protokollen, in
     deren Mittelpunkt das Internet-Protokoll (IP) [siehe ip(7)] steht und
     die ein gemeinsames Adreßformat benutzen. Auf die Protokolle der
     Internet-Familie kann über die Socket-Schnittstelle oder die
     Transport-Schnittstelle TLI (Transport Level Interface) zugegriffen
     werden. Die Socket-Schnittstelle unterstützt die Socket-Typen
     SOCKSTREAM, SOCKDGRAM und SOCKRAW. TLI unterstützt die verbindungs-
     losen (TCLTS) und die verbindungsorientierten (TCOTSORD) Dienst-
     Typen.

PROTOKOLLE
     Die Internet-Protokolfamilie enthält das Internet-Protokoll IP, das
     Adressenumsetzungsprotokoll ARP (Address Resolution Protocol), das
     Internet-Protokoll für Steuerungsmeldungen (ICMP), das Protokoll zur
     Übertragungssteuerung (TCP) und das Benutzer-Datagrammprotokoll (UDP).

     IP    IP ist das netzwerkübergreifende, zentrale Übertragungsprotokoll
           für Datagramme der Internet-Protokollfamilie [siehe ip(7)].

     TCP   Unterstützt die SOCKSTREAM-Abstraktion der Socket-
           Schnittstellen und den TLI-Service-Typ TCOTSORD [siehe
           tcp(7)].

     UDP   Unterstützt die Socket-Abstraktion SOCKDGRAM und den TLI-
           Service-Typ TCLTS [siehe udp(7)]. Eine direkte Schnittstelle zu
           IP steht sowohl über TLI als auch über die Socket-Schnittstelle
           zur Verfügung.

     ICMP  Wird vom Kern benutzt, um Fehler bei der Protokollverarbeitung
           zu bearbeiten und zu melden. Benutzerprogramme können ebenfalls
           mit ICMP arbeiten [siehe icmp(7)].

     ARP   Wird benutzt, um 32-Bit IP-Adressen in 48-Bit MAC-Adressen zu
           übersetzen [siehe arp(7)].













Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

inet(7)                                                             inet(7)

     Die 32-Bit IP-Adresse besteht aus einer Netzwerknummer und einer Rech-
     nernummer. Bei Adressen der Klasse A ist das höchstwertige Bit Null,
     wobei die 8 höherwertigen Bits die Netzwerknummer darstellen. Bei
     Adressen der Klasse B sind die beiden höchstwertigen Bits auf 10
     gesetzt; in diesem Fall dienen die 16 höherwertigen Bits als Netzwerk-
     nummernfeld. Bei Adressen der Klasse C ist der Netzwerknummernteil 24
     Bit lang, wobei die drei höchstwertigen Bits 110 enthalten. Anlagen
     mit einem IP-Netzwerk-Cluster können wahlweise eine einzige Netzwerk-
     nummer für den Cluster benutzen. Dies geschieht mittels Subnetzadres-
     sierung. Der Rechnernummernteil der Adresse wird weiter unterteilt in
     einen Subnetznummernteil und einen Rechnernummernteil. Innerhalb eines
     Clusters erscheint jedes Subnetz wie ein individuelles Netzwerk. Nach
     außen erscheint die gesamte Gruppe wie ein einziges, einheitliches
     Netzwerk, das nur einen einzigen Routing-Eintrag benötigt. Die Adres-
     sierung von Subnetzen wird durch die folgenden ioctl(2)-Aufrufe ermög-
     licht und geprüft; sie haben das gleiche Format wie der SIOCSIFADDR-
     Aufruf [siehe if(7)].

     SIOCSIFNETMASK      Netzwerkmaske für die Schnittstelle setzen. Die
                         Netzwerkmaske gibt den Netzwerkteil der Adresse
                         an. Falls sie mehr enthält als durch den Adressen-
                         typ angezeigt ist, bedeutet dies, daß mit Subnet-
                         zen gearbeitet wird.

     SIOCGIFNETMASK      Netzwerkmaske für Schnittstelle einlesen.

ADRESSIERUNG
     IP-Adressen sind vier Byte lange Größen, die in der Reihenfolge der
     Netzwerkbytes abgespeichert sind. IP-Adressen sollten unter Verwendung
     der Routinen zur Umsetzung der Byte-Reihenfolge [siehe byteorder(3N)]
     bearbeitet werden.

     Adressen der Internet-Protokollfamilie verwenden folgende Struktur:

          struct sockaddrin {
                  short    sinfamily;
                  ushort  sinport;
                  struct   inaddr sinaddr;
                  char     sinzero[8];
          };

     Es stehen Bibliotheksroutinen zur Verfügung, um Strukturen dieser Art
     zu bearbeiten [siehe inet(3N)].

     Das sinaddr-Feld der sockaddrin-Struktur enthält eine lokale oder
     ferne IP-Adresse. Jede Netzwerkschnittstelle hat ihre eigene eindeu-
     tige IP-Adresse. Der Sonderwert INADDRANY kann in diesem Feld angege-
     ben werden, um "Wildcard"-Umsetzung anzustoßen. Wird dieser Sonderwert
     in einem bind(3N)-Aufruf angegeben, so bleibt die IP-Adresse des Sok-
     kets frei, so daß der Socket alle Verbindungswünsche oder Pakete emp-
     fängt, die an irgendeine gültige IP-Adresse des Systems geschickt wur-
     den. Dies kann sich als nützlich erweisen, wenn ein Prozeß die lokale


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

inet(7)                                                             inet(7)

     IP-Adresse nicht kennt oder wenn ein Prozeß zum Empfang von Anforde-
     rungen alle seine Netzwerkschnittstellen ausnutzen möchte. In der
     Struktur sockaddrin, die im bind(3N)-Aufruf angegeben wird, muß für
     inaddr entweder der Wert INADDRANY oder eine im System gültige IP-
     Adresse angegeben werden. Anforderungen, den Endpunkt an eine andere
     Adresse anzubinden, ergeben den Fehler EADDRNOTAVAI. Wird ein
     connect(3N)-Aufruf für einen Socket abgesetzt, der in einer lokalen
     Adresse Wildcards enthält, so setzt das System das sinaddr-Feld des
     Sockets auf die IP-Adresse der Netzwerkschnittstelle, über die die
     Pakete dieser Verbindung geleitet werden.

     Das sinport-Feld der sockaddrin-Struktur spezifiziert eine Portnum-
     mer, die von TCP  oder UDP benutzt wird. Die lokale Portnummer, die im
     bind(3N)-Aufruf angegeben wird, muß größer sein als IPPORTRESERVED
     (definiert in <netinet/in.h>), es sei denn, der erzeugende Prozeß
     läuft mit Superuser-Privilegien. Auf diese Weise wird ein Bereich mit
     geschützten Anschlußnummern zur Verfügung gestellt. Darüber hinaus
     darf die lokale Portadresse nicht von einem Socket der gleichen Adreß-
     familie und des gleichen Typs benutzt werden. Anforderungen, Sockets
     mit Portnummern zu verbinden, die bereits von anderen Sockets benutzt
     werden, ergeben den Fehler EADDRINUSE. Wenn die lokale Portadresse mit
     Null angegeben wird, verwendet das System eine eindeutige Portadresse,
     die größer als IPPORTRESERVED ist. Ebenso wird eine eindeutige lokale
     Portadresse vom System ausgewählt, wenn ein nicht gebundener Socket in
     einem connect(3N)- oder sendto-Aufruf [siehe send(3N)] verwendet wird.
     Auf diese Weise können Programme, die sich nicht darum kümmern, welche
     lokale Portnummer benutzt wird, TCP Verbindungen aufbauen, indem sie
     einfach socket(3N) und danach connect(3N) aufrufen. Außerdem können
     sie UDP-Datagramme absenden, indem sie nacheinander socket(3N) und
     sendto(3N) aufrufen.

     Obwohl diese Implementierung nur eindeutige lokale Portnummern für
     Sockets zuläßt, erlaubt TCP mehrfache simultane Verbindungen für die
     gleiche lokale Portnummer, solange die fernen IP-Adressen oder Port-
     nummern für jede Verbindung unterschiedlich sind. Programme können die
     Socketeinschränkungen explizit außer Kraft setzen, indem sie die
     Socket-Option SOREUSEADDR mittels setsockopt setzen [siehe
     getsockopt(3N)].

     TLI wendet leicht unterschiedliche Semantik-Regeln beim Binden von
     lokalen Portnummern an. Diese Semantik-Regeln treffen dann zu, wenn
     Protokolle der Internet Familie über TLI benutzt werden.

HINWEISE
     Die Unterstützung des Internet-Protokolls wird geändert, wenn dies
     nötig wird.








Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

inet(7)                                                             inet(7)

SIEHE AUCH
     ioctl(2), bind(3N), byteorder(3N), connect(3N), getsockopt(3N),
     gethostent(3N), getnetent(3N), getprotoent(3N), getservent(3N),
     send(3N), socket(3N), arp(7), icmp(7), if(7), ip(7), tcp(7), udp(7).

     Network Information Center, DDN Protocol Handbook (3 vols.), Network
     Information Center, SRI International, Menlo Park, Calif., 1985.















































Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026