Re: [nwcrg] Review of draft-irtf-nwcrg-bats-00 - Part #1

Shenghao Yang <> Wed, 28 July 2021 08:03 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id B7E963A2253 for <>; Wed, 28 Jul 2021 01:03:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id pHR9THGacVRr for <>; Wed, 28 Jul 2021 01:03:39 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4864:20::330]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 06A263A2251 for <>; Wed, 28 Jul 2021 01:03:38 -0700 (PDT)
Received: by with SMTP id z6-20020a9d24860000b02904d14e47202cso1256387ota.4 for <>; Wed, 28 Jul 2021 01:03:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=n9JWqMS37zrhGwjX7rtF+FO7DMZ//ulz9KErgwJiDnY=; b=OwMDNvNx5ZJHaLoCoVPEfCIpp2VNtbMqWEnqG0QRyZ8NpsMwNcjwBNfMxzQwfuD3Tg zRkoeY2GRcAnTRtc2ZgPQLL9QeKeTd2x2kzQZkI62GH5BKcuVr1qcikc0S2nsRHzz/E4 m+bOCuFkRf9Hu+GmcJ37JPwrtzrxzoaR9edvsJCVV1Q5y/pmb/Wq5YLXfLnj/66LN8rL T46ekgnvgduJ+td6dLG59QZ+sOgQUGKl808Pi0/MU3rMev6RJPtzJr/lcoKUtpOjfXBM hYpFySz5epWPqpZbtvAFoXwEZbnGXCFYgneIK1ecBjKr1xmOTsUYDpkbMQuyAPYVdMMn rM5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=n9JWqMS37zrhGwjX7rtF+FO7DMZ//ulz9KErgwJiDnY=; b=WPol3gQ9oMMiwFBjEEy4jGrHFylUab+BvpczK3pLQP2BrLkGEeRMbruA1w1bHcQzXR Pj52q3LQC5+jEsDB2YmaG+eJwq4pnAKOrIIzNwOFxRipaHU8JwdHBgTiCvwLwZvgdElO mTQfNOtJk2JxuLPA5O8ZwZpkUfGb/WlGHR19z72OBUy0r3IxXC7K/fl8GElYeOHvkFVT 4zwaHGE6g1TTZfxr/7sr1XWfrXtZGbmE6I+9pr1/X9PqoY4ikpYI5GWfWMHOkZ9tkcaj vvTX0BRA2hWkjRCUs1dxDNFTSr2G0GzFVnY8JpWLUyeQF+6DEmdMGkgmzjeZ7IyG+njW +yBQ==
X-Gm-Message-State: AOAM5314ZZ+tHYo6hymIo4WLw3VMSEEdrtNqr3Kd/b/qzFQ4rgmg06Pi eci1s0Smj1ZEOY9D+xWUJETV6DFENiYyAV1LLJc=
X-Google-Smtp-Source: ABdhPJyMdfxhxOWEy5Hq/Wh0nWti3i+L91KTK9hego5saa0yae8ULehmELR4WCoVruwOYYX/sdnKME24hpHhYmB5BeE=
X-Received: by 2002:a05:6830:1dad:: with SMTP id z13mr18144506oti.1.1627459416989; Wed, 28 Jul 2021 01:03:36 -0700 (PDT)
MIME-Version: 1.0
References: <>
In-Reply-To: <>
From: Shenghao Yang <>
Date: Wed, 28 Jul 2021 16:03:26 +0800
Message-ID: <>
To: Vincent Roca <>
Content-Type: multipart/alternative; boundary="0000000000006fa32805c82a6cd1"
Archived-At: <>
Subject: Re: [nwcrg] Review of draft-irtf-nwcrg-bats-00 - Part #1
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: Wed, 28 Jul 2021 08:03:45 -0000

Dear Vincent,

Thanks for the detailed comments. We just updated the doc:

In 01, we made the following major changes to address these comments.

1. A new section, 1.2 Terminology and Definitions, is added to define some

2. Section 2 is changed to A Use Case of BATS Coding Scheme. We modified
the content of this section so that it is an example about how to use a
BATS coding scheme in a Data Delivery Protocol.

See also our point-to-point response below.


authors of draft-irtf-nwcrg-bats

On Wed, Apr 21, 2021 at 11:53 PM Vincent Roca <> wrote:

> Dear authors, dear Raymond,
> Please find below a first review of the I-D, from abstract to section 2
> included.
> Sorry, I couldn’t find time to do that earlier.
> I hope it will be useful.
> Cheers,
>   Vincent
> —
> *## Missing text common to all IRTF RFCs:*
> - To be added in the abstract:
>         This document is a product of the Coding for Efficient Network
> Communications Research Group (NWCRG).
> - To be added in the introduction:
>          This document is a product of and represents the collaborative
> work
>         and consensus of the Coding for Efficient Network Communications
>         Research Group (NWCRG); it is not an IETF product and is not an
> IETF standard.
> *## Main comments*
> ** Generally speaking, it is not clear whether this doc is about BATS, a
> FEC scheme, or a Data Delivery
> Protocol that leverages on the BATS FEC Scheme.This needs to be clarified
> first as there are consequences.
> My understanding: this I-D focusses on the FEC Scheme.
> We see that the confusion may come from Sec 2. In the beginning of Sec 2,
we add a section to make it explicit that this document is not about a Data
Delivery Protocol. The purpose of describing a DDP is to make the role of
the BATS coding scheme clear. We change the title of Sec 2 to A Use Case of
BATS Coding Scheme.

> ** Could you add a terminology and definitions section? That would be
> useful.
> There are many terms used later on (e.g., batch) that are never formally
> defined.
> We add Sec 1.2 Terminology and Definitions

> ** Section 2.1:
> - this is a key section (main concepts) and it needs to be perfect. It is
> said:
>         "The BATS coding scheme can be used for a single data flow that
>         includes a single source and one or multiple destinations"
> Should I understand "MUST be used"? "Can" is ambiguous and I understand
> this is indeed the case.
> - an illustration could help understanding and memorising the terminology.
> The BATS coding scheme can also be used in the scenario with two sources
of the same file. Both sources can encode the file independently using this
coding scheme. A destination can receive batches from both sources. To make
things clear, we specify that we describe a data delivery process that
involves one source, one  destination, and multiple intermediate nodes. We
also add an illustration to the network model.

> ** Section 2.2: instead of MTU, one would rather talk about "Path MTU" /
> PMTU (minimum MTU along a path in case of
> a single destination, or along all paths in case of multicast).
> Of course, if the network is fixed and well-known, this is much simpler.
> At the other spectrum, since routing can
> change, this minimum PTMU can vary over the time (opt for a conservative
> value then).
> We use PMTU in the new version.

> ** Section 2.2.1, fig. 1:
> Infinite loops are prohibited ;-)
>         for i = 1, 2, ... do
> I don't understand the notation (quite unusual):
>         bl[Z...T-1] = i
> Is the goal to fill all bytes between offset Z and T-1 with value i?
> We updated the figure to resolve both issues.

> ** Section 2.2.2:
> - the notation "DD" is not defined in: " o  MAX_DEG: the size of DD." (and
> later)
> - I think there's a mistake (DDP => DD?) in:
>         For the batch ID j, the encoder returns the DDP that contains...
> We redefine MAX_DEG as a positive integer, and rephrase the sentence that
generates confusion.

- Be careful, by saying:
>    « The DDP will also include some necessary extra information in the
>    packet header so that the network nodes can identify different BATS
>    sessions, and different end-to-end communication flows.  However,
>    such specifications are beyond the scope of this document. »
> it follows that interoperability cannot be achieved (we are talking her
> about headers!).
> Yet I can understand that the present I-D focusses on the BATS FEC Scheme,
> not the DDP.
> The FEC scheme does not have to care about session identification.
> In the new version, this paragraph is removed as this section focuses on
how to use a BATS coding scheme in data delivery, instead of specifying a

> ** Section 2.2.3:
> I have the feeling that an intermediate node does not necessarily need to
> perform recoding. This is
> just an optional process. Additionally, by specifying the BATS FEC scheme,
> this is more an operational
> decision to recode or not, that does not impact the BATS scheme itself
> that is compatible with this
> decision.
> Yes, it is possible. We add the description that a DDP may choose
forwarding without recoding.

> ** Section 2.2.4
> - The legend of fig.2, "depadding", is strange and contradicts the last
> sentence before it:
>     "the recommended padding process...".
> We change related descriptions as padding insertion and  deletion.

> - I also have the feeling that most of the important stuff is omitted:
> where do we decode, how do we
> manage both the inner and outer decoding, etc. I am very confused after
> reading it.
> I think you should say the bare minimum here and refer to the appropriate
> section 3.
> We emphasize in the new version that the decoder decodes the inner code
and the outer code jointly.

> ** Section 2.3
> Yes I understand, and when there's a continuous data flow, without any
> real-time constraints, it
> will work. When you only have enough data to fill 4-5 packets, nothing
> else during a few seconds
> and cannot afford to wait, what do you do?
> That's a side topic, sure, more for the DDP protocol than the BATS FEC
> scheme.
> The BATS coding scheme described in this document is not supposed to be
the most efficient one when the number of packets is very small.  We add
this remark in the new version.

> ** Section 2.4.1:
> Why a different name for the same concept in:
>         Packet_Count: 16-bit unsigned integer, specifying the number K of
>               packets of the BATS session.
> Use K or Packet_count, not a mix of the two.
> Remove Packet_Count.

> ** Section 2.4.2:
> It's pretty unusual, in a tight packet, to use JSON or even protobuf.
> Do you really need the associated flexibility?
> The sentence about  JSON is removed.

> ** Section 2.4.3
> A signature in two bytes is not realistic (finding an arbitrary cleartext
> that collides to a target space of 2^16 is easy).
> HMAC will typically be 32 bytes long, they can be truncated to 16 bytes
> (e.g., with HMAC-SHA256-128).
> There can be other techniques depending on assumptions, but in any case we
> are far away from two bytes.
> Please be more specific or remove it altogether. I also think this is more
> a DDP protocol topic than a BATS FEC
> Scheme topic.
> I don't think a parity check is meaningful, integrity is part of the HMAC.
> We remove Sec 2.4.3 about packet footer, which is of
primary importance about how to use a BATS coding scheme.

> *## Minor comments*
> ** In order to produce the appropriate I-D header, if ever you use xml
> formatting, you can add:
>   <area>IRTF</area>
>   <workgroup>NWCRG</workgroup>
> (see for example:
> )
> It will avoid a mention "Internet Engineering Task Force".
> ** Section 2.2.1: it is said:
>     "are filled with data bit..."
> Use octets rather than bits when talking about the packet payload.
> _______________________________________________
> nwcrg mailing list