Раздел 2.2 RFC 3074 определяет идентификатор транзакции службы (STID) как:
Атрибут отдельных клиентских запросов, используемый для балансировки нагрузки.
Однако, раздел 2 RFC 2131 определяет xid поле DHCP-пакета как:
Идентификатор транзакции, случайное число, выбранное клиентом, используемое клиентом и сервером для связывания сообщений и ответов между клиентом и сервером.
Кажется, они совпадают, пока в RFC 3074 раздел 4:
Серверы DHCP ДОЛЖНЫ использовать идентификатор клиента [ciaddr из RFC 2131] в качестве STID, если он присутствует. Если параметр Client Identifier отсутствует, поле hlen пакета DHCP ДОЛЖНО использоваться как длина хэшируемых данных, а содержимое chaddr ДОЛЖНО быть данными, которые необходимо хешировать. Используются не более первых шестнадцати байтов идентификатора клиента или chaddr.
Из-за этого кажется, что STID и xid — это разные вещи. Итак, какова цель STID? Кроме того, у меня есть захват пакета определенного клиента, выдающего несколько обнаружений, но все с одинаковым точным xid, что не должно быть законным в соответствии с RFC 2131 ("...случайное число") - в какой момент xid поле обновить?