Диплом: Автоматизация учета и обработки данных по использованию трафика ЛВС для АО "БИТК"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
использует функциональность классов «NetFlowHeader»,
«NetFlowRecord» для полного разбора пакета NetFlow5 (т.к.
пакет NetFlow5 состоит из заголовка пакета и множества
записей «record»).
Результатом данного этапа является объект класса
«NetFlowPacket» содержащий данные пакета в удобном для
использования виде.
Если разбор успешно выполнен, то переходим к пункту 6.
7. Запись
сведений в базу
данных
Выполняется вызов метода «Write» объекта класса
«NetFlowWriter».
Переходим к пункту 4.
Используемые (в процессе работы коллектора) объекты приведены в
таблице 2.10.
Таблица 2.10
Используемые (в процессе работы коллектора) объекты
Название
Класс C++
Описание
Сокет
System::Net::Sockets::Socket
(встроенный класс)
Используется для приема пакетов
NetFlow5
Заголовок
пакета
NetFlowHeader
(реализованный класс)
Используется для разбора заголовка
пакетов NetFlow5. Использует
BitConverter.
Запись из
пакета
NetFlowRecord
(реализованный класс)
Используется для разбора одной
записи из пакета NetFlow5. Использует
BitConverter.
Пакет
NetFlowPacket
(реализованный класс)
Используется для разбора получаемой
сокетом последовательности байтов и
приведения этой последовательности в
вид, удобный для использования в коде
приложения. Использует
функциональность NetFlowHeader,
NetFlowPacket.
Бит-
конвертор
System::BitConverter
(реализованный класс)
Используется для конвертирования
байтов пакета в удобные для
использования типы данных.
Компонент
записи
данных в
базу
данных
NetFlowWriter
(реализованный класс)
Записывает пакет (экземпляр класса
NetFlowPacket) в базу данных.
Фоновый
поток
System::ComponentModel::
BackgroundWorker
(встроенный класс)
Используется для реализации фоновых
вычислений.
Диаграмма классов представлена на рисунке 2.20.
Рисунок 2.20 – Диаграмма классов
Класс «NetFlowHeader» Реализует алгоритм разбора заголовка пакета
NetFlow5.
Реализует алгоритм разбора заголовка записи из пакета NetFlow5 (таблица
2.11).
Таблица 2.11
Описание класса NetFlowHeader
Область
видимости
Объявление
Описание
public
static const int size = 24;
Размер заголовка пакета NetFlow в байтах
public
short version;
Версия протокола NetFlow (в нашем случае
всегда равно 5)
public
short count;
Количество записей в пакете (1-30)
public
unsigned int sys_uptime;
Current time in milliseconds since the export
device booted
public
unsigned int unix_secs;
Current count of seconds since 0000 UTC 1970
public
unsigned int unix_nsecs;
Residual nanoseconds since 0000 UTC 1970
public
unsigned int
flow_sequence;
Sequence counter of total flows seen
public
char engine_type;
Type of flow-switching engine
public
char engine_id;
Slot number of the flow-switching engine
public
short sampling_interval;
First two bits hold the sampling mode; remaining
14 bits hold value of sampling interval
Таблица 2.12
Методы класса NetFlowHeader
Область
видимости
Объявление
Описание
public
NetFlowHeader(array<unsigned
char, 1>^ BitNetFlowPacket)
Конструктор класса. В теле
конструктора выполняется разбор
последовательности байт заголовка
пакета NetFlow
protected
array<unsigned char, 1>^
GetBytes (array<unsigned char,
1>^ source, int index, int count)
{
Выполняет извлечение
определенного количества байт из
массива байтов пакета NetFlow5 и
производит корректировку
последовательности исходя из
свойства System::BitConverter::
IsLittleEndian (порядок байтов, в
котором данные хранятся в
архитектуре данного компьютера)
Класс «NetFlowRecord»
Таблица 2.13
Описание класса NetFlowRecord
Область
видимости
Объявление
Описание
public
static const int size =
24;
Размер заголовка пакета NetFlow в байтах
public
unsigned int srcaddr;
Адрес источника данных
public
unsigned int dstaddr;
Адрес приемника данных
public
unsigned int nexthop;
Адрес следующего сетевого устройства
(маршрутизатора), через которых будут
пересылаться пакеты данных
public
unsigned short input;
Входной интерфейс
public
unsigned short output;
Выходной интерфейс
public
unsigned int dPkts;
Количество пакетов в потоке
public
unsigned int dOctets;
Количество байт в потоке
public
unsigned int first;
Время начала потока в системе SysUptime
public
unsigned int last;
Время SysUptime, когда последний пакет
потока был получен
public
unsigned short srcport;
Номер порта источника данных (4-го уровня
сетевой модели)
public
unsigned short dstport;
Номер порта приемника данных (4-го
уровня сетевой модели)
public
unsigned char pad1;
Неиспользуемые байты
public
unsigned char
tcp_flags;
TCP флаги
public
unsigned char prot;
Протокол 4-го уровня (например, 6=TCP,
17=UDP и т.п.)
public
unsigned char tos;
Тип сервиса IP протокола
public
unsigned short src_as;
Номер автономной системы источника
данных
public
unsigned short dst_as;
Номер автономной системы приемника
данных
public
unsigned char
src_mask;
Маска адреса источника данных
public
unsigned char
dst_mask;
Маска адреса приемника данных
public
unsigned short pad2;
Неиспользуемые байты
Таблица 2.14
Методы класса NetFlowRecord
Область
видимост
и
Объявление
Описание
public
NetFlowRecord(array<
unsigned char, 1>^
BitNetFlowRecord);
Конструктор класса. В теле конструктора
выполняется разбор последовательности
байт записи пакета NetFlow
protected
array<unsigned char,
1>^
GetBytes
(array<unsigned char,
1>^ source, int index,
int count);
Выполняет извлечение определенного
количества байт из массива байтов пакета
NetFlow5 и производит корректировку
последовательности исходя из свойства
System::BitConverter:: IsLittleEndian (порядок
байтов, в котором данные хранятся в
архитектуре данного компьютера)
Класс «NetFlowPacket»
Реализует алгоритм разбора пакета NetFlow5.
Таблица 2.15
Описание класса NetFlowPacket
Область
видимости
Объявление
Описание
public
int Size;
Размер пакета в байтах
public
NetFlowHeader ^Header;
Заголовок пакета
public
array<NetFlowRecord^, 1>
^Body;
Массив записей пакета
Таблица 2.16
Методы класса NetFlowPacket
Область
видимости
Объявление
Описание
public
NetFlowPacket
(array<unsigned char,
1>^ BitNetFlowPacket)
Конструктор класса. Реализует разбор
байтовой последовательности и создает
экземпляр класса NetFlowPacket.
protected
array<unsigned char,
1>^
GetBytes
(array<unsigned char,
1>^ source, int index,
int count)
{
Выполняет извлечение определенного
количества байт из массива байтов пакета
NetFlow5 и производит корректировку
последовательности исходя из свойства
System::BitConverter:: IsLittleEndian (порядок
байтов, в котором данные хранятся в
архитектуре данного компьютера)
Класс «NetFlowCommon»
Реализует ряд общих методов, используемых при работе с данными
пакетов NetFlow5.
Таблица 2.17
Описание класса NetFlowCommon
Область
видимости
Объявление
Описание
public
static System::String^ GetIpAddress
(unsigned int Address);
Преобразует IP адрес из
числовой формы в формат
mmm.nnn.ppp.qqq
public
static System::TimeSpan^
GetTimeSpan (unsigned int
SysUptime)
Преобразует значение
временного интервала из
SysUptime в System::TimeSpan.
public
static System::DateTime^
GetDateTime (unsigned int
UnixSecs)
Преобразует значение
временного интервала из
UnixSecs в System::DateTime.
Класс «NetFlowWriter»
Реализует механизм записи пакета NetFlow5 в базу данных.
Таблица 2.18
Описание класса NetFlowCommon
Область
видимости
Объявление
Описание
protected
SqlConnection^ Connection;
Соединение с базой данных
Таблица 2.19
Методы класса NetFlowCommon
Область
видимости
Объявление
Описание
public
NetFlowWriter(String^
ConnectionString)
Конструктор класса. В
качестве параметра
принимает строку
подключения к базе данных.
public
void Write (NetFlowPacket ^Packet)
Выполняет запись всго пакета
в базу данных
public
void WriteRecord (NetFlowRecord
^Record)
Записывает в базу одну
запись (record) из пакета
NetFlowPacket
public
void ClearBase ()
Выполняет очистку базы
данных
Диаграмма классов приложения приведена на рисунке 2.21.
Рисунок 2.21 - Диаграмма классов (Класс главной формы приложения
«FormMain», классы других форм и основной класс для работы с БД
«baseDataSet»)
Классы для работы с базой данных
baseDataSet
Объединяет в себе классы для обращения к таблицам базе данных. Для
каждой интересующей нас таблицы в этом классе мы создается компоненты
«TableAdapter» и «DataTable». Компонент «DataTable» определяет список полей
набора данных, а компонент «TableAdapter» определяет четыре базовых sql-
запроса (select, insert, update, delete) для работы с конкретной таблицей БД.
Основные элементы класса baseDataSet приведены на рисунке 2.22.
Рисунок 2.22 – Основные элементы класса baseDataSet
Department
Класс, привязанный к таблице базы данных «Отдел» (наследуется от класса
«System.Data.DataTable»)
DepartmentTableAdapter
Класс-адаптер для таблицы базы данных «Отдел». Реализует в себе четыре
SQL-запроса (select, insert, update, delete) к целевой таблице. Позволяет выгружать
данные из таблицы базы данных в объекты, наследуемые от класса «Department»,
через который программист может редактировать таблицу базы данных. Метод
«Fill» адаптера заполняет таблицу «Department». Метод «Update» адаптера
заносит данные из «Department» в базу данных.
Employee
Класс, привязанный к таблице базы данных «Сотрудник» (наследуется от
класса «System.Data.DataTable»)
EmployeeTableAdapter
Класс-адаптер для таблицы базы данных «Сотрудник». Реализует в себе
четыре SQL-запроса (select, insert, update, delete) к целевой таблице. Позволяет
выгружать данные из таблицы базы данных в объекты, наследуемые от класса
«Employee», через который программист может редактировать таблицу базы
данных. Метод «Fill» адаптера заполняет таблицу «Employee». Метод «Update»
адаптера заносит данные из «Employee» в базу данных.
LocalNetwork
Класс, привязанный к таблице базы данных «Локальные сети» (наследуется
от класса «System.Data.DataTable»)
LocalNetworkTableAdapter
Класс-адаптер для таблицы базы данных «Локальные сети». Реализует в
себе четыре SQL-запроса (select, insert, update, delete) к целевой таблице.
Позволяет выгружать данные из таблицы базы данных в объекты, наследуемые от
класса «LocalNetwork», через который программист может редактировать
таблицу базы данных. Метод «Fill» адаптера заполняет таблицу «LocalNetwork».
Метод «Update» адаптера заносит данные из «LocalNetwork» в базу данных.
Port
Класс, привязанный к таблице базы данных «Порт» (наследуется от класса
«System.Data.DataTable»)
PortTableAdapter
Класс-адаптер для таблицы базы данных «Порт». Реализует в себе четыре
SQL-запроса (select, insert, update, delete) к целевой таблице. Позволяет выгружать
данные из таблицы базы данных в объекты, наследуемые от класса «Port», через
который программист может редактировать таблицу базы данных. Метод «Fill»
адаптера заполняет таблицу «Port». Метод «Update» адаптера заносит данные из
«Port» в базу данных.
Protocol
Класс, привязанный к таблице базы данных «Протокол» (наследуется от
класса «System.Data.DataTable»)
ProtocolTableAdapter
Класс-адаптер для таблицы базы данных «Протокол». Реализует в себе
четыре SQL-запроса (select, insert, update, delete) к целевой таблице. Позволяет
выгружать данные из таблицы базы данных в объекты, наследуемые от класса
«Protocol», через который программист может редактировать таблицу базы
данных. Метод «Fill» адаптера заполняет таблицу «Protocol». Метод «Update»
адаптера заносит данные из «Protocol» в базу данных.
Resource
Класс, привязанный к таблице базы данных «Ресурс» (наследуется от
класса «System.Data.DataTable»)
ResourceTableAdapter
Класс-адаптер для таблицы базы данных «Ресурс». Реализует в себе четыре
SQL-запроса (select, insert, update, delete) к целевой таблице. Позволяет выгружать
данные из таблицы базы данных в объекты, наследуемые от класса «Resource»,
через который программист может редактировать таблицу базы данных. Метод
«Fill» адаптера заполняет таблицу «Resource». Метод «Update» адаптера заносит
данные из «Resource» в базу данных.
view_local_addresses
Класс, привязанный к представлению базы данных «Локальные адреса»
(наследуется от класса «System.Data.DataTable»)
view_local_addressesTableAdapter
Класс-адаптер для представления базы данных «Локальные адреса».
Реализует в себе четыре SQL-запроса (select, insert, update, delete) к целевой
таблице. Позволяет выгружать данные из таблицы базы данных в объекты,
наследуемые от класса «view_local_addresses», через который программист может
редактировать таблицу базы данных. Метод «Fill» адаптера заполняет таблицу
«view_local_addresses». Метод «Update» адаптера заносит данные из
«view_local_addresses» в базу данных.
view_stat_common
Класс, привязанный к представлению базы данных «Общие сведения»
(наследуется от класса «System.Data.DataTable»)
view_stat_commonTableAdapter
Класс-адаптер для представления базы данных «Общие сведения».
Реализует в себе четыре SQL-запроса (select, insert, update, delete) к целевой
таблице. Позволяет выгружать данные из таблицы базы данных в объекты,
наследуемые от класса «view_stat_common», через который программист может
редактировать таблицу базы данных. Метод «Fill» адаптера заполняет таблицу
«view_stat_common». Метод «Update» адаптера заносит данные из
«view_stat_common» в базу данных.
view_stat_employee
Класс, привязанный к представлению базы данных «Трафик» («Статистика
пользователей») (наследуется от класса «System.Data.DataTable»)
view_stat_employeeTableAdapter
Класс-адаптер для представления базы данных «Трафик» («Статистика
пользователей»). Реализует в себе четыре SQL-запроса (select, insert, update,
delete) к целевой таблице. Позволяет выгружать данные из таблицы базы данных
в объекты, наследуемые от класса «view_stat_employee», через который
программист может редактировать таблицу базы данных. Метод «Fill» адаптера
заполняет таблицу «view_stat_employee». Метод «Update» адаптера заносит
данные из «view_stat_employee» в базу данных.
view_stat_employee_connection
Класс, привязанный к представлению базы данных «Соединения»
(«Статистика пользовательских соединений») (наследуется от класса
«System.Data.DataTable»)
view_stat_employee_connectionTableAdapter
Класс-адаптер для представления базы данных «Соединения» («Статистика
пользовательских соединений»). Реализует в себе четыре SQL-запроса (select,
insert, update, delete) к целевой таблице. Позволяет выгружать данные из таблицы
базы данных в объекты, наследуемые от класса «view_stat_employee_connection»,
через который программист может редактировать таблицу базы данных. Метод
«Fill» адаптера заполняет таблицу «view_stat_employee_connection». Метод
«Update» адаптера заносит данные из «view_stat_employee_connection» в базу
данных.
view_stat_employee_connection_info
Класс, привязанный к представлению базы данных «Характер
взаимодействия» («Сведения о подключении») (наследуется от класса
«System.Data.DataTable»)
view_stat_employee_connection_infoTableAdapter
Класс-адаптер для представления базы данных «Характер взаимодействия»
(«Сведения о подключении»). Реализует в себе четыре SQL-запроса (select, insert,

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)