MODELOWANIE I WERYFIKACJA PROTOKOŁU SCTP Z WYKORZYSTANIEM AUTOMATÓW CZASOWYCH ZE ZMIENNYMI

Podobne dokumenty
Logika Temporalna i Automaty Czasowe

Logika Temporalna i Automaty Czasowe

Logika Temporalna i Automaty Czasowe

Praktyczne metody weryfikacji

Weryfikacja protokołów bezpieczeństwa z wykorzystaniem automatów probabilistycznych

Logika Temporalna i Automaty Czasowe

Wprowadzenie Logiki temporalne Przykłady użycia Bibliografia. Logiki temporalne. Andrzej Oszer. Seminarium Protokoły Komunikacyjne

Autoreferat. Andrzej Zbrzezny Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie. Załącznik 2

Praktyczne metody weryfikacji

Weryfikacja modelowa interpretowanych sieci Petriego sterowania

Systemy zdarzeniowe - opis przedmiotu

Weryfikacja modelowa. Protokoły komunikacyjne 2006/2007. Paweł Kaczan

Prof. dr hab. inż. Jan Magott Wrocław, Katedra Informatyki Technicznej Wydział Elektroniki Politechniki Wrocławskiej

Modelowanie i Analiza Systemów Informatycznych

Podstawy Informatyki. Algorytmy i ich poprawność

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Logika Temporalna i Automaty Czasowe

Diagramy aktywności języka UML i sieci Petriego w systemach sterowania binarnego od transformacji do weryfikacji

Modelowanie procesów współbieżnych

Logika Temporalna i Automaty Czasowe

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

Curriculum Vitae. Agnieszka Zbrzezny.

Logika Temporalna i Automaty Czasowe

System weryfikacyjny VERICS: stan obecny i perspektywy rozwoju

Logika Temporalna i Automaty Czasowe

Teoria obliczeń i złożoność obliczeniowa

Parametry wydajnościowe systemów internetowych. Tomasz Rak, KIA

Rozszerzenia sieci Petriego

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Wykład 2. Poprawność algorytmów

WOJSKOWA AKADEMIA TECHNICZNA WYDZIAŁ CYBERNETYKI

Poprawność algorytmów

Adam Meissner SZTUCZNA INTELIGANCJA

UŻYCIE CZASOWYCH AUTOMATÓW PROBABILISTYCZNYCH DO MODELOWANIA PROTOKOŁÓW ZABEZPIECZAJĄCYCH

Rozszerzenia sieci Petriego

Weryfikowanie specyfikacji wymagań sterownika logicznego za pomocą diagramów aktywności UML, logiki temporalnej LTL i środowiska NuSMV

Kumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy

Testowanie hipotez statystycznych

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

zna metody matematyczne w zakresie niezbędnym do formalnego i ilościowego opisu, zrozumienia i modelowania problemów z różnych

SpecVer - metodyka tworzenia oprogramowania integrująca zadania specyfikacji, implementacji i weryfikacji modułów programów

Dopasowywanie modelu do danych

AUTOMATYZACJA PROCESÓW DYSKRETNYCH 2014

Laboratorium Badanie topologii i budowa małej sieci

Automaty czasowe. Sposoby weryfikacji UPPAAL. Narzędzie do weryfikacji automatów czasowych. Aleksander Zabłocki. 6 maja 2009

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

SCENARIUSZ LEKCJI. Dzielenie wielomianów z wykorzystaniem schematu Hornera

Język opisu sprzętu VHDL

PRZEWODNIK PO PRZEDMIOCIE

Błędy przy testowaniu hipotez statystycznych. Decyzja H 0 jest prawdziwa H 0 jest faszywa

Logika Stosowana. Wykład 2 - Logika modalna Część 2. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Mechanizmy rozgłaszania niezawodnego

ECDL Podstawy programowania Sylabus - wersja 1.0

Logika systemów wieloagentowych

Rachunek zdań i predykatów

Diagramy aktywności języka UML i sieci Petriego w systemach sterowania binarnego od transformacji do weryfikacji

