Fast-path processing for receiving data on TCP connection offload devices
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-015/173
G06F-015/16
출원번호
US-0093042
(2002-05-06)
발명자
/ 주소
Boucher,Laurence B.
Blightman,Stephen E. J.
Craft,Peter K.
Higgen,David A.
Philbrick,Clive M.
Starr,Daryl D.
출원인 / 주소
Alacritech, Inc.
대리인 / 주소
Silicon Edge Law Group LLP
인용정보
피인용 횟수 :
130인용 특허 :
106
초록▼
A network interface device provides a fast-path that avoids most host TCP and IP protocol processing for most messages. The host retains a fallback slow-path processing capability. In one embodiment, generation of a response to a TCP/IP packet received onto the network interface device is accelerate
A network interface device provides a fast-path that avoids most host TCP and IP protocol processing for most messages. The host retains a fallback slow-path processing capability. In one embodiment, generation of a response to a TCP/IP packet received onto the network interface device is accelerated by determining the TCP and IP source and destination information from the incoming packet, retrieving an appropriate template header, using a finite state machine to fill in the TCP and IP fields in the template header without sequential TCP and IP protocol processing, combining the filled-in template header with a data payload to form a packet, and then outputting the packet from the network interface device by pushing a pointer to the packet onto a transmit queue. A transmit sequencer retrieves the pointer from the transmit queue and causes the corresponding packet to be output from the network interface device.
대표청구항▼
The invention claimed is: 1. A network interface device for use with a central processing unit (CPU) of a host computer, the network interface device comprising: protocol processing hardware that receives a network packet, validates a Transmission Control Protocol (TCP) checksum of the packet and a
The invention claimed is: 1. A network interface device for use with a central processing unit (CPU) of a host computer, the network interface device comprising: protocol processing hardware that receives a network packet, validates a Transmission Control Protocol (TCP) checksum of the packet and analyzes media-access control (MAC), Internet Protocol (IP) and TCP headers of the packet to determine source and destination MAC addresses, IP addresses and TCP ports for the packet; and a processor accessing interface memory that receives a TCP control block from the host, the TCP control block being at least in part identified by an IP address and TCP port of the host and an IP address and TCP port of a remote host, the memory storing a state of the TCP control block, the IP address and TCP port of the host, the IP address and TCP port of the remote host and source and destination MAC addresses for the network interface device, the processor adapted to update the state of the TCP control block when the IP addresses and TCP ports of the validated packet match the IP addresses and TCP ports of the TCP control block. 2. The network interface device of claim 1, wherein the processor is contained in a network interface card that is coupled to the host computer. 3. The network interface device of claim 1, wherein the processor is integrated into the host computer. 4. The network interface device of claim 1, further comprising a mechanism to transfer the state of the TCP control block, the mechanism including a data structure. 5. The network interface device of claim 1, further comprising a mechanism to transfer control of the TCP control block, to the host CPU. 6. The network interface device of claim 1, further comprising a mechanism to compare the IP addresses and TCP ports of the packet with the IP addresses and TCP ports of the TCP control block. 7. The network interface device of claim 1, further comprising a hash table stored in the memory and containing a hash value of the IP addresses and TCP ports of the TCP control block. 8. The network interface device of claim 1, further comprising a mechanism to create a second network packet corresponding to the TCP control block for transmitting the second network packet to the remote host. 9. A method for network communication by a host computer having a central processing unit (CPU) and a network interface device, the method comprising: receiving, at the network device, a network packet; processing, by the protocol processing hardware of the network interface device, control information of the packet, including validating a Transmission Control Protocol (TCP) checksum of the packet and analyzing media-access control (MAC), Internet Protocol (IP) and TCP headers of the packet to determine source and destination MAC addresses, IP addresses and TCP ports for the packet; receiving, by the network interface device from the a host, a TCP control block, IP source and destination addresses, TCP source and destination ports and a MAC address that correspond to the TCP control block; storing, on the network interface device, the TCP control block, and the IP source and destination addresses, TCP source and destination ports and the MAC address that correspond to the TCP control block; and updating, by the network interface device, a state of the TCP control block when the IP addresses and TCP ports of the validated packet match the IP addresses and TCP ports that correspond to the TCP control block. 10. The method of claim 9, further comprising transferring, from the network interface device to the host, the state of the TCP control block. 11. The method of claim 9, further comprising receiving, by the network interface device from the host, a number for the TCP control block. 12. The method of claim 9, further comprising comparing a hash of the IP addresses and TCP ports of the packet with a hash table that includes a hash of the IP addresses and TCP ports of the TCP control block. 13. The method of claim 9, further comprising creating a second network packet that corresponds to the TCP control block for transmitting the second network packet to the remote host. 14. The method of claim 9, further comprising sending, from the network interface device to the host, data from the packet without the headers of the packet. 15. The method of claim 9, further comprising receiving, by the network interface device from the host, a location in host memory for storing data from the packet without the headers of the packet. 16. A method for network communication by a host computer having a central processing unit (CPU) and a network interface device, the method comprising: receiving, at the network interface device, a network packet; processing, by protocol processing hardware of the network interface device, control information of the packet, including calculating a Transmission Control Protocol (TCP) checksum of the packet and analyzing media-access control (MAC), Internet Protocol (IP) and TCP headers of the packet to determine source and destination MAC addresses, IP addresses and TCP ports for the packet; storing, on the network interface device, a TCP control block and IP source and destination addresses, TCP source and destination ports and a MAC address that correspond to the TCP control block; and transferring, from the network interface device to the host, the TCP control block, when the IP addresses and TCP ports of the packet match the IP addresses and TCP ports that correspond to the TCP control block, and an exception condition exists. 17. The method of claim 16, wherein the exception condition includes determining that the packet is a FIN packet. 18. The method of claim 16, wherein the exception condition includes determining that the packet is out of order compared to another packet that corresponds to the TCP control block. 19. The method of claim 16, wherein the exception condition includes determining that the packet is a fragmented TCP packet. 20. The method of claim 16, wherein the exception condition includes determining that the checksum is invalid.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (106)
Chan Kurt ; Black Alistair D., Accelerator fiber channel hub and protocol.
Nogales Charles Edward ; Sooy William Glenn, Apparatus for fibre channel transmission having interface logic, buffer memory, multiplexor/control device, fibre channe.
Silverstein Alan ; Golson William G. ; Mallal Munir, Apparatus for parallel client/server communication having data structures which stored values indicative of connection.
Chesson Greg (Palo Alto CA) Choi In-whan (Mountain View CA) Lin Yuh-wen (San Jose CA) Smith Jeannine M. (Menlo Park CA) Yau Daniel (Los Altos CA) Young Desmond W. (Campbell CA), Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque regis.
Wang Frank ; Robertson Jeffrey S. ; Gopal Nuggehalli N. ; Pheterson Charles J. ; Goldflam Michael S., Client/server data traffic delivery system and method.
Andrews Lawrence P. (Boca Raton FL) Arias Derrick (Coral Springs FL) Mandalia Baiju D. (Boca Raton FL) Ortega Oscar E. (Miami Beach FL) Sinibaldi John C. (Pompano Beach FL) Williams Kevin B. (North L, Direct memory access unit for transferring data between processor memories in multiprocessing systems.
Bilansky Mark Alan ; Huang Kevin Chuang-Chi ; Ryder James William ; Stavana Edward James, Dual communication services interface for distributed transaction processing.
Sartore Ronald H. (San Diego CA) Mobley Kenneth J. (Colorado Springs CO) Carrigan Donald G. (Monument CO) Jones Oscar Frederick (Colorado Springs CO), Enhanced DRAM with all reads from on-chip cache and all writers to memory array.
Panner Bryan K. ; Hoskins Timothy Lee ; Napolitano Richard, File array communications interface for communicating between a host computer and an adapter.
Cheng Yu-Ping (San Jose CA) Hitz David (Sunnyvale CA), High-performance non-volatile RAM protected write cache accelerator system employing DMA and data transferring scheme.
Gates Stillman F. ; Suri Salil, Host adapter capable of simultaneously transmitting and receiving data of multiple contexts between a computer bus and peripheral bus.
Gates Stillman F. ; Suri Salil, Host adapter having paged payload buffers for simultaneously transferring data between a computer bus and a peripheral bus.
Laurence B. Boucher ; Stephen E. J. Blightman ; Peter K. Craft ; David A. Higgen ; Clive M. Philbrick ; Daryl D. Starr, Intelligent network interface device and system for accelerated communication.
Boucher Laurence B. ; Blightman Stephen E. J. ; Craft Peter K. ; Higgen David A. ; Philbrick Clive M. ; Starr Daryl D., Intelligent network interface system method for protocol processing.
Dally William J. (Framingham MA) Chien Andrew A. (Urbana IL) Horwat Waldemar P. (Hoffman Estates IL) Fiske Stuart (Montreal CAX), Message-driven processor in a concurrent computer.
Shimon Muller ; Denton E. Gentry, Jr. ; Linda T. Cheng ; John E. Watkins, Method and apparatus for data re-assembly with a high performance network interface.
Richter Roger K. (Round Rock TX) Stark ; Jr. David R. (Austin TX), Method and apparatus for facilitating communication in a multilayer communication architecture via a dynamic communicati.
Hamilton Graham ; Kessler Peter B. ; Nisewanger Jeffrey D. ; Bishop Alan ; Pelegri-Llopart Eduardo, Method and apparatus for generically handling diverse protocol method calls in a client/server computer system.
Stakuis Chrisopher J. ; Stearns Kevin M., Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing syst.
Delp Gary S. (Rochester MN) Slane Albert A. (Orocono MN), Method and system for enhanced communication in a multisession packet based communication system.
Shobu Toshifumi (Atsugi JPX) Ogasawara Fumihiro (Ebina JPX), Method for selectively using one or two communication channel by a transmitting data terminal based on data type and cha.
Lowe Glen H., Method of preventing packet loss during transfers of data packets between a network interface card and an operating system of a computer.
Cloud Donald M. (Jamestown RI) Kelly Kevin F. (East Greenwich RI) Bonaccorsi David P. (Warwick RI) Weeks Mark K. (Berkley MA), Methods and apparatus for implementing a message driven processor in a client-server environment.
Hitz David (Sunnyvale CA) Schwartz Allan (Saratoga CA) Lau James (Cupertino CA) Harris Guy (Mountain View CA), Multiple facility operating system architecture.
Minami John Shigeto ; Koyama Ryo ; Johnson Michael Ward ; Shinohara Masaru ; Poff Thomas C. ; Burkes Daniel F., Multiple network protocol encoder/decoder and data processor.
Flanders John A. ; Ross Ryan T. ; Townsend William D. ; Lamaire Thomas A. ; Radogna Thomas V. ; Bailey Brian W. ; Sousa Marc D., Multiple protocol support.
Gentry ; Jr. Denton E., Network device driver performing initial packet processing within high priority hardware interrupt service routine and then finishing processing within low priority software interrupt service routine.
Isfeld Mark S. (San Jose CA) Mitchell Bruce W. (San Jose CA) Seaman Michael J. (Mountain View CA) Mallory Tracy D. (San Jose CA) Arunkumar Nagaraj (San Jose CA), Network intermediate system with message passing architecture.
Bach Maurice J. (Haifa ILX) Hoppes Robert B. (Hyde Park NY) Meltzer Clifford B. (Ossining NY) Parchinski Kenneth J. (Wappingers Falls NY) Whelan Gary J. (Rhinebeck NY), Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier.
Narad Charles E. ; Fall Kevin ; MacAvoy Neil ; Shankar Pradip ; Rand Leonard M. ; Hall Jerry J., Packet processing system including a policy engine having a classification unit.
Row Edward J. (Mountain View CA) Boucher Laurence B. (Saratoga CA) Pitts William M. (Los Altos CA) Blightman Stephen E. (San Jose CA), Parallel I/O network file server architecture.
Reddin Timothy G. (Stockport GB3) Walsh David S. (Rossendale GB3) Round Jeremy S. (Warrington GB3), Parallel computer having MAC-relay layer snooped transport header to determine if a message should be routed directly to.
Boucher Laurence B. ; Blightman Stephen E. J. ; Craft Peter K. ; Higgen David A. ; Philbrick Clive M. ; Starr Daryl D., Passing a communication control block from host to a local device such that a message is processed on the device.
Boucher Laurence B. ; Blightman Stephen E. J. ; Craft Peter K. ; Higgen David A. ; Philbrick Clive M. ; Starr Daryl D., Passing a communication control block from host to a local device such that a message is processed on the device.
Latif Farrukh A. (Malvern PA) Stevens Michael D. (Paoli PA) Moysey John A. (Malvern PA) Shinkarovsky Michael (Harleysville PA) Nguyen Hung (Downingtown PA) Dale Michele Z. (Audubon PA), Programmable multiple I/O interface controller.
Hausman Richard (Soquel CA) Sherer Paul W. (Sunnyvale CA) Rivers James P. (Sunnyvale CA) Zikmund Cynthia (Boulder Creek CA) Connery Glenn W. (Sunnyvale CA) Strohl Niles E. (Tracy CA) Reid Richard S. , Programmed I/O ethernet adapter with early interrupts for accelerating data transfer.
Seno Shoichiro (Kanagawa-ken JPX) Ideguchi Tetsuo (Kanagawa-ken JPX), Protocol parallel processing apparatus having a plurality of CPUs allocated to process hierarchical protocols.
Beach Robert (Los Altos CA) Bryers Mark (San Jose CA) Cox Casey (Palo Alto CA) Fall Richard (Palo Alto CA) Finn Norman (San Jose CA) Laird Douglas (San Jose CA), Protocol processor.
Davis Gordon T. (Boca Raton FL) Landa Robert E. (Boca Raton FL) Mandalia Baiju D. (Boca Raton FL) van den Berg Jan W. (Boca Raton FL) Van Voorhis David C. (Boca Raton FL), Specialized communications processor for layered protocols.
David A. Burns ; Benjamin L. Dagana ; Christopher J. Harrer ; Dung M. Luu ; Todd A. Matters ; Michael S. Miles ; Barry E. Blust ; Thomas J. Schneider ; Thomas V. Connors, Split data path distributed network protocol.
Yokoyama Tatsuya (Sagamihara JPX) Hirata Tetsuhiko (Yokohama JPX) Mizutani Mika (Tokyo JPX) Takada Osamu (Sagamihara JPX), System for executing high speed communication protocol processing by predicting protocol header of next frame utilizing.
Delp Gary S. ; Leichty Philip L. ; Slane Albert A., System for minimizing latency data reception and handling data packet error if detected while transferring data packet.
Pardillos Jacky (Plaisir FRX), System for network transmission using a communication co-processor comprising a microprocessor to implement protocol lay.
Denton E. Gentry, Jr., System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction.
Anand Sanjay ; Brandon Kyle ; Srinavas Nk ; Hyder Jameel, System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed.
Toby D. Bennett ; Donald J. Davis ; Jonathan C. Harris ; Ian D. Miller, System for transmitting and receiving data within a reliable communications protocol by concurrently processing portions of the protocol suite.
Jolitz William Frederick ; Lawson Matthew Todd ; Jolitz Lynne Greer, TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols.
Vange, Mark; Plumb, Mark; Kouts, Michael; Wilson, Glenn Sydney; Thornton, Paul Randy; McFate, Marlin Popeye; Shaughnessy, Robert John, Dynamic network link acceleration for network including wireless communication devices.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Fast-path apparatus for transmitting data corresponding to a TCP connection.
Rothstein, Jesse Abraham; Seguin, Kevin Michael; Mortensen, William Henry; Leone, Alexander Christian, Flow deduplication across a cluster of network monitoring devices.
Philbrick, Clive M.; Craft, Peter K., Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device.
Philbrick, Clive M.; Craft, Peter K., Freeing transmit memory on a network interface device prior to receiving an acknowledgment that transmit data has been received by a remote device.
Parsons, Scott; Taylor, David E.; Schuehler, David Vincent; Franklin, Mark A.; Chamberlain, Roger D., High speed processing of financial information using FPGA devices.
Michailidis, Dimitrios; Noureddine, Wael; Marti, Felix A.; Eiriksson, Asgeir Thor, Intelligent network adaptor with adaptive direct data placement scheme.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Intelligent network interface device and system for accelerated communication.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Intelligent network interface system and method for accelerated protocol processing.
Boucher,Laurence B.; Philbrick,Clive M.; Starr,Daryl D.; Blightman,Stephen E. J.; Craft,Peter K.; Higgen,David A., Intelligent network interface system and method for accelerated protocol processing.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Intelligent network interface system and method for protocol processing.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Intelligent network interface system and method for protocol processing.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Method and apparatus for distributing network traffic processing on a multiprocessor computer.
Taylor, David E.; Parsons, Scott; Whatley, Jeremy Walter; Bradley, Richard; Gyang, Kwame; DeWulf, Michael, Method and apparatus for high-speed processing of financial market depth data.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Method and apparatus for processing received network packets on a network interface for a computer.
Sharp, Robert O.; Keels, Kenneth G.; Hausauer, Brian S.; Lacombe, John S., Method and apparatus for using a single multi-function adapter with different operating systems.
Sharp, Robert O.; Keels, Kenneth G.; Hausauer, Brian S.; Lacombe, John S., Method and apparatus for using a single multi-function adapter with different operating systems.
Sharp, Robert O.; Keels, Kenneth G.; Hausauer, Brian S.; Lacombe, John S., Method and apparatus for using a single multi-function adapter with different operating systems.
Craft, Peter K.; Philbrick, Clive M.; Boucher, Laurence B.; Higgen, David A., Method to synchronize and upload an offloaded network stack connection with a network stack.
Roll, Jonathan; Smith, Barbara; Freeman, Joel, Methods and apparatus for performing non-intrusive data link layer performance measurement in communication networks.
Roll, Jonathan; Smith, Barbara; Freeman, Joel, Methods and apparatus for performing non-intrusive network layer performance measurement in communication networks.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Network interface device that can offload data transfer processing for a TCP connection from a host CPU.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., Network interface device that can transfer control of a TCP connection to a host CPU.
Boucher,Laurence B.; Blightman,Stephen E. J.; Craft,Peter K.; Higgen,David A.; Philbrick,Clive M.; Starr,Daryl D., Obtaining a destination address so that a network interface device can write network data without headers directly into host memory.
Wu, Xue Jun; Braun, Nicholas Jordan; Deaguero, Joel Benjamin; Montague, Michael Kerber Krause; Khanal, Bhushan Prasad, Personalization of alerts based on network monitoring.
Craft, Peter K.; Philbrick, Clive M.; Boucher, Laurence B.; Starr, Daryl D.; Blightman, Stephen E. J.; Higgen, David A., Port aggregation for network connections that are offloaded to network interface devices.
Jha, Ashutosh K.; Danilak, Radoslav; Gyugyi, Paul J.; Maufer, Thomas A.; Nanda, Sameer; Rajagopalan, Anand; Sidenblad, Paul J., Processing data for a TCP connection using an offload unit.
Craft, Peter K.; Philbrick, Clive M.; Boucher, Laurence B.; Higgen, David A., Protocol stack that offloads a TCP connection from a host computer to a network interface device.
Vange, Mark; Plumb, Marc; Kouts, Michael; Wilson, Glenn Sydney, System and method for implementing application functionality within a network infrastructure.
Vange, Mark; Plumb, Marc; Kouts, Michael; Wilson, Glenn Sydney, System and method for implementing application functionality within a network infrastructure.
Vange, Mark; Plumb, Marc; Kouts, Michael; Wilson, Glenn Sydney, System and method for implementing application functionality within a network infrastructure.
Vange, Mark; Plumb, Mark; Kouts, Michael; Wilson, Glenn Sydney, System and method for implementing application functionality within a network infrastructure.
Vange, Mark; Plumb, Mark; Kouts, Michael; Wilson, Glenn Sydney, System and method for implementing application functionality within a network infrastructure.
Vange, Mark; Plumb, Mark; Kouts, Michael; Wilson, Glenn Sydney, System and method for implementing application functionality within a network infrastructure.
Vange, Mark; Plumb, Marc; Kouts, Michael; Wilson, Glenn Sydney, System and method for implementing application functionality within a network infrastructure including a wireless communication link.
Vange, Mark; Plumb, Marc; Kouts, Michael; Wilson, Glenn Sydney, System and method for implementing application functionality within a network infrastructure including wirelessly coupled devices.
Philbrick, Clive M.; Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Starr, Daryl D., TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., TCP/IP offload network interface device.
Boucher, Laurence B.; Blightman, Stephen E. J.; Craft, Peter K.; Higgen, David A.; Philbrick, Clive M.; Starr, Daryl D., TCP/IP offload network interface device.
Jha, Ashutosh K.; Danilak, Radoslav; Gyugyi, Paul J.; Maufer, Thomas A.; Nanda, Sameer; Rajagopalan, Anand; Sidenblad, Paul J., Transmitting commands and information between a TCP/IP stack and an offload unit.
Rajagopalan, Anand; Danilak, Radoslav; Gyugyi, Paul J.; Jha, Ashutosh K.; Maufer, Thomas A.; Nanda, Sameer; Sidenblad, Paul J., Uploading TCP frame data to user buffers and buffers in system memory.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.