|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Oleg Koreshkov 2:5020/400 20 Dec 2002 13:21:42 To : Stas Degteff Subject : Re: ipfw: что быстpее? -------------------------------------------------------------------------------- > >> memcmp(ipheader, mask1, ipheaderlen); > >> memcmp(ipheader, mask2, ipheaderlen); > >> memcmp(ipheader, mask3, ipheaderlen); > > OK> там всё проще, на уровне: > OK> cmd->addr.s_addr == src_ip.s_addr > > Сравнение всего заголовка с маской - в среднем быстрее. Жаль, под рукой нет > ipfw2.c, проверить не могу тамошнюю реализацию. не получиться с маской... :( в ip_fw{N}.c сделаны именно отдельные проверки для компонентов заголовка пакета, а не по маске... P.S. потому что адреса в правиле могут быть: any, me, not (addr) и могут содержать порты для TCP/UDP (т.е. тут надо ещё TCP/UDP заголовок рассматривать) или icmptypes для ICMP, а могут и не содержать... (не говоря про всё остальное...) к тому же проверить src-addr, например, и при несовпадении сразу перейти к следующему правилу, не так уж накладно получается... (я бы даже сказал, что сравнить целое эфективнее чем memcmp...) --- ifmail v.2.15dev5 * Origin: A LOT OF... (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/91046b8172f4.html, оценка из 5, голосов 10
|