SYNTEZA AUTOMATÓW SKOŃCZONYCH Z WYKORZYSTANIEM METOD KODOWANIA WIELOKROTNEGO

Podstawy Sztucznej Inteligencji (PSZT)

Programowanie deklaratywne i logika obliczeniowa

Dialogowe akty mowy w modelach sztucznej inteligencji

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Adam Meissner SZTUCZNA INTELIGANCJA

Techniki informacyjne dla wnioskowania oraz generowania, reprezentacji i zarządzania wiedzą

Scenariusz lekcji. podać przykłady zalet użycia takiej instrukcji; opisać algorytm obliczania średniej n liczb;

UNIKANIE IMPASÓW W SYSTEMACH PROCESÓW WSPÓŁBIEŻNYCH

Semantyka rachunku predykatów

Projekt Sieci neuronowe

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

TEORETYCZNE PODSTAWY INFORMATYKI

Informatyka wspomaga przedmioty ścisłe w szkole

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Układy stochastyczne

Projekt 4: Programowanie w logice

Logika Stosowana. Wykład 2 - Logika modalna Część 3. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2017/2018

Adam Meissner.

20 września 2007 Jozef Winkowski (prof. dr hab.) Instytut Podstaw Informatyki Polskiej Akademii Nauk

INFORMATYKA POZIOM ROZSZERZONY

rozpoznawania odcisków palców

Wprowadzenie do programowania współbieżnego

Automatyzacja procesu kontroli danych z lotniczego skanowania laserowego

Logika stosowana. Ćwiczenia Programowanie w logice i PROLOG. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

Ethernet. Ethernet. Network Fundamentals Chapter 9. Podstawy sieci Rozdział 9

MODELOWANIE POŁĄCZEŃ TYPU SWORZEŃ OTWÓR ZA POMOCĄ MES BEZ UŻYCIA ANALIZY KONTAKTOWEJ

Bisymulacja, automaty czasowe

O-MaSE Organization-based Multiagent System Engineering. MiASI2, TWO2,

Maciej Oleksy Zenon Matuszyk

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Piotr Kulicki. Informatyczny model realizacji celów i jego zastosowanie do argumentacji

Wykład 4 Wybór najlepszej procedury. Estymacja parametrów re

PRZEWODNIK PO PRZEDMIOCIE

Problem testowania/wzorcowania instrumentów geodezyjnych

Monte Carlo, bootstrap, jacknife

1 Moduł Konfigurowanie Modułu

Zadanie 1. Potęgi (14 pkt)

Algorytm do rozpoznawania człowieka na podstawie dynamiki użycia klawiatury. Paweł Kobojek, prof. dr hab. inż. Khalid Saeed

Weryfikacja hipotez statystycznych. KG (CC) Statystyka 26 V / 1

Transkrypt:

Zeszyty Naukowe WSInf Vol 7, Nr 1, 2008 Artur Męski 1, Agata Półrola 2 1 Wyższa Szkoła Informatyki w Łodzi 2 Uniwersytet Łódzki, Wydział Matematyki i Fizyki MODELOWANIE I WERYFIKACJA PROTOKOŁU SCTP Z WYKORZYSTANIEM AUTOMATÓW CZASOWYCH ZE ZMIENNYMI Streszczenie W pracy konstruujemy model protokołu SCTP (Stream Transmission Control Protocol) protokołu transportowego zawierającego szereg mechanizmów mających zapewnić niezawodne dostarczanie. Do modelowania protokołu używamy automatów czasowych ze zmiennymi całkowitymi. Otrzymany model wykorzystywany jest następnie do automatycznej weryfikacji protokołu, podczas której testujemy własności wyrażone za pomocą formuł logiki temporalnej CTL (ang. Computation Tree Logic). 1 Wprowadzenie Poprawność systemu rozproszonego, programu współbieżnego czy protokołu względem podanej specyfikacji jest najważniejszą kwestią, która musi być rozstrzygnięta zanim trafi on do masowej eksploatacji. Jest tak szczególnie wtedy, gdy skutki ewentualnych błędów mogą okazać się tragiczne lub przynieść znaczące straty finansowe. Przetestowanie programu dla dowolnej liczby danych nie zapewnia, że zachowa się on prawidłowo także dla innego ich zbioru. Metody aksjomatyczne, użyte w celu dowiedzenia poprawności, wymagają olbrzymiego wkładu pracy człowieka, który również może popełnić błąd. Pełne gwarancje może dać jedynie zastosowanie metody automatycznej, tj. innego programu, który sprawdzi, czy testowany system spełnia podaną specyfikację. Najważniejszą klasą takich metod jest weryfikacja modelowa (ang. model checking). Wykonanie weryfikacji wymaga opisania testowanego systemu za pomocą pewnego formalizmu (np. sieci Petriego, komunikujących się automatów etc.). Otrzymany w ten sposób model systemu, wraz z jego semantyką, jest generatorem modelu zachowań systemu, zwanego też modelem konkretnym - systemu tranzycyjnego obrazującego wszystkie możliwe przebiegi (zbioru wszystkich osiągalnych stanów systemu połączonych przez relację przejścia). 49

