# How truncated timestamps are used?

Consider the following setting: We have a sender $\textbf{A}$ and a receiver $\textbf{B}$. The sender $\textbf{A}$ a wants to send a message $M$ through a channel where each message to $\textbf{B}$ can be up to 8 bytes. Due to the limited size each message can have Truncated Timestamping (TTS) is used.

I am asking myself what possibilities $\textbf{B}$ has in order the check the correctness of the received TTS (this clearly depends on the way the TTS is build, so my question also includes how this is done in practice).

The trivial way would be the cut of the first m bits of the Timestamp and to compare this bits at the receiver end.

• Truncating the most significant bits would work if the possible values have to be recently, but if the window of possible timestamps is large, compressive hashing could be used. Jun 25 '18 at 17:17

how this is done in practice

You always can change "starting point" for timestamp.

This site says that current timestamp is 1529950851 seconds since Jan 01 1970. (UTC). Count seconds from some reference point $T_{ref}$, e.g. $$T_{current} + T_{ref} = T_{real}$$

Depending on the available timestamp size, you can setup different schemes. Lets say, you have 2 bytes for timestamp:

1. Remember current timestamp $T_{ref}$ at both sides, $A$ and $B$, it must be equal.
2. In $2^{16}$ seconds, update $T_{ref}$ on both sides, simply adding $2^{16}$

$$T_{ref} = T_{ref} + 2^{16}$$

This scheme is not reliable, and will fail after long period of time, because of clock skew. To mitigate this issue, you need to sync $T_{ref}$ of both $A$ and $B$ periodically.