Fast-path apparatus for receiving data corresponding a TCP connection
First Claim
1. A device for use with a first apparatus that is connectable to a second apparatus by a network, the first apparatus containing a memory and a first processor operating a stack of protocol processing layers that create a context for communication between an application of the first apparatus and an application of the second apparatus, the device comprising:
- a communication processing mechanism connected to the first processor and to the network, said communication processing mechanism containing a second processor and instructions to choose, by referencing the context, whether a network message packet is processed by the protocol processing layers or the context is employed to transfer data contained in said packet between the network and the first apparatus memory.
3 Assignments
0 Petitions
Accused Products
Abstract
A system for protocol processing in a computer network has an intelligent network interface card (INIC) or communication processing device (CPD) associated with a host computer. The INIC provides a fast-path that avoids protocol processing for most large multi-packet messages, greatly accelerating data communication. The INIC also assists the host for those message packets that are chosen for processing by host software layers. A communication control block for a message is defined that allows DMA controllers of the INIC to move data, free of headers, directly to or from a destination or source in the host. The context is stored in the INIC as a communication control block (CCB) that can be passed back to the host for message processing by the host. The INIC contains specialized hardware circuits that are much faster at their specific tasks than a general purpose CPU. A preferred embodiment includes a trio of pipelined processors with separate processors devoted to transmit, receive and management processing, with full duplex communication for four fast Ethernet nodes.
405 Citations
22 Claims
-
1. A device for use with a first apparatus that is connectable to a second apparatus by a network, the first apparatus containing a memory and a first processor operating a stack of protocol processing layers that create a context for communication between an application of the first apparatus and an application of the second apparatus, the device comprising:
a communication processing mechanism connected to the first processor and to the network, said communication processing mechanism containing a second processor and instructions to choose, by referencing the context, whether a network message packet is processed by the protocol processing layers or the context is employed to transfer data contained in said packet between the network and the first apparatus memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
9. A device for use with a first apparatus that can communicate with a second apparatus by a network, the first apparatus containing a first processor operating a stack of protocol processing layers that create a Transport Control Protocol (TCP) connection between the first apparatus and the second apparatus, the device comprising:
-
a receive mechanism coupled to the network and having logic to classify a message packet received from the network by the device, said message packet containing data and a header with control information corresponding to several of said protocol layers, said logic including directions to create a descriptor of said packet, and a second processor coupled to said receive mechanism and to the first apparatus, having instructions to compare said descriptor with the connection and to choose, based upon said comparing, whether to send said message packet to the stack for protocol processing or to send said data directly to a destination in the first apparatus without processing said message packet by the stack. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A device for processing communication between a network and a host having a stack of protocol layers, said device comprising:
-
a sequencer that categorizes a message packet received from the network to create a summary of said packet, said packet including data and a header containing information corresponding to a transport layer protocol, a memory to store said packet and said summary, a microprocessor to match said summary with a connection context and to move said data without said information to a destination in the host indicated by said context. - View Dependent Claims (19, 20)
-
- 21. A device for transferring a message between a network and a host computer, wherein the message includes a packet having a series of headers corresponding to a sequence of protocol layers, the device comprising a sequencer that parses the series of headers as a stream of bits to generate a status of said packet, and a processor including logic to process a Transport Control Protocol (TCP) header of said packet.
Specification