A network interface device has a fast-path ACK generating and transmitting
mechanism. ACKs are generated using a finite state machine (FSM). The FSM
retrieves a template header and fills in TCP and IP fields in the
template. The FSM is not a stack, but rather fills in the TCP and IP
fields without performing transport layer processing and network layer
processing sequentially as separate tasks. The filled-in template is
placed into a buffer and a pointer to the buffer is pushed onto a
high-priority transmit queue. Pointers for ordinary data packets are
pushed onto a low-priority transmit queue. A transmit sequencer outputs a
packet by popping a transmit queue, obtaining a pointer, and causing
information pointed to by the pointer to be output from the network
interface device as a packet. The sequencer pops the high-priority queue
in preference to the low-priority queue, thereby accelerating ACK
generation and transmission.