An object oriented protocol interface for establishing a communication path between communication endpoints in a computer network. The generic nature of the interface allows any and several protocol layers to be developed from the same set of protocol class objects. The interface to a communication endpoint for a client application is defined by instantiating a network definition object for the communication endpoint from a network definition class object. The communication endpoint itself is represented by instantiating a network address object from a network address class object. The protocol layers which form the protocol stack are derived from a set of protocol interface objects from a protocol interface class object and a set of protocol layer objects from a protocol layer class object. The objects forming each of the layers in the protocol stack differ in their capabilities according to their respective layer and the protocol which is provided by the protocol stack. The communication path is established in the protocol stack by calling methods in the sets of protocol interface and protocol layer objects.