Re: [multipathtcp] draft terminology: MPTCP control block variable SND.NXT
Christoph Paasch <christoph.paasch@uclouvain.be> Wed, 14 November 2012 09:48 UTC
Return-Path: <christoph.paasch@uclouvain.be>
X-Original-To: multipathtcp@ietfa.amsl.com
Delivered-To: multipathtcp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 591CC21F860D for <multipathtcp@ietfa.amsl.com>; Wed, 14 Nov 2012 01:48:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.999
X-Spam-Level:
X-Spam-Status: No, score=-5.999 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_33=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oUvF8OZ1TZ-q for <multipathtcp@ietfa.amsl.com>; Wed, 14 Nov 2012 01:48:53 -0800 (PST)
Received: from smtp6.sgsi.ucl.ac.be (smtp.sgsi.ucl.ac.be [130.104.5.67]) by ietfa.amsl.com (Postfix) with ESMTP id 1B84C21F8621 for <multipathtcp@ietf.org>; Wed, 14 Nov 2012 01:48:52 -0800 (PST)
Received: from cpaasch-mac.localnet (unknown [172.17.0.12]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: cpaasch@smtp6.sgsi.ucl.ac.be) by smtp6.sgsi.ucl.ac.be (Postfix) with ESMTPSA id C0ED51C6194; Wed, 14 Nov 2012 10:48:47 +0100 (CET)
X-DKIM: Sendmail DKIM Filter v2.8.3 smtp6.sgsi.ucl.ac.be C0ED51C6194
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=uclouvain.be; s=selucl; t=1352886527; bh=IY360Wa9mtA+x05F6l4wl72w/MYm3+/Z2EndbomjkEQ=; h=From:To:Reply-To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:Content-Type; b=dggoBaIz9ryXCPR/RSai/zh5Uk+yWx+RRAgR2uoyVTRhzdZJbWA/yl4V7yEfG5tZt BYCR/q1i1mDhGZCQPeHiOwWbcs65A5mqalaCz03b8wEQCvRiHgAXq95dn+XPCCZCdT 4hiakPyaLpIUJbxB03eSbqvDelUsU6vQNIkA87cI=
From: Christoph Paasch <christoph.paasch@uclouvain.be>
To: Nigel Williams <njwilliams@swin.edu.au>
Date: Wed, 14 Nov 2012 10:48:44 +0100
Message-ID: <2084870.5phkxIDxER@cpaasch-mac>
Organization: Université Catholique de Louvain
User-Agent: KMail/4.9.3 (Linux/3.5.0-18-generic; KDE/4.9.3; x86_64; ; )
In-Reply-To: <50A2DE86.1080703@swin.edu.au>
References: <50A09CF1.2060302@swin.edu.au> <1434931.3sf8zDIuhj@cpaasch-mac> <50A2DE86.1080703@swin.edu.au>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="iso-8859-1"
X-Virus-Scanned: clamav-milter 0.97.3-exp at smtp-6.sipr-dc.ucl.ac.be
X-Virus-Status: Clean
X-Sgsi-Spamcheck: SASL authenticated,
X-SGSI-MailScanner-ID: C0ED51C6194.A1868
X-SGSI-MailScanner: Found to be clean
X-SGSI-From: christoph.paasch@uclouvain.be
X-SGSI-Spam-Status: No
Cc: multipathtcp@ietf.org
Subject: Re: [multipathtcp] draft terminology: MPTCP control block variable SND.NXT
X-BeenThere: multipathtcp@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: Christoph Paasch <christoph.paasch@uclouvain.be>
List-Id: Multi-path extensions for TCP <multipathtcp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/multipathtcp>
List-Post: <mailto:multipathtcp@ietf.org>
List-Help: <mailto:multipathtcp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/multipathtcp>, <mailto:multipathtcp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 14 Nov 2012 09:48:54 -0000
Hi Nigel, On Wednesday 14 November 2012 10:57:58 Nigel Williams wrote: [...] > > Is the data leaving the sender out-of-order on the data-sequence number > > space in your implementation? > > In our implementation, depending on the scheduler, for certain scenarios > where there are multiple subflows and DS mappings that cover multiple > packets, it would be possible for packets to leave the sender > out-of-order (DS-wise). A quick explanation of how our send buffer works > might help demonstrate this. > > Given that the subflows share a send buffer, in order to minimise > locking of the send buffer and mptcp control structure a scheduler might > pre-allocate 'chunks' of data to each subflow. The subflow knows the > DS-number at the start of the chunk and is able to send the entire chunk > without needing to call into the mptcp layer/sendbuffer. We do not > strictly increment a DS-level snd.nxt at this time, our equivalent might > be called the 'ds_unmapped' (i.e. the highest sequence number that has > been mapped to a subflow + 1). Each subflow maintains its own snd.nxt > pointer into the mapping (as per standard tcp). > > At the subflow level, DSS maps can be used for the first packet of the > mapping. For example, in the case where we have two subflows > transmitting data at the same time, they are each allocated a contiguous > chunk from the send buffer (Subflows A and B in Figure 1). Each subflow > then will attempt to transmit the bytes it has been allocated from the > send buffer, and does not call back into the ds-level until the map is > exhausted (ideally). Given that subflow A and B start from different > DS-numbers, and they are transmitting at the same time, the segments > leave the sender out-of-order at the DS level. > > > <--------- increasing DS > +=========+========+=========+ > > |uuuuuuuuuubbbbbbbbbaaaaaaaaaa > |uuuuuuuuuubbbbbbbbbaaaaaaaaaa > > +=========+========+=========+ > > ds_unmapped B | A > > ds_una (for e.g.) > > Figure 1: Maps allocated to subflows A and B from the send buffer. > Assume maps are greater than 1-MSS. ds_una is increased based on D-ACKS. > > So from the implementation perspective, the variable represents the next > unmapped byte in the DS-space, rather than the next DS byte to be sent. ok, I understand now what you mean. Thanks for the clarifications. The DS-snd.nxt must be seen from the MPTCP-level point-of-view, where the subflow-level is one layer below the MPTCP-level. As soon as a subflow has been allocated to a chunk of the data, this chunk has "moved" from the MPTCP-level to the subflow-level, and thus the send-next must increase. "moving" the chunk to the subflow-level can be seen as sending the data. It is the same as for the TCP-level snd-nxt. Pushing a segment from the TCP- layer down to the IP-layer, and thus increasing snd-nxt, does not necessarily mean that the segment is "physically" leaving the machine. It may be delayed for a long time in underlying queues (e.g., inside a tc qdisc) of the operating system. So, in general I would say that "send" just means that the data is "moved" one layer further down the stack. > > In our implementation, even if the mapping would be > 1-MSS, the SND.NXT > > is > > simply increasing as new data is pushed out on the network. > > I can't picture how this works, would you be able to provide a similar > explanation (as above) as to how you are able to transmit packets in > DS-order with multiple concurrent subflows with mappings > 1-MSS? > Perhaps we could schedule a Skype chat to discuss some of these points? For me, "sending" at the MPTCP-layer simply means that the data is pushed one level further - thus down to the subflow-level. So, the packets may be leaving the machine out-of-order at the DS-level, but we anyways can't control this. Cheers, Christoph > cheers, > nigel > > > I believe that. sending the data in-order on the DS-level allows an easier > > handling of the meta-level retransmission timer. > > > > > > Cheers, > > Christoph > > > >> The interesting variable at the > >> DS level is really the largest DS value mapped to a subflow i.e. the > >> right most edge of the TX socket buffer which designates the boundary > >> between bytes which have been mapped into subflows and bytes which have > >> not. This is not analogous to an individual TCP flow's SND.NXT though, > >> hence the point of discussion. > >> > >> cheers, > >> nigel > >> > >> > >> [1] http://www.ietf.org/id/draft-ietf-mptcp-multiaddressed-12.txt > >> _______________________________________________ > >> multipathtcp mailing list > >> multipathtcp@ietf.org > >> https://www.ietf.org/mailman/listinfo/multipathtcp -- IP Networking Lab --- http://inl.info.ucl.ac.be MultiPath TCP in the Linux Kernel --- http://mptcp.info.ucl.ac.be Université Catholique de Louvain --
- [multipathtcp] draft terminology: MPTCP control b… Nigel Williams
- Re: [multipathtcp] draft terminology: MPTCP contr… Christoph Paasch
- Re: [multipathtcp] draft terminology: MPTCP contr… Yoshifumi Nishida
- Re: [multipathtcp] draft terminology: MPTCP contr… Nigel Williams
- Re: [multipathtcp] draft terminology: MPTCP contr… Christoph Paasch