CA2548966A1 - Increasing tcp re-transmission process speed - Google Patents
Increasing tcp re-transmission process speed Download PDFInfo
- Publication number
- CA2548966A1 CA2548966A1 CA002548966A CA2548966A CA2548966A1 CA 2548966 A1 CA2548966 A1 CA 2548966A1 CA 002548966 A CA002548966 A CA 002548966A CA 2548966 A CA2548966 A CA 2548966A CA 2548966 A1 CA2548966 A1 CA 2548966A1
- Authority
- CA
- Canada
- Prior art keywords
- tcp
- ack
- duplicate
- connection
- protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Ultra Sonic Daignosis Equipment (AREA)
- Iron Core Of Rotating Electric Machines (AREA)
Abstract
An RNIC implementation that performs direct data placement to memory where all segments of a particular connection are aligned, or moves data through reassembly buffers where all segments of a particular connection are non-aligned. The type of connection that cuts-through without accessing the reassembly buffers is referred to as a "Fast" connection because it is highly likely to be aligned, while the other type is referred to as a "Slow"
connection. When a consumer establishes a connection, it specifies a connection type (S2). The connection type can change from Fast to Slow and back. The invention reduces memory bandwidth, latency, error recovery using TCP retransmit and provides for a "graceful recovery" from an empty receive queue. The implementation also may conduct CRC validation (S11, S6) for a majority of inbound DDP segments in the Fast connection before sending a TCP
acknowledgement (Ack) confirming segment reception.
connection. When a consumer establishes a connection, it specifies a connection type (S2). The connection type can change from Fast to Slow and back. The invention reduces memory bandwidth, latency, error recovery using TCP retransmit and provides for a "graceful recovery" from an empty receive queue. The implementation also may conduct CRC validation (S11, S6) for a majority of inbound DDP segments in the Fast connection before sending a TCP
acknowledgement (Ack) confirming segment reception.
Claims (11)
1. A method of increasing transmission control protocol (TCP) re-transmission process speed, the method comprising the steps of:
generating a first duplicate TCP acknowledgement (Ack) covering a received TCP
segment that is determined to be valid by TCP and was dropped by TCP based on an upper layer protocal (ULP) decision (S9); and transmitting the first duplicate TCP Ack.
generating a first duplicate TCP acknowledgement (Ack) covering a received TCP
segment that is determined to be valid by TCP and was dropped by TCP based on an upper layer protocal (ULP) decision (S9); and transmitting the first duplicate TCP Ack.
2. The method of claim 1, wherein the ULP includes at least one of: a marker with protocol data unit alignment (MPA) protocol, a direct data placement (DDP) protocol, and a remote direct memory access (RDMA) protocol.
3. The method of claim 1, wherein the first duplicate TCP Ack is generated for a TCP
segment regardless of whether the TCP segment is in-order or out-of order.
segment regardless of whether the TCP segment is in-order or out-of order.
4. The method of claim 1, wherein the first duplicate TCP Ack is generated even where a next in-order TCP segment has not been received.
5. The method of claim I, further comprising the step of generating a second duplicate TCP
acknowledgement (Ack) covering a next out-of-order received TCP segment and transmitting the second duplicate TCP Ack.
acknowledgement (Ack) covering a next out-of-order received TCP segment and transmitting the second duplicate TCP Ack.
6. A system for increasing transmission control protocol (TCP) re-transmission process speed, the system comprising:
a TCP acknowledgement (Ack) generator to generate a first duplicate TCP Ack covering a received TCP segment that is determined to be valid by TCP and was dropped by TCP based on an upper layer protocal (LTLP) decision.
a TCP acknowledgement (Ack) generator to generate a first duplicate TCP Ack covering a received TCP segment that is determined to be valid by TCP and was dropped by TCP based on an upper layer protocal (LTLP) decision.
7. The system of claim 6, further comprising means for transmitting the first duplicate TCP
Ack.
Ack.
8. The system of claim 6, wherein the ULP includes at least one of: a marker with protocol data unit alignment (MPA) protocol, a direct data placement (DDP) protocol, and a remote direct memory access (RDMA) protocol.
9. The system of claim 6, wherein the generator generates the first duplicate TCP Ack for a TCP segment regardless of whether the TCP segment is in-order or out-of-order.
10. The system of claim 6, wherein the generator generates the first duplicate TCP Ack even where a next in-order TCP segment has not been received.
11. The system of claim 6, further comprising a TCP Ack generator for generating a second duplicate TCP acknowledgement (Ack) covering a next out-of-order received TCP
segment and a means for transmitting the second duplicate TCP Ack.
segment and a means for transmitting the second duplicate TCP Ack.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/733,630 US7177941B2 (en) | 2003-12-11 | 2003-12-11 | Increasing TCP re-transmission process speed |
US10/733,630 | 2003-12-11 | ||
PCT/US2004/040758 WO2005060580A2 (en) | 2003-12-11 | 2004-12-06 | Increasing tcp re-transmission process speed |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2548966A1 true CA2548966A1 (en) | 2005-07-07 |
CA2548966C CA2548966C (en) | 2010-06-01 |
Family
ID=34653141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA2548966A Active CA2548966C (en) | 2003-12-11 | 2004-12-06 | Increasing tcp re-transmission process speed |
Country Status (9)
Country | Link |
---|---|
US (1) | US7177941B2 (en) |
EP (1) | EP1702273B1 (en) |
JP (1) | JP4583383B2 (en) |
KR (1) | KR100974045B1 (en) |
CN (1) | CN100520758C (en) |
AT (1) | ATE470187T1 (en) |
CA (1) | CA2548966C (en) |
DE (1) | DE602004027543D1 (en) |
WO (1) | WO2005060580A2 (en) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7757232B2 (en) * | 2003-08-14 | 2010-07-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for implementing work request lists |
US7539780B2 (en) * | 2003-12-01 | 2009-05-26 | International Business Machines Corporation | Asynchronous completion notification for an RDMA system |
JP4755596B2 (en) * | 2003-12-11 | 2011-08-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Data transfer error check |
US8065439B1 (en) * | 2003-12-19 | 2011-11-22 | Nvidia Corporation | System and method for using metadata in the context of a transport offload engine |
US20060039538A1 (en) * | 2004-08-23 | 2006-02-23 | Minnis John A | "Software only" tool for testing networks under high-capacity, real-world conditions |
US7761608B2 (en) * | 2004-09-01 | 2010-07-20 | Qlogic, Corporation | Method and system for processing markers, data integrity fields and digests |
US7464174B1 (en) * | 2005-03-07 | 2008-12-09 | Pericom Semiconductor Corp. | Shared network-interface controller (NIC) using advanced switching (AS) turn-pool routing field to select from among multiple contexts for multiple processors |
US8458280B2 (en) * | 2005-04-08 | 2013-06-04 | Intel-Ne, Inc. | Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations |
US20060259570A1 (en) * | 2005-05-13 | 2006-11-16 | Microsoft Corporation | Method and system for closing an RDMA connection |
US7554976B2 (en) * | 2005-05-13 | 2009-06-30 | Microsoft Corporation | Method and system for transferring a packet stream to RDMA |
US7761619B2 (en) * | 2005-05-13 | 2010-07-20 | Microsoft Corporation | Method and system for parallelizing completion event processing |
US8316129B2 (en) * | 2005-05-25 | 2012-11-20 | Microsoft Corporation | Data communication coordination with sequence numbers |
US20070008989A1 (en) * | 2005-06-30 | 2007-01-11 | Intel Corporation | Packet processing |
US20070091900A1 (en) * | 2005-10-20 | 2007-04-26 | Nokia Corporation | Prioritized control packet delivery for transmission control protocol (TCP) |
KR100834431B1 (en) | 2006-01-02 | 2008-06-04 | 인터내셔널 비지네스 머신즈 코포레이션 | RNIC-BASED OFFLOAD OF iSCSI DATA MOVEMENT FUNCTION BY INITIATOR |
US7782905B2 (en) * | 2006-01-19 | 2010-08-24 | Intel-Ne, Inc. | Apparatus and method for stateless CRC calculation |
US7889762B2 (en) | 2006-01-19 | 2011-02-15 | Intel-Ne, Inc. | Apparatus and method for in-line insertion and removal of markers |
US8316156B2 (en) | 2006-02-17 | 2012-11-20 | Intel-Ne, Inc. | Method and apparatus for interfacing device drivers to single multi-function adapter |
US8078743B2 (en) * | 2006-02-17 | 2011-12-13 | Intel-Ne, Inc. | Pipelined processing of RDMA-type network transactions |
US7849232B2 (en) * | 2006-02-17 | 2010-12-07 | Intel-Ne, Inc. | Method and apparatus for using a single multi-function adapter with different operating systems |
US8798085B2 (en) * | 2006-06-20 | 2014-08-05 | Intel Corporation | Techniques to process network protocol units |
US8244825B2 (en) * | 2006-11-06 | 2012-08-14 | Hewlett-Packard Development Company, L.P. | Remote direct memory access (RDMA) completion |
US8271669B2 (en) * | 2007-05-30 | 2012-09-18 | Broadcom Corporation | Method and system for extended steering tags (STAGS) to minimize memory bandwidth for content delivery servers |
KR100932968B1 (en) * | 2008-02-14 | 2009-12-21 | 부산대학교 산학협력단 | How to handle TCPC retransmission by TOE without intervention of host computer |
US8296386B1 (en) | 2008-06-27 | 2012-10-23 | Qlogic, Corporation | Method and system for processing network packets |
US7979671B2 (en) * | 2008-07-28 | 2011-07-12 | CacheIQ, Inc. | Dual hash indexing system and methodology |
CN101873257B (en) * | 2010-06-04 | 2013-04-17 | 华为技术有限公司 | Method and system for receiving messages |
CN101917472B (en) * | 2010-08-12 | 2013-05-29 | 北京星网锐捷网络技术有限公司 | Method, device and equipment for recombining multi-link messages |
US8631277B2 (en) | 2010-12-10 | 2014-01-14 | Microsoft Corporation | Providing transparent failover in a file system |
US9331955B2 (en) | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US8856582B2 (en) | 2011-06-30 | 2014-10-07 | Microsoft Corporation | Transparent failover |
US20130067095A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Smb2 scaleout |
US8788579B2 (en) | 2011-09-09 | 2014-07-22 | Microsoft Corporation | Clustered client failover |
CN102694635B (en) * | 2012-06-07 | 2014-11-05 | 中国科学院声学研究所 | Method and device for generating and using selective acknowledgement (SACK) option |
TWI501082B (en) * | 2013-07-19 | 2015-09-21 | Inventec Corp | Computer system and operating method thereof |
US10110518B2 (en) * | 2013-12-18 | 2018-10-23 | Mellanox Technologies, Ltd. | Handling transport layer operations received out of order |
US10462711B2 (en) * | 2017-01-30 | 2019-10-29 | Futurewei Technologies, Inc. | Controlling TCP data transmission |
JP6376229B2 (en) * | 2017-02-09 | 2018-08-22 | オムロン株式会社 | COMMUNICATION SYSTEM, COMMUNICATION DEVICE, AND COMMUNICATION METHOD |
US10637828B2 (en) | 2017-09-17 | 2020-04-28 | Mellanox Technologies, Ltd. | NIC with stateful connection tracking |
CN108600194B (en) * | 2018-03-30 | 2021-03-23 | 上海兆芯集成电路有限公司 | Network interface controller |
US11075848B2 (en) | 2019-08-21 | 2021-07-27 | Hewlett Packard Enterprise Development Lp | Fast path for acknowledgement frames in wireless networks |
CN113572575A (en) * | 2021-07-16 | 2021-10-29 | 北京东方国信科技股份有限公司 | Self-adaptive data transmission method and system |
US11764934B2 (en) | 2021-12-06 | 2023-09-19 | Charter Communications Operating, Llc | Fast adaptive buffering of hierarchical TCP communications |
US11622004B1 (en) | 2022-05-02 | 2023-04-04 | Mellanox Technologies, Ltd. | Transaction-based reliable transport |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6882624B1 (en) * | 1998-04-09 | 2005-04-19 | Nokia Networks Oy | Congestion and overload control in a packet switched network |
KR100296077B1 (en) | 1999-05-14 | 2001-07-12 | 이계철 | Method for Transmission Control Protocol window size control in Asynchronous Transfer Mode |
US6198735B1 (en) * | 1999-05-20 | 2001-03-06 | Motorola, Inc. | Method for retransmitting a data packet in a packet network |
US7089312B2 (en) * | 2001-09-20 | 2006-08-08 | Intel Corporation | System and method for reducing retransmissions due to tunneled TCP-in-TCP communication in a network |
JP2003264579A (en) * | 2002-03-06 | 2003-09-19 | Ntt Docomo Inc | Packet transferring system, controller and mobile terminal to be used for the system, and packet transferring program |
US7295555B2 (en) * | 2002-03-08 | 2007-11-13 | Broadcom Corporation | System and method for identifying upper layer protocol message boundaries |
US7028094B2 (en) * | 2002-08-07 | 2006-04-11 | Nokia Corporation | Data communication method, system, and transmitter and receiver constituting the system |
WO2004017220A1 (en) * | 2002-08-19 | 2004-02-26 | Broadcom Corporation | One-shot rdma |
US8004981B2 (en) * | 2003-06-17 | 2011-08-23 | Cisco Technology, Inc. | Methods and devices for the coordination of flow control between a TCP/IP network and other networks |
US7315515B2 (en) * | 2003-09-30 | 2008-01-01 | Conexant Systems, Inc. | TCP acceleration system |
-
2003
- 2003-12-11 US US10/733,630 patent/US7177941B2/en active Active
-
2004
- 2004-12-06 WO PCT/US2004/040758 patent/WO2005060580A2/en active Application Filing
- 2004-12-06 KR KR1020067011235A patent/KR100974045B1/en active IP Right Grant
- 2004-12-06 JP JP2006543910A patent/JP4583383B2/en active Active
- 2004-12-06 DE DE602004027543T patent/DE602004027543D1/en active Active
- 2004-12-06 EP EP04813127A patent/EP1702273B1/en active Active
- 2004-12-06 CN CNB200480035603XA patent/CN100520758C/en active Active
- 2004-12-06 AT AT04813127T patent/ATE470187T1/en not_active IP Right Cessation
- 2004-12-06 CA CA2548966A patent/CA2548966C/en active Active
Also Published As
Publication number | Publication date |
---|---|
DE602004027543D1 (en) | 2010-07-15 |
CN100520758C (en) | 2009-07-29 |
JP4583383B2 (en) | 2010-11-17 |
ATE470187T1 (en) | 2010-06-15 |
WO2005060580A3 (en) | 2005-10-06 |
CA2548966C (en) | 2010-06-01 |
EP1702273A4 (en) | 2009-09-16 |
KR100974045B1 (en) | 2010-08-05 |
EP1702273A2 (en) | 2006-09-20 |
JP2007519315A (en) | 2007-07-12 |
KR20060131776A (en) | 2006-12-20 |
CN1997982A (en) | 2007-07-11 |
US20050132077A1 (en) | 2005-06-16 |
EP1702273B1 (en) | 2010-06-02 |
WO2005060580A2 (en) | 2005-07-07 |
US7177941B2 (en) | 2007-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2548966A1 (en) | Increasing tcp re-transmission process speed | |
CN1177498C (en) | Device and method for repeatly transmitting error block data of radio local loop | |
US9049017B2 (en) | Efficient TCP ACK prioritization in wireless networks | |
US8958440B2 (en) | System and method for identifying upper layer protocol message boundaries | |
US8724656B2 (en) | Methods and devices for transmitting data between storage area networks | |
WO2005060579A3 (en) | Reducing number of write operations relative to delivery of out-of-order rdma send messages | |
JP4898822B2 (en) | COMMUNICATION SYSTEM, COMMUNICATION DEVICE, COMMUNICATION METHOD | |
US8306062B1 (en) | Method and apparatus of adaptive large receive offload | |
CN106105141A (en) | Realize the delivery acceleration device of extension transmission control function | |
JP2003258938A (en) | Window based stall avoidance mechanism for high speed wireless communication system | |
US7055085B2 (en) | System and method for protecting header information using dedicated CRC | |
CN101895332B (en) | Method for controlling spatial TCP flow and controlling error | |
EP1586182B1 (en) | Methods and devices for transmitting data between storage area networks | |
US20050265352A1 (en) | Recovery from MSS change | |
WO2005062861A3 (en) | Method and system for rlp optimization | |
US20140341028A1 (en) | Reducing superfluous traffic in a network | |
EP1357721A2 (en) | System and method for identifying upper layer protocol message boundaries | |
WO2019005381A1 (en) | Reliable write command protocol for bluetooth le | |
EP1505759A2 (en) | Method and device for transmitting/receiving data using acknowledged transport layer protocols | |
KR100344979B1 (en) | Discard procedure for service data unit in radio link control | |
EP2289198B1 (en) | Receiving unit in a wireless communication network and method for generating an automatic repeat request feedback message | |
US7738493B2 (en) | Methods and devices for transmitting data between storage area networks | |
EP1734720B1 (en) | System and method for identifying upper layer protocol message boundaries | |
KR20150094435A (en) | Method of transmitting image data with short-term reliability | |
CN111200761A (en) | Method for packet loss retransmission in real-time streaming media transmission system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request |