реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Контроль целостности пакетов
haker_fox
сообщение Feb 18 2012, 08:20
Сообщение #1


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Здравствуйте, уважаемые коллеги!
Могу ли использовать для контроля целостности принятых пакетов только CRC32 фрейма Ethernet? Я имею ввиду, не контролировать напосредственно контрольные суммы IP, UDP?
Спасибо!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
follow_me
сообщение Feb 18 2012, 08:34
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 4-11-10
Пользователь №: 60 646



Цитата(haker_fox @ Feb 18 2012, 10:20) *
Здравствуйте, уважаемые коллеги!
Могу ли использовать для контроля целостности принятых пакетов только CRC32 фрейма Ethernet? Я имею ввиду, не контролировать напосредственно контрольные суммы IP, UDP?
Спасибо!

а почему нет ? в данном случае вы рискуете получить битый пакет только в случае когда ошибка возникла во время упаковки TCP/UDP пакета в Ethernet фрейм , что довольно маловероятно потому можно пренебречь контрольной суммой упакованного пакета
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 18 2012, 09:15
Сообщение #3


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (follow_me @ Feb 18 2012, 16:34) *
а почему нет ? в данном случае вы рискуете получить битый пакет только в случае когда ошибка возникла во время упаковки TCP/UDP пакета в Ethernet фрейм , что довольно маловероятно потому можно пренебречь контрольной суммой упакованного пакета

А разве при инкапсуляции пакета, эта КС не пересчитывается?

Да, и, похоже, такой способ пройдет, когда данные передаются как минимум по витой пары (не знаю про оптику, про радиоканал). Если же данные передаются через последовательный порт, то там уже необходимо контролировать КС самих протоколов. Я прав?)


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 18 2012, 09:21
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Нет, не пересчитывается. Вероятность получить битый IP-пакет с нормальной FCS все же существует, поэтому игнорировать контрольную сумму можно только в крайнем случае.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 18 2012, 09:37
Сообщение #5


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (aaarrr @ Feb 18 2012, 17:21) *
Нет, не пересчитывается. Вероятность получить битый IP-пакет с нормальной FCS все же существует, поэтому игнорировать контрольную сумму можно только в крайнем случае.

Гм, тогда я чего-то не понимаю rolleyes.gif Я думал, что КС аппаратно пересчитывается для каждого передаваемого фрейба, байт за байтом. Не знаю, кто это делает PHY или MAC, но не суть важно...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
follow_me
сообщение Feb 18 2012, 09:46
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 4-11-10
Пользователь №: 60 646



Цитата(haker_fox @ Feb 18 2012, 11:15) *
А разве при инкапсуляции пакета, эта КС не пересчитывается?

Да, и, похоже, такой способ пройдет, когда данные передаются как минимум по витой пары (не знаю про оптику, про радиоканал). Если же данные передаются через последовательный порт, то там уже необходимо контролировать КС самих протоколов. Я прав?)


в данном случае, необходимость контроля не зависит от канала передачи, ошибка протокола может появится исключительно до того как данные будут переданы по каналу (т.е. вы контролируете целостность протокола канального уровня вроде Ethernet а не tcp/udp). Если говорить точнее эта ошибка может появиться в буффере NIC до того как он запакует пакет. Вообще говоря ошибка быть может , но вероятность появления ошибке по вине памяти например , на маленьких буфферах (~1mb) составляет 3 ошибки в год при работе в 24/7/365 (недавно гугл делал исследования) - потому смотрите сами , насколько критично вам такое количество ошибок

Цитата
Нет, не пересчитывается. Вероятность получить битый IP-пакет с нормальной FCS все же существует, поэтому игнорировать контрольную сумму можно только в крайнем случае.


Цитата
Гм, тогда я чего-то не понимаю Я думал, что КС аппаратно пересчитывается для каждого передаваемого фрейба, байт за байтом. Не знаю, кто это делает PHY или MAC, но не суть важно...


Уважаемый aaarrr имел ввиду что контрольная сумма протокола более высокого уровня (tcp,udp, etc ... ) при подсчете контрольной суммы протокола канального уровня (Ethernet) не пересчитывается, но считается по новому для фрейма - выходит двойная защита данных

Почему я и говорю что можно пренебречь - потому как при ошибках FCS вы откидываете этот пакет потому как он повредился в каналах данных
если FCS верная то вероятность получить контрольную сумму вышестоящего протокола довольно низкая (ну разве что у вас совсем уж неадекватное передающее железо)
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 18 2012, 10:29
Сообщение #7


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Чтож, будем считать "вложенные КС", благо это не сложно)
Всем большое спасибо!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 21 2012, 11:23
Сообщение #8


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(haker_fox @ Feb 18 2012, 14:29) *
Чтож, будем считать "вложенные КС", благо это не сложно)...


