Re: [rmcat] Packet reordering

Lennart Schulte <lennart.schulte@aalto.fi> Thu, 08 May 2014 07:12 UTC

Return-Path: <lennart.schulte@aalto.fi>
X-Original-To: rmcat@ietfa.amsl.com
Delivered-To: rmcat@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 554E41A010A for <rmcat@ietfa.amsl.com>; Thu, 8 May 2014 00:12:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.652
X-Spam-Level:
X-Spam-Status: No, score=-0.652 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, RP_MATCHES_RCVD=-0.651] autolearn=ham
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 f8FVj7hIKzLW for <rmcat@ietfa.amsl.com>; Thu, 8 May 2014 00:12:14 -0700 (PDT)
Received: from smtp-out-02.aalto.fi (smtp-out-02.aalto.fi [130.233.228.121]) by ietfa.amsl.com (Postfix) with ESMTP id 22DA71A0032 for <rmcat@ietf.org>; Thu, 8 May 2014 00:12:13 -0700 (PDT)
Received: from smtp-out-02.aalto.fi (localhost.localdomain [127.0.0.1]) by localhost (Email Security Appliance) with SMTP id 82B4A2711E1_36B2E48B for <rmcat@ietf.org>; Thu, 8 May 2014 07:12:08 +0000 (GMT)
Received: from EXHUB03.org.aalto.fi (exhub03.org.aalto.fi [130.233.222.116]) by smtp-out-02.aalto.fi (Sophos Email Appliance) with ESMTP id 0D7E8271088_36B2E48F for <rmcat@ietf.org>; Thu, 8 May 2014 07:12:08 +0000 (GMT)
Received: from [130.233.154.122] (130.233.154.122) by mail.aalto.fi (130.233.222.116) with Microsoft SMTP Server (TLS) id 14.3.174.1; Thu, 8 May 2014 10:12:07 +0300
Message-ID: <536B2E47.7090005@aalto.fi>
Date: Thu, 08 May 2014 10:12:07 +0300
From: Lennart Schulte <lennart.schulte@aalto.fi>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: rmcat@ietf.org
References: <81564C0D7D4D2A4B9A86C8C7404A13DA31F5D7C5@ESESSMB205.ericsson.se> <21014_1399245468_5366CA9C_21014_40_1_CAMzhQmPq5w2kVwEBRZKnJkbRyVPUkGp3d2TPy53bwwP-jzhBCw@mail.gmail.com>
In-Reply-To: <21014_1399245468_5366CA9C_21014_40_1_CAMzhQmPq5w2kVwEBRZKnJkbRyVPUkGp3d2TPy53bwwP-jzhBCw@mail.gmail.com>
X-Enigmail-Version: 1.5.2
Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="SLjSbUr8BMvRiuKeWbKd5X98MxaU57f59"
X-Originating-IP: [130.233.154.122]
Archived-At: http://mailarchive.ietf.org/arch/msg/rmcat/qH5oGfgFutU3Me6SQj_pBH_VoAc
Subject: Re: [rmcat] Packet reordering
X-BeenThere: rmcat@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "RTP Media Congestion Avoidance Techniques \(RMCAT\) Working Group discussion list." <rmcat.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rmcat>, <mailto:rmcat-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rmcat/>
List-Post: <mailto:rmcat@ietf.org>
List-Help: <mailto:rmcat-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rmcat>, <mailto:rmcat-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 08 May 2014 07:12:19 -0000

Hi,
while measuring 3G and 4G networks I also saw reordering: 35% of all
connections (12392 in 3G and 676 in 4G) had reordering. In about 2% of
these reordering events the reordering extent was at least 3 packets
large (which caused TCP to spuriously enter fast recovery).

We are currently working on 2 drafts about TCP robustness to reordering,
maybe they are of interest:
- Detection and quantification
  http://tools.ietf.org/html/draft-zimmermann-tcpm-reordering-detection
- Reaction and prevention
  http://tools.ietf.org/html/draft-zimmermann-tcpm-reordering-reaction

Regards,
Lennart


On 05/05/2014 02:17 AM, Keith Winstein wrote:
> Hello Ingemar,
> 
> I'd have to do a more careful (and recent!) measurement to answer you
> clearly, but my recollection is that it was generally not deep enough
> to cause a triple dupack except perhaps very rarely. Generally
> speaking, as I recall the typical behavior was to see groups of 3-4
> MSS-sized TCP segments randomly swizzled.
> 
> My experience matches yours re: commercial service on 1xEV-DO, UMTS
> and LTE networks.
> 
> Best regards,
> Keith
> 
> On Sun, May 4, 2014 at 3:47 PM, Ingemar Johansson S
> <ingemar.s.johansson@ericsson.com> wrote:
>> Hi
>>
>> Change subject line a bit.
>>
>> Thanks for intersting input Keith. Do you have any data on how deep the repordering is?. Is it deep enough to cause 3-duplicate ACKs in TCP ?, I would belive that people would start to complain about poor TCP performance ?. Admit that I occasionally experince poor TCP performance in my home network but I have sofar blamed it not normal packet losses but perhaps there could be other causes.
>>
>> The precense of reordering in 3GPP networks depend. If we consider just default (best effort) bearers and look at the radio interface only then the answer is that reordering will not happen, the reason is that the default bearers use Acknowledged mode transmission with guaranteed in order delivery to higher layers. There are other e.g QoS bearers that use Unacknowledged mode transmission in which case reordering may occur.
>> Going to the backhaul. As I mentioned in an earlier email, reordering may occur here due to load balancing and I have seen examples of that, however only enough to trigger one dupACK. In teory GTP-U sequence numbers can be enabled and the packet ordering can be restored at the tunnel egress, doubt however that this is used.
>>
>> I don't argue against testing robustness against reordering (within reason) but perhaps it should then be a separate test case if necessary ? Somehow I believe however that reordering is a bigger challenge for audio and video rendering (necessiates a receiver buffer) than for the actual rate adaptation algorithms.
>>
>> /Ingemar
>>
>>> -----Original Message-----
>>> From: Keith Winstein [mailto:keithw@mit.edu]
>>> Sent: den 2 maj 2014 22:09
>>> To: rmcat@ietf.org
>>> Subject: Re: [rmcat] rmcat Digest, Vol 21, Issue 2
>>>
>>> Our experience with packet reordering has actually been quite different. We
>>> (Mosh) have found that packet reordering can be extremely common on
>>> 802.11n networks when the "block acks" feature is used and a link is
>>> saturated, at least with some receiving 802.11n chipsets, including the ones in
>>> MacBooks.
>>>
>>> In Mosh version 1.2.2, we turned on an advisory warning when packets were
>>> reordered in the network, because we thought that in practice reordering
>>> was rare enough to be notable and might signify an attempted attack.
>>>
>>> After the release, we got a lot of complaints that the warning was showing
>>> up frequently for users on enterprise 802.11n networks using the MacBook
>>> and a few other devices. On a full-throttle TCP download to a MacBook Pro,
>>> we found that something like 30-50% of all TCP segments were being
>>> delivered out of order! And Mosh's UDP datagrams were seeing similar
>>> treatment when there was a back-to-back flight of them. We ended up
>>> disabling the warning in v1.2.3.
>>>
>>> As I understand, the block acks feature means that a sender may transmit a
>>> whole chunk of frames (some of which will be received without error and
>>> some won't), and then the receiving station can tell the sender which frames
>>> were successfully received and which need to be retransmitted. In the
>>> meantime, the receiver can deliver the successfully-received datagrams to IP
>>> or wait.
>>>
>>> RFC 3366 3.1 essentially advises link designers that they should use a receive-
>>> side reordering buffer to try to put datagrams back in order before delivery
>>> to IP, but our testing suggests that common 802.11n receive chipsets don't
>>> do this in practice.
>>>
>>> So our experience has been that in the contemporary Internet (at least on
>>> some 802.11n networks), reordering can be much more common than we
>>> had initially believed.
>>>
>>> On Fri, May 2, 2014 at 3:00 PM,  <rmcat-request@ietf.org> wrote:
>>>> ---------- Forwarded message ----------
>>>> From: Randell Jesup <randell-ietf@jesup.org>
>>>> To: rmcat@ietf.org
>>>> Cc:
>>>> Date: Fri, 02 May 2014 05:49:16 -0400
>>>> Subject: Re: [rmcat] draft-sarker-rmcat-eval-test-00, test case 4.4
>>>> RMCAT Flow competing with a long TCP Flow On 4/30/2014 1:51 PM, Colin
>>> Perkins wrote:
>>>>>
>>>>> On 30 Apr 2014, at 07:50, Zaheduzzaman Sarker
>>> <zaheduzzaman.sarker@ericsson.com> wrote:
>>>>>>
>>>>>> Are you saying re-ordering is not a phenomena that we can observe in
>>> the current Internet? And we should not have test cases to handle re-
>>> ordering of packets in RMCAT?
>>>>>
>>>>> One of my students collected some UDP streaming measurements from
>>> our university to hosts on residential networks, covering all the main UK ISPs,
>>> a couple of years ago. With everything using wired connections and UDP we
>>> saw a couple of hundred packets delivered out of order, from ~250 million
>>> packets sent. I can dig into the details of the re-ordering patterns if there’s
>>> interest. We didn’t analyse them too closely at the time because packet loss
>>> and delay spikes were much more common.
>>>>
>>>>
>>>> Having it not fall over on (some) reordering: good.  My experience has
>>> been only specific unusual network/hardware situations cause more than
>>> 0.0x% reordering of packet delivery (at the IP level, ignoring things like TCP
>>> retransmit, which is not an IP-level reordering in the way I'm discussing).
>>>>
>>>> I've seen significant reordering only on a network (an old office network of
>>> mine!) where we had multiple bonded T1's and the packets went across one
>>> of them randomly (I presume).  I think I got to low-single-digit percent or
>>> more likely 0.n% (like 0.1-0.9%) reordered.  There may also be some wireless
>>> networks where this is more likely than on normal wired; I haven't noticed it
>>> on WiFi though.
>>>>
>>>> It's easy to accidentally set up DummyNet/etc to cause massive packet
>>> reordering, however.  I do not think that should be a primary or even
>>> secondary testcase, and (to be honest) I don't think we should care much
>>> about degenerate reordering cases.  I'm not even sure we should bother
>>> spending much energy in our evaluation tests making it happen at all (which
>>> isn't to say that the algorithm authors shouldn't consider it and if they feel it
>>> would affect them, test it or discuss it - plus they will see a small amount of it
>>> on real networks).
>>>>
>>>
>>
>