(Illustration by Gaich Muramatsu)
> 13 doesn't sound like too many to me, if you plan to make good use of > them. Ports are there to be used. You can always give them back > later. I hope Coda will be adopted as a backbone of the net. Would > 13 ports be too many to register for NFS? Hmmm. 13 sounds a bit much. I'm a big fan of dynamic binding. DCE RPC solves this problem in a nice way. The only port you need to know to get access to any DCE server is Port 135 - the location of the endpoint mapper. DCE RPC uses a UUID (Unique Identifier 128-bit integer) to distinguish each interface. The endpoint mapper on each DCE host is responsible for looking up the interface location by UUID and returning the TCP/UDP port numbers that correspond to the particular location where an instance of the service is located. Would it be possible to put an Interface UUID and Instance UUID into the RPC2 protocol specification ?? The UUID code is in the public-domain and is actually included on Redhat Linux. It's also part of NT/95 - and is used to distinguish interfaces in DCOM. Just an idea. Example: Here is a fragment of "rpcgen" equivalent of the DCE/DFS File Server. -------------------------------------------------------------------------- [uuid(4d37f2dd-ed93-0000-02c0-37cf1e000000), version(4.0) ] interface AFS4Int { .... error_status_t AFS_LookupRoot( [in] handle_t h, [in] afsFid *InFidp, [in] afsHyper *minVVp, [in] unsigned32 Flags, [out] afsFid *OutFidp, [out] afsFetchStatus *OutFidStatusp, [out] afsToken *OutTokenp, [out] afsVolSync *Syncp ); error_status_t AFS_FetchData( [in] handle_t h, [in] afsFid *Fidp, [in] afsHyper *minVVp, [in] afsHyper *Position, [in] signed32 Length, [in] unsigned32 Flags, [out] afsFetchStatus *OutStatusp, [out] afsToken *OutTokenp, [out] afsVolSync *Syncp, [out] pipe_t *fetchStream ); .... } Knowing the UUID of this RPC interface, I can go find what ports to contact this service on a particular machine. Here, as an example, shows the TCP and UDP endpoints for the this interface on a machine here: {{interface {4d37f2dd-ed93-0000-02c0-37cf1e000000 4.0}} {binding {ncadg_ip_udp 128.197.152.14 8052}} {annotation {DFS file exporter}}} {{interface {4d37f2dd-ed93-0000-02c0-37cf1e000000 4.0}} {binding {ncadg_ip_udp 128.197.152.14 8052}} {annotation {DFS file exporter}}} +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Jim Doyle Boston University Information Technology Systems Analyst/Programmer email: jrd_at_bu.edu Distributed Systems tel. (617)-353-8248 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++--+-+-+-+-+-+-Received on 1998-04-16 18:11:25