Method and apparatus for processing received network packets on a network interface for a computer
First Claim
1. A method of network communication for a network interface that is coupled to a computer by an input/output (I/O) bus, the method comprising:
- running, on the computer, a protocol processing stack including an Internet Protocol (IP) layer and a Transmission Control Protocol (TCP) layer, with an upper layer running above the TCP layer;
maintaining, on the network interface, a TCP control block (TCB);
receiving, by the network interface, a network packet having an IP header, a TCP header, and an upper layer header;
processing the packet by the network interface, including parsing the IP header and TCP header to associate the packet with the TCB;
updating, by the network interface, the TCB to reflect receiving the packet; and
parsing, by the network interface, the upper layer header to determine a length of data being received in a plurality of network packets that correspond to the TCB and include the network packet.
3 Assignments
0 Petitions
Accused Products
Abstract
An intelligent network interface card (INIC) or communication processing device (CPD) works with a host computer for data communication. The device provides a fast-path that avoids protocol processing for most messages, greatly accelerating data transfer and offloading time-intensive processing tasks from the host CPU. The host retains a fallback processing capability for messages that do not fit fast-path criteria, with the device providing assistance such as validation even for slow-path messages, and messages being selected for either fast-path or slow-path processing. A context for a connection is defined that allows the device to move data, free of headers, directly to or from a destination or source in the host. The context can be passed back to the host for message processing by the host. The device 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 devoted to transmit, receive and utility processing, providing full duplex communication for four Fast Ethernet nodes.
-
Citations
17 Claims
-
1. A method of network communication for a network interface that is coupled to a computer by an input/output (I/O) bus, the method comprising:
-
running, on the computer, a protocol processing stack including an Internet Protocol (IP) layer and a Transmission Control Protocol (TCP) layer, with an upper layer running above the TCP layer; maintaining, on the network interface, a TCP control block (TCB); receiving, by the network interface, a network packet having an IP header, a TCP header, and an upper layer header; processing the packet by the network interface, including parsing the IP header and TCP header to associate the packet with the TCB; updating, by the network interface, the TCB to reflect receiving the packet; and parsing, by the network interface, the upper layer header to determine a length of data being received in a plurality of network packets that correspond to the TCB and include the network packet. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10)
-
-
2. A system for communication over a network, the system comprising:
-
a computer running a protocol processing stack including an Internet Protocol (IP) layer and a Transmission Control Protocol (TCP) layer, with an upper layer running above the TCP layer; and a network interface that is coupled to the computer by an input/output (I/O) bus, the network interface including a memory storing a TCP control block (TCB) and a mechanism adapted to parse IP and TCP headers of received network packets to determine whether the received network packets correspond to the TCB, the mechanism adapted to parse an upper layer header of one of the received network packets to determine a length of data being received in the plurality of the packets that correspond to the TCB. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
3. A network interface that is coupled to a computer by an input/output (I/O) bus, the network interface comprising:
hardware adapted to parse Internet Protocol (IP) headers and Transmission Control Protocol (TCP) headers of received network packets to determine whether the received network packets correspond to a TCP control block (TCB) being stored on the network interface, and hardware adapted to parse an upper layer header of one of the received network packets to determine a length of data being received in a plurality of the packets that correspond to the TCB. - View Dependent Claims (16, 17)
Specification