Re: [6lowapp] Where does TCP not work

"Don Sturek" <d.sturek@att.net> Tue, 03 November 2009 13:59 UTC

Return-Path: <d.sturek@att.net>
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 8DADC3A67FD for <6lowapp@core3.amsl.com>; Tue, 3 Nov 2009 05:59:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.128
X-Spam-Level:
X-Spam-Status: No, score=-0.128 tagged_above=-999 required=5 tests=[AWL=0.687, BAYES_00=-2.599, IP_NOT_FRIENDLY=0.334, MSGID_MULTIPLE_AT=1.449, UNPARSEABLE_RELAY=0.001]
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 ojH18gMMDBkz for <6lowapp@core3.amsl.com>; Tue, 3 Nov 2009 05:59:42 -0800 (PST)
Received: from smtp110.sbc.mail.gq1.yahoo.com (smtp110.sbc.mail.gq1.yahoo.com [67.195.14.95]) by core3.amsl.com (Postfix) with SMTP id E79053A693B for <6lowapp@ietf.org>; Tue, 3 Nov 2009 05:59:41 -0800 (PST)
Received: (qmail 66226 invoked from network); 3 Nov 2009 14:00:02 -0000
Received: from adsl-69-225-120-110.dsl.sndg02.pacbell.net (d.sturek@69.225.120.110 with login) by smtp110.sbc.mail.gq1.yahoo.com with SMTP; 03 Nov 2009 06:00:02 -0800 PST
X-Yahoo-SMTP: fvjol_aswBAraSJvMLe2r1XTzhBhbFxY8q8c3jo-
X-YMail-OSG: 2QqlhrUVM1mgRsZLx4qZmILvLitFWvDVyLUxKreEN78bLxPi9Zlq4BzR8Q2AuLGB2hAhKc0dXoo7JJK9LP0DyPHvme7SciQzC4uIIPFpBUcwp42DfjuYTltSfLPzRBpH3HQKAWiBebZb3PCKFCXNhCGQcMEw5cb.OtcNeG2PPn013amXbMWeMfMRf.Hm2sek8fW0CkDncaW6hQLSr9QO4pqG98ZGU9pgZ1dju4BQPTNOAnKucA8WSQftZcUpOEDjpvlbrdxS2_8eM0RkX4WsXzV5VxEste6T4AAUAVOo8ZTTwHbTdw--
X-Yahoo-Newman-Property: ymail-3
From: "Don Sturek" <d.sturek@att.net>
To: "'Kris Pister'" <pister@eecs.berkeley.edu>
References: <5A85AE5A-4C5D-4A0F-8CDF-BEB4C69FF002@cisco.com> <005c01ca5a86$9a3f2ef0$cebd8cd0$%sturek@att.net> <4AF011B4.6070602@eecs.berkeley.edu>
In-Reply-To: <4AF011B4.6070602@eecs.berkeley.edu>
Date: Tue, 3 Nov 2009 05:59:59 -0800
Message-ID: <01d201ca5c8d$ef1d7630$cd586290$@sturek@att.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: Acpcd39LhiMMdiLDTFqOVYz1TEvq4AAFVlsw
Content-Language: en-us
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
Reply-To: d.sturek@att.net
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 13:59:43 -0000

Hi Kris,

Yes, there is a fundamental reason WiFi works well with TCP and other
wireless links don't:   the architecture of WiFi has been to have an access
point with a set of single wireless hops where data link acknowledges and
retries are employed AND where these operations can occur, where needed,
within the congestion time window TCP uses.

Have a look at an old RFC called TCP-SAT for an example where that time
window is violated.

Also, I think many of the references Lars supplied are good as well.

As you can tell, I agree with Lars on this (having worked with TCP over many
data link medium dating from the 1980's to present):  If you run TCP over
small networks or in very short time windows where the wireless link
exhibits behavior consistent with TCPs operating assumptions, you won't see
any issues.  If you operate TCP over a wireless link where the timeout
windows in TCP are invoked, you will see a slow degradation of operation
over time to where TCP is nearly unusable (all due to assumptions in TCP
around retry, in general.....)

Don


-----Original Message-----
From: Kris Pister [mailto:pister@eecs.berkeley.edu] 
Sent: Tuesday, November 03, 2009 3:19 AM
To: d.sturek@att.net
Cc: 'Cullen Jennings'; 6lowapp@ietf.org
Subject: Re: [6lowapp] Where does TCP not work

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
>