Emulator bezprzewodowych mobilnych sieci ad-hoc oparty na sterowniku TUN/TAP



Podobne dokumenty
Wirtualizacja zasobów IPv6 w projekcie IIP

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

5. Administracja kontami uŝytkowników

router wielu sieci pakietów

ActiveXperts SMS Messaging Server

Konta uŝytkowników. Konta uŝytkowników dzielą się na trzy grupy: lokalne konta uŝytkowników, domenowe konta uŝytkowników, konta wbudowane

Projekt i implementacja filtra dzeń Pocket PC

WLAN bezpieczne sieci radiowe 01

Rozproszony system zbierania danych.

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Konferencja I3 internet infrastruktury - innowacje. SMOA Devices. Infrastruktura do monitorowania i kontroli zuŝycia energii

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

1. Instalacja modułu w systemie Windows.

Laboratorium przez Internet w modelu studiów inżynierskich

PBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN

Funkcje warstwy sieciowej. Podstawy wyznaczania tras. Dostarczenie pakietu od nadawcy od odbiorcy (RIP, IGRP, OSPF, EGP, BGP)

Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Struktury systemów operacyjnych

Podstawowe pojęcia dotyczące sieci komputerowych

ZiMSK. VLAN, trunk, intervlan-routing 1

Programowanie współbieżne i rozproszone

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

SZCZEGÓŁOWE OKREŚLENIE System zarządzania urządzeniami sieciowymi

Protokoły sieciowe - TCP/IP

Koniec problemów z zarządzaniem stacjami roboczymi BigFix. Włodzimierz Dymaczewski, IBM

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

Konfigurowanie sieci VLAN

PROJEKT INTERFEJSU UśYTKOWNIKA PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Integracja systemów sterowania i sterowanie rozproszone 5 R

Laboratorium Komputerowe Systemy Pomiarowe

Model OSI. mgr inż. Krzysztof Szałajko

Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Systemy ekspertowe. System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro

REFERAT PRACY DYPLOMOWEJ

Virtual Grid Resource Management System with Virtualization Technology

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

Dokumentacja aplikacji Szachy online

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Przesyłania danych przez protokół TCP/IP

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

VComNet Podręcznik użytkownika. VComNet. Podręcznik użytkownika Wstęp

Konspekt pracy inżynierskiej

Programowanie obiektowe zastosowanie języka Java SE

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Przypadki testowe. Spis treści. Plan testów. From Sęp. Wstęp. 2 Plan testów

Księgarnia PWN: Mark McGregor Akademia sieci cisco. Semestr szósty

1. Instalacja systemu Integra 7

Urządzenia sieciowe. Tutorial 1 Topologie sieci. Definicja sieci i rodzaje topologii

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

RUTERY. Dr inŝ. Małgorzata Langer

Programowanie aplikacji na urządzenia mobilne

Urządzenia sieciowe. Część 1: Repeater, Hub, Switch. mgr inż. Krzysztof Szałajko

Sieci komputerowe. Zadania warstwy łącza danych. Ramka Ethernet. Adresacja Ethernet

PR P E R Z E E Z N E T N A T C A JA C JA KO K RP R O P RA R C A Y C JN Y A JN ACTINA DATA MANAGER

ASEM UBIQUITY PRZEGLĄD FUNKCJONALNOŚCI

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

TM PROGRAM TERMINALA RS232 DLA MULTIPLEKSERA 8XRS232 / ETHERNET 10BASE-T

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Paczki przelewów w ING BankOnLine

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

5. Model komunikujących się procesów, komunikaty

Instrukcja skrócona (dla informatyka)

Ćwiczenie 5a Sieć komputerowa z wykorzystaniem rutera.

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

11. Rozwiązywanie problemów

BeamYourScreen Bezpieczeństwo

Sposoby analizy i interpretacji statystyk strony WWW.

APLIKACJA COMMAND POSITIONING Z WYKORZYSTANIEM KOMUNIKACJI SIECIOWEJ Z PROTOKOŁEM USS W PRZETWORNICACH MDS/FDS 5000

LABORATORIUM TELEINFORMATYKI W GÓRNICTWIE

Wirtualizacja. Metody, zastosowania, przykłady

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

Programowanie Sieciowe 1

9. Internet. Konfiguracja połączenia z Internetem

CRM VISION Instalacja i uŝytkowanie rozszerzenia do programu Mozilla Thunderbird

Engenius/Senao EUB-362EXT IEEE802.11b/g USB Instrukcja Obsługi

Ćwiczenie 5b Sieć komputerowa z wykorzystaniem rutera.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Komunikator internetowy w C#

PODSYSTEM RADIODOSTĘPU MOBILNEGO ZINTEGROWANEGO WĘZŁA ŁĄCZNOŚCI TURKUS

4. Podstawowa konfiguracja

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Opis systemu CitectFacilities. (nadrzędny system sterowania i kontroli procesu technologicznego)

WOJEWÓDZTWO PODKARPACKIE

Laboratorium Projektowanie i implementowanie schematu adresowania z zastosowaniem zmiennych masek podsieci

Program do obsługi ubezpieczeń minifort

Zaawansowane metody pomiarów i diagnostyki w rozległych sieciach teleinformatycznych Pomiary w sieciach pakietowych. Tomasz Szewczyk PCSS

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Zadania PCSS w Polskiej Platformie Bezpieczeństwa Wewnętrznego

Dokumentacja projektu QUAIKE Architektura oprogramowania

Opis. systemu. zliczania. obiektów. ruchomych. wersja. dla salonów. i sieci salonów.

Typowa procedura diagnostyczna sieci komputerowej

Podstawowe protokoły transportowe stosowane w sieciach IP cz.2

Symfonia Mała Księgowość 2013 Specyfikacja zmian

Beskid Cafe. Hufcowa Kawiarenka Internetowa

Transkrypt:

Marcin Frąckowiak Radosław Olgierd Schoeneich Jarosław Domaszewicz Michał Koziuk Instytut Telekomunikacji Politechnika Warszawska Emulator bezprzewodowych mobilnych sieci ad-hoc oparty na sterowniku TUN/TAP W artykule przedstawiono emulator dla bezprzewodowych mobilnych sieci ad-hoc umoŝliwiający łatwe i szybkie przeprowadzanie testów projektowanych dla tych sieci. W rozwiązaniu wykorzystano sterownik TUN/TAP, umoŝliwiając stworzenie wirtualnej infrastruktury j w środowisku systemu operacyjnego Linux. Artykuł opisuje architekturę i funkcjonalność emulatora. 1. Wprowadzenie Testowanie dla bezprzewodowych mobilnych sieci ad-hoc (ang. Mobile Ad-hoc Network, MANET) stanowi waŝną część procesu projektowania oprogramowania. Specyficzne cechy sieci jak częste zmiany topologii spowodowane mobilnością węzłów, czy brak stałej infrastruktury muszą być uwzględniane od najwcześniejszych stadiów projektowania. Dostępność łatwych w uŝyciu i skutecznych narzędzi do przeprowadzania testów w trakcie procesu tworzenia, jest krytycznym czynnikiem, który decyduje o poprawności działania protokołu w jego ostatecznym kształcie. Ma to równieŝ wpływ na czas i koszt potrzebny do osiągnięcia satysfakcjonującego rezultatu. Częścią procesu tworzenia jest bieŝące analizowanie i porównywanie dopuszczalnych alternatyw, sprawdzanie skutków przyjętych rozwiązań, sprawdzanie czy spełniane są zakładane oczekiwania w sensie ilościowym i jakościowym, czy porównywanie rezultatów z innymi, pokrewnymi rozwiązaniami. MoŜna wyróŝnić trzy sposoby przeprowadzania testów, które spełniają te zadania [1]: faktyczna implementacja i testy w rzeczywistym środowisku (testy polowe), wykorzystanie symulatora, wykorzystanie emulatora. Zasadniczą przewagą wykorzystania emulatora nad pozostałymi dwoma rozwiązaniami jest moŝliwość testowania kodu w wersji, która moŝe być od razu uruchomiona w rzeczywistym systemie, przy jednoczesnym zachowaniu kontroli nad parametrami środowiska testowego (powtarzalność eksperymentów) i niskich kosztach realizacji. W artykule tym opisano emulator stworzony na potrzeby przeprowadzenia testów protokołu dla sieci MANET zaprojektowanego i zaimplementowanego przez Zespół Aplikacji Mobilnych i Wbudowanych IT PW [2] w ramach projektu EU 6FP MIDAS [3,4] (ang. Middleware Platform for Developing Advanced Mobile Services). W dwóch kolejnych rozdziałach artykułu opisano motywację dla stworzenia nowego emulatora. W rozdziale 4 został opisany sposób dostarczania funkcjonalności sieci MANET testowanym protokołom. 2. Wymagania dla Emulatora Wymagania postawione projektowanemu emulatorowi moŝna ująć w punktach: a) Minimalny "wkład początkowy" uŝytkownika emulator łatwy do uruchomienia i korzystania, posiadający interfejs graficzny.

