summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes13
-rw-r--r--39.txt1525
-rw-r--r--39.zipbin0 -> 25834 bytes
-rw-r--r--LICENSE.txt11
-rw-r--r--README.md1
-rw-r--r--old/hhgi10.txt1339
-rw-r--r--old/hhgi10.zipbin0 -> 23890 bytes
7 files changed, 2889 insertions, 0 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..9f57f44
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,13 @@
+* text=auto
+*.txt text
+*.md text
+*.htm text
+*.html text
+*.png binary
+*.jpg binary
+*.svg text
+*.pdf binary
+*.bmp binary
+*.zip binary
+*.midi binary
+*.mp3 binary
diff --git a/39.txt b/39.txt
new file mode 100644
index 0000000..020380b
--- /dev/null
+++ b/39.txt
@@ -0,0 +1,1525 @@
+The Project Gutenberg EBook of Hitchhiker's Guide to the Internet, by Ed Krol
+
+This eBook is for the use of anyone anywhere at no cost and with
+almost no restrictions whatsoever. You may copy it, give it away or
+re-use it under the terms of the Project Gutenberg License included
+with this eBook or online at www.gutenberg.org
+
+** This is a COPYRIGHTED Project Gutenberg eBook, Details Below **
+** Please follow the copyright guidelines in this file. **
+
+Title: Hitchhiker's Guide to the Internet
+
+Author: Ed Krol
+
+Posting Date: December 17, 2011 [EBook #39]
+Release Date: September, 1992
+
+Language: English
+
+Character set encoding: ASCII
+
+*** START OF THIS PROJECT GUTENBERG EBOOK HITCHHIKER'S GUIDE TO THE INTERNET ***
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Hitchhikers Guide to the Internet
+ 25 August 1987
+
+
+
+ Ed Krol
+ krol@uxc.cso.uiuc.edu
+
+
+
+
+ This document was produced through funding of the National
+ Science Foundation.
+
+ Copyright (C) 1987, by the Board of Trustees of The University
+ of Illinois. Permission to duplicate this document, in whole
+ or part, is granted provided reference is made to the source
+ and this copyright is included in whole copies.
+
+
+ This document assumes that one is familiar with the workings
+ of a non-connected simple IP network (e.g. a few 4.2 BSD
+ systems on an Ethernet not connected to anywhere else).
+ Appendix A contains remedial information to get one to this
+ point. Its purpose is to get that person, familiar with a
+ simple net, versed in the "oral tradition" of the Internet
+ to the point that that net can be connected to the Internet
+ with little danger to either. It is not a tutorial, it
+ consists of pointers to other places, literature, and hints
+ which are not normally documented. Since the Internet is a
+ dynamic environment, changes to this document will be made
+ regularly. The author welcomes comments and suggestions.
+ This is especially true of terms for the glossary (definitions
+ are not necessary).
+
+
+
+
+ In the beginning there was the ARPAnet, a wide area
+ experimental network connecting hosts and terminal servers
+ together. Procedures were set up to regulate the allocation
+ of addresses and to create voluntary standards for the network.
+ As local area networks became more pervasive, many hosts became
+ gateways to local networks. A network layer to allow the
+ interoperation of these networks was developed and called IP
+ (Internet Protocol). Over time other groups created long haul
+ IP based networks (NASA, NSF, states...). These nets, too,
+ interoperate because of IP. The collection of all of these
+ interoperating networks is the Internet.
+
+ Two groups do much of the research and information work of
+ the Internet (ISI and SRI). ISI (the Informational Sciences
+ Institute) does much of the research, standardization, and
+ allocation work of the Internet. SRI International provides
+ information services for the Internet. In fact, after you
+ are connected to the Internet most of the information in
+ this document can be retrieved from the Network Information
+ Center (NIC) run by SRI.
+
+
+
+ Operating the Internet
+
+ Each network, be it the ARPAnet, NSFnet or a regional network,
+ has its own operations center. The ARPAnet is run by
+ BBN, Inc. under contract from DARPA. Their facility is
+ called the Network Operations Center or NOC. Cornell
+ University temporarily operates NSFnet (called the Network
+ Information Service Center, NISC). It goes on to the
+
+ -2-
+
+ regionals having similar facilities to monitor and keep
+ watch over the goings on of their portion of the Internet.
+ In addition, they all should have some knowledge of what is
+ happening to the Internet in total. If a problem comes up,
+ it is suggested that a campus network liaison should contact
+ the network operator to which he is directly connected. That
+ is, if you are connected to a regional network (which is
+ gatewayed to the NSFnet, which is connected to the
+ ARPAnet...) and have a problem, you should contact your
+ regional network operations center.
+
+
+ RFCs
+
+ The internal workings of the Internet are defined by a set
+ of documents called RFCs (Request for Comments). The general
+ process for creating an RFC is for someone wanting something
+ formalized to write a document describing the issue and mailing
+ it to Jon Postel (postel@isi.edu). He acts as a referee for
+ the proposal. It is then commented upon by all those wishing
+ to take part in the discussion (electronically of course).
+ It may go through multiple revisions. Should it be generally
+ accepted as a good idea, it will be assigned a number and
+ filed with the RFCs.
+
+ The RFCs can be divided into five groups: required, suggested,
+ directional, informational and obsolete. Required RFC's (e.g.
+ RFC-791, The Internet Protocol) must be implemented on any host
+ connected to the Internet. Suggested RFCs are generally
+ implemented by network hosts. Lack of them does not preclude
+ access to the Internet, but may impact its usability. RFC-793
+ (Transmission Control Protocol) is a suggested RFC. Directional
+ RFCs were discussed and agreed to, but their application has never
+ come into wide use. This may be due to the lack of wide need for
+ the specific application (RFC-937 The Post Office Protocol) or
+ that, although technically superior, ran against other pervasive
+ approaches (RFC-891 Hello). It is suggested that should the
+ facility be required by a particular site, animplementation
+ be done in accordance with the RFC. This insures that, should
+ the idea be one whose time has come, the implementation will be
+ in accordance with some standard and will be generally usable.
+ Informational RFCs contain factual information about the
+ Internet and its operation (RFC-990, Assigned Numbers).
+ Finally, as the Internet and technology have grown, some
+ RFCs have become unnecessary. These obsolete RFCs cannot
+ be ignored, however. Frequently when a change is made to
+ some RFC that causes a new one to be issued obsoleting others,
+ the new RFC only contains explanations and motivations for the
+ change. Understanding the model on which the whole facility
+ is based may involve reading the original and subsequent RFCs
+ on the topic.
+
+ -3-
+
+ (Appendix B contains a list of what are considered to be the
+ major RFCs necessary for understanding the Internet).
+
+
+
+ The Network Information Center
+
+ The NIC is a facility available to all Internet users which
+ provides information to the community. There are three
+ means of NIC contact: network, telephone, and mail. The
+ network accesses are the most prevalent. Interactive access
+ is frequently used to do queries of NIC service overviews,
+ look up user and host names, and scan lists of NIC documents.
+ It is available by using
+
+ %telnet sri-nic.arpa
+
+ on a BSD system and following the directions provided by a
+ user friendly prompter. From poking around in the databases
+ provided one might decide that a document named NETINFO:NUG.DOC
+ (The Users Guide to the ARPAnet) would be worth having. It could
+ be retrieved via an anonymous FTP. An anonymous FTP would proceed
+ something like the following. (The dialogue may vary slightly
+ depending on the implementation of FTP you are using).
+
+ %ftp sri-nic.arpa
+ Connected to sri-nic.arpa.
+ 220 SRI_NIC.ARPA FTP Server Process 5Z(47)-6 at Wed
+17-Jun-87 12:00 PDT
+ Name (sri-nic.arpa:myname): anonymous
+ 331 ANONYMOUS user ok, send real ident as password.
+ Password: myname
+ 230 User ANONYMOUS logged in at Wed 17-Jun-87 12:01 PDT,
+job 15.
+ ftp> get netinfo:nug.doc
+ 200 Port 18.144 at host 128.174.5.50 accepted.
+ 150 ASCII retrieve of <NETINFO>NUG.DOC.11 started.
+ 226 Transfer Completed 157675 (8) bytes transferred
+ local: netinfo:nug.doc remote:netinfo:nug.doc
+ 157675 bytes in 4.5e+02 seconds (0.34 Kbytes/s)
+ ftp> quit
+ 221 QUIT command received. Goodbye.
+
+ (Another good initial document to fetch is
+ NETINFO:WHAT-THE-NIC-DOES.TXT)!
+
+ Questions of the NIC or problems with services can be asked
+ of or reported to using electronic mail. The following
+ addresses can be used:
+
+ NIC@SRI-NIC.ARPA General user assistance, document requests
+ REGISTRAR@SRI-NIC.ARPA User registration and WHOIS updates
+ HOSTMASTER@SRI-NIC.ARPA Hostname and domain changes and updates
+ ACTION@SRI-NIC.ARPA SRI-NIC computer operations
+ SUGGESTIONS@SRI-NIC.ARPA Comments on NIC publications and services
+
+ -4-
+
+ For people without network access, or if the number of documents
+ is large, many of the NIC documents are available in printed
+ form for a small charge. One frequently ordered document for
+ starting sites is a compendium of major RFCs. Telephone access is
+ used primarily for questions or problems with network access.
+ (See appendix B for mail/telephone contact numbers).
+
+
+
+ The NSFnet Network Service Center
+
+ The NSFnet Network Service Center (NNSC) is funded by NSF to
+ provide a first level of aid to users of NSFnet should they
+ have questions or encounter problems traversing the network.
+ It is run by BBN Inc. Karen Roubicek
+ (roubicek@nnsc.nsf.net) is the NNSC user liaison.
+
+ The NNSC, which currently has information and documents
+ online and in printed form, plans to distribute news through
+ network mailing lists, bulletins, newsletters, and online
+ reports. The NNSC also maintains a database of contact
+ points and sources of additional information about NSFnet
+ component networks and supercomputer centers.
+
+ Prospective or current users who do not know whom to call
+ concerning questions about NSFnet use, should contact the
+ NNSC. The NNSC will answer general questions, and, for
+ detailed information relating to specific components of the
+ Internet, will help users find the appropriate contact for
+ further assistance. (Appendix B)
+
+
+
+ Mail Reflectors
+
+ The way most people keep up to date on network news is
+ through subscription to a number of mail reflectors. Mail
+ reflectors are special electronic mailboxes which, when they
+ receive a message, resend it to a list of other mailboxes.
+ This in effect creates a discussion group on a particular
+ topic. Each subscriber sees all the mail forwarded by the
+ reflector, and if one wants to put his "two cents" in sends
+ a message with the comments to the reflector....
+
+ The general format to subscribe to a mail list is to find
+ the address reflector and append the string -REQUEST to the
+ mailbox name (not the host name). For example, if you
+ wanted to take part in the mailing list for NSFnet reflected
+ by NSFNET@NNSC.NSF.NET, one sends a request to
+
+ -5-
+
+ NSFNET-REQUEST@NNSC.NSF.NET. This may be a wonderful scheme,
+ but the problem is that you must know the list exists in the
+ first place. It is suggested that, if you are interested,
+ you read the mail from one list (like NSFNET) and you will
+ probably become familiar with the existence of others.
+ A registration service for mail reflectors is provided by
+ the NIC in the files NETINFO:INTEREST-GROUPS-1.TXT,
+ NETINFO:INTEREST-GROUPS-2.TXT, and NETINFO:INTEREST-GROUPS-
+ 3.TXT.
+
+ The NSFNET mail reflector is targeted at those people who
+ have a day to day interest in the news of the NSFnet (the
+ backbone, regional network, and Internet inter-connection
+ site workers). The messages are reflected by a central
+ location and are sent as separate messages to each subscriber.
+ This creates hundreds of messages on the wide area networks
+ where bandwidth is the scarcest.
+
+ There are two ways in which a campus could spread the news
+ and not cause these messages to inundate the wide area
+ networks. One is to re-reflect the message on the campus.
+ That is, set up a reflector on a local machine which forwards
+ the message to a campus distribution list. The other is
+ to create an alias on a campus machine which places the
+ messages into a notesfile on the topic. Campus users who
+ want the information could access the notesfile and see the
+ messages that have been sent since their last access. One
+ might also elect to have the campus wide area network
+ liaison screen the messages in either case and only forward
+ those which are considered of merit. Either of these
+ schemes allows one message to be sent to the campus, while
+ allowing wide distribution within.
+
+
+ Address Allocation
+
+ Before a local network can be connected to the Internet it
+ must be allocated a unique IP address. These addresses are
+ allocated by ISI. The allocation process consists of getting
+ an application form received from ISI. (Send a message
+ to hostmaster@sri-nic.arpa and ask for the template for a
+ connected address). This template is filled out and mailed
+ back to hostmaster. An address is allocated and e-mailed back
+ to you. This can also be done by postal mail (Appendix B).
+
+ IP addresses are 32 bits long. It is usually written as
+ four decimal numbers separated by periods (e.g., 192.17.5.100).
+ Each number is the value of an octet of the 32 bits. It was
+ seen from the beginning that some networks might choose to
+ organize themselves as very flat (one net with a lot of nodes)
+ and some might organize hierarchically
+
+ -6-
+
+ (many interconnected nets with fewer nodes each and a backbone).
+ To provide for these cases, addresses were differentiated into
+ class A, B, and C networks. This classification had to with the
+ interpretation of the octets. Class A networks have the first
+ octet as a network address and the remaining three as a host
+ address on that network. Class C addresses have three octets of
+ network address and one of host. Class B is split two and two.
+ Therefore, there is an address space for a few large nets, a
+ reasonable number of medium nets and a large number of small nets.
+ The top two bits in the first octet are coded to tell the address
+ format. All of the class A nets have been allocated. So one
+ has to choose between Class B and Class C when placing an order.
+ (There are also class D (Multicast) and E (Experimental) formats.
+ Multicast addresses will likely come into greater use in the near
+ future, but are not frequently used now).
+
+ In the past sites requiring multiple network addresses
+ requested multiple discrete addresses (usually Class C).
+ This was done because much of the software available
+ (not ably 4.2BSD) could not deal with subnetted addresses.
+ Information on how to reach a particular network (routing
+ information) must be stored in Internet gateways and packet
+ switches. Some of these nodes have a limited capability to
+ store and exchange routing information (limited to about 300
+ networks). Therefore, it is suggested that any campus
+ announce (make known to the Internet) no more than two
+ discrete network numbers.
+
+ If a campus expects to be constrained by this, it should
+ consider subnetting. Subnetting (RFC-932) allows one to
+ announce one address to the Internet and use a set of
+ addresses on the campus. Basically, one defines a mask
+ which allows the network to differentiate between the
+ network portion and host portion of the address. By using a
+ different mask on the Internet and the campus, the address
+ can be interpreted in multiple ways. For example, if a
+ campus requires two networks internally and has the 32,000
+ addresses beginning 128.174.X.X (a Class B address) allocated
+ to it, the campus could allocate 128.174.5.X to one part
+ of campus and 128.174.10.X to another. By advertising
+ 128.174 to the Internet with a subnet mask of FF.FF.00.00,
+ the Internet would treat these two addresses as one. Within
+ the campus a mask of FF.FF.FF.00 would be used, allowing the
+ campus to treat the addresses as separate entities. (In reality
+ you don't pass the subnet mask of FF.FF.00.00 to the Internet,
+ the octet meaning is implicit in its being a class B address).
+ A word of warning is necessary. Not all systems know how to
+ do subnetting. Some 4.2BSD systems require additional
+ software. 4.3BSD systems subnet as released. Other devices
+
+ -7-
+
+ and operating systems vary in the problems they have dealing
+ with subnets. Frequently these machines can be used as a
+ leaf on a network but not as a gateway within the subnetted
+ portion of the network. As time passes and more systems
+ become 4.3BSD based, these problems should disappear.
+
+ There has been some confusion in the past over the format of
+ an IP broadcast address. Some machines used an address of
+ all zeros to mean broadcast and some all ones. This was
+ confusing when machines of both type were connected to the
+ same network. The broadcast address of all ones has been
+ adopted to end the grief. Some systems (e.g. 4.2 BSD) allow
+ one to choose the format of the broadcast address. If a
+ system does allow this choice, care should be taken that the
+ all ones format is chosen. (This is explained in RFC-1009
+ and RFC-1010).
+
+
+ Internet Problems
+
+ There are a number of problems with the Internet. Solutions
+ to the problems range from software changes to long term
+ research projects. Some of the major ones are detailed
+ below:
+
+ Number of Networks
+
+ When the Internet was designed it was to have about 50
+ connected networks. With the explosion of networking,
+ the number is now approaching 300. The software in a
+ group of critical gateways (called the core gateways of
+ the ARPAnet) are not able to pass or store much more
+ than that number. In the short term, core reallocation
+ and recoding has raised the number slightly. By the
+ summer of '88 the current PDP-11 core gateways will be
+ replaced with BBN Butterfly gateways which will solve
+ the problem.
+
+ Routing Issues
+
+ Along with sheer mass of the data necessary to route
+ packets to a large number of networks, there are many
+ problems with the updating, stability, and optimality
+ of the routing algorithms. Much research is being done
+ in the area, but the optimal solution to these routing
+ problems is still years away. In most cases the the
+ routing we have today works, but sub-optimally and
+ sometimes unpredictably.
+
+ -8-
+
+
+ Trust Issues
+
+ Gateways exchange network routing information.
+ Currently, most gateways accept on faith that the
+ information provided about the state of the network is
+ correct. In the past this was not a big problem since
+ most of the gateways belonged to a single administrative
+ entity (DARPA). Now with multiple wide area networks
+ under different administrations, a rogue gateway
+ somewhere in the net could cripple the Internet.
+ There is design work going on to solve both the problem of
+ a gateway doing unreasonable things and providing enough
+ information to reasonably route data between multiply
+ connected networks (multi-homed networks).
+
+ Capacity & Congestion
+
+ Many portions of the ARPAnet are very congested during
+ the busy part of the day. Additional links are planned
+ to alleviate this congestion, but the implementation
+ will take a few months.
+
+
+ These problems and the future direction of the Internet are
+ determined by the Internet Architect (Dave Clark of MIT)
+ being advised by the Internet Activities Board (IAB). This
+ board is composed of chairmen of a number of committees with
+ responsibility for various specialized areas of the Internet.
+ The committees composing the IAB and their chairmen are:
+
+ Committee Chair
+ Autonomous Networks Deborah Estrin
+ End-to-End Services Bob Braden
+ Internet Architecture Dave Mills
+ Internet Engineering Phil Gross
+ EGP2 Mike Petry
+ Name Domain Planning Doug Kingston
+ Gateway Monitoring Craig Partridge
+ Internic Jake Feinler
+ Performance & Congestion ControlRobert Stine
+ NSF Routing Chuck Hedrick
+ Misc. MilSup Issues Mike St. Johns
+ Privacy Steve Kent
+ IRINET Requirements Vint Cerf
+ Robustness & Survivability Jim Mathis
+ Scientific Requirements Barry Leiner
+
+ Note that under Internet Engineering, there are a set of
+ task forces and chairs to look at short term concerns. The
+ chairs of these task forces are not part of the IAB.
+
+ -9-
+ Routing
+
+
+ Routing is the algorithm by which a network directs a packet
+ from its source to its destination. To appreciate the problem,
+ watch a small child trying to find a table in a restaurant.
+ From the adult point of view the structure of the dining room
+ is seen and an optimal route easily chosen. The child, however,
+ is presented with a set of paths between tables where a good path,
+ let alone the optimal one to the goal is not discernible.***
+
+ A little more background might be appropriate. IP gateways
+ (more correctly routers) are boxes which have connections to
+ multiple networks and pass traffic between these nets. They
+ decide how the packet is to be sent based on the information
+ in the IP header of the packet and the state of the network.
+ Each interface on a router has an unique address appropriate
+ to the network to which it is connected. The information in
+ the IP header which is used is primarily the destination address.
+ Other information (e.g. type of service) is largely ignored at this
+ time. The state of the network is determined by the routers passing
+ information among themselves. The distribution of the database
+ (what each node knows), the form of the updates, and metrics used
+ to measure the value of a connection, are the parameters
+ which determine the characteristics of a routing protocol.
+
+ Under some algorithms each node in the network has complete
+ knowledge of the state of the network (the adult algorithm).
+ This implies the nodes must have larger amounts of local
+ storage and enough CPU to search the large tables in a short
+ enough time (remember this must be done for each packet).
+ Also, routing updates usually contain only changes to the
+ existing information (or you spend a large amount of the
+ network capacity passing around megabyte routing updates).
+ This type of algorithm has several problems. Since the only
+ way the routing information can be passed around is across
+ the network and the propagation time is non-trivial, the
+ view of the network at each node is a correct historical
+ view of the network at varying times in the past. (The
+ adult algorithm, but rather than looking directly at the
+ dining area, looking at a photograph of the dining room.
+ One is likely to pick the optimal route and find a bus-cart
+ has moved in to block the path after the photo was taken).
+ These inconsistencies can cause circular routes (called
+ routing loops) where once a packet enters it is routed in a
+ closed path until its time to live (TTL) field expires and
+ it is discarded.
+
+ Other algorithms may know about only a subset of the network.
+ To prevent loops in these protocols, they are usually used in
+ a hierarchical network. They know completely about their
+ own area, but to leave that area they go to one particular
+ place (the default gateway). Typically these are used in
+ smaller networks (campus, regional...).
+
+ -10-
+
+ Routing protocols in current use:
+
+ Static (no protocol-table/default routing)
+
+ Don't laugh. It is probably the most reliable, easiest
+ to implement, and least likely to get one into trouble
+ for a small network or a leaf on the Internet. This is,
+ also, the only method available on some CPU-operating
+ system combinations. If a host is connected to an Ethernet
+ which has only one gateway off of it, one should make that
+ the default gateway for the host and do no other routing.
+ (Of course that gateway may pass the reachablity
+ information somehow on the other side of itself).
+
+ One word of warning, it is only with extreme caution that
+ one should use static routes in the middle of a network
+ which is also using dynamic routing. The routers passing
+ dynamic information are sometimes confused by conflicting
+ dynamic and static routes. If your host is on an ethernet
+ with multiple routers to other networks on it and the
+ routers are doing dynamic routing among themselves,
+ it is usually better to take part in the dynamic routing
+ than to use static routes.
+
+
+ RIP
+
+ RIP is a routing protocol based on XNS (Xerox Network
+ System) adapted for IP networks. It is used by many
+ routers (Proteon, cisco, UB...) and many BSD Unix systems
+ BSD systems typically run a program called "routed" to
+ exchange information with other systems running
+ RIP. RIP works best for nets of small diameter
+ where the links are of equal speed. The reason for
+ this is that the metric used to determine which path is
+ best is the hop-count. A hop is a traversal across a
+ gateway. So, all machines on the same Ethernet are
+ zero hops away. If a router connects connects two net-
+ works directly, a machine on the other side of the
+ router is one hop away.... As the routing information
+ is passed through a gateway, the gateway adds one to
+ the hop counts to keep them consistent across the net-
+ work. The diameter of a network is defined as the
+ largest hop-count possible within a network. Unfor-
+ tunately, a hop count of 16 is defined as infinity in
+ RIP meaning the link is down. Therefore, RIP will not
+ allow hosts separated by more than 15 gateways in the
+ RIP space to communicate.
+
+ The other problem with hop-count metrics is that if
+ links have different speeds, that difference is not
+
+ -11-
+
+ reflected in the hop-count. So a one hop satellite link
+ (with a .5 sec delay) at 56kb would be used instead of
+ a two hop T1 connection. Congestion can be viewed as a
+ decrease in the efficacy of a link. So, as a link gets
+ more congested, RIP will still know it is the best
+ hop-count route and congest it even more by throwing
+ more packets on the queue for that link.
+
+ The protocol is not well documented. A group of people
+ are working on producing an RFC to both define the
+ current RIP and to do some extensions to it to allow it
+ to better cope with larger networks. Currently, the
+ best documentation for RIP appears to be the code to
+ BSD "routed".
+
+
+ Routed
+
+ The ROUTED program, which does RIP for 4.2BSD systems,
+ has many options. One of the most frequently used is:
+ "routed -q" (quiet mode) which means listen to RIP infor-
+ mation but never broadcast it. This would be used by a
+ machine on a network with multiple RIP speaking gate-
+ ways. It allows the host to determine which gateway is
+ best (hopwise) to use to reach a distant network. (Of
+ course you might want to have a default gateway to
+ prevent having to pass all the addresses known to the
+ Internet around with RIP).
+
+ There are two ways to insert static routes into "routed",
+ the "/etc/gateways" file and the "route add" command.
+ Static routes are useful if you know how to reach a
+ distant network, but you are not receiving that route
+ using RIP. For the most part the "route add" command is
+ preferable to use. The reason for this is that the
+ command adds the route to that machine's routing table
+ but does not export it through RIP. The "/etc/gateways"
+ file takes precedence over any routing information
+ received through a RIP update. It is also broadcast as
+ fact in RIP updates produced by the host without question,
+ so if a mistake is made in the "/etc/gateways" file,
+ that mistake will soon permeate the RIP space and
+ may bring the network to its knees.
+
+ One of the problems with "routed" is that you have very
+ little control over what gets broadcast and what
+ doesn't. Many times in larger networks where various
+ parts of the network are under different administrative
+ controls, you would like to pass on through RIP only nets
+ which you receive from RIP and you know are reasonable.
+ This prevents people from adding IP addresses to
+ the network which may be illegal and you being
+ responsible for passing them on to the Internet. This
+
+ -12-
+
+ type of reasonability checks are not available with "routed"
+ and leave it usable, but inadequate for large networks.
+
+
+ Hello (RFC-891)
+
+ Hello is a routing protocol which was designed and
+ implemented in a experimental software router called a
+ "Fuzzball" which runs on a PDP-11. It does not have
+ wide usage, but is the routing protocol currently used
+ on the NSFnet backbone. The data transferred between
+ nodes is similar to RIP (a list of networks and their
+ metrics). The metric, however, is milliseconds of delay.
+ This allows Hello to be used over nets of various link
+ speeds and performs better in congestive situations.
+
+ One of the most interesting side effects of Hello based
+ networks is their great timekeeping ability. If you
+ consider the problem of measuring delay on a link for
+ the metric, you find that it is not an easy thing to
+ do. You cannot measure round trip time since the
+ return link may be more congested, of a different
+ speed, or even not there. It is not really feasible
+ for each node on the network to have a builtin WWV
+ (nationwide radio time standard) receiver. So, you
+ must design an algorithm to pass around time between
+ nodes over the network links where the delay in
+ transmission can only be approximated. Hello routers
+ do this and in a nationwide network maintain synchronized
+ time within milliseconds.
+
+
+ Exterior Gateway Protocol (EGP RFC-904)
+
+ EGP is not strictly a routing protocol, it is a reacha-
+ bility protocol. It tells only if nets can be reached
+ through a particular gateway, not how good the connec-
+ tion is. It is the standard by which gateways to local
+ nets inform the ARPAnet of the nets they can reach.
+ There is a metric passed around by EGP but its usage is
+ not standardized formally. Its typical value is value
+ is 1 to 8 which are arbitrary goodness of link values
+ understood by the internal DDN gateways. The smaller
+ the value the better and a value of 8 being unreach-
+ able. A quirk of the protocol prevents distinguishing
+ between 1 and 2, 3 and 4..., so the usablity of this as
+ a metric is as three values and unreachable. Within
+ NSFnet the values used are 1, 3, and unreachable. Many
+ routers talk EGP so they can be used for ARPAnet gateways.
+
+ -13-
+
+ Gated
+
+ So we have regional and campus networks talking RIP
+ among themselves, the NSFnet backbone talking
+ Hello, and the DDN speaking EGP.
+ How do they interoperate? In the beginning there was
+ static routing, assembled into the Fuzzball software
+ configured for each site. The problem with doing
+ static routing in the middle of the network is that it
+ is broadcast to the Internet whether it is usable or
+ not. Therefore, if a net becomes unreachable and you
+ try to get there, dynamic routing will immediately
+ issue a net unreachable to you. Under static routing
+ the routers would think the net could be reached and
+ would continue trying until the application gave up (in
+ 2 or more minutes). Mark Fedor of Cornell
+ (fedor@devvax.tn.cornell.edu) attempted to solve these
+ problems with a replacement for "routed" called "gated".
+
+ "Gated" talks RIP to RIP speaking hosts, EGP to EGP
+ speakers, and Hello to Hello'ers. These speakers
+ frequently all live on one Ethernet, but luckily (or
+ unluckily) cannot understand each others ruminations.
+ In addition, under configuration file control it can
+ filter the conversion. For example, one can produce a
+ configuration saying announce RIP nets via Hello only
+ if they are specified in a list and are reachable by
+ way of a RIP broadcast as well. This means that if a
+ rogue network appears in your local site's RIP space,
+ it won't be passed through to the Hello side of the
+ world. There are also configuration options to do
+ static routing and name trusted gateways.
+
+ This may sound like the greatest thing since sliced
+ bread, but there is a catch called metric conversion.
+ You have RIP measuring in hops, Hello measuring in
+ milliseconds, and EGP using arbitrary small numbers.
+ The big questions is how many hops to a millisecond,
+ how many milliseconds in the EGP number 3.... Also,
+ remember that infinity (unreachability) is 16 to RIP,
+ 30000 or so to Hello, and 8 to the DDN with EGP.
+ Getting all these metrics to work well together is no
+ small feat. If done incorrectly and you translate an
+ RIP of 16 into an EGP of 6, everyone in the ARPAnet
+ will still think your gateway can reach the unreachable
+ and will send every packet in the world your way. For
+ these reasons, Mark requests that you consult closely
+ with him when configuring and using "gated".
+
+ -14-
+
+ "Names"
+
+ All routing across the network is done by means of the IP
+ address associated with a packet. Since humans find it
+ difficult to remember addresses like 128.174.5.50, a symbolic
+ name register was set up at the NIC where people would say
+ "I would like my host to be named 'uiucuxc'". Machines
+ connected to the Internet across the nation would connect to
+ the NIC in the middle of the night, check modification dates
+ on the hosts file, and if modified move it to their local
+ machine. With the advent of workstations and micros,
+ changes to the host file would have to be made nightly. It
+ would also be very labor intensive and consume a lot of
+ network bandwidth. RFC-882 and a number of others describe
+ domain name service, a distributed data base system for
+ mapping names into addresses.
+
+ We must look a little more closely into what's in a name.
+ First, note that an address specifies a particular connec-
+ tion on a specific network. If the machine moves, the
+ address changes. Second, a machine can have one or more
+ names and one or more network addresses (connections) to
+ different networks. Names point to a something which does
+ useful work (i.e. the machine) and IP addresses point to an
+ interface on that provider. A name is a purely symbolic
+ representation of a list of addresses on the network. If a
+ machine moves to a different network, the addresses will
+ change but the name could remain the same.
+
+ Domain names are tree structured names with the root of the
+ tree at the right. For example:
+
+ uxc.cso.uiuc.edu
+
+ is a machine called 'uxc' (purely arbitrary), within the
+ subdomains method of allocation of the U of I) and 'uiuc'
+ (the University of Illinois at Urbana), registered with
+ 'edu' (the set of educational institutions).
+
+ A simplified model of how a name is resolved is that on the
+ user's machine there is a resolver. The resolver knows how
+ to contact across the network a root name server. Root
+ servers are the base of the tree structured data retrieval
+ system. They know who is responsible for handling first
+ level domains (e.g. 'edu'). What root servers to use is an
+ installation parameter. From the root server the resolver
+ finds out who provides 'edu' service. It contacts the 'edu'
+ name server which supplies it with a list of addresses of
+ servers for the subdomains (like 'uiuc'). This action is
+ repeated with the subdomain servers until the final sub-
+ domain returns a list of addresses of interfaces on the host
+ in question. The user's machine then has its choice of
+ which of these addresses to use for communication.
+
+ -15-
+
+ A group may apply for its own domain name (like 'uiuc'
+ above). This is done in a manner similar to the IP address
+ allocation. The only requirements are that the requestor
+ have two machines reachable from the Internet, which will
+ act as name servers for that domain. Those servers could
+ also act as servers for subdomains or other servers could be
+ designated as such. Note that the servers need not be
+ located in any particular place, as long as they are reach-
+ able for name resolution. (U of I could ask Michigan State
+ to act on its behalf and that would be fine). The biggest
+ problem is that someone must do maintenance on the database.
+ If the machine is not convenient, that might not be done in
+ a timely fashion. The other thing to note is that once the
+ domain is allocated to an administrative entity, that entity
+ can freely allocate subdomains using what ever manner it
+ sees fit.
+
+ The Berkeley Internet Name Domain (BIND) Server implements
+ the Internet name server for UNIX systems. The name server
+ is a distributed data base system that allows clients to
+ name resources and to share that information with other net-
+ work hosts. BIND is integrated with 4.3BSD and is used to
+ lookup and store host names, addresses, mail agents, host
+ information, and more. It replaces the "/etc/hosts" file for
+ host name lookup. BIND is still an evolving program. To
+ keep up with reports on operational problems, future design
+ decisions, etc, join the BIND mailing list by sending a
+ request to "bind-request@ucbarp.Berkeley.EDU". BIND can also
+ be obtained via anonymous FTP from ucbarpa.berkley.edu.
+
+ There are several advantages in using BIND. One of the most
+ important is that it frees a host from relying on "/etc/hosts"
+ being up to date and complete. Within the .uiuc.edu domain,
+ only a few hosts are included in the host table distributed
+ by SRI. The remainder are listed locally within the BIND
+ tables on uxc.cso.uiuc.edu (the server machine for most of
+ the .uiuc.edu domain). All are equally reachable from any
+ other Internet host running BIND.
+
+ BIND can also provide mail forwarding information for inte-
+ rior hosts not directly reachable from the Internet. These
+ hosts can either be on non-advertised networks, or not con-
+ nected to a network at all, as in the case of UUCP-reachable
+ hosts. More information on BIND is available in the "Name
+ Server Operations Guide for BIND" in "UNIX System Manager's
+ Manual", 4.3BSD release.
+
+ There are a few special domains on the network, like SRI-
+ NIC.ARPA. The 'arpa' domain is historical, referring to
+ hosts registered in the old hosts database at the NIC.
+ There are others of the form NNSC.NSF.NET. These special
+ domains are used sparingly and require ample justification.
+ They refer to servers under the administrative control of
+
+ -16-
+
+ the network rather than any single organization. This
+ allows for the actual server to be moved around the net
+ while the user interface to that machine remains constant.
+ That is, should BBN relinquish control of the NNSC, the new
+ provider would be pointed to by that name.
+
+ In actuality, the domain system is a much more general and
+ complex system than has been described. Resolvers and some
+ servers cache information to allow steps in the resolution
+ to be skipped. Information provided by the servers can be
+ arbitrary, not merely IP addresses. This allows the system
+ to be used both by non-IP networks and for mail, where it
+ may be necessary to give information on intermediate mail
+ bridges.
+
+
+ What's wrong with Berkeley Unix
+
+ University of California at Berkeley has been funded by
+ DARPA to modify the Unix system in a number of ways.
+ Included in these modifications is support for the Internet
+ protocols. In earlier versions (e.g. BSD 4.2) there was
+ good support for the basic Internet protocols (TCP, IP,
+ SMTP, ARP) which allowed it to perform nicely on IP ether-
+ nets and smaller Internets. There were deficiencies, how-
+ ever, when it was connected to complicated networks. Most
+ of these problems have been resolved under the newest
+ release (BSD 4.3). Since it is the springboard from which
+ many vendors have launched Unix implementations (either by
+ porting the existing code or by using it as a model), many
+ implementations (e.g. Ultrix) are still based on BSD 4.2.
+ Therefore, many implementations still exist with the BSD 4.2
+ problems. As time goes on, when BSD 4.3 trickles through
+ vendors as new release, many of the problems will be
+ resolved. Following is a list of some problem scenarios and
+ their handling under each of these releases.
+
+ ICMP redirects
+
+ Under the Internet model, all a system needs to know to
+ get anywhere in the Internet is its own address, the
+ address of where it wants to go, and how to reach a
+ gateway which knows about the Internet. It doesn't
+ have to be the best gateway. If the system is on a
+ network with multiple gateways, and a host sends a
+ packet for delivery to a gateway which feels another
+ directly connected gateway is more appropriate, the
+ gateway sends the sender a message. This message is an
+ ICMP redirect, which politely says "I'll deliver this
+ message for you, but you really ought to use that gate-
+ way over there to reach this host". BSD 4.2 ignores
+ these messages. This creates more stress on the gate-
+ ways and the local network, since for every packet
+
+ -17-
+
+ sent, the gateway sends a packet to the originator.
+ BSD 4.3 uses the redirect to update its routing tables,
+ will use the route until it times out, then revert to
+ the use of the route it thinks is should use. The
+ whole process then repeats, but it is far better than
+ one per packet.
+
+ Trailers
+
+ An application (like FTP) sends a string of octets to
+ TCP which breaks it into chunks, and adds a TCP header.
+ TCP then sends blocks of data to IP which adds its own
+ headers and ships the packets over the network. All
+ this prepending of the data with headers causes memory
+ moves in both the sending and the receiving machines.
+ Someone got the bright idea that if packets were long
+ and they stuck the headers on the end (they became
+ trailers), the receiving machine could put the packet
+ on the beginning of a page boundary and if the trailer
+ was OK merely delete it and transfer control of the
+ page with no memory moves involved. The problem is
+ that trailers were never standardized and most gateways
+ don't know to look for the routing information at the
+ end of the block. When trailers are used, the machine
+ typically works fine on the local network (no gateways
+ involved) and for short blocks through gateways (on
+ which trailers aren't used). So TELNET and FTP's of
+ very short files work just fine and FTP's of long files
+ seem to hang. On BSD 4.2 trailers are a boot option
+ and one should make sure they are off when using the
+ Internet. BSD 4.3 negotiates trailers, so it uses them
+ on its local net and doesn't use them when going across
+ the network.
+
+ Retransmissions
+
+ TCP fires off blocks to its partner at the far end of
+ the connection. If it doesn't receive an acknowledge-
+ ment in a reasonable amount of time it retransmits the
+ blocks. The determination of what is reasonable is
+ done by TCP's retransmission algorithm. There is no
+ correct algorithm but some are better than others,
+ where better is measured by the number of retransmis-
+ sions done unnecessarily. BSD 4.2 had a retransmission
+ algorithm which retransmitted quickly and often. This
+ is exactly what you would want if you had a bunch of
+ machines on an ethernet (a low delay network of large
+ bandwidth). If you have a network of relatively longer
+ delay and scarce bandwidth (e.g. 56kb lines), it tends
+ to retransmit too aggressively. Therefore, it makes
+ the networks and gateways pass more traffic than is
+ really necessary for a given conversation. Retransmis-
+ sion algorithms do adapt to the delay of the network
+
+ -18-
+
+ after a few packets, but 4.2's adapts slowly in delay
+ situations. BSD 4.3 does a lot better and tries to do
+ the best for both worlds. It fires off a few
+ retransmissions really quickly assuming it is on a low
+ delay network, and then backs off very quickly. It
+ also allows the delay to be about 4 minutes before it
+ gives up and declares the connection broken.
+
+ -19-
+ Appendix A
+ References to Remedial Information
+
+
+ Quaterman and Hoskins, "Notable Computer Networks",
+ Communications of the ACM, Vol 29, #10, pp. 932-971
+ (October, 1986).
+
+ Tannenbaum, Andrew S., Computer Networks, Prentice
+ Hall, 1981.
+
+ Hedrick, Chuck, Introduction to the Internet Protocols,
+ Anonymous FTP from topaz.rutgers.edu, directory
+ pub/tcp-ip-docs, file tcp-ip-intro.doc.
+
+ -20-
+
+ Appendix B
+ List of Major RFCs
+
+
+RFC-768 User Datagram Protocol (UDP)
+RFC-791 Internet Protocol (IP)
+RFC-792 Internet Control Message Protocol (ICMP)
+RFC-793 Transmission Control Protocol (TCP)
+RFC-821 Simple Mail Transfer Protocol (SMTP)
+RFC-822 Standard for the Format of ARPA Internet Text Messages
+RFC-854 Telnet Protocol
+RFC-917 * Internet Subnets
+RFC-919 * Broadcasting Internet Datagrams
+RFC-922 * Broadcasting Internet Datagrams in the Presence of Subnets
+RFC-940 * Toward an Internet Standard Scheme for Subnetting
+RFC-947 * Multi-network Broadcasting within the Internet
+RFC-950 * Internet Standard Subnetting Procedure
+RFC-959 File Transfer Protocol (FTP)
+RFC-966 * Host Groups: A Multicast Extension to the Internet Protocol
+RFC-988 * Host Extensions for IP Multicasting
+RFC-997 * Internet Numbers
+RFC-1010 * Assigned Numbers
+RFC-1011 * Official ARPA-Internet Protocols
+
+ RFC's marked with the asterisk (*) are not included in
+ the 1985 DDN Protocol Handbook.
+
+ Note: This list is a portion of a list of RFC's by
+ topic retrieved from the NIC under NETINFO:RFC-SETS.TXT
+ (anonymous FTP of course).
+
+ The following list is not necessary for connection to
+ the Internet, but is useful in understanding the domain
+ system, mail system, and gateways:
+
+RFC-882 Domain Names - Concepts and Facilities
+RFC-883 Domain Names - Implementation
+RFC-973 Domain System Changes and Observations
+RFC-974 Mail Routing and the Domain System
+RFC-1009 Requirements for Internet Gateways
+
+ -21-
+
+ Appendix C
+ Contact Points for Network Information
+
+
+ Network Information Center (NIC)
+
+ DDN Network Information Center
+ SRI International, Room EJ291
+ 333 Ravenswood Avenue
+ Menlo Park, CA 94025
+ (800) 235-3155 or (415) 859-3695
+ NIC@SRI-NIC.ARPA
+
+
+ NSF Network Service Center (NNSC)
+
+ NNSC
+ BBN Laboratories Inc.
+ 10 Moulton St.
+ Cambridge, MA 02238
+ (617) 497-3400
+ NNSC@NNSC.NSF.NET
+
+ -22-
+
+ Glossary
+
+ core gateway
+
+The innermost gateways of the ARPAnet. These
+gateways have a total picture of the reacha-
+bility to all networks known to the ARPAnet
+with EGP. They then redistribute reachabil-
+ity information to all those gateways speak-
+ing EGP. It is from them your EGP agent
+(there is one acting for you somewhere if you
+can reach the ARPAnet) finds out it can reach
+all the nets on the ARPAnet. Which is then
+passed to you via Hello, gated, RIP....
+
+ count to infinity
+
+The symptom of a routing problem where
+routing information is passed in a circular
+manner through multiple gateways. Each gate-
+way increments the metric appropriately and
+passes it on. As the metric is passed around
+the loop, it increments to ever increasing
+values til it reaches the maximum for the
+routing protocol being used, which typically
+denotes a link outage.
+
+ hold down
+
+When a router discovers a path in the network
+has gone down announcing that that path is
+down for a minimum amount of time (usually at
+least two minutes). This allows for the pro-
+pagation of the routing information across
+the network and prevents the formation of
+routing loops.
+
+ split horizon
+
+When a router (or group of routers working in
+consort) accept routing information from mul-
+tiple external networks, but do not pass on
+information learned from one external network
+to any others. This is an attempt to prevent
+bogus routes to a network from being propagated
+because of gossip or counting to infinity.
+
+ -23-
+
+
+
+
+
+
+
+
+End of Project Gutenberg's Hitchhiker's Guide to the Internet, by Ed Krol
+
+*** END OF THIS PROJECT GUTENBERG EBOOK HITCHHIKER'S GUIDE TO THE INTERNET ***
+
+***** This file should be named 39.txt or 39.zip *****
+This and all associated files of various formats will be found in:
+ http://www.gutenberg.org/3/39/
+
+
+
+Updated editions will replace the previous one--the old editions will be
+renamed.
+
+Creating the works from public domain print editions means that no one
+owns a United States copyright in these works, so the Foundation (and
+you!) can copy and distribute it in the United States without permission
+and without paying copyright royalties. Special rules, set forth in the
+General Terms of Use part of this license, apply to copying and
+distributing Project Gutenberg-tm electronic works to protect the
+PROJECT GUTENBERG-tm concept and trademark. Project Gutenberg is a
+registered trademark, and may not be used if you charge for the eBooks,
+unless you receive specific permission. If you do not charge anything
+for copies of this eBook, complying with the rules is very easy. You may
+use this eBook for nearly any purpose such as creation of derivative
+works, reports, performances and research. They may be modified and
+printed and given away--you may do practically ANYTHING with public
+domain eBooks. Redistribution is subject to the trademark license,
+especially commercial redistribution.
+
+
+
+*** START: FULL LICENSE ***
+
+THE FULL PROJECT GUTENBERG LICENSE
+PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK
+
+To protect the Project Gutenberg-tm mission of promoting the free
+distribution of electronic works, by using or distributing this work
+(or any other work associated in any way with the phrase "Project
+Gutenberg"), you agree to comply with all the terms of the Full Project
+Gutenberg-tm License (available with this file or online at
+http://www.gutenberg.org/license).
+
+
+Section 1. General Terms of Use and Redistributing Project Gutenberg-tm
+electronic works
+
+1.A. By reading or using any part of this Project Gutenberg-tm
+electronic work, you indicate that you have read, understand, agree to
+and accept all the terms of this license and intellectual property
+(trademark/copyright) agreement. If you do not agree to abide by all
+the terms of this agreement, you must cease using and return or destroy
+all copies of Project Gutenberg-tm electronic works in your possession.
+If you paid a fee for obtaining a copy of or access to a Project
+Gutenberg-tm electronic work and you do not agree to be bound by the
+terms of this agreement, you may obtain a refund from the person or
+entity to whom you paid the fee as set forth in paragraph 1.E.8.
+
+1.B. "Project Gutenberg" is a registered trademark. It may only be
+used on or associated in any way with an electronic work by people who
+agree to be bound by the terms of this agreement. There are a few
+things that you can do with most Project Gutenberg-tm electronic works
+even without complying with the full terms of this agreement. See
+paragraph 1.C below. There are a lot of things you can do with Project
+Gutenberg-tm electronic works if you follow the terms of this agreement
+and help preserve free future access to Project Gutenberg-tm electronic
+works. See paragraph 1.E below.
+
+1.C. The Project Gutenberg Literary Archive Foundation ("the Foundation"
+or PGLAF), owns a compilation copyright in the collection of Project
+Gutenberg-tm electronic works. Nearly all the individual works in the
+collection are in the public domain in the United States. If an
+individual work is in the public domain in the United States and you are
+located in the United States, we do not claim a right to prevent you from
+copying, distributing, performing, displaying or creating derivative
+works based on the work as long as all references to Project Gutenberg
+are removed. Of course, we hope that you will support the Project
+Gutenberg-tm mission of promoting free access to electronic works by
+freely sharing Project Gutenberg-tm works in compliance with the terms of
+this agreement for keeping the Project Gutenberg-tm name associated with
+the work. You can easily comply with the terms of this agreement by
+keeping this work in the same format with its attached full Project
+Gutenberg-tm License when you share it without charge with others.
+This particular work is one of the few copyrighted individual works
+included with the permission of the copyright holder. Information on
+the copyright owner for this particular work and the terms of use
+imposed by the copyright holder on this work are set forth at the
+beginning of this work.
+
+1.D. The copyright laws of the place where you are located also govern
+what you can do with this work. Copyright laws in most countries are in
+a constant state of change. If you are outside the United States, check
+the laws of your country in addition to the terms of this agreement
+before downloading, copying, displaying, performing, distributing or
+creating derivative works based on this work or any other Project
+Gutenberg-tm work. The Foundation makes no representations concerning
+the copyright status of any work in any country outside the United
+States.
+
+1.E. Unless you have removed all references to Project Gutenberg:
+
+1.E.1. The following sentence, with active links to, or other immediate
+access to, the full Project Gutenberg-tm License must appear prominently
+whenever any copy of a Project Gutenberg-tm work (any work on which the
+phrase "Project Gutenberg" appears, or with which the phrase "Project
+Gutenberg" is associated) is accessed, displayed, performed, viewed,
+copied or distributed:
+
+This eBook is for the use of anyone anywhere at no cost and with
+almost no restrictions whatsoever. You may copy it, give it away or
+re-use it under the terms of the Project Gutenberg License included
+with this eBook or online at www.gutenberg.org
+
+1.E.2. If an individual Project Gutenberg-tm electronic work is derived
+from the public domain (does not contain a notice indicating that it is
+posted with permission of the copyright holder), the work can be copied
+and distributed to anyone in the United States without paying any fees
+or charges. If you are redistributing or providing access to a work
+with the phrase "Project Gutenberg" associated with or appearing on the
+work, you must comply either with the requirements of paragraphs 1.E.1
+through 1.E.7 or obtain permission for the use of the work and the
+Project Gutenberg-tm trademark as set forth in paragraphs 1.E.8 or
+1.E.9.
+
+1.E.3. If an individual Project Gutenberg-tm electronic work is posted
+with the permission of the copyright holder, your use and distribution
+must comply with both paragraphs 1.E.1 through 1.E.7 and any additional
+terms imposed by the copyright holder. Additional terms will be linked
+to the Project Gutenberg-tm License for all works posted with the
+permission of the copyright holder found at the beginning of this work.
+
+1.E.4. Do not unlink or detach or remove the full Project Gutenberg-tm
+License terms from this work, or any files containing a part of this
+work or any other work associated with Project Gutenberg-tm.
+
+1.E.5. Do not copy, display, perform, distribute or redistribute this
+electronic work, or any part of this electronic work, without
+prominently displaying the sentence set forth in paragraph 1.E.1 with
+active links or immediate access to the full terms of the Project
+Gutenberg-tm License.
+
+1.E.6. You may convert to and distribute this work in any binary,
+compressed, marked up, nonproprietary or proprietary form, including any
+word processing or hypertext form. However, if you provide access to or
+distribute copies of a Project Gutenberg-tm work in a format other than
+"Plain Vanilla ASCII" or other format used in the official version
+posted on the official Project Gutenberg-tm web site (www.gutenberg.org),
+you must, at no additional cost, fee or expense to the user, provide a
+copy, a means of exporting a copy, or a means of obtaining a copy upon
+request, of the work in its original "Plain Vanilla ASCII" or other
+form. Any alternate format must include the full Project Gutenberg-tm
+License as specified in paragraph 1.E.1.
+
+1.E.7. Do not charge a fee for access to, viewing, displaying,
+performing, copying or distributing any Project Gutenberg-tm works
+unless you comply with paragraph 1.E.8 or 1.E.9.
+
+1.E.8. You may charge a reasonable fee for copies of or providing
+access to or distributing Project Gutenberg-tm electronic works provided
+that
+
+- You pay a royalty fee of 20% of the gross profits you derive from
+ the use of Project Gutenberg-tm works calculated using the method
+ you already use to calculate your applicable taxes. The fee is
+ owed to the owner of the Project Gutenberg-tm trademark, but he
+ has agreed to donate royalties under this paragraph to the
+ Project Gutenberg Literary Archive Foundation. Royalty payments
+ must be paid within 60 days following each date on which you
+ prepare (or are legally required to prepare) your periodic tax
+ returns. Royalty payments should be clearly marked as such and
+ sent to the Project Gutenberg Literary Archive Foundation at the
+ address specified in Section 4, "Information about donations to
+ the Project Gutenberg Literary Archive Foundation."
+
+- You provide a full refund of any money paid by a user who notifies
+ you in writing (or by e-mail) within 30 days of receipt that s/he
+ does not agree to the terms of the full Project Gutenberg-tm
+ License. You must require such a user to return or
+ destroy all copies of the works possessed in a physical medium
+ and discontinue all use of and all access to other copies of
+ Project Gutenberg-tm works.
+
+- You provide, in accordance with paragraph 1.F.3, a full refund of any
+ money paid for a work or a replacement copy, if a defect in the
+ electronic work is discovered and reported to you within 90 days
+ of receipt of the work.
+
+- You comply with all other terms of this agreement for free
+ distribution of Project Gutenberg-tm works.
+
+1.E.9. If you wish to charge a fee or distribute a Project Gutenberg-tm
+electronic work or group of works on different terms than are set
+forth in this agreement, you must obtain permission in writing from
+both the Project Gutenberg Literary Archive Foundation and Michael
+Hart, the owner of the Project Gutenberg-tm trademark. Contact the
+Foundation as set forth in Section 3 below.
+
+1.F.
+
+1.F.1. Project Gutenberg volunteers and employees expend considerable
+effort to identify, do copyright research on, transcribe and proofread
+public domain works in creating the Project Gutenberg-tm
+collection. Despite these efforts, Project Gutenberg-tm electronic
+works, and the medium on which they may be stored, may contain
+"Defects," such as, but not limited to, incomplete, inaccurate or
+corrupt data, transcription errors, a copyright or other intellectual
+property infringement, a defective or damaged disk or other medium, a
+computer virus, or computer codes that damage or cannot be read by
+your equipment.
+
+1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the "Right
+of Replacement or Refund" described in paragraph 1.F.3, the Project
+Gutenberg Literary Archive Foundation, the owner of the Project
+Gutenberg-tm trademark, and any other party distributing a Project
+Gutenberg-tm electronic work under this agreement, disclaim all
+liability to you for damages, costs and expenses, including legal
+fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
+LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE
+PROVIDED IN PARAGRAPH 1.F.3. YOU AGREE THAT THE FOUNDATION, THE
+TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE
+LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR
+INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a
+defect in this electronic work within 90 days of receiving it, you can
+receive a refund of the money (if any) you paid for it by sending a
+written explanation to the person you received the work from. If you
+received the work on a physical medium, you must return the medium with
+your written explanation. The person or entity that provided you with
+the defective work may elect to provide a replacement copy in lieu of a
+refund. If you received the work electronically, the person or entity
+providing it to you may choose to give you a second opportunity to
+receive the work electronically in lieu of a refund. If the second copy
+is also defective, you may demand a refund in writing without further
+opportunities to fix the problem.
+
+1.F.4. Except for the limited right of replacement or refund set forth
+in paragraph 1.F.3, this work is provided to you 'AS-IS,' WITH NO OTHER
+WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR ANY PURPOSE.
+
+1.F.5. Some states do not allow disclaimers of certain implied
+warranties or the exclusion or limitation of certain types of damages.
+If any disclaimer or limitation set forth in this agreement violates the
+law of the state applicable to this agreement, the agreement shall be
+interpreted to make the maximum disclaimer or limitation permitted by
+the applicable state law. The invalidity or unenforceability of any
+provision of this agreement shall not void the remaining provisions.
+
+1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the
+trademark owner, any agent or employee of the Foundation, anyone
+providing copies of Project Gutenberg-tm electronic works in accordance
+with this agreement, and any volunteers associated with the production,
+promotion and distribution of Project Gutenberg-tm electronic works,
+harmless from all liability, costs and expenses, including legal fees,
+that arise directly or indirectly from any of the following which you do
+or cause to occur: (a) distribution of this or any Project Gutenberg-tm
+work, (b) alteration, modification, or additions or deletions to any
+Project Gutenberg-tm work, and (c) any Defect you cause.
+
+
+Section 2. Information about the Mission of Project Gutenberg-tm
+
+Project Gutenberg-tm is synonymous with the free distribution of
+electronic works in formats readable by the widest variety of computers
+including obsolete, old, middle-aged and new computers. It exists
+because of the efforts of hundreds of volunteers and donations from
+people in all walks of life.
+
+Volunteers and financial support to provide volunteers with the
+assistance they need are critical to reaching Project Gutenberg-tm's
+goals and ensuring that the Project Gutenberg-tm collection will
+remain freely available for generations to come. In 2001, the Project
+Gutenberg Literary Archive Foundation was created to provide a secure
+and permanent future for Project Gutenberg-tm and future generations.
+To learn more about the Project Gutenberg Literary Archive Foundation
+and how your efforts and donations can help, see Sections 3 and 4
+and the Foundation web page at http://www.pglaf.org.
+
+
+Section 3. Information about the Project Gutenberg Literary Archive
+Foundation
+
+The Project Gutenberg Literary Archive Foundation is a non profit
+501(c)(3) educational corporation organized under the laws of the
+state of Mississippi and granted tax exempt status by the Internal
+Revenue Service. The Foundation's EIN or federal tax identification
+number is 64-6221541. Its 501(c)(3) letter is posted at
+http://pglaf.org/fundraising. Contributions to the Project Gutenberg
+Literary Archive Foundation are tax deductible to the full extent
+permitted by U.S. federal laws and your state's laws.
+
+The Foundation's principal office is located at 4557 Melan Dr. S.
+Fairbanks, AK, 99712., but its volunteers and employees are scattered
+throughout numerous locations. Its business office is located at
+809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887, email
+business@pglaf.org. Email contact links and up to date contact
+information can be found at the Foundation's web site and official
+page at http://pglaf.org
+
+For additional contact information:
+ Dr. Gregory B. Newby
+ Chief Executive and Director
+ gbnewby@pglaf.org
+
+Section 4. Information about Donations to the Project Gutenberg
+Literary Archive Foundation
+
+Project Gutenberg-tm depends upon and cannot survive without wide
+spread public support and donations to carry out its mission of
+increasing the number of public domain and licensed works that can be
+freely distributed in machine readable form accessible by the widest
+array of equipment including outdated equipment. Many small donations
+($1 to $5,000) are particularly important to maintaining tax exempt
+status with the IRS.
+
+The Foundation is committed to complying with the laws regulating
+charities and charitable donations in all 50 states of the United
+States. Compliance requirements are not uniform and it takes a
+considerable effort, much paperwork and many fees to meet and keep up
+with these requirements. We do not solicit donations in locations
+where we have not received written confirmation of compliance. To
+SEND DONATIONS or determine the status of compliance for any
+particular state visit http://pglaf.org
+
+While we cannot and do not solicit contributions from states where we
+have not met the solicitation requirements, we know of no prohibition
+against accepting unsolicited donations from donors in such states who
+approach us with offers to donate.
+
+International donations are gratefully accepted, but we cannot make
+any statements concerning tax treatment of donations received from
+outside the United States. U.S. laws alone swamp our small staff.
+
+Please check the Project Gutenberg Web pages for current donation
+methods and addresses. Donations are accepted in a number of other
+ways including checks, online payments and credit card donations.
+To donate, please visit: http://pglaf.org/donate
+
+
+Section 5. General Information About Project Gutenberg-tm electronic
+works.
+
+Professor Michael S. Hart is the originator of the Project Gutenberg-tm
+concept of a library of electronic works that could be freely shared
+with anyone. For thirty years, he produced and distributed Project
+Gutenberg-tm eBooks with only a loose network of volunteer support.
+
+Project Gutenberg-tm eBooks are often created from several printed
+editions, all of which are confirmed as Public Domain in the U.S.
+unless a copyright notice is included. Thus, we do not necessarily
+keep eBooks in compliance with any particular paper edition.
+
+Each eBook is in a subdirectory of the same number as the eBook's
+eBook number, often in several formats including plain vanilla ASCII,
+compressed (zipped), HTML and others.
+
+Corrected EDITIONS of our eBooks replace the old file and take over
+the old filename and etext number. The replaced older file is renamed.
+VERSIONS based on separate sources are treated as new eBooks receiving
+new filenames and etext numbers.
+
+Most people start at our Web site which has the main PG search facility:
+
+http://www.gutenberg.org
+
+This Web site includes information about Project Gutenberg-tm,
+including how to make donations to the Project Gutenberg Literary
+Archive Foundation, how to help produce our new eBooks, and how to
+subscribe to our email newsletter to hear about new eBooks.
+
+EBooks posted prior to November 2003, with eBook numbers BELOW #10000,
+are filed in directories based on their release date. If you want to
+download any of these eBooks directly, rather than using the regular
+search system you may utilize the following addresses and just
+download by the etext year.
+
+http://www.ibiblio.org/gutenberg/etext06
+
+ (Or /etext 05, 04, 03, 02, 01, 00, 99,
+ 98, 97, 96, 95, 94, 93, 92, 92, 91 or 90)
+
+EBooks posted since November 2003, with etext numbers OVER #10000, are
+filed in a different way. The year of a release date is no longer part
+of the directory path. The path is based on the etext number (which is
+identical to the filename). The path to the file is made up of single
+digits corresponding to all but the last digit in the filename. For
+example an eBook of filename 10234 would be found at:
+
+http://www.gutenberg.org/1/0/2/3/10234
+
+or filename 24689 would be found at:
+http://www.gutenberg.org/2/4/6/8/24689
+
+An alternative method of locating eBooks:
+http://www.gutenberg.org/GUTINDEX.ALL
+
+*** END: FULL LICENSE ***
diff --git a/39.zip b/39.zip
new file mode 100644
index 0000000..b08f540
--- /dev/null
+++ b/39.zip
Binary files differ
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..6c72794
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,11 @@
+This book, including all associated images, markup, improvements,
+metadata, and any other content or labor, has been confirmed to be
+in the PUBLIC DOMAIN IN THE UNITED STATES.
+
+Procedures for determining public domain status are described in
+the "Copyright How-To" at https://www.gutenberg.org.
+
+No investigation has been made concerning possible copyrights in
+jurisdictions other than the United States. Anyone seeking to utilize
+this eBook outside of the United States should confirm copyright
+status under the laws that apply to them.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b0b7cc9
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+[Project Gutenberg](https://www.gutenberg.org) public repository for eBook [#$ebook_number](https://www.gutenberg.org/ebooks/$ebook_number)
diff --git a/old/hhgi10.txt b/old/hhgi10.txt
new file mode 100644
index 0000000..d96cc79
--- /dev/null
+++ b/old/hhgi10.txt
@@ -0,0 +1,1339 @@
+A Project Gutenberg Etext of Hitchhiker's Guide to the Internet.
+*******This file should be named hhgi10.txt or hhgi10.zip*******
+
+Corrected EDITIONS of our etexts get a new NUMBER, xxxxx11.txt.
+VERSIONS based on separate sources get new LETTER, xxxxx10a.txt.
+
+Project Gutenberg is working on creating a simple, childlike (if
+you will) network guide, "A Child's Garden of the Internet." If
+you have any suggestions for inclusions, and/or could take a few
+minutes to write a "Ten Minute Tuturial" on any subject you feel
+worthwhile. These should be directed at the absolute novices of
+the networks, and should presume little or no previous knowledge
+(we are even including how to control-c in each tutorial, as the
+tutorials are each supposed to be a stand alone event taking the
+nominal "Ten Minutes" to expose the novices to a particular part
+of the networks, or to a particular resource. . .even if that is
+a resource directed at other resources, such as Gopher, Prospero
+and others. This could be an easy way to get your name in print
+in both etext and paper publishing, as we had hardly announced A
+Child's Garden before we were approached for paper publishing.
+
+Information about Project Gutenberg (one page)
+
+We produce about one million dollars for each hour we work. One
+hundred hours is a conservative estimate for how long it we take
+to get any etext selected, entered, proofread, edited, copyright
+searched and analyzed, the copyright letters written, etc. This
+projected audience is one hundred million readers. If our value
+per text is nominally estimated at one dollar, then we produce a
+million dollars per hour; next year we will have to do four text
+files per month, thus upping our productivity to two million/hr.
+The Goal of Project Gutenberg is to Give Away One Trillion Etext
+Files by the December 31, 2001. [10,000 x 100,000,000=Trillion]
+This is ten thousand titles each to one hundred million readers.
+
+
+Send to:
+
+David Turner, Project Gutenberg
+Illinois Benedictine College
+5700 College Road
+Lisle, IL 60532-0900
+
+All communication to Project Gutenberg should be carried out via
+Illinois Benedictine College unless via email. This is for help
+in keeping me from being swept under by paper mail as follows:
+
+1. Too many people say they are including SASLE's and aren't.
+
+2. Paper communication just takes too long when compared to the
+ thousands of lines of email I receive every day. Even then,
+ I can't communicate with people who take too long to respond
+ as I just can't keep their trains of thought alive for those
+ extended periods of time. Even quick responses should reply
+ with the text of the messages they are answering (reply text
+ option in RiceMail). This is more difficult with paper.
+
+3. People request disks without specifying which kind of disks,
+ it can be very difficult to read an Apple disk on an IBM. I
+ have also received too many disks that cannot be formatted.
+
+My apologies.
+
+We would strongly prefer to send you this information by email
+(Internet, Bitnet, Compuserve, ATTMAIL or MCImail).
+Email requests to:
+
+Internet: hart@vmd.cso.uiuc.edu
+Bitnet: hart@uiucvmd or hart@uiucvmd.bitnet
+Compuserve: >internet:hart@vmd.cso.uiuc.edu
+Attmail: internet!vmd.cso.uiuc.edu!HART
+MCImail: ADDRESS TYPE: MCI / EMS: INTERNET / MBX:
+hart@vmd.cso.uiuc.edu
+******
+If you have an FTP program (or emulator), please:
+
+FTP directly to the Project Gutenberg archives:
+ftp mrcnext.cso.uiuc.edu
+login: anonymous
+password: your@login
+cd etext/etext91
+or cd etext92 [for new books] [now also cd etext/etext92]
+or cd etext/articles [get suggest gut for more information]
+dir [to see files]
+get or mget [to get files. . .set bin for zip files]
+GET INDEX and AAINDEX (or any file containing "index"
+for a list of books
+and
+GET NEW GUT for general information
+and
+MGET GUT* for newsletters.
+
+**Information prepared by the Project Gutenberg legal advisor**
+
+*START** SMALL PRINT! for ** Hitchhiker's Guide to the Internet
+
+This etext was distributed by Professor Michael S. Hart through
+the Project Gutenberg Association (the "Project"). As with
+other Project Gutenberg-tm etexts, you can (and are encouraged!)
+to copy and distribute it in the United States. We tell you how
+below.
+
+*BEFORE!* YOU USE OR READ THIS ETEXT
+
+Why is this "Small Print!" statement here? You know: lawyers.
+They tell us you might sue us if there is something wrong with
+your copy of this etext, even if you got it for free from
+someone other than us, and even if what's wrong is not our
+fault. So, among other things, this "Small Print!" statement
+disclaims most of our liability to you.
+
+By using or reading any part of this PROJECT GUTENBERG-tm etext,
+you indicate that you understand, agree to and accept this
+"Small Print!" statement. If you do not, you may receive a
+refund of the money (if any) you paid for this etext by sending
+a request within 30 days of receiving it to the person you got
+it from. If you received this etext on a physical medium (such
+as a disk), you must return it with your request.
+
+As used in this "Small Print!" statement, the word "Defect"
+includes incomplete, inaccurate or corrupt data, transcription
+errors, a copyright or other intellectual property infringement,
+a defective or damaged disk or other etext medium, a computer
+virus, and computer codes that damage or cannot be read by your
+equipment.
+
+DISCLAIMER
+
+But for the "Right of Replacement or Refund" described below,
+[1] the Project (and any other party you may receive this etext
+from as a PROJECT GUTENBERG-tm etext) disclaims all liability to
+you for damages, costs and expenses, including legal fees, and
+[2] YOU HAVE NO REMEDIES FOR NEGLIGENCE OR UNDER STRICT LIABILI-
+TY, OR FOR BREACH OF WARRANTY OR CONTRACT, INCLUDING BUT NOT
+LIMITED TO INDIRECT, CONSEQUENTIAL, PUNITIVE OR INCIDENTAL
+DAMAGES, EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+If you discover a Defect in this etext within 90 days of
+receiving it, you will receive a refund of the money (if any)
+you paid for it by sending an explanatory note within that time
+to the person you received it from. If you received it on a
+physical medium, you must return the Defective copy with your
+note, and such person may choose to alternatively give you a
+replacement copy. If you received it electronically, such
+person may alternatively give you a second opportunity to
+receive it electronically.
+
+THIS ETEXT IS OTHERWISE PROVIDED TO YOU "AS-IS". NO OTHER
+WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, ARE MADE TO YOU AS
+TO THE ETEXT OR ANY MEDIUM IT MAY BE ON, INCLUDING BUT NOT
+LIMITED TO WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
+PARTICULAR PURPOSE.
+
+Some states do not allow disclaimers of implied warranties or
+the exclusion or limitation of consequential damages, so the
+above disclaimers and exclusions may not apply to you, and you
+may have other legal rights.
+
+INDEMNITY
+
+You will indemnify and hold the Project, its officers, members
+and agents harmless from all liability, cost and expense, in-
+cluding legal fees, that arise from both [1] distribution of
+this etext for which you are responsible, and [2] any Defect, or
+any alteration, modification or addition to the etext for which
+you are responsible.
+
+LICENSE
+
+Except for modifications in formatting, this is a verbatim copy
+of revision 25 August 1987:
+
+ The Hitchhikers Guide to the Internet
+ 25 August 1987
+
+
+
+ Ed Krol
+ krol@uxc.cso.uiuc.edu
+
+
+
+
+ This document was produced through funding of the National
+ Science Foundation.
+
+ Copyright (C) 1987, by the Board of Trustees of The University
+ of Illinois. Permission to duplicate this document, in whole
+ or part, is granted provided reference is made to the source
+ and this copyright is included in whole copies.
+
+DISTRIBUTION UNDER "PROJECT GUTENBERG-tm"
+
+You may distribute copies of this etext electronically, or by
+disk, book or any other medium if you either delete this "Small
+Print!" statement except for
+
+The original copyright notice, or:
+
+[1] Only give exact copies of it. Among other things, this re-
+ quires that you do not remove or modify the etext or this
+ "Small Print!" statement. You may however, if you wish,
+ distribute this etext in machine readable binary, com-
+ pressed, mark-up, or proprietary form, including any form
+ resulting from conversion by word processing or hypertext
+ software, but only so long as *EITHER*:
+
+ [*] The etext, when displayed, is clearly readable. We
+ consider an etext *not* clearly readable if it
+ contains characters other than those intended by the
+ author of the work, although tilde (~), asterisk (*)
+ and underline (_) characters may be used to convey
+ punctuation intended by the author, and additional
+ characters may be used to indicate hypertext links.
+
+ [*] The etext may be readily converted by the reader at no
+ expense into in plain ASCII, EBCDIC or equivalent form
+ by the program that displays the etext (as is the
+ case, for instance, with most word processors).
+
+ [*] You provide, or agree to also provide on request at no
+ additional cost, fee or expense, a copy of the etext
+ in its original plain ASCII form (or in EBCDIC or
+ other equivalent proprietary form).
+
+[2] Honor the etext refund and replacement provisions of this
+ "Small Print!" statement.
+
+WRITE TO US! We can be reached at:
+
+Internet: hart@vmd.cso.uiuc.edu
+Bitnet: hart@uiucvmd
+CompuServe: >internet:hart@.vmd.cso.uiuc.edu
+Attmail: internet!vmd.cso.uiuc.edu!Hart
+
+or
+Prof. Michael Hart, Project Gutenberg
+Illinois Benedictine College
+5700 College Road
+Lisle, IL 60532-0900
+
+Drafted by CHARLES B. KRAMER, Attorney
+CompuServe: 72600,2026
+ Internet: 72600.2026@compuserve.com
+ Tel: (212) 254-5093
+*SMALL PRINT! Ver.06.28.92* Zen and the Art of the Internet*END*
+
+
+There are several versions of this text with printing commands
+included for .xxx and most other publishing formats. This one
+is strictly intended for etext uses, and has had hyphens at an
+end of line position removed to facilitate searching the text.
+***************************************************************
+
+ The Hitchhikers Guide to the Internet
+ 25 August 1987
+
+
+
+ Ed Krol
+ krol@uxc.cso.uiuc.edu
+
+
+
+
+ This document was produced through funding of the National
+ Science Foundation.
+
+ Copyright (C) 1987, by the Board of Trustees of The University
+ of Illinois. Permission to duplicate this document, in whole
+ or part, is granted provided reference is made to the source
+ and this copyright is included in whole copies.
+
+
+ This document assumes that one is familiar with the workings
+ of a non-connected simple IP network (e.g. a few 4.2 BSD
+ systems on an Ethernet not connected to anywhere else).
+ Appendix A contains remedial information to get one to this
+ point. Its purpose is to get that person, familiar with a
+ simple net, versed in the "oral tradition" of the Internet
+ to the point that that net can be connected to the Internet
+ with little danger to either. It is not a tutorial, it
+ consists of pointers to other places, literature, and hints
+ which are not normally documented. Since the Internet is a
+ dynamic environment, changes to this document will be made
+ regularly. The author welcomes comments and suggestions.
+ This is especially true of terms for the glossary (definitions
+ are not necessary).
+
+
+
+
+ In the beginning there was the ARPAnet, a wide area
+ experimental network connecting hosts and terminal servers
+ together. Procedures were set up to regulate the allocation
+ of addresses and to create voluntary standards for the network.
+ As local area networks became more pervasive, many hosts became
+ gateways to local networks. A network layer to allow the
+ interoperation of these networks was developed and called IP
+ (Internet Protocol). Over time other groups created long haul
+ IP based networks (NASA, NSF, states...). These nets, too,
+ interoperate because of IP. The collection of all of these
+ interoperating networks is the Internet.
+
+ Two groups do much of the research and information work of
+ the Internet (ISI and SRI). ISI (the Informational Sciences
+ Institute) does much of the research, standardization, and
+ allocation work of the Internet. SRI International provides
+ information services for the Internet. In fact, after you
+ are connected to the Internet most of the information in
+ this document can be retrieved from the Network Information
+ Center (NIC) run by SRI.
+
+
+
+ Operating the Internet
+
+ Each network, be it the ARPAnet, NSFnet or a regional network,
+ has its own operations center. The ARPAnet is run by
+ BBN, Inc. under contract from DARPA. Their facility is
+ called the Network Operations Center or NOC. Cornell
+ University temporarily operates NSFnet (called the Network
+ Information Service Center, NISC). It goes on to the
+
+ -2-
+
+ regionals having similar facilities to monitor and keep
+ watch over the goings on of their portion of the Internet.
+ In addition, they all should have some knowledge of what is
+ happening to the Internet in total. If a problem comes up,
+ it is suggested that a campus network liaison should contact
+ the network operator to which he is directly connected. That
+ is, if you are connected to a regional network (which is
+ gatewayed to the NSFnet, which is connected to the
+ ARPAnet...) and have a problem, you should contact your
+ regional network operations center.
+
+
+ RFCs
+
+ The internal workings of the Internet are defined by a set
+ of documents called RFCs (Request for Comments). The general
+ process for creating an RFC is for someone wanting something
+ formalized to write a document describing the issue and mailing
+ it to Jon Postel (postel@isi.edu). He acts as a referee for
+ the proposal. It is then commented upon by all those wishing
+ to take part in the discussion (electronically of course).
+ It may go through multiple revisions. Should it be generally
+ accepted as a good idea, it will be assigned a number and
+ filed with the RFCs.
+
+ The RFCs can be divided into five groups: required, suggested,
+ directional, informational and obsolete. Required RFC's (e.g.
+ RFC-791, The Internet Protocol) must be implemented on any host
+ connected to the Internet. Suggested RFCs are generally
+ implemented by network hosts. Lack of them does not preclude
+ access to the Internet, but may impact its usability. RFC-793
+ (Transmission Control Protocol) is a suggested RFC. Directional
+ RFCs were discussed and agreed to, but their application has never
+ come into wide use. This may be due to the lack of wide need for
+ the specific application (RFC-937 The Post Office Protocol) or
+ that, although technically superior, ran against other pervasive
+ approaches (RFC-891 Hello). It is suggested that should the
+ facility be required by a particular site, animplementation
+ be done in accordance with the RFC. This insures that, should
+ the idea be one whose time has come, the implementation will be
+ in accordance with some standard and will be generally usable.
+ Informational RFCs contain factual information about the
+ Internet and its operation (RFC-990, Assigned Numbers).
+ Finally, as the Internet and technology have grown, some
+ RFCs have become unnecessary. These obsolete RFCs cannot
+ be ignored, however. Frequently when a change is made to
+ some RFC that causes a new one to be issued obsoleting others,
+ the new RFC only contains explanations and motivations for the
+ change. Understanding the model on which the whole facility
+ is based may involve reading the original and subsequent RFCs
+ on the topic.
+
+ -3-
+
+ (Appendix B contains a list of what are considered to be the
+ major RFCs necessary for understanding the Internet).
+
+
+
+ The Network Information Center
+
+ The NIC is a facility available to all Internet users which
+ provides information to the community. There are three
+ means of NIC contact: network, telephone, and mail. The
+ network accesses are the most prevalent. Interactive access
+ is frequently used to do queries of NIC service overviews,
+ look up user and host names, and scan lists of NIC documents.
+ It is available by using
+
+ %telnet sri-nic.arpa
+
+ on a BSD system and following the directions provided by a
+ user friendly prompter. From poking around in the databases
+ provided one might decide that a document named NETINFO:NUG.DOC
+ (The Users Guide to the ARPAnet) would be worth having. It could
+ be retrieved via an anonymous FTP. An anonymous FTP would proceed
+ something like the following. (The dialogue may vary slightly
+ depending on the implementation of FTP you are using).
+
+ %ftp sri-nic.arpa
+ Connected to sri-nic.arpa.
+ 220 SRI_NIC.ARPA FTP Server Process 5Z(47)-6 at Wed
+17-Jun-87 12:00 PDT
+ Name (sri-nic.arpa:myname): anonymous
+ 331 ANONYMOUS user ok, send real ident as password.
+ Password: myname
+ 230 User ANONYMOUS logged in at Wed 17-Jun-87 12:01 PDT,
+job 15.
+ ftp> get netinfo:nug.doc
+ 200 Port 18.144 at host 128.174.5.50 accepted.
+ 150 ASCII retrieve of <NETINFO>NUG.DOC.11 started.
+ 226 Transfer Completed 157675 (8) bytes transferred
+ local: netinfo:nug.doc remote:netinfo:nug.doc
+ 157675 bytes in 4.5e+02 seconds (0.34 Kbytes/s)
+ ftp> quit
+ 221 QUIT command received. Goodbye.
+
+ (Another good initial document to fetch is
+ NETINFO:WHAT-THE-NIC-DOES.TXT)!
+
+ Questions of the NIC or problems with services can be asked
+ of or reported to using electronic mail. The following
+ addresses can be used:
+
+ NIC@SRI-NIC.ARPA General user assistance, document requests
+ REGISTRAR@SRI-NIC.ARPA User registration and WHOIS updates
+ HOSTMASTER@SRI-NIC.ARPA Hostname and domain changes and updates
+ ACTION@SRI-NIC.ARPA SRI-NIC computer operations
+ SUGGESTIONS@SRI-NIC.ARPA Comments on NIC publications and services
+
+ -4-
+
+ For people without network access, or if the number of documents
+ is large, many of the NIC documents are available in printed
+ form for a small charge. One frequently ordered document for
+ starting sites is a compendium of major RFCs. Telephone access is
+ used primarily for questions or problems with network access.
+ (See appendix B for mail/telephone contact numbers).
+
+
+
+ The NSFnet Network Service Center
+
+ The NSFnet Network Service Center (NNSC) is funded by NSF to
+ provide a first level of aid to users of NSFnet should they
+ have questions or encounter problems traversing the network.
+ It is run by BBN Inc. Karen Roubicek
+ (roubicek@nnsc.nsf.net) is the NNSC user liaison.
+
+ The NNSC, which currently has information and documents
+ online and in printed form, plans to distribute news through
+ network mailing lists, bulletins, newsletters, and online
+ reports. The NNSC also maintains a database of contact
+ points and sources of additional information about NSFnet
+ component networks and supercomputer centers.
+
+ Prospective or current users who do not know whom to call
+ concerning questions about NSFnet use, should contact the
+ NNSC. The NNSC will answer general questions, and, for
+ detailed information relating to specific components of the
+ Internet, will help users find the appropriate contact for
+ further assistance. (Appendix B)
+
+
+
+ Mail Reflectors
+
+ The way most people keep up to date on network news is
+ through subscription to a number of mail reflectors. Mail
+ reflectors are special electronic mailboxes which, when they
+ receive a message, resend it to a list of other mailboxes.
+ This in effect creates a discussion group on a particular
+ topic. Each subscriber sees all the mail forwarded by the
+ reflector, and if one wants to put his "two cents" in sends
+ a message with the comments to the reflector....
+
+ The general format to subscribe to a mail list is to find
+ the address reflector and append the string -REQUEST to the
+ mailbox name (not the host name). For example, if you
+ wanted to take part in the mailing list for NSFnet reflected
+ by NSFNET@NNSC.NSF.NET, one sends a request to
+
+ -5-
+
+ NSFNET-REQUEST@NNSC.NSF.NET. This may be a wonderful scheme,
+ but the problem is that you must know the list exists in the
+ first place. It is suggested that, if you are interested,
+ you read the mail from one list (like NSFNET) and you will
+ probably become familiar with the existence of others.
+ A registration service for mail reflectors is provided by
+ the NIC in the files NETINFO:INTEREST-GROUPS-1.TXT,
+ NETINFO:INTEREST-GROUPS-2.TXT, and NETINFO:INTEREST-GROUPS-
+ 3.TXT.
+
+ The NSFNET mail reflector is targeted at those people who
+ have a day to day interest in the news of the NSFnet (the
+ backbone, regional network, and Internet inter-connection
+ site workers). The messages are reflected by a central
+ location and are sent as separate messages to each subscriber.
+ This creates hundreds of messages on the wide area networks
+ where bandwidth is the scarcest.
+
+ There are two ways in which a campus could spread the news
+ and not cause these messages to inundate the wide area
+ networks. One is to re-reflect the message on the campus.
+ That is, set up a reflector on a local machine which forwards
+ the message to a campus distribution list. The other is
+ to create an alias on a campus machine which places the
+ messages into a notesfile on the topic. Campus users who
+ want the information could access the notesfile and see the
+ messages that have been sent since their last access. One
+ might also elect to have the campus wide area network
+ liaison screen the messages in either case and only forward
+ those which are considered of merit. Either of these
+ schemes allows one message to be sent to the campus, while
+ allowing wide distribution within.
+
+
+ Address Allocation
+
+ Before a local network can be connected to the Internet it
+ must be allocated a unique IP address. These addresses are
+ allocated by ISI. The allocation process consists of getting
+ an application form received from ISI. (Send a message
+ to hostmaster@sri-nic.arpa and ask for the template for a
+ connected address). This template is filled out and mailed
+ back to hostmaster. An address is allocated and e-mailed back
+ to you. This can also be done by postal mail (Appendix B).
+
+ IP addresses are 32 bits long. It is usually written as
+ four decimal numbers separated by periods (e.g., 192.17.5.100).
+ Each number is the value of an octet of the 32 bits. It was
+ seen from the beginning that some networks might choose to
+ organize themselves as very flat (one net with a lot of nodes)
+ and some might organize hierarchically
+
+ -6-
+
+ (many interconnected nets with fewer nodes each and a backbone).
+ To provide for these cases, addresses were differentiated into
+ class A, B, and C networks. This classification had to with the
+ interpretation of the octets. Class A networks have the first
+ octet as a network address and the remaining three as a host
+ address on that network. Class C addresses have three octets of
+ network address and one of host. Class B is split two and two.
+ Therefore, there is an address space for a few large nets, a
+ reasonable number of medium nets and a large number of small nets.
+ The top two bits in the first octet are coded to tell the address
+ format. All of the class A nets have been allocated. So one
+ has to choose between Class B and Class C when placing an order.
+ (There are also class D (Multicast) and E (Experimental) formats.
+ Multicast addresses will likely come into greater use in the near
+ future, but are not frequently used now).
+
+ In the past sites requiring multiple network addresses
+ requested multiple discrete addresses (usually Class C).
+ This was done because much of the software available
+ (not ably 4.2BSD) could not deal with subnetted addresses.
+ Information on how to reach a particular network (routing
+ information) must be stored in Internet gateways and packet
+ switches. Some of these nodes have a limited capability to
+ store and exchange routing information (limited to about 300
+ networks). Therefore, it is suggested that any campus
+ announce (make known to the Internet) no more than two
+ discrete network numbers.
+
+ If a campus expects to be constrained by this, it should
+ consider subnetting. Subnetting (RFC-932) allows one to
+ announce one address to the Internet and use a set of
+ addresses on the campus. Basically, one defines a mask
+ which allows the network to differentiate between the
+ network portion and host portion of the address. By using a
+ different mask on the Internet and the campus, the address
+ can be interpreted in multiple ways. For example, if a
+ campus requires two networks internally and has the 32,000
+ addresses beginning 128.174.X.X (a Class B address) allocated
+ to it, the campus could allocate 128.174.5.X to one part
+ of campus and 128.174.10.X to another. By advertising
+ 128.174 to the Internet with a subnet mask of FF.FF.00.00,
+ the Internet would treat these two addresses as one. Within
+ the campus a mask of FF.FF.FF.00 would be used, allowing the
+ campus to treat the addresses as separate entities. (In reality
+ you don't pass the subnet mask of FF.FF.00.00 to the Internet,
+ the octet meaning is implicit in its being a class B address).
+ A word of warning is necessary. Not all systems know how to
+ do subnetting. Some 4.2BSD systems require additional
+ software. 4.3BSD systems subnet as released. Other devices
+
+ -7-
+
+ and operating systems vary in the problems they have dealing
+ with subnets. Frequently these machines can be used as a
+ leaf on a network but not as a gateway within the subnetted
+ portion of the network. As time passes and more systems
+ become 4.3BSD based, these problems should disappear.
+
+ There has been some confusion in the past over the format of
+ an IP broadcast address. Some machines used an address of
+ all zeros to mean broadcast and some all ones. This was
+ confusing when machines of both type were connected to the
+ same network. The broadcast address of all ones has been
+ adopted to end the grief. Some systems (e.g. 4.2 BSD) allow
+ one to choose the format of the broadcast address. If a
+ system does allow this choice, care should be taken that the
+ all ones format is chosen. (This is explained in RFC-1009
+ and RFC-1010).
+
+
+ Internet Problems
+
+ There are a number of problems with the Internet. Solutions
+ to the problems range from software changes to long term
+ research projects. Some of the major ones are detailed
+ below:
+
+ Number of Networks
+
+ When the Internet was designed it was to have about 50
+ connected networks. With the explosion of networking,
+ the number is now approaching 300. The software in a
+ group of critical gateways (called the core gateways of
+ the ARPAnet) are not able to pass or store much more
+ than that number. In the short term, core reallocation
+ and recoding has raised the number slightly. By the
+ summer of '88 the current PDP-11 core gateways will be
+ replaced with BBN Butterfly gateways which will solve
+ the problem.
+
+ Routing Issues
+
+ Along with sheer mass of the data necessary to route
+ packets to a large number of networks, there are many
+ problems with the updating, stability, and optimality
+ of the routing algorithms. Much research is being done
+ in the area, but the optimal solution to these routing
+ problems is still years away. In most cases the the
+ routing we have today works, but sub-optimally and
+ sometimes unpredictably.
+
+ -8-
+
+
+ Trust Issues
+
+ Gateways exchange network routing information.
+ Currently, most gateways accept on faith that the
+ information provided about the state of the network is
+ correct. In the past this was not a big problem since
+ most of the gateways belonged to a single administrative
+ entity (DARPA). Now with multiple wide area networks
+ under different administrations, a rogue gateway
+ somewhere in the net could cripple the Internet.
+ There is design work going on to solve both the problem of
+ a gateway doing unreasonable things and providing enough
+ information to reasonably route data between multiply
+ connected networks (multi-homed networks).
+
+ Capacity & Congestion
+
+ Many portions of the ARPAnet are very congested during
+ the busy part of the day. Additional links are planned
+ to alleviate this congestion, but the implementation
+ will take a few months.
+
+
+ These problems and the future direction of the Internet are
+ determined by the Internet Architect (Dave Clark of MIT)
+ being advised by the Internet Activities Board (IAB). This
+ board is composed of chairmen of a number of committees with
+ responsibility for various specialized areas of the Internet.
+ The committees composing the IAB and their chairmen are:
+
+ Committee Chair
+ Autonomous Networks Deborah Estrin
+ End-to-End Services Bob Braden
+ Internet Architecture Dave Mills
+ Internet Engineering Phil Gross
+ EGP2 Mike Petry
+ Name Domain Planning Doug Kingston
+ Gateway Monitoring Craig Partridge
+ Internic Jake Feinler
+ Performance & Congestion ControlRobert Stine
+ NSF Routing Chuck Hedrick
+ Misc. MilSup Issues Mike St. Johns
+ Privacy Steve Kent
+ IRINET Requirements Vint Cerf
+ Robustness & Survivability Jim Mathis
+ Scientific Requirements Barry Leiner
+
+ Note that under Internet Engineering, there are a set of
+ task forces and chairs to look at short term concerns. The
+ chairs of these task forces are not part of the IAB.
+
+ -9-
+ Routing
+
+
+ Routing is the algorithm by which a network directs a packet
+ from its source to its destination. To appreciate the problem,
+ watch a small child trying to find a table in a restaurant.
+ From the adult point of view the structure of the dining room
+ is seen and an optimal route easily chosen. The child, however,
+ is presented with a set of paths between tables where a good path,
+ let alone the optimal one to the goal is not discernible.***
+
+ A little more background might be appropriate. IP gateways
+ (more correctly routers) are boxes which have connections to
+ multiple networks and pass traffic between these nets. They
+ decide how the packet is to be sent based on the information
+ in the IP header of the packet and the state of the network.
+ Each interface on a router has an unique address appropriate
+ to the network to which it is connected. The information in
+ the IP header which is used is primarily the destination address.
+ Other information (e.g. type of service) is largely ignored at this
+ time. The state of the network is determined by the routers passing
+ information among themselves. The distribution of the database
+ (what each node knows), the form of the updates, and metrics used
+ to measure the value of a connection, are the parameters
+ which determine the characteristics of a routing protocol.
+
+ Under some algorithms each node in the network has complete
+ knowledge of the state of the network (the adult algorithm).
+ This implies the nodes must have larger amounts of local
+ storage and enough CPU to search the large tables in a short
+ enough time (remember this must be done for each packet).
+ Also, routing updates usually contain only changes to the
+ existing information (or you spend a large amount of the
+ network capacity passing around megabyte routing updates).
+ This type of algorithm has several problems. Since the only
+ way the routing information can be passed around is across
+ the network and the propagation time is non-trivial, the
+ view of the network at each node is a correct historical
+ view of the network at varying times in the past. (The
+ adult algorithm, but rather than looking directly at the
+ dining area, looking at a photograph of the dining room.
+ One is likely to pick the optimal route and find a bus-cart
+ has moved in to block the path after the photo was taken).
+ These inconsistencies can cause circular routes (called
+ routing loops) where once a packet enters it is routed in a
+ closed path until its time to live (TTL) field expires and
+ it is discarded.
+
+ Other algorithms may know about only a subset of the network.
+ To prevent loops in these protocols, they are usually used in
+ a hierarchical network. They know completely about their
+ own area, but to leave that area they go to one particular
+ place (the default gateway). Typically these are used in
+ smaller networks (campus, regional...).
+
+ -10-
+
+ Routing protocols in current use:
+
+ Static (no protocol-table/default routing)
+
+ Don't laugh. It is probably the most reliable, easiest
+ to implement, and least likely to get one into trouble
+ for a small network or a leaf on the Internet. This is,
+ also, the only method available on some CPU-operating
+ system combinations. If a host is connected to an Ethernet
+ which has only one gateway off of it, one should make that
+ the default gateway for the host and do no other routing.
+ (Of course that gateway may pass the reachablity
+ information somehow on the other side of itself).
+
+ One word of warning, it is only with extreme caution that
+ one should use static routes in the middle of a network
+ which is also using dynamic routing. The routers passing
+ dynamic information are sometimes confused by conflicting
+ dynamic and static routes. If your host is on an ethernet
+ with multiple routers to other networks on it and the
+ routers are doing dynamic routing among themselves,
+ it is usually better to take part in the dynamic routing
+ than to use static routes.
+
+
+ RIP
+
+ RIP is a routing protocol based on XNS (Xerox Network
+ System) adapted for IP networks. It is used by many
+ routers (Proteon, cisco, UB...) and many BSD Unix systems
+ BSD systems typically run a program called "routed" to
+ exchange information with other systems running
+ RIP. RIP works best for nets of small diameter
+ where the links are of equal speed. The reason for
+ this is that the metric used to determine which path is
+ best is the hop-count. A hop is a traversal across a
+ gateway. So, all machines on the same Ethernet are
+ zero hops away. If a router connects connects two net-
+ works directly, a machine on the other side of the
+ router is one hop away.... As the routing information
+ is passed through a gateway, the gateway adds one to
+ the hop counts to keep them consistent across the net-
+ work. The diameter of a network is defined as the
+ largest hop-count possible within a network. Unfor-
+ tunately, a hop count of 16 is defined as infinity in
+ RIP meaning the link is down. Therefore, RIP will not
+ allow hosts separated by more than 15 gateways in the
+ RIP space to communicate.
+
+ The other problem with hop-count metrics is that if
+ links have different speeds, that difference is not
+
+ -11-
+
+ reflected in the hop-count. So a one hop satellite link
+ (with a .5 sec delay) at 56kb would be used instead of
+ a two hop T1 connection. Congestion can be viewed as a
+ decrease in the efficacy of a link. So, as a link gets
+ more congested, RIP will still know it is the best
+ hop-count route and congest it even more by throwing
+ more packets on the queue for that link.
+
+ The protocol is not well documented. A group of people
+ are working on producing an RFC to both define the
+ current RIP and to do some extensions to it to allow it
+ to better cope with larger networks. Currently, the
+ best documentation for RIP appears to be the code to
+ BSD "routed".
+
+
+ Routed
+
+ The ROUTED program, which does RIP for 4.2BSD systems,
+ has many options. One of the most frequently used is:
+ "routed -q" (quiet mode) which means listen to RIP infor-
+ mation but never broadcast it. This would be used by a
+ machine on a network with multiple RIP speaking gate-
+ ways. It allows the host to determine which gateway is
+ best (hopwise) to use to reach a distant network. (Of
+ course you might want to have a default gateway to
+ prevent having to pass all the addresses known to the
+ Internet around with RIP).
+
+ There are two ways to insert static routes into "routed",
+ the "/etc/gateways" file and the "route add" command.
+ Static routes are useful if you know how to reach a
+ distant network, but you are not receiving that route
+ using RIP. For the most part the "route add" command is
+ preferable to use. The reason for this is that the
+ command adds the route to that machine's routing table
+ but does not export it through RIP. The "/etc/gateways"
+ file takes precedence over any routing information
+ received through a RIP update. It is also broadcast as
+ fact in RIP updates produced by the host without question,
+ so if a mistake is made in the "/etc/gateways" file,
+ that mistake will soon permeate the RIP space and
+ may bring the network to its knees.
+
+ One of the problems with "routed" is that you have very
+ little control over what gets broadcast and what
+ doesn't. Many times in larger networks where various
+ parts of the network are under different administrative
+ controls, you would like to pass on through RIP only nets
+ which you receive from RIP and you know are reasonable.
+ This prevents people from adding IP addresses to
+ the network which may be illegal and you being
+ responsible for passing them on to the Internet. This
+
+ -12-
+
+ type of reasonability checks are not available with "routed"
+ and leave it usable, but inadequate for large networks.
+
+
+ Hello (RFC-891)
+
+ Hello is a routing protocol which was designed and
+ implemented in a experimental software router called a
+ "Fuzzball" which runs on a PDP-11. It does not have
+ wide usage, but is the routing protocol currently used
+ on the NSFnet backbone. The data transferred between
+ nodes is similar to RIP (a list of networks and their
+ metrics). The metric, however, is milliseconds of delay.
+ This allows Hello to be used over nets of various link
+ speeds and performs better in congestive situations.
+
+ One of the most interesting side effects of Hello based
+ networks is their great timekeeping ability. If you
+ consider the problem of measuring delay on a link for
+ the metric, you find that it is not an easy thing to
+ do. You cannot measure round trip time since the
+ return link may be more congested, of a different
+ speed, or even not there. It is not really feasible
+ for each node on the network to have a builtin WWV
+ (nationwide radio time standard) receiver. So, you
+ must design an algorithm to pass around time between
+ nodes over the network links where the delay in
+ transmission can only be approximated. Hello routers
+ do this and in a nationwide network maintain synchronized
+ time within milliseconds.
+
+
+ Exterior Gateway Protocol (EGP RFC-904)
+
+ EGP is not strictly a routing protocol, it is a reacha-
+ bility protocol. It tells only if nets can be reached
+ through a particular gateway, not how good the connec-
+ tion is. It is the standard by which gateways to local
+ nets inform the ARPAnet of the nets they can reach.
+ There is a metric passed around by EGP but its usage is
+ not standardized formally. Its typical value is value
+ is 1 to 8 which are arbitrary goodness of link values
+ understood by the internal DDN gateways. The smaller
+ the value the better and a value of 8 being unreach-
+ able. A quirk of the protocol prevents distinguishing
+ between 1 and 2, 3 and 4..., so the usablity of this as
+ a metric is as three values and unreachable. Within
+ NSFnet the values used are 1, 3, and unreachable. Many
+ routers talk EGP so they can be used for ARPAnet gateways.
+
+ -13-
+
+ Gated
+
+ So we have regional and campus networks talking RIP
+ among themselves, the NSFnet backbone talking
+ Hello, and the DDN speaking EGP.
+ How do they interoperate? In the beginning there was
+ static routing, assembled into the Fuzzball software
+ configured for each site. The problem with doing
+ static routing in the middle of the network is that it
+ is broadcast to the Internet whether it is usable or
+ not. Therefore, if a net becomes unreachable and you
+ try to get there, dynamic routing will immediately
+ issue a net unreachable to you. Under static routing
+ the routers would think the net could be reached and
+ would continue trying until the application gave up (in
+ 2 or more minutes). Mark Fedor of Cornell
+ (fedor@devvax.tn.cornell.edu) attempted to solve these
+ problems with a replacement for "routed" called "gated".
+
+ "Gated" talks RIP to RIP speaking hosts, EGP to EGP
+ speakers, and Hello to Hello'ers. These speakers
+ frequently all live on one Ethernet, but luckily (or
+ unluckily) cannot understand each others ruminations.
+ In addition, under configuration file control it can
+ filter the conversion. For example, one can produce a
+ configuration saying announce RIP nets via Hello only
+ if they are specified in a list and are reachable by
+ way of a RIP broadcast as well. This means that if a
+ rogue network appears in your local site's RIP space,
+ it won't be passed through to the Hello side of the
+ world. There are also configuration options to do
+ static routing and name trusted gateways.
+
+ This may sound like the greatest thing since sliced
+ bread, but there is a catch called metric conversion.
+ You have RIP measuring in hops, Hello measuring in
+ milliseconds, and EGP using arbitrary small numbers.
+ The big questions is how many hops to a millisecond,
+ how many milliseconds in the EGP number 3.... Also,
+ remember that infinity (unreachability) is 16 to RIP,
+ 30000 or so to Hello, and 8 to the DDN with EGP.
+ Getting all these metrics to work well together is no
+ small feat. If done incorrectly and you translate an
+ RIP of 16 into an EGP of 6, everyone in the ARPAnet
+ will still think your gateway can reach the unreachable
+ and will send every packet in the world your way. For
+ these reasons, Mark requests that you consult closely
+ with him when configuring and using "gated".
+
+ -14-
+
+ "Names"
+
+ All routing across the network is done by means of the IP
+ address associated with a packet. Since humans find it
+ difficult to remember addresses like 128.174.5.50, a symbolic
+ name register was set up at the NIC where people would say
+ "I would like my host to be named 'uiucuxc'". Machines
+ connected to the Internet across the nation would connect to
+ the NIC in the middle of the night, check modification dates
+ on the hosts file, and if modified move it to their local
+ machine. With the advent of workstations and micros,
+ changes to the host file would have to be made nightly. It
+ would also be very labor intensive and consume a lot of
+ network bandwidth. RFC-882 and a number of others describe
+ domain name service, a distributed data base system for
+ mapping names into addresses.
+
+ We must look a little more closely into what's in a name.
+ First, note that an address specifies a particular connec-
+ tion on a specific network. If the machine moves, the
+ address changes. Second, a machine can have one or more
+ names and one or more network addresses (connections) to
+ different networks. Names point to a something which does
+ useful work (i.e. the machine) and IP addresses point to an
+ interface on that provider. A name is a purely symbolic
+ representation of a list of addresses on the network. If a
+ machine moves to a different network, the addresses will
+ change but the name could remain the same.
+
+ Domain names are tree structured names with the root of the
+ tree at the right. For example:
+
+ uxc.cso.uiuc.edu
+
+ is a machine called 'uxc' (purely arbitrary), within the
+ subdomains method of allocation of the U of I) and 'uiuc'
+ (the University of Illinois at Urbana), registered with
+ 'edu' (the set of educational institutions).
+
+ A simplified model of how a name is resolved is that on the
+ user's machine there is a resolver. The resolver knows how
+ to contact across the network a root name server. Root
+ servers are the base of the tree structured data retrieval
+ system. They know who is responsible for handling first
+ level domains (e.g. 'edu'). What root servers to use is an
+ installation parameter. From the root server the resolver
+ finds out who provides 'edu' service. It contacts the 'edu'
+ name server which supplies it with a list of addresses of
+ servers for the subdomains (like 'uiuc'). This action is
+ repeated with the subdomain servers until the final sub-
+ domain returns a list of addresses of interfaces on the host
+ in question. The user's machine then has its choice of
+ which of these addresses to use for communication.
+
+ -15-
+
+ A group may apply for its own domain name (like 'uiuc'
+ above). This is done in a manner similar to the IP address
+ allocation. The only requirements are that the requestor
+ have two machines reachable from the Internet, which will
+ act as name servers for that domain. Those servers could
+ also act as servers for subdomains or other servers could be
+ designated as such. Note that the servers need not be
+ located in any particular place, as long as they are reach-
+ able for name resolution. (U of I could ask Michigan State
+ to act on its behalf and that would be fine). The biggest
+ problem is that someone must do maintenance on the database.
+ If the machine is not convenient, that might not be done in
+ a timely fashion. The other thing to note is that once the
+ domain is allocated to an administrative entity, that entity
+ can freely allocate subdomains using what ever manner it
+ sees fit.
+
+ The Berkeley Internet Name Domain (BIND) Server implements
+ the Internet name server for UNIX systems. The name server
+ is a distributed data base system that allows clients to
+ name resources and to share that information with other net-
+ work hosts. BIND is integrated with 4.3BSD and is used to
+ lookup and store host names, addresses, mail agents, host
+ information, and more. It replaces the "/etc/hosts" file for
+ host name lookup. BIND is still an evolving program. To
+ keep up with reports on operational problems, future design
+ decisions, etc, join the BIND mailing list by sending a
+ request to "bind-request@ucbarp.Berkeley.EDU". BIND can also
+ be obtained via anonymous FTP from ucbarpa.berkley.edu.
+
+ There are several advantages in using BIND. One of the most
+ important is that it frees a host from relying on "/etc/hosts"
+ being up to date and complete. Within the .uiuc.edu domain,
+ only a few hosts are included in the host table distributed
+ by SRI. The remainder are listed locally within the BIND
+ tables on uxc.cso.uiuc.edu (the server machine for most of
+ the .uiuc.edu domain). All are equally reachable from any
+ other Internet host running BIND.
+
+ BIND can also provide mail forwarding information for inte-
+ rior hosts not directly reachable from the Internet. These
+ hosts can either be on non-advertised networks, or not con-
+ nected to a network at all, as in the case of UUCP-reachable
+ hosts. More information on BIND is available in the "Name
+ Server Operations Guide for BIND" in "UNIX System Manager's
+ Manual", 4.3BSD release.
+
+ There are a few special domains on the network, like SRI-
+ NIC.ARPA. The 'arpa' domain is historical, referring to
+ hosts registered in the old hosts database at the NIC.
+ There are others of the form NNSC.NSF.NET. These special
+ domains are used sparingly and require ample justification.
+ They refer to servers under the administrative control of
+
+ -16-
+
+ the network rather than any single organization. This
+ allows for the actual server to be moved around the net
+ while the user interface to that machine remains constant.
+ That is, should BBN relinquish control of the NNSC, the new
+ provider would be pointed to by that name.
+
+ In actuality, the domain system is a much more general and
+ complex system than has been described. Resolvers and some
+ servers cache information to allow steps in the resolution
+ to be skipped. Information provided by the servers can be
+ arbitrary, not merely IP addresses. This allows the system
+ to be used both by non-IP networks and for mail, where it
+ may be necessary to give information on intermediate mail
+ bridges.
+
+
+ What's wrong with Berkeley Unix
+
+ University of California at Berkeley has been funded by
+ DARPA to modify the Unix system in a number of ways.
+ Included in these modifications is support for the Internet
+ protocols. In earlier versions (e.g. BSD 4.2) there was
+ good support for the basic Internet protocols (TCP, IP,
+ SMTP, ARP) which allowed it to perform nicely on IP ether-
+ nets and smaller Internets. There were deficiencies, how-
+ ever, when it was connected to complicated networks. Most
+ of these problems have been resolved under the newest
+ release (BSD 4.3). Since it is the springboard from which
+ many vendors have launched Unix implementations (either by
+ porting the existing code or by using it as a model), many
+ implementations (e.g. Ultrix) are still based on BSD 4.2.
+ Therefore, many implementations still exist with the BSD 4.2
+ problems. As time goes on, when BSD 4.3 trickles through
+ vendors as new release, many of the problems will be
+ resolved. Following is a list of some problem scenarios and
+ their handling under each of these releases.
+
+ ICMP redirects
+
+ Under the Internet model, all a system needs to know to
+ get anywhere in the Internet is its own address, the
+ address of where it wants to go, and how to reach a
+ gateway which knows about the Internet. It doesn't
+ have to be the best gateway. If the system is on a
+ network with multiple gateways, and a host sends a
+ packet for delivery to a gateway which feels another
+ directly connected gateway is more appropriate, the
+ gateway sends the sender a message. This message is an
+ ICMP redirect, which politely says "I'll deliver this
+ message for you, but you really ought to use that gate-
+ way over there to reach this host". BSD 4.2 ignores
+ these messages. This creates more stress on the gate-
+ ways and the local network, since for every packet
+
+ -17-
+
+ sent, the gateway sends a packet to the originator.
+ BSD 4.3 uses the redirect to update its routing tables,
+ will use the route until it times out, then revert to
+ the use of the route it thinks is should use. The
+ whole process then repeats, but it is far better than
+ one per packet.
+
+ Trailers
+
+ An application (like FTP) sends a string of octets to
+ TCP which breaks it into chunks, and adds a TCP header.
+ TCP then sends blocks of data to IP which adds its own
+ headers and ships the packets over the network. All
+ this prepending of the data with headers causes memory
+ moves in both the sending and the receiving machines.
+ Someone got the bright idea that if packets were long
+ and they stuck the headers on the end (they became
+ trailers), the receiving machine could put the packet
+ on the beginning of a page boundary and if the trailer
+ was OK merely delete it and transfer control of the
+ page with no memory moves involved. The problem is
+ that trailers were never standardized and most gateways
+ don't know to look for the routing information at the
+ end of the block. When trailers are used, the machine
+ typically works fine on the local network (no gateways
+ involved) and for short blocks through gateways (on
+ which trailers aren't used). So TELNET and FTP's of
+ very short files work just fine and FTP's of long files
+ seem to hang. On BSD 4.2 trailers are a boot option
+ and one should make sure they are off when using the
+ Internet. BSD 4.3 negotiates trailers, so it uses them
+ on its local net and doesn't use them when going across
+ the network.
+
+ Retransmissions
+
+ TCP fires off blocks to its partner at the far end of
+ the connection. If it doesn't receive an acknowledge-
+ ment in a reasonable amount of time it retransmits the
+ blocks. The determination of what is reasonable is
+ done by TCP's retransmission algorithm. There is no
+ correct algorithm but some are better than others,
+ where better is measured by the number of retransmis-
+ sions done unnecessarily. BSD 4.2 had a retransmission
+ algorithm which retransmitted quickly and often. This
+ is exactly what you would want if you had a bunch of
+ machines on an ethernet (a low delay network of large
+ bandwidth). If you have a network of relatively longer
+ delay and scarce bandwidth (e.g. 56kb lines), it tends
+ to retransmit too aggressively. Therefore, it makes
+ the networks and gateways pass more traffic than is
+ really necessary for a given conversation. Retransmis-
+ sion algorithms do adapt to the delay of the network
+
+ -18-
+
+ after a few packets, but 4.2's adapts slowly in delay
+ situations. BSD 4.3 does a lot better and tries to do
+ the best for both worlds. It fires off a few
+ retransmissions really quickly assuming it is on a low
+ delay network, and then backs off very quickly. It
+ also allows the delay to be about 4 minutes before it
+ gives up and declares the connection broken.
+
+ -19-
+ Appendix A
+ References to Remedial Information
+
+
+ Quaterman and Hoskins, "Notable Computer Networks",
+ Communications of the ACM, Vol 29, #10, pp. 932-971
+ (October, 1986).
+
+ Tannenbaum, Andrew S., Computer Networks, Prentice
+ Hall, 1981.
+
+ Hedrick, Chuck, Introduction to the Internet Protocols,
+ Anonymous FTP from topaz.rutgers.edu, directory
+ pub/tcp-ip-docs, file tcp-ip-intro.doc.
+
+ -20-
+
+ Appendix B
+ List of Major RFCs
+
+
+RFC-768 User Datagram Protocol (UDP)
+RFC-791 Internet Protocol (IP)
+RFC-792 Internet Control Message Protocol (ICMP)
+RFC-793 Transmission Control Protocol (TCP)
+RFC-821 Simple Mail Transfer Protocol (SMTP)
+RFC-822 Standard for the Format of ARPA Internet Text Messages
+RFC-854 Telnet Protocol
+RFC-917 * Internet Subnets
+RFC-919 * Broadcasting Internet Datagrams
+RFC-922 * Broadcasting Internet Datagrams in the Presence of Subnets
+RFC-940 * Toward an Internet Standard Scheme for Subnetting
+RFC-947 * Multi-network Broadcasting within the Internet
+RFC-950 * Internet Standard Subnetting Procedure
+RFC-959 File Transfer Protocol (FTP)
+RFC-966 * Host Groups: A Multicast Extension to the Internet Protocol
+RFC-988 * Host Extensions for IP Multicasting
+RFC-997 * Internet Numbers
+RFC-1010 * Assigned Numbers
+RFC-1011 * Official ARPA-Internet Protocols
+
+ RFC's marked with the asterisk (*) are not included in
+ the 1985 DDN Protocol Handbook.
+
+ Note: This list is a portion of a list of RFC's by
+ topic retrieved from the NIC under NETINFO:RFC-SETS.TXT
+ (anonymous FTP of course).
+
+ The following list is not necessary for connection to
+ the Internet, but is useful in understanding the domain
+ system, mail system, and gateways:
+
+RFC-882 Domain Names - Concepts and Facilities
+RFC-883 Domain Names - Implementation
+RFC-973 Domain System Changes and Observations
+RFC-974 Mail Routing and the Domain System
+RFC-1009 Requirements for Internet Gateways
+
+ -21-
+
+ Appendix C
+ Contact Points for Network Information
+
+
+ Network Information Center (NIC)
+
+ DDN Network Information Center
+ SRI International, Room EJ291
+ 333 Ravenswood Avenue
+ Menlo Park, CA 94025
+ (800) 235-3155 or (415) 859-3695
+ NIC@SRI-NIC.ARPA
+
+
+ NSF Network Service Center (NNSC)
+
+ NNSC
+ BBN Laboratories Inc.
+ 10 Moulton St.
+ Cambridge, MA 02238
+ (617) 497-3400
+ NNSC@NNSC.NSF.NET
+
+ -22-
+
+ Glossary
+
+ core gateway
+
+The innermost gateways of the ARPAnet. These
+gateways have a total picture of the reacha-
+bility to all networks known to the ARPAnet
+with EGP. They then redistribute reachabil-
+ity information to all those gateways speak-
+ing EGP. It is from them your EGP agent
+(there is one acting for you somewhere if you
+can reach the ARPAnet) finds out it can reach
+all the nets on the ARPAnet. Which is then
+passed to you via Hello, gated, RIP....
+
+ count to infinity
+
+The symptom of a routing problem where
+routing information is passed in a circular
+manner through multiple gateways. Each gate-
+way increments the metric appropriately and
+passes it on. As the metric is passed around
+the loop, it increments to ever increasing
+values til it reaches the maximum for the
+routing protocol being used, which typically
+denotes a link outage.
+
+ hold down
+
+When a router discovers a path in the network
+has gone down announcing that that path is
+down for a minimum amount of time (usually at
+least two minutes). This allows for the pro-
+pagation of the routing information across
+the network and prevents the formation of
+routing loops.
+
+ split horizon
+
+When a router (or group of routers working in
+consort) accept routing information from mul-
+tiple external networks, but do not pass on
+information learned from one external network
+to any others. This is an attempt to prevent
+bogus routes to a network from being propagated
+because of gossip or counting to infinity.
+
+ -23-
+
+ \ No newline at end of file
diff --git a/old/hhgi10.zip b/old/hhgi10.zip
new file mode 100644
index 0000000..e6be0e8
--- /dev/null
+++ b/old/hhgi10.zip
Binary files differ