Разработка имитационной модели локальной вычислительной сети по гост в 26765.52-87 для исследования алгоритмов повышения ее надежности, безоп

Автор работы: Пользователь скрыл имя, 04 Июня 2013 в 16:34, курсовая работа

Описание

Настоящее техническое задание распространяется на разработку имитационного моделирования алгоритма защиты сети, а так же разработку модели сети. Данный алгоритм должен позволять обнаруживать и отключать «генератор помехи», а так же проверять работоспособность сети. Данная модель сети должна позволять генерировать сообщения от контроллера на любой заданный абонент, имитировать отказы и сбои любого из абонентов и контроллера сети, имитировать, текущее время, отображать процесс прохождения сообщений к ОУ и состояния ОУ. Модель и алгоритм обеспечения восстановления работоспособности сети должны пройти отладку с предоставлением отчета.

Содержание

Техническое задание………………………………………………………………………………….……………………...3
Эскизный проект…………………………………………………………………………………………………….………..7
1. Общие положения…………………………………………………………………………..................................7
2. Основные технические решения………………………………………………………………………………..7
Реализация…………………………………………………………………………………………………………………......9
Генератор сети………………………………………………………………………………………………...9
Описание……………………………………………………………………………………………….....9
Листинг …………………………………………………………………………………………………..9
Анализатор сети ……………………………………………………………………………………….……27
Описание………………………………………………………………………………………...……..27
Листинг…………………………………………………………………………………………………27
Графический визуализатор сети……………………………………………………………………………31
Интерфейс программы………………………………………………………………………………....31
Инструкция по эксплуатации…………………………………………………………………………31
Листинг программы…………………………………………………………………………………….35
Эксперимент………………………………………………………………………………………………………………....41
Описание эксперимента……………………………………………………………………………………..41
Результаты эксперимента……………………………………………………………………………………42
Приложение…………………………………………………………………………………………………………………..79
Список используемой литературы……………………………………………………………………………………….....81

Работа состоит из  1 файл

Federalnoe_gosudarstvennoe_byudzhetnoe_obrazovat.docx

— 1.12 Мб (Скачать документ)

this.changeDSost = function ChangeDSost(dsost) {

  this.dsost = dsost;

                      };

}

var countNodes = +prompt('Количество ОУ?', 0);   //Запрашиваем кол-во ОУ

var ouA = [];

var ouB = [];

for (var i = 0; i < countNodes; i++) { 

ouA[i] = new Node(i,"A");

ouB[i] = new Node(i,"B");

}

function changeDsost(dsost, line) { ////Функция для общей смены доп. состояния

for(var i=0;i<countNodes;i++){

if(line=='A') ouA[i].dsost = dsost;

if(line=='B') ouB[i].dsost = dsost;

}

 

}

function resetSost() {

for(var i=0; i<countNodes; i++) {

ouA[i].sost=0;

ouB[i].sost=0;

ouA[i].dsost=0;

ouB[i].dsost=0;

$('div[id="sostB'+ ouB[i].number +'"]').removeClass();

$('div[id="sostB'+ ouB[i].number +'"]').addClass('sost_1');

$('div[id="sostA'+ ouA[i].number +'"]').removeClass();

$('div[id="sostA'+ ouA[i].number +'"]').addClass('sost_1');

}

 

}

function clearLog() {

$('#log').html('');

time=0;

}

function checkSost(first,line,chgen) { //Функция проверки состояния и изменения его

var tmp;

var fail = 1;

for(var i=first; i<countNodes; i++) { // Пишем в лог состояния

$('#log').append('--\n');

if(line=='A') {

if((ouA[i].sost==0)&&(ouA[i].dsost==0)) {

$('#log').append(time + ': Запрос ответа у '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

 

}

if((ouA[i].sost==-1)||(ouA[i].dsost==1)) {

$('#log').append(time + ': Запрос ответа у '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n'); time = time +  4;

$('#log').append(time + ': Запрос ответа у '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n'); time = time +  4;

$('#log').append(time + ': Запрос ответа у '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n'); time = time +  4;

 

}  

if((ouA[i].sost==3)&&(ouA[i].dsost==0)) {

$('#log').append(time + ': Запрос ответа у '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: занят \n'); time = time +  4;

$('#log').append(time + ': Запрос ответа у '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

ouA[i].sost = 0;

$('div[id="sostA'+ ouA[i].number +'"]').removeClass();

$('div[id="sostA'+ ouA[i].number +'"]').addClass('sost_1');

}

if((ouA[i].sost==4)&&(ouA[i].dsost==0)) {

$('#log').append(time + ': Запрос ответа у '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: занят \n'); time = time +  4;

$('#log').append(time + ': Запрос ответа у '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

}

 

 

}

if((line=="B")&&(chgen==0)) {

if((ouB[i].sost==0)&&(ouB[i].dsost==0)) {

$('#log').append(time + ': Запрос ответа у '+ ouB[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

}

if((ouB[i].sost==-1)||(ouB[i].dsost==1)) {

$('#log').append(time + ': Запрос ответа у '+ ouB[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n'); time = time +  4;

$('#log').append(time + ': Запрос ответа у '+ ouB[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n'); time = time +  4;

$('#log').append(time + ': Запрос ответа у '+ ouB[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n');  time = time +  4;

}

if(((ouB[i].sost==-1)||(ouB[i].dsost==1))&&(chgen==1)) {

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n'); time = time +  4;

$('#log').append(time + ': Запрос на отключение '+ ouB[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n'); time = time +  4;

$('#log').append(time + ': Запрос на отключение '+ ouB[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n');  time = time +  4;  

}

if((ouB[i].sost==3)&&(ouB[i].dsost==0)) {

$('#log').append(time + ': Запрос ответа у '+ ouB[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: занят \n'); time = time +  4;

$('#log').append(time + ': Запрос ответа у '+ ouB[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

ouB[i].sost = 0;

$('div[id="sostB'+ ouB[i].number +'"]').removeClass();

$('div[id="sostB'+ ouB[i].number +'"]').addClass('sost_1');

}

if((ouB[i].sost==4)&&(ouB[i].dsost==0)) {

$('#log').append(time + ': Запрос ответа у '+ ouB[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: занят \n'); time = time +  4;

$('#log').append(time + ': Запрос ответа у '+ ouB[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

}

 

}

if((line=="B")&&(chgen==1)&&(ouA[i].sost!=2)) {

if((ouB[i].sost==0)&&(ouB[i].dsost==0)) {

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

tmp = ouA[i].sost;

ouA[i].sost = -1;

$('#log').append('\n\nПроверка после  отключения: \n');

time = checkSost(0,'A', 0);

$('#log').append('Генерация присутствует, продолжаю работу\n\n');

ouA[i].sost = tmp;

}

if((ouB[i].sost==-1)||(ouB[i].dsost==1)) {

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n'); time = time +  4;

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n'); time = time +  4;

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n');  time = time +  4;

$('#log').append('Не могу отключить,  продолжаю работу\n');

}

if((ouB[i].sost==3)&&(ouB[i].dsost==0)) {

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: занят \n'); time = time +  4;

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

tmp = ouA[i].sost;

ouA[i].sost = -1;

ouB[i].sost = 0;

$('div[id="sostB'+ ouB[i].number +'"]').removeClass();

$('div[id="sostB'+ ouB[i].number +'"]').addClass('sost_1');

$('#log').append('\n\nПроверка после  отключения: \n');

time = checkSost(0,'A',0);

$('#log').append('Генерация присутствует, продолжаю работу\n\n');

ouA[i].sost = tmp;

}

if((ouB[i].sost==4)&&(ouB[i].dsost==0)) {

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: занят \n'); time = time +  4;

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

tmp = ouA[i].sost;

ouA[i].sost = -1;

$('#log').append('\n\nПроверка после  отключения: \n');

time = checkSost(0,'A',0);

$('#log').append('Генерация присутствует, продолжаю работу\n\n');

ouA[i].sost = tmp;

}

}

if((line=="B")&&(chgen==1)&&(ouA[i].sost==2)) {

 

if((ouB[i].sost==0)&&(ouB[i].dsost==0)) {

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

changeDsost(0,'A');

ouA[i].sost = -1;

$('div[id="sostA'+ ouA[i].number +'"]').removeClass();

$('div[id="sostA'+ ouA[i].number +'"]').addClass('sost_2');

$('#log').append('\n\nПроверка после  отключения: \n');

time = checkSost(0,'A',0);

$('#log').append('Генерация отсутствует,  выявлен генерящий ОУ: '+ ouA[i].name +'\n\n'); fail=0;

return time;

}

if((ouB[i].sost==-1)||(ouB[i].dsost==1)) {

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n'); time = time +  4;

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n'); time = time +  4;

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Нет ответа \n');  time = time +  4;

$('#log').append('Не могу отключить,  продолжаю работу\n');

}

if((ouB[i].sost==3)&&(ouB[i].dsost==0)) {

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: занят \n'); time = time +  4;

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

changeDsost(0,'A');

ouA[i].sost = -1;

$('div[id="sostA'+ ouA[i].number +'"]').removeClass();

$('div[id="sostA'+ ouA[i].number +'"]').addClass('sost_2');

ouB[i].sost = 0;

$('div[id="sostB'+ ouB[i].number +'"]').removeClass();

$('div[id="sostB'+ ouB[i].number +'"]').addClass('sost_1');

$('#log').append('\n\nПроверка после  отключения: \n');

time = checkSost(0,'A',0);

$('#log').append('Генерация отсутствует,  выявлен генерящий ОУ: '+ ouA[i].name +'\n\n'); fail=0;

return time;

}

if((ouB[i].sost==4)&&(ouB[i].dsost==0)) {

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: занят \n'); time = time +  4;

$('#log').append(time + ': Запрос на отключение '+ ouA[i].name +' \n'); time = time +  20;

$('#log').append(time + ': Ожидание  ответа... \n'); time = time +  32;

$('#log').append(time + ': Получен ответ: ОК \n'); time = time +  4;

changeDsost(0,'A');

ouA[i].sost = -1;

$('div[id="sostA'+ ouA[i].number +'"]').removeClass();

$('div[id="sostA'+ ouA[i].number +'"]').addClass('sost_2');

Информация о работе Разработка имитационной модели локальной вычислительной сети по гост в 26765.52-87 для исследования алгоритмов повышения ее надежности, безоп