Fast-path apparatus for receiving data corresponding a TCP connection
DC CAFCFirst Claim
1. A device for use with a first apparatus that is connectable to a second apparatus, the first apparatus containing a memory and a first processor operating a stack of protocol processing layers that create a context for communication, the context including a media access control (MAC) layer address, an Internet Protocol (IP) address and Transmission Control Protocol (TCP) state information, the device comprising:
- a communication processing mechanism connected to the first processor, said communication processing mechanism containing a second processor running instructions to process a message packet such that the context is employed to transfer data contained in said packet to the first apparatus memory and the TCP state information is updated by said second processor.
3 Assignments
Litigations
4 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.
312 Citations
22 Claims
-
1. A device for use with a first apparatus that is connectable to a second apparatus, the first apparatus containing a memory and a first processor operating a stack of protocol processing layers that create a context for communication, the context including a media access control (MAC) layer address, an Internet Protocol (IP) address and Transmission Control Protocol (TCP) state information, the device comprising:
a communication processing mechanism connected to the first processor, said communication processing mechanism containing a second processor running instructions to process a message packet such that the context is employed to transfer data contained in said packet to the first apparatus memory and the TCP state information is updated by said second processor. - 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, the first apparatus containing a first processor operating a stack of protocol processing layers that create a Transmission Control Protocol (TCP) connection for communication between a first application on the first apparatus and a second application on the second apparatus, the device comprising:
-
a receive mechanism having logic to classify a message packet received from the second apparatus 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 TCP connection and to choose whether to send said message packet to the stack for protocol processing or to update said TCP connection and send said data directly to the first application without processing said message packet by the stack. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for communication between a first device and a second device, the method comprising:
-
establishing, by a processor of the first device, a Transmission Control Protocol (TCP) connection corresponding to an application running on the first device; transferring Media Access Control (MAC) and Internet Protocol (IP) addresses corresponding to the TCP connection from the processor to an interface for the first device, and transferring control of the TCP connection from the processor to the interface; receiving a message packet by the interface, including parsing a header of the packet with hardware of the interface and determining that the packet corresponds to the TCP connection; sending to the application, by the interface, data of the packet without the header; and updating the TCP connection, by the interface, to reflect receipt of the packet. - View Dependent Claims (19, 20, 21, 22)
-
Specification