|
|
Appendix A. Two Example Implementations for 4.2BSD Unix
Connected: An Internet Encyclopedia
Appendix A. Two Example Implementations for 4.2BSD Unix
Up:
Connected: An Internet Encyclopedia
Up:
Requests For Comments
Up:
RFC 903
Prev: IV. References
Appendix A. Two Example Implementations for 4.2BSD Unix
Appendix A. Two Example Implementations for 4.2BSD Unix
The following implementation sketches outline two different
approaches to implementing a RARP server under 4.2BSD.
- Provide access to data-link level packets outside the kernel. The
RARP server is implemented completely outside the kernel and
interacts with the kernel only to receive and send RARP packets. The
kernel has to be modified to provide the appropriate access for these
packets; currently the 4.2 kernel allows access only to IP packets.
One existing mechanism that provides this capability is the CMU
"packet-filter" pseudo driver. This has been used successfully at
CMU and Stanford to implement similar sorts of "user-level" network
servers.
- Maintain a cache of database entries inside the kernel. The full
RARP server database is maintained outside the kernel by a user
process. The RARP server itself is implemented directly in the
kernel and employs a small cache of database entries for its
responses. This cache could be the same as is used for forward ARP.
The cache gets filled from the actual RARP database by means of two
new ioctls. (These are like SIOCIFADDR, in that they are not really
associated with a specific socket.) One means: "sleep until there is
a translation to be done, then pass the request out to the user
process"; the other means: "enter this translation into the kernel
table". Thus, when the kernel can't find an entry in the cache, it
puts the request on a (global) queue and then does a wakeup(). The
implementation of the first ioctl is to sleep() and then pull the
first item off of this queue and return it to the user process.
Since the kernel can't wait around at interrupt level until the user
process replies, it can either give up (and assume that the
requesting host will retransmit the request packet after a second) or
if the second ioctl passes a copy of the request back into the
kernel, formulate and send a response at that time.
Connected: An Internet Encyclopedia
Appendix A. Two Example Implementations for 4.2BSD Unix
|
|
|
 |

|
 |
|
Protect yourself from cyberstalkers, identity thieves, and those who would snoop on you.
| |
Stop spam from invading your inbox without losing the mail you want. We give you more control over your e-mail than any other service.
| |
Block popups, ads, and malicious scripts while you surf the net through our anonymous proxies.
| |
Participate in Usenet, host your web files, easily send anonymous messages, and more, much more.
| |
All private, all encrypted, all secure, all in an easy to use service, and all for only $5.95 a month!
|
|
Service Details
|
|
 |
|