с вои 5 копеек:

ещё не сбрасывайте со счетов дефрагментацию на IP уровне на промежуточных хопах. Т.е. изернет вам придёт нормальный, а вот пакет может оказаться битым (например многие свитчи "едут" при повышении нагрузки или не стандартных ситуациях). тут слово "едут" подразумевает не столь явно багу, а то что алгоритм начинает работать не совсем так как ожидалось от него. например слать не в той последовательности фрагменты и т.п. вещи...

(круглый)
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 22 2012, 04:21
Сообщение #9


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (kolobok0 @ Feb 21 2012, 20:23) *
с вои 5 копеек:

ещё не сбрасывайте со счетов дефрагментацию на IP уровне на промежуточных хопах. Т.е. изернет вам придёт нормальный, а вот пакет может оказаться битым (например многие свитчи "едут" при повышении нагрузки или не стандартных ситуациях). тут слово "едут" подразумевает не столь явно багу, а то что алгоритм начинает работать не совсем так как ожидалось от него. например слать не в той последовательности фрагменты и т.п. вещи...

(круглый)

Честно говоря, я даже не рассматриваю фрагментированные пакеты.
Мне нужен только "самый простой" UDP.
Поэтому решил урезанный стек написать сам, ну от части в академических целях)

Под свитчами вы подразумеваете те, которые работаю на канальном уровне, потому что других не ожидается...


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 22 2012, 10:57
Сообщение #10


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(haker_fox @ Feb 22 2012, 08:21) *
...Мне нужен только "самый простой" UDP....


эээээээээ собственно это выше чем IP - посему можем(по протоколу) его фрагментировать, если не лезет или заняты...
т.е. другими словами - на приёме UDP пакета Вы должны отрабатывать дефрагментацию. очень часто люди говорят - я не посылаю более чем.....1500... Это то да... Но кто сказал что оно всегда так будет и от нагрузки не зависит?


(круглый)
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Feb 24 2012, 08:34
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Цитата(kolobok0 @ Feb 22 2012, 13:57) *
эээээээээ собственно это выше чем IP - посему можем(по протоколу) его фрагментировать, если не лезет или заняты...
т.е. другими словами - на приёме UDP пакета Вы должны отрабатывать дефрагментацию. очень часто люди говорят - я не посылаю более чем.....1500... Это то да... Но кто сказал что оно всегда так будет и от нагрузки не зависит?

Так ведь можно заставить систему посылать пакеты с флагом IP_DONTFRAGMENT.

BOOL dontfragment = TRUE ;
setsockopt (sckt, IPPROTO_IP, IP_DONTFRAGMENT, (char*)&dontfragment, sizeof(dontfragment)) ;
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Feb 24 2012, 11:30
Сообщение #12


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (BSACPLD @ Feb 24 2012, 16:34) *
Так ведь можно заставить систему посылать пакеты с флагом IP_DONTFRAGMENT.

BOOL dontfragment = TRUE ;
setsockopt (sckt, IPPROTO_IP, IP_DONTFRAGMENT, (char*)&dontfragment, sizeof(dontfragment)) ;

Вот и отличненько, поскольку этим стеком будет пользоваться только мое личное ПО, а частота использования будет очень мала (обновление прошивки), то это мне подходит)
Спасибо!


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 24 2012, 13:59
Сообщение #13


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(BSACPLD @ Feb 24 2012, 12:34) *
...посылать пакеты с флагом IP_DONTFRAGMENT..


угумс. можно. но при загрузах на промежуточных хопах этот пакет может быть смело удалён (разбить нельзя, пропихнуть нельзя).

т.е. тут надо для себя решить чего важнее и как часто...

удачи вам
(круглый)
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Mar 3 2012, 15:17
Сообщение #14


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Гм, поигрался с сетью немного. Решил, что по возможности, наверно, следует применять готовые, отлаженныи и опробированные решения.
Какие качественных открытые стеки кроме uIP и с tnkernel.com может порекомендовать уважаемое сообщество?
На данным момент нужен только UDP, ну и ICMP (приятно видеть пинг от железки))) )
Может быть есть стеки, где можно выбирать, какие компоненты использовать? По типу коммерческого стека из RL-ARM (Keil)?


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 5 2012, 12:31
Сообщение #15


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(haker_fox @ Mar 3 2012, 19:17) *
... и ICMP (приятно видеть пинг от железки)..


тогда ышо +ARP
sm.gif

да и DHCP не помешает.
и то и то реализация копеешные.

(круглый)
ЗЫ
буду упрям sm.gif (ржу) дефрагментацию стоит поддержать sm.gif))
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 11:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01514 секунд с 7
ELECTRONIX ©2004-2016