Copyright Xerox Corporation 1979Inter-Office MemorandumToDistributed ComputingDateAugust 8, 1976FromDavid BoggsLocationPalo AltoSubjectPup Network DirectoryOrganizationParcUpdate ProtocolXEROX Filed on: NetDirUpdate.bravoThis memo documents the protocol by which name lookup servers update their local copies of thenetwork directory.DisclaimerThis version of the protocol assumes that the network directory is maintained at galactic central,from which all servers get copies. This scheme is cheap and easy to implement for small galaxies,but as civilization spreads: (1) it will become cumbersome: to add or change a listing, one mustinteract with galactic central which may be many light-years away in space with a consequent manyyear delay in time before the listing propagates out to the periphery (besides, galactic central will bea huge bureaucracy, slow in responding to requests) (2) the directory will get very large: everyone inthe whole galaxy will be listed in each copy of the directory, which will strain the capacity of smallservers to store and search in reasonable time. In short, it is centralized.The eventual solution is, of course, to distribute the network directory. A server's network directoryshould be a cache containing only those names most likely to be referenced. If a request arrives fora name not in the cache, the request should be passed on to other name lookup servers.The ProtocolWhen a Pup of type NetDirVersion arrives at the miscellaneous services socket, the version numberin the Pup should be compared with the version number of the local network directory, and one ofthe following actions taken:If the local directory version number is greater than the version number in the incoming Pup, areply of type NetDirVersion should be generated with the local network directory versionnumber as data.If the local directory version number is equal to the version number in the incoming Pup, donothing.If the local directory version number is less than the version number in the incoming Pup, probethe inter-network to find the server with the latest version, (the version advertised in theincoming Pup is newer than your version, but it may not be the newest) then ask him to send itto you. See below for a suggested implementation to probe for newer versions.When a Pup of type SendNetDir arrives at the miscellaneous services socket, open an EFTP Socketwith the foreign port set to the port specified in the incoming Pup, and send the local networkdirectory.Periodically (every 6 hours or so) probe the inter-network for newer versions of the networkdirectory. &pX]g~qi cr]pX-r7Bp ]r]p -r7Bp Yr]p-r 7Bp]WSsp M! H5P F Ct A p$> ?b =E