Re: [conex] Accounting of ConEx signals

Mirja Kuehlewind <mirja.kuehlewind@ikr.uni-stuttgart.de> Sun, 30 October 2011 20:26 UTC

Return-Path: <mirja.kuehlewind@ikr.uni-stuttgart.de>
X-Original-To: conex@ietfa.amsl.com
Delivered-To: conex@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4D82121F8B62 for <conex@ietfa.amsl.com>; Sun, 30 Oct 2011 13:26:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.874
X-Spam-Level:
X-Spam-Status: No, score=-1.874 tagged_above=-999 required=5 tests=[AWL=-0.225, BAYES_00=-2.599, HELO_EQ_DE=0.35, SARE_BAYES_5x7=0.6]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kOlbgumRlKTE for <conex@ietfa.amsl.com>; Sun, 30 Oct 2011 13:26:28 -0700 (PDT)
Received: from mailsrv.ikr.uni-stuttgart.de (mailsrv.ikr.uni-stuttgart.de [129.69.170.2]) by ietfa.amsl.com (Postfix) with ESMTP id EF6DC21F8B18 for <conex@ietf.org>; Sun, 30 Oct 2011 13:26:27 -0700 (PDT)
Received: from netsrv1.ikr.uni-stuttgart.de (netsrv1-c [10.11.12.12]) by mailsrv.ikr.uni-stuttgart.de (Postfix) with ESMTP id E9B87633B1; Sun, 30 Oct 2011 21:26:23 +0100 (CET)
Received: from vpn-2-cl177 (vpn-2-cl177 [10.41.21.177]) by netsrv1.ikr.uni-stuttgart.de (Postfix) with ESMTP id C686459A8A; Sun, 30 Oct 2011 21:26:23 +0100 (CET)
From: Mirja Kuehlewind <mirja.kuehlewind@ikr.uni-stuttgart.de>
Organization: University of Stuttgart (Germany), IKR
To: "Scheffenegger, Richard" <rs@netapp.com>
Date: Sun, 30 Oct 2011 21:26:22 +0100
User-Agent: KMail/1.9.10 (enterprise35 0.20101217.1207316)
References: <201110070115.27485.mkuehle@ikr.uni-stuttgart.de> <201110111235.p9BCZ5eO008809@bagheera.jungle.bt.co.uk> <5FDC413D5FA246468C200652D63E627A10964494@LDCMVEXC1-PRD.hq.netapp.com>
In-Reply-To: <5FDC413D5FA246468C200652D63E627A10964494@LDCMVEXC1-PRD.hq.netapp.com>
X-KMail-QuotePrefix: >
MIME-Version: 1.0
Content-Type: Text/Plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Message-Id: <201110302126.22367.mirja.kuehlewind@ikr.uni-stuttgart.de>
Cc: conex@ietf.org
Subject: Re: [conex] Accounting of ConEx signals
X-BeenThere: conex@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Congestion Exposure working group discussion list <conex.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/conex>, <mailto:conex-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/conex>
List-Post: <mailto:conex@ietf.org>
List-Help: <mailto:conex-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/conex>, <mailto:conex-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 30 Oct 2011 20:26:29 -0000

Hi Richard,

after reading the relevant parts of the RFCs stated below again, I would say 
the answer is more or less obvious.

A sender does not have any feedback information (no ECN nor loss detection) 
about control packets not carrying any user data. Of course those packets can 
cause congestion as well but neither the sender nor the audit will be able to 
detect this congestion. That means a sender can only give conex feedback 
about the all other packets and this conex information must be seen with 
respect to only those packets we have congestion information about.
Suddenly an IP packet with ConEx header but X bit no set makes sense. I added 
this to the most current version of the IP Dest Opt draft.

SYN and SYN/ACK might be a different case for ECN. But for ConEx as this is 
the first packet sent, for sure we do not have any congestion feedback 
information yet and taking the SYN or SYN/ACK into account when calculating 
the congestion level should usually not really make a big difference as you 
need anyway a certain amount of packets before you can get a significant 
result.

Regarding the retransmitted packets, we, kind of, have information about, even 
though they are not ECN-capable, because the RTO might cause a sender to 
retransmit a restransmitted packet again. The reason for ECN to make 
retransmitted as not-ECN-capable is because the receiver might not see a 
unnecessarily-retransmitted packet and thus might not report an CE mark on an 
unnecessarily-retransmitted packet to the sender. In our case the ConEx is 
meant to be information for network nodes and not for the receiver, thus it 
is not a problem. I would recommend to make restransmitted packet 
ConEx-capable.

