i
Obsah
OBSAH I
ZOZNAM OBRÁZKOV III
ZADANIE IV
0. ÚVOD 1
0.1. POUŢITÉ SKRATKY 2
0.2. SLOVNÍK POJMOV 4
0.3. POUŢITÁ NOTÁCIA 6
0.4. ZDROJE 8
1. ANALÝZA 9
1.1. TEORETICKÉ ZÁKLADY 9
1.1.1. POČÍTAČOVÉ SIETE 9
1.1.2. SIEŤOVÁ VRSTVA TCP/IP 11
1.1.3. PREPÁJANIE SIETÍ 12
1.1.4. SMEROVANIE 13
1.1.5. SMEROVACIE PROTOKOLY 14
1.1.6. CIDR A VLSM 16
1.1.7. VLAN A LAN 17
1.1.8. STA 18
1.1.9. TECHNOLÓGIE WAN 21
1.2. SIMULÁTORY A ANALYZÁTORY POČÍTAČOVÝCH SIETÍ 25
1.2.1. OPEN SOURCE RIEŠENIA 25
1.2.2. KOMERČNÉ RIEŠENIA 31
1.2.3. ZHODNOTENIE 33
1.3. SIMULAČNÉ KNIŢNICE 34
1.3.1. C++ SIM 34
1.3.2. IKR SIMULATION LIBRARY 35
1.3.3. OOSIM 35
1.3.4. TINY 35
1.3.5. ZHODNOTENIE 36
1.4. ANALÝZA IMPLEMENTAČNÉHO PROSTREDIA 36
1.4.1. PROGRAMOVACIE JAZYKY 36
1.4.2. VÝVOJOVÉ PROSTREDIA: 37
1.4.3. ZHODNOTENIE 38
1.5. UKLADANIE ÚDAJOV 38
1.5.1. TEXTOVÝ SÚBOR 38
1.5.2. BINÁRNY SÚBOR 38
1.5.3. XML SÚBOR 39
1.5.4. ZHODNOTENIE 39
2. ŠPECIFIKÁCIA POŢIADAVIEK 40
I
2.1. RIEŠENÝ PROBLÉM 40
2.2. PREHĽAD FUNKCIÍ NAVRHOVANEJ APLIKÁCIE. 40
2.2.1. VYTVORENIE SIEŤOVEJ TOPOLÓGIE 40
2.2.2. NASTAVENIA PRVKOV SIETE 40
2.2.3. SIMULÁCIA KOMUNIKÁCIE A JEJ VIZUALIZÁCIA 40
2.2.4. ULOŢENIE TOPOLÓGIE 41
2.3. DIAGRAM PRÍPADOV POUŢITIA 41
2.3.1. PRÍPADY POUŢITIA (USE-CASE) 42
2.3.2. SCENÁRE 48
2.4. VSTUPY, VÝSTUPY 48
2.5. POUŢÍVATEĽSKÉ ROZHRANIE 48
2.6. TECHNICKÉ POŢIADAVKY 49
3. HRUBÝ NÁVRH 50
3.1. DÁTOVÉ TYPY A OBJEKTY 50
3.1.1. OBJEKT PREPOJOVACÍ KÁBEL, LINKA (LINK) 50
3.1.2. OBJEKT KONCOVÉ ZARIADENIE (HOST) 50
3.1.3. OBJEKT PREPÍNAČ (SWITCH) 51
3.1.4. OBJEKT SMEROVAČ (ROUTER) 51
3.1.5. OBJEKT PAKET (PACKET) 51
3.2. DIAGRAM TRIED 52
3.3. STAVOVÝ DIAGRAM 53
3.3.1. STAVOVÝ DIAGRAM OBJEKTU PAKET 53
3.3.2. STAVOVÝ DIAGRAM OBJEKTU UZOL 54
3.4. SEKVENČNÝ DIAGRAM 55
3.5. GRAF ŢIVOTNÉHO CYKLU 56
3.6. DIAGRAM ČINNOSTÍ 57
3.7. DEKOMPOZÍCIA SYSTÉMU 58
3.7.1. VERIFIKÁCIA VSTUPNEJ TOPOLÓGIE 58
3.7.2. TVORBA TOPOLÓGIE 58
3.7.3. SIMULAČNÝ PROCES 59
3.7.4. POUŢÍVATEĽSKÉ ROZHRANIE 59
II
Zoznam obrázkov
OBRÁZOK 1-1: KOREŠPONDENCIA MODELOV RM OSI A TCP/IP 9
OBRÁZOK 1-2: TCP/IP 11
OBRÁZOK 1-3: ŠTRUKTÚRA TRIED IP ADRIES 12
OBRÁZOK 1-4: PRÍKLAD DUAL ALGORITMU 16
OBRÁZOK 1-5: INICIALIZAČNÝ PAKET VOĽBY „ROOT BRIDGE“ 19
OBRÁZOK 1-6: VOĽBA „ROOT BRIDGE“ – KROK 1 19
OBRÁZOK 1-7: CENA RÔZNYCH TYPOV LINIEK 20
OBRÁZOK 1-8: VOĽBA „ROOT BRIDGE“ – KROK 2 20
OBRÁZOK 1-9: VOĽBA „ROOT BRIDGE“ – KROK 3 21
OBRÁZOK 1-10: HDLC ZAPUZDRENIE 22
OBRÁZOK 1-11: VRSTVY PROTOKOLU PPP 22
OBRÁZOK 1-12: PAP AUTENTIFIKÁCIA PROTOKOLU PPP 23
OBRÁZOK 1-13: CHAP AUTENTIFIKÁCIA PROTOKOLU PPP 23
OBRÁZOK 1-14: SIEŤ FRAME-RELAY 24
OBRÁZOK 1-15: EDITOR TOPOLÓGIE 28
OBRÁZOK 1-16: DIALÓGOVÉ OKNO ATRIBÚTOV 28
OBRÁZOK 1-17: MONITOR VÝKONNOSTI 29
OBRÁZOK 1-18: EDITOR UZLOV 29
OBRÁZOK 1-19: PREHRÁVAČ PAKETOVÝCH ANIMÁCIÍ 30
OBRÁZOK 1-20: PRACOVNÁ PLOCHA ROUTERSIM NETWORK VISUALIZER-A 32
OBRÁZOK 1-21: PRACOVNÁ PLOCHA CISCO CONFIGMAKER-A 33
OBRÁZOK 2-1: DIAGRAM PRÍPADOV POUŢITIA 42
OBRÁZOK 3-1: ZJEDNODUŠENÝ DIAGRAM TRIED 52
OBRÁZOK 3-2: DIAGRAM TRIED S NIEKTORÝMI VLASTNOŤAMI OBJEKTOV 53
OBRÁZOK 3-3: STAVOVÝ DIAGRAM PAKETU 54
OBRÁZOK 3-4: STAVOVÝ DIAGRAM UZLU 55
OBRÁZOK 3-5: SEKVENČNÝ DIAGRAM 56
OBRÁZOK 3-6: GRAF ŢIVOTNÉHO CYKLU 57
OBRÁZOK 3-7: DIAGRAM ČINNOSTÍ 58
III
Zadanie
Simulátor komunikácie v počítačovej sieti
Vedúci tímu: Ing. Igor Grellneth, PhD.
Navrhnite a zrealizujte programový systém pre simuláciu sieťovej komunikácie na druhej
a tretej vrstve sieťovej architektúry RM OSI:
Systém má umoţňovať:
definovanie topológie simulovanej siete
simuláciu rôznych prepájacích zariadení (napr. prepínač, smerovač, firewall ...)
simuláciu komunikácie medzi prepájacími zariadeniami
Funkčnosť navrhnutého systému overte v sieti so simulovanými zariadeniami pomocou
komunikácie medzi koncovými zariadeniami.
IV
0. Úvod
Vzájomná komunikácia počítačov cez počítačovú sieť nie je triviálny problém. Na
jednoduchej komunikácii medzi pouţívateľskými stanicami na opačných koncoch sveta sa
podieľa veľké mnoţstvo technických zariadení, ktoré vyuţívajú rôzne dohodnuté protokoly
a prenosové algoritmy. Jednou z hlavných poţiadaviek na správnu činnosť sieťovej
komunikácie je jej spoľahlivosť a rýchlosť závislá od dobre zvládnutej konfigurácie prvkov
siete ako aj správne navrhnutej topológii siete. Na dosiahnutie tohto cieľa je potrebný
efektívny prístup k riešeniu vzniknutých problémov, ktorý moţno nadobudnúť zo znalosti
fungovania a konfigurovania sieťových komponentov.
Pouţívatelia počítačových sietí sa preto spoliehajú na znalosti sieťových administrátorov. Tí
svoje vedomosti nadobúdajú vďaka rôznym kurzom, výučbovým materiálom prípadne
softvérovým produktom.
Tento projekt sa venuje vytvoreniu softvérového produktu pre simuláciu sieťovej
komunikácie. V oblasti počítačových sietí prispieva k uľahčeniu výučby. Výsledná aplikácia
poskytuje pouţívateľské rozhranie pre tvorbu sieťovej topológie a moţnosť jednoduchej
konfigurácie prvkov siete. Vo vytvorenej topológii je moţné pre overenie správnej
konfigurácie a zapojenia prvkov siete odsimulovať komunikáciu medzi vybranými prvkami.
Cieľovou skupinou pouţívateľov tejto aplikácie sú študenti a pedagógovia.
1
0.1. Pouţité skratky
ACL Access Control List
ARP Address Resolution Protocol
BDR Backup Designated Router
BECN Backward Explicit Congestion Notification
CCNA Cisco Certified Network Associate
CCNP Cisco Certified Network Professional
CIDR Classless InterDomain Routing
CLR Common Language Runtime
CSMA/CD Carrier Sense Multiple Access / Collision Detection
DLCI Data Link Connection Identifier
DP Designated Port
DR Designated Router
DUAL Diffusing Update Algorithm
EIGRP Enhanced Interior Gateway Routing Protocol
FECN Forward Explicit Congestion Notification
FIFO First In First Out
FTP File Transfer Protocol
GPRS General Packet Radio Service
GSM G
GUI Graphical User Interface
HDLC High-Level Data Link Control
HTTP Hyper-Text Transfer Protocol
CHAP Challenge Handshake Authentication Protocol
ICMP Internet Control Message Protocol
IEEE Institute of Electrical and Electronics Engineers
IGMP Internet Group Management Protocol
IGP Interior Gateway Protocol
IP Internet Protocol
JRE Java Runtime Environment
LAN Local Area Network
LCP Link Control Protocol
LMI Local Management Interface
LRU Last Recently Used
LSA Link-State Algorithm
MAC Media Access Control
MFC Microsoft Foundation Classes
MS Microsoft
2
NAT Network Address Translation
NCP Network Control Protocol
OBS Optical Burst Switching
OSPF Open Shortest Path First
PAP Password Authentication Protocol
PPP Point-to-Point Protocol
PVC Permanent Virtual Circuit
RARP Reverse Address Resolution Protocol
RIP Routing Information Protocol
RM OSI Reference Model Open Systems Interconnection
STA Spanning-Tree Algorithm
STP Spanning-Tree Protocol
SVC Switching Virtual Circuit
TCP Transmission Control Protocol
TTL Time-to-Live
UDP User Datagram Protocol
VCL Visual Component Library
VLAN Virtual LAN
VLSM Variable-Length Subnet Mask
VS Visual Studio
WAN Wide Area Network
XML eXtensible Markup Language
XSD XML Scheme Definition
3
0.2. Slovník pojmov
anycast Spôsob posielania dát; vybraným zariadeniam zo skupiny
bandwidth Vlastnosť linky/média, určuje jej kapacitu
bridge Prepájacie zariadenie pracujúce na druhej vrstve RM OSI
broadcast Spôsob posielanie dát; všetkým zariadeniam
class-wizard Pomocný nástroj niektorých programovacích prostredí pre vytváranie
tried
distance-vector Typ dynamického smerovania;
Firewall Zariadenie určené na zabezpečenie sietí
Flapping link Linka, rozhranie smerovača, neustále meniaca svoj stav (funkčná,
nefunkčná)
full-duplex Technika komunikácie; komunikácia môţe prebiehať súčasne
v obidvoch smeroch
half-duplex Technika komunikácie; komunikácia môţe prebiehať v obidvoch
smeroch, avšak v konkrétnom časovom okamihu len v jednom.
hash Bezpečnostný mechanizmus; určitým algoritmom (funkciou) sú
pozmenené dáta do nečitateľnej podoby
Holddown-Timer Mechanizmus predchádzania cyklom; hneď po označení cesty ako
nedostupnej, táto je zo smerovacej tabuľky odstránená aţ po určitom
čase. Je totiţ moţné, ţe po chvíli opäť naskočí („flapping link“)
hop-count Počet uzlov (smerovačov), cez ktoré prechádzali dátové jednotky
hub Prepájacie zariadenie pracujúce na prvej vrstve modelu RM OSI
link-state Typ dynamického smerovania; zaloţený na Dijskstrovom algoritme
multicast Spôsob posielania dát; vybranej, vopred určenej, skupine zariadení
multiplexovanie Metóda umoţňujúca vysielať na jeden komunikačný kanál viacerým
zariadeniam
open-source Prístup k vývoju softvéru; aplikácie umoţnia prístup k svojim
zdrojovým kódom
paket Dátová jednotka na tretej vrstve TCP/IP modelu
route poisoning Mechanizmus predchádzania cyklom; prichádzajúcim paketom je
nastavený čas ţitia na určitú hodnotu
router „smerovač“, zariadenie prepínajúce prichádzajúce pakety podľa
informácií tretej vrstvy RM OSI
simplex Technika komunikácie; komunikácia prebieha len v jednom smere
split-horizon Mechanizmus predchádzania cyklom; prijaté smerovacie updaty nie sú
posielané na rozhranie, z ktorého prišli
sumarizácia Mechanizmus zniţovania veľkosti smerovacích tabuliek, vyuţitím
variabilných masiek sietí
4
switch „prepínač“, zariadenie prepínajúce prichádzajúce pakety podľa
informácií druhej vrstvy RM OSI
topológia Počítačová sieť, pozostávajúca s rôznych typov uzlov, vzájomne
poprepájaných
trigerred-update Mechanizmus predchádzania cyklom; posielaním smerovacích
updatov hneď po ich prijatí
TTL Mechanizmus predchádzania cyklom; nastavením počtu povolených
prechodov uzlami (smerovačmi)
unicast Spôsob posielania dát; jednému konkrétnemu zariadeniu
XML parser Trieda spracúvajúca XML súbory
5
0.3. Pouţitá notácia
vetvenie
opakovanie
zoskupenie
zovšeobecnenie
začiatočný stav
koncový stav
prípad pouţitia
pouţívateľ
trieda
stav alebo udalosť
router
6
switch
7
0.4. Zdroje
Kniţné zdoje
[1] BIELIKOVÁ, M.: Princípy Softvérového Inţinierstva. 1.vyd. 2000. ISBN 80-227-1329-
5
[2] BIELIKOVÁ, M.: Ako úspešne vyriešiť projekt. 1. vyd. 2000. ISBN 80-227-1459-3
[3] KOTOČOVÁ, M.: Prednášky z predmetu Počítačové Siete 1
[4] GRELLNETH, I.: Prednášky z predmetu Počítačové Siete 2
Internetové zdroje
[5] http://www.routersim.com/ - RouterSim Network Visualizer
[6] http://cxxsim.ncl.ac.uk/ - C++SIM simulačná kniţnica
[7] http://web.informatik.uni-
bonn.de/IV/martini/Forschung/Projekte/Sonstige/OOSIM/index.html - OOSIM
simulačná kniţnica
[8] http://www.dcs.elf.stuba.sk/~menhart/Tiny.html - TINY simulačný TOOLSET
[9] http://www.ind.uni-stuttgart.de/Content/IKRSimLib/ - IKR simulačná kniţnica
[10] http://www.cisco.com/warp/public/cc/pd/nemnsw/cm/index.shtml - CISCO
ConfigMaker
[11] http://cisco.netacad.net/ - Cisco akadémia, kurzy CCNA
[12] http://www.csse.uwa.edu.au/cnet/ - cnet network simulator
[13] http://info.iet.unipi.it/~luigi/ip_dummynet/ - dummynet
[14] http://www.isi.edu/nsnam/ns/ - The Network simulator - ns2
[15] http://irg.cs.ohiou.edu/one/ - ONE – the OHIO Network Simulator
[16] http://www.cs.cornell.edu/skeshav/real/ - Real simulator
[17] http://tapec.uv.es/simured/index_en.html - simured
[18] http://www.google.com – vyhľadávací internetový server
8
1. Analýza
1.1. Teoretické základy
1.1.1. Počítačové siete
Sieťová architektúra
Pre jednoduchšie pochopenie a moţné uľahčenie riešenia problémov je rozdelená do vrstiev.
Tak vzniká vrstvový model v ktorom má kaţdá vrstva svoju funkciu/-ie, s okolitými vrstvami
komunikuje prostredníctvom rozhraní a kaţdá operuje podľa definovaného protokolu.
Medzi sebou komunikujú len vrstvy na rovnakej úrovni.
Všetky výstupné dáta prechádzajú od hora-nadol a vstupné naopak. Pri vysielaní dát, tieto
prechádzajú všetkými vrstvami, kde je k nim pridávaná hlavička. Informácie, ktorým rozumie
len vrstva na príslušnej úrovni.
Jednotlivé vrstvy ponúkajú sluţby nadradeným. Tieto sluţby rozdeľujeme na:
So spojením (connection oriented) – spoľahlivý prenos dát
Bez spojenia (connectionless) – nespoľahlivý
Existuje niekoľko vrstvových modelov sieťovej architektúry (Obrázok 1-1):
RM OSI
Model pozostávajúci so siedmych vrstiev (fyzická, dátová, sieťová, transportná, relačná,
prezentačná, aplikačná)
TCP/IP
Tento model je tvorený len štyrmi vrstvami (sieťového rozhrania, sieťová, transportná,
aplikačná). Avšak tieto pokrývajú všetkých sedem vrstiev modelu RM OSI.
Obrázok 1-1: Korešpondencia modelov RM OSI a TCP/IP
Štruktúra sietí
9
Komunikačný reţim
Simplex – vţdy môţe vysielať len jedno zariadenie a aj to len jedným smerom
Half-duplex – vţdy môţe vysielať len jedno zariadenie v čase, ale v obidvoch smeroch
Full-duplex – vysielanie v oboch smeroch súčasne
Vysielanie z viacerých zdrojov je moţné prostredníctvom multiplexovania. Viacero
prístupov.
Frekvenčný multiplex – kaţdý zo zdrojov vysiela na inej nosnej frekvencii
Časový multiplex – kaţdý zdroj má pridelený čas, kedy môţe vysielať. Zdroje sa
postupne v čase striedajú vo vysielaní
Pri komunikácii je moţné vysielať niekoľkými spôsobmi v závislosti od toho, koľko je
cieľových staníc.
Unicast – príjemca je len jeden
Multicast – príjemcov je viac, určených nejakou skupinou
Anycast – príjemca je ľubovoľný zo skupiny
Broadcast - Všetkým, ktorý počúvajú
Techniky prepínania
Aby sa jednotlivé informácie dostali do správneho cieľa, je potrebné určiť cestu, kadiaľ budú
putovať.
Prepínanie okruhov – pred samotnou komunikáciou sa vytvorí cesta, ktorou budú
všetky informácie putovať spoločne. T.j. kaţdá časť dát pôjde rovnakou cestou.
Nevýhodou je, ţe v jednom uzle môţe naraz existovať len jedna takáto cesta.
Prepínanie paketov
o datagramy – dáta sú rozdelené do datagramov. Kaţdý z nich má určený cieľ,
kam má prísť. Uzly v sieti podľa tohto cieľa a rôznych parametrov siete,
vyberú vţdy najlepšiu cestu. T.j. jednotlivé časti nemusia cestovať rovnakou
cestou a ani prísť v správnom poradí.
o virtuálne okruhy – pred komunikáciou je zriadený virtuálny okruh. Časti dát
potom cestujú týmto jedným okruhom. Takýchto okruhov môţe na jednom
uzle existovať viacero.
V dôsledku prepínania, a vlastne samotného prechodu dát uzlami dochádza pri ich posielaní
k oneskoreniu.
spracovanie paketu – zahŕňa nájdenie výstupnej linky, kontrolu a opravu chýb
vo vyrovnávacej pamäti – čas, ktorý strávi paket čakaním vo výstupnej vyrovnávacej
pamäti pokiaľ sa odošlú predchádzajúce pakety
vyslanie paketu – paket má určitú dĺţku. Toto oneskorenie určuje čas, ktorý zabralo
jeho vyslanie
prenos paketu – aj napriek tomu, ţe sa informácie v sieti pohybujú rýchlosťou svetla,
nie je to v jednom okamihu.
Výsledné oneskorenie je súčtom všetkých spomenutých oneskorení.
Detekcia/korekcia chýb
Nič nie je vo svete dokonalé a teda ani komunikačné cesty v sieťach. Aj keď s postupujúcou
dobou sú kvalitnejšie, stále v nich dochádza k chybám. Kaţdý kanál/médium je
charakterizovaný/é BER (bit error rate). Pravdepodobnosť vzniku chyby v jednom bite.
10
Pri riešení chybovosti sa vyuţívajú dva prístupy:
dopredný – (korekčné kódy) uţ pri vysielaní dát sú pridané bity navyše, ktoré majú
zabezpečiť opravu vzniknutej chyby bez nutnosti opätovného prenosu dát
spätnoväzobný – (detekčné kódy) pri vysielaní je pouţitý mechanizmus kódovania
umoţňujúci detegovať určitý počet vzniknutých chýb avšak nie ich opravu. Preto je
vyţiadaný opätovný prenos dát.
Hybridný prístup
Pri spätnoväzobnom spôsobe očakáva vysielacia strana nejakú odpoveď. V závislosti od toho
či je táto odpoveď na správne prijatie, nesprávne prijatie alebo oboje, poznáme tieto schémy
potvrdzovania správ:
P-schéma – potvrdzuje sa správne prijatie
N-schéma – odpovedá sa na nesprávne prijatie
A-schéma – odpovedá sa na všetky prijaté aj neprijaté správy
1.1.2. Sieťová vrstva TCP/IP
My sa budeme venovať hlavne protokolu IP a jeho protokolovému zásobníku (Obrázok 1-2).
IP protokol je nespoľahlivý (nezaručuje spoľahlivé doručenie dát), na adresovanie vyuţíva
logické adresy (IP adresy) a na prenos IP datagramy.
Obrázok 1-2: TCP/IP
IP adresa:
Je to 32 bitová hodnota. Umoţňuje adresovať 2^32 uzlov. Delí sa do 5 tried (Obrázok 1-3):
A – tvar NET.HOST.HOST.HOST (rozsah 0.0.0.0 – 127.255.255.255)
B – tvar NET.NET.HOST.HOST (128.0.0.0 – 191.255.255.255)
C – tvar NET.NET.NET.HOST (192.0.0.0 – 223.255.255.255)
D – multicast adresy (224.0.0.0 – 239.255.255.255)
E – rezervované (240.0.0.0 – 255.255.255.255)
11
Obrázok 1-3: štruktúra tried IP adries
Protokol IP má niekoľko podporných protokolov:
ICMP (internet control message protocol) – prenos chybových a riadiacich správ
medzi uzlami
IGMP (internet group management protocol) – vyuţitý na multicast adresovanie.
Keďţe IP protokol zaviedol logické adresy, je potrebné tieto nejako mapovať na fyzické
a naopak. O toto sa stará (R)ARP ( (reverse) address resolution protocol).
ARP: K známej IP adrese priraďuje fyzickú adresu. Zdrojový aj cieľový uzol musia byť
v rovnakej sieti. Ak nie, je potrebné pouţiť Proxy ARP.
RARP: K fyzickej adrese priradí logickú.
Z rozmachom internetu sa blíţi čas, keď uţ 32-bitové adresy nebudú postačovať. Hľadali sa
preto nejaké riešenia ako spomaliť vyčerpanie IP adries:
Privátne IP adresy – adresy ktoré nie sú viditeľné mimo LAN (skryté za NAT)
CIDR, VLSM
IPv6 – 128 bitové adresy so spätnou kompatibilitou s 32 bitovými
1.1.3. Prepájanie sietí
Pri súčasnom rozširovaní počítačových sietí je potrebné vyriešiť prepájanie sieťových prvkov.
Na toto slúţia prepájacie zariadenia. Ich úlohou je spojiť siete tak, aby sa pouţívateľovi zdali
ako jedna ucelená sieť.
Druhy prepájacích zariadení:
Opakovač, hub – pracuje na prvej vrstve RM OSI
Most, prepínač – druhá vrstva
Smerovač – tretia vrstva
Ich hlavnou úlohou je takisto prispôsobenie rozdielov medzi sieťami rôznych druhov.
Opakovač (HUB)
12
Ako názov napovedá, toto zariadenie sa pouţíva len na kopírovanie dát prichádzajúcich na
vstupný port na všetky výstupné porty. Keďţe pracuje na prvej vrstve, vôbec nepozerá na
obsah paketu.
Most (BRIDGE), prepínač (SWITCH)
Zariadenie pracujúce na druhej vrstve. Jeho funkciami sú: načítanie rámca, kontrola,
transformácia, vyslanie.
Existujú 2 základné techniky prepínania rámcov:
Store’n’forward – rámec je najskôr celý načítaný a aţ potom prepnutý
Cut-throught – rámec je prepínaný uţ po načítaní cieľovej adresy (resp. niektorých
ďalších polí)
o Fast-forward – načíta paket len po cieľovú MAC adresu
o Fragment-free – načíta paket len po dáta
Smerovač (ROUTER)
Uţ prepájanie na tretej vrstve. Zahrňuje IP adresáciu. Smerovače majú vo všeobecnosti dve
úlohy:
1. vybrať najlepšiu cestu
2. a následne prepnúť paket na odchádzajúce rozhranie
ACL
ACL ( Access Control List ) poskytuje niekoľko uţitočných funkcií v rámci smerovača, ktoré
nám poskytujú zvýšenie bezpečnosti, obmedzovanie prístupových práv, kontrolu a riadenie
sieťovej komunikácie. Definovaním kolekcie zakazovacích a povoľovacích pravidiel
(vzťahujúcich sa na IP adresu, sieťový protokol) na jednotlivé rozhrania smerovača je moţné
filtrovať sieťovú komunikáciu, obmedzovať ju a tým zvyšovať výkonnosť siete.
1.1.4. Smerovanie
Smerovanie je hlavná funkcia sieťovej vrstvy. Je to proces nájdenia cesty zo zdrojového uzla
do cieľového. Je realizované smerovacími algoritmami.
Poznáme statické a dynamické smerovanie.
Statické smerovanie
Je to manuálne nakonfigurované smerovanie (smerovaču napevno zadáme na ktoré rozhranie,
poprípade na ktorú adresu ďalšieho hop-u, má posielať pakety).
Táto metóda poskytuje vysokú úroveň kontroly, keďţe vţdy vieme, kadiaľ sú pakety
prenášané, avšak pri raste siete nastáva problém s administráciou.
Dynamické smerovanie
Je zabezpečené smerovacími protokolmi. Smerovače si medzi sebou vymieňajú informácie
o topológii siete – pri dynamickom smerovaní sa smerovače automaticky prispôsobujú
zmenám v topológii.
Dynamické smerovače môţeme rozdeliť na distance-vector a link-state.
Distance-vector
13
Kaţdá cesta je ohodnotená vektorom vzdialenosti (najčastejšie počet hop-ov). Predtým, ako
smerovač pošle smerovaciu informáciu ďalej, pričíta ceste vlastnú vzdialenosť od cieľa.
Susedia si posielajú celé tabuľky, takţe je nutné počkať kým sa informácia rozšíri ku všetkým
smerovačom.
Môţe dôjsť k smerovacím cyklom. Poznáme niekoľko spôsobov ochrany:
Route Poisoning
Split Horizont
Holddown Timers
Triggered Updates
TTL
Link-state
Zaznamenávajú sa stavy liniek priamo pripojených smerovačov. Informácie sa vymieňajú
pomocou LSA (Link State Advertisement) paketov. Ako náhle má smerovač topologickú
databázu naplnenú LSA paketmi, sám si vyráta najlepšie cesty pomocou Dijskstrovho SPF
algoritmu.
Narozdiel od distance-vector algoritmov, neposielajú celé tabuľky. Pri zmene topológie pošlú
tzv. partial updates – len informáciu o zmenených linkách.
1.1.5. Smerovacie protokoly
Poznáme ich niekoľko.
RIP
Je to IGP distance-vector protokol. Smerovacie update-y posiela kaţdých 30 sekúnd. Boli
vytvorené dve verzie:
RIPv1 – posiela update-y broadcastom, je triedny
RIPv2 – posiela update-y multicastom, je beztriedny (podpora CIDR a VLSM)
a podporuje autentifikáciu smerovacích protokolov.
OSPF
Je to beztriedny IGP link-state smerovací protokol. Podporuje hierarchické smerovanie –
delenie sietí do oblastí. Kaţdý smerovač vie len o topológii svojej oblasti.
Podporuje VLSM, neplatí tu počet hop-ov, ale kapacita linky (bandwidth). Topologická
databáza obsahuje informácie o všetkých stavoch liniek v sieti (danej oblasti).
Funkcie OSPF (zjednodušene):
1. kaţdý smerovač generuje LSA o všetkých svojich spojeniach pri zmene topológie
2. vygenerované LSA sa posielajú všetkým susedom záplavou
3. po prijatí LSA kaţdý smerovač si nezávisle vytvorí vlastnú smerovaciu tabuľku
aplikovaním Dijkstrovho SPF algoritmu.
Podmienky vytvorenia susedstva
14
Pri vytvorení sa posielajú Hello pakety – podmienky:
priame fyzické spojenie medzi dvoma smerovačmi
rovnaká maska podsiete
rovnaká verzia OSPF
rovnaká oblasť
rovnako nakonfigurovaný Hello (default 10 sekúnd)
rovnaké heslo
Obsah Hello paketu
sieťová maska
Hello a RouterDead intervaly
Priorita smerovača
„Designated Router“ ID
„Backup Designated Router“ ID
ID všetkých susedov
DR je koncentračný bod pre všetky LSA. Má najvyššie ID, alebo najvyššiu prioritu – je
„adjacent“ len s DR a BDR. BDR slúţi ako záloha DR.
K výberu DR-BDR dochádza na základe priority a IP adresy rozhrania.
EIGRP
Je to beztriedny hybridný smerovací protokol – kombinuje jednoduchosť konfigurácie
Distance –Vector protokolov a rýchlosť konvergencie link-state protokolov.
Vlastnosti
Počítanie metriky pre jednotlivé cesty
Rozdelenie záťaţe medzi cesty s rovnakými aj rozdielnymi metrikami (Equal-cost
a Unequal cost balancing)
Hop Count – max 224
Hello protokol
Topologická databáza
Event-triggered routing updates
Autentifikácia smerovacích protokolov
Rýchlosť konvergencie – DUAL algoritmus
Topologická databáza
Obsahuje informácie o všetkých cestách v sieti – pre kaţdú cestu:
Minimálne jeden nasledovník – „succesor“
Ţiadny, alebo viac moţných ďalších nástupcov – „feasible successor“
Metrika je v tvare „Feasible Distance/Advertised Distance“
Aktualizácia pomocou niekoľkých typov paketov:
15
Update paket – výmeny kompletnej tabuľky unicastom. Výmeny len časti
smerovacích informácií pri zmenách v sieti – multicastom
Query paket – výmeny len časti smerovacích informácií, a to ak DUAL nemôţe nájsť
feasible sccesora – multicastom
Reply paket – odpoveď na Query paket – unicast
DUAL
Diffusing Update Algorithm. Čo je pre link-state SPF, to je pre EIGRP DUAL.
Cesty, ktoré našiel „successor“ sú vsunuté do smerovacej tabuľky. „Fesible successor“ cesty
sú ponechané v topologickej databáze ako záloha. Stabilné cesty sú označené ako pasívne
(kód P). Cesty, pre ktoré sa hľadá „successor“ sú označené ako aktívne (kód A).
Príklad:
Obrázok 1-4: príklad DUAL algoritmu
1.1.6. CIDR a VLSM
Class Less InterDomain Routing a Variable Length Subnet Mask.
CIDR
CIDR ruší prideľovanie IP adries do tried A, B, C. dôvodom je vyčerpanie adries tried A, B
a následné obavy pred enormným nárastom smerovacích tabuliek internetových smerovačov
záplavou adries triedy C. Teraz sa môţe zaviesť sumarizácia IP adries a následné zmenšenie
obsahu smerovacích tabuliek.
Aby sa CIDR a VLSM mohlo uplatniť, je potrebné, aby smerovacie protokoly posielali aj
informáciu o dĺţke masky podsiete.
16
VLSM
VLSM umoţňuje pouţitie viacerých masiek podsietí v rámci jednej siete, čo sa často
uplatňuje pri adresovaní point-to-point spojov.
Privátne IP adresy
Riešia problém nedostatočného rozsahu pridelených IP adries - celej firme sa pridelia privátne
adresy a potom ich „zamaskuje“ NAT.
Ak pouţijeme privátne adresy a NAT, treba sa uistiť, ţe neposielame von informácie
o vnútornej sieti.
1.1.7. VLAN a LAN
VLAN
Vlastnosti:
jednoduchá broadcastová doména
broadcasty a multicasty sa šíria len v rámci VLAN
LAN môţe obsahovať viacero VLAN
Pre prepojenie VLAN-ov je nutný smerovač
Nezávisí na fyzickej topológii
Typy virtuálnych sietí:
Layer – 1 VLAN
o kritérium príslušnosti k VLAN sú porty prepínača
o známe ako „port switching“
Layer – 2 VLAN
o sú definované mnoţiny MAC adries
Layer – 3 VLAN
o virtuálna podsieť
o príslušnosť je definovaná typom protokolu a adresou 3. vrstvy
Protocol based VLAN
o príslušnosť je definovaná typom protokolu 3. a vyššej vrstvy
Multicast VLAN
o multicastová prevádzka
Policy based VLAN
o umoţňuje vytvárať podmienky s viacerými pravidlami
LAN
Siete LAN sú charakterizované hlavne topológiou. Takisto sa odlišujú počtom uzlov,
rýchlosťou, pouţitým médiom, prístupovými metódami atď.
Postupne si rozoberieme niektoré z týchto vlastností.
Topológia:
Zbernica
Hviezda
Strom
Kruh
17
Prístupové metódy určujú spôsob prideľovania kapacity prenosového média. Ich základné
delenie:
Súperiace vs. Nesúperiace
Deterministické vs. Nedeterministické
Najznámejšími sú CSMA/CD a Token-Ring.
Token-Ring: nesúperiaca, deterministická prístupová metóda. Uzly buď vysielajú vlastné
dáta, alebo prijímajú dáta s ostatných uzlov a opakujú ich opäť do siete. Po okruhu obieha
riadiaca značka „token“. Vysielať môţe len vlastník „tokenu“. Vyšle dátový rámec. Po jeho
obídení kruhu, vysielajúci uzol tieto dáta zruší a uvoľní „token“. Existuje moţnosť prioritného
vysielania.
CSMA/CD: súperiaca, nedeterministická metóda. Hlavný princíp metódy: „počúvaj pred
vysielaním, počúvaj počas vysielania“. Vysvetliť sa to dá tak, ţe uzol pred tým ako vyšle
svoje dáta, počúva či niekto nevysiela. Ak hej, tak čaká. Ak nie, začne vysielať svoje dáta.
Popri tom však počúva, či niekto nezačal vysielať súbeţne s ním. Ak nie, dokončí vysielanie
svojich dát a znovu počúva, kedy bude môcť vyslať ďalšie. Ak niekto začal vysielať spolu
s ním. Obaja pošlú „jam“ bity a vysielanie na náhodnú dobu prerušia.
Kabeláţ
Ethernet:
Rýchlosť 10Mbps. Pouţívané média: koaxiálny kábel, krútená dvojlinka, optický kábel. Pri
tvorbe siete je potrebné dodrţovať pravidlo „5-4-3“. 5 segmentov, spojených 4 opakovačmi,
z toho len 3 segmenty aktívne (obsahujúce koncové zariadenia)
Rýchly ethernet:
Rýchlosť: 100Mbps. Pouţívané média: krútená dvojlinka, optický kábel.
Gigabitový ethernet:
Rýchlosť: 1Gbps. Pouţívané médiá: optický kábel, medený kábel, krútená dvojlinka.
Pre všetky tieto technológie platia konfiguračné modely, ktoré vravia o fyzikálnych
predpokladoch fungovania siete (ako napr. dĺţky jednotlivých segmentov, počty a druh
pouţitých prepájacích zariadení, ...)
1.1.8. STA
Spanning Tree Algorithm. Prepínače navzájom komunikujú – zabraňuje vzniku slučiek.
Redundantné linky sa vyuţijú ako záloha.
Voľba Root Bridge
Kritérium voľby pozostáva z dvoch častí :
Bridge Priority (Obrázok 1-5) – default 32768 na kaţdom Catalyst Switche
MAC Address
18
Obrázok 1-5: inicializačný paket voľby „root bridge“
Príklad:
Obrázok 1-6: voľba „root bridge“ – krok 1
Voľba root – portov
Kritériom je kapacita linky (Bandwidth)
19
Obrázok 1-7: cena rôznych typov liniek
príklad
Obrázok 1-8: voľba „root bridge“ – krok 2
Voľba designated (predurčených) portov
1 DP na kaţdú sieť.
Všetky rozhodovacie kroky sú zaloţené na :
1. Najniţšia Root Bridge ID
2. Najniţšia cena cesty k Root Bridge
3. Najniţšia Bridge ID switch-u odosieľateľa
4. Najniţšia port ID
20
Príklad
Obrázok 1-9: voľba „root bridge“ – krok 3
Stavy STP
Prepínač môţe byť v niekoľkých stavoch:
Disabled – špeciálny
Blocking
Listening
Learning
Forwarding
1.1.9. Technológie WAN
WAN – „wide area network“, siete z veľkou geografickou rozlohou. Vyuţívané hlavne
veľkými spoločnosťami na prepojenie svojich pobočiek na veľkú vzdialenosť.
PPP (point-to-point protocol)
Protokol vyuţívaný vo WAN sieťach. Pracuje na sériovom rozhraní v prepínanej sieti na
druhej vrstve RM OSI modelu. Je derivátom HDLC zapuzdrenia (Obrázok 1-10), kde ešte za
21
kontrolné pole pridáva pole dĺţky 1 alebo 2 bajty obsahujúce typ protokolu prenášaného
protokolom PPP.
Obrázok 1-10: HDLC zapuzdrenie
Protokol PPP je vrstvený protokol (Obrázok 1-11). Skladá sa z dvoch vrstiev:
Spodná vrstva LCP („link control protokol“) zabezpečuje spojenie na druhej vrstve RM OSI.
Takisto vyjednáva parametre spojenia:
Autentifíkáciu
Kompresiu
Detekciu chýb
Podporu „multilink“
Vrchná vrstva NCP („network control protocol“) zabezpečuje konfiguráciu rôznych
protokolov sieťovej vrstvy RM OSI. Pre kaţdý z týchto protokolov je samostatný NCP
protokol (IPCP, IPXCP, ...)
Obrázok 1-11: vrstvy protokolu PPP
Voliteľnou vlastnosťou protokolu PPP je autentifikácia spojenia. PPP podporuje 2 druhy
autentifikácie
PAP
„password authentication protocol“ poskytuje jednoduchú autentifikáciu pomocou
dvojcestného potvrdenia (Obrázok 1-12). Zariadenie, ktoré sa chce pripojiť, pošle dvojicu
(meno, heslo). Prijímacia strana si overí, či má poslané meno v tabuľke a či má k nemu
rovnaké heslo. Ak sa obidva údaje zhodujú, zariadeniu je povolený prístup. Ak nie, prístup je
zamietnutý.
22
Obrázok 1-12: PAP autentifikácia protokolu PPP
Veľkou nevýhodou PAP je posielanie hesla ako otvoreného textu.
CHAP
„challenge handshake authentication protocol“ je preferovaná metóda autentifikácie
v protokole PPP. Na overenie identity pouţíva trojcestné potvrdenie (Obrázok 1-13). Výzvu
na pripojenie posiela server. Poslaná správa obsahuje ID rámca, náhodné číslo a meno
servera. Zariadenie, ktoré sa chce pripojiť odpovedá správou obsahujúcou ID, „hash“ hodnotu
hesla, ID a náhodného čísla, ktoré prijal, a svoje meno. Server si overí hodnotu „hash“
a prístup buď povolí alebo nie.
Obrázok 1-13: CHAP autentifikácia protokolu PPP
Protokolom CHAP bol odstránený najväčší nedostatok PAP a to absencia ochrany pred
odchytením hesla.
FRAME RELAY
Frame Relay je podobne ako PPP protokol odvodený od HDLC a pracujúci na druhej vrstve
RM OSI. Je to technológia prepínania paketov. Hlavne sa vyuţíva na prepojenie vzdialených
LAN sietí. Sieť Frame-Relay pozostáva z veľkého mnoţstva Frame-Relay prepínačov
(Obrázok 1-14) vo vzdialených oblastiach.
23
Obrázok 1-14: sieť Frame-Relay
Rýchlosť prenosu siete Frame-Relay sa pohybuje v intervale od 2MBps aţ po 40MBps.
Predpokladá nasadenie na kvalitných linkách a preto nezahŕňa kontrolu prenosu. Spolieha sa
na protokoly vyšších vrstiev. Ako náhle nastane chyba, chybný rámec je zahodený. Avšak
obsahuje riadenie zahltenia. Keď sa vstupný „buffer“ prepínača začína zahlcovať, prepínač
posiela rámce (s príznakmi BECN, FECN), slúţiace ako varovanie pre vysielajúce zariadenie,
ţe majú spomaliť vysielanie.
Frame-Relay je zaloţená na virtuálnych kanáloch. Vytvárajú sa dva typy:
PVC – permanentný kanál, vytvorený pred komunikáciou
SVC – kanál vytvorený na poţiadanie. Po ukončení komunikácie je zrušený
Na jednom fyzickom rozhraní môţe existovať aţ 1000 virtuálnych kanálov. Tieto sú od seba
rozlišované identifikátorom kanála (DLCI). Kaţdý identifikátor má len lokálny význam
a preto sa môţe pozdĺţ celého virtuálneho kanála meniť.
Aby mohlo zariadenie začať komunikáciu cez Frame-Relay musí vedieť všetky dostupné
virtuálne kanály, ktoré má k dispozícii. Na to slúţi „Local Management Interface“ (LMI).
Jeho úlohou je:
Zistiť dostupné virtuálne okruhy
Povolenie „multicastu“
Priradenie globálneho významu DLCI (v súčinnosti s „Inverse ARP“)
Overiť existenciu spojenia
Priradenie globálneho významu pre DLCI je vlastne priradenie IP adresy vzdialeného
zariadenia, ku ktorému chceme pristupovať, k lokálne definovanému DLCI. Aby lokálne
zariadenie vedelo, ktorý virtuálny kanál pouţiť. Toto vieme dosiahnuť aj statickým
namapovaním IP adries na DLCI identifikátory.
Pri nasadení technológie Frame-Relay si však musíme dať pozor. Dochádza totiţ
k problémom pri posielaní smerovacích updatov. Virtuálne okruhy sa vytvárajú na jednom
fyzickom rozhraní. Pri prijatí smerovacieho updatu je aplikované pravidlo „split-horizon“
a update nie je poslaný späť na rozhranie, z ktorého prišiel. Rieši sa to buď vypnutím „split-
horizon-u“ alebo vytvorením viacerých logických rozhraní na jednom fyzickom, čo je
odporúčaná metóda. Vypnutie „split-horizonu“ môţe viesť k nekonzistencii smerovacích
tabuliek.
24
1.2. Simulátory a analyzátory počítačových sietí
V tejto časti analýzy predstavujeme voľne dostupné (open-source) a komerčné simulačné
programy počítačových sietí. Podrobnejšie sa venujeme riešeniam, ktoré sú bliţšie k
špecifikácii nášho projektu. Väčšina z nich beţí pod operačným systémom UNIX, ale sú aj
také, ktoré boli preloţené pod OS Windows. Z hľadiska analýzy zdrojového kódu však
operačný systém nehrá veľkú rolu.
V závere je uvedené celkové hodnotenie týchto aplikácií jednak z hľadiska podobnosti k našej
špecifikácii, ako aj prehľadnosti a dostupnosti ich dokumentácie a zdrojového kódu.
1.2.1. Open Source riešenia
Cnet Network Simulator
Cnet je sieťový simulátor, ktorý umoţňuje experimenty s protokolmi linkovej, sieťovej a
transportnej vrstvy. Poskytuje aplikačnú a fyzickú vrstvu RM OSI. Je implementovaný pod
OS Linux a beţí aj v grafickom aj v textovom reţime.
Umoţňuje simuláciu komunikácie len na koncových uzloch a nie je moţná konfigurácia
cesty. Tieto uzly môţu byť koncové zariadenia alebo smerovače. Zaujímavé je zadanie
topológie. Je v textovom formáte pomocou štruktúr a premenných.
Tento simulátor implementuje len malú časť funkcií poţadovaných od nášho produktu. Zo
zdrojového kódu, ktorý je málo komentovaný, by bolo moţné pouţiť len niekoľko štruktúr a
pár funkcií ale aj tie len po úprave.
DummyNet
Tento nástroj bol pôvodne navrhnutý na testovanie sieťových protokolov. Simuluje a
nastavuje limitácie šírky pásma, stratu paketov a implementuje variant "Wighted Fair
Queueing" - WF2Q+. Je pouţiteľný na koncovom uzli alebo na FreeBSD stroji správajúcom
sa ako smerovač alebo most.
Uţ z hore uvedeného opisu je poznať, ţe ani tento nástroj nás nedostal bliţšie k riešeniu.
Neimplementuje totiţ simuláciu siete ale skôr funguje ako analyzátor na uzli v sieti.
NCTUns 1.0 Network Simulator/Emulator
Sieťový simulátor NCTUns 1.0 je verejne prístupný a široko pouţiteľný simulátor rôznych
protokolov pouţívaných v IP sieťach. Je vyvíjaný v univerzitnom prostredí pod operačným
systémom FreeBSD a je prístupný aj jeho zdrojový kód a pouţívateľská príručka.
Momentálne sa pracuje uţ na verzii 2.0, ktorá by mala fungovať aj pod inými operačnými
systémami ako jeho predchodca. Tento produkt vo veľkej miere pokrýva naše poţiadavky a
preto aj bude neskôr rozobraný detailnejšie.
Zdrojový kód je čitateľný a podrobne komentovaný. Dokumentácia obsahuje pouţívateľskú
príručku k aplikácii a k editoru uzlov a prezentácie produktu. Chýba však technická
dokumentácia.
25
Sieťový simulátor NCTUns je veľmi precízny a rozšíriteľný simulátor siete schopný
simulovať rôzne protokoly pouţívané v drôtových a bezdrôtových IP sieťach. Poskytuje veľa
jedinečných výhod, ktoré sa nedajú jednoducho dosiahnuť tradičnými simulátormi ako ns-2
alebo OPNET.
NCTUns bol navrhovaný a implementovaný Prof. S. Y. Wangom a jeho študentmi na
univerzite National Chiao Tung University (NCTU). Vývoj tohto projektu trval viac neţ štyri
roky.
Sieťový simulátor NCTUns má mnoho uţitočných funkcií:
Môţe byť pouţívaný ako emulátor. Externý host z reálneho sveta môţe vymieňať
pakety s uzlami (ako smerovač, host, ...) v sieti simulovanej v NCTUns. Táto
vlastnosť je veľmi uţitočná, pretoţe funkcie a výkon reálneho zariadenia sa dajú
otestovať pri rôznych simulovaných sieťových podmienkach.
Bezprostredne pouţíva TCP/IP protokol jadra operačného systému FreeBSD alebo
Linux pre generovanie veľmi presných simulačných výsledkov.
Môţe pouţívať ľubovoľnú existujúcu UNIXovskú aplikáciu ako generátor trafiky bez
akejkoľvek modifikácie. Toto umoţňuje testovať funkcionalitu a výkon distribuovanej
aplikácie alebo systému. Ďalšou dôleţitou výhodou je, ţe aplikácie vytvorené počas
štúdie simulácie po skončení štúdie sa dajú premiestniť na reálny UNIX-ovský stroj.
Toto ušetrí čas a úsilie potrebné na portovanie simulačného prototypu na reálny
systém.
Je moţné pouţiť ľubovoľné UNIX-ovské konfiguračné a monitorovacie nástroje ako
route, ifconfig, netstat, tcpdump, traceroute, atď.
Keďţe jeho správanie je veľmi podobné reálnym sieťam, je moţné ho pouţiť v štúdiu a
výskume. Študenti ho môţu pouţívať na nacvičenie konfigurovania reálnych sietí. Umoţňuje
simulovať fixný Internet, bezdrôtovú LAN, mobilné "ad hoc" siete, GPRS a optické siete.
Drôtová sieť pozostáva z fixných uzlov a point-to-point spojení. Tradičné optické siete s
prepájaním okruhov a viac vyvinuté OBS (optical burst switching) siete sú tieţ podporované.
Rýchlosť simulácie je vysoká a výsledky simulácie sú opakovateľné.
Program poskytuje pouţívateľovi vysoko integrované profesionálne grafické rozhranie.
Pomáha pouţívateľovi vytvoriť topológiu siete, konfigurovať protokolové moduly pouţívané
v uzloch, špecifikovať cesty mobilných uzlov, získať výkonnostné grafy, spätne prehrať
animácie presunov paketov, atď. Všetky tieto operácie je moţné dosiahnuť veľmi jednoducho
a intuitívne pomocou grafického rozhrania.
NCTUns pouţíva jednoduchú ale efektívnu syntax pre popis nastavení a konfigurácie
simulačných úloh. Tieto opisy sú generované grafickým prostredím a uloţené v súboroch. Za
normálnych okolností sú tieto súbory otvorené grafickým prostredím, ale keď chce
výskumník vyskúšať niektoré svoje nové zariadenia alebo konfigurácie, ktoré súčasné GUI
nepodporuje, môţe GUI obísť pouţitím ľubovoľného textového editora alebo skriptu. Takto
vytvorené súbory je potom moţné manuálne púšťať simulátorom vynechaním grafického
rozhrania.
Podporuje vzdialené a paralelné simulácie. Grafické rozhranie a simulátor sú zvlášť
implementované a pouţívajú model klient-server pre komunikáciu. Preto pouţívateľ môţe
26
vzdialene pristupovať k simulátoru na serveri cez grafické rozhranie u klienta. Server spustí
simuláciu a vráti výsledky grafickému rozhraniu pre analýzu. Takto je moţné vykonávať
simulácie aj paralelne na viacerých serveroch naraz.
NCTUns poskytuje mnoho jedinečných výhod, ktoré nie je moţné dosiahnuť tradičnými
sieťovými simulátormi.
Podporuje rôzne siete:
drôtové (wired) siete s fixnými uzlami a point-to-point spojmi medzi nimi.
bezdrôtové (wireless) siete s mobilnými uzlami a IEEE 802.11(b) bezdrôtovým
sieťovým rozhraním.
Pre IEEE 802.11(b) sú podporované jednak "ad-hoc" tak aj infraštruktúrne metódy.
Dokáţe simulovať zariadenia ako hub, switch, router, host, IEEE 802.11(b) prístupový
bod a rozhranie, atď.
Je pridaná podpora rôznych sieťových protokolov. Pozná protokoly ako IEEE 802.3
CSMA/CD MAC, IEEE 802.11(b) CSMA/CD MAC, samo učiaci sa protokol
pouţívaný u prepínačov, IP, mobilné IP, RIP, OSPF, UDP, TCP, HTTP, FTP, Telnet,
atď.
Neustále sú pridávané ďalšie protokoly, zariadenia aj iné typy sietí. Spomedzi nich sú
dôleţité dva typy sietí a to mobilné siete GSM/GPRS a optické siete.
Podpora emulácie
NCTUns 1.0 je moţné veľmi jednoducho prepnúť do reţimu emulátora. V tomto reţime si
môţu uzly v emulátory vymieňať pakety s uzlami v reálnych sieťach. Takýmto spôsobom sa
dá veľmi jednoducho otestovať funkčnosť a výkon reálneho zariadenia pri rôznych
podmienkach.
Pouţívateľské prostredie
Mocným nástrojom je príjemné grafické pouţívateľské rozhranie, ktoré umoţňuje:
nakresliť sieťovú topológiu
konfigurovať protokolové moduly pouţívané v uzloch
špecifikovať počiatočné umiestnenia a trasu mobilných uzlov
sledovať výkonnostné grafy siete
prehrať animácie logovaných paketových prenosov
Editor topológie
Editor topológie poskytuje vhodný a intuitívny spôsob pre grafické navrhovanie sieťovej
topológie. Vďaka pouţívateľsky príjemnému prostrediu je tvorba jednoduchá a intuitívna.
27
Obrázok 1-15: Editor topológie
Dialógové okno atribútov (Attribute Dialog Box)
Sieťové zariadenie (uzol) môţe mať niekoľko atribútov. Nastavenie a modifikovanie týchto
atribútov prebieha v prehľadných dialógových okienkach.
Obrázok 1-16: Dialógové okno atribútov
Monitor výkonnosti (Performance monitor)
Na výkonnostných monitoroch je moţné sledovať grafy znázorňujúce zaťaţenie linky,
spojenia, priepustnosť, atď.
28
Obrázok 1-17: Monitor výkonnosti
Editor uzlov
Editor uzlov poskytuje vhodné prostredie, v ktorom pouţívateľ môţe flexibilne konfigurovať
protokolové moduly pouţívané v sieťových uzloch. Pouţitím tohto nástroja pouţívateľ môţe
jednoducho pridávať, odoberať alebo nahradzovať moduly svojimi.
Obrázok 1-18: Editor uzlov
29
Prehrávač paketových animácií
Pouţitím prehrávača paketových animácií je moţné počas simulácie nahrané prenosy znovu
prehrať pri nastaviteľnej rýchlosti. Táto vlastnosť grafického rozhrania môţe veľmi pomôcť
študentom porozumieť správanie sa protokolov na jednotlivých uzlov.
Obrázok 1-19: Prehrávač paketových animácií
Prehľad komponentov
Na architektúru NCTUns je moţné prizerať ako na balík pozostávajúci z ôsmych
komponentov.
1. Prvým z nich je grafické rozhranie (ďalej GUI), v ktorom môţe pouţívateľ editovať
topológiu siete, konfigurovať uzly, špecifikovať počiatočné hodnoty, atď.
2. Druhým komponentom je samotný simulátor, ktorý poskytuje základné ale dôleţité
simulačné sluţby ako plánovač udalostí, manaţment časovača, manipulátor paketov,
atď.
3. Tretí komponent pozostáva z mnoţiny protokolových modulov, z ktorých kaţdý
implementuje špecifický protokol alebo funkciu (napr. plánovanie paketov,
manaţment buffera).
4. Plánovač úloh tvorí štvrtú súčiastku balíka. Jeho funkciou je rozdeliť simuláciu medzi
dostupnými servermi.
5. Ďalší komponent - koordinátor - sa nachádza na kaţdom počítači, kde beţí server
simulátora. Proces koordinátor sa zaregistruje u rozdeľovača úloh, vykoná výpočty,
ktoré mu boli pridelené a ktoré sú potrebné pri simulácii a signalizuje plánovaču svoj
stav.
6. Šiestou časťou sú záplaty jadra operačného systému, ktoré sú nutné k správnej funkcii
simulátora na UNIX-ovskom stroji.
7. Nasledujúcim komponentom sú rôzne pouţívateľské aplikácie. Vďaka pouţitej
metodológii (prepojenie simulátora s reálnymi sieťami) je moţné púšťať UNIX-ovské
aplikácie na simulovanej sieti.
30
8. Posledným komponentom sú sluţby operačného systému známe pod názvom - démon,
ktoré beţia počas simulácie. NCTUns poskytuje 2 takéto démony: RIP a OSPF.
The Network Simulator - ns-2
Network Simulator je simulátor diskrétnych udalostí zameraných na výskum siete. Poskytuje
substančnú podporu pre simuláciu TCP, smerovanie, multicast protokolov cez wired alebo
wireless pripojenia. Projekt ako aj prístupná dokumentácia sú veľmi rozsiahle (392 strán).
Prístupné zdrojové kódy a portovateľnosť do MS Windows robia toto riešenie za vhodné na
ďalšiu podrobnejšiu analýzu.
ONE (Ohio Network Emulator)
ONE je nástroj, ktorý umoţňuje emulovať sieť medzi dvoma rozhraniami na pracovnej stanici
Solaris. Tento produkt je veľmi úzko špecializovaný a nevyhovuje našim poţiadavkám. V
zdrojovom kóde (napísané v C) je zbytočné hľadať pouţiteľné časti, keďţe náš projekt je
širšieho zamerania.
REAL 5.0
REAL je simulátor pôvodne vyvinutý pre štúdium dynamického správania sa toku a zahltenia
v dátových sieťach s prepínaním paketov. Poskytuje pouţívateľom špecifikovať také siete a
moţnosť sledovať ich správanie sa. Je prístupný zdrojový kód, takţe je moţné simulátor
prispôsobiť našim poţiadavkám.
Dokumentácia nie je dostatočne rozsiahla v porovnaní s dokumentáciou k aplikácii Network
Simulator. Zdrojový kód je zrozumiteľný s komentárom.
Simured - multicomputer network simulator
Simured je multipočítačový sieťový simulátor. Umoţňuje sledovať pohyb paketov po sieti a
povoľuje aj komplexnejšie simulácie. Grafické prostredie existuje aj pre systémy Windows aj
Linux. Toto bolo napísané o tomto produkte, no keď bol spustený, zobrazené prostredie bolo
zaráţajúce. Tento simulátor je trochu iného zamerania, neţ ten náš projekt a preto hlbšie uţ
analyzovaný nebude.
Dokumentácia je len v španielčine a takisto v kóde sa nachádza len španielsky komentár ale aj
ten len zriedkavo.
1.2.2. Komerčné riešenia
RouterSim Network Visualizer
RouterSim Network Visualizer je komerčný produkt vytvorený pre potreby CISCO akadémie
– stupňa CCNA.
31
Obrázok 1-20: Pracovná plocha RouterSim Network Visualizer-a
Ponúka moţnosť vytvoriť topológiu s neobmedzeným počtom zariadení (plná verzia). Tieto je
moţné vybrať zo skupiny – smerovač Cisco 2600, prepínač Cisco 1900 a 2950 a koncových
pouţívateľských staníc (demo verzia). Vybrané zariadenia je moţné spájať linkami (sériové,
ethernet) jednoduchým kliknutím a následným zvolením druhého konca. Celý program sa
ovláda technikou „drag-n-drop“.
Program ponúka viacero okien, kaţdé zobrazujúce nejaké informácie:
NetConfig – konfigurácie jednotlivých zariadení
Console – konzola pre vstup príkazov na konfiguráciu
NetPacket Monitor – sledovanie paketov putujúcich sieťou
NetDetective – napomáha pri hľadaní problémov zapojenej topológie
Dostupná je len Demo verzia programu, v ktorej bolo moţné vytvoriť topológiu len
z niekoľkých zariadení.
Avšak páči sa nám poňatie celého prostredia. Takisto by sme chceli vytvoriť hlavné okno
s topológiou, konzolu na zadávanie zloţitejších príkazov a okno s dostupnými zariadeniami.
Program tieţ disponuje veľkým počtom „lab-ov“, ktoré slúţia ako príprava na CISCO CCNA,
CCNP testy.
Dodáva sa v 2 verziách: samostatná a sieťová. Rozdiel je v tom, ţe sieťová umoţňuje súčasnú
prácu aţ 255 ľudí v sieťovom prostredí. Nevýhodou tohto programu je jeho komerčné
nasadenie.
Cisco ConfigMaker
Program na konfiguráciu malých sietí obsahujúcich rôznorodé Cisco zariadenia, počnúc
širokou škálou smerovačov, cez prepínače, opakovače aţ po koncové zariadenia ako PC
a pod.
32
Obrázok 1-21: Pracovná plocha Cisco ConfigMaker-a
Na základe vytvorenej topológie generuje konfiguračné súbory pre jednotlivé zariadenia čím
umoţní vytvoriť funkčnú sieť bez potreby znalosti syntaxe Cisco zariadení. Vytváranie
topológie a konfigurácia zariadení je podporená viacerými sprievodcami“. Prechádza sa
postupne všetkými krokmi a zozbierané informácie sú uloţené do výsledného súboru.
1.2.3. Zhodnotenie
Po analýze vyššie uvedených produktov, ich dokumentácie a tieţ zdrojových kódov sme
zistili viaceré skutočnosti.
Je veľmi ťaţké nájsť produkt, ktorý by aspoň do polovičnej miery pokryl všetky poţiadavky
na náš projekt. Zo špecifikácie a dokumentácie najbliţšie pripadali byť REAL, Network
Simulator 2 (NS-2) a NCTUns. Z hore uvedených boli vyskúšané Cnet a Simured. Ostatné
sme neodskúšali buď z dôvodu, ţe nesúviseli s našim projektom, alebo sme narazili na chyby
pri ich kompilácii a binárne verzie neboli k dispozícii.
Podobnosť k nášmu projektu bola hodnotená predovšetkým z opisu a potom zo zdrojového
kódu, kde sa hľadali implementácie niektorých protokolov alebo objektov, ktoré plánujeme
mať v našom projekte.
Dokumentácia bola hodnotená podľa toho, nakoľko sa v nej našli odpovede na naše otázky
ako:
čoho sa týka daná aplikácia?
ako funguje?
ako inštalovať?
ako pouţívať?
ako modifikovať?
V zdrojových kódoch sme hľadali štruktúry a funkcie (metódy), ktoré aspoň z časti súvisia
s naším zadaním. Aţ na projekty REAL, NS-2 a NCTUns ţiadne neobsahovali pouţiteľné
zdrojové kódy. Aj z týchto troch prvé dva len málo toho, čo sa dá u nás pouţiť.
33
Veľmi dobre pokrýval naše poţiadavky sieťový simulátor NCTUns, ktorý je síce funkčný pod
operačným systémom FreeBSD, ale je prístupná k nemu dokumentácia a taktieţ aj kompletný
zdrojový kód. Spôsob implementácie je trochu odlišný našim predstavám, ale tento projekt
nás môţe jednak usmerniť a aj pomôcť pri návrhu a implementácii nášho produktu. Takisto aj
jeden komerčný produkt, RouterSim Network Visualizer, veľmi dobre zohľadňuje väčšinu
poţiadaviek na náš projekt. Cisco ConfigMaker bol vytvorený na úplne odlišnú úlohu, ale
spôsob vytvárania topológie a konfigurácia jednotlivých zariadení je blízky nášmu zadaniu.
Celkový prehľad nášho hodnotenia analyzovaných aplikácií sa nachádza v Tabuľka 1-1.
Hodnotenie pozostáva zo stupnice od 1 po 5, pričom 1 predstavuje najhoršie a 5 najlepšie
hodnotenie.
Názov aplikácie Druh (Open- OS Progr. Príbuznosť k Dokumentá Zdroj.
source / jazyk nášmu cia kód
komerčný) projektu
Cnet NS open-source Linux C 2 3 2
DummyNet open-source FreeBSD 1 - -
NCTUns 1.0 open-source FreeBSD C++ 5 4 3
Simulator ns-2 open-source Unix 4 4 4
ONE open-source Solaris C 1 - 3
REAL 5.0 open-source Unix C 3 3 4
Simured open-source portable C++ 2 1 1
RouterSim komerčný Windows - 5 - -
ConfigMaker Komerčný Windows - 3 4 -
Tabuľka 1-1: prehľad analyzovaných aplikácií
1.3. Simulačné kniţnice
1.3.1. C++ Sim
C++SIM je objektovo orientovaný simulačný balík, napísaný v jazyku C++ postavený na
SIMULE. Podnetom pre jej tvorbu bola pomoc pri simulácii distribuovaného systému
tolerujúceho chyby. Počas tvorby autori určili tieto poţiadavky:
Jednoduchosť osvojenia si a pouţívania
Flexibilita
Efektívnosť
Portabilita
Zoznam obsiahnutých prostriedkov:
Generátory náhodných čísel
Algoritmy zaraďovania do radov
Prerušenia
Štatistické rutiny
Plánovač
Napriek vymenovaným dobrým vlastnostiam v našom projekte tento produkt nevyuţijeme z
dôvodu, ţe nie sú prístupné ţiadne príklady pouţitia pri implementácii počítačovej siete.
34
1.3.2. IKR simulation library
Kniţnica na simuláciu počítačových systémov zaloţená na programovacom jazyku (C++).
Bola vytvorená so zameraním na ocenenie výkonu softvérových systémov a štatistické
vyhodnotenie komunikácie.
Kniţnica obsahuje niekoľko tried vhodných pre toto zadanie:
náhodný generátor
štatistické triedy
rady
Vzhľadom k tomu, ţe v našom projekte sa nebudeme venovať štatistickému vyhodnocovaniu
prebiehajúcej komunikácie nie je táto kniţnica dobrou voľbou.
1.3.3. OOSIM
OOSIM je skratkou pre „Object-Oriented Simulation Library“. Je to kniţnica obsahujúca
moduly určené na simuláciu počítačových sietí na princípe diskrétnych udalostí. Je zaloţená
na programovacom jazyku C++.
Rozširujúca sa kniţnica komponentov umoţňuje vytváranie simulovanej topológie a takisto aj
vnútornej štruktúry uzlov (v zmysle protokolového zásobníka).
V súčasnosti obsahuje tieto moduly:
Generátory zaťaţenia (aj pre špeciálne toky dát ako prenos súborov, prístup
k databáze, ...)
TCP/UDP protokoly transportnej vrstvy RM OSI
Smerovanie cez rôzne podsiete
Implementáciu rôznorodých prístupových metód (ethernet, gigabit ethernet, ...)
Vlastnosti tejto kniţnice ju predurčujú na vyuţitie v zadaní tohto typu. Avšak nepodarilo sa
nám dostať k jej zdrojovým textom.
1.3.4. TINY
Simulačný toolset TINY slúţi na simuláciu modelov diskrétnych systémov, najmä systémov
hromadnej obsluhy.
Toolset je napísaný v jazyku C++ s vyuţitím objektovo orientovaného prístupu (triedy a
objekty; dedičnosť, polymorfizmus a zapuzdrenie). Jeho meno (tiny = drobný, maličký)
naznačuje, ţe zámerom autorov bola jednoduchosť a čitateľnosť zdrojového textu. Vlastnosti
C++ však umoţňujú, aby z neho vyrástol "dospelý" simulátor s profesionálnymi vlastnosťami
Obsahuje kompletnú sadu nástrojov, potrebných pre simuláciu diskrétnych systémov. Z nej sú
pre náš projekt vhodné niektoré z nich:
35
Plánovanie udalostí môţeme vyuţiť pri simulácii práce niektorých distance-vector
smerovacích protokoloch na posielanie pravidelných updatov.
Generátory náhodných čísel by vytvárali náhodné MAC adresy, hodnoty niektorých
parametrov, ...
Rady by tvorili vstupné/výstupné body uzlov topológie.
1.3.5. Zhodnotenie
Všetky zo spomenutých kniţníc ponúkajú pre naše riešenie nejaké triedy vhodné na
implementovanie. Najvhodnejšia sa javí byť kniţnica OOSIM, ku ktorej však nie sú dostupné
zdrojové texty.
Avšak vzhľadom na smerovanie riešenia ako verifikačného nástroja na overenie správnosti
zapojenia a konfigurácie jednotlivých komponentov a nie ako simulátora reálnej komunikácie
v sieti, nepredpokladáme vyuţitie ţiadnej z týchto kniţníc.
1.4. Analýza implementačného prostredia
V nasledujúcej časti sa budeme venovať analýze vhodných programovacích jazykov
z pohľadu moţností, ktoré daný jazyk poskytuje a dostupných vývojových prostriedkov.
Keďţe aplikácia bude vytvorená pre operačný systém Microsoft Windows v analýze sa
zameriame na vývojové jazyky pod tento operačný systém.
1.4.1. Programovacie jazyky
C/C++
Jazyk C++ vychádza z jazyka C a rozširuje ho o objektovo orientované vlastnosti. Jazyk C++
priniesol moţnosti preťaţenia funkcií a metód, vytvorenie operátorov, novšie funkcie pre
dynamické prideľovanie pamäti a mnoho ďalších vylepšení, ktoré sa v tradičnom jazyku C
nenachádzajú.
Pre jednoduchší vývoj Windows aplikácií vytvoril Microsoft kniţnicu MFC (Microsoft
Foundation Classes), ktorá poskytuje mnoţstvo uţitočných C++ tried potrebných pri
vytváraní Windows aplikácií.
C#
Uvedený v roku 2000 firmou Microsoft ako nový programovací jazyk pre platformu .NET.
Jazyk C# je jednoduchý, moderný, objektovo orientovaný a typovo bezpečný. Jeho syntax je
podobná jazyku C++. Spúšťanie aplikácií napísaných v jazyku C# je riadené pomocou
„Common Language Runtime“ (CLR), ktorá zabezpečuje nezávislosť na hardwarovej
platforme.
36
Ďalším prínosom oproti C++ je riadenie pamäte pomocou „garbage collector“. V C# aplikácii
nie je nutné dávať pozor na alokovanú pamäť. O uvoľňovanie tejto pamäte sa stará „garbage
collector“.
Java
Je produktom firmy Sun. Aplikácie vytvorené v tomto jazyku vyţadujú od operačného
systému nainštalovaný „Java Runtime Environment“ (JRE), ktorý umoţňuje spustenie
aplikácie na danom operačnom systéme.
Java je podobne objektovo orientovaný a typovo bezpečný jazyk ako jazyk C#. Taktieţ má
implementovaný „garbage collector“, čiţe vytvorená aplikácia sa nemusí starať o alokovanú
pamäť. Výhodou oproti jazyku C# je moţnosť prenositeľnosti vytvorenej aplikácie na
platformu alebo operačný systém, pre ktorý existuje JRE.
1.4.2. Vývojové prostredia:
Pri vývoji aplikácií treba uvaţovať aj o kvalitných vývojárskych nástrojoch. V súčasnosti
existuje mnoţstvo nástrojov pre tvorbu aplikácií s rôznymi funkciami vývojového prostredia.
Jedným z lídrov na poli vývojových prostredí je firma Microsoft s platformou .NET alebo
starším „Visual Studio“.
Microsoft Visual Studio 6.0
Prostredie poskytuje vytváranie projektov, ladenie vytvorenej aplikácie, zvýrazňovanie
zdrojového kódu, automatické doplňovanie výrazov a prehliadač tried.
Pre MFC projekty umoţňuje pouţiť tzv. „ClassWizard“, ktorý generuje niektoré časti
zdrojového kódu aplikácie čím uľahčuje ich tvorbu.
Pre vytváranie pouţívateľských rozhraní je k dispozícii nástroj pre tvorbu okien pomocou
drag and drop.
Microsoft Visual Studio .NET
Je nástupcom predošlého prostredia a môţeme tu nájsť podobné nástroje ako vo VS 6.0. Toto
vývojové prostredie je orientované na platformu .NET, v ktorej je moţnosť vytvorenie
aplikácie v kombinácii rôznych programovacích jazykov.
Borland JBuilder
Podobne ako predošlé prostredia aj „JBuilder“ obsahuje vytváranie projektov, ladenie
vytvorenej aplikácie, zvýrazňovanie zdrojového kódu, automatické doplňovanie výrazov
a prehliadač tried.
37
Celé prostredie je napísané v Jave preto vyţaduje výkonnejší hardware, ale prínosom je
dostupnosť prostredia aj na iných operačných systémoch a hardwarových platformách.
Borland C++ Builder
Je vývojové prostredie podobné „MS Visual Studiu“. Poskytuje podobné moţnosti, čo sa týka
spríjemnenia písania kódu a ladenia aplikácií. Neobsahuje síce „class wizard“,
ale poskytuje kontrolu pri editovaní v reálnom čase. Podobne ako VS poskytuje MFC, Builder
má svoju kniţnicu VCL (Visual Component Library) pre jednoduchý návrh grafických
aplikácií. Obrovskou výhodou oproti MS Visual Studiu je moţnosť vytvárania vlastných (aj
grafických) komponent, ktoré do značnej miery zjednodušujú vytváranie okien. Ďalšia veľmi
dôleţitá výhoda je poskytnutie "property" objektu, cez ktoré je moţné jednoducho a
prehľadne sprístupniť funkcie alebo premenné danej triedy.
Napriek všetkým výhodám tohto prostredia ho nepouţijeme z dôvodu, jeho nedostupnosti v
softvérovom štúdiu a tieţ nie všetci členovia tímu s ním majú skúsenosti.
1.4.3. Zhodnotenie
Z predošle spomenutých jazykov je pre náš tím najvhodnejším jazyk C++ v kombinácii
s kniţnicou MFC. Faktorom pri výbere tohto jazyka bola dostupnosť vývojového prostredia,
kde pri vývoji sieťového simulátora bude postačovať prostredie „Visual Studio 6.0“, ktoré je
dostupné v softwarovom štúdiu. Taktieţ sme brali do úvahy znalosť jednotlivých jazykov
členmi tímu.
1.5. Ukladanie údajov
Pri práci s aplikáciami tohto druhu je výhodou moţnosť uloţenia a neskoršieho načítania
vytvorenej topológie spoločne s nastavenými parametrami. Existuje mnoho prístupov ako sa
dajú potrebné dáta ukladať. V tejto sekcii opíšeme niektoré z moţných prístupov ukladania
dát.
1.5.1. textový súbor
Poskytuje jednoduchú moţnosť zápisu dát z aplikácie. Nevýhodou tohto spôsobu ukladania
dát je moţné načítanie nekorektných dát, ktoré môţe byť spôsobené zásahom pouţívateľa.
Preto je nutné v aplikácii implementovať funkciu na zistenie správnosti uloţených dát, ktorá
môţe byť značne komplikovaná a vzniká tu nutnosť prerábanie tejto funkcie pri kaţdej zmene
formátu výstupných dát, čo do značnej miery komplikuje rozšíriteľnosť vytvorenej aplikácie.
1.5.2. binárny súbor
Má podobnú nevýhodu ako textový súbor, kde je nutné implementovať funkciu na zistenie
správnosti uloţených dát. Výhodou oproti textovému súboru je “skrytie“ uloţených dát do
binárnej formy.
38
1.5.3. XML súbor
Slúţi na popísanie dát v štruktúrovanej forme. Táto štruktúra sa dá jednoducho meniť.
V prípade potreby validácie vstupných dát poskytuje XML vyuţitie schém XSD, v ktorých je
jasne definovaný formát štruktúry XML súboru ako aj správnosti uloţených dát. Pri
implementácii XML súborov do aplikácie existuje moţnosť vyuţiť existujúce kniţnice/triedy,
ktoré slúţia na načítanie a validáciu dát.
1.5.4. Zhodnotenie
Pre jednoznačné výhody oproti spomenutým spôsobom ukladania dát sme sa rozhodli pouţiť
pre ukladanie výstupných dát XML súbory.
39
2. Špecifikácia poţiadaviek
V tejto kapitole opíšeme jednotlivé poţiadavky kladené na výsledný produkt projektu
z pohľadu poskytovaných funkcií, vstupov, výstupov a pouţívateľského rozhrania.
2.1. Riešený problém
Projekt je zameraný na vytvorenie aplikácie, ktorá bude schopná vytvoriť topológiu
počítačovej siete s moţnosťou nastavenie vlastností jednotlivých prvkov v topológii. Pre
samotné simulovanie bude aplikácia obsahovať mnoţinu overovacích nástrojov, ktoré
umoţnia vizualizovať simuláciu pouţívateľovi.
Aplikácia má poskytovať mnoţinu základných prvkov počítačovej siete:
koncové zariadenie (host)
prepínač (switch)
smerovač (router)
prepojovací kábel, linka (link)
firewall
web server
Vlastnosti týchto prvkov by mali byť ľahko modifikovateľné.
2.2. Prehľad funkcií navrhovanej aplikácie.
Celková funkcionalita je rozdelená do viacerých častí.
2.2.1. Vytvorenie sieťovej topológie
Aplikácia má umoţniť pouţívateľovi jednoduchým spôsobom vytvoriť topológiu počítačovej
siete. Jej grafickú reprezentáciu s moţnosťou úpravy vzhľadu tejto reprezentácie.
Pouţívateľovi by malo byť z tejto grafickej reprezentácie zrejmé aké prvky siete sa
nachádzajú v topológii, prípadne by táto grafická reprezentácia obsahovala aj ďalšie
relevantné informácie týkajúce sa vlastností .
2.2.2. Nastavenia prvkov siete
Funkcia systému, ktorá umoţní pouţívateľovi nastaviť parametre prvkov v topológii.
Nastavenie týchto vlastností by malo byť pre pouţívateľa jednoduché, intuitívne a malo by
odzrkadľovať spôsoby nastavovania vlastností v reálnych sieťových zariadeniach.
2.2.3. Simulácia komunikácie a jej vizualizácia
Pre overenie komunikácie vo vytvorenej topológii má mať aplikácia vytvorenú mnoţinu
overovacích nástrojov. Pre niektoré prvky siete by mala aplikácia poskytovať nasledovné
overovacie nástroje:
40
Koncové zariadenie (host)
Tento uzol reprezentuje koncové zariadenie, ktoré má niekoľko vlastností (IP adresa, MAC
adresa, ...) a jeho úlohou je jednoduché overenie funkčnosti siete pomocou rodiny
verifikačných nástrojov ako napríklad:
ping – jednoduchý nástroj pre overenie komunikácie medzi koncovými zariadeniami
traceroute – nástroj pre sledovanie putovania paketov v topológii medzi koncovými
zariadeniami
HTTP – nástroj pre overenie komunikácie koncového zariadenia s webovým serverom
FTP – nástroj pre overenie komunikácie koncového zariadenia s FTP serverom
Prepínač (switch)
Jeho úlohou je prepínanie paketov na základe prepínacej tabuľky a manaţment VLAN.
Informácie o týchto činnostiach by malo poskytovať niekoľko funkcií ako napríklad:
switching table – táto funkcia umoţní zobrazenie aktuálnej prepínacej tabuľky vo
formáte MAC adresa, port
show VLAN - funkcia zobrazí informácie o VLAN
show Mac-address-table – funkcia zobrazí informácie o MAC adresách
show STP-status – funkcia zobrazí status s ohľadom na STP
Smerovač (router)
Úlohou smerovača je preposlanie paketu na základe adresy tretej vrstvy RM OSI. S touto
úlohou súvisia poţiadavky na funkcie smerovača ako napríklad:
show IP route – funkcia, ktorá zobrazí smerovaciu tabuľku
show IP protocols – funkcia, ktorá zobrazí informácie o nakonfigurovaných
smerovacích protokoloch
RIP, OSPF, EIGRP – funkcie, ktoré nastavia smerovací protokol
Firewall
Slúţi ako bezpečnostný prvok topológie a to filtrovaním prechádzajúcich dát. Toto filtrovanie
prebieha na druhej a tretej vrstve referenčného modelu, to znamená MAC adresy a IP adresy.
Takisto umoţňuje blokovanie konkrétnych aplikácií prostredníctvom filtrovania portov
prislúchajúcich k aplikácii.
2.2.4. Uloţenie topológie
Táto funkcia aplikácie má umoţniť pouţívateľovi uloţiť vytvorenú topológiu spoločne
s nastavenými parametrami jednotlivých prvkov topológie a taktieţ umoţniť takto uloţenú
topológiu opätovne nahrať do aplikácie.
2.3. Diagram prípadov pouţitia
Diagram zachytáva funkcionality systému z pohľadu pouţívateľa.
41
pridanie uzla zmazanie uzla premiestnenie uzla kopirovanie uzla
nakreslenie topologie
konfigurovanie uzla
(nastavovanie)
nacitanie topologie
Pouzivatel
ulozenie topologie
simulacia
simulacia pouzitim "ping" simulacia pouzitim simulacia pouzitim aplikacie
"traceroute" (na konkretnom porte)
Obrázok 2-1: diagram prípadov pouţitia
Pouţívateľ v našom prípade predstavuje učiteľa alebo študenta, keďţe aplikácia bude v prvom
rade pouţívaná pri výučbe.
2.3.1. Prípady použitia (use-case)
Identifikátor UC_SS01
Názov Pridanie uzla – routera – do topológie
Opis Pouţívateľ v editori topológie pridá uzol do sieťovej topológie
Priorita 1 = vysoká Frekvencia vo fáze vytvárania topológie - často
Vstup. podm. Nie sú
Výstup. podm. Nie sú
Základná Krok Činnosť
postupnosť 1 Pouţívateľ klikne na obrázok routera v paneli.
2 Kurzor sa zmení na ikonu routera.
42
3 Klikne v okne editora topológie na miesto kde to chce poloţiť.
4 Na mieste kliknutia sa objaví obrázok routera a kurzor myšky
sa zmení na šípku.
Alternatívna Krok Činnosť
postupnosť
3a Pouţívateľ podrţí tlačítko „Ctrl“ pri kliknutí v okne editora
topológie.
4a Na mieste kliknutia sa objaví obrázok routera a kurzor myšky
má naďalej ikonu routera.
Alternatívna Krok Činnosť
postupnosť
1b Pouţívateľ podrţí ľavé tlačítko myšky na obrázku routera
v paneli.
2b Pri kurzore sa zjaví ikona routera.
3b Pouţívateľ potiahne ikonu na plochu v okne editora topológie
na miesto kde to chce poloţiť a spustí tlačítko.
4b Na mieste spustenia tlačítka sa objaví obrázok routera a kurzor
myšky sa zmení na šípku.
Poznámky
Identifikátor UC_SS02
Názov Premiestnenie uzla – routera – v editori topológie
Opis Pouţívateľ premiestni existujúci uzol pri editovaní sieťovej topológie
Priorita 1 = vysoká Frekvencia vo fáze vytvárania topológie - často
Vstup. podm. Sieťový uzol – router – je uţ poloţený na hárku v editori topológie
Výstup. podm. Nie sú
Základná Krok Činnosť
postupnosť 1 Pouţívateľ podrţí ľavé tlačítko myšky na vybranom uzli –
routeri v editori.
2 Pri kurzore myšky sa zjaví obrázok routra.
3 Pouţívateľ potiahne kurzor na nové miesto routera a uvolní
tlačítko.
4 Obrázok routera sa posúva kurzorom a po spustení tlačítka
zostane na novom mieste.
5 Ak bol router spojený s inými uzlami linkami, linky zmenia
svoj koncový bod tieţ, aby naďalej bolo znázornené spojenie
s routerom na novom mieste.
Alternatívna Krok Činnosť
postupnosť
1a Pouţívateľ klikne na vybraný router a stlačí „Ctrl+X“.
2a Vybraný router zmizne z hárku spolu s linkami, ktoré boli
s ním spojené a uloţí sa do schránky.
3a Pouţívateľ premiestni kurzor na nové miesto v editori a stlačí
„Ctrl+V“.
4a Na mieste kurzora sa objaví router s pôvodnými vlastnosťami
avšak bez liniek.
Alternatívna Krok Činnosť
postupnosť
43
1aa Pouţívateľ klikne pravým tlačítkom na vybraný router a z menu
si vyberie poloţku „move“.
3ab Pouţívateľ premiestni kurzor na nové miesto v editori, klikne
pravým tlačítkom a vyberie poloţku „paste“.
Poznámky
Identifikátor UC_SS03
Názov Skopírovanie uzla – routera – v editore topológie
Opis Pouţívateľ skopíruje existujúci uzol pri editovaní sieťovej topológie
Priorita 1 = vysoká Frekvencia vo fáze vytvárania topológie - často
Vstup. podm. Sieťový uzol – router – je uţ poloţený na hárku v editori topológie
Výstup. podm. Nový sieťový uzol – router – zdedí vlastnosti po kopírovaní
Základná Krok Činnosť
postupnosť 1 Pouţívateľ podrţí ľavé tlačítko myšky na vybranom uzli –
routeri v editori.
2 Pri kurzore myšky sa zjaví obrázok routra.
3 Pouţívateľ potiahne kurzor na nové miesto routera a pri
spustení tlačítka myšky ma stlačené „Ctrl“.
4 Obrázok routera sa posúva kurzorom a po spustení tlačítka sa
zjaví aj na novom mieste.
5 Nový router zdedí všetky vlastnosti originálu, nezdedí však
spojenia existujúce pri pôvodnom.
Alternatívna Krok Činnosť
postupnosť
1a Pouţívateľ klikne na vybraný router a stlačí „Ctrl+C“.
2a Do clipboardu sa uloţí vybraný router.
3a Pouţívateľ premiestni kurzor na nové miesto v editori a stlačí
„Ctrl+V“.
4a Na mieste kurzora sa objaví router s pôvodnými vlastnosťami
bez liniek originálu.
Alternatívna Krok Činnosť
postupnosť
1aa Pouţívateľ klikne prvým tlačítkom na vybraný router a z menu
si vyberie poloţku „copy“.
3ab Pouţívateľ premiestni kurzor na nové miesto v editori, klikne
pravým tlačítkom a vyberie poloţku „paste“.
Poznámky
Identifikátor UC_SS04
Názov Zmena vlastností uzla
Opis Pouţívateľ zmení vlastnosti uzla (ako jeho pomenovanie, beţiaci
protokol, ...)
Priorita 1 = vysoká Frekvencia často
Vstup. podm. Sieťový uzol je uţ poloţený na hárku v editori topológie
Výstup. podm. Vybraný uzol sa bude správať podľa nových vlastností
Základná Krok Činnosť
postupnosť 1 Pouţívateľ klikne dvakrát na daný uzol na hárku.
44
2 Zjaví sa dialógové okno s vlastnosťami uzla.
3 Pouţívateľ zmení niektoré vlastnosti v okne.
4 Pouţívateľ potvrdí zmeny kliknutím na „OK“.
5 Dialógové okno sa zatvorí. Systém uloţí potvrdené zmeny.
Alternatívna Krok Činnosť
postupnosť
1a Pouţívateľ klikne pravým tlačítkom na daný uzol na hárku
a vyberie poloţku „vlastnosti“ z menu.
4b Pouţívateľ zamietne zmeny kliknutím na „Zrušiť“.
5b Dialógové okno sa zatvorí. Zmeny nebudú aplikované.
Poznámky
Identifikátor UC_SS05
Názov Spojenie dvoch uzlov
Opis Pouţívateľ spojí 2 uzly v editori topológie
Priorita 1 = vysoká Frekvencia vo fáze vytvárania topológie - často
Vstup. podm. Existencia aspoň dvoch uzlov v topológii, ktoré ešte nie sú spojené
Výstup. podm. Nie sú
Základná Krok Činnosť
postupnosť 1 Pouţívateľ klikne na obrázok „linky“ na paneli.
2 Pri kurzore sa zjaví obrázok linky.
3 Pouţívateľ klikne na prvý uzol.
4 Zafixuje sa jeden koniec linky na vybraný uzol.
5 Pouţívateľ klikne na druhý uzol.
6 Zafixuje sa druhý koniec linky a vybrané dva uzly sú spojené
linkou.
Alternatívna Krok Činnosť
postupnosť
3a Pouţívateľ podrţí ľavé tlačítko myšky na prvom uzli.
5a Pouţívateľ potiahne kurzor na druhý uzol a spustí tlačítko
myšky.
Poznámky
Identifikátor UC_SS06
Názov Odstránenie uzla z topológie
Opis Pouţívateľ odstráni nepotrebný uzol alebo linku z topológie
Priorita 1 = vysoká Frekvencia vo fáze vytvárania topológie - často
Vstup. podm. Existencia uzla (linky) na hárku
Výstup. podm. Odstránením uzla odstránia sa aj linky, ktoré boli s ním spojené
Základná Krok Činnosť
postupnosť 1 Pouţívateľ klikne na uzol v editori topológie a stlačí „Del“
2 Vybraný uzol sa odstráni z hárku aj so všetkými linkami, ktoré
boli s ním spojené.
Alternatívna Krok Činnosť
postupnosť
1a Pouţívateľ klikne prvým tlačítkom na vybraný uzol a z menu si
vyberie poloţku „remove“.
45
Poznámky
Identifikátor UC_SS07
Názov Uloţenie nakreslenej topológie
Opis Pouţívateľ uloţí nakreslenú nakonfigurovanú topológiu
Priorita 1 = vysoká Frekvencia zriedkavo
Vstup. podm. Nie sú
Výstup. podm. Vznikne súbor s topológiou siete
Základná Krok Činnosť
postupnosť 1 Pouţívateľ vyberie z menu „File“/ „Save“.
2 Ak sa majú uloţiť len zmeny (súbor uţ existuje) , uloţí sa
topológia siete do existujúceho súboru.
Alternatívna Krok Činnosť
postupnosť
2a Ak súbor ešte neexistuje, zobrazí sa dialógové okno ponúkajúce
miesto (cestu) a názov súboru.
3a Pouţívateľ si vyberie miesto a názov súboru a uloţí topológiu.
Alternatívna Krok Činnosť
postupnosť 2
1b Pouţívateľ stlačí „Ctrl+S“.
Poznámky
Identifikátor UC_SS08
Názov Načítanie uloţenej topológie
Opis Pouţívateľ načíta z disku uloţenú topológiu
Priorita 1 = vysoká Frekvencia zriedkavo
Vstup. podm. Existuje uloţená topológia na disku
Výstup. podm. Na hárku sa zobrazí topológia siete presne taká, aká bola pri uloţení
Základná Krok Činnosť
postupnosť 1 Pouţívateľ vyberie z menu „File“/ „Load“
2 Zobrazí sa dialógové okno zobrazujúce obsah počítača.
3 Pouţívateľ si vyberie svoj súbor obsahujúci poţadovanú
topológiu.
4 Na hárku sa zobrazí topológia siete v tom výzore, ako bola
uloţená.
Alternatívna Krok Činnosť
postupnosť
1a Pouţívateľ stlačí „Ctrl+L“.
Poznámky
Identifikátor UC_SS09
Názov Ping uzla z koncového bodu – hostu
Opis Pouţívateľ simuluje funkčnosť topológie príkazom ping
Priorita 1 = vysoká Frekvencia stredná
Vstup. podm. Je nakreslená uţ funkčná topológia (aspoň 2 prepojené uzly)
Výstup. podm. Nie sú
46
Základná Krok Činnosť
postupnosť 1 Pouţívateľ klikne na uzol – koncový bod (host) pravým
tlačítkom a z menu si vyberie poloţku „console“.
2 V spodnej časti okna sa zobrazí konzola.
3 Pouţívateľ zadá príkaz ping a ip cieľového uzla a potvrdí
„enter“-om.
4 Systém odpovie „ping successfull“ v prípade, ţe je cieľový uzol
dosiahnuteľný z daného koncového bodu alebo „ping failed“,
ak je cieľový uzol nedosiahnuteľný alebo neexistujúci.
Alternatívna Krok Činnosť
postupnosť
2a Zjaví sa nové okno – konzola.
Poznámky
Identifikátor UC_SS10
Názov TraceRoute uzla z koncového bodu – hostu
Opis Pouţívateľ simuluje funkčnosť topológie príkazom traceroute
Priorita 1 = vysoká Frekvencia stredná
Vstup. podm. Je nakreslená uţ funkčná topológia (aspoň 2 prepojené uzly)
Výstup. podm. Nie sú
Základná Krok Činnosť
postupnosť 1 Pouţívateľ klikne na uzol – koncový bod (host) pravým
tlačítkom a z menu si vyberie poloţku „console“.
2 V spodnej časti okna sa zobrazí konzola.
3 Pouţívateľ zadá príkaz traceroute a ip cieľového uzla a potvrdí
„enter“-om.
4 Systém vylistuje zoznam ip čísiel uzlov, ktoré padnú do cesty a
„destination reached“ v prípade, ţe je cieľový uzol
dosiahnuteľný z daného koncového bodu alebo zoznam IP
adries k default gateway ukončený s textom „destination not
found“, ak je cieľový uzol nedosiahnuteľný alebo neexistujúci.
Alternatívna Krok Činnosť
postupnosť
2a Zjaví sa nové okno – konzola.
Poznámky
Identifikátor UC_SS11
Názov Spustenie aplikácie na zvolenom porte na vybranom uzli
Opis Pouţívateľ simuluje funkčnosť topológie spúšťaním aplikácie pracujúcej
na konkrétnom porte
Priorita 1 = vysoká Frekvencia stredná
Vstup. podm. Je nakreslená uţ funkčná topológia (aspoň 2 prepojené uzly)
Výstup. podm. Nie sú
Základná Krok Činnosť
postupnosť 1 Pouţívateľ klikne na uzol – koncový bod (host) pravým
tlačítkom a z menu si vyberie poloţku „start application“.
2 Zobrazí sa dialógové okno, ktoré ponúkne výber spomedzi
47
portov (aplikácií), ktoré je moţné z vybraného uzla spustiť a
kolónku na zadanie cieľového uzla.
3 Pouţívateľ zadá IP adresu (alebo meno) cieľového uzla
a vyberie si port (aplikáciu). Potvrdí tlačítkom „OK“.
4 Ak je moţné naviazať komunikáciu na vybranom porte medzi
zdrojovým a cieľovým uzlom, Simulator nám oznámi úspech:
„Success“ v opačnom prípade neúspech: „Connection failed“.
Poznámky
2.3.2. Scenáre
Scenár č.1: Nakreslenie topológie
Situácia: Pouţívateľ chce vytvoriť cvičnú topológiu siete pre neskoršie simulovanie.
Opis: Pouţívateľ spustí aplikáciu, ktorá má na začiatku prázdny hárok. Aplikácia poskytne
panel nástrojov pouţívateľovi, z kade si on vyberie tie typy uzlov, ktoré chce mať vo svojej
sieťovej topológii. Tieto uzly – routre, switche, hostov, atď. rozmiestni na hárku a pospája
linkami. Po dokončení návrhu ponastavuje vlastnosti jednotlivých uzlov. Podobným
spôsobom si nastaví vlastnosti liniek. Keď dokončil svoju prácu, vyberie si z menu „Save“
(Uloţenie topológie) a svoju prácu uloţí na disk pre neskoršie pouţitie.
Scenár č.2: Simulácia uloţenej topológie 1. (ping)
Situácia: Pouţívateľ chce si vyskúšať funkčnosť sieťovej topológie uloţenej na disku. Má
spustenú aplikáciu s prázdnym hárkom.
Opis: Pouţívateľ si vyberie z menu „Load“ (Načítanie topológie) a takto si načíta z disku uţ
vytvorenú a ponastavovanú topológiu siete. Otvorí konzolu na vybranom koncovom uzli
pravým kliknutím a výberom „console“ z ponuky. V spodnej časti okna aplikácie (v novom
okne) sa zjaví konzola vybraného uzla, kam pouţívateľ môţe zadávať svoje príkazy.
Pouţívateľ zadá príkaz ping s ip cieľového uzla a potvrdí „enter“-om. V konzole sa zjaví
„ping successfull“, lebo cieľový uzol bol dosiahnuteľný z daného bodu. Pouţívateľ zadá ping
s ip, ktoré v danej topológii sa nenachádza alebo nie je z daného bodu dosiahnuteľný. Po
potvrdení príkazu sa v konzole zjaví odpoveď „ping failed“.
Scenár č.3: Simulácia uloţenej topológie 2. (traceroute)
Situácia: Pouţívateľ chce si vyskúšať funkčnosť sieťovej topológie sledovaním cesty
paketov. Má spustenú aplikáciu s funkčnou topológiou.
Opis: Pouţívateľ otvorí konzolu na vybranom koncovom uzli. Do konzoly zadá príkaz
traceroute a ip cieľového počítača. Po potvrdení sa v konzole zjavia ip čísla uzlov po ktorých
sa paket dostane do cieľa a na konci výpis „destination reached“. Keď cieľový uzol neexistuje
alebo nie je dosiahnuteľný, zjavia sa ip čísla uzlov po uzol gateway a ak cieľový uzol sa
nenašiel, zjaví sa výpis „destination not found“.
2.4. Vstupy, výstupy
Jediným vstupom, resp. výstupom aplikácie je uloţená topológia v súbore.
2.5. Pouţívateľské rozhranie
Aplikácia by mala zaručiť jednoduché, prehľadné pouţívateľské rozhranie. Jednoduchosť by
mala byť zabezpečená jednoznačnosťou ovládacích prvkov a prehľadnosť by malo zaručovať
48
rozloţenie ovládacích prvkov. Má poskytovať jednoduchú manipuláciu s prvkami topológie
spoločne s rýchlou odozvou na príkazy od pouţívateľa.
2.6. Technické poţiadavky
Aplikácia by mala byť spustiteľná na 400MHz počítači s nainštalovaným operačným
systémom Windows. Pamäťové nároky sú závislé od počtu prvkov vytvorenej topológie.
Predpokladáme vyuţitie vytvoreného projektu ako pomocný nástroj pre výučbu predmetov
Počítačové siete 1, 2, kde sa nepracuje s rozsiahlymi topológiami.
49
3. Hrubý návrh
Táto kapitola sa zaoberá hrubým návrhom simulátora sieťovej komunikácie. V prvej časti
kapitoly sú opísané dátové typy a objekty, ktoré sme doposiaľ identifikovali ako potrebné pri
implementácii. V druhej časti kapitoly je systém dekomponovaný na mnoţinu čiastočne
nezávislých častí.
3.1. Dátové typy a objekty
3.1.1. Objekt prepojovací kábel, linka (link)
Objekt linka bude slúţiť na prepojenie medzi ostatnými prvkami siete. Bude mať svoje
jedinečné identifikačné číslo ID. Ďalšími vlastnosťami objektu sú ukazatele na prvky, ktoré sú
spojené týmto objektom. Taktieţ bude objekt definovať prenosovú rýchlosť, ktorá bude
definovaná ako minimum z prednastavenej rýchlosti pre daný typ linky (10, 100 Mbps,
1Gbps) a rýchlosti podporovanej portami na oboch koncoch linky.
Vlastnosti objektu:
ID – jednoznačný identifikátor linky reprezentovaný číslom
rýchlosť – definuje prenosovú rýchlosť linky
pointer na prvok siete na jednom konci linky
pointer na prvok siete na druhom konci linky
typ – definuje typ linky, ktorá môţe byť: sériová, ethernet (straight, cross, rollover),
optika
3.1.2. Objekt koncové zariadenie (host)
Objekt koncové zariadenie bude obsahovať vlastnosť MAC adresa. Táto adresa sa vygeneruje
pri vytvorení objektu. Pre sprehľadnenie vygenerovaných MAC adries bude adresa
generovaná podľa typu uzla v topológii (host, router, switch).
Vlastnosti:
ID – jednoznačný identifikátor objektu
IP adresa – nastaviteľná vlastnosť objektu, ktorá uchováva IP adresu daného
koncového zariadenia
MAC adresa – obsahuje MAC adresu pre dané koncové zariadenie, táto vlastnosť sa
nedá modifikovať
Meno hosta – jedinečné meno, reprezentujúce koncové zariadenie,
Subnet maska – maska siete
Default gateway – adresa
ID linky – ukazateľ na pripojenú linku
ARP tabuľka (cache)
50
3.1.3. Objekt prepínač (switch)
Objekt prepínač bude mať prednastavené počty portov, ktoré sa pouţívajú v praxi (5, 8, 12,
24). Taktieţ bude mať vytvorenú prepínaciu tabuľku, ktorá sa bude napĺňať počas
komunikácie na sieti. Pre implementáciu VLAN bude prepínač obsahovať tabuľku pre
definovanie príslušnosti do VLAN na základe portov prípadne MAC adries.
Vlastnosti:
ID – jednoznačný identifikátor objektu
Počet portov – definuje počet dostupných portov v danom prepínači
Trunk – definuje či daný prepínač podporuje trunkovanie
Prepínacia tabuľka – (dvojice MAC – port - príslušnosť do VLAN)
Bridge priority – atribút potrebný pri spanning tree algoritme
Pole ID liniek – ukazatele na pripojené linky k danému prepínaču
3.1.4. Objekt smerovač (router)
Objekt smerovač bude obsahovať zoznam štruktúr jednotlivých interfejsov pre daný
smerovač. Objekt bude obsahovať tabuľky potrebné pre implementovanie Access Control
List. Štruktúra a počet týchto tabuliek sa upresní v celkovom návrhu aplikácie.
Vlastnosti:
ID – jednoznačný identifikátor objektu
MAC adresa – jednotlivých rozhraní
IP adresa
rozhrania (sériové, ethernet)
o ID – identifikátor rozhrania
o IP adresa – adresa pridelená rozhraniu
o MAC adresa – adresa pridelená rozhraniu
o zapnutý/vypnutý – určuje či je dané rozhranie zapnuté respektíve vypnuté
Smerovacia tabuľka
ACL (Access Control List) na porty, IP, ...
Pole ID liniek ukazatele na pripojené linky k danému smerovaču
3.1.5. Objekt paket (packet)
Objekt paket bude niesť okrem IP adries aj VLAN Tag, ktorý bude identifikátorom
príslušnosti do VLAN, Taktieţ bude mať vlastnosť TTL ( time to live ) na zabránenie
nekonečnému obiehaniu paketu v sieti. V prípade poţiadavky na spustenie aplikácie na
vzdialenom servery aj identifikátor aplikácie.
Vlastnosti:
ID – jednoznačný identifikátor objektu
Zdrojová IP adresa
Cieľová IP adresa
VLAN Tag
51
TTL (time to live)
ID aplikácie (ftp,http)
Smerovacie a prepínacie tabuľky budú mať svoje stanovené veľkosti a v prípade ich
zaplnenia sa niektorým zo známych algoritmov (LRU, FIFO, ...) vyberie obeť a aţ potom sa
pridá nový záznam.
3.2. Diagram tried
Nasledujúci diagram zachytáva štruktúru tried, rozhraní a spoluprác spolu s ich vzájomnými
vzťahmi.
topologia
linka
pracuje s
paket uzol
host switch internet
router
(oblak)
firewall
Obrázok 3-1: Zjednodušený diagram tried
Diagram na Obrázok 3-2 znázorňuje vlastnosti niektorých tried. Tieto vlastnosti boli
popísané v predošlej časti dokumentu.
52
linka
topologia ID
rychlost
koniec 1
paket koniec 2
ID typ
IP adresa zdroja
IP adresa ciela uzol
MAC adresa zdroja ID
MAC adresa ciela meno
VLAN tag
TTL
ID aplikacie
host switch router
ID ID
ID
IP adresa porty
meno
MAC adresa meno
rozhrania
meno trunk
smerovacia tabulka
subnet maska prepinacia tabulka
ACL
"Default gateway" "Bridge priority"
pole ID liniek
ARP tabulka pole ID liniek
ID linky
Obrázok 3-2: Diagram tried s niektorými vlastnoťami objektov
3.3. Stavový diagram
Stavový diagram je prostriedok na vyjadrenie kauzálnych a časových súvislostí akcií a stavov
v systéme.
3.3.1. Stavový diagram objektu paket
Zobrazuje stavy, ktorými prechádza paket od vytvorenia aţ po úspešné doručenie, alebo
zahodenie.
53
zaciatocny stav
vytvorenie
paketu
vyslanie z
uzla
koniec 1
prijem v
uzle
je v cieli
spracovanie
v uzle
koniec 2
nema sa
kde poslat
Obrázok 3-3: Stavový diagram paketu
3.3.2. Stavový diagram objektu uzol
Zobrazuje stavy, ktorými prechádza uzol od vytvorenia aţ po zrušenie, prípadne uloţenie do
topológie.
54
zaciatocny stav
nakonfigurovanie
uzla
pridanie
uzla
cakanie
ulozenie
topologie
pridanie
linky koniec
nacitanie
topologie
Obrázok 3-4: Stavový diagram uzlu
3.4. Sekvenčný diagram
Znázorňuje interakcie medzi objektmi v časovej postupnosti.
55
Obrázok 3-5: Sekvenčný diagram
3.5. Graf ţivotného cyklu
Opisuje časovú následnosť jednotlivých funkcií zvolenej dátovej entity. Kaţdá z entít má
rovnaký graf, ale správajú sa nezávisle.
56
Obrázok 3-6: graf ţivotného cyklu
3.6. Diagram činností
Je to špeciálny typ stavového diagramu modelujúci tok práce
57
zaciatocny stav
pracuj
nacitaj zo pridaj
suboru uzol
[existuje uzol] [neexistuje uzol]
[existuju 2 neprepojene uzly]
spoj 2 uzly nastav vlatnosti
linkou (konfiguruj)
[chcem ulozit]
uloz
[nechcem ulozit] topologiu
[ chcem skoncit ]
[nechcem koncit]
[chcem modifikovat topologiu] [chcem simulovat] simuluj
Obrázok 3-7: Diagram činností
3.7. Dekompozícia systému
Riešenie problému simulácie sa dá zjednodušiť, ak daný problém dôkladne preskúmame a
pokúsime sa identifikovať relatívne nezávislé časti, moduly navrhovaného systému.
Simulátor sieťovej komunikácie moţno rozdeliť na tieto, nezávislé časti:
Verifikácia vstupnej topológie
Tvorba topológie
Simulačný proces
Používateľské rozhranie
3.7.1. Verifikácia vstupnej topológie
Proces overenia správnosti vstupných súborov s uloţenou topológiou siete. Tento proces sa
vykoná vţdy pri nahraní uloţenej topológie do aplikácie. Keďţe vstupný súbor bude vo forme
XML tento proces bude moţné implementovať pomocou funkcií XML parsera a XSD schém.
3.7.2. Tvorba topológie
Aplikácia bude obsahovať návrhársku plochu, na ktorú sa budú umiestňovať prvky topológie.
Po uloţení prvku na túto plochu sa daný prvok inicializuje na prednastavené hodnoty,
v prípade potreby sa vygeneruje MAC adresa a systém poskytne pouţívateľovi moţnosti na
ďalšie nastavenie jeho vlastností. Pre vytvorenie spojníc medzi prvkami bude systém
58
poskytovať grafické znázornenie prepoja, kde pouţívateľ pomocou kurzora označí začiatok
a koniec prepoja v topológii.
3.7.3. Simulačný proces
Tento proces sa vykoná pri pouţití overovacích nástrojov. Nebude sa jednať o spojitú
simuláciu posielania paketov, tak ako to je v reálnych sieťach. V tomto simulačnom procese
bude systém zohľadňovať všetky potrebné algoritmy, ktoré sa podieľajú na sieťovej
komunikácii.
3.7.4. Používateľské rozhranie
Grafické rozhranie, ktoré zabezpečuje komunikáciu s pouţívateľom. Umoţňuje pouţívateľovi
nastavovať vlastnosti prvkov siete ako aj zmenu štruktúry topológie.
Znázorňuje povolené prechody medzi stavmi, v ktorých sa môţe nachádzať skúmaný objekt.
59