Я использовал Scapy для отправки пакетов SCCP или Skinny на мой настольный телефон Cisco. Однако я продолжаю получать эти ошибки повторной передачи TCP, и я полагаю, что это заставляет телефон Cisco не отвечать. У меня есть программа, которая может успешно дать команду телефону набрать номер. Например, программа на «10.10.50.12» отправляет четыре пакета и получает два ACK с телефона («10.30.37.78»). Увидеть ниже:
Тем не менее, когда я использую Python и отправляю команды со Scapy:
Wireshark отправляет четыре пакета и даже распознает их как отдельные сообщения, однако я получаю сообщение об ошибке повторной передачи TCP и не получаю подтверждения от телефона.
Странно, но в "SetLampMessage" нет ничего особенного, чтобы он не получил ошибку. Это просто потому, что это был первый отправленный пакет. Если бы я организовал порядок пакетов по-разному, то, что будет отправлено первым, не получит ошибку.
Я попытался сравнить шестнадцатеричные выводы, вот шестнадцатеричное сравнение SetLampMessage:
Программа:
Мой Питон:
Большая часть расхождений между шестнадцатеричными выходами связана с идентификацией и контрольными суммами. Мои идентификаторы всегда как-то равны 0x0001, но я не верю, что это проблема, потому что я смог отправить простые TCP-пакеты без ошибок, даже если все они имеют одинаковый идентификатор.
Я погуглил ошибки "TCP Retransmission", и кажется, что большинство из них происходит из-за того, что ACK не был отправлен обратно, я не думаю, что это также является причиной, потому что я установил различные времена паузы между каждым отправленным пакетом в убедитесь, что мои пакеты отправляются слишком быстро.
Есть ли у просветленного человека представление о том, что я делаю, чтобы вызвать эти ошибки?