Source: https://patents.google.com/patent/US7167927B2/en
Timestamp: 2018-06-23 18:28:16
Document Index: 24041612

Matched Legal Cases: ['§120', '§120', '§120', '§119', '§120', '§119', '§120']

US7167927B2 - TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism - Google Patents
US7167927B2
US7167927B2 US10085802 US8580202A US7167927B2 US 7167927 B2 US7167927 B2 US 7167927B2 US 10085802 US10085802 US 10085802 US 8580202 A US8580202 A US 8580202A US 7167927 B2 US7167927 B2 US 7167927B2
US10085802
US20020095519A1 (en )
This application claims the benefit under 35 U.S.C. §120 of U.S. patent application Ser. No. 09/464,283, filed Dec. 15, 1999, which in turn claims the benefit under 35 U.S.C. §120 of U.S. patent application Ser. No. 09/439,603, filed Nov. 12, 1999, which in turn: 1) claims the benefit under 35 U.S.C. §120 of U.S. patent application Ser. No. 09/067,544, filed Apr. 27, 1998, and 2) claims the benefit under 35 U.S.C. §119(e)(1) of Provisional Application Ser. No. 60/061,809, filed Oct. 14, 1997.
This application also claims the benefit under 35 U.S.C. §120 of U.S. patent application Ser. No. 09/384,792, filed Aug. 27, 1999, which in turn claims the benefit under 35 U.S.C. §119(e)(1) of Provisional Application Ser. No. 60/098,296, filed Aug. 27, 1998.
This application also claims the benefit under 35 U.S.C. §120 of U.S. patent application Ser. No. 09/802,426, filed Mar. 9, 2001. The subject matter of all of the above-identified patent applications (including the subject matter in the Microfiche Appendix of U.S. application Ser. No. 09/464,283), and of the two above-identified provisional applications, is incorporated by reference herein.
System 1 includes a first device 2 (in this case, a server) that both receives data from and transmits data to a second device 3 (in this case, a storage array) via a high-speed bidirectional full-duplex network link 4. Bidirectional network link 4 employs one particular transport layer protocol and one particular network layer protocol. In the present example, the transport layer protocol is the TCP protocol, the network layer protocol is the IP protocol, and bidirectional network link 4 is a gigabit ethernet network connection. Storage array 3 in this example includes a RAID controller 5 and a plurality of disc devices 6–9. Disc devices 6–9 are coupled via Small Computer System Interface (SCSI) links or Fibre Channel (FC) links 11–14 to the RAID controller. Relatively large amounts of network information pass over gigabit ethernet link 4 in accordance with the IP Storage protocol (also called “ISCSI”) both from storage array 3 and to server 2 as well as from server 2 and to storage array 3.
FIG. 2 is a simplified block diagram that illustrates TCP/IP offloading performed by INID 10. A CPU 20 executes protocol stack software stored in memory 21. The protocol stack is illustrated as stack 22 involving a MAC layer, an IP layer, a TCP layer, and an ISCSI layer. It is to be understood that CPU 20 and stack 22 are part of INID 10 where the INID 10 is coupled to another processor of server 2, or alternatively CPU 20 and stack 22 are part of the remainder of server 2 to which INID 10 is coupled. In either case, stack 22 performs a significant amount (in some cases, substantially all) of the TCP/IP protocol processing under certain infrequently occurring and/or complex situations (this relatively slow protocol processing path is called the “slow-path”), whereas the dedicated accelerator portion of INID 10 performs substantially all TCP/IP protocol processing under the remaining situations (this relatively fast protocol processing path is called the “fast-path”). Infrequently occurring situations include, in one particular example, situations in which TCP packets are received out of sequence.
FIG. 4 is a listing of code for software finite state machine (FSM) 36. In the code, “Q_XMTPRIIC” designates a high-priority transmit queue used for ACKs (another lower-priority transmit queue is used to transmit ordinary data packets). The structure and operation of the FSM is evident from the code itself. The functions performed by the various instructions in the code are generally evident from the names of the instructions themselves. For additional information on the instructions, see the description of the instruction set found in Microfiche Appendix B of U.S. patent application Ser. No. 09/464,283 (the subject matter of which is incorporated herein by reference).
Finite state machine 36 covers both TCP and IP protocol processing and thereby “flattens” protocol processing such that the TCP ACK is generated without having to wait for sequential protocol processing of various protocol processing layers. ACKs generated are handed in a fairly direct manner to the hardware interfacing to the physical ethernet link without having to go through separate lower level P and MAC processing layers.
The CD Appendix includes the following: 1) folder CPU, 2) folder XCV, 3) folder INCLUDE, 4) file fsma.txt, and 5) file fsms.txt. Folder CPU contains a hardware description of processor 28 in verilog. Folder XCV contains files that start with “xmt” and files that start with “rcv”. The “xmt” files are a hardware description of transmit sequencer 27. The “rcv” files are a hardware description of a receive processor that in some embodiments is used in place of and performs the functions of receive sequencer 26. The file that ends in “.mal” is a program of instructions executed by the receive processor described by the verilog code. Folder INCLUDE is a definition file for the verilog code in folders CPU and XCV. The files fsma.txt and fsms.txt together are code for the finite state machine that executes on processor 28. A hardware description in verilog of queue manager 29 is found in U.S. patent application Ser. No. 09/416,925 (the subject matter of which is incorporated herein by reference).
US10085802 1997-10-14 2002-02-26 TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism Active 2024-12-27 US7167927B2 (en)
US10085802 US7167927B2 (en) 1997-10-14 2002-02-26 TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US11656809 US7694024B2 (en) 1997-10-14 2007-01-22 TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US09464283 Continuation US6427173B1 (en) 1997-10-14 1999-12-15 Intelligent network interfaced device and system for accelerated communication
US20020095519A1 true US20020095519A1 (en) 2002-07-18
US7167927B2 true US7167927B2 (en) 2007-01-23
US10085802 Active 2024-12-27 US7167927B2 (en) 1997-10-14 2002-02-26 TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US11656809 Active 2019-10-28 US7694024B2 (en) 1997-10-14 2007-01-22 TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US20050122993A1 (en) * 2003-04-23 2005-06-09 Sunay Tripathi Method and system for transmitting packet chains
US20050226147A1 (en) * 2004-04-06 2005-10-13 Oki Electric Industry Co., Ltd. Relay device
CN104040990A (en) * 2011-11-29 2014-09-10 瑞科网信科技有限公司 Accelerating service processing using fast path TCP
EP3078175A4 (en) * 2013-12-04 2017-08-16 Db Networks Inc Ordering traffic captured on a data connection
CN105517047A (en) * 2015-11-26 2016-04-20 京信通信技术(广州)有限公司 Base station traffic shaping method and system
US7426579B2 (en) 2002-09-17 2008-09-16 Broadcom Corporation System and method for handling frames in multiple stack environments
"Two-Way TCP Traffic Over Rate Controlled Channels: Effects and Analysis", by Kalampoukas et al., IEEE Transaactions on Networking, vol. 6, No. 6, Dec. 1998.
Andrew S. Tanenbaum, Computer Networks, Third Edition, 1996, ISBN 0-13-349945-6, (entire book).
Article from Rice University entitled "LRP: A New Network Subsystem Architecture for Server Systems", by Peter Druschel and Gaurav Banga, Rice University, Oct. 1996, 15 pages.
Beach, Bob, IEEE Computer Society Press publication entitled, "UltraNet: An Architecture for Gigabit Networking", from 15<SUP>th </SUP>Conference on Local Computer Networks, 18 pages. Sep. 30-Oct. 3, 1990.
EETimes article "Tuner for Toshiba, Toshiba Taps iReady for Internet Tuner", by David Lammers, 2 pages, printed Nov. 2, 1998.
EETimes article entitled Enterprise System Uses Flexible Spec, dated Aug. 10, 1998, printed Nov. 25, 1998.
Gigabit Ehternet Technical Brief, Achieving End-to-End Performance. Alteon Networks, Inc., First Edition, Sep. 1996.
Internet pages entitled "DART: Fast Application Level Networking via Data-Copy Avoidance," by Robert J. Walsh, printed Jun. 3, 1999.
Internet pages entitled "Hardwa re Assisted Protocol Processing", (which Eugene Feinberg is working on) , 1 page, printed Nov. 25, 1998.
Internet pages entitled "Smart Ethernet Network Interface Cards", which Berend Ozceri is developing, printed Nov. 25, 1998.
Internet pages entitled iReady Products, printed Nov. 25, 1998.
Internet pages entitled Technical White Paper-Xpoint's Disk to LAN Acceleration Solution for Windows NT Server, printer Jun. 5, 1997.
Internet pages from iReady Products, web sitehttp://www.ireadyco.com/products,html, 2 pages, downloaded Nov. 25 1998.
Internet pages of InterProphet entitled "Freuently Asked Questions", by Lynne Jolitz, printed Jun. 14, 2000.
Internet pages of Xaqti corporation entitled "GigaPower Protocol Processor Product Review," printed Nov. 25, 1998.
Internet RFC/STD/FYI/BCP Archives articles with heading "RFC2140" entitled "TCP Control Block Interdependence", web address http://www.faqs.org/rfcs/rfc2140.html, 9 pages, printed Sep. 20, 2002.
Jato Technologies article entitled Network Accelerator Chip Architecture, twelve-slide presentation, printed Aug. 19, 1998.
U.S. Appl. No. 08/964,304, by Napolitano, et al., entitled "File Array Storage Architecture", filed Nov. 4, 1997.
U.S. Appl. No. 60/053,240, filed, Jul. 18, 1997, Jolitz et al.
VIA Technologies, Inc. article entitled "VT8501 Apollo MVP4", pp. i-vi, 1-11, cover and copyright page, revision 1.3, Feb. 1, 2000.
US7397816B2 (en) * 2004-04-06 2008-07-08 Oki Electric Industry Co., Ltd. Relay device
CN104040990B (en) * 2011-11-29 2017-03-29 瑞科网信科技有限公司 Use Quick Path tcp accelerate service processing method and system
US20020095519A1 (en) 2002-07-18 application
US20070118665A1 (en) 2007-05-24 application
US7694024B2 (en) 2010-04-06 grant
US7124205B2 (en) 2006-10-17 Network interface device that fast-path processes solicited session layer read commands
US7594002B1 (en) 2009-09-22 Hardware-accelerated high availability integrated networked storage system
US20030200284A1 (en) 2003-10-23 Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PHILBRICK, CLIVE M.;BOUCHER, LAURENCE B.;BLIGHTMAN, STEPHEN E.J.;AND OTHERS;REEL/FRAME:012658/0464;SIGNING DATES FROM 20020212 TO 20020221
2010-10-13 SULP Surcharge for late payment