<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Проблема с расчетом контрольной суммы IP, TCP.</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9318.html</link>
    <description>Здравствуйте, помогите пожалуйста с рассчетом контрольной суммы IP, TCP.&lt;br&gt;Предисловие:&lt;br&gt;Сейчас изучаю netgraph.&lt;br&gt;Хочу написать модуль, который в проходящих через него пакеты меняет IP адреса источника и назначения местами.&lt;br&gt;На машине стоит Ubuntu, на ней виртуалка с FreeBSD.&lt;br&gt;В сеть посылаю пакеты tcpreplay&apos;ем, которые сохранил на Ubuntu с помощью tcpdump(пакеты посылал с виртуалки ping&apos;ом).&lt;br&gt;На виртуалке сетевые интерфейсы стоят в promisc режиме.&lt;br&gt;Перед попаданием на интерфейс пакет проходит через мой модуль.&lt;br&gt;&lt;br&gt;Собственно, сами вопросы:&lt;br&gt;&lt;br&gt;1) Могу ли я рассчитывать этой функцией контрольную сумму для IP и для TCP?&lt;br&gt;Функция для подсчета контрольной суммы:&lt;br&gt;static unsigned short сsum  (unsigned short *ptr, int len)&lt;br&gt;&#123;&lt;br&gt;register int sum = 0;&lt;br&gt;while (len &amp;gt; 1)&lt;br&gt;&#123;&lt;br&gt;sum += *ptr++;&lt;br&gt;len -= 2;&lt;br&gt;&#125;&lt;br&gt;if (len == 1)&lt;br&gt;sum += *((unsigned char *) ptr);&lt;br&gt;sum = (sum &amp;gt;&amp;gt; 16) + (sum &amp; 0xffff);&lt;br&gt;sum += (sum &amp;gt;&amp;gt; 16);&lt;br&gt;return (~sum);&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;2) Правильно ли я рассчитываю контрольную сумму IP?&lt;br&gt;Для замены IP определена функция:&lt;br&gt;#defin</description>

<item>
    <title>Проблема с расчетом контрольной суммы IP, TCP. (Andery)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9318.html#1</link>
    <pubDate>Sun, 11 Dec 2011 17:58:18 GMT</pubDate>
    <description>Тема не актуальна, можно удалять.&lt;br&gt;</description>
</item>

</channel>
</rss>
