The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"хеширование   ip"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Оптимизация)
Изначальное сообщение [ Отслеживать ]

"хеширование   ip"  +/
Сообщение от guest email(??) on 21-Дек-10, 10:47 
Имеется некое количество (от едениц до 10ков тысяч) списков (singly-linked) таких структур:
struct subnet {
    struct sockaddr addr;
    u_int8_t mask;
    u_int8_t exclude;
}
по которым после некой обработки строятся rb-деревья.
Суть проблемы в том, что часть списков может быть абсолютно идентична (равное количество совпадающих адресов в одной и той же последовательности).
Посоветуйте какую-нибудь легкую хеш функцию для адресов.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "хеширование   ip"  +/
Сообщение от mmmm (??) on 21-Дек-10, 10:56 
> Имеется некое количество (от едениц до 10ков тысяч) списков (singly-linked) таких структур:
> struct subnet {
>     struct sockaddr addr;
>     u_int8_t mask;
>     u_int8_t exclude;
> }
> по которым после некой обработки строятся rb-деревья.
> Суть проблемы в том, что часть списков может быть абсолютно идентична (равное
> количество совпадающих адресов в одной и той же последовательности).
> Посоветуйте какую-нибудь легкую хеш функцию для адресов.

CRC32

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "хеширование   ip"  +/
Сообщение от guest email(??) on 21-Дек-10, 11:25 
> CRC32

В чистом виде не катит для списков, а строить массив из них лишняя трата времени и главное памяти.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "хеширование   ip"  +/
Сообщение от Andrey Mitrofanov on 21-Дек-10, 11:00 
http://google.ru/search?q=ipv4+address+hash
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "хеширование   ip"  +/
Сообщение от guest email(??) on 21-Дек-10, 11:19 
> http://google.ru/search?q=ipv4+address+hash

v4 лишнее)))
там может быть микс из v4/v6
Ну и уж извините, но ответ в стиле "выбирай сам" не очень интересен.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "хеширование   ip"  +/
Сообщение от mmmm (??) on 21-Дек-10, 11:31 
>> http://google.ru/search?q=ipv4+address+hash
> v4 лишнее)))
> там может быть микс из v4/v6
> Ну и уж извините, но ответ в стиле "выбирай сам" не очень
> интересен.

А md5 либо sha-1?
но по-моему они не такие и легковесные

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "хеширование   ip"  +/
Сообщение от guest email(??) on 21-Дек-10, 11:38 
> А md5 либо sha-1?
> но по-моему они не такие и легковесные

С ними тот же трабл, что и с crc. Это же все изначально блочные хэши.
Т.е. получаеться что я должен конвертировать список в массив (как минимум убрать указатели на следующий элемент).


Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "хеширование   ip"  +/
Сообщение от mmmm (??) on 21-Дек-10, 11:52 
>> А md5 либо sha-1?
>> но по-моему они не такие и легковесные
> С ними тот же трабл, что и с crc. Это же все
> изначально блочные хэши.
> Т.е. получаеться что я должен конвертировать список в массив (как минимум убрать
> указатели на следующий элемент).

Вот взгляните может это подойдет
http://ru.wikipedia.org/wiki/HMAC

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "хеширование   ip"  +/
Сообщение от guest email(??) on 21-Дек-10, 12:03 
> Вот взгляните может это подойдет
> http://ru.wikipedia.org/wiki/HMAC

Идея в том чтобы хешировать списки поэлементно используя в качестве ключа результат предыдущего хеширования?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

8. "хеширование   ip"  +/
Сообщение от Andrey Mitrofanov on 21-Дек-10, 11:53 
Да, на здоровье. Вопрос в стиле "выберите за меня" ещё менее.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

10. "хеширование   ip"  +/
Сообщение от pavel_simple (ok) on 21-Дек-10, 13:07 
> Имеется некое количество (от едениц до 10ков тысяч) списков (singly-linked) таких структур:
> struct subnet {
>     struct sockaddr addr;
>     u_int8_t mask;
>     u_int8_t exclude;
> }
> по которым после некой обработки строятся rb-деревья.
> Суть проблемы в том, что часть списков может быть абсолютно идентична (равное
> количество совпадающих адресов в одной и той же последовательности).
> Посоветуйте какую-нибудь легкую хеш функцию для адресов.

в линухах в ядре чаще всего используют jhash -- а вообще можно посмотреть сдесь -- http://www.azillionmonkeys.com/qed/hash.html и сдесь http://burtleburtle.net/bob/hash/doobs.html

хотя вопрос из разряда "сделайте мне заебись"

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "хеширование   ip"  +/
Сообщение от guest email(??) on 21-Дек-10, 13:41 
спс за ссылки, читаю, интересно.


Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру