<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867437</guid>
        <pubDate>Wed, 13 Feb 2008 16:00:59 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867437</link>
        <description><![CDATA[deadka: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=223235&view=findpost&p=1867407'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>gruy &#064; <time class="tag-quote__quoted-time" datetime="2008-02-13T18:39:54+03:00">13.02.08, 15:39</time></span><div class='quote '>Т.е. она может один поток сразу на два коллектора посылать? Тогда, в принципе, можно придумать способ сбора и совмещения информации с двух коллекторов, даже если они часть будут пропускать, но есть вероятность что это будут разные пакеты.<br>
<br>
Хотя, конечно, можно еще поработать над конфигурацией одного коллектора...</div></div><br>
Конфигурация, как я понял, должна выглядеть примерно так: 1-й поток: данные приходят на коллектор и складываются банарно в некий буфер (большой). 2-й поток уже делает с ними что-нибудь - в базу кладет или еще куда. Иногда еще и третий можно прикрутить - если ему есть чем заняться. Ну и желательно конечно писать не сразу в базу, а сначала в бинарные файлы, а оттуда уже выжимки, отчеты несколькоминутные в базу. А &quot;один коллектор&quot; - это о каком речь идет?]]></description>
        <author>deadka</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867407</guid>
        <pubDate>Wed, 13 Feb 2008 15:39:54 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867407</link>
        <description><![CDATA[gruy: Т.е. она может один поток сразу на два коллектора посылать? Тогда, в принципе, можно придумать способ сбора и совмещения информации с двух коллекторов, даже если они часть будут пропускать, но есть вероятность что это будут разные пакеты.<br><br>Хотя, конечно, можно еще поработать над конфигурацией одного коллектора...]]></description>
        <author>gruy</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867377</guid>
        <pubDate>Wed, 13 Feb 2008 15:20:56 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867377</link>
        <description><![CDATA[deadka: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=223235&view=findpost&p=1867363'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>gruy &#064; <time class="tag-quote__quoted-time" datetime="2008-02-13T15:12:26+00:00">13.02.08, 15:12</time></span><div class='quote '>У самой циски есть возможность распределять потоки по разным коллекторам?</div></div><br>
Данная циска может слать только в два места ( и то весь поток сразу). С другой стороны на другой машине можно разделять потоки по тому или иному принципу.]]></description>
        <author>deadka</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867363</guid>
        <pubDate>Wed, 13 Feb 2008 15:12:26 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867363</link>
        <description><![CDATA[gruy: У самой циски есть возможность распределять потоки по разным коллекторам?]]></description>
        <author>gruy</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867326</guid>
        <pubDate>Wed, 13 Feb 2008 14:49:36 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867326</link>
        <description><![CDATA[deadka: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=223235&view=findpost&p=1867321'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Oleg2004 &#064; <time class="tag-quote__quoted-time" datetime="2008-02-13T14:46:03+00:00">13.02.08, 14:46</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=223235&view=findpost&p=1867313'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>deadka &#064; <time class="tag-quote__quoted-time" datetime="2008-02-13T14:36:07+00:00">13.02.08, 14:36</time></span><div class='quote '>Мощность моего потока - примерно 2мегабит/сек</div></div><br>
Супербыстрый поток&#33;&#33;&#33;(для UDP) Его абсолютно корректно обработать наверно можно только на уровне спецдрайвера - типа виртуального драйвера, заточенного под UDP-поток. Хотя......<br>
Ихто его знает &lt;_&lt;</div></div><br>
Ну да, циска собирает траффик с отделений в нескольких городах. Обработать-то можно, знать бы как. Вот и валятся у меня сокеты иногда - с чем и пришел - что делать в этом случае. Всем спасибо за ответы&#33;]]></description>
        <author>deadka</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867321</guid>
        <pubDate>Wed, 13 Feb 2008 14:46:03 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867321</link>
        <description><![CDATA[Oleg2004: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=223235&view=findpost&p=1867313'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>deadka &#064; <time class="tag-quote__quoted-time" datetime="2008-02-13T14:36:07+00:00">13.02.08, 14:36</time></span><div class='quote '>Мощность моего потока - примерно 2мегабит/сек</div></div><br>
Супербыстрый поток&#33;&#33;&#33;(для UDP) Его абсолютно корректно обработать наверно можно только на уровне спецдрайвера - типа виртуального драйвера, заточенного под UDP-поток. Хотя......<br>
Ихто его знает &lt;_&lt;]]></description>
        <author>Oleg2004</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867313</guid>
        <pubDate>Wed, 13 Feb 2008 14:36:07 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867313</link>
        <description><![CDATA[deadka: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=223235&view=findpost&p=1867307'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>gruy &#064; <time class="tag-quote__quoted-time" datetime="2008-02-13T14:33:13+00:00">13.02.08, 14:33</time></span><div class='quote '>Разбирал его только ради интереса, соответственно и программа была простенькая, да и поток намного меньший.<br>
<br>
Но почему не взять уже готовое решение, тем более что есть с открытыми исходниками, например <a class='tag-url' href='http://www.splintered.net/sw/flow-tools/' target='_blank'>flow-tools</a>.</div></div><br>
Пробовал flow-tools. Мощность моего потока - примерно 2мегабит/сек - flow/tools не справляется :(, 20% потерь стабильно.]]></description>
        <author>deadka</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867307</guid>
        <pubDate>Wed, 13 Feb 2008 14:33:13 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867307</link>
        <description><![CDATA[gruy: Разбирал его только ради интереса, соответственно и программа была простенькая, да и поток намного меньший.<br>
<br>
Но почему не взять уже готовое решение, тем более что есть с открытыми исходниками, например <a class='tag-url' href='http://www.splintered.net/sw/flow-tools/' target='_blank'>flow-tools</a>.]]></description>
        <author>gruy</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867272</guid>
        <pubDate>Wed, 13 Feb 2008 14:10:58 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867272</link>
        <description><![CDATA[deadka: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=223235&view=findpost&p=1867185'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>gruy &#064; <time class="tag-quote__quoted-time" datetime="2008-02-13T13:31:36+00:00">13.02.08, 13:31</time></span><div class='quote '>Тут уже нужно определить где именно узкое место: сетевая карта (а они в значительной степени различаются между собой), драйвер сетевой карты, проблема в системных вызовах, неоптимизированная программа, в конце концов слабое железо.<br>
<br>
ЗЫ. Случаем не NetFlow идет?</div></div><br>
Netflow, он самый. УЖ не имеете ли вы случаем опыта написания софта для работы с NetFLow (на программном уровне)?&#33;]]></description>
        <author>deadka</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867185</guid>
        <pubDate>Wed, 13 Feb 2008 13:31:36 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867185</link>
        <description><![CDATA[gruy: Тут уже нужно определить где именно узкое место: сетевая карта (а они в значительной степени различаются между собой), драйвер сетевой карты, проблема в системных вызовах, неоптимизированная программа, в конце концов слабое железо.<br><br>ЗЫ. Случаем не NetFlow идет?]]></description>
        <author>gruy</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867139</guid>
        <pubDate>Wed, 13 Feb 2008 13:09:37 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867139</link>
        <description><![CDATA[deadka: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=223235&view=findpost&p=1867126'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>gruy &#064; <time class="tag-quote__quoted-time" datetime="2008-02-13T13:04:21+00:00">13.02.08, 13:04</time></span><div class='quote '>Может еще продумать логику принимающей программы? Например, чтобы она успевала все принимать, создавала уже внутри себя очередь и отдельным потоком ее обрабатывала.<br>
<br>
Можем больше помочь, если раскроешь больше проблему.</div></div><br>
Спасибо, я сейчас ровно так и делаю - в смысле в два потока - один принимает и кладет в кольцевой буфер, другой уже оттуда берет и делает логику :-). Что касается раскрыть больше проблему - то у меня вопрос - что можно (и нужно) делать если буфер переполнился, и только он. С остальным более-менее понятно как раз.]]></description>
        <author>deadka</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867126</guid>
        <pubDate>Wed, 13 Feb 2008 13:04:21 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867126</link>
        <description><![CDATA[gruy: Может еще продумать логику принимающей программы? Например, чтобы она успевала все принимать, создавала уже внутри себя очередь и отдельным потоком ее обрабатывала.<br><br>Можем больше помочь, если раскроешь больше проблему.]]></description>
        <author>gruy</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867084</guid>
        <pubDate>Wed, 13 Feb 2008 12:35:59 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867084</link>
        <description><![CDATA[Eiden: <div class="tag-mod"><div class="tag-mod__prefix">M</div><div class="tag-mod__body"><br>
<strong class='tag-b'>deadka</strong>, используй, пожалуйста, теги цитат.<br>
</div></div>]]></description>
        <author>Eiden</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867074</guid>
        <pubDate>Wed, 13 Feb 2008 12:28:51 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867074</link>
        <description><![CDATA[deadka: Здравствуйте, Oleg2004.<br>&gt;Тут может быть несколько возможных версий<br>&gt;1. Буфер действительно мал - кстати, укажите размер<br>Был стандартный по умолчанию 8192 байта. Поставил 16мб - windows не дает поставить больше.<br>Проверял функцией getsockopt.<br>&gt;2. Приложение медленно освобождает приемный буфер recvfrom() или он очень маленький - а туда должна поместиться &gt;вся датаграмма целиком<br>Размер буфера заведомо (в 100 раз превышает размера датаграммы), датаграмма влезает.<br>Насчет медленного освобождения приемного буфера - вот тут может быть... :(<br>&gt;3. Cтоит хилая сетевая карта (медленно работает)<br>100 мегабит, встроенная в матернику.<br>&gt; 4. Принципиально быстрый UDP-передатчик может задушить медленный приемник<br>Это да, об этом и речь, вернее о том, как правильно прореагировать.<br><br>Сформулирую так - да, действительно, могут быть такие ситуации, что приемник отрабатывает медленнее, чем источник. ТО есть действительно может быть такая ситуация, что приемный буфер сокета переполнится.<br>Мой вопрос скорее к тому - как это четко обнаружить - и как можно корректно разрулить ситуацию.<br><br><br>Цитата (deadka @ Сегодня, 12:56)<br>Скажите, как нужно правильно прореагировать, если буфер сокета переполнился? <br><br>&gt;Нужно обработать ошибку - это во первых. <br>А что именно? Вывести лог какой - а как еще?<br><br>&gt;А далее можно пересоздать новый сокет в этой же программе и пытаться продолжить - но на это время желательно &gt;было бы сервер приостановить. <br>Увы, не приостановлю - Циска траффик шлет.<br>&gt; А во вторых - и самых главных - нужен специальный протокол общения с сервером - чтобы корректировать &gt;возникающие проблемы - например слать подтверждение на сервер после которого тот шлет повторно.<br>Здесь данные не столько критичные - потому по UDP и идут. В пределах процента - потери вполне можно стерпеть.<br><br>&gt;Или чтобы сервер не сыпал так быстро - скажем sleep какой между передачами.<br>&gt;те простого решения может и не быть - надо экспериментировать  <br><br>Увы, тоже не выйдет - realtime.<br><br>Резюме видимо таково, что единственное, что можно сделать - это вывести лог или что там еще, закрыть/открыть сокет?]]></description>
        <author>deadka</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867008</guid>
        <pubDate>Wed, 13 Feb 2008 11:39:12 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1867008</link>
        <description><![CDATA[Oleg2004: Тут может быть несколько возможных версий<br>
1. Буфер действительно мал - кстати, укажите размер<br>
2. Приложение медленно освобождает приемный буфер recvfrom() или он очень маленький - а туда должна поместиться вся датаграмма целиком<br>
3. Cтоит хилая сетевая карта (медленно работает)<br>
4. Принципиально быстрый UDP-передатчик может задушить медленный приемник<br>
5. Компу нехватает памяти (много приложений открыто и отсюда нехватка)<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=223235&view=findpost&p=1866830'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>deadka &#064; <time class="tag-quote__quoted-time" datetime="2008-02-13T09:56:00+00:00">13.02.08, 09:56</time></span><div class='quote '>Скажите, как нужно правильно прореагировать, если буфер сокета переполнился? </div></div><br>
Нужно обработать ошибку - это во первых. А далее можно пересоздать новый сокет в этой же программе и пытаться продолжить - но на это время желательно было бы сервер приостановить.  А во вторых - и самых главных - нужен специальный протокол общения с сервером - чтобы корректировать возникающие проблемы - например слать подтверждение на сервер после которого тот шлет повторно.<br>
Или чтобы сервер не сыпал так быстро - скажем sleep какой между передачами.<br>
те простого решения может и не быть - надо экспериментировать :)]]></description>
        <author>Oleg2004</author>
        <category>Сетевые Технологии</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1866830</guid>
        <pubDate>Wed, 13 Feb 2008 09:56:00 +0000</pubDate>
        <title>Переполнение буфера сокета</title>
        <link>https://forum.sources.ru/index.php?showtopic=223235&amp;view=findpost&amp;p=1866830</link>
        <description><![CDATA[deadka: Здравствуйте, all&#33;<br><br>Проблема в следующем: приложение получает поток данных по UDP (скорость примерно 300 килобАЙт/сек). Есть сильное подозрение, что несмотря на то, что буфер приемного сокета приложения увеличен до максимума (setsockopt с опцией SO_RCVBUF), буфер все равно переполняется — иногда спустя некоторое время функция recv возвращает -1, а WSAGetLastError = 10055 (No buffer space available). Сокет работает в блокирующем режиме. Скажите, как нужно правильно прореагировать, если буфер сокета переполнился? Есть ли какие-то способы кроме как перезапустить программу или пересоздать сокет?]]></description>
        <author>deadka</author>
        <category>Сетевые Технологии</category>
      </item>
	
      </channel>
      </rss>
	