b) Niski koszt korzystania aplikacja działająca na pojedynczym komputerze osobistym klasy PC z systemem operacyjnym Linux. c) Skalowalność aplikacja umoŝliwiająca emulację sieci zarówno małych jak i o duŝej liczbie węzłów. d) Przenośność kodu kod testowanych moŝliwy do uruchomienia w rzeczywistych urządzeniach z minimalnymi zmianami. Emulator ma dostarczać standardowych interfejsów systemowych, do których procesy mogą wysyłać i odbierać dane za pośrednictwem standardowego API gniazd surowych (ang. raw socket) systemu Linux. e) MoŜliwość porównywania rezultatów emulacji z symulacjami przeprowadzanymi z uŝyciem narzędzia Network Simulator (ns-2) [5] wykorzystanie standardowego formatu pliku scenariusza symulatora ns-2 do opisu mobilności węzłów emulowanej sieci. f) Emulacja na poziomie warstwy łącza danych modelu OSI aplikacja ma wykorzystywać sterownik TUN/TAP [6] do dostarczania funkcjonalności oraz odzwierciedlania charakterystyki warstwy łącza danych mobilnej sieci ad-hoc. Emulacja na poziomie warstwy łącza danych ma umoŝliwić testowanie warstwy j ( ). Działanie Emulatora oparte jest na wykorzystaniu sterownika TUN/TAP do stworzenia na pojedynczym komputerze zestawu wirtualnych urządzeń sieciowych. Reprezentują one urządzenia poszczególnych węzłów sieci rzeczywistej. kaŝdego z węzłów uruchamiane są jednocześnie w przestrzeni uŝytkownika systemu. KaŜdemu z nich dedykowany jest konkretny, pojedynczy interfejs wirtualnego urządzenia. kaŝdego wysyłają i odbierają dane z interfejsu za pośrednictwem standardowego API gniazd sieciowych. Odbywa się to w taki sam sposób, w jaki miałoby to miejsce w przypadku ich działania na osobnej platformie sprzętowej. Emulator, na podstawie informacji ze scenariusza mobilności węzłów, przesyła dane pomiędzy wirtualnymi urządzeniami, co odzwierciedla istnienie (lub brak) bezprzewodowych połączeń w sieci rzeczywistej. Zarys koncepcji działania aplikacji przedstawiony został na rys. 1. a) b) Wirtualne urządzenia Emulator Wirtualne urządzenia Rys. 1. Zarys działania Emulatora: a) sieć rzeczywista, b) sieć emulowana.

