Next: Architecture Design
Up: Kernel Mechanisms for Service
Previous: Introduction
Input Packet Processing: Background
In this section we briefly describe the protocol processing steps executed
when a new connection request is processed by a web server.
When the
device interface receives a packet it triggers a hardware interrupt that is
serviced by the corresponding device driver [11]. The device
driver copies the received packet into an and de-multiplexes it to determine the queue to insert the
packet. For example, an IP packet is added to the input queue, . The device driver then triggers the IP software interrupt. The IP input routine dequeues the packet from the IP input queue and does the next layer demultiplexing to invoke the transport layer
input routine. For example, for a TCP packet this will result in a call to
a routine for further processing. The call to the
transport layer input routine happens within the realm of the IP input
call, i.e., there is no queuing between the IP and TCP layer. The TCP
input processing verifies the packet and locates the protocol control block
(PCB). If the incoming packet is a SYN request for a listen socket, a new
data socket is created and placed in the partial listen queue and an ACK is
sent back to the client. When the ACK for the SYN-ACK is received the TCP
3-way handshake is complete, the connection moves to an established state
and the data socket is moved to the listen queue. The sleeping process,
e.g., the web server, waiting on the call is woken
up. The connection is ready to receive data.
Next: Architecture Design
Up: Kernel Mechanisms for Service
Previous: Introduction
Renu Tewari
2001-05-01