Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

arp(1M)

ifconfig(1M)

if(7)

inet(7)

arp(7)                                                               arp(7)

NAME
     arp - Adressenumsetzungsprotokoll

BESCHREIBUNG
     ARP (Address Resolution Protocol) ist ein Protokoll, das zur dynami-
     schen Umsetzung von Internet Protocol (IP) Adressen auf MAC-Adressen
     von Ethernet-, FDDI- und Token-Ring-Schnittstellen benutzt wird. Das
     STREAMS-Gerät /dev/arp ist keine TLI-Transportvorrichtung (Transport
     Level Interface) und darf nicht zusammen mit der Schnittstelle TLI
     benutzt werden.

     ARP puffert Einträge für die Adressenumsetzung. Wenn eine Schnitt-
     stelle eine Adressenumsetzung anfordert, die nicht im Puffer vorhanden
     ist, reiht ARP das Paket, das die Umsetzung benötigt, in die Wartesch-
     lange ein und gibt eine entsprechende Meldung auf dem zugehörigen Net-
     zwerk aus und fordert damit die Adressenumsetzung an. Wenn eine Ant-
     wort erfolgt, wird die neue Umsetzung gepuffert und das wartende Paket
     übertragen. ARP kann maximal ein Paket in die Warteschlange einreihen,
     während es auf die Antwort auf eine Umsetzungsanforderung wartet. Es
     wird immer nur das letzte "übertragene" Paket aufgehoben.

     Um die Kommunikation mit Systemen zu erleichtern, die kein ARP verwen-
     den, sind ioctl()-Aufrufe vorhanden, mit denen Einträge in den Umset-
     zungstabellen erzeugt oder gelöscht werden können.

ANWENDUNG
          #include <sys/sockio.h>
          #include <sys/socket.h>
          #include <net/if.h>
          #include <net/ifarp.h>

          struct arpreq arpreq;
          int d;
          struct arpreq;
          struct strioctl ioc;
          d=open ("/dev/arp", ORDWR);
          ioc.iccmd = cmd;            /* cmd ist SIOCSARP oder
                                          SIOCGARP oder SIOCDARP */
          ioc.ictimeout = 0;
          ioc.iclen = sizeof(struct arpreq);
          ioc.icdp = &arpreq;
          ioctl(d, ISTR, (caddrt)&ioc);

     Jeder ioctl()-Aufruf benutzt die gleiche Struktur als Argument. SIOC-
     SARP erzeugt einen ARP-Eintrag, SIOCGARP liest einen ARP-Eintrag zu
     und SIOCDARP löscht einen ARP-Eintrag. Diese ioctl()-Aufrufe können
     über jeden Socketdeskriptor s der Internet-Familie oder über den
     Deskriptor eines ARP-Geräts erfolgen, allerdings nur durch einen pri-
     viligierten Benutzer. Die arpreq-Struktur enthält folgende Informa-
     tion:

     /*



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

arp(7)                                                               arp(7)

     * ARP ioctl request
     */
     struct arpreq {
             struct sockaddr arppa;    /* Protokolladresse */
             struct sockaddr arpha;    /* Hardware Adresse */
             int     arpflags;         /* Schalter */
     };

     /*  Werte für arpFlags */
     #define ATFCOM          0x2    /* vollst. Eintrag (arpha valid) */
     #define ATFPERM         0x4    /* permanenter Eintrag */
     #define ATFPUBL         0x8    /* (Antwort für anderen Host) */
     #define ATFUSETRAILERS  0x10   /* Trailer-Pakete an Host */

     Die Adreßfamilie für die Socket-Adresse arppa muß AFINET sein; für
     die Socket-Adresse arpha muß sie AFUNSPEC sein. Die einzigen Schal-
     ter, die angegeben werden dürfen, sind ATFPERM, ATFPUBL und
     ATFUSETRAILERS. ATFPERM macht den Eintrag permanent, wenn der
     ioctl()-Aufruf erfolgreich war. Aufgrund der besonderen Natur der
     ARP-Tabellen kann die ioctl()-Aufruf abgewiesen werden, wenn zuviele
     permanente IP-Adressen auf die gleiche Position verweisen. ATFPUBL
     gibt an, daß der ARP-Code auf externe Anforderungen für den gegebenen
     Rechner antworten soll. Dies ermöglicht es einem lokalen Rechner, sich
     wie ein "ARP-Server" zu verhalten, was dann besonders nützlich sein
     kann, wenn eine Verbindung von einem "Nur-ARP-Gerät" zu einem "Nicht-
     ARP-Gerät" hergestellt werden soll.

     Die IP-Trailer-Encapsulation wird derzeit von Reliant UNIX nicht
     unterstützt. Deshalb ist der Schalter ATFUSETRAILERS ohne Bedeutung.

     ARP überwacht das Netz passiv auf ARP-Antworten anderer Rechner, die
     auf Anforderungen für den lokalen Rechner antworten.

SIEHE AUCH
     arp(1M), ifconfig(1M), if(7), inet(7).

LITERATUR
     Plummer, Dave, An Ethernet Address Resolution Protocol -or- Converting
     Network Protocol Addresses to 48.bit Ethernet Addresses for
     Transmission on Ethernet Hardware, RFC 826, Network Information
     Center, SRI International, Menlo Park, Calif., November 1982.

     Leffler, Sam, and Michael Karels, Trailer Encapsulations, RFC 893,
     Network Information Center, SRI International, Menlo Park, Calif.,
     April 1984.









Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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