Fast-path apparatus for receiving data corresponding to a TCP connection
DC CAFCFirst Claim
1. A method for network communication, the method comprising:
- receiving a plurality of packets from the network, each of the packets including a media access control layer header, a network layer header and a transport layer header;
processing the packets by a first mechanism, so that for each packet the network layer header and the transport layer header are validated without an interrupt dividing the processing of the network layer header and the transport layer header;
sorting the packets, dependent upon the processing, into first and second types of packets, so that the packets of the first type each contain data;
sending, by the first mechanism, the data from each packet of the first type to a destination in memory allocated to an application without sending any of the media access control layer headers, network layer headers or transport layer headers to the destination.
3 Assignments
Litigations
6 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.
368 Citations
24 Claims
-
1. A method for network communication, the method comprising:
-
receiving a plurality of packets from the network, each of the packets including a media access control layer header, a network layer header and a transport layer header; processing the packets by a first mechanism, so that for each packet the network layer header and the transport layer header are validated without an interrupt dividing the processing of the network layer header and the transport layer header; sorting the packets, dependent upon the processing, into first and second types of packets, so that the packets of the first type each contain data; sending, by the first mechanism, the data from each packet of the first type to a destination in memory allocated to an application without sending any of the media access control layer headers, network layer headers or transport layer headers to the destination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for communicating information over a network, the method comprising:
-
obtaining data from a source in memory allocated by a first processor; dividing the data into multiple segments; prepending a packet header to each of the segments by a second processor, thereby forming a packet corresponding to each segment, each packet header containing a media access control layer header, a network layer header and a transport layer header, wherein the network layer header is Internet Protocol (IP), the transport layer header is Transmission Control Protocol (TCP) and the media access control layer header, the network layer header and the transport layer header are prepended at one time as a sequence of bits during the prepending of each packet header; and transmitting the packets to the network. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for communicating information over a network, the method comprising:
-
providing, by a first mechanism, a block of data and a Transmission Control Protocol (TCP) connection; dividing, by a second mechanism, the block of data into multiple segments; prepending, by the second mechanism, an outbound packet header to each of the segments, thereby forming an outbound packet corresponding to each segment, the outbound packet header containing an outbound media access control layer header, an outbound Internet Protocol (IP) header and an outbound TCP header, wherein the prepending of each outbound packet header occurs without an interrupt dividing the prepending of the outbound media access control layer header, the outbound (IP) header and the outbound TCP header; and transmitting the outbound packets to the network. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification