Upload
iosif-itkin
View
172
Download
1
Embed Size (px)
Citation preview
Верификация программно-конфигурируемых сетейпри помощи системы UPPAAL
В.В. Подымов, У.В. Попеско
МГУ им. М.В. Ломоносова
2013
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 1 / 22
План
ВведениеЦельСхема верификацииФормальная модельАлгоритм трансляцииКорректность алгоритмаЭкспериментальное исследование
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 2 / 22
Введение. ПКС
Отделение уровня управления от устройств в узлах сетиПрограммное управление сетьюСтандарт Openflow
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 3 / 22
Введение. ПКСПример работы сети
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 4 / 22
Введение. ПКСПример работы сети
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 5 / 22
Введение. ПКСПример работы сети
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 6 / 22
Введение. ПКСПример работы сети
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 7 / 22
Введение. ПКСПравило
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 8 / 22
Введение. UPPAAL
Входная модель — сеть временных автоматовПроверяет формулы логики TCTL
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 9 / 22
Цель
Разработать метод верификации ПКСкак распределённых систем реального времени
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 10 / 22
Схема верификации
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 11 / 22
Формальная модельДиаграммы UML
Диаграммы Dia
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 12 / 22
Формальная модель
Формализация всех элементов диаграммы:I коммутаторI контроллерI каналI заголовок пакетаI . . .
Формальная семантика сети:I конечное число управляющих состояний элементов диаграммы
(коммутаторов, контроллера, каналов)I локальные таймеры
(бесконечное число значений)I состояние сети:
совокупность управляющих состояний и значений таймеровI сценарии работы сети:
система переписывания
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 13 / 22
Формальная модельПримеры правил переписывания
Применение коммутатором правила r = (p, h, x , p′) ∈ Rule(t ∈ [L,R]):Com(select,Rule, t, h, p)→ Com(hit,Rule, h, p′),
Отправка коммутатором пакета в канал:Com(hit,Rule, h, p),Chan(empty)→
Com(start,Rule),Chan(full , 0, h)
Получение коммутатором пакета:Com(start,Rule),Chan(sent, h)→
Com(select, 0,Rule, h, p),Chan(empty)
Продвижение времени:все таймеры сдвигаются на одну и ту же величину, если системане может “прогрессировать”
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 14 / 22
Алгоритм трансляции
Вход: UML-диаграмма
Выход: сеть временных автоматов UPPAAL
Принцип работы:
канал −→ переменные + таймерконтроллер −→ временной автоматкоммутатор −→ временной автоматвспомогательные автоматы
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 15 / 22
Алгоритм трансляцииАвтомат коммутатора
select
t <= 5 miss
hit
rewrite
t <= 3
start
rule_t[r] >= rule_max[r]active[r] = false
t >= 3
i = 0..3 -> active[i]
i = 0..3!active[i]
!c[r]hurry!send(c[r], h)
hurry!send(to_con[0], (p, h))
i = 1..3 -> active[i]
(i = 0..3)active[i] && (rule_t[i] > rule_max[i])active[i] = false
i = 0..3 -> !active[i]|| (rule_t[i] <= rule_max[i] )
i = 0..3 -> !hit(rule[i])
(i = 0..3)(t >= 2) && !active[i]set_rule(i)
from_con[0]hurry!get(from_con[0]),t = 0
rule_t[r] < rule_max[r](i = 0..3)hit(rule[i])r = i
(i = 1,4,5)c_ready[i]hurry!get(c[i]), p = i, t = 0
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 16 / 22
Алгоритм трансляцииАвтомат контроллера
send
idle
!con_in[c]hurry!send(from_con[c], rule[r])
i = 0..2 -> !hit(rule[i], (c, p, h))
(i = 0..2)hit(r[i], (c, p, h))
r = i
(i = 0..2) to_con_ready[i]hurry! get(to_con[i]), c = i
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 17 / 22
Алгоритм трансляцииВспомогательные автоматы
s1
(i = 0..2 -> ok(to_con[i])) &&(i = 1..9 -> ok(c[i]))
(i = 1..9)to_deliver(c[i])c_ready[i]
(i = 0..2)to_deliver(to_con[i])to_con_ready[i])
s1 c[0]hurry!c[0] = false
hurry?
s1 (i = 1..3, num = 1..3)!c[num]hurry!send(c[num], i)
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 18 / 22
Корректность алгоритма
Теорема (например, Кларк, Грамберг, Пелед. 2002)Если системы переходов M1, M2 эквивалентны по прореживанию иформула Φ логики LTL−X истинна для M1, то она также истинна дляM2.
ТеоремаПусть N — произвольная ПКС. Тогда системы переходов TSN иTSAlg(N) эквивалентны по прореживанию.
СледствиеАлгоритм Alg корректен.
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 19 / 22
Корректность алгоритма
Теорема (например, Кларк, Грамберг, Пелед. 2002)Если системы переходов M1, M2 эквивалентны по прореживанию иформула Φ логики LTL−X истинна для M1, то она также истинна дляM2.
ТеоремаПусть N — произвольная ПКС. Тогда системы переходов TSN иTSAlg(N) эквивалентны по прореживанию.
СледствиеАлгоритм Alg корректен.
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 19 / 22
Экспериментальное исследование1 Отсутствие блокировки сети:
A[] not deadlock2 Постоянное поступление пакетов из внешней среды:
A <> forall(num : int[0, 2]) (channel_h[stream.align[num]])3 Коммутатор может не принять ни одного пакета:
E [] com1.start4 Хотя бы один пакет будет обработан контроллером:
E <> !con.idle5 Хотя бы один пакет успешно перенаправится коммутатором:
E <> com1.hit
Свойство номер:1 2 3 4 5
2 комм., пустые таблицы 27ч. 1с. 1с. 1с. 1с.3 комм., кольцо - 1с. 1с. 7с. 1с.4 комм., звезда - 1с. 1с. 62с. 85с.
4 комм. - 1с. 1с. 60с. 79с.В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 20 / 22
Результаты
Предложена формальная модель ПКС как СРВ:I UML-диаграммыI система переписывания
Разработан (и реализован) метод верификации ПКС как СРВ:I алгоритм трансляции UML-диаграмм в сети временных автоматовI корректность алгоритма
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 21 / 22
Конец
В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 22 / 22