Symulator zawodnej sieci IP do badania aplikacji multimedialnych i
Transkrypt
Symulator zawodnej sieci IP do badania aplikacji multimedialnych i
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. – – ● Zarządzanie środowiskiem zapewnia serwer nadzorczy. – ● Agent będzie instalowany na komputerach, na których działają instancje/komponenty badanej aplikacji. Zadaniem serwera będzie modelowanie zawodnych łączy. 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 Serwer nadzorujący Platforma TEWI Switch Serwery symulacyjne Komputery z testowaną aplikacją LAN Ogólny schemat środowiska symulacyjnego Przepływ danych Testowana aplikacja (węzeł nadający) Jądro system operacyjnego Agent symulacyjny Testowana aplikacja (węzeł odbierający) 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] port UDP do komunikacji z nadzorcą [protokół specjalizowany] Sterownik przechwytujący pakiety IP aplikacji Dane połączeń aplikacyjnych i symulatorów Wątek wysyłający komunikaty Kolejka FIFO Wątek odbierający komunikaty Kolejka FIFO interfejs sieciowy LAN środowiska symulacyjnego Wątek przetwarzający komunikaty 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 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 port UDP do komunikacji z nadzorcą [protokół specjalizowany ] Wątek odbierający pakiety Kolejka FIFO Wątek wysyłający pakiety Czasowa priorytetowa kolejka FIFO Wątek przetwarzający pakiety Dane łączy wirtualnych Wątek wysyłający komunikaty Kolejka FIFO Wątek odbierający komunikaty Kolejka FIFO interfejs sieciowy LAN środowiska symulacyjnego Wątek przetwarzający komunikaty 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 Wątek wbudowanego serwera HTTP port TCP do komunikacji z przeglądarką internetową [protokół HTTP] Obiektowy model środowiska symulacyjnego port UDP do komunikacji z agentami i symulatorami [protokół specjalizowany] Wątek odbierający komunikaty Kolejka FIFO Dane przebiegu symulacji Wątek przetwarzający komunikaty Kolejka FIFO interfejs sieciowy LAN środowiska symulacyjnego Wątek wysyłający komunikaty 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.