Re: [tae] [tsv-area] Transport negotiation

Stuart Cheshire <cheshire@apple.com> Tue, 09 December 2008 22:43 UTC

Return-Path: <tae-bounces@ietf.org>
X-Original-To: tae-archive@ietf.org
Delivered-To: ietfarch-tae-archive@core3.amsl.com
Received: from [127.0.0.1] (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id CCFE228C1A4; Tue, 9 Dec 2008 14:43:24 -0800 (PST)
X-Original-To: tae@core3.amsl.com
Delivered-To: tae@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 594BA28C14A; Tue, 9 Dec 2008 14:43:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.022
X-Spam-Level:
X-Spam-Status: No, score=-106.022 tagged_above=-999 required=5 tests=[AWL=0.577, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
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 cY2hHMfYJxww; Tue, 9 Dec 2008 14:43:20 -0800 (PST)
Received: from mail-out3.apple.com (mail-out3.apple.com [17.254.13.22]) by core3.amsl.com (Postfix) with ESMTP id A46EA28C132; Tue, 9 Dec 2008 14:43:20 -0800 (PST)
Received: from relay13.apple.com (relay13.apple.com [17.128.113.29]) by mail-out3.apple.com (Postfix) with ESMTP id 6C69647EFA48; Tue, 9 Dec 2008 14:43:15 -0800 (PST)
Received: from relay13.apple.com (unknown [127.0.0.1]) by relay13.apple.com (Symantec Brightmail Gateway) with ESMTP id 49C1E280A3; Tue, 9 Dec 2008 14:43:15 -0800 (PST)
X-AuditID: 1180711d-a401cbb000000ff0-53-493ef48359b4
Received: from [17.206.42.11] (chesh1.apple.com [17.206.42.11]) by relay13.apple.com (Apple SCV relay) with ESMTP id 22564280A2; Tue, 9 Dec 2008 14:43:15 -0800 (PST)
Mime-Version: 1.0 (Apple Message framework v753.1)
In-Reply-To: <5AE49824-74B1-4ABE-BBD4-7DEAFA348245@apple.com>
References: <3BB334D8-B00C-48C1-ACBF-4D09576DEADF@mpi-sws.org> <492C7F97.3030000@isi.edu> <EDCC4CF2-DC3C-409F-8F99-3BE51BAE4111@surrey.ac.uk> <492DE8AD.1090300@isi.edu> <7DA33930-1767-492B-807E-7A7DA661AFE9@apple.com> <5AE49824-74B1-4ABE-BBD4-7DEAFA348245@apple.com>
Message-Id: <3F1AB633-7E17-47C4-B126-D8D872B552C5@apple.com>
From: Stuart Cheshire <cheshire@apple.com>
Date: Tue, 9 Dec 2008 14:42:26 -0800
To: james woodyatt <jhw@apple.com>, tae@ietf.org, tsv-area@ietf.org
X-Mailer: Apple Mail (2.753.1)
X-Brightmail-Tracker: AAAAAA==
Subject: Re: [tae] [tsv-area] Transport negotiation
X-BeenThere: tae@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Transport Architecture Evolution <tae.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tae>, <mailto:tae-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/tae>
List-Post: <mailto:tae@ietf.org>
List-Help: <mailto:tae-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tae>, <mailto:tae-request@ietf.org?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"; DelSp="yes"
Sender: tae-bounces@ietf.org
Errors-To: tae-bounces@ietf.org

On 3 Dec, 2008, at 13:57, james woodyatt wrote:
> The "transport layer" is identified by the upper layer protocol  
> header at the end of the extension header chain of the inner-most  
> encapsulated IP packet.


This might be a fine answer to the question, "What is the transport  
layer?" on the mid-term exam for an introductory undergraduate  
networking class.

The notion of layers in networking is an artificial simplifying  
assumption introduced to help us think about software design (and to  
help ISO divide their people up into seven committees). Like all  
simplifying assumptions, there are cases where it is helpful, and  
cases where it is not. This is a case where religious adherence to  
apparent layer boundaries is not helpful.

Bryan Ford's excellent "Breaking Up the Transport Logjam"  
presentation pointed out that what we call the "transport layer"  
artificially takes three functions (demux, flow control, and  
operational abstraction) and lumps them together in what we  
traditionally call "transport layer", while leaving out other  
functions (session, presentation, etc.) and artificially deeming them  
to be "not transport layer". Such artificial distinctions do not help  
guide our networking design thought processes in useful ways.

For our purposes here, there are three relevant groupings:

C. Application/Presentation/Transport/etc.
B. IP
A. Datalink/Hardware/etc.

In group (A) there are differences due to inherent differences in the  
underlying hardware.
The purpose of IP (group B) is to homogenize away those hardware  
differences and present a uniform service model.
In group (C) there are intentional differences due to the different  
requirements of different applications.

The point is that the differences in group (C) are *intentional*.  
Different applications have different requirements. The whole *point*  
of having different transport protocols is that they offer different  
operating semantics -- e.g. UDP preserves message boundaries; TCP  
does not.

I think that when we denote a certain application protocol using a  
name like "foobar", that name has to encompass the complete package  
of everything the application uses, requires, and assumes, from the  
IP layer up. Tempting as it is to think of networking as a set of  
tinker-toy components that can be just plugged together in whatever  
order we feel like, in the real world software is a lot more brittle  
than that. I'm all in favour of applications negotiating capabilities  
and requirements, but that has to be done by the applications, and  
done carefully, with thorough testing. Thinking that we can solve  
this problem by just enumerating all the permutations in the DNS  
seems naive to me.

Stuart Cheshire <cheshire@apple.com>
* Wizard Without Portfolio, Apple Inc.
* Internet Architecture Board
* www.stuartcheshire.org

_______________________________________________
tae mailing list
tae@ietf.org
https://www.ietf.org/mailman/listinfo/tae