Содержание.
Стандарты Интернет (RFС)
Структура системы меню
Текст программы
Характеристики реализации программы
Характеристика пользовательского интерфейса
Стандарты Интернет (RFС).
RFC (от англ. Request for Comments – «запрос комментариев», «запрос на обсуждение») — документ из серии пронумерованных информационных документов Интернета, содержащих технические спецификации и стандарты, широко применяемые во всемирной сети.
Несмотря на название, запросы комментариев RFC сейчас рассматриваются как стандарты Интернета (а рабочие версии стандартов обычно называют драфтами, от англ. draft — зд. черновик). Согласно RFC 2026, жизненный цикл стандарта выглядит следующим образом:
1. Выносится на всеобщее рассмотрение Интернетовский черновик (Internet Draft). Черновики не имеют официального статуса, и удаляются из базы через шесть месяцев после последнего изменения.
2. Если черновик стандарта оказывается достаточно удачным и непротиворечивым, он получает статус Предложенного стандарта (Proposed Standard), и свой номер RFC. Наличие программной реализации стандарта желательно, но не обязательно.
3. Следующая стадия — Черновой стандарт (Draft Standard) означает, что предложенный стандарт принят сообществом, в частности, существуют две независимые по коду совместимые реализации разных команд разработчиков. В черновые стандарты ещё могут вноситься мелкие правки, но они считаются достаточно стабильными и рекомендуются для реализации.
4. Высший уровень — Стандарт Интернета (Internet Standard). Это спецификации с большим успешным опытом применения и зрелой формулировкой. Параллельно с нумерацией RFC они имеют свою собственную нумерацию STD. Список стандартов имеется в документе STD 1 (сейчас это RFC 3700, но нумерация может измениться). Из более чем трёх тысяч RFC этого уровня достигли только несколько десятков.
5. Многие старые RFC замещены более новыми версиями под новыми номерами, или вышли из употребления. Такие документы получают статус Исторических (Historic)
Практически все стандарты Глобальной сети существуют в виде опубликованных заявок RFC. Но в виде документов RFC выходят не только стандарты, но также концепции, введения в новые направления в исследованиях, исторические справки, результаты экспериментов, руководства по внедрению технологий, предложения и рекомендации по развитию существующих Стандартов и другие новые идеи в информационных технологиях:
1. Экспериментальные (Experimental) спецификации содержат информацию об экспериментальных исследованиях, интересных для интернет-сообщества. Это могут быть, например, прототипы, реализующие новые концепции.
2. Информационные (Informational) RFC предназначены для ознакомления общественности не являются стандартами и не являются результатом консенсуса или рекомендациями. Некоторые черновики, не получившие статуса Предложенного стандарта, но представляющие интерес, могут быть опубликованы как Информационные RFC.
3. Лучший современный опыт (Best Current Practice). Эта серия RFC содержит рекомендации по реализации стандартов, в том числе, от сторонних организаций, а также внутренние документы о структуре и процедурах стандартизации.
Почти все стандарты разрабатываются под эгидой каких-либо научных или интернет-организаций (например W3C, IETF, консорциум Юникода, Интернет2).
Запросы комментариев официально существуют только на английском языке. Строгих требований к оформлению нет. Встречаются RFC, написанные в строгом академическом стиле, иные — в дружеской неформальной манере. Существует традиция выпуска первоапрельских шуточных RFC, например, RFC 1149 рассказывает о передаче пакетов IP с помощью почтовых голубей.
Характеристики реализации программы.
Программа nettraf – система учёта сетевого трафика проходящего через сетевой интерфейс в ОС Linux.
Для реализации программы воспользуемся файрволом iptables ОС Linux версии не ниже 2.4.х и его возможностью передавать обрабатываемые правилами пакеты другим программам. Для передачи пакетов из iptables нашей программе подсчета трафика будем использовать цель –j QUEUE (к примеру, # iptables -A INPUT -p all -j QUEUE), которая выстраивает все пакеты в очередь для дальнейшей их обработки.
Для того, чтобы работать с данной возможность iptables нам необходимо подключить модуль ip_queue(# modprobe ip_queue), если такой модуль в операционной системе не найден, то необходимо пересобрать ядро Linux с опцией:
CONFIG_IP_NF_QUEUE=m
Для написания программы воспользуемся интерпретируемым языком PERL (nettrafd.pl). Чтобы «научить PERL работать» с libipq нам необходимо установить для него модуль perlipq-1.25, а также модуль NetPacket-0.03 для обработки проходящих пакетов.
Для хранения данных будем использовать СУБД MySQL, структура БД описана выше (struct.sql), где поле ip обозначает либо адрес отправителя, либо адрес получаетля, в зависимости от направления пакетов; поле bytes показывает количество байт посланных на конкретный узел или принятых с конкретного узла, в зависимости от направления пакетов; поле proto показывает протокол передачи данных; way – направление движения пакетов (1 – исходящие с интерфейса пакеты, 2 – входящие на интерфейс пакеты).
Все отчеты о статистике трафика представлены в читаемом для пользователя виде и могут быть просмотрены через веб-броузер (index.php, menu.js, scripts/index.php, scripts/config.php). Пользовательский интерфейс был реализован с помощью набора PHP-скриптов. Для создания раскрывающегося меню использовался JavaScript.