Modelowanie i weryfikacja... Celem weryfikacji modelowej jest sprawdzenie, czy rozważany system zachowuje się zawsze w pożądany sposób (tj. zgodnie z oczekiwaniami jego twórcy). W tym celu własność, którą powinien spełniać system, bądź też własność niepożądana, wyrażana jest za pomocą formuły logicznej. Następnie wykonywane jest automatyczne sprawdzenie, czy formuła jest prawdziwa w modelu zachowań systemu. Wykrycie sytuacji, w której dochodzi do zachowań niepożądanych może w praktyce oznaczać jedną z dwóch rzeczy: faktyczny błąd w modelowanym systemie lub też błąd modelowania polegający na zaprojektowaniu automatów czy sieci Petriego nie uwzględniających pewnych istotnych aspektów działania systemu oryginalnego. Każdy taki przypadek musi zatem zostać dokładnie przeanalizowany. Jeśli przyczyną błędnych zachowań jest błąd modelowania - należy oczywiście poprawić model, a następnie powtórzyć testy dla rozpatrywanej własności oraz dla własności badanych wcześniej. Jeśli jednak nie możemy znaleźć błędu w modelu, można przypuszczać, że niepoprawny jest sam weryfikowany system. Kolejnym krokiem powinno być zatem wygenerowanie tzw. świadka dla testowanej formuły, tj. zapisu przebiegu dowodzącego niepożądanych zachowań, i dokładne przeanalizowanie go dla systemu oryginalnego. Testowanie systemów posiadających zależności czasowe wymaga modelowania ich przy użyciu formalizmu uwzględniającego takie zależności. Jednym z możliwych formalizmów są automaty czasowe ze zmiennymi, stanowiące rozszerzenie automatów skończonych o zegary oraz zmienne całkowite. Złożone systemy modeluje się zazwyczaj za pomocą sieci automatów. Synchronizację działania jej elementów zapewniają jednakowe etykiety wybranych przejść. Własności systemów tego typu wyrażane są zazwyczaj w języku pewnej logiki czasu rozgałęzionego (jak CTL_, CTL czy jej czasowe rozszerzenie TCTL). W dalszej części pracy w rozdziale 2 wprowadzamy automaty czasowe ze zmiennymi całkowitymi i logikę czasu rozgałęzionego CTL_ oraz pokrótce przedstawiamy protokół SCTP. Rozdział 3 opisuje modelowanie tego protokołu, a rozdział 4 próbę automatycznej weryfikacji jego własności. Rozdział 5 zawiera wnioski i uwagi końcowe. 2 Wiadomości wstępne Niech IR (IR+) oznacza zbiór liczb rzeczywistych (liczb rzeczywistych nieujemnych), ZZ - zbiór liczb całkowitych, a IN - zbiór liczb naturalnych (zawierający zero). 50

A. Męski, A. Półrola 4.1 System tranzycyjny 4.2 Zegary 51

Modelowanie i weryfikacja... 4.3 Zmienne 4.4 Automat czasowy ze zmiennymi całkowitymi 52

A. Męski, A. Półrola 53

Modelowanie i weryfikacja... 4.5 Sieci ACZC 54

A. Męski, A. Półrola 55

Modelowanie i weryfikacja... Rys. 1. Sieć automatów 4.6 Rozszerzenia i modyfikacje ACZC 56

A. Męski, A. Półrola Rys. 2. Automat produktowy dla sieci 4.7 Logika CTL * 57

58 Modelowanie i weryfikacja...

A. Męski, A. Półrola Rys. 3. Przykłady formuł CTL * prawdziwych w stanie s modelu 59

Modelowanie i weryfikacja... 4.8 Protokół SCTP 3 Modelowanie 60

A. Męski, A. Półrola 4 Weryfikacja 61

Modelowanie i weryfikacja... 4.1 Podstawowe własności protokołu Rys. 4. Automaty Server oraz Client 62

A. Męski, A. Półrola Rys. 5. Automaty ULPserver oraz ULPclient 4.2 Inicjalizacja i zamykanie asocjacji 63

Modelowanie i weryfikacja... Rys. 6. Automat ShutdownC Rys. 7. Automat DataT ransc 64

A. Męski, A. Półrola Rys. 8. Automaty HeartbeatrC oraz HeartbeatsC Rys. 9. Automat AssocCloserC 4.3 Przykłady negatywne 65

Modelowanie i weryfikacja... Rys. 10. Automaty RtoRecalc oraz wndlockerc Rys. 11. Automat NetInitC 5 Podsumowanie W pracy przedstawione zostało modelowanie protokołu komunikacyjnego SCTP za pomocą automatów czasowych ze zmiennymi oraz weryfikacja pewnych własności protokołu w tym modelu. Ze względu na występujące zależności czasowe i wynikający z nich znaczny rozmiar przestrzeni stanów pełnego modelu do testowania niektórych własności wykorzystywaliśmy też model ograniczony, ukrywający szczegóły protokołu nie mające bezpośredniego wpływu na testowaną własność. 66

A. Męski, A. Półrola Wykonanie weryfikacji pozwoliło nam stwierdzić, że w modelu spełnione są pewne podstawowe własności protokołu. Przy założeniu, że zbudowany model jest poprawny, można stwierdzić, że protokół również spełnia te własności. Z drugiej jednak strony testowanie niektórych własności pozwoliło wychwycić niektóre błędy modelowania (np. bezczynność dopuszczaną przez model, a nie występującą w protokole). W przypadku ostatniej z testowanych własności nie udało się nam skorygować skonstruowanego modelu. Na obecnym etapie prac nie możemy jednak wykluczyć żadnej z przyczyn zauważonego problemu (błędu modelowania lub niepoprawnego zachowania protokołu). Literatura [1] Behrmann G., David A., Larsen K. G.: A Tutorial on Uppaal, 2004. [2] Clarke E. M., Emerson E. A., Sistla A. P.: Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications. ACM Transactions on Programming Languages and Systems, Vol. 8, No. 2, April 1986, pages 244-263. [3] Penczek W., Półrola A.: Advances in Verification of Time Petri Nets and Timed Automata: A Temporal Logic Approach. Springer- Verlag, 2006. [4] Stewart R., Xie Q., Morneault K., Sharp C., Schwarzbauer H.,. Taylor T, Rytina I., Kalla M., Zhang L., Paxson V.: Stream Control Transmission Protocol (RFC 2960), 2000. [5] Zbrzezny A., Półrola A.: SAT-Based Reachability Checking for Timed Automata with Discrete Data. Fundamenta Informaticae 79(3-4), str. 579-593, IOS Press, 2007 MODELLING AND VERIFICATION OF THE SCTP PROTOCOL USING TIMED AUTOMATA WITH DISCRETE DATA Summary - In the paper we construct a model for SCTP (Stream Control Transmission Protocol) a transport layer protocol which provides mechanisms of reliable delivery. The protocol is modelled by a set of timed automata augmented with integer variables. The resulting model is then used to test the protocol w.r.t. certain properties expressed by the formulas of the temporal logic CTL (Computation Tree Logic). 67