Помогите мозгами!)
Ситуация следующая, необходимо смоделировать атаку типа RUDY на web-сервер, представленный как СМО, средствами GPSS.
Принцип атаки заключается в медленной, побитовой отправки кадров полного пакета данных отправляемых на сервер, то есть:
1) Сервер должен получить запрос
2) Зарезервировать под него ресурсы и ждать получения полного пакета.
Проблема возникает в следующем:
1) GPSS работает с множеством однородных генерируемых транзактов (читай запросов к СМО).
2) Запросы приходят с определенной интенсивностью, ну соответственно с приближенно равной задержкой устройств обработки.
3) Вся описанная программа на GPSS - есть 1 итерация глобально заложенного цикла, то есть все операторы есть путь 1 транзакта.
По этой задаче написал простую модель генерирующую запросы и блоки сервера для обработки, из-за отсутствия решения вопроса задержку установил в 72сек (сюда входит ожидание всех 48 кадров и их обработка).
ВОПРОС: можно ли как то все таки реализовать модель с учетом каждого отдельного пакета сборки их в запрос и дальнейшей обработки?
Интенсивность у запроса порядка 200 в секнду, кадры же пакета приходят с задержкой в 1-2 секунды друг от друга.
И что бы сервер начинал ожидать кадров транзакт запроса должен занять собой ОЗУ и ЦПУ, и потом уже ожидать остальные части пакета, пока он не соберется и не обработается с задержкой свойственной для единичного запроса.
RAM STORAGE 1024 ; Объем пула ОЗУ
GENERATE (EXPONENTIAL(1,0,6)) ; Генерация потока заявок 1 заявка приходит в промежутке от 4 до 8мс, что приближено к 200 запросам в секунду
TEST LE Q$BUF,1000,LBL ; Проверка переполнения буфера очереди и перенаправление на сброс пакетов при не выполнении условия
QUEUE BUF ; Постановка запроса в очередь
ENTER RAM,2 ; Занятие ОЗУ(в среднем страничка сегодня весит 2Мб)
DEPART BUF ; Выход запроса из очереди
SEIZE CPU ; Занимаем Процессор
ADVANCE (EXPONENTIAL(1,0,72000)) ; задержка обработки запроса процессором в мс
RELEASE CPU ; Освобождение процессора от запроса
LEAVE RAM ; Освобождение ОЗУ
TERMINATE 0 ; Завершение цикла обработки запроса
LBL SAVEVALUE DENIAL+,1 ; Счетчик запросов, которые не попали в очередь на обработку из-за переполнения буфера
TERMINATE 0 ; Завершение цикла обработки запроса
GENERATE 60000 ; через 60 секунд сгенерируется транзакт, завершение которого остановит программу
TERMINATE 1 ; Завершение программы
START 1 ; Первоначальный счетчик итераций