3. Emulator na tle istniejących rozwiązań W związku z testowaniem powstałych implementacji, stworzonych zostało kilka emulatorów sieci bezprzewodowych. śadna z dostępnych aplikacji nie spełniała jednak jednocześnie wszystkich z przedstawionych w poprzednim punkcie wymagań. Zadecydowało to o konieczności stworzenia naszego narzędzia. Emulatory MNE [7] i EMWIN [8] wykorzystują statyczną infrastrukturę sieciową do emulowania sieci MANET. Zakładają istnienie połączonego w lokalną sieć zestawu komputerów, w których kaŝde z urządzeń reprezentuje pojedynczy węzeł sieci emulowanej. Urządzenia posiadają po dwa interfejsy, gdzie jeden z nich wykorzystywany jest jako kanał kontrolny emulacji (do przesyłania informacji o zmianach topologii), a drugi do przesyłania danych. Przesyłane w kanale kontrolnym informacje o zmianach połączeń pomiędzy mi są wykorzystywane do dynamicznego wprowadzania zmian w tablicach IP. Pomimo, iŝ EMWIN pozwala na wykorzystanie kilku urządzeń sieciowych w kaŝdym z komputerów (w MNE kaŝdy z węzłów musi być oddzielną maszyną), to i tak prezentowane podejście wymaga wykorzystania znaczącej ilości sprzętu, co czyni je niepraktycznym i drogim. Fizyczna architektura systemu MobiNet [9] składa się z węzłów szkieletowych, wykorzystywanych do emulowania charakterystyki sieci bezprzewodowej oraz węzłów brzegowych. W MobiNet moŝliwa jest emulacja duŝej liczby bezprzewodowych urządzeń dzięki tworzeniu wirtualnych węzłów brzegowych z róŝnymi adresami IP w kaŝdym z fizycznych węzłów brzegowych. W tym przypadku ilość koniecznego do uŝycia sprzętu jest istotnie mniejsza w porównaniu do dwóch poprzednich emulatorów. System ten jest jednak skomplikowany w konfiguracji i korzystaniu. Emulator NEMAN [1] jest aplikacją, która spośród dostępnych, gotowych narzędzi, w największym stopniu spełnia opisane w poprzednim rozdziale wymagania. NEMAN został stworzony do emulowania duŝych sieci bezprzewodowych, z wykorzystaniem pojedynczego komputera osobistego. Zastosowany w aplikacji sterownik TUN/TAP umoŝliwia tworzenie i zarządzanie wirtualnymi urządzeniami sieciowymi. Przyłączane są do nich procesy testowanych, które w rzeczywistości dedykowane są do działania na osobnych platformach sprzętowych ch sieci MANET. UŜytkownik ma równieŝ do dyspozycji interfejs graficzny. Rozwiązanie, które reprezentuje NEMAN, jest tanie, skalowalne, proste w uŝyciu i gwarantuje przenośność kodu testowanych programów. NEMAN nie mógł jednak zostać uŝyty przez Zespół Aplikacji Mobilnych i Wbudowanych do testowania tworzonego protokołu, poniewaŝ program ten zakłada wykorzystanie protokołu IP jako protokołu. Ten emulator nie uwzględnia moŝliwości bezpośredniego dostępu do warstwy łącza danych emulowanej sieci z uŝyciem API gniazd surowych. Testowane programy muszą korzystać z dostarczanej przez emulator funkcjonalności na poziomie warstwy j z protokołem IP. NEMAN nie moŝe zostać uŝyty do testowania. Zastosowana w nim koncepcja uŝycia sterownika TUN/TAP do tworzenia wirtualnej infrastruktury j, została jednak ponownie wykorzystana przy projektowaniu nowego emulatora. 4. Architektura Emulatora W działaniu Emulatora wykorzystano następujące fakty: a) testowanych mają bezpośredni dostęp do interfejsów urządzeń sieciowych swoich węzłów (warstwy łącza danych sieci) oraz mogą wysyłać i odbierać z nich informacje za pośrednictwem API gniazd surowych systemu operacyjnego.

