摘要 |
Received packets are processed utilizing protocol processing stages in an operating system, in accordance with a technique referred to as signaled receiver processing (SRP). A given protocol processing stage uses a next stage submit (NSS) function to pass a packet to a subsequent protocol processing stage. Each protocol processing stage is associated with one or more sockets. Each socket is associated with the input function of a protocol processing stage, an unprocessed input queue (UIQ) that contains packets destined to the socket but not yet processed by the socket's input function, and a list of owner processes, which expect input from the socket. NSS uses a multi-stage early demultiplexing (MED) function, which determines a packet's next destination socket, based on the stage currently processing the packet and on information contained in the packet. If the amount of buffering used by a packet plus the amount of input buffering already used by the packet's destination socket exceeds a designated limit associated with that socket, NSS drops the packet. Otherwise, NSS enqueues the packet in that socket's UIQ and signals that socket's owner processes. The signal triggers a default action corresponding to performance of the required protocol processing by one of the destination socket's owner processes, but those processes may override the default action by, e.g., deferring the required protocol processing until execution of a subsequent receive call.
|