For the TCP modifications draft, we can simply account the TCP payload, when 
we assume equal sized packets, as the conex marked packet as well as the 
original packets causing the congestion will both have a header of the same 
size. 
In case of not equal sized packets we have to account the headers as well but 
we cannot provide a generic way how to do this. A sender which sends 
different sized packets probably knows about the pattern/reason to do so and 
thus can reconstruct the exact number of headers based on this information.

Any thoughts?
Mirja


On Tuesday 11 October 2011 20:05:25 Scheffenegger, Richard wrote:
> Bob, Mirja,
>
> Currently, there are probably two relevant RFCs in this space - RFC5562
> (experimental) and RFC5590 (informational), which Bob already mentioned.
>
> RFC5562 adds one specific case of control packets [SYN,ACK] to the
> ECT-capable packets.
>
> So there exists at least one case, where a pure control packet in TCP may
> carry ECN information. RFC5562 is actually implemented and available in IBM
> AIX5.3 and later.
>
>
> I believe it should be clear that Conex Marks should only be carried on
> those packets, that the transport layer would mark ECN-capable.
>
> Further, Section 6.1.5 in RFC3168 also states, that retransmitted packets
> should not be sent with ECT. That probably settles the discussion, if a
> Conex L mark should be sent right with the retransmission of the loss. If
> I'm not mistaken that Conex "requires" a ECN capable transport (and
> therefore a qualifying transport segment).
>
> However, there are some obvious potential issue with such an approach; for
> example, a CE-marked SYN-ACK may never be followed by a data segement which
> could carry the Conex E mark for an extensive period of time. Same could
> hold for a retransmission which may be the last data to be sent to the
> receiver, again for some (human scale) time periods - as tcp keepalive /
> window probe windows by definition won't carry ECT / Conex, correct?
>
>
> Alternatively, Conex marks can be completely decoupled from the transport
> (or rather, sent with every packet of that ECN-capable transport,
> regardless if the transport actually sends a ECT packet or not). That would
> alleviate some of the potential implication a long delayed conex signal may
> cause...
>
> (Note: reECN implicitly coupled re-ECN marks with ECT, always; but with the
> current IPv6 signaling scheme, this is no longer absolutely required).
>
> Best regards,
>
>
> Richard Scheffenegger
>
> > -----Original Message-----
> > From: Bob Briscoe [mailto:bob.briscoe@bt.com]
> > Sent: Dienstag, 11. Oktober 2011 14:35
> > To: Mirja Kuehlewind
> > Cc: conex@ietf.org; Scheffenegger, Richard
> > Subject: Re: [conex] Accounting of ConEx signals
> >
> > Mirja,
> >
> > If pure acks were ECN-capable, it would be just
> > as likely that they would get an ECN mark as any
> > data packet. However, RFC3168 says pure ACKS must
> > be sent as Not-ECT. We should keep to this in
> > ConEx unless something better has been done that
> > I'm not aware of - ConEx isn't chartered to work on loss/marking of
> > pure acks.
> >
> > There is RFC5690, which is informational (rather than experimental):
> > "Adding Acknowledgement Congestion Control to TCP"
> >
> > The relevant section in the re-ECN spec about
> > pure acks, and byte vs packet ConEx signalling is
> > here, which covers nearly everything in the present thread:
> > <http://tools.ietf.org/html/draft-briscoe-tsvwg-re-ecn-tcp-09#section-
> > 6.1.5>
> >
> >
> > This leaves the outstanding question of which
> > ConEx doc should write about this stuff.
> > * abstract-mech ought to cover things like which packet headers to
> > include.
> > * conex-tcp-modifications obviously ought to talk about TCP-specifics
> > * that leaves where to put design principles
> > applicable to all transports. 2 options:
> >    a) abstract-mech?
> >    b) a section in conex-tcp-modifications 'guidelines for other
> > transports'?
> >
> > I prefer a) but we don't really want extremely detailed stuff in
> > abstract-mech.
> >
> >
> > Bob
> >
> > At 12:42 11/10/2011, Mirja Kuehlewind wrote:
> > >Hi Bob,
> > >
> > >thanks for this separate answer on the second
> > >question but actually your first
> > >answer help me already. When I was reading your mail, I've just
> >
> > though, that
> >
> > >we can at the endsystem just count the TCP payload. Under the
> >
> > assumption that
> >
> > >the endsystem is mostly sending equally sized packets, there will be
> > >automatically as many header with ConEx marks as there have been
> >
> > causing the
> >
> > >original congestion. If the sender is doing some wired things, like
> >
> > sending
> >
> > >smaller retransmit packets, the sender knows about it and can take
> >
> > exactly
> >
> > >this knowledge into account.
> > >
> > >I talked to Richard about this and he was bring
> > >up the case, when there is ACK
> > >congestion (control packets without payload get marked). Not sure what
> >
> > to do
> >
> > >with this case. If an ACK get lost, we actually don't really know. We
> >
> > could
> >
> > >assume that the receiver should ack as least every second packet but
> >
> > we never
> >
> > >know what the receiver did. I believe usually control packets without
> >
> > payload
> >
> > >are as well ECN-capable. So with ECN we  would have a congestion
> >
> > signal. But
> >
> > >is this a common case that pure ACKs get ECN markings?
> > >
> > >Mirja
> > >
> > >On Monday 10 October 2011 18:46:06 Bob Briscoe wrote:
> > > > Mirja,
> > > >
> > > > The thread largely overlooked your second question, which is also a
> >
> > good
> >
> > > > one.
> > > >
> > > > We haven't got any text anywhere that talks about this.
> > > >
> > > > IMO the size should include the network layer header, but not link
> >
> > layer.
> >
> > > > Reason: ConEx is targeted at the IP layer because
> > > > it is the interoperability layer across networks.
> > > > When the bytes of a packet cause congestion
> > > > (setting aside the discussion about packet
> > > > processing congestion), the IP header is always
> > > > there, so it is part of the size that always needs to be counted.
> > > >
> > > > So, when we add ConEx to TCP, byte-for-byte
> > > > balance should strictly take account of IP
> > > > headers. But as you rightly point out, TCP often
> > > > doesn't know how many IP headers are involved (or
> > > > how many TCP headers were involved the last time
> > > > round the loop). So again, we can only say that
> > > > the practical approach when coding TCP is to make
> > > > assumptions about IP and TCP headers (e.g. assume
> > > > there will always be about the same amount of IP
> > > > and TCP header size added to the same amount of TCP payload).
> > > >
> > > > This should be good enough at this experimental
> > > > stage. If it raises problems, we will have to deal with them.
> > > >
> > > >
> > > > Bob
> > > >
> > > > PS. Strictly, congestion at the link layer
> > > > includes the size of link layer headers, and
> > > > congestion in a tunnel includes tunnel headers,
> > > > etc, etc. But for simplicity, from the
> > > > transport's viewpoint, I think it's reasonable to
> > > > use the size of the packet including the one IP
> > > > header that the transport can assume. This is a
> > > > bit like the transport layer checksum calculation
> > > > that includes an IP pseudo-header. But in this
> > > > case, the transport just adds a pseudo-size for the IP and TCP
> >
> > headers.
> >
> > > > At 00:15 07/10/2011, Mirja Kühlewind wrote:
> > > > >2. Which bytes of a packet do we take? The IP length incl header,
> >
> > the IP
> >
> > > > >payload incl. TCP header or the actual payload?
> > > > >In TCP if a packet get lost (with SACK) we only know how many
> >
> > payload got
> >
> > > > >lost. We do not know the number of packets/headers that were used
> >
> > to
> >
> > > > > transmit this data. If we would loose one big packet and then
> >
> > retransmit
> >
> > > > > a large number of small packets instead (which are all ConEx
> >
> > marked) that
> >
> > > > > might give quite a different ConEx signal. On the other hand,
> >
> > what causes
> >
> > > > > the congestion is the whole packet incl header(s). What is the
> >
> > right
> >
> > > > > thing to do?
> > > >
> > > > ________________________________________________________________
> > > > Bob Briscoe,                                BT Innovate & Design
> > >
> > >--
> > >-------------------------------------------------------------------
> > >Dipl.-Ing. Mirja Kühlewind
> > >Institute of Communication Networks and Computer Engineering (IKR)
> > >University of Stuttgart, Germany
> > >Pfaffenwaldring 47, D-70569 Stuttgart
> > >
> > >tel: +49(0)711/685-67973
> > >email: mirja.kuehlewind@ikr.uni-stuttgart.de
> > >web: www.ikr.uni-stuttgart.de
> > >-------------------------------------------------------------------
> >
> > ________________________________________________________________
> > Bob Briscoe,                                BT Innovate & Design



-- 
-------------------------------------------------------------------
Dipl.-Ing. Mirja Kühlewind
Institute of Communication Networks and Computer Engineering (IKR)
University of Stuttgart, Germany
Pfaffenwaldring 47, D-70569 Stuttgart

tel: +49(0)711/685-67973
email: mirja.kuehlewind@ikr.uni-stuttgart.de
web: www.ikr.uni-stuttgart.de
-------------------------------------------------------------------