Fast-path apparatus for receiving data corresponding to a TCP connection
First 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 the data from each packet of the first type to a destination without sending any of the media access control layer headers, network layer headers or transport layer headers to the destination.
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.
-
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 the data from each packet of the first type to a destination 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 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 prepending of each packet header occurs without an interrupt dividing the prepending of the network layer header and the transport layer 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 multiple segments of data;
prepending 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 network layer header and an outbound transport layer 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 network layer header and the outbound transport layer header;
transmitting the outbound packets to the network;
receiving multiple inbound packets from the network, each of the inbound packets including an inbound media access control layer header, an inbound network layer header and an inbound transport layer header;
processing the inbound packets, so that for each packet the inbound network layer header and the inbound transport layer header are validated without an interrupt dividing the processing of the inbound network layer header and the inbound transport layer header. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification