IZONE - http://www.izcity.com/ - бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Как подсчитать интернет-трафик?

Павел Виноградов

Вынесенный в заголовок вопрос далеко не праздный. Большинство счетчиков, с которыми приходилось сталкиваться, рассчитаны на работу на одной машине с модемом. Их функциональных возможностей хватает, пока вы не выходите за рамки этой достаточно узкой задачи - т.е., пока считать надо просто переданные через модем байты. Как только возникает сеть хотя бы из 2 машин с выходом "наружу" через прокси-сервер - подобный счетчик сразу покажет свою бесполезность.

Определенный выход из данной ситуации предлагается freeware программой TMeter, написанной Алексеем Казаковским (tmeter@narod.ru). Программу можно скачать с сайта http://tmeter.narod.ru. Для нормальной работы необходим Windows Packet Capture драйвер. Дистрибутив версии с этим драйвером "весит" 1058 Кб. Также для нормальной работы необходим Microsoft Internet Explorer 4.0 и выше. Установка, по крайней мере, у меня прошла безболезненно. Что приятно - после установки самой программы установщик сам предложил установить Windows Pocket Driver из дистрибутива.

После установки программы на рабочем столе должен появится значок TMeter в виде симпатичного светофора, а также папочка с ярлычками в главном меню. Запускаем - и смотрим, что же умеет делать TMeter в области подсчета Интернет-трафика.

Даже если вы соединены с Сетью - ничего интересного не произойдет, и TMeter не начнет сразу считать ваш Интернет-трафик. Дел в том, что сначала вы должны "объяснить" программе - что нужно подсчитать. А для этого надо немного разобраться в том, как он работает.

TMeter собирает пакеты сетевого трафика, проходящие через сетевой интерфейс вашей машины. В данном случае под сетевым интерфейсом подразумевается либо подсистема удаленного доступа (PPP интерфейс) или сетевой адаптер (Ethernet интерфейс). При этом программа умеет собирать не только пакеты, предназначенные для вашей машины, но и пакеты, "гуляющие" по сети. Этого не произойдет, только если в вашей сети стоит устройство (концентратор), не пропускающие к вашей карте пакеты не предназначенный для неё.

Основной инструмент для управления подсчетом трафика в TMeter - это фильтр. По сути дела, фильтр представляет собой способ задания сетевых адресов обоих концов Интернет-канала, трафик в котором вас интересует. При этом, один, или оба конца могут быть "множественными", т.е. вы при желании можете подсчитать трафик между одной своей машиной и всем Интернетом. В программе фильтр можно создать или отредактировать через пункт "Редактирование фильтров" в меню "Файл"(Ctrl-N).

Основное окно TMeter.

Окно диспетчера фильтров. Редактирование фильтров.

Сначала вы попадете в окно диспетчера фильтров, где перечислены все существующие на данный момент фильтры программы. Также в этом окне присутствую кнопки для создания, удаления, редактирования, сортировки фильтров. На нескольких соседних вкладках размещено несколько дополнительных инструментов для управления фильтрами. Конкретно:

  • "Предварительный фильтр" дает возможность "отсеять", т.е., не передавать в фильтры часть пакета. При этом правило фильтрации задается способом, в точности подобным способу задания самого фильтра.
  • "Таблица локальных адресов". Эта возможность может быть полезна владельцам небольших локальных сетей. Здесь вам предстоит задать диапазон (или диапазоны) IP-адресов машин, принадлежащих локальной сети вашего дома или предприятия. Указанные здесь IP- адреса будут использованы в фильтрах под псевдонимом "IP адреса моей локальной сети", и могут подсчитываться отдельно.
  • "Протоколирование счетчиков". Здесь можно указать папку для сохранения отчетов TMeter, набранных в течение дня или месяца, а также указать - нужно ли это делать. Таким образом, TMeter может сохранять результат подсчета не только по вашему желанию ("Сформировать отчет и записать в файл" в меню "Файл), но и по расписанию - ежедневно или ежемесячно.

Прежде, чем вы сможете задать конкретные правила для подсчета трафика, перед вами откроется окно "Редактирование фильтра". Стоит оценить по достоинству его смысл и значение. Дело в том, что каждый фильтр включает несколько правил, каждое из которых определяет уже конкретные характеристики учитываемых пакетов. Таким образом, эта особенность дает возможность задавать весьма сложные и замысловатые условия для подсчета трафика.

Окно редактирования фильтра.

Наконец - окно для работы с самими фильтрами. Здесь вы встречаете 3 выпадающих списка. Два из них задают конечные точки канал с подсчитываемым Интернет-трафиком, один - за протокол передачи по этому каналу. Установка галочки в пункт "Mirrored" позволяет "зеркально отразить" указанное вами правило, поменяв местами источник и пункт назначения подсчитываемых пакетов.

Окно задания правила в фильтре.

Левый выпадающий список отвечает за источник пакета, при этом возможен выбор таких вариантов:
1. "Мой компьютер" - т.е., пакет может быть засчитан, если он отправлен вашим компьютером.
2. "Любой IP адрес" - пакет может быть отправлен любой машиной.
3. "Определенный IP адрес" - при выборе этой опции возникнет дополнительная строка для ввода адреса. Очевидно, этот пункт фиксирует в качестве отправителя пакета машину с указанными вами IP адресом.
4. "Определенная IP подсеть" - здесь добавится две строки ("IP адрес" и "Маска подсети"). Это позволит засчитывать пакеты, исходящие из заданной вами подсети.
5. "IP адреса моей локальной сети" - как указано выше, в программе вы можете "прописать" адреса своей локальной сети. Выбрав этот пункт, вы укажете отправным пунктом пакет любую машину из введенного вами списка.
6. "IP адреса глобальной сети" - предыдущей пункт "наоборот".
7. "Определенный MAC адрес" - то же, что и пункт 3, но для адресов машин Apple Macintosh в сети. Точно такой же список находится с правой стороны. Как уже говорилось, отметив галочкой слово "Mirrored" внизу окошка, вы прикажете TMeter поменять местами источник и пункт назначения подсчитываемых пакетов.

Теперь, когда мы познакомились с окном создания фильтра, можно попробовать что-нибудь подсчитать.

1. Допустим, вы работаете с Интернет через модем, и вас интересует, сколько байт и какой скоростью вы ОТСЫЛАЕТЕ в Сеть. Делаем так:
a. "Адрес источника", с левой стороны - ставим "Мой компьютер".
b. "Адрес назначения", с правой стороны - ставим ""Любой IP адрес".
c. УБЕРЕМ галочку с пункта "Mirrored".
d. В списке "Тип протокола IP" укажем "Любой протокол IP".

После этого вам нужно сохранить созданный фильтр, и нажать кнопку 4 на панели инструментов. В основном окне появится кривая, постепенно распространяющаяся вправо - это график зависимости скорости (Кбайт/сек) вашего канала от времени, а в таблице внизу замелькают цифры, отсчитывающие количество переданных байт и скорость соединения.

Попробуем немного более сложный пример - подсчет трафика в обе стороны, т.е., подсчитаем общий объем информации, перекачанной между вашей машиной и Сетью. Это можно сделать двумя способами.

2А. В окне "Редактирование набора фильтров" выберем только что созданный фильтр, нажмем "Изменить фильтр", в появившемся окне "Редактирование фильтров" нажмем "Добавить правило". В уже знакомом окошке сделаем все так же, как в первый раз, только поменяем местами адреса источника и назначения.
2Б. Точно такого результата можно добиться, просто отметив пункт "Mirrored" в только что созданном правиле. В этом случае в строке вашего фильтра в таблице основного окна по отдельности будут считаться полученные и отправленные байты.<

Намного интереснее такая задачка. Допустим, у вас есть локальная сеть, подключенная через один из компьютеров к Интернет. И вы, как рачительный и хозяйственный сетевой администратор, хотите знать:
А) Насколько интенсивен обмен между вашей сетью конкретно и Сетью (Интернет) вообще?
Б) Какие компьютеры вашей сети наиболее преуспели в обмене информацией с Интернет?
В) Насколько интенсивен поток информации внутри локальной сети?
Г) Какие машины внутри локальной сети наиболее активно обмениваются информацией?

Для решения этого комплекса задач необходим набор фильтров, который мы сейчас и разработаем.

Фильтр А

