Рассмотренное ограничение вполне приемлемо. Для повышения точности идентификации наличия ограничений на передачу в период, покрываемый пакетом обратной связи отправитель может сохранять больше значений NotLimited.
В некоторых реализациях TFRC отправитель передает временные метки с грубым разрешением, которые увеличиваются каждую четверть периода кругового обхода, и пакеты обратной связи сообщают наибольший порядковый номер принятого пакета вместо временной метки последнего полученного пакета. В таких случаях отправитель может поддерживать состояние для каждого пакета, чтобы определить время t_new, когда был передан подтверждаемый пакет, или оценить t_new по оценке периода кругового обхода и прошедшему времени t_delay из пакета обратной связи.
8.2.2. Поддержка X_recv_set
Для упрощения поддержки X_recv_set достаточно ограничить размер массива X_recv_set тремя элементами (N=3). В этом случае процедура Update X_recv_set() будет иметь вид:
Update X_recv_set(): Добавить X_recv к X_recv_set; Удалить из X_recv_set значения с возрастом более 2 периодов кругового обхода; Сохранить только N последних значений.
Поддержка лишь пары элементов в X_recv_set будет достаточна отправителю для сохранения старого значения X_recv перед периодом ограниченной передачи данных и позволяет отправителю не ограничивать себя по первому пакету обратной связи после периода бездействия, сообщающему о получении одного пакета за период кругового обхода. Однако возможны ситуации, когда поддержка только двух элементов в X_recv_set не обеспечит столь же активной работы, как в случае с поддержкой трех элементов. Поддержка трех элементов в X_recv_set позволяет сохранять в X_recv_set значения X_recv из двух последовательных пакетов обратной связи и значение X_recv для последнего факта потери.