38 / 31 / 9
Регистрация: 29.03.2019
Сообщений: 345
|
|||||||||||
1 | |||||||||||
Подсчет контрольной суммы заголовка IP пакета31.10.2019, 15:09. Показов 3676. Ответов 13
Здравствуйте, уважаемые форумчане.
На канале narodstream автор производит подсчет контрольной суммы пришедшего IP пакета следующей функцией.
0
|
31.10.2019, 15:09 | |
Ответы с готовыми решениями:
13
Структура пакета и расчет контрольной суммы для RS485 Ошибка контрольной суммы передаваемого пакета при выставлении Parity Odd Расчет контрольной суммы ip заголовка Проблема рассчета контрольной суммы TCP-заголовка Подсчёт контрольной суммы |
38 / 31 / 9
Регистрация: 29.03.2019
Сообщений: 345
|
||||||
31.10.2019, 15:41 [ТС] | 3 | |||||
Rius, Да, я в нем уверен. Потому, что контрольную сумму он считает правильно. Проверял для IP пакета.
И проверил для UDP пакета. вот с такой вот доработкой от автора.
Заголовок пакета делится на 16 битные кадры. Затем они складываются. Затем полученная сумма переводится в формат биг эндиан и потом она инвертируется. Если не умещается в 16ти битную величину, тогда сумма делится на старшее полуслово и младшее и снова складывается и так пока не поместится. Нюанс.: если заголовок получился из нечетного числа байт, тогда последний байт выравниваем нулем. Тогда следующий байт становится старшим, а в младший пишем все нули. И еще нужно сказать, что контрольная сумма в заголовке должна быть обнулена перед расчетом контрольной суммы
0
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
||||||||||||||||
31.10.2019, 15:44 | 4 | |||||||||||||||
Сообщение было отмечено northcitizen как решение
Решение
northcitizen,
1
|
38 / 31 / 9
Регистрация: 29.03.2019
Сообщений: 345
|
|||||||||||
31.10.2019, 16:27 [ТС] | 5 | ||||||||||
_SayHello, Спасибо за помощь
Добавлено через 39 минут Тогда нужно так
0
|
31.10.2019, 16:34 | 6 |
Только вот в коде видно обратное - недостижимый код. Прописано то, что не работает. Значит, код может содержать и другие ошибки.
Нужно написать тест, чтоб сравнить результаты этого метода с контрольными суммами, полученными другими способами.
1
|
38 / 31 / 9
Регистрация: 29.03.2019
Сообщений: 345
|
|
31.10.2019, 16:51 [ТС] | 7 |
Rius, согласен. глупо получилось...
0
|
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,273
|
|
31.10.2019, 20:08 | 8 |
Этот человек провел огромную работу. Хотя частенько путает в уроках а потом исправляет. Думаю, он привлек большое внимание людей, начинающих изучать МК, хотя и не позиционирует себя как гуру. Вот и вы разбираете МК в том числе и по его урокам. Чего то не понимаете и спрашиваете здесь. Так это отлично. Когда нибудь, может быть, и в более низкий уровень погрузитесь.
1
|
87 / 86 / 4
Регистрация: 20.11.2016
Сообщений: 262
|
||||||||||||||||||||||||||
18.04.2021, 22:32 | 9 | |||||||||||||||||||||||||
Тоже пришлось столкнуться с этим кодом при изучении уроков на этом сайте. Много там неоптимального кода...
Вот например можно поменять местами операции с указателями. Вместо
вместо
А есть и более удобный вариант подсчета контрольной суммы который оперирует сразу с шестнадцатиразрядными данными, а не с байтами). Подсмотрел на другом сайте.
0
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
||||||
19.04.2021, 10:58 | 10 | |||||
Radikal_78, для перестановки байтов есть ARMa инструкция в файле core_cmInstr.h
1
|
87 / 86 / 4
Регистрация: 20.11.2016
Сообщений: 262
|
|
19.04.2021, 21:06 | 11 |
_SayHello, спасибо вам большое))) с ассемблером знаком конечно, но совершенно забыл о такой возможности((((
0
|
1978 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
24.04.2021, 22:26 | 12 |
не переживайте, gcc за вас все это давно учитывает. на 99% уверен, что ваши попытки оптимизировать (даже асмом) код бесполезны.
0
|
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
|
|
27.04.2021, 08:42 | 13 |
Voland_, вообще можно аппаратный модуль подсчета CRC прикрутить, будет еще оптимальнее. Правда не то чтобы у IP пакета много данныз для расчета контрольной суммы
0
|
1978 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
27.04.2021, 11:27 | 14 |
0
|
27.04.2021, 11:27 | |
27.04.2021, 11:27 | |
Помогаю со студенческими работами здесь
14
Подсчёт контрольной суммы Подсчет контрольной суммы Подсчет контрольной суммы Подсчет CRC16 контрольной суммы Подсчёт контрольной суммы файла Подсчет контрольной суммы в textbox Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |