diff options
Diffstat (limited to 'share/doc/iso/wiscman/arp.4p')
-rw-r--r-- | share/doc/iso/wiscman/arp.4p | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/share/doc/iso/wiscman/arp.4p b/share/doc/iso/wiscman/arp.4p new file mode 100644 index 0000000..f0fe2a0 --- /dev/null +++ b/share/doc/iso/wiscman/arp.4p @@ -0,0 +1,118 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)arp.4p 6.2 (Berkeley) 5/15/86 +.\" +.TH ARP 4P "May 15, 1986" +.UC 5 +.SH NAME +arp \- Address Resolution Protocol +.SH SYNOPSIS +.B "pseudo-device ether" +.SH DESCRIPTION +ARP is a protocol used to dynamically map between DARPA Internet +and 10Mb/s Ethernet addresses. It is +used by all the 10Mb/s Ethernet interface drivers. +It is not specific to Internet protocols or to 10Mb/s Ethernet, +but this implementation currently supports only that combination. +.PP +ARP caches Internet-Ethernet address mappings. When an interface +requests a mapping for an address not in the cache, ARP queues the +message which requires the mapping and broadcasts +a message on the associated network requesting the address mapping. +If a response is provided, the new mapping is cached and any pending +message is transmitted. +ARP will queue +at most one packet while waiting for a mapping request to be responded to; +only the most recently ``transmitted'' packet is kept. +.PP +To facilitate communications with systems which do not use ARP, +.IR ioctl \^s +are provided to enter and delete entries in the Internet-to-Ethernet tables. +Usage: +.LP +.nf +.ft B + #include <sys/ioctl.h> + #include <sys/socket.h> + #include <net/if.h> + struct arpreq arpreq; + + ioctl(s, SIOCSARP, (caddr_t)&arpreq); + ioctl(s, SIOCGARP, (caddr_t)&arpreq); + ioctl(s, SIOCDARP, (caddr_t)&arpreq); +.fi +.ft R +Each ioctl takes the same structure as an argument. +SIOCSARP sets an ARP entry, SIOCGARP gets an ARP entry, and SIOCDARP +deletes an ARP entry. These ioctls may be applied to any socket descriptor +.I s, +but only by the super-user. +The +.I arpreq +structure contains: +.LP +.RS +.ta \w'#define\ \ 'u +\w'ATF_USETRAILERS\ \ 'u +\w'0x08\ \ \ \ 'u +.nf +/* + * ARP ioctl request + */ +struct arpreq { + struct sockaddr arp_pa; /* protocol address */ + struct sockaddr arp_ha; /* hardware address */ + int arp_flags; /* flags */ +}; +/* arp_flags field values */ +#define ATF_COM 0x02 /* completed entry (arp_ha valid) */ +#define ATF_PERM 0x04 /* permanent entry */ +#define ATF_PUBL 0x08 /* publish (respond for other host) */ +#define ATF_USETRAILERS 0x10 /* send trailer packets to host */ +.fi +.RE +.LP +The address family for the +.I arp_pa +sockaddr must be AF_INET; for the +.I arp_ha +sockaddr it must be AF_UNSPEC. +The only flag bits which may be written are ATF_PERM, ATF_PUBL +and ATF_USETRAILERS. +ATF_PERM causes the entry to be permanent if the ioctl call succeeds. +The peculiar nature of the ARP tables may cause the ioctl to fail if more +than 8 (permanent) Internet host addresses hash to the same slot. +ATF_PUBL specifies that the ARP code should respond to ARP requests for the +indicated host coming from other machines. This allows a host to act as an +``ARP server,'' which may be useful in convincing an ARP-only machine to talk +to a non-ARP machine. +.PP +ARP is also used to negotiate the use of trailer IP encapsulations; +trailers are an alternate encapsulation used to allow efficient packet +alignment for large packets despite variable-sized headers. +Hosts which wish to receive trailer encapsulations so indicate +by sending gratuitous ARP translation replies along with replies +to IP requests; they are also sent in reply to IP translation replies. +The negotiation is thus fully symmetrical, in that either or both hosts +may request trailers. +The ATF_USETRAILERS flag is used to record the receipt of such a reply, +and enables the transmission of trailer packets to that host. +.PP +ARP watches passively for hosts impersonating the local host (i.e. a host +which responds to an ARP mapping request for the local host's address). +.SH DIAGNOSTICS +.B "duplicate IP address!! sent from ethernet address: %x:%x:%x:%x:%x:%x." +ARP has discovered another host on the local network which responds to +mapping requests for its own Internet address. +.SH SEE ALSO +ec(4), de(4), il(4), inet(4F), arp(8C), ifconfig(8C) +.br +``An Ethernet Address Resolution Protocol,'' RFC826, Dave Plummer, +Network Information Center, SRI. +.br +``Trailer Encapsulations,'' RFC893, S.J. Leffler and M.J. Karels, +Network Information Center, SRI. +.SH BUGS +ARP packets on the Ethernet use only 42 bytes of data; however, the smallest +legal Ethernet packet is 60 bytes (not including CRC). +Some systems may not enforce the minimum packet size, others will. |