[tcpm] TCP Error recovery and efficiency

Anthony Sabatini <tsabatini@hotmail.com> Mon, 09 July 2012 03:54 UTC

Return-Path: <tsabatini@hotmail.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D256A21F873E for <tcpm@ietfa.amsl.com>; Sun, 8 Jul 2012 20:54:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.002
X-Spam-Level:
X-Spam-Status: No, score=0.002 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KqIQrmIbVVcv for <tcpm@ietfa.amsl.com>; Sun, 8 Jul 2012 20:54:46 -0700 (PDT)
Received: from bay0-omc2-s10.bay0.hotmail.com (bay0-omc2-s10.bay0.hotmail.com [65.54.190.85]) by ietfa.amsl.com (Postfix) with ESMTP id 39A6F21F8669 for <tcpm@ietf.org>; Sun, 8 Jul 2012 20:54:46 -0700 (PDT)
Received: from BAY158-W52 ([65.54.190.125]) by bay0-omc2-s10.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Sun, 8 Jul 2012 20:55:09 -0700
Message-ID: <BAY158-W52F89B5FC9355E00E9FE5FB0D30@phx.gbl>
Content-Type: multipart/alternative; boundary="_843d852d-c6c4-4172-8d30-a5024183b33b_"
X-Originating-IP: [74.64.96.39]
From: Anthony Sabatini <tsabatini@hotmail.com>
To: tcpm@ietf.org
Date: Sun, 08 Jul 2012 23:55:09 -0400
Importance: Normal
MIME-Version: 1.0
X-OriginalArrivalTime: 09 Jul 2012 03:55:09.0654 (UTC) FILETIME=[A27A5760:01CD5D86]
X-Mailman-Approved-At: Mon, 09 Jul 2012 08:05:55 -0700
Subject: [tcpm] TCP Error recovery and efficiency
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tcpm>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Jul 2012 03:56:46 -0000

All -

While data communications was constantly improving, due mostly to the wide adoption of fiber optics, the fact that TCP had an inferior recovery mechanism was moot as it came into play less and less often.  Sadly those days are now behind us and we face a world increasingly hostile to data transmission.  The sources of packet loss have grown legion, "traffic shapers", congested links to the subscibers, overloaded wifi bands, content monitor that can not keep up, rate caps on mobile phone data usage, the list goes on and on.  Complicating this is the increase in data rates and file sizes which allow many more packets and their acknowledgements to be inflight between two endpoints at once.  We as a community must move along the proliferation of SACK and if we are going to do that we should fix the underlying issues in the protocol first.

All current TCP recovery implementations are based on guessing the state at the remote node.  No recovery mechanism currently in place gives sufficient weight to in-flight or delayed messages.  This problem can be solved easily by transmitting a token related to the transmission state in each out going message which the destination node will return on its next transmission.  By having this token I know all of the messages the far end should have seen and if I do not have an acknowledgement for any of them, I know that those need to be retransmitted.

To start this discussion I have created an I-D "Highly Efficient Selective Acknowledgement (SACK) for TCP" - draft-sabatini-tcp-sack-00 which I hope will be accepted by the working group.

Note that even though no TCP implementation exists, the HDLC version I created for the financial community has 20 years of working history all over the world and the capability for being 100% efficient right down to one error per message no matter what the data rate or the delay (including multiple satellite hops).

Tony