Re: [Taps] TCP components

gorry@erg.abdn.ac.uk Thu, 11 June 2015 14:25 UTC

Return-Path: <gorry@erg.abdn.ac.uk>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2B0E81B29DA for <taps@ietfa.amsl.com>; Thu, 11 Jun 2015 07:25:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.611
X-Spam-Level:
X-Spam-Status: No, score=-1.611 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, MIME_8BIT_HEADER=0.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id K7DfZbNqtHA0 for <taps@ietfa.amsl.com>; Thu, 11 Jun 2015 07:25:41 -0700 (PDT)
Received: from pegasus.erg.abdn.ac.uk (pegasus.erg.abdn.ac.uk [IPv6:2001:630:241:204::f0f0]) by ietfa.amsl.com (Postfix) with ESMTP id C3B5C1B29E4 for <taps@ietf.org>; Thu, 11 Jun 2015 07:25:40 -0700 (PDT)
Received: from erg.abdn.ac.uk (galactica.erg.abdn.ac.uk [139.133.210.32]) by pegasus.erg.abdn.ac.uk (Postfix) with ESMTPA id 5ABA01B001AB; Thu, 11 Jun 2015 15:25:41 +0100 (BST)
Received: from 212.159.18.54 (SquirrelMail authenticated user gorry) by erg.abdn.ac.uk with HTTP; Thu, 11 Jun 2015 15:24:38 +0100
Message-ID: <793b109b9fb4bc5dea2db3801cf33e3f.squirrel@erg.abdn.ac.uk>
In-Reply-To: <5579971D.9040509@tik.ee.ethz.ch>
References: <5579768E.5060402@tik.ee.ethz.ch> <2e1ca6a7e239e671b7516431ad5db93c.squirrel@erg.abdn.ac.uk> <5579971D.9040509@tik.ee.ethz.ch>
Date: Thu, 11 Jun 2015 15:24:38 +0100
From: gorry@erg.abdn.ac.uk
To: "\"Mirja Kühlewind\"" <mirja.kuehlewind@tik.ee.ethz.ch>
User-Agent: SquirrelMail/1.4.23 [SVN]
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
Archived-At: <http://mailarchive.ietf.org/arch/msg/taps/ClNumOGC7JAMdZ3nMYfqMzbUWQw>
Cc: gorry@erg.abdn.ac.uk, Brian Trammell <ietf@trammell.ch>, "taps@ietf.org" <taps@ietf.org>
Subject: Re: [Taps] TCP components
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Discussions on Transport Services <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jun 2015 14:25:42 -0000

We seem to agree mostly, a few small comments in-line

> Hi Gorry,
>
> see below.
>
>>> - Limited control over segment transmission scheduling (Nagle's
>>> algorithm):
>>> 	This allows for delay minimization in interactive applications.
>>
>> GF: Not quite - To me, it prevents increased delay from the TCP
>> protocol.
>> It doesn't really control anything to reduce delay.
>
> Yes, I think we wanted to say the same thing here; don't really see the
> difference...
>
>>
>>> - Port multiplexing, with application-to-port mapping during connection
>>> setup:
>>
>> GF: Thinking on this, is application-to-port mapping really a TCP
>> function? port-mapping is similar in other transports, and doesn't
>> really
>> have any different support in TCP (contrast to the Service Code in DCCP)
>
> No it's not specific to TCP but it's still something you get when you use
> TCP and that's what we wanted to document here.
>
So would we have the same text in UDP, SCTP, etc?
>>
>>> 	Note that in the presence of network address and port translation
>>> (NAPT),
>>> TCP
>>> ports are
>>> 	in effect part of the endpoint address for forwarding purposes.
>>>
>> GF: This is the case only for those middle boxes that do NAPT,
>> load-ballancing etc, saying they are part of the endpoint address is to
>> me
>> confusing forwarding by middle boxes from forwarding by routers - I'd
>> prefer to be more careful here.
>
> I agree that we should be careful here about the wording. However this was
> only a note to explain slightly better what we had in mind here.
>
>>
>>> - Full reliability based on ack-based loss detection and
>>> retransmission:
>>> 	Loss is sensed using duplicated acks ("fast retransmit"), which places
>>> a lower bound on
>>> 	the delay inherent in this approach to reliability.
>>>
>> GF: DupACK, SACK, and the RTO. (explicit NACK is I think only used in
>> SCPS-TP and probably doesn't nee dot be mentioned).
>
> I'd say DupACK and RTO is both ACK-based loss detection where in the
> latter case
> no ACKs are received for a certain time. However we can add both
> explicitly
> here. What we probably should mention is that RTO puts a maximum bound on
> the
> delay. I agree that SACK should probably be mentioned as well here because
> this
> again helps speeding up the retransmissions and therefore helps reducing
> delay
> by head of line blocking.
>
>>
>>> - Error detection based on a checksum covering the network and
>>> transport
>>> headers
>>> as well as payload:
>>> 	Packets that are detected as corrupted are dropped, relying on the
>>> reliability
>>> mechanism
>>> 	to retransmit them.
>>>
>> GF: True (actually packets header checks and data segments + pseudo
>> header)
>
> Sorry, what do you mean by pseudo header here?
>
Only that TCP combines the segment data with the pseudo header from IP to
perform the checksum. For IPv4, this also assumes that each IP datagram
also passes the IP datagram checksum for each datagram (fragment)

>>
>>> - Window-based flow control, with receiver-side window management and
>>> signaling
>>> of available window:
>>> 	Scaling the flow control window beyond 64kB requires the use of an
>>> optional
>>> feature,
>>> 	which has performance implications in environments where this option
>>> is
>>> not
>>> supported.
>>>
>> GF: Does environment mean path? or something else?
>
> Both option stripping on the path or no support of the receiving end
> point. Can make this more clear.
>
I'd prefer to be clear on this.
>
>>
>>> - Window-based congestion control reacting to loss, delay,
>>> retransmission
>>> timeout, or
>>> 	an explicit congestion signal (ECN):
>>> 	Most commonly used is a loss signal from the reliability component's
>>> retransmission mechanism.
>>> 	TCP reacts to a congestion signal by reducing the size of the
>>> congestion
>>> window;
>>> 	retransmission timeout is generally handled with a larger reaction
>>> than
>>> other  signals.
>>>
>> GF: Generally? Shouldn't RTO imply loss of path state and always result
>> in
>> a larger reaction? (RTO back-off for instance).
>
> In principle yes, but you could easily also implement an congestion
> control
> algorithm there the window is set to minimum for every dupACK. The
> 'generally'
> is because there is not the one and only congestion control in TCP and
> therefore
> you never know what people actually implement.
>
> Mirja
>
>
Gorry