communication is higher level abstraction of the underlying primitives, flesh out descriptions of underlying network primitives