virstud 0 Posted 2005-03-08 18:17:03 Share Posted 2005-03-08 18:17:03 при подсчете......через divert.......все почти подвисало напроч....... ВОТ НЕЛЕПОСТЬ ТО......... ВОБЩЕМ.....В divertcap.cpp(в папке freebsd исходников) ВСЕ БЫСТРО ПРАВИМ : - #define BUFF_LEN 1024 НА + #define BUFF_LEN 30000 .....А ТО ПОЛУЧАЕТСЯ....ЧТО МАКСИМАЛЬНЫЙ РАЗМЕР ПАКЕТА 1024 БАЙТА... ВО ТРАБЛ ТО......АФИГЕТ........ТОРОПИЛСЯ НАВЕРНОЕ АВТОР......РЕЛИЗ ВЫПУСТИТЬ.....=))) ТАМ КСТАТИ....ЕЩЕ МНОГО НЕДОЧЕТОВ........НО ЭТ ПРОСТО ВЫНОС....=)) Link to post Share on other sites
XoRe 0 Posted 2005-03-09 00:34:19 Share Posted 2005-03-09 00:34:19 Отлично. Без тени сарказма - спасибо. Так публикуй остальные недочеты! =)) В этом основной плюс opensource - в совместном улучшении качества продукта. Я думаю, глупо не использовать этот плюс. P.S. BUFF_LEN 30000 хватит? Может сделать 65535? Link to post Share on other sites
Guest Guest_virstud Posted 2005-03-09 11:15:30 Share Posted 2005-03-09 11:15:30 30000 ...эт я просто в iris - е глянул......максимальный размер пакета ....когда делаешь пакет сам... можно наверное и больше....но мне этого хватило... у меня старгайзер нормально заработал.......... пакеты не теряет теперь правда на машине 466 цел 256 оперативки.......скорость скачивания с серваке не привышает 2.5 мегабита.......надо теперь процессор побыстрее... работа через диверт ......почти полностью гарантирует ...подсчет всего трафика...т.к. ..пакеты не просто считаются ....а пропускаются через программу....... если программу сглючит.....то трафик просто не пропустит Ipfw ....... это давольно надежно........ Link to post Share on other sites
Bas 2 Posted 2005-03-09 12:45:37 Share Posted 2005-03-09 12:45:37 Хотелось бы услышать мнение автора программы, по поводу этой штуки. Не то чтобы я не доверяю (я то в таких тонкостях не разбираюсь) но не скажется ли это пагубно где-нить в другом месте. Link to post Share on other sites
XoRe 0 Posted 2005-03-10 07:05:00 Share Posted 2005-03-10 07:05:00 может поставить tee и как-то убивать выходящие обратно пакеты? Link to post Share on other sites
virstud 0 Posted 2005-03-11 17:51:11 Author Share Posted 2005-03-11 17:51:11 может поставить tee и как-то убивать выходящие обратно пакеты? а причем тут tee.......с ним хуже.......... divert самое оно..... прекрасно с ним считает... а про tee я так скажу.... проббовал.... на слабой машинке пропускает пакеты...... да и на мощной тачке ..если проц нагрузишь....то наверника тож начнет терять пакеты.......т.к. старгайзер не будет контролировать скорость прохождения пакетов... Link to post Share on other sites
XoRe 0 Posted 2005-03-12 02:18:54 Share Posted 2005-03-12 02:18:54 о, кстати да. Ну диверт, так диверт. Ты, давай, рассказывай про остальные замеченные глюки =) Я хочу 1 апреля перейти на последнюю версию с подсчетом через диверт. Хотелось бы, чтобы в этой последней версии было как можно меньше глюков =) Link to post Share on other sites
virstud 0 Posted 2005-03-12 10:33:05 Author Share Posted 2005-03-12 10:33:05 о, кстати да. Ну диверт, так диверт.Ты, давай, рассказывай про остальные замеченные глюки =) Я хочу 1 апреля перейти на последнюю версию с подсчетом через диверт. Хотелось бы, чтобы в этой последней версии было как можно меньше глюков =) пака скажу только..... что там еще стоит ограничение на минимальный пакет в 50 байт........т.е. пакеты меньше 50 байт тоже отбрасываются......... может я не силен в сетевых глубинах.......но по ирису можно судить....что такие пакеты бывают...........и 46 видел.....и. др...... это не сильно сказывается на общем состоянии.....но вот в куске кода альтернативной проги которая тоже использует диверт я таких ограничений не заметил....: if( FD_ISSET(divert, &workMask) ) { inBytes = recvfrom ( divert, packetBuff,sizeof(packetBuff),0, (struct sockaddr *)&packetAddr ,&addrSize); if (inBytes == -1) { if(errno != EINTR ) { syslog(LOG_ERR,"Can't RECVFROM divert socket:%s",S_ERROR); exit(1); } } ip = (struct ip*)packetBuff; reassert(ip->ip_src,inBytes); total_bytes+=inBytes; total_pkts++; outBytes = sendto (divert,packetBuff,inBytes, 0, (struct sockaddr *)&packetAddr, sizeof(packetAddr) ); if (outBytes == -1) { syslog(LOG_ERR,"Can't SENDTO divert socket:%s",S_ERROR); exit(1); } ....вобщем.......я недопонимаю логику этого ограничения.... Link to post Share on other sites
virstud 0 Posted 2005-03-12 10:35:31 Author Share Posted 2005-03-12 10:35:31 разработчик ....чет совсем в подполье ушел....=)))) Link to post Share on other sites
XoRe 0 Posted 2005-03-12 23:51:48 Share Posted 2005-03-12 23:51:48 Есть предположение, что какой-т код был вставлен методом Ctrl+C, Ctrl+V из какой-либо документации. Если кто-то вник в работу этого кода, то можно рассказать об этом остальным. Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now