We describe the design by describing the steps that the implementation carries out to perform the basic operations of sending and receiving a message.