Сначала на вкладке "Таблица локальных адресов" указываем диапазон адресов вашей локальной сети. Затем создаем новый фильтр (назовем его Фильтр А) из одного правила по следующему рецепту:
- Отметим "Mirrored"
- В качестве адреса источник укажем "IP адреса локальной сети", в качестве адреса назначения - "IP адреса глобальной сети". Или наоборот - выбор пункта "Mirrored" делает оба варианта одинаковыми.
Фильтр А готов.

Фильтр Б

Здесь мы хотим отследить интенсивность обмена трафиком какой-либо машины из локальной сети с Интернет. Отметив опять же "Mirored", в качестве одного конца канала укажем " IP адреса глобальной сети", в качестве другого - "Определенный IP-адрес". В появившемся окне укажем IP-адрес интересующей нас машины.

Несколько сложнее дело будет обстоять, если обмен с Интернет идет через Proxy-сервер типа WinProxy или WinGate. В этом случае машина, на которой запущен прокси-сервер, имеет два IP адреса (локальный и глобальный), соответствующие двум соединениям - Ethernet и PPP. Пуская, для примера, адрес локальной машины, трафик от которой надо подсчитать - 192.168.0.2, адрес прокси сервера в локальной сети - 192.168.0.1, а адрес прокси сервера в Интернет - 195.239.2.51.

Фильтр Б1

Поступаем так. Если у вас модем - соединяемся, затем запускаем TMeter. Такая последовательность необходима для того, чтобы выяснить IP-адрес прокси-сервера в Интернет, TMeter сам узнает его и отобразит в основном окне. Дальше создаем фильтр из двух правил.

Окно задания Фильтра Б1.

Правило первое: Таким образом, это правило задает канал от локальной машины к прокси серверу. Этот канал целиком находится внутри локальной сети.

Следующим правилом станет канал из локальной сети в Интернет. Очевидно, это канал между сетевым адаптером прокси-сервера и PPP-контроллером.

Второе правило: Mirrored, адрес источника - 192.168.0.1, адрес назначения 195.239.2.51. Как видно, оба адреса принадлежат прокси серверу.

Последнее, что надлежит сделать - и это важно - данный фильтр нужно присвоить не PPP адаптеру, а сетевой карте прокси-сервера. Тогда после запуска фильтра он начнет считать именно то, что вам надо.

Вместе два правила образуют фильтр, задающий канал от локальной машины в Интернет.

Действительно, первое правило "отсечет" трафик от всех остальных машин локальной сети, выходящих в Интернет через тот же прокси-сервер, а второе - отсечет локальный поток данных между прокси-сервером и локальной машиной, не выходящий за пределы локальной сети. Таким образом, на этом примере можно воочию убедится в гибкости TMeter в вопросах подсчета трафика.

Фильтр В

С обеих сторон (источник и назначение) ставим "IP адреса локальной сети". А также - отмечаем "Mirrored".

Фильтр Г

Выбрав "Mirrored", просто ставим в соответствующие поля IP-адреса интересующих нас машин, определив их как "Определенный IP адрес".

Перед заключением - немного обо всех остальных возможностях программы. Если вы работаете с PPP соединением - как правило, оно ставится по умолчанию при работе с модемом - вы можете отметить на панели инструментов пункт "Enable promiscuous mode". В принципе, этот пункт - специальный режим сетевого адаптера, который позволяет программе собирать все без исключения сетевые пакеты, "гуляющие" по сети - даже те, которые не предназначены для вашей машины. Promiscuous mode бесполезен, если в вашей сети стоит коммутатор, который не пропускает к сетевой карточке "лишние" пакеты. Кроме того, стоит отметить, что возможность считать байты переданные по определенной разновидности IP-протокола, позволяет, например, отдельно подсчитывать трафик в защищенном IP-соединении.

Настройки программы ("Настройки" - "Настройки программы") не богаты, но вполне достаточны. Вы можете, во-первых, загружать при загрузке программы указанный вами файл фильтров, во-вторых, можете изменить значение вертикальной оси в зависимости от ширины вашего канала.

В заключение, еще раз отмечу необычайную гибкость программы TMeter в подсчете Интернет трафика. Использование весьма гибкой системы задания правил подсчета трафика позволяет при помощи TMeter решить практически любую, самую замысловатую задачу подсчета TCP/IP трафика в локальных и глобальных сетях.

Источник: http://www.4User.ru/

 


Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com