@@ -488,11 +488,7 @@ \subsubsection{Transfer-ID}\label{sec:transport_transfer_id}
488488the number of unique transfer-ID values is referred to as \emph {transfer-ID modulo }.
489489
490490The initial value of a cyclic transfer-ID counter shall be zero.
491- The initial value of a monotonic transfer-ID counter should be chosen randomly whenever a new transfer-ID counter
492- is created, unless the execution environment does not provide a good source of true random numbers,
493- in which case zero initialization can be used as the fallback solution\footnote {%
494- Refer to section \ref {sec:transport_transfer_reception } for the rationale behind random numbers.
495- }.
491+ The initial value of a monotonic transfer-ID counter should be zero.
496492Once a new transfer-ID counter is created,
497493it should be kept at least as long as the node remains connected to the network.\footnote {%
498494 The number of unique session specifiers is bounded and can be determined statically per application,
@@ -695,26 +691,9 @@ \subsubsection{Behaviors}
695691 Unintentional duplications may be introduced by various artifacts of the transport network.
696692}.
697693
698- For a given session specifier, a successfully reassembled transfer that is either:
699- \begin {itemize }
700- \item temporally separated from any other successfully reassembled transfer under the same session specifier
701- by more than the transfer-ID timeout, or
702- \item has a transfer-ID value that is at least one million counts\footnote {%
703- The probability of randomly picking a 64-bit value that falls into a given million-count span
704- is approximately one in 18 trillion.
705- }
706- less than that of the last successfully reassembled transfer,
707- \end {itemize }
708- is considered unique regardless of its transfer-ID value.\footnote {%
709- A large leap backward indicates that the sender has lost the state of its transfer-ID counter
710- (e.g., due to power cycling); this is why random initialization is preferred for all nodes.
711- An exception is made for resource-constrained nodes implemented in small MCUs, which may not have access
712- to a good source of entropy to provide distinct transfer-ID values at every boot,
713- in which case zero initialization is acceptable.
714- A possible issue with constant initialization is that once a node is restarted, from the receiver's standpoint
715- it will appear that it is sending duplicate transfers, which will be rejected until the expiration of the
716- transfer-ID timeout.
717- }
694+ For a given session specifier, a successfully reassembled transfer that is
695+ temporally separated from any other successfully reassembled transfer under the same session specifier
696+ by more than the transfer-ID timeout is considered unique regardless of its transfer-ID value.
718697
719698If the optimal transfer-ID timeout value for a given session cannot be known in advance,
720699it can be computed at runtime on a per-session basis\footnote {%
0 commit comments