TCP Usage Guidance in the Internet of Things (IoT)

Note: This ballot was opened for revision 11 and is now closed.

Erik Kline Yes

(Deborah Brungard) No Objection

(Alissa Cooper) No Objection

Roman Danyliw No Objection

Comment (2020-10-20 for -11)
No email
send info
Thanks for this practical guidance to implementers.  A few minor nits:
ection 4.1.2. Typo. s/bandwitdh/bandwidth/

Section 4.2.1. Editorial.  s/implementation are/implementations are/

Section 6. Typo. s/ targetted/targeted/

Section 8.7.  Typo. s/ differrent/different/

Martin Duke (was Discuss) No Objection

Comment (2020-10-30)
Thanks for addressing my DISCUSS.

Original comments, since resolved:

Please address the tsv review comments.

Sec 4.2.3
 s/Disabling Delayed ACKs at the
   sender allows an immediate ACK/Disabling Delayed ACKs at the
   request sender allows an immediate ACK

Sec 4.3.1
   When a multiple-segment window is used, the receiver will need to
   manage the reception of possible out-of-order received segments,
   requiring sufficient buffer space.

It's worth pointing out here that even a 1 MSS window should also manage out-of-order arrival, as the sender may send multiple sub-MSS packets that fit in the window. (On the other hand, the receiver is free to simply drop the out-of-order segment, thus forcing a retransmission).

s/since with SACK recovery/since SACK recovery

Benjamin Kaduk No Objection

Comment (2020-10-21 for -11)
No email
send info
[edited to properly attribute the Discuss holder]
Mostly just editorial nits, but please see the comment on Section 5.3.

Section 2

(I believe the existence of the RFC 8174 version of the BCP 14
boilerplate has already been noted.)

Section 3.2

   or devices with a pool of multiple send/receive buffers.  In the
   latter case, it is possible that buffers also be shared for other

nit: s/be/are/ (or any number of other minor tweaks)

   One key use case for the use of TCP in CNNs is a model where

nit: "use case for the use" is probably redundant: "use case for TCP in
CNNs" seems like it would work okay.

   middlebox (e.g. a firewall, NAT, etc.).  Figure 1 illustrates such
   scenario.  Note that the scenario is asymmetric, as the unconstrained

nit: "such a scenario".

Section 3.3

   o  Unidirectional transfers: An IoT device (e.g. a sensor) can send
      (repeatedly) updates to the other endpoint.  Not in every case
      there is a need for an application response back to the IoT

(editorial) I suggest "There is not always a need for an application
response back to the IoT device".

Section 4.1.1

   smaller than 1220 bytes (e.g. not larger than 1200 bytes).  Note that
   it is advised for TCP implementations to consume payload space
   instead of increasing datagram size when including IP or TCP options
   in an IP packet to be sent [RFC6691].  Therefore, the suggestion of

[my reading of RFC 6691 is that it was required to consume payload
space, but only recommended to account for this behavior when
advertising MSS.  I guess Martin covered this in his Discuss point already, though.]

Section 5.3

   The message and latency overhead that stems from using a sequence of
   short-lived connections could be reduced by TCP Fast Open (TFO)
   [RFC7413], which is an experimental TCP extension, at the expense of
   increased implementation complexity and increased TCP Control Block
   (TCB) size.  TFO allows data to be carried in SYN (and SYN-ACK)

We should probably make at least a passing mention of the TFO security
considerations here, possibly with some discussion of why they are less
consequential for certain CNNs than in general.  (Note that the security
considerations for TFO are not limited to just the risk of replay, and
that there are privacy considerations for the TFO cookie being used to
link together multiple TCP connections between the same endpoints.)

Section 10.1

RFC 3819 may not need to be listed as normative, given the nature of the
one place in which it is referenced.

Similarly, we don't say much about TCP-AP other than it exists, so RFC
5925 may not need to be normative either.

Section 10.2

RFC 6092 appears to not be referenced from anywhere?
idnits notes a couple other reference-related issues.

Murray Kucherawy No Objection

Comment (2020-10-22 for -11)
Piling on: You don't appear to need Section 2.

Is Section 8 meant to be removed before publication, a la RFC 7942?

(Barry Leiba) No Objection

Comment (2020-10-21 for -11)
Thanks for a useful document.  I just have a few editorial things here:

— Section 1 —

   However, TCP has been
   criticized (often, unfairly) as a protocol for the IoT.  In fact,
   some TCP features are not optimal for IoT scenarios, such as
   relatively long header size, unsuitability for multicast, and always-
   confirmed data delivery.  However, …

Both of these sentences have nit-level problems that make them a bit off.  The first sounds like the criticism is that TCP is a protocol for IoT (rather than that it’s not suitable for that usage).  The second has the examples misplaced, so it look as though they’re examples of IoT scenarios (rather than examples of TCP features).  And “in fact” has the wrong feel here: it would normally be used to contradict the previous sentence, not to explain it.  (And two “however”s in close proximity also feels awkward)  I suggest this fix:

   TCP has been
   criticized, often unfairly, as a protocol that’s unsuitable for the
   IoT.  It is true that some TCP features, such as its relatively long
   header size, unsuitability for multicast, and always-confirmed data
   delivery, are not optimal for IoT scenarios.  However, …

   TCP is also used by non-IETF application-
   layer protocols in the IoT space such as the Message Queue Telemetry
   Transport (MQTT) and its lightweight variants.

It’s “Message Queuing Telemetry Transport”, and an informative reference to ISO/IEC 20922 <> wouldn’t be a bad thing.

Alvaro Retana No Objection

Martin Vigoureux No Objection

Éric Vyncke (was Discuss) No Objection

Comment (2020-10-30)
Updated position as the previous DISCUSS point below (kept for archives) and COMMENTs have been addressed


Thank you for the work put into this document. It is an important topic and the document is both easy to ready and detailed.

Please find below one trivial DISCUSS point and a couple of non-blocking COMMENT points but please also check:
- Ines Robles IoT directorate review:
- Bernie Volz Internet directorate review:

I hope that this helps to improve the document,



Should a reference to RFC 8900 be added in the MTU discussion in section 4.1 ?

-- Section 2 --
As noted by many, the BCP 14 boiler plate is the old one and the normative terminology is not used in this informational document. => remove it ?

(Magnus Westerlund) No Objection

Robert Wilton No Objection

Comment (2020-10-20 for -11)

Thank you for this document.  It is somewhat outside my area of expertise, but I do not see any network management related issues.

One minor comment:

    3.2.  Usage scenarios

       There are different deployment and usage scenarios for CNNs.  Some
       CNNs follow the star topology, whereby one or several hosts are
       linked to a central device that acts as a router connecting the CNN
       to the Internet.  CNNs may also follow the multihop topology

Perhaps: "Alternatively, CNNs may also follow ... ", otherwise it feels like this paragraph stops quite abruptly, whereas from the first couple of sentences I was expecting it to say a bit more about the different deployment scenarios.