Parsing a packet header
First Claim
1. A method for use with a computer system, comprising:
- receiving, with a network controller for a host computer, a packet that includes a header, the header indicating a first characteristic that is associated with a transport layer of a multiple layer protocol stack and a second characteristic that is associated with an application layer of the stack;
parsing the packet with the network controller to extract said first and second characteristics, wherein said first characteristic includes an identification of a Transmission Control Protocol (TCP) connection, and said second characteristic includes a length of application data being received; and
passing a handle from the network controller to the host computer to indicate said first and second characteristics, wherein the handle associates the packet with a flow that corresponds to the TCP connection, and indicates an amount of said application data to be stored in the host computer.
4 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
42 Claims
-
1. A method for use with a computer system, comprising:
-
receiving, with a network controller for a host computer, a packet that includes a header, the header indicating a first characteristic that is associated with a transport layer of a multiple layer protocol stack and a second characteristic that is associated with an application layer of the stack; parsing the packet with the network controller to extract said first and second characteristics, wherein said first characteristic includes an identification of a Transmission Control Protocol (TCP) connection, and said second characteristic includes a length of application data being received; and passing a handle from the network controller to the host computer to indicate said first and second characteristics, wherein the handle associates the packet with a flow that corresponds to the TCP connection, and indicates an amount of said application data to be stored in the host computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. An apparatus for use with a computer system capable of executing software of a protocol stack to extract at least first and second characteristics of a packet, comprising:
-
an interface adapted to receive the packet, the packet including a header indicating said first and second characteristics, wherein said first characteristic includes an identification of a Transmission Control Protocol (TCP) connection, and said second characteristic includes a length of application data being received; a circuit adapted to parse the header to extract said first and second characteristics of the packet without causing the computer system to execute the software; and a direct memory access (DMA) engine to copy the application data to a memory of the computer system controlled by the application. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
28. A computer system comprising:
-
a processor adapted to execute software of a network stack to process a packet; and a peripheral device adapted to; receive the packet, the packet including a header indicating an identification of a Transmission Control Protocol (TCP) connection and a length of application data being received, the packet further including a portion of the application data, parse the header to extract said identification and length, provide the identification and length to the processor to obtain a final destination for the application data, and send the application data to the final destination. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. A method for use with a computer system, comprising:
-
receiving, by a network controller for the computer system, a packet that includes a header, the header including a TCP source port, a TCP destination port, an IP source address, and an IP destination address, and wherein a TCP connection is identified by the TCP source port, the TCP destination port, the IP source address, and the IP destination address; parsing the packet with the network controller to extract said TCP source port, said TCP destination port, said IP source address and said IP destination address, including creating an indication of the TCP connection, and determining a length of application data to be stored in the computer system, wherein the packet includes part but not all of the application data; sending an identification of the TCP connection and said length from the network controller to the computer system to obtain a destination for storing said application data; and storing said application data in said destination by said network controller.
-
Specification