Network interface device that can transfer control of a TCP connection to a host CPU
First Claim
1. A method of processing communication for host computer having a central processing unit (CPU) and a network interface device, the method comprising:
- storing, in a memory of the network interface device, a Transmission Control Protocol (TCP) connection for the host, the TCP connection being at least in part identified by an Internet Protocol (IP) address and TCP port of the host, and an IP address and TCP port of a remote host;
processing the TCP connection according to a finite state machine (FSM), including updating a state of the TCP connection; and
transferring control of the TCP connection from the network interface device to the CPU, including transferring the state of the TCP connection.
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.
219 Citations
22 Claims
-
1. A method of processing communication for host computer having a central processing unit (CPU) and a network interface device, the method comprising:
-
storing, in a memory of the network interface device, a Transmission Control Protocol (TCP) connection for the host, the TCP connection being at least in part identified by an Internet Protocol (IP) address and TCP port of the host, and an IP address and TCP port of a remote host; processing the TCP connection according to a finite state machine (FSM), including updating a state of the TCP connection; and transferring control of the TCP connection from the network interface device to the CPU, including transferring the state of the TCP connection. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A network interface device for a host computer having a central processing device (CPU), the network interface device comprising:
-
a memory that stores a Transmission Control Protocol (TCP) connection of the host, the TCP connection being at least in part identified by an Internet Protocol (IP) address and TCP port of the host, and an IP address and TCP port of a remote host; a processor that updates a state of the TCP connection in accordance with a finite state machine (FSM); and a mechanism to transfer control of the TCP connection and the state of the TCP connection to the CPU. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A network interface device for a host computer having a central processing device (CPU), the network interface device comprising:
-
a processor to maintain a Transmission Control Protocol (TCP) connection of the host, the TCP connection being at least in part identified by an Internet Protocol (IP) address and TCP port of the host, and an IP address and TCP port of a remote host, the TCP connection including variable TCP state information; and a mechanism to transfer the variable TCP state information and control of the TCP connection to the CPU. - View Dependent Claims (22)
-
Specification