Рассмотрим эту трассировку Wireshark для запроса регистрации H225 Ras (RRQ):

enter image description here

Как вы можете видеть, Wireshark декодирует requestSeqNum как 25601, но представление байтов - 0x6400, что составляет 25600. Я просмотрел правила кодирования ASN.1 PER, но не могу найти причину, по которой значение должно быть увеличилось на 1. Мой вопрос, правильно ли Wirehark это декодирует, и если да, то где я могу найти это в спецификации?

Код ASN.1:

RequestSeqNum       ::= INTEGER (1..65535)

Фактически, Wireshark последовательно добавляет 1 к requestSeqNum для всех сообщений h225.

3
whosrdaddy 25 Янв 2013 в 17:10

1 ответ

Лучший ответ

Ничего,

Нашел его в Спецификация:

11.5.7.3 (Двухоктетный случай.) Если «диапазон» имеет значение больше или равное 257 и меньше или равное 64К, тогда значение («n» - «lb») должно быть закодировано в двухоктетное битовое поле (выровненное по октетам в варианте ALIGNED) как неотрицательно-двоично-целочисленное кодирование, как указано в 11.3.

Lb (нижняя граница) в данном случае 1, что объясняет мой вопрос. Я смотрел не в том месте в спецификации, у меня голова болит от чтения спецификаций :)

2
whosrdaddy 25 Янв 2013 в 20:20