b) Wiedza procesów na temat sieci, z której korzystają, ograniczona jest do informacji moŝliwych do uzyskania na poziomie dostępu do warstwy łącza danych (interfejsów urządzeń sieciowych) i nie jest im znany rzeczywisty sposób transmisji informacji. c) Sterownik TUN/TAP umoŝliwia stworzenie wirtualnych urządzeń sieciowych na poziomie warstwy łącza danych i aplikacja działająca w przestrzeni uŝytkownika systemu operacyjnego moŝe przesyłać pomiędzy tymi urządzeniami dane w dowolny sposób kształtując charakterystykę tej komunikacji. Rys. 2 prezentuje główną ideę działania Emulatora. Aplikacja tworzy wirtualne urządzenia TAP, które zastępują fizyczne urządzenia Ethernet, z których korzystałyby węzły. KaŜdy węzeł wirtualnej sieci składa się z procesów uruchomionych w przestrzeni uŝytkownika systemu oraz dedykowanego dla niego wirtualnego urządzenia go, który zastępuje całą infrastrukturę fizyczną. Gniazda wirtualnych węzłów Warstwa sieciowa i wyŝsze Warstwa łącza danych Warstwa fizyczna Interfejsy wirtualnych urządzeń TAP Rys. 2. Idea działania Emulatora. Proces Emulatora Tak jak w przypadku rzeczywistej sieci MANET, kaŝdy węzeł identyfikowany jest na podstawie 48-bitowego adresu MAC w tym przypadku jest to jednak adres MAC urządzenia TAP, a nie fizycznego urządzenia go Ethernet. PoniewaŜ Emulator jest twórcą wszystkich urządzeń TAP, dane wysyłane na interfejsy przez procesy kaŝdego z węzłów mogą być przez niego odebrane, a następnie moŝe on podjąć decyzję, do których innych interfejsów zostaną dostarczone. Decyzja o tym gdzie dane powinny być przekazane podejmowana jest na podstawie posiadanych przez emulator informacji o bieŝącej topologii emulowanej sieci, które wczytywane są z pliku scenariusza mobilności węzłów. Dane wysłane przez kaŝdy wirtualny węzeł dostarczane są do wszystkich pozostałych, które w prawdziwej sieci MANET byłyby w jego zasięgu. testowanych w Emulatorze wykorzystują to samo API gniazd sieciowych, jakie byłoby uŝywane w przypadku działania na osobnych platformach sprzętowych. Wszystkie funkcje tworzenia gniazd oraz wysyłania i odbierania danych (socket(), sendto(), recvfrom() [10]) są takie same. Konieczne jest jednak dodatkowe przywiązanie (funkcja bind()) wykorzystywanych przez procesy gniazd, aby zapewnić, Ŝe dany wirtualny węzeł będzie się komunikował z resztą sieci tylko za pośrednictwem dedykowanego dla niego interfejsu. nie są świadome fizycznego przemieszczania się węzłów. O tym, Ŝe węzeł zmienia połoŝenie, proces dowiaduje się na podstawie tego, z którymi innymi mi moŝe nawiązać bezpośrednie połączenia oraz Ŝe w róŝnych momentach moŝe nawiązać te połączenia z róŝnymi mi. Mobilność węzłów jest równoznaczna ze zmianami moŝliwości nawiązywania połączeń między nimi. Aplikacja przez cały czas trwania emulacji utrzymuje w swojej pamięci tablicę, w której zapisane są statusy bezpośrednich połączeń pomiędzy wszystkimi mi dostępne, niedostępne. Na podstawie informacji zawartych w tej tablicy, Emulator, gdy odbiera z któregoś z wirtualnych urządzeń ramkę, decyduje, do których innych urządzeń powinna być ona

przesłana. Jednocześnie jeden z wątków programu wprowadza zmiany w statusach tych połączeń na podstawie scenariusza emulacji, który został zadany przez uŝytkownika aplikacji. Scenariusz emulacji jest plikiem, który jest wczytywany do programu za kaŝdym razem przed rozpoczęciem emulacji i określa, w jaki sposób węzły przemieszczałyby się w rzeczywistej sieci oraz jakie miałoby to konsekwencje dla istnienia połączeń między nimi. Scenariusz mobilności węzłów jest tworzony przez uŝytkownika aplikacji i jest odzwierciedleniem jego zapotrzebowania na przeprowadzenie konkretnego scenariusza testowego. Z uwagi na zunifikowanie formatu wczytywanych scenariuszy z formatem uŝywanym w ns-2, do ich tworzenia moŝna wykorzystać program setdest wchodzący w skład pakietu narzędzi Network Simulator 2. Funkcjonalność Emulatora nie obejmuje zagadnień specyficznych dla warstwy fizycznej mobilnych sieci ad-hoc związanych z propagacją sygnału radiowego. Aplikacja nie emuluje właściwości sieci takich jak istnienie kolizji, problemu ukrytych węzłów, czy parametrów jakościowych sygnału. Uznano, Ŝe zagadnienia te są stosunkowo mało istotne przy testowaniu i nie zostały włączone do wymagań aplikacji. Uruchomione w systemie operacyjnym procesy testowanych, mają do dyspozycji równieŝ inne (niŝ ) API umoŝliwiające dostęp do pozostałych zasobów systemowych takich jak np. pamięć podręczna i dyskowa. Aplikacja nie emuluje dostępu do tych zasobów, dlatego zagwarantowanie braku konfliktów przy ich wykorzystaniu spoczywa na barkach twórców testowanych. Architekturę Emulatora przedstawiono na rys. 3. Rys. 3. Architektura Emulatora.

