From: Janardhan Iyengar <jana.iyengar@gmail.com>
To: rick.jones2@hp.com
Cc: Josh Lehan <linux@krellan.com>, Yuchung Cheng <ycheng@google.com>,
netdev <netdev@vger.kernel.org>, Bryan Ford <bryan.ford@yale.edu>
Subject: Re: Skipping past TCP lost packet in userspace
Date: Fri, 24 Jun 2011 10:58:17 -0400 [thread overview]
Message-ID: <4E04A609.7010206@fandm.edu> (raw)
In-Reply-To: <1306949723.8149.2202.camel@tardy>
[Reviving this thread... apologies for dropping it.]
Rick,
Thanks for your note. I agree that it does seem like we're simply adding to the metaphorical pile. And my first knee-jerk response would be that there's not much else one can do in the modern IPv4 Internet :-)
That said, I'd like to point out that when you say that problems at layer 4 need to be fixed, there are two kinds of changes that can be considered -- the layer 4 protocol, and the API it offers to apps. Changes to the API, which is what we're proposing, is not a modification to the transport layer protocol per se. In other words, we are changing the service that TCP offers to apps, and not the protocol.
The non-portability that you point out in the second part of your note, while a completely legitimate point, is again an API issue. While this API is non-portable because it doesn't exist in other OSes yet, that is a matter of time (hopefully), and we're hoping to start the process with Linux. And, it is easy enough for an app to fail over to using simple TCP behavior where the sockopt is not supported.
You also point out that we could perhaps fix the shortcomings of TCP by actively building and deploying alternative transports -- we've tried that and failed exactly because we've missed the point that the narrow waist of the Internet hourglass is no longer just IP, but includes TCP and UDP as well (and sometimes just TCP.) For the entire time I've been working with SCTP (since 2001), we've been working on and trying to get SCTP through middleboxes, but as it stands, we still only have pockets of success. Try using SCTP in the wild; your packets are quite likely to get black-holed within your home/ISP network. The problem with middleboxes is that the IETF missed the boat on providing standards for these devices, and there are very few (if any) points of pressure that can be applied to change these devices in the network. As a result, getting any new non-network-compatible transport deployed over the network remains untenable.
Our goal is to be able to provide new network services while remaining compatible with the network. As we see it, that is the only option that remains if we are to consider any new transport services beyond TCP's straitjacketed one. As it turns out, our work shows that we _can_ offer more services using the same TCP protocol, which is a win-win, since the new services remain network-compatible.
Note: I'm talking largely about the v4 Internet. The v6 Internet will hopefully have fewer devices that interpose on the transport layer, esp. NAPTs; however, I expect fully that firewalls and PEPs will still use transport layer information, requiring them to be able to read/understand transport header information.
- jana
On 6/1/11 1:35 PM, Rick Jones wrote:
> On Wed, 2011-06-01 at 01:10 -0700, Josh Lehan wrote:
>> On 05/31/2011 10:23 AM, Yuchung Cheng wrote:
>>> This paper may have a solution to your problem
>>> "Minion—an All-Terrain Packet Packhorse to Jump-Start Stalled Internet
>>> Transports"
>>> http://csweb1.fandm.edu/jiyengar/lair/papers/minion-pfldnet2010.pdf
>>
>> Nice, thanks for pointing me to this. I appreciate the helpful answer,
>> instead of just saying "use UDP" or "use SCTP". That's not the point.
>>
>> For better or for worse, TCP is realistically the only viable protocol
>> for streaming to the largest possible audience these days, hence my
>> question about adding this feature to the Linux TCP implementation.
>
> Isn't that treating the symptoms of problems at layers 8 and 9 (*) with
> kludges (perhaps hacks if one is feeling charitable) at the user
> interface to layer 4? Just how many more little bits can we add to the
> great pile before the aroma is overpowering? Or to abuse another
> metaphor, is there really any camel's back left here?
>
> And while Linux has had some slightly non-trivial, non-portable
> enhancements to its interface to a TCP endpoint (TCP_CORK is something
> that comes to mind) I don't think any of them have been anywhere nearly
> as large a change to a fundamental semantic of a TCP connection as what
> you propose.
>
> rick jones
>
> *
> http://www.isc.org/store/logoware-clothing/isc-9-layer-osi-model-cotton-t-shirt
>
>
--
Janardhan Iyengar
Assistant Professor, Computer Science
Franklin & Marshall College
http://www.fandm.edu/jiyengar
next prev parent reply other threads:[~2011-06-24 14:58 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-31 1:19 Skipping past TCP lost packet in userspace Josh Lehan
2011-05-31 3:30 ` Marcus D. Leech
2011-05-31 4:12 ` Josh Lehan
2011-05-31 4:05 ` Mikael Abrahamsson
2011-05-31 11:12 ` Neil Horman
2011-05-31 17:23 ` Yuchung Cheng
2011-06-01 8:10 ` Josh Lehan
2011-06-01 16:57 ` Bill Sommerfeld
2011-06-01 17:35 ` Rick Jones
2011-06-24 14:58 ` Janardhan Iyengar [this message]
2011-06-30 8:38 ` Josh Lehan
2011-06-30 14:36 ` Neil Horman
2011-07-01 8:39 ` Josh Lehan
2011-07-01 13:37 ` Neil Horman
2011-06-01 19:36 ` juice
2011-06-03 11:51 ` Ilpo Järvinen
2011-06-06 6:30 ` Josh Lehan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E04A609.7010206@fandm.edu \
--to=jana.iyengar@gmail.com \
--cc=bryan.ford@yale.edu \
--cc=janardhan.iyengar@fandm.edu \
--cc=linux@krellan.com \
--cc=netdev@vger.kernel.org \
--cc=rick.jones2@hp.com \
--cc=ycheng@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.