Re: [6lowapp] Where does TCP not work

Kris Pister <pister@eecs.berkeley.edu> Tue, 03 November 2009 11:19 UTC

Return-Path: <pister@eecs.berkeley.edu>
X-Original-To: 6lowapp@core3.amsl.com
Delivered-To: 6lowapp@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 4775328C0D8 for <6lowapp@core3.amsl.com>; Tue, 3 Nov 2009 03:19:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3+Ob0bwyysSs for <6lowapp@core3.amsl.com>; Tue, 3 Nov 2009 03:19:45 -0800 (PST)
Received: from gateway0.EECS.Berkeley.EDU (gateway0.EECS.Berkeley.EDU [169.229.60.87]) by core3.amsl.com (Postfix) with ESMTP id 317693A69F6 for <6lowapp@ietf.org>; Tue, 3 Nov 2009 03:19:45 -0800 (PST)
Received: from [192.168.1.100] (c-24-4-148-227.hsd1.ca.comcast.net [24.4.148.227]) (authenticated bits=0) by gateway0.EECS.Berkeley.EDU (8.14.3/8.13.5) with ESMTP id nA3BJLwe009733 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 3 Nov 2009 03:19:23 -0800 (PST)
Message-ID: <4AF011B4.6070602@eecs.berkeley.edu>
Date: Tue, 03 Nov 2009 03:19:16 -0800
From: Kris Pister <pister@eecs.berkeley.edu>
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
MIME-Version: 1.0
To: d.sturek@att.net
References: <5A85AE5A-4C5D-4A0F-8CDF-BEB4C69FF002@cisco.com> <005c01ca5a86$9a3f2ef0$cebd8cd0$%sturek@att.net>
In-Reply-To: <005c01ca5a86$9a3f2ef0$cebd8cd0$%sturek@att.net>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Cc: 6lowapp@ietf.org
Subject: Re: [6lowapp] Where does TCP not work
X-BeenThere: 6lowapp@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Application protocols for constrained nodes and networks <6lowapp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/6lowapp>, <mailto:6lowapp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/6lowapp>
List-Post: <mailto:6lowapp@ietf.org>
List-Help: <mailto:6lowapp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6lowapp>, <mailto:6lowapp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Nov 2009 11:19:46 -0000

Don - I like the WiFi example.  Clearly it's possible to make TCP work 
over wireless links.
If there had been a separate industry consortium based on 802.11 pushing 
DumbFi, a standard that didn't use L2 ARQ, then there would have been a 
group in the IETF trying to figure out a new transport protocol to use 
for these lossy links.

Do you believe that there is a fundamental reason why WiFi can work and 
15.4 radios can't?  I don't see any evidence that this is true.  Some of 
the early protocols in sensor networks were not well thought out, and 
the result is that there's a perception that 15.4 can't be as reliable 
as WiFi.  The reality is that 15.4 can be quite a bit *more* reliable 
than WiFi.

 >> The trouble with mesh links is that link errors are not propagated 
and, even if they are,
 >> result in route re-establishment which violates the TCP timeout on 
the far end
This remains the case with naive routing protocols, but it is *not* a 
general truth about mesh links.

ksjp

Don Sturek wrote:
> Hi Cullen,
>
> Sorry, I meant to provide some references on this issue.  Basically, here is
> the problem:
> 1)  TCP was written back in the day when Ethernet was the primary transport.
> One key assumption made in TCP was that packet timeout was related to
> congestion.  TCP reacts to packet timeouts by adjusting the transmit timing
> and using back off.
> 2)  Wireless networks (especially mesh topologies) experience packet loss as
> a result of failure of the RF link.  Note that IEEE 802.11 does not
> typically exhibit this type of loss.  The reason is that for IEEE 802.11
> (actually WiFi) the last hop wireless link from the AP can be guaranteed via
> MAC level acknowledges and retries.  The trouble with mesh links is that
> link errors are not propagated and, even if they are, result in route
> re-establishment which violates the TCP timeout on the far end and starts
> the "congestion management" procedure in TCP (which actually makes the
> problem worse as some of the links below indicate).
>
> I am not saying categorically that TCP does not work for wireless links.  I
> am saying that for many wireless links, TCP does not work well (and in some
> extreme cases, at all).  Here are some examples from the IETF archives and
> other industry trials......
>
> http://www.rfc-editor.org/rfc/rfc4653.txt
> http://www.sics.se/~adam/ewsn2004.pdf
> http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=686057
>
> I used to have a more exhaustive reference list but I think if you do a
> search you will see this is a long standing problem....
>
> Don
>
>
> -----Original Message-----
> From: 6lowapp-bounces@ietf.org [mailto:6lowapp-bounces@ietf.org] On Behalf
> Of Cullen Jennings
> Sent: Saturday, October 31, 2009 10:33 AM
> To: 6lowapp@ietf.org
> Subject: [6lowapp] Where does TCP not work
>
>
> Multiple people have told me that TCP won't work on some of the types  
> of networks we want to run on. Anyway I'd like to understand a bit  
> more on why this is.
>
> I could go dig a 9600 baud modem out of my closet, set the MTU at 100,  
> and emulate 10% packet loss on server side and go try some things. I'm  
> relatively confidently TCP, HTTP, pop, imap, SSH, and TLS will all  
> work just fine.
>
> So, what are the network conditions that we think are going to cause a  
> problem for TCP? and, what might one do to make something that worked  
> better than TCP in these cases.
>
> Thanks, Cullen
>
> _______________________________________________
> 6lowapp mailing list
> 6lowapp@ietf.org
> https://www.ietf.org/mailman/listinfo/6lowapp
>
> _______________________________________________
> 6lowapp mailing list
> 6lowapp@ietf.org
> https://www.ietf.org/mailman/listinfo/6lowapp
>