A communication stack enables computers implementing it to send, receive,
or route network communications. The communication stack includes a
message layer, a communication layer, a security layer, and a transport
protocol layer, with plug-in transport protocol modules and plug-in
security protocol modules. Each of the origin computer, target computer,
and routing computers involved in delivering a message implements the
communication stack. An application on the origin computer calls the
message layer of the computer to send messages to a target computer and
identifies routing computers on the route for delivering the message to
the target computer. The message layer calls the communication layer to
establish a connection to the target computer. The communication layer
uses the transport protocol layer to establish an initial connection with
the target computer, and uses the security layer to negotiate security
parameters and to handle secured communications between the origin and
target computers.