A network application executing on a host system provides a list of
application buffers in host memory stored in a queue to a network
services processor coupled to the host system. The application buffers
are used for storing data transferred on a socket established between the
network application and a remote network application executing in a
remote host system. Using the application buffers, data received by the
network services processor over the network is transferred between the
network services processor and the application buffers. After the
transfer, a completion notification is written to one of the two control
queues in the host system. The completion notification includes the size
of the data transferred and an identifier associated with the socket. The
identifier identifies a thread associated with the transferred data and
the location of the data in the host system.