Architekturę Emulatora podzielono na trzy elementy składowe: (a) Interakcja programu z uŝytkownikiem za pośrednictwem terminala tekstowego, interfejsu graficznego oraz programu Network Animator (NAM) [5]. (b) Część właściwa programu odpowiedzialna za stworzenie wirtualnej sieci i wykonanie scenariusza emulacji. (c) testowanego protokołu reprezentujące poszczególne węzły korzystające z wirtualnej infrastruktury j. Architektonicznie działanie aplikacji podzielono na cztery etapy: (1) Wczytanie oraz sprawdzenie poprawności danych wejściowych. (2) Stworzenie i konfiguracja urządzeń TAP oraz oczekiwanie na przywiązanie do ich interfejsów procesów reprezentujących węzły. (3) Wykonanie scenariusza emulacji przesyłanie ramek oraz dynamiczne modyfikowanie tablicy połączeń pomiędzy mi zgodnie ze scenariuszem. (4) Zakończenie działania programu. Dane wejściowe oraz opcje programu wczytywane są z linii poleceń terminala uŝytkownika (tryb tekstowy) lub z interfejsu graficznego. W skład danych wejściowych wchodzą ustawienia związane ze sposobem prezentowania uŝytkownikowi wyników działania aplikacji oraz dane związane z samym przebiegiem emulacji w tymi ścieŝka dostępu do pliku, w którym jest zapisany scenariusz mobilności węzłów. Funkcje przetwarzające dane wejściowe sprawdzają czy plik scenariusza jest poprawnie skonstruowany pod względem syntaktyki. Następnie tworzona jest tablica połączeń pomiędzy mi (topologia sieci), na jej podstawie Emulator będzie przesyłał ramki pomiędzy urządzeniami TAP, oraz chronologiczna lista zmian w statusach tych połączeń. Lista zdarzeń wykorzystywana jest przez wątek programu, który w czasie trwania emulacji modyfikuje tablicę połączeń. W trakcie wczytywania scenariusza tworzona jest równieŝ jego wizualizacja, która jeszcze przed rozpoczęciem emulacji moŝe zostać odtworzona w programie Network Animator. UmoŜliwia to przejrzenie zawartości scenariusza przed jego wykonaniem. Emulator tworzy taką liczbę wirtualnych urządzeń sieciowych TAP, jaka jest liczba węzłów emulowanej sieci. KaŜdemu z nich przypisywany jest unikalny adres MAC o numerze ab:cd:ef:00:xx:xx oraz interfejs o nazwie tapxx, gdzie XX jest numerem sieci. Informacja o kaŝdym z urządzeń TAP zapisana zostaje w programie w postać struktury zawierającej numer deskryptora pliku urządzenia, adres MAC oraz nazwę interfejsu. Deskryptory wykorzystywane są do przesyłania ramek pomiędzy urządzeniami, a adresy MAC i nazwy interfejsów do identyfikacji urządzeń oraz przywiązywania do nich procesów. Wykonanie scenariusza emulacji następuje w dwóch wątkach programu. Wątek główny nasłuchuje czy na interfejsach urządzeń TAP pojawiają się ramki danych. JeŜeli tak, ramka zostaje odebrana, a program sprawdza informacje w tablicy połączeń. Dane zostają wysłane do interfejsów wszystkich urządzeń, z którymi istnieje połączenie. Równocześnie z procesem głównym programu działa wątek obsługi zdarzeń tzw. scheduler. Wątek ten monitoruje na bieŝąco czas, który upłynął od rozpoczęcia emulacji i dokonuje zmian w tablicy połączeń. Wątek obsługi zdarzeń odpowiedzialny jest równieŝ za przesłanie do wątku głównego informacji o upłynięciu zadanego czasu trwania emulacji. Zakończenie działania programu następuje w momencie upłynięcia zadanego czasu emulacji. Wszystkie utworzone przez program wirtualne urządzenia zostają usunięte z systemu operacyjnego. Bez wykonywania Ŝadnych dodatkowych czynności program moŝe zostać ponownie uruchomiony. 5. Zastosowanie Emulatora Emulator został wykorzystany w projekcie EU 6FP MIDAS przy testowaniu implementacji elementu składowego warstw pośrednich protokołu dla adresowania kontekstowego

MIDAS Context Based Routing. Z wykorzystaniem emulatora przeprowadzono testy funkcjonalne dla emulowanych sieci bezprzewodowych złoŝonych od kilkunastu do kilkudziesięciu węzłów. 6. Podsumowanie W artykule przedstawiono opis architektury i działanie emulatora bezprzewodowych sieci działających w trybie ad-hoc przeznaczonego do testowania oprogramowania rutującego wykorzystującego interfejs gniazd. Emulator został wykorzystany w praktyce przy testowaniu implementacji elementów oprogramowania warstw pośrednich (ang. middleware) projektu EU 6FP MIDAS. Literatura 1. M. Puzar, T. Plagemann, NEMAN: A Network Emulator for Mobile Ad-Hoc Networks, Technical Report #321, Department of Informatics, University of Oslo, 2005. Dostępny na: http://www.ifi.uio.no/forskning/grupper/dmms/papers/138.pdf 2. Strona domowa Zespołu Aplikacji Mobilnych i Wbudowanych (ang. Mobile and Embedded Application Group), listopad 2006: http://meag.tele.pw.edu.pl/ 3. Strona domowa projektu MIDAS, listopad 2006: http://www.ist-midas.org/ 4. J. Domaszewicz, M. Koziuk, M. Rój, R. Schoeneich, K. Kacperski, Projekt MIDAS: Platforma Programistyczna do Tworzenia i WdraŜania Zaawansowanych Usług Mobilnych, Instytut Telekomunikacji Politechniki Warszawskiej, Warszawa, 2006. Dostępny na: http://kst.tele.pw.edu.pl/kst2006/ref/pm.05.pdf 5. Strona domowa programu Network Simulator (ns-2), listopad 2006: http://www.isi.edu/nsnam/ns/ 6. M. Krasnyansky, Universal TUN/TAP device driver, listopad 2006. Strona domowa projektu: http://vtun.sourceforge.net/tun 7. J. P. Macker, W. Chao, J. W. Weston, A low-cost, IP-based mobile network Emulator (MNE), MILCOM 2003 IEEE Military Communications Conference, 2003, 22, 481-486. Dostępny na: http://cs.itd.nrl.navy.mil/pubs/docs/mne_milcom03.pdf 8. P. Zheng, L. M. Ni, EMWIN: Emulating a Mobile Wireless Network using a Wired Network, 5th ACM international workshop on Wireless mobile multimedia, Atlanta, Georgia, 2002. Dostępny na: http://gargoyle.arcadia.edu/mathcs/zhengpei/publications/wowmom02_zheng.pdf 9. P. Mahadevan, A. Rodriguez, D. Becker, A. Vahdat, MobiNet: A Scalable Emulation Infrastructure for Ad Hoc and Wireless Networks, UCSD Technical Report CS2004-0792, 2004. Dostępny na: http://sysnet.ucsd.edu/~pmahadevan/publications/mobinet-mc2r.pdf 10. W. Richard Stevens, UNIX, Programowanie usług sieciowych, Tom 1, Wydawnictwa Naukowo-Techniczne, Warszawa, 2000