Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer
Plan prezentacji 1. Cel projektu 2. Cechy systemu 3. Budowa systemu: Agent Serwer Nadzorca 4. Podsumowanie
Cel projektu Stworzenie programowego symulatora zawodnych sieci IP, w których występują opóźnienia, straty pakietów, błędy bitowe i inne niepożądane zjawiska. W rzeczywistych sieciach wymienione zdarzenia są ulotne i trudne do przewidzenia lub występują w określonych warunkach. Dysponując symulatorem, można zapewnić pożądane zachowanie łącza w dowolnym momencie (uzyskuje się deterministyczną podstawę do testów).
Cechy systemu Umożliwia badanie systemów z kilkunastoma węzłami. Umożliwia badanie systemów w architekturze peer-to-peer (P2P) i overlay. Umożliwia przeprowadzenie eksperymentów w istniejącej sieci lokalnej bez angażowania administratora, ingerencji w połączenia i konfigurację urządzeń sieciowych, Ułatwia identyfikowanie pakietów związanych z sesjami multimedialnymi opierającymi się na protokołach RTP, RTCP, RTSP, SIP itp.
Cechy systemu, cd. Udostępnia praktyczne funkcjonalności, które uzupełniają symulację sieci IP: rejestrowanie ruchu pakietów i symulowanych zdarzeń, analizę statystyczną zbieranych danych i wizualizację wyników w postaci wykresów. Jest łatwy w zarządzaniu dzięki automatyzacji zadań, centralizacji zarządzania, działaniu i w Windows, i w Linux. Jest wyposażony w oprogramowanie towarzyszące i materiały instruktażowe, które ułatwiają testy aplikacji i szkolenia z zakresu QoS: generator ruchu, rejestrator pakietów przychodzących, scenariusze eksperymentów itp. Może stanowić podstawę badań nad symulatorem sprzętowym.
Budowa systemu Symulator obejmuje dwa typy programów: agent i serwer. Agent będzie instalowany na komputerach, na których działają instancje/komponenty badanej aplikacji. Zadaniem serwera będzie modelowanie zawodnych łączy. Zarządzanie środowiskiem zapewnia serwer nadzorczy. Konfiguracja poszczególnych agentów i serwerów oraz środowiska jako całości będzie odbywała się za pośrednictwem serwera nadzorującego. Środowisko symulacyjne będzie działać w obrębie jednej wydajnej sieci lokalnej LAN, w której narzut związany z przekierowywaniem pakietów nie będzie wpływał znacząco na dokładność symulacji.
Środowisko symulacyjne Terminal kontroli symulacji Switch Serwer nadzorujący Platforma TEWI Serwery symulacyjne Komputery z testowaną aplikacją LAN Ogólny schemat środowiska symulacyjnego
Przepływ danych Testowana aplikacja (węzeł nadający) Agent symulacyjny Testowana aplikacja (węzeł odbierający) Jądro system operacyjnego Stos TCP/IP Stos TCP/IP Sterownik symulacyjny Karta sieciowa Karta sieciowa Serwer symulacyjny Istota symulacji opierającej się na przekierowaniu ruchu aplikacji do serwera symulacyjnego
Elementy systemu symulacyjnego System symulacyjny składa się z trzech współdziałających elementów: Agenta symulacyjnego. Sewera symulacyjnego. Nadzorcy.
Agent symulacujny Agent symulacyjny pracuje na wszystkich komputerach, na których będą działać aplikacje składające się na badany system informatyczny. Sterownik (będący podstawę agenta) integruje się z systemowym stosem protokołów sieciowych, tak że jest on w stanie przechwytywać pakiety IP, które wysyła aplikacja. Przechwycone pakiety IP spełniające zadane kryteria (adres IP, numer portu, protokół) są przekazywane do serwera symulacyjnego.
Architektura agenta symulacyjnego Systemowy stos protokołów sieciowych port UDP do wysyłania pakietów pośredniczących do symulatora [protokół specjalizowany] Sterownik przechwytujący pakiety IP aplikacji Dane połączeń aplikacyjnych i symulatorów port UDP do komunikacji z nadzorcą [protokół specjalizowany] wysyłający Kolejka FIFO interfejs sieciowy LAN środowiska symulacyjnego odbierający Kolejka FIFO przetwarzający
Serwer symulacyjny Serwer symulacyjny pośredniczy w ruchu sieciowym oraz wprowadza do niego zamierzone błędy. Na podstawie miar statystycznych i charakterystyki podejmowana jest decyzja o odrzuceniu pakietu (strata pakietu w wirtualnym łączu) lub określany jest czas jego wyjścia z symulatora (opóźnienie pakietu w wirtualnym łączu). Agent z symulatorem tworzą jednokierunkowe wirtualne łącze, przez które przechodzą wybrane pakiety wysyłane przez aplikacje na komputerach z zainstalowanym agentem.
Architektura serwera symulacyjnego Systemowy stos protokołów sieciowych odbierający pakiety Kolejka FIFO przetwarzający pakiety port UDP do odbierania pakietów pośredniczących z agentów [protokół specjalizowany] surowe gniazdo IP do wysyłania pakietów w imieniu komputera z agentem wysyłający pakiety Czasowa priorytetowa kolejka FIFO Dane łączy wirtualnych port UDP do komunikacji z nadzorcą [protokół specjalizowany] wysyłający Kolejka FIFO interfejs sieciowy LAN środowiska symulacyjnego odbierający Kolejka FIFO przetwarzający
Nadzorca Nadzorca jest węzłem nadrzędnym, który centralizuje zarządzanie środowiskiem symulacyjnym, czyli agentami i symulatorami. Agenci i serwery symulacyjne cyklicznie przesyłają do nadzorcy informacje o swoim stanie. Nadzorca przypisuje symulatory do agentów, by zrównoważyć ich obciążenie, a także gromadzi dane na temat przebiegu symulacji. Nadzorca jest wyposażony we wbudowany serwer HTTP, który umożliwia zarządzanie środowiskiem symulacyjnym za pomocą przeglądarki WWW obsługującej HTML5 i CSS3.
Architektura serwera nadzorującego Systemowy stos protokołów sieciowych wbudowanego serwera HTTP port TCP do komunikacji z przeglądarką internetową [protokół HTTP] Obiektowy model środowiska symulacyjnego Dane przebiegu symulacji port UDP do komunikacji z agentami i symulatorami [protokół specjalizowany] odbierający Kolejka FIFO przetwarzający interfejs sieciowy Kolejka FIFO LAN środowiska symulacyjnego wysyłający
Aplikacja symulacyjna
Podsumowanie Symulator będzie służył do prowadzenia badań lub umożliwi podjęcie badań w nowych kierunkach: architektury systemów multimedialnych, algorytmy kodowania obrazu i dźwięku ukierunkowane na transmisję sieciami pakietowymi, zoptymalizowane implementacje protokołów, modelowanie zawodnych łączy, sprzętowa symulacja sieci z użyciem układów programowalnych FPGA. Symulator może być wykorzystywany w dydaktyce do uatrakcyjnienia zajęć z przedmiotów takich jak Sieci komputerowe, Inżynieria systemów multimedialnych i Komunikacja multimedialna. Symulator może stanowić podstawę interesujących prac dyplomowych. Symulator potencjalnie może przyczynić się do powstania innowacyjnych aplikacji i urządzeń, które będą stanowić, przynajmniej w części, własność intelektualną uczelni. Wyniki projektu będą stanowić postawę publikacji naukowych i technicznych.