Fast-path apparatus for transmitting data corresponding to a TCP connection
DC CAFCFirst Claim
1. A method comprising:
- establishing, at a host computer, a transport layer connection, including creating a context that includes protocol header information for the connection;
transferring the protocol header information to an interface device;
transferring data from the network host to the interface device, after transferring the protocol header information to the interface device;
dividing, by the interface device, the data into segments;
creating headers for the segments, by the interface device, from a template header containing the protocol header information; and
prepending the headers to the segments to form transmit packets.
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.
383 Citations
21 Claims
-
1. A method comprising:
-
establishing, at a host computer, a transport layer connection, including creating a context that includes protocol header information for the connection; transferring the protocol header information to an interface device; transferring data from the network host to the interface device, after transferring the protocol header information to the interface device; dividing, by the interface device, the data into segments; creating headers for the segments, by the interface device, from a template header containing the protocol header information; and prepending the headers to the segments to form transmit packets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
creating, at a computer, a context including protocol information and status information for a network connection, the protocol information providing a template header for the network connection; transferring the protocol information and status information to an interface device; transferring data from the computer to the interface device, after transferring the protocol information and status information to the interface device; dividing, by the interface device, the data into segments; creating headers for the segments, by the interface device, from the template header; prepending the headers to the segments to form packets; and transmitting the packets on a network. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A method comprising:
-
establishing, at a computer, a Transmission Control Protocol (TCP) connection corresponding to a context that includes status information and Internet Protocol (IP) addresses and TCP ports for the connection; transferring the context to an interface device; transferring data from the network host to the interface device; dividing, by the interface device, the data into segments; creating headers for the segments, by the interface device, from a template header that includes the IP addresses and TCP ports; and prepending the headers to the segments to form transmit packets. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification