CTP использует ожидаемые передачи (ETX) в качестве своего
маршрутизируемого градиента. Корень имеет значение ETX равное 0. ETX узла – это сумма ETX его
родителя плюс ETX своих связей со своим родителем. Эта дополнительная единица измерения подразумевает,
что узлы используют повторные передачи на канальном уровне. При выборе допустимых маршрутов, CTP
ДОЛЖЕН выбирать узел с наименьшим значением ETX. CTP представляет ETX -величины как 16-битные
десятичные реальные числа с фиксированной запятой с точностью до десятых. ETX величиной 45, например,
представляется ETX = 4.5, тогда как ETX величиной 10 представляется как ETX = 1.
Зацикливания маршрутизации – проблема, которая может появиться в CTP
сети. Зацикливания обычно случаются в случае, когда узел выбирает новый маршрут, который имеет
больший ETX, чем его устаревшее значение, что возможно при потере соединения с потенциальным
родителем. Если новый маршрут включает узел, который был потомком, возникает зацикливание (петля).
CTP адресует зацикливания посредством двух механизмов. Первый - каждый
пакет CTP содержит текущую величину градиента узла. Если CTP получает кадр данных с величиной
градиента меньше, чем его собственный, то это говорит, что в дереве присутствует несогласованность.
CTP пытается разрешить противоречие широковещательным кадром «неисправности», с надеждой, что
пославший кадр данных узел «услышит» и исправит свои маршруты соответствующим образом. Если коллекция
узлов отделена от остальной части сети, то они будут формировать петлю ETX которых будет
увеличиваться постоянно. Второй механизм CTP – не рассматривает маршруты с величиной ETX большей,
чем какая-то приемлемое константа. Величина этой константы зависит от реализации.
Дублирование пакетов – это дополнительная проблема, которая может
появиться в CTP. Дублирование пакетов появляется, когда узел успешно получает кадр данных и отсылает
флаг ACK, но ACK не получен. Отправитель повторно передает пакет и, если получатель получает его
второй раз. Это может иметь пагубный эффект на протяжении многих хопов, так как дублирование
изменяется экспоненциально. Например, если каждый хоп в среднем производит один дубль, то на первом
хопе будут два пакета, на втором уже четыре, на третьем - восемь и т.д. CTP поддерживает небольшой
кэш сигнатур для пакетов, которые он распознал как дублированные. При поступлении нового пакета,
если его сигнатура находится в кэще, то CTP отбрасывает такой пакет как дубль.
Зацикливания маршрутов усложняют подавление дублирования, так как петля
может стать причиной того, что узел получит пакет легитимно более одного раза. Поэтому, если узел
подавляет дублирование основываясь только на исходном адресе и последовательном номере, пакеты в
зацикленном маршруте могут быть отброшены. Поэтому кадры данных в CTP имею дополнительное поле
«время жизни» (THL), которое инкрементируется с каждым хопом на уровне маршрутизации. Повторная
передача на канальном уровне имеет одно и то же значение THL, тогда как «зацикленная» версия
пакета вряд ли будет иметь такое же значение.