CMPSCI 677 (Spring 2007): Homework 3
		   Due:  In-Class, Thursday, Mar 15 2007
		  Off-campus students: one week from when you view Lecture ?
		  
		  Web posted: Tuesday, Mar 8 2007
		  
	  
	  
	  -  In many layered protocols, each layer has its own header. Surely it would
           be more efficient to have a single header at the front of each message with all
           the control in it than all these separate headers. Why is this not done? 
	   
-  C has a construction called a union, in which a field of a record (called a
           struct in C) can hold any one of several alternatives. At run time, there is no
           sure-fire way to tell which one is in there. Does this feature of C have any
           implications for remote procedure call? Explain your answer. 
	   
-  Describe how connectionless communication between a client and a server
           proceeds when using sockets. 
	   
-  Suppose that you could make use of only transient synchronous communication
           primitives. How would you implement primitives for transient asynchronous
           communication? 
       
-  Does it make sense to implement persistent asynchronous communication
           by means of RPCs? 
       
-  Explain why transient synchronous communication has inherent scalability
           problems, and how these could be solved. 
       
-  What is a major drawback of recursive lookups when resolving a key in a
           DHT-based system? 
       
-  A special form of locating an entity is called anycasting, by which a service
           is identified by means of an IP address (see, for example, Sending a request to
           an anycast address, returns a response from a server implementing the service
           identified by that anycast address. Outline the implementation of an anycast
           service based on the hierarchical location service described in Sec. 5.2.4
           (Sec. 4.2.4 for the old version). 
       
-  How is a mounting point looked up in most UNIX systems?