Re: [nwcrg] [LOOPS] IETF106: LOOPS side meeting on Tuesday 08:30, Orchard Room

"Zhouxingwang (Joe)" <> Fri, 20 December 2019 01:36 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id DFC42120013 for <>; Thu, 19 Dec 2019 17:36:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id cMbJUcZWmyVi for <>; Thu, 19 Dec 2019 17:36:27 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id BC46F120044 for <>; Thu, 19 Dec 2019 17:36:26 -0800 (PST)
Received: from (unknown []) by Forcepoint Email with ESMTP id 02BA2F30312F289EA9EF; Fri, 20 Dec 2019 09:36:21 +0800 (CST)
Received: from ( by ( with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 20 Dec 2019 09:36:21 +0800
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5; Fri, 20 Dec 2019 09:36:21 +0800
Received: from ([]) by ([]) with mapi id 15.01.1713.004; Fri, 20 Dec 2019 09:36:20 +0800
From: "Zhouxingwang (Joe)" <>
To: Colin Perkins <>
CC: Liyizhou <>, Carsten Bormann <>, "" <>, "" <>
Thread-Topic: [LOOPS] [nwcrg] IETF106: LOOPS side meeting on Tuesday 08:30, Orchard Room
Thread-Index: AQHVtJCXFSjuUH7vWkSxcvxymuEBKae9rDOAgAOrADD//9JsAIABEmdw
Date: Fri, 20 Dec 2019 01:36:20 +0000
Message-ID: <>
References: <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_da8da93a58d048d2b8a7dcb0663b881ehuaweicom_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <>
Subject: Re: [nwcrg] [LOOPS] IETF106: LOOPS side meeting on Tuesday 08:30, Orchard Room
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IRTF Network Coding Research Group discussion list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 20 Dec 2019 01:36:31 -0000

Hi Colin,

Now we synced ☺

It seems egress needs to know the forward RTT to make a good logic of the retransmission requests, the RTT needs to be communicated from ingress, it is non-trivial~~


From: Colin Perkins []
Sent: Friday, December 20, 2019 12:51 AM
To: Zhouxingwang (Joe) <>
Cc: Liyizhou <>om>; Carsten Bormann <>rg>;;
Subject: Re: [LOOPS] [nwcrg] IETF106: LOOPS side meeting on Tuesday 08:30, Orchard Room


I think you misunderstood my email.

I did not suggest statically configuring the timeout. The appropriate value clearly depends on the RTT. LOOPS can give guidance on how it relates to the RTT.

I also did not suggest setting N at both ingress and egress. How often to request retransmissions is a purely local decision at the egress. The ingress does not need to know, or care, how often the egress might send retransmission requests.


On 19 Dec 2019, at 11:35, Zhouxingwang (Joe) <<>> wrote:


Statically configuring a timeout (the period that the ingress will keep the packets in its buffer) is a little bit dangerous, because the local RTT may vary and is not known in advance. If the timeout value is shorter than the real local RTT, it will be bad for LOOPS. So setting an N (how many times a lost packet to be retransmitted, once per RTT) in the system is more preferred.
To simplify the logic, I don’t think setting N at both ingress and egress side is a good idea, because it will make things complicated and N may be set inconsistently by mistake, so setting N and triggering/terminating the retransmission only at one side is better.

Some thinking of this:
1) Set N and make decision at ingress only
   Pros: ingress knows RTT, it will perform N times retransmission and once per RTT well, and expires the packets after N*RTT from the buffer
   Cons: egress needs to know N and RTT, and still have a logic to stop asking for the lost packets

2) Set N and make decision at egress only
   Pros: nearly no logic at ingress, egress keeps asking for lost packets by NACK, and after N*RTT (communicated by ingress) it will pretend it has got them and send ACK to ingress to let it clear the packets from retransmission buffer. Ingress just needs a big enough buffer to hold the packets waiting to be retransmitted, and once the buffer is full the new packet just replace the earliest one
   Cons: forward RTT needs to be communicated from ingress to egress


-----Original Message-----
From: LOOPS [] On Behalf Of Colin Perkins
Sent: Tuesday, December 17, 2019 7:33 PM
To: Liyizhou <<>>
Cc: Carsten Bormann <<>>;<>;<>
Subject: Re: [LOOPS] [nwcrg] IETF106: LOOPS side meeting on Tuesday 08:30, Orchard Room


Is not the ingress logic the same for single or multiple retransmissions? The ingress node will maintain a queue of packets that have been sent and can be retransmitted. Packets expire from the queue if an ACK for their sequence number is received, or after a certain amount of time. Packets are retransmitted if a retransmission request arrives before they expire. You need the timeout to expire packets in case ACKs are lost, so whether the ingress supports single or multiple retransmissions is just a case of configuring the timeout.

If you somehow communicate that timeout to the egress node, then it can make a local decision on whether to make one or more retransmission requests for a lost packet. This would give the egress flexibility to pick an appropriate retransmission request strategy without needing to standardise what that strategy is. LOOPS would define the mechanism and give guidance on choice of the ingress expiration timeout.


On 17 Dec 2019, at 04:14, Liyizhou <<>> wrote:

Hi Carsten and all,

Thanks for putting all these together.

I would like to have a follow-up discussion regarding single retransmission vs. multiple retransmission.

There is a potential choice to design a single retransmission mode *only* mechanism. The reason we might want to do it is the design is easier comparing with a generic retransmission mechanism allowing both single or multiple retransmission by parameter configuration.

For example,  LOOPS egress can mark a lost packet directly as "received" after it feedbacks a few ACKs to indicate a lost packet. Ingress removes the packet from its cache after a single retransmission. Once the retransmitted packet reaches the egress, egress simply forwards it. Such a mechanism only works for single retransmission.
In this way, egress has a simple logic to decide when to stop sending the indication about a "lost" packet.  And the ingress does not need a logic to control whether and when 2nd and later retransmissions should be performed.

In multiple retransmission, it has to be more carefully designed to sync up when the egress gives up asking for retransmission and  when the ingress can remove the packet from its cache since no more retransmission is required.  As LOOPS does not provide 100% reliability, normally egress side should be the one determines when to give up asking for retransmission. Then egress needs to know the local forward RTT if multiple retransmission is expected.

So single retransmission *only* can be worth considering. It is a design choice more than an implementation choice to me.
If there is a simple and efficient way to unify both, I would be more than happy to learn.


-----Original Message-----
From: nwcrg [] On Behalf Of Carsten Bormann
Sent: Monday, December 16, 2019 4:22 AM
Subject: Re: [nwcrg] [LOOPS] IETF106: LOOPS side meeting on Tuesday 08:30, Orchard Room

Thanks again everyone for the participation at the LOOPS side meeting and in our slot at the NWCRG meeting.

I have compiled more detailed notes, with links to/copies of the meeting materials, at

Please do have a look at the notes, specifically [1] and [2], and send corrections and additions.  Also, there were a few items in the NWCRG discussion where there may be results that we already can point to; as Marie-Jose said, please send them to both mailing lists.

Grüße, Carsten


nwcrg mailing list<>
LOOPS mailing list<>

Colin Perkins

LOOPS mailing list<>