Template
1
0
mirror of https://github.com/bol-van/zapret2.git synced 2026-03-14 06:13:09 +00:00

update docs

This commit is contained in:
bol-van
2025-12-19 13:49:54 +03:00
parent a5ca736ad7
commit e07239e717

View File

@@ -3158,3 +3158,84 @@ function automate_conn_record(desync)
* arg: hostkey - имя функции генератора host-ключей. если не задано, используется [standard_hostkey](#standard_hostkey)
Возвращат таблицу - хранилище состояния автоматизации, привязанное к хосту или IP адресу. Используется 2 ключа - key и hostkey. Итоговое расположение - `autostate.key.hostkey`. Если hostkey получить не удается - возвращается nil.
## Обслуживание удач и неудач
Простое, но далеко неточное, обьяснение понятиям "удача" и "неудача" - "сайт открывается" и "сайт не открывается". В логике автоматизации эти состояния абстрактны. Любой процесс может претерпеть удачу или неудачу. Детект состояния удачи или неудачи нужен для подсчета неудач через счетчик. При неудаче счетчик увеличивается, при успехе - сбрасывается, при достижении целевого значения - возвращается признак, по которому внешняя логика может выполнить любое действие. Например, сменить стратегию.
### automate_failure_counter
```
function automate_failure_counter(hrec, crec, fails, maxtime)
```
* hrec - [хост хранилище](#automate_host_record)
* crec - [потоковое хранилище](#automate_conn_record)
* fails - целевое количество неудач
* maxtime - время в секундах, после которого с момента предыдущей неудачи следующая неудача начинает счет заново
Возвращает true, если счетчик достиг значения fails. При этом счетчик сбрасывается.
### automate_failure_counter_reset
```
function automate_failure_counter_reset(hrec)
```
* hrec - [хост хранилище](#automate_host_record)
Сбрасывает значение счетчика.
## Детекция удач и неудач
Детектор удач и неудач - это заменяемые функции, берущие в качестве параметров desync и [crec](#automate_conn_record) и возвращающие true , если зафиксирована удача или неудача.
### automate_failure_check
```
function automate_failure_check(desync, hrec, crec)
```
* hrec - [хост хранилище](#automate_host_record)
* crec - [потоковое хранилище](#automate_conn_record)
* arg: success_detector - имя функции детектора удач. если не задано, используется standard_success_detector.
* arg: failure_detector - имя функции детектора неудач. если не задано, используется standard_failure_detector.
* arg: fails - целевое значение счетчика неудач. По умолчанию - 3.
* arg: maxtime - максимальное время в секундах между неудачами, после которого счетчик сбрасывается. По умолчанию - 60 сек.
Функция выполняет ведение счетчика неудач, вызывая детекторы удачи и неудачи. Возвращает true, если счетчик достиг целевого значения. При этом счетчик сбрасывается автоматически.
### standard_success_detector
Стандартные детекторы удач и неудач требуют перенаправления входящего и исходящего трафика в обьеме, необходимом для срабатвания их критериев.
По relative sequence - нужны пакеты до указанного rseq + длина максимального пейлоада одного пакета (1460 байт для tcp).
```
function standard_success_detector(desync, crec)
```
* crec - [потоковое хранилище](#automate_conn_record)
* arg: maxseq - исходящий relative sequence, при достижении которого фиксируется удача. по умолчанию 32768. Смысл : отправлено достаточно много без застревания потока из-за блокировки.
* arg: inseq - входящий relative sequence, при достижении которого фиксируется удача. по умолчанию 4096. Смысл : оппонент прислал достаточно много, чтобы это не было реакцией DPI.
* arg: udp_out, udp_in - принято более udp_in udp пакетов при условии, что udp_out>0. Смысл : оппонент прислал достаточно много, чтобы это не было реакцией DPI.
Стандартный детектор удач.
### standard_failure_detector
```
function standard_failure_detector(desync, crec)
```
* crec - [потоковое хранилище](#automate_conn_record)
* arg: maxseq - считать ретрансмиссии в пределах исходящих relative sequence от 1 до maxseq. По умолчанию - 32768.
* arg: retrans - считать неудачей не менее retrans ретрансмиссий. По умолчанию - 3.
* arg: inseq - считать неудачей RST и http redirect в пределах входящих relative sequence от 1 до inseq. По умолчанию - 4096.
* arg: no_rst - не определять RST как неудачу
* arg: no_http_redirect - не определять http redirect как неудачу
* arg: udp_out, udp_in - считать неудачей ситуацию, когда по потоку отослано >=udp_out пакетов, а принято <=udp_in пакетов
Стандартный детектор неудач.
http редиректом от DPI считается то же самое , что и [автохослистах](#детектор-неудач-автохостлистов).