Skip to content

Commit f586342

Browse files
restore the original meaning of the transfer-ID description although using better wording
1 parent d36458b commit f586342

File tree

1 file changed

+4
-25
lines changed

1 file changed

+4
-25
lines changed

specification/transport/abstract.tex

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -488,11 +488,7 @@ \subsubsection{Transfer-ID}\label{sec:transport_transfer_id}
488488
the number of unique transfer-ID values is referred to as \emph{transfer-ID modulo}.
489489

490490
The 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.
496492
Once a new transfer-ID counter is created,
497493
it 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

719698
If the optimal transfer-ID timeout value for a given session cannot be known in advance,
720699
it can be computed at runtime on a per-session basis\footnote{%

0 commit comments

Comments
 (0)