Название: загрузка CPU при приеме пакетов Отправлено: svetocopy от Январь 21, 2013, 05:49 всем привет!
По ethernet сети приходят пакеты (raw), поток примерно 400 кБайт/с. Требуется осуществить их прием и обработку. Кто знает как добиться МИНИМУМА загрузки CPU и потерь пакетов. p.s. libpcap не подходит, т.к. сильно грузит процессор Название: Re: загрузка CPU при приеме пакетов Отправлено: Old от Январь 21, 2013, 07:34 всем привет! Что то ты не так делаешь. Уже нет тех процессоров, которые таким потоком можно сильно загрузить.По ethernet сети приходят пакеты (raw), поток примерно 400 кбит/с. Требуется осуществить их прием и обработку. Кто знает как добиться МИНИМУМА загрузки CPU и потерь пакетов. p.s. libpcap не подходит, т.к. сильно грузит процессор Название: Re: загрузка CPU при приеме пакетов Отправлено: svetocopy от Январь 21, 2013, 08:26 всем привет! Что то ты не так делаешь. Уже нет тех процессоров, которые таким потоком можно сильно загрузить.По ethernet сети приходят пакеты (raw), поток примерно 400 кбит/с. Требуется осуществить их прием и обработку. Кто знает как добиться МИНИМУМА загрузки CPU и потерь пакетов. p.s. libpcap не подходит, т.к. сильно грузит процессор Название: Re: загрузка CPU при приеме пакетов Отправлено: V1KT0P от Январь 21, 2013, 09:38 всем привет! Как ты умудрился на 400 кбайт/с загрузит проц? Я вот имел раньше привычку качать торрентами под 10-11 мегабайт в секунду и параллельно смотреть видео в HD качестве, а ты тут про какие-то жалкие килобайты говоришь.По ethernet сети приходят пакеты (raw), поток примерно 400 кБайт/с. Требуется осуществить их прием и обработку. Кто знает как добиться МИНИМУМА загрузки CPU и потерь пакетов. p.s. libpcap не подходит, т.к. сильно грузит процессор Название: Re: загрузка CPU при приеме пакетов Отправлено: svetocopy от Январь 21, 2013, 10:12 всем привет! Как ты умудрился на 400 кбайт/с загрузит проц? Я вот имел раньше привычку качать торрентами под 10-11 мегабайт в секунду и параллельно смотреть видео в HD качестве, а ты тут про какие-то жалкие килобайты говоришь.По ethernet сети приходят пакеты (raw), поток примерно 400 кБайт/с. Требуется осуществить их прием и обработку. Кто знает как добиться МИНИМУМА загрузки CPU и потерь пакетов. p.s. libpcap не подходит, т.к. сильно грузит процессор я использовал библиотеку libpcap: Код: char *dev, errbuf[PCAP_ERRBUF_SIZE]; никаких дополнительных режимов работы, я не выставлял. дело в том, что процессор множество тактов делает "вхолостую" при опросе устройства, так что если выражаться точнее: как сделать так, чтобы процессор не расходовал свое время впустую? может какой-нибудь режим выставить нужно? и еще вопрос: если у pcap буфер типа FIFO, в который складируются пакеты и из которого производится чтение? Название: Re: загрузка CPU при приеме пакетов Отправлено: Kurles от Январь 21, 2013, 11:39 Код в тело бесконечного цикла Название: Re: загрузка CPU при приеме пакетов Отправлено: svetocopy от Январь 21, 2013, 12:22 Код в тело бесконечного цикла дайте пояснение пожалуйста, что делает эта строка? мне не понятно каков механизм уведомления о том, что пришли новые данные на сетевуху? или она тупо периодически опрашивается? Название: Re: загрузка CPU при приеме пакетов Отправлено: Old от Январь 21, 2013, 12:30 дайте пояснение пожалуйста, что делает эта строка? мне не понятно каков механизм уведомления о том, что пришли новые данные на сетевуху? или она тупо периодически опрашивается? Это костыль.Воспользуйся поиском по форуму, недавно было несколько тем про pcap. Там были ссылки на враппер для Qt. Название: Re: загрузка CPU при приеме пакетов Отправлено: Fregloin от Январь 21, 2013, 12:50 А кутешными QTcpSocket принимать почему не хотите?
Название: Re: загрузка CPU при приеме пакетов Отправлено: svetocopy от Январь 21, 2013, 13:28 А кутешными QTcpSocket принимать почему не хотите? это разве годится для raw пакетов? Название: Re: загрузка CPU при приеме пакетов Отправлено: Fat-Zer от Январь 21, 2013, 15:38 в порядке околобреда:
посмотри , что возвращает pcap_getnonblock(handle, errbuf) если не 0, то поставь pcap_setnonblock(handle, 0, errbuf) Название: Re: загрузка CPU при приеме пакетов Отправлено: Fregloin от Январь 21, 2013, 15:51 не понял наезда? ???
Название: Re: загрузка CPU при приеме пакетов Отправлено: V1KT0P от Январь 21, 2013, 21:28 не понял наезда? ??? Видимо ему нужны не просто данные, но и заголовки IP пакетов. |