Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Aplikácia pre analýzu a spracovanie základných typovprotokolov komunikačných sietí
DIPLOMOVÁ PRÁCA
Bc. MICHAL PTAČIN
ŽILINSKÁ UNIVERZITA V ŽILINEElektrotechnická fakultaKatedra telekomunikácií
Študijný odbor: TELEKOMUNIKÁCIE
Vedúci diplomovej práce: Ing. Vladimír Pšenák
Stupeň kvalifikácie: inžinier (Ing.)Dátum odovzdania diplomovej práce: 18. 5. 2007
ŽILINA 2007
ABSTRAKT
Cieľom tejto práce je vytvoriť aplikáciu, ktorá analyzuje log súbory obsahujúce
datagramovu komunikáciu. V teoretickej časti diplomovej práce je popísaný základ,
z ktorého bolo vychádzané pri návrhu aplikácie. Teoretická časť obsahuje popis referenčného
modelu jeho jednotlivých vrstvy z ktorých sa skladá a ich úlohy. Ďalej sú tu popísané
vybrané protokoly niektorých vrstiev, modelovací jazyk UML a CORBA štandard. Praktická
časť oboznamuje s používateľským rozhraním, nastaveniami vytvorenej aplikácie
a s výsledkami aké je možné aplikáciou získať.
ABSTRACT
The aim of this diploma thesis is to create application, which analyzes log files of packet
communication. In the theoretical part of this thesis is described base needed for creation of
application. Theoretical part contains description of the reference model, its individual layers
and their tasks. Further, there are described selected protocols of some layers, modeling
language UML and CORBA standard. Practical part deals about user interface, settings of
created application and about results which can be achieved by this application.
Žilinská univerzita v Žiline, Elektrotechnická fakulta,Katedra telekomunikácií
________________________________________________________________________
ANOTAČNÝ ZÁZNAM - DIPLOMOVÁ PRÁCA
Priezvisko, meno: Ptačin Michal školský rok: 2006 / 2007 Názov práce: Aplikácia pre analýzu a spracovanie základných typov protokolov komunikačných sietí
Počet strán: 54 Počet obrázkov: 28 Počet tabuliek: 5
Počet grafov: 0 Počet príloh: 7 Použitá lit.: 15
Anotácia v slovenskom jazyku: Táto diplomová práca sa v teoretickej časti zaoberá popisom referenčného modelu
OSI, vybranými protokolmi niektorých vrstiev, jazykom UML a CORBA štandardom.
Praktická časť práce pozostáva z popisu, použitia a nastavenia vytvorenej aplikácie
analyzujúcej log súbory.
Anotácia v anglickom jazyku: The theoretical part of this diploma thesis is focused on description of the reference
model OSI, selected protocols of some layers, language UML and CORBA standard. The
practical part consists of description, usage and setting of created application which analyzes
log files.
Kľúčové slová: Referenčný model, HDLC, PPP, IP, TCP , UDP, FTP, GIOP, IIOP, UML, CORBA, analýza log súboru
Vedúci práce: Ing. Vladimír Pšenák
Recenzent práce :
Dátum odovzdania práce: 18.5.2007
OBSAH1. Úvod ..................................................................................................................................... 1 2. Referenčný model OSI (RM OSI) ......................................................................................... 2
2.1. Základné funkcie vrstiev RM OSI .................................................................................. 3 2.2. Popis a použitie vybraných protokolov jednotlivých vrstiev .......................................... 5
2.2.1.HDLC a PPP, protokoly linkovej vrstvy...................................................................52.2.2.IP, protokol sieťovej vrstvy.................................................................................... 112.2.3.TCP a UDP, protokoly transportnej vrstvy.............................................................172.2.4.FTP, protokol aplikačnej vrstvy..............................................................................23
3. UML (Unified Modeling Language) ................................................................................... 26 3.1. Diagramy UML ............................................................................................................. 27
3.1.1.Diagram tried ......................................................................................................... 283.1.2.Diagram objektov ...................................................................................................293.1.3.Diagram prípadov použitia..................................................................................... 303.1.4.Diagram stavov....................................................................................................... 313.1.5.Sekvenčný Diagram................................................................................................ 323.1.6.Diagram spolupráce................................................................................................ 333.1.7.Diagram aktivít....................................................................................................... 333.1.8.Diagram komponentov............................................................................................343.1.9.Diagram nasadenia..................................................................................................35
4. Distribuované objektové systémy ........................................................................................ 36 4.1. Základné črty a vlastnosti ............................................................................................. 36 4.2. CORBA ........................................................................................................................ 37
4.2.1.Štruktúra architektúry CORBA...............................................................................384.2.2.ORB (Object Request Broker)................................................................................ 404.2.3.IDL (Interface Definition Language)......................................................................404.2.4.DII (Dynamic Invocation Interface) a DSI (Dynamic Skeleton Interface).............404.2.5.GIOP (General Inter Orb Protocol).........................................................................414.2.6.IIOP (Internet Inter Orb Protocol).......................................................................... 424.2.7.Komunikácia v architektúre CORBA..................................................................... 42
5. Aplikácia pre analýzu log súborov ..................................................................................... 44 5.1. Používateľské rozhranie ............................................................................................... 44 5.2. Nastavenie a vzorová analýza ..................................................................................... 46
5.2.1.Analýza bez zadania filtračných podmienok.......................................................... 465.2.2.Analýza so zadanými filtračnými podmienkami.................................................... 475.2.3.Vzorová analýza .....................................................................................................50
5.3. Možnosti rozšírenia aplikácie a znovu použitie tried ................................................... 50 5.3.1.Možnosti rozšírenia aplikácie................................................................................. 515.3.2.Znovu použitie tried ...............................................................................................51
6. Záver .................................................................................................................................... 52
7. Zoznam použitej literatúry: .................................................................................................. 53
Zoznam obrázkov a tabuliek
Tabuľka 2.1 Kategórie reprezentujúce typ prenášaných dát [2]............................................ 16Tabuľka 2.2 Voliteľné položky [2].......................................................................................... 20Tabuľka 4.3 Správy protokolu GIOP vysielané klientom [12]................................................41Tabuľka 4.4 Správy protokolu GIOP vysielané serverom [12]............................................... 42Tabuľka 5.5 Štruktúra zadávania podmienok.......................................................................... 48
Obrázok 2.1 Vrstvy referenčného modelu OSI [1]....................................................................2Obrázok 2.2 Štruktúra rámca HDLC [2]....................................................................................6Obrázok 2.3 Štruktúra poľa I rámca [2].....................................................................................7Obrázok 2.4 Štruktúra poľa S rámca [2]....................................................................................7Obrázok 2.5 Pole U rámca [2]................................................................................................... 8Obrázok 2.6 Štruktúra rámca protokolu PPP [4]..................................................................... 10Obrázok 2.7 Štruktúra datagramu IP protokolu verzie 4. [6]................................................. 12Obrázok 2.8 Príznaky fragmentácie [2]................................................................................... 13Obrázok 2.9 Štruktúra datagramu IP protokolu verzie 6. [7].................................................. 15Obrázok 2.10 Štruktúra TCP segmentu [2]..............................................................................18Obrázok 2.11 Pole príznakov TCP segmentu [2].................................................................... 19Obrázok 2.12 Štruktúra UDP segmentu [2].............................................................................22Obrázok 3.13 Príklad použitia diagramu triedy [15]............................................................... 29Obrázok 3.14 Príklad použitia diagramu objektov [15]...........................................................30Obrázok 3.15 Príklad použitia diagramu prípadu použitia...................................................... 31Obrázok 3.16 Príklad použitia diagramu stavov [15].............................................................. 32Obrázok 3.17 Príklad použitia sekvenčného diagramu............................................................33Obrázok 3.18 Príklad diagramu spolupráce.............................................................................33Obrázok 3.19 Príklad diagramu aktivít [14]........................................................................... 34Obrázok 3.20 Príklad diagramu komponentov [14]................................................................ 34Obrázok 3.21 Príklad diagramu nasadenia [15].......................................................................35Obrázok 4.22 Moduly architektúry CORBA [11]................................................................... 38Obrázok 4.23 Volanie vzdialenej implementácie objektu [13].............................................. 42Obrázok 5.24 Užívateľské rozhranie aplikácie pre analýzu .log súborov............................... 45Obrázok 5.25 Príklad zadania podmienok............................................................................... 48Obrázok 5.26 Príklad zapísania viacerých podmienok v súbore............................................. 48 Obrázok 5.27 Výsledok analýzy pre jednotlivé podmienky a ich vyhodnotenie................... 49Obrázok 5.28 Súhrn správne a nesprávne vyhodnotených datagramov pre každú podmienku..................................................................................................................................................49
ZOZNAM POUŽITÝCH SKRATIEK
Skratka Anglický výraz Slovenský ekvivalent
ARP Address Resolution Protocol Protokol konvertujúci IP adresu na fyzickú adresu
ATM Asynchronous Transfer Mode Asynchrónny prenosový mód
CCITT International Telephone and Telegraph Consultative Committee
Medzinárodná organizácia definujúca štandardy pre telefónne a telegrafické zariadenia
CORBA Common Object Request Broker Architecture
Prostriedok pre komunikáciu v distribuovanom heterogénnom prostredí
DCOM Distributed Component Object Model
Distribuovaný objektový model
DII Dynamic Invocation Interface Dynamické volanieDSI Dynamic Skeleton Interface Dynamicky vytvorená kostra
objektuDSL Digital Subscriber Line Digitálne účastnícke vedenieFDDI Fiber Distributed Data
InterfaceOptické distribuované dátové rozhranie
FTP File Transfer Protocol Protokol prenosu súborovGIOP General Inter ORB Protocol Všeobecný protokol zabezpečujúci
komunikáciu. medzi objektmi ORBHDLC High-Level Data Link Control Vysokoúrovňový protokol pre
riadenie dátového spojeniaHTTP Hypertext Transport Protocol Hypertextový prenosový protokolCHAP Challenge Handshake
Authentication ProtocolProtokol na overenie inicializačnej výzvy
ICMP Internet Control Message Protocol
Internetový kontrolný protokol, zasielajúci správy
IDL Interface Definition Language Jazyk pre definíciu rozhraniaIGMP Internet Group Management
ProtocolInternetový skupinový riadiaci protokol
IIOP Internet Inter-Orb Protocol Protokol zabezpečujúci komunikáciu. medzi objektmi ORB
internet protokolom
IP Internet Protocol Internetový protokolIPTV Internet Protocol Television Televízne vysielanie šírené internet
protokolomIPv6 Internet Protocol version 6 Internetový protokol verzia 6ISO International Organization for
StandardizationMedzinárodná organizácia pre štandardizáciu
ITUT International Telecommunications Union
Medzinárodná telekomunikačná únia
LAN Local Area Network Lokálna počítačová sieťLCP Link Control Protocol Linkový kontrolný protokolMAN Metropolitan Area Network Mestská počítačová sieťMIME Multipurpose Internet Mail
ExtensionsŠpecifikácia pre pripojovanie iných než textových objektov k správam elektronickej pošty
MTU Maximum Transmission Unit Maximálna veľkosť prepravovaného datagramu
NCP Network Control Protocol Sieťový kontrolný protokolNetBIOS Network Basic Input/Output
SystemSystém firmy Microsoft umožňujúci pomenovanie zariadení v lokálnej sieti
NFS Network Filesystem Sieťový súborový systémOMG Object Management Group Zoskupenie objektovo -
orientovaných firiemORB Object Request Broker Sprostredkovateľ žiadostí objektuOSPF Open Shortest Path First Hierarchický smerovací algoritmusPAP Password Authentication
ProtocolProtokol overujúci pravosť hesla
PPP Point-to-Point Protocol Bod - bod protokolPPPoE PPP over Ethernet PPP cez EthernetQoS Quality of Service Kvalita službyRIP Routing Information Protocol Smerovací protokolRM OSI Reference Model Open
Systems InterconnectionReferenčný model pre prepojenie otvorených systémov
RMI Remote Method Invocation Vyvolanie vzdialenej metódyRTP Real-time Transport Protocol Protokol pre. prenos dát v reálnom
časeSDP Session Description Protocol Spojenie popisujúci protokol
SFTP Secure File Transfer ProtocolZabezpečený protokol pre prenos súborov
SLIP Serial Line Internet Protocol Internetový protokol pre sériovú linku
SNMP Simple Network Management Protocol
Jednoduchý protokol na správu siete
SSL Secure Socket Layer Protokol slúžiaci k zabezpečeniu bezpečnej komunikácie
TCP Transmission Control Protocol Prenosový riadiaci protokolTTL Time To Live Zostávajúca doba života datagramuUDP User Datagram Protocol Protokol pre datagramovú obsluhuUML Unified Modeling Language Zjednotený modelovací jazykUMTS Universal Mobile
Telecommunications SystemUniverzálny pohyblivý telekomunikačný systém
VoIP Voice over Internet Protocol Hlas prenášaný internet protokolom
XDR eXternal Data Representation Interpretácia externých dát
1. Úvod V období okolo roku 1970 s vývojom komunikačných sietí nastala potreba definovať
jednotný štandard architektúry sieťou spojených systémov. Medzinárodná štandardizačná
organizácia (ISO) a Medzinárodná organizácia definujúca štandardy pre telefónne a
telegrafické zariadenia (CCITT) spojili svoje sily a v roku 1984 bol publikovaný štandard -
Referenčný model pre prepojenie otvorených systémov RM OSI (Reference Model Open
Systems Interconnection ), ktorý sa skladá zo 7 vrstiev. Je to súbor noriem , ktoré sú potrebné
pre výmenu informácií medzi systémami. Pre komunikáciu medzi systémami sú využívané
komunikačné protokoly. Protokol je súbor pravidiel, ktoré určujú syntax a sémantiku
prenášaných dát. Každá vrstva má sadu protokolov, ktoré sú využívané v závislosti od služby
aká je požadovaná.
V teoretickej časti diplomovej práce je v druhej kapitole popísaný referenčný model jeho
jednotlivé vrstvy z ktorých sa skladá a ich úlohy. Ďalším bodom tejto kapitoly je popis
a štruktúra vybraných protokolov niektorých vrstiev. Nasledujúca kapitola je prídavkom
k diplomovej práci a obsahuje krátke oboznámenie s modelovacím jazykom UML (Unified
Modeling Language). Štvrtá kapitola je venovaná objektovému distribuovanému systému
CORBA, jeho popisu a využitiu.
Cieľom praktickej časti práce bolo vytvoriť aplikáciu pre analýzu a spracovanie log
súborov. Táto aplikácia má uľahčiť analýzu zachytenej komunikácie medzi viacerými
modulmi základňovej stanice v univerzálnej mobilnej telekomunikačnej sieti UMTS
(Universal Mobile Telecommunication System). Pomocou programu Ethereal je zachytávaná
datagramova komunikácia medzi modulmi a ukladaná do log súboru, ktorý je potom
analyzovaný. Pri návrhu aplikácie sa vychádzalo zo štruktúry jednotlivých protokolov
definovaných v teoretickej časti. Aplikácia má používateľské menu v ktorom je možné si
zobraziť obsah log súboru, uskutočniť filtráciu na základe definovaných podmienok
užívateľom a uloženie získaných výsledkov do súboru. Aplikácia je vytvorená v objektovo
orientovanom programovacom jazyku Java. Keďže nové protokoly pribúdajú pomerne často,
triedy aplikácie sú vytvorené tak aby boli ľahko doplniteľné.
1
2. Referenčný model OSI (RM OSI)V tejto kapitole diplomovej práce je popísaný RM OSI a je tu uvedená stručná
charakteristika vrstiev, z ktorých sa skladá. V ďalšej podkapitole sú dopodrobna rozobrané
vybrané protokoly niektorých vrstiev, ktoré boli určené v zadaní diplomovej prace.
Referenčný model OSI model navrhla medzinárodná štandardizačná organizácia ISO
(International Organization for Standardization). Je to na vrstvách založený abstraktný model
týkajúci sa výmeny informácii medzi otvorenými systémami a ich prepojením.
Model funkčne rozdeľuje protokoly do siedmich vrstiev s rôznymi funkciami ako je
znázornené na obrázku 2.1. Každá vrstva má dve rozhrania, s nižšou a vyššou susediacou
vrstvou, pričom najvyššia vrstva má rozhranie k používateľskému systému a najnižšia vrstva
k prenosovému médiu. Každá vrstva poskytuje služby vrstve nad ňou a vyžaduje služby od
vrstvy pod ňou.[1]
Vrstvový protokol
Otvorený systém A Otvorený systém BAplikačná vrstva <———> Aplikačná vrstva
Prezentačná vrstva <———> Prezentačná vrstvaRelačná vrstva <———> Relačná vrstva
Transportná vrstva <———> Transportná vrstvaSieťová vrstva <———> Sieťová vrstvaLinková vrstva <———> Linková vrstva Fyzická vrstva <———> Fyzická vrstva
Prenosové médiumObrázok 2.1 Vrstvy referenčného modelu OSI [1]
Pre komunikáciu medzi vrstvami dvoch otvorených systémov sú využité komunikačné
protokoly, ktoré sprostredkovávajú výmenu dát medzi systémami. Jednotlivé vrstvy
používajú rôzne typy protokolov v závislosti od funkcionality aká je požadovaná.
V nasledujúcej podkapitole sú charakterizované všetky vrstvy RM OSI.
2
2.1. Základné funkcie vrstiev RM OSI
Fyzická vrstvaTáto vrstva zaisťuje prenos bitov z jedného zariadenia na druhé pomocou fyzického média,
ktoré leží pod fyzickou vrstvou a nie je súčasťou OSI modelu. Ďalšími úlohami fyzickej
vrstvy je elektrické a fyzické prispôsobenie na prenosové médium, aktivácia a deaktivácia
prenosovej cesty a multiplexing, kde na jednom prenosovom médiu môže byť viacero
logických spojení. Fyzická vrstva je závislá na výbere technológie siete (Ethernet,
Asynchrónny prenosový mód ATM (Asynchronous Transfer Mode), Opticke distribuované
dátové rozhranie FDDI (Fiber Distributed Data Interface)) ale protokolovo je nezávislá.
Linková vrstvaZaisťuje prístup k zdieľanému prenosovému médiu a zabezpečuje adresáciu v jednom
sieťovom segmente, v rámci ktorého musí mat jedinečnú fyzickú adresu. Ďalšími úlohami
linkovej vrstvy je poskytovanie logických spojení vyššej vrstve, zabezpečenie prenášaných
dát proti chybám, synchronizácia medzi vysielačom a prijímačom pomocou ohraničenia
rámca (Flag) .[1] Najznámejšie protokoly linkovej vrstvy sú: Ethernet, 802.11 (WiFi), Token
Ring, FDDI, ATM, Bod - bod protokol PPP(Point-to-Point Protocol), Vysoko úrovňový
protokol pre riadenie dátového spojenia HDLC (High-level Data Link Control) , protokol pre
sériovú linku SLIP (Serial Line Internet Protocol) .
Sieťová vrstvaÚlohou sieťovej vrstvy je prepojenie ľubovoľných terminálov nie len v rámci jednej sieti ale
celosvetovo. K identifikácii volané ho terminálu je definovaná sieťová adresa. [1] Informácie
od vyšších vrstiev sú balené do datagramov. Na základe sieťovej adresy sú datagramy
prenášané do prislúchajúceho smeru. Sieťová vrstva ďalej zaisťuje výber vhodnej cesty cez
medziľahlé uzly, segmentáciu/desegmentáciu, kontrolu toku dát a tiež postupný prenos
jednotlivých datagramov po tejto trase od pôvodného odosielateľa až ku koncovému
príjemcovi. [10] Nosným protokolom je internetový protokol IP(Internet Protocol) verzie 4
alebo 6 a na ňom sú založené ďalšie protokoly sieťovej vrstvy ako internetový kontrolný
3
protokol ICMP(Internet Control Message Protocol), riadiaci protokol IGMP (Internet Group
Management Protocol) a konvertujúci protokol ARP(Address Resolution Protocol) .
Transportná vrstvaTáto vrstva vytvára, riadi a ukončuje spojenie ako celok , pre prenos dát medzi navzájom
komunikujúcimi stranami. [1] Ďalej zaisťuje spoľahlivosť a kvalitu prenosu akú požadujú
vyššie vrstvy pomocou dvoch typov služieb:
• Spojovo orientovaná služba (connection-oriented). zaisťuje spoľahlivý prenos tak,
že počas celej komunikácie je naviazané virtuálne spojenie. Strany si taktiež
navzájom číslujú a potvrdzujú prijaté segmenty na základe čoho sú schopné
odhaliť stratu segment a žiadať o opakovanie jeho prenosu.
• Nespojovo orientovaná služba (connectionless) slúži k jednoduchému odosielaniu
dát. Nijako nezabezpečuje spoľahlivosť prenášaných dát a je na vyšších vrstvách
ako zaistia spoľahlivosť prenosu.
Hlavnými predstaviteľmi protokolov transportnej vrstvy sú prenosový riadiaci protokol
TCP(Transmission Control Protocol) a protokol pre datagramovú obsluhu UDP(User
Datagram Protocol).
Relačná vrstvaÚlohou tejto vrstvy je uskutočňovanie, udržovanie a rušenie relácií medzi koncovými
účastníkmi. Pri nadväzovaní spojenia si táto vrstva vyžiada na transportnej vrstve vytvorenie
spojenia, prostredníctvom ktorého potom prebieha komunikácia medzi účastníkmi relácie.
Určuje taktiež druh komunikačného vzťahu, ktorý môže byť jednostranný, striedajúci sa
alebo s rovnakým oprávnením. [1] Príkladom protokolov relačnej vrstvy je protokol
umožňujúci pomenovanie zariadení v lokálnej sieti NetBIOS (Network Basic Input/Output
System), spojenie popisujúci protokol SDP(Session Description Protocol).
Prezentačná vrstvaTato vrstva sa zaoberá väzbou medzi syntaxou a sémantikou dát. [1] Rozličné systémy
používajú rôzne kódy prezentácie znakových reťazcov, čísel s plávajúcou čiarkou apod.
Prezentačná vrstva zabezpečuje prevod dátových štruktúr medzi syntaxou použitou na
príslušnom systéme a všeobecnou syntaxou. Ďalšou funkciou prezentačnej vrstvy je
4
konverzia prenášaných dát do formátu zrozumiteľného pre prijímacie zariadenie
(šifrovanie/dešifrovanie, kompresia).[1] Príkladom protokolov prezentačnej vrstvy je
špecifikácia pre pripojovanie iných než textových objektov k správam elektronickej pošty
MIME (Multipurpose Internet Mail Extensions ), interpretácia externých dát XDR (eXternal
Data Representation), protokol slúžiaci k zabezpečeniu bezpečnej komunikácie SSL (Secure
Socket Layer) .
Aplikačná vrstvaPomocou aplikačnej vrstvy môžu užívatelia alebo aplikácie bežiace na danom zariadení
vidieť výsledky služieb zaisťovaných všetkými predchádzajúcimi vrstvami. Dáta vytvárané
užívateľom sú prenášané programom v jeho internom formáte a sú kódované do
štandardného protokolu, ktorý je potom spracovaný nižšími vrstvami a transportovaný sieťou
k adresátovi. Aplikačná vrstva ďalej musí zabezpečovať prenos informácii, identifikovanie
komunikačného partnera, určenie pripravenosti ku komunikácii, požiadavky na potrebné
prevádzkové prostriedky a požiadavky na kvalitu služby. [1] Príkladom protokolov
aplikačnej vrstvy sú: hypertextový prenosový protokol HTTP (Hypertext Transport
Protocol), protokol prenosu súborov FTP (File Transfer Protocol), Telnet, sieťový súborový
systém NFS (Network Filesystem) , protokol pre prenos dát v reálnom čase RTP (Real-time
Transport Protocol).
2.2. Popis a použitie vybraných protokolov jednotlivých vrstiev
V nasledujúcich podkapitolách sú bližšie špecifikované vybrané protokoly linkovej,
sieťovej, transportnej a aplikačnej vrstvy. Sú to protokoly HDLC a PPP linkovej vrstvy, IP
sieťovej vrstvy, TCP a UDP transportnej vrstvy a FTP aplikačnej vrstvy.
2.2.1. HDLC a PPP, protokoly linkovej vrstvy
HDLC (High-Level Data Link Control) protokolHDLC je bitovo orientovaný synchrónny protokol linkovej (dátovej) vrstvy vyvinutý
Medzinárodnou štandardizačnou organizáciou ISO. Hlavnou úlohou HDLC protokolu pri
prenose informácií je detekcia chýb a riadenie toku dát. Je veľmi rozšírený, pretože
podporuje polo duplexnú a plne duplexnú prevádzku, ďalej podporuje spojovo ako
5
i nespojovo orientovanú službu a prepojenia typu bod-bod, bod–viacej bodov. Procedúry
v HDLC sú navrhnuté tak aby zabezpečili transparentný synchrónny prenos dát. Na obr.2.2,
je znázornená štruktúra rámca HDLC.
F A C I FCS F8 bitov 8 bitov 8 alebo 16 bitov Premenlivá dĺžka 16 alebo 32 bitov 8 bitov
Obrázok 2.2 Štruktúra rámca HDLC [2]
Popis polí rámca HDLC
F (Flag) - Dĺžka návestnej značky je 8 bitov a jeho štruktúra je definovaná nasledovne
01111110 (0x7e) . Každý rámec na linkovej vrstve musí začínať aj končiť touto značkou. Ak
nasledujú dva rámce za sebou je potrebné len jedno ohraničenie, ktoré pre predchádzajúci
blok je koncovým a súčasne je začiatočným pre nasledujúci rámec. Poradie bitov
zodpovedajúce návestnej značke sa nesmie vyskytovať v prenášanom dátovom toku, pretože
by mohlo byť nesprávne vyhodnotené ako ohraničenie rámca. Ak v prenášanej správe sa
vyskytne sekvencia 01111110 a nie je to návestná značka, je použité dopĺňanie bitu do tejto
sekvencie (bit stuffing), aby prijímač rozoznal danú sekvenciu od návestnej značky. Ak
vysielač detekuje, že bude posielať 5 za sebou idúcich jednotiek vloží za ne bit hodnoty 0,
aby predišiel tomu že prijímač bude túto sekvenciu považovať za návestnú značku. Na
prijímacej strane prijímacia stanica preverí prichádzajúci rámec. Ak nájde 5 za sebou idúcich
1 pozerá na ďalší bit. Ak je 0, vyberie ho preč. Návestné značky sú vysielané aj v takom
prípade, ak nie sú k dispozícii žiadne dáta na prenos, čím sa zabezpečuje, že linka ostáva
aktívna.
A (Address) - Dĺžka adresného poľa je 8 bitov. Adresa identifikuje vysielaciu alebo
prijímaciu stanicu, ktoré komunikujú medzi sebou. Rozlišujeme adresné pole príkazu
(Command) a odpovede (Response). Príkaz vždy obsahuje adresu stanice, pre ktorú je určený
a oznámenie obsahuje vždy vlastnú adresu, adresu príkazcu.
C (Control) - Dĺžka kontrolného poľa je 8 alebo 16 bitov. Označuje typ rámca, typ príkazu
a oznámenia. Mód, kedy je použitých 16 bitov je nazývaný rozšírený a umožňuje použiť
6
očíslovanie rámcov v rozsahu od 0-127, pričom ak sa táto hodnota presiahne začína sa
počítať opäť od 0. Mód pre číslovanie rámcov, kedy sú použité 3 bity je rozsah od 0- 8 a platí
rovnaké pravidlo že po prekročení sa začína opäť počítať od 0.
Rozlišujú sa tri typy HDLC rámcov I, S, U:
• I rámce transportujú (viď obr. 2.3) dáta vrstvy 3 a taktiež môžu prenášať aj
niektoré riadiace informácie, ako napríklad potvrdenie prijatých rámcov.
7 6 5 4 3 2 1 0 bitN (R) P N (S) 0
Obrázok 2.3 Štruktúra poľa I rámca [2]
N(R) je vysielacie poradové číslo a N(S) je prijímacie poradové číslo rámca. Ak je
P (Poll) bit nastavený na hodnotu 1 tak vysielacia stanica vyžaduje potvrdenie
práve vyslaného bloku pomocou S rámca s F(Final) = 1. Ak je P bit rovný 0 tak
prijímacia stanica môže tento rámec potvrdiť buď S alebo I blokom. [1]
• S rámce (viď obr. 2.4) slúžia k riadeniu komunikácie. Potvrdzuje správne prijaté
rámce, nesie príkazy alebo odpovede, ktoré oznamujú ďalší postup.
7 6 5 4 3 2 1 0 bitN (R) P/F S S 0 1
Obrázok 2.4 Štruktúra poľa S rámca [2]
S rámec obsahuje prijímacie poradové číslo N(R), bit P/F, a dva S bity. Bit P/F
(Poll/Final – Výzva/Koniec) slúži na vytvorenie dialógu medzi komunikujúcimi
stranami. Hlavná stanica používa P=1, čím vyzýva podriadenú stanicu na
odpoveď. Podriadená stanica odpovedá na P bit prenosom dát s F= 1. F bit môže
byť využitý v NRM (spomenuté nižšie) ako signál ukončujúci spojenie
s podriadenou stanicou. Ak v S príkaze bit P = 0, príslušnej odpovedi na tento
príkaz musí byť F = 0. [1] Bity S na pozícii 3 a 2, reprezentujú jeden
z nasledujúcich príkazov resp. odpovedí:
7
o RR (Receiver Ready) – Prijímacia stanica informuje vysielaciu stanicu, že je
pripravená prijímať I rámce a taktiež môže byť vyslaná ako potvrdenie čísla
správne prijatého rámca. Taktiež môže byť vyslaný ako správa signalizujúca,
že linka je voľná.
o RNR (Receiver Not Ready) – Prijímacia stanica informuje vysielaciu stanicu,
že prijímač z neznámeho dôvodu nie je schopný prijímať I- rámce. Zároveň
však potvrdzuje doposiaľ prijaté rámce.
o REJ (Reject) – Prijímacia stanica informuje, že v prijatom rámci sa vyskytli
chyby a žiada o opätovné vyslanie rámca. [2]
• U rámce (viď obr. 2.5) nie sú číslované a preto ich prenos nie je zabezpečený. Sú
použité na výstavbu, rozpad logického spojenia medzi vrstvami 2, nastavenie
módu prenosu.
7 6 5 4 3 2 1 0 bitM M M P/F M M 1 1
Obrázok 2.5 Pole U rámca [2]
P/F bit má rovnaký význam ako pri vyššie uvedenom S rámci. Pomocou M bitov
určujeme viacero funkcií aké môže U rámec reprezentovať. Ako príklad uvediem
niektoré z nich:
o SNRM (Set Normal Response Mode) – Nastaví linku do normálneho módu,
v ktorom môže len hlavná stanica iniciovať dátový prenos od iných
podriadených staníc.
o SNRME (Set Normal Response Mode Extended)- Nastaví linku do NRM módu
s rozšíreným riadiacim poľom.
o SABM (Set Asynchronous Mode) – Tento príkaz nastaví linku do ABM módu
s osembitovým riadiacim poľom.
o SABME (Set Asynchronous Mode) – Príkaz nastaví linku do módu s rozšíreným
riadiacim poľom, t.zn.16 bitov.
o UA (Unnumbered Acknowledgment) – Táto správa je využitá pri nečíslovanom
potvrdzovaní príkazov SABM, SABME, SNRM, SNRME a DISC.
8
o DISC (Diconnect) - Požiadavka na ukončenie logického spojenia
o DM (Disconnect Mod) - Pozitívne potvrdenie príkazu DISC
o XID (Exchange Station Identification) - Príkazy a odpovede tohto druhu sú
použité pri úvodnej výmene informácií medzi komunikujúcimi stanicami.
Napr. akej veľkosti bude použitý kontrolný súčet.
o UI (Unnumbered Information) - Používa sa na prenos nečíslovaných dátových
rámcov, ktoré môžu obsahovať na počiatku dátového poľa špecifikáciu
prenášaného protokolu vyššej vrstvy. [2]
I (Information) – Dĺžka informačného poľa je premenlivá, alebo vôbec nie je toto pole
použité. Obsahuje prenášané dáta z vrstvy 3. Toto pole je obsiahnuté len vtedy ak
v kontrolnom poli je prenášaný I blok.
FCS (Frame Check Sequence) - Dĺžka tohto pola je 16 alebo 32 bitov. Obsahuje kontrolný
súčet, pomocou ktorého určujeme či bol daný rámec prijatý bezchybne. Ako bolo spomenuté
v úvode podkapitoly, veľkosť (16 alebo 32 bitov) kontrolného súčtu si dohovoria
komunikujúce stanice na začiatku pomocou príkazu XID.
PPP (Point-to-Point Protocol)PPP bol vyvinutý z už vyššie spomenutého protokolu HDLC. Preberá od neho
niektoré funkcie a zároveň pridáva niektoré nové. Podporuje duplexnú prevádzku bod-bod,
synchrónny i asynchrónny prenos, pevné a komutované spoje, autentifikáciu a taktiež
umožňuje prenos viacerých sieťových protokolov než HDLC. Môže spájať počítače
využívajúc sériový kábel, telefónnu linku, rádiové linky alebo optické vlákno. Poskytovatelia
internetu využívajú PPP ako protokol pre prístup do internetu pripojením dial-up alebo jeho
zapúzdrenou formou PPP cez Ethernet PPPoE (PPP over Ethernet), ktorá je často používaná
ako prístup pri pripojení do internetu pomocou digitálneho účastníckeho vedenia
DSL(Digital Subscriber Line). [3] Hlavným rozdielom oproti HDLC, ako môžeme vidieť na
obr. 2.6 ,je použitie 2 bytového poľa P, ktoré slúži k identifikácii prenášaného sieťového
protokolu.
9
F A C P I FCS F1 byt 1 byt 1 byt 1 alebo 2 byty Premenlivá dĺžka 2 alebo 3 byty 1byt
Obrázok 2.6 Štruktúra rámca protokolu PPP [4]
Popis polí rámca PPP
F (Flag), FCS (Frame Check Sequence) – obe tieto polia plnia rovnakú funkciu ako
v protokole HDLC.
A (Address) – Adresa je 1 bytová a je vytvorená zo sekvencie 11111111, čo je štandardná
broadcast adresa. PPP neprideľuje staniciam individuálne adresy. [5]
C (Control) - Kontrolné pole je dĺžky 1 byte a je vytvorené zo sekvencie 00000011
(hexadecimálne 0x03) čo predstavuje nečíslované informačné správy, v ktorých bit P/F je
nastavený na 0.
P (Protocol) – Protokolové pole je 2 bytové a jeho hodnota identifikuje aký protokol je
zapuzdrený v informačnom poli rámca. Tieto protokoly môžme rozdeliť do troch skupín:
1. Protokoly pre naviazanie, ukončenie spojenia, testovanie linky a autentifikáciu
(viď príloha č.1. Tabuľka 1).
2. Kontrolné protokoly pre konfiguráciu prislúchajúceho sieťového protokolu.
3. Sieťové protokoly.
V prílohe číslo 1. sú taktiež zobrazené tabuľky 2 a 3, ktoré znázorňujú vybrané
protokoly skupiny 2 a skupiny 3. Hexadecimálne hodnoty protokolov skupiny 2 sú v rozsahu
od 8 - - - do b - - - , a určujú prislúchajúci kontrolný protokol sieťovej vrstvy NCP (Network
Control Protocol). Hodnoty v rozsahu od 0 - - - do 3 - - - ) určujú sieťový protokol, ktorý
bude prenášaný v dátových rámcoch. Ako môžme vidieť, každý kontrolný protokol
korešponduje so svojím sieťovým protokolom. Líšia sa len počiatočnou číslicou 8 respektíve
0. Napríklad: IPv6 Control Protocol – 8057 a jeho sieťový protokol IP v 6 – 0057 [5]
Aby bolo možné zostaviť spojenie medzi dvoma bodmi na linke, na ktorej je využitý
PPP protokol, musia obe koncové stanice, ako prvé vyslať konfiguračné datagramy
linkového kontrolného protokolu LCP (Link Control Protocol), pomocou ktorých sa dohodnú
10
na dĺžke rámca, aký autentizačný protokol bude použitý, kompresii dát, atď. Ak sú už stanice
dohodnuté na príslušných detailoch spojenia, jedna alebo obe stanice sa navzájom
autentifikujú (preukážu, že sú to naozaj oni). Pri autentizácii LCP prenáša dáta, ktoré neskôr
použijú autentizačné protokoly ako napr.: Protokol overujúci pravosť hesla PAP (Password
Authentication Protocol), vzájomný overovací protokol CHAP (Challenge Handshake
Authentication Protocol) . Počas konfigurovania linky a ani počas autentizácie nesmú byť
prenášané žiadne datagramy sieťovej vrstvy, lebo v takom prípade budú odstránené. [2]
V prípade, že konfigurácia i autentizácia prebehla úspešne prichádzajú na rad
protokoly skupiny 2. Kontrolné protokoly (NCP) musia otvoriť linku pre svoj sieťový
protokol, ktorý má byť na nej použitý. Ak NCP otvoril linku tak za pomoci protokolu PPP
bude prenášaný jeho prislúchajúci sieťový protokol. Na linke môže byť prenášaných viacero
sieťových protokolov súčasne ale každý z nich si musí za pomoci svojho NCP otvoriť linku.
Pri ukončení spojenia sa prenášajú len LCP datagramy a všetky ostatné sú odstránené.
I (Information) - Dĺžka informačného poľa je premenlivá v rozmedzí (0 – 1500 bytov).
Obsahuje datagram protokolu, ktorý je špecifikovaný v protokolovom poli. Prednastavená
maximálna dĺžka informačného poľa je 1500 bytov, ale komunikujúce stanice sa môžu
dohodnúť na inej väčšej dĺžke. Ak dáta nesené v poli sú menšie než 1500 bytov môže byť
k nim byť pridaná výplň a je na danom protokole vyňať ju z užitočných dát.
2.2.2. IP, protokol sieťovej vrstvy
IP (Internet Protocol) je hlavným protokolom sieťovej vrstvy a tvorí základný kameň
Internetu. Slúži na prepojenie rôznych typov sietí (LAN, MAN) do jednej kooperujúcej siete:
Internetu. Vytvorenie IP protokolu sledovalo jeden hlavný ciel: možnosť, aby dva zariadenia,
ktoré komunikujú cez celosvetovú sieť internet mohli byť navzájom jednoznačné
identifikovateľné - mali jedinečnú adresu.
IP protokol má dve hlavné úlohy: Prvou je poskytovať nespojovo orientovanú službu
s negarantovanou kvalitou spojenia. Druhou úlohou IP je rozdelenie (vysielacia strana)
a spojenie(prijímacia strana) datagramov na takú veľkosť, ktorú podporuje linková vrstva.
Táto veľkosť sa taktiež nazýva MTU (Maximum Transmission Unit).
11
IP protokol verzie 4 (IPv4)
Na obrázku 2.7 je zobrazená štruktúra datagramu IP protokolu verzie 4. Je prvou široko
používanou verziou a tvorí základ väčšej časti súčasného Internetu. IPv4 používa 32-bitové
adresy, čo obmedzuje adresný priestor na 4 294 967 296 jedinečných adries, z ktorých časť je
vyhradených pre zvláštne účely ako lokálne siete alebo multicastové adresy, čo redukuje
počet adries použiteľných ako verejné internetové adresy. Riešením tohto problému je
použitie IPv6 opísaného neskôr.
Options (+ padding)
Data (variable)
Obrázok 2.7 Štruktúra datagramu IP protokolu verzie 4. [6]
Popis polí IP datagramu
Vers. (Version) – Verzia IP protokolu je 4 bitová. Udáva verziu IP protokolu, ktorá môže byť
v súčasnosti 4 alebo 6. Avšak verzia 6 má inú štruktúru datagramu (viď. ďalej).
IHL (Internet Header Length) – Dĺžka hlavičky datagramu je 4 bity. Udáva 32 bitové slová,
ktoré určuje veľkosť hlavičky v násobku štyroch bajtov. Minimálna veľkosť hlavičky je teda
5 (5 x 4 =20 bytov) a maximálna veľkosť 15 (15 x 4 = 60 bytov).
12
Vers.4 bity
IHL 4 bity
Type of servis 8 bitov
Identification of IP- datagram 16 bitov
Total length16 bitov
Flags3 bity
TTL8 bitov
Protocol8 bitov
Header checksum16 bitov
Fragment offset 13 bitov
Source Address 32 bitov
Destination Address32 bitov
Type of service – Typ služby je 8 bitové pole, ktoré zatiaľ nenašlo veľké uplatnenie.
V začiatkoch, toto pole malo slúžiť na identifikáciu služby a ako sa bude s daným
datagramom zaobchádzať v uzloch, napr. aby mal čo najnižšie oneskorenie, vysokú
spoľahlivosť prenosu atď. Momentálne, štandardizačné organizácie ako CCITT pracujú nad
tým ako čo najlepšie využiť týchto 8 bitov.
Total length- Celková dĺžka IP datagramu je veľkosti 16 bitov a vyjadruje celkovú dĺžku IP
datagramu v bajtoch. Keďže pole je 16 bitové tak maximálna dĺžka datagramu je 65535
bajtov.
Identification of IP datagram – Identifikačná hodnota je veľkosti 16 bitov. Každému
datagramu je priradená hodnota, ktorá sa cely čas nemení. Za pomoci nej sú na strane
prijímateľa identifikované fragmenty jedného datagramu.
Flags – Príznak fragmentácie je 3 bitové slovo (viď obr. 2.8), ktoré je použité pre kontrolu
a identifikáciu fragmentov.
01bit
DF1bit
MF1bit
Obrázok 2.8 Príznaky fragmentácie [2]
Prvý bit je vždy 0.
DF- (Dont Fragmentation) – Zákaz fragmentácie
MF- (More Fragments) – Viacej fragmentov
Ak je DF bit nastavený na 1 tak je fragmentácia zakázaná, ak 0 tak fragmentácia je
možná. Bit MF určuje či je prislúchajúci fragment IP datagramu posledný alebo
nasledujú za nim ďalšie fragmenty. Ak je MF=0 tak je to posledný fragment IP
datagramu ináč je nastavený na 1.
Fragment ofset – Pozícia fragmentu je 13 bitové pole a indikuje pozíciu fragmentu od
začiatku datagramu. Toto umožňuje prijímaču správne rekonštruovať datagramu do
pôvodného stavu ako bol vyslaný.
13
TTL(Time To Live) – Pole doby životnosti datagramu je dĺžky 8 bitov. Toto pole zamedzuje
nekonečnému sa šíreniu datagramu sieťou. Vysielacia strana nastaví v tomto poli explicitne
určenú hodnotu a každý smerovač cez, ktorý datagram prechádza zníži túto hodnotu o 1.
V prípade ak smerovač zistí, že už nie je možné znížiť hodnotu TTL, tento datagram sa
zahadzuje a odosielateľovi, za pomoci protokolu ICMP, sa oznámi, že datagram bol
zahodený.
Protocol – Toto 8 bitové pole protokolu identifikuje protokol vyššej vrstvy, ktorý bude
využívať IP datagram k svojmu prenosu.
Header Checksum – Pole kontrolného súčtu hlavičky IP datagramu je dĺžky 16 bitov. Pri
prechode datagramu smerovačom sa mení hodnota TTL z čoho vyplýva, že sa mení aj
hlavička IP datagramu a v závislosti na tom musí byť taktiež prepočítané pole kontrolného
súčtu.
Source Address – 32 bitové pole adresy odosielateľa datagramu.
Destination Address – 32 bitové pole adresy prijímateľa datagramu.
Option – Pole voliteľných položiek. Je využívané len v malej miere a smerovače sú spravidla
nakonfigurované tak, že datagramy obsahujúce voliteľné pole bývajú zahadzované. [2]
Data – Dátové pole nesie dáta protokolov transportnej vrstvy (TCP, UDP, atď.)alebo
pomocných protokolov sieťovej vrstvy (ICMP, IGMP). Toto pole nie je súčasťou hlavičky IP
datagramu, z čoho vyplýva, že sa nezapočítava do kontrolného súčtu.
IP protokol verzie 6 (IPv6)
Hlavným dôvodom vytvorenia IPv6 bol nedostatok adresného priestoru, obzvlášť v husto
obývaných krajinách Ázie ako sú India a Čína. IPv6 má nahradiť predchádzajúci štandard
14
IPv4, ktorý podporuje „iba“ 4 miliardy (4×109) adries, zatiaľ, čo IPv6 podporuje až približne
3.4×1038 adries. Toto bolo dosiahnuté zmenou dĺžky sieťovej adresy z 32 na 128 bitov.
Ďalším prínosom je podpora mobility, lepšia kvalita služby QoS(Quality of Service), povinné
zabezpečenie a ďalšie možnosti. S prihliadnutím na tieto vlastnosti, datagram v IPv6 bol
vytvorený tak aby záhlavie datagramu bolo čo najmenšie a to len s najzákladnejším obsahom.
Zriedka využívané časti datagramu z IPv4 boli presunuté do tzv. „rozširujúcich hlavičiek“ v
IPv6. Ide najmä o položky potrebné k fragmentácii datagramu, ktoré boli v každom IPv4
datagrame. Pre základné záhlavie bola stanovená pevná veľkosť, takže položka veľkosť
hlavičky (IHL) bola vynechaná a taktiež pri dnešnej nízkej chybovosti a vysokej
priepustnosti liniek, stratilo opodstatnenie pole kontroly súčet (Header Checksum). Dĺžka
základnej hlavičky je vždy 40B, z ktorej až 32B je vyhradených pre adresy (2x16B).
Štruktúra datagramu IPv6 je znázornená na nasledujúcom obrázku 2.9 .
Obrázok 2.9 Štruktúra datagramu IP protokolu verzie 6. [7]
Vers. (Version) – 4 bitové pole. Udáva verziu IP protokolu, ktorá je v tomto prípade 6.
T.C. (Traffic Class) – Pole triedy dát je 8 bitové. Umožňuje špecifikovať prenášané dáta do
15 kategórii a podľa toho postupovať napr. pri zahltení siete. Tieto kategórie sú popísané
v nižšie uvedenej tabuľke 2.1 .
15
Traffic Class 8bitov Flow Label 20bitov
Hop Limit 8bitovNext Header 8bitovPayload Length 16bitov
Source Address 128 bitov
Destination Address 128bitov
Vers. 4bity
Kat. Klasifikácia dát0 nešpecifikované dáta1 prevádzka v pozadí (správy)2 automatická prevádzka (email)3 Rezervované4 užívateľom uskutočňované prenosy (FTP, NFS)5 Rezervované6 interaktívna prevádzka (telnet)7 riadenie siete (smerovacie protokoly, SNMP)
8 - 15 prenosy v reálnom časeTabuľka 2.1 Kategórie reprezentujúce typ prenášaných dát [2]
Kategórie 0 – 7 špecifikujú normálnu prevádzku. V kategóriách 8 – 15 sú špecifikované
prenosy v reálnom čase, pričom tu platí pravidlo, že datagramy z nižšej kategórie majú nižšiu
prioritu a pri zahltení siete budú zahodené skôr.
Flow Label – Identifikácia toku dát je 24 bitové pole. Každému dátovému toku je priradená
hodnota v rozsahu od 0 po 0xFFFFFF. Takto identifikovanému dátovému toku, ak si to
vyžaduje, môže byť pridelená vyššia kvalita služby alebo prenos v reálnom čase. Ďalšou
možnosťou využitia môže byť: ak takýto dátový tok s cieľovou IP adresou je v smerovači
vyslaný do prislúchajúceho smeru, tento sa zapamätá a následne ďalšie datagramy s tým
istým identifikačným číslom toku sú už priamo posielané do smeru, ktorý je uložený
v pamäti.
Payload Length – Dĺžka poľa prenášaných dát je 16 bitov veľká. Pole udáva dĺžku dát
v bytoch bez hlavičky datagramu. Ak však datagram obsahuje aj pole ďalšia hlavička
(uvedené nižšie) tak toto je započítané do tejto dĺžky. Keďže pole je 16 bitové, veľkosť
prenášaných dát môže byť maximálne 65 535 bytov.
Next Header – Ďalšia hlavička je pole dĺžky 8 bitov. Je to jedna z najvýznamnejších
položiek, ktoré boli pridane do IP verzie 6 oproti verzii 4. Pole ďalšia hlavička v základnom
záhlaví ukazuje aký typ dát (“aká hlavička”) nasleduje za základným záhlavím. Teoreticky
môže ukazovať už na TCP segment alebo iný protokol vyššej vrstvy. Avšak môže taktiež
ukazovať na ďalšiu rozširujúcu hlavičku IP protokolu. [2] Ak poukazuje na ďalšiu
rozširujúcu hlavičku tak aj táto má pole ďalšia hlavička, ktorá ukazuje na ďalšiu hlavičku
16
atď. Napríklad rozširujúca hlavička „Smerovacia informácia“ umožňuje predpísať datagramu
prechodové uzly, ktorými má v zadanom poradí prejsť a zároveň slúži aj ako záznam adries
uzlov, ktorými datagram prešiel. Typy rozširujúcich hlavičiek sú uvedené v tabuľke v prílohe
č. 2 [8].
Hop Limit – Pole počet skokov je 8 bitové čo umožňuje nastaviť maximálny počet skokov na
255. Vysielacia strana nastaví limit počtu skokov na určitú hodnotu a každý smerovač
v ceste, ktorým datagram prechádza ju zníži o 1. Keď hodnota poľa dosiahne hodnotu 0
datagram je zahadzovaný.
Source Address – 128 bitové pole adresy odosielateľa datagramu.
Destination Address – 128 bitové pole adresy možného prijímateľa datagramu.
2.2.3. TCP a UDP, protokoly transportnej vrstvy
TCP (Transmission Control Protocol)TCP je v súčasnej do najviac využívaným protokolom transportnej vrstvy, ktorý
poskytuje spojovo orientovanú službu. Vytvára plne duplexný virtuálny okruh medzi dvoma
aplikáciami a zaručuje, že dáta odoslané z jedného konca spojenia budú prijaté prijímacou
stranou v rovnakom poradí a bez chýbajúcich častí. Keďže prenášané segmenty sú číslované
prijímacia strana dokáže opätovne požiadať o poslanie chýbajúcich alebo poškodených
segmentov. TCP segment je transportovaný pomocou IP na danú IP adresu. Tu bežia
jednotlivé aplikácie, ktorým sú priradené jednotlivé porty. Každý TCP segment taktiež
pozostáva z čísla portu na základe, ktorého operačný systém rozpozná ktorej aplikácii ho má
predať. Štruktúra TCP segmentu je zobrazená na nasledujúcom obrázku 2.10.
17
Options (optional)
Data
Obrázok 2.10 Štruktúra TCP segmentu [2]
Popis polí TCP segmentu
Source Port – Toto 16 bitové pole identifikuje zdrojový port odosielateľa.
Destination Port – 16 bitové pole identifikujúce cieľový port príjemcu TCP segmentu.
Seguence Number – Poradové číslo vysielaného bajtu je pole dĺžky 32 bitov. Určuje
poradové číslo prvého vysielaného bajtu TCP segmentu. Číslovanie nezačína od 0 ale od
náhodne zvoleného čísla. Toto náhodné číslo je generované vždy keď je nastavený bit SYN
(viď. Flags) .
Acknowledgment Number – Poradové číslo prijatého bajtu je pole dĺžky 32 bitov. Určuje
číslo nasledujúceho bajtu, ktorý je príjemca pripravený prijať a zároveň potvrdzuje správne
prijatie všetkých segmentov až do poradového čísla prijatého bajtu mínus jedna. [2]
Data Offset – Pole dĺžky 4 bity vyjadruje dĺžku TCP hlavičky, ktorá je udávaná v násobku 4.
Minimálna veľkosť hlavičky je 5 (5 x 4 =20 bytov) a maximálna veľkosť 15 (15 x 4 = 60
bytov).
18
Sequence Number 32 bitov
Acknowledgment Number 32 bitov
Window16 bitov
Destination Port 16 bitovSource Port 16 bitov
Checksum 16 bitov Urgent Pointer 16 bitov
Reser. 4 bity
Data Off.4 bity
Flags8 bitov
Reserve – Momentálne 4 bitové pole, ktoré je rezervované pre budúce použitie.
Flags – Pola príznakov je 8 bitov dlhé. Každý bit reprezentuje jeden príznak (obr. 2.11)
1 1 1 1 1 1 1 1 bitCWR ECE URG ACK PSH RST SYN FIN
Obrázok 2.11 Pole príznakov TCP segmentu [2]
• CWR (Congestion Window Reduced) – Príznak CWR je nastavený vysielacou
stranou a indikuje, že TCP segment má nastavený ECE bit (viď. nižšie).
• ECE (Explicit Congestion notification Echo) – indikuje, že spolupracujúca strana
podporuje ECN(Explicit Congestion Notification) počas nadviazania spojenia.
• URG (Urgent) – indikuje, že TCP segment nesie súrne dáta.
• ACK (Acknowledgmet) – indikuje platnosť poľa Acknowledgment Number.
Tento príznak je nastavený vo všetkých segmentoch okrem prvého.
• PSH (Push) – indikuje prenos aplikačných dát, ktoré má príjemca predať aplikácii.
• RST (Reset) – indikuje odmietnutie TCP spojenia
• SYN (Synchronize) – indikuje začiatok nového číslovania TCP segmentov.
Segment, ktorý má nastavené SYN prenáša poradové číslo prvého odosielaného
bajtu.
• FIN (Finsih) – indikuje ukončenie odosielania dát.
Window – Pole dĺžky 16 bitov vyjadruje o koľko môže byť zvýšené poradové číslo prijatého
bajtu, aby bolo príjemcom akceptované.
Checksum – Kontrolný súčet TCP segmentu je dĺžky 16 bitov. Počíta sa z TCP segmentu
a niektorých položiek IP hlavičky (adresa odosielateľa a prijímateľa). Ak dáta, ktoré majú
byť zarátané do kontrolného súčtu sú nepárne, v takom prípade je k nim pridaná výplň do 16
bitov. Výplň je vytvorená z núl a je pridaná za pole voliteľnej výplne.
19
Urgent Pointer – Pole ukazovateľa súrnych dát je dĺžky 16 bitov. Toto pole môže byť
prezentované iba v prípade ak je nastavený príznak URG (viď. Flags ). Ak pripočítame tento
ukazovateľ k číslu odosielaného bajtu tak táto hodnota poukazuje na koniec úseku
naliehavých dát.
Option – Pole voliteľných položiek môže byť maximálne 40 bytov dlhé. V tabuľke 2.2 sú
uvedené niektoré voľby možných voliteľných výplní.
Identif. Dĺžka Popis0 1 Koniec voliteľných položiek1 1 Prázdny príkaz2 4 Max. veľkosť segmentu3 3 Činiteľ zmeny veľkosti okna4 2 Zákaz odstránenia5 premenná Odstrániť6 6 Echo7 6 Odpoveď na Echo8 10 Časová značka
Tabuľka 2.2 Voliteľné položky [2]
Data – Toto pole nie je súčasťou hlavičky TCP segmentu. Prenáša akýkoľvek protokol
vyššej vrstvy.
Nadviazania, prenos dát a ukončenie spojenia TCP protokolom
Ako už bolo na začiatku uvedené, TCP poskytuje spojovo orientovanú službu. To znamená,
že obe komunikujúce strany medzi sebou nadviažu logické spojenie a až potom je možné
prenášať dáta. Taktiež musia mať mechanizmus pre potvrdzovanie, znovu vyžiadanie
stratených alebo poškodených segmentov atď.
Nadviazanie spojenia
Klient je strana, ktorá chce nadviazať spojenie a serverom strana, ktorá očakáva
spojenie. Serverom je určená strana, ktorá čaká na prichádzajúce spojenie (pasívne
počúva) na danom porte od klienta, ktorý chce začať komunikáciu. Nadviazanie
komunikáciu so serverom je uskutočňované v troch fázach (tzv. 3-way handshake)[2] :
20
1. Klient vygeneruje náhodné poradové číslo vysielaného bajtu max. dĺžky 32 bitov a
nastaví príznak SYN. Takto vytvorený segment je vyslaný serveru čím sa otvára
aktívna komunikácia .
2. Ako odpoveď vyšle server segment s nastavenými príznakmi ACK a SYN.
3. Napokon klient odpovedá príznakmi SYN a ACK.
Stav nadväzovaní spojenia je stav servera a klienta charakterizovaný, stavom spojenia
Server môže byť v stave:
• LISTEN – sever „počúva“ a je pripravený na spojenie s klientom
• SYN-RECEIVED – server prijal od klienta TCP segment s nastaveným príznakom
SYN
Klient môže byť v stave:
• SYN- SENT – klient odoslal TCP segment s nastaveným príznakom SYN
Prenos dát
Pokiaľ je vybudované spojenie medzi klientom a serverom, na základe toho, že je to plne
duplexné spojenie, môžu obe strany súčasne vysielať dáta. Ak jedna strana nemá dáta
k vysielaniu, tak potvrdzuje prijaté segmenty. Keď je spojenie nadviazané server aj
klient sú v stave ESTABLISHED.
Ukončenie spojenia
Ukončiť spojenie môže uskutočniť ktorákoľvek z komunikujúcich strán. Ak jedna zo
strán chce ukončiť spojenie, vyšle segment s nastaveným príznakom FIN a už nemôže
odosielať žiadne segmenty s príznakom PSH(prenášať aplikačné dáta). Druhá strana
tento segment musí akceptovať ale stále môže prenášať dáta. Takéto spojenie sa nazýva
polo-uzatvorené (half close). Celkové uzatvorenie spojenia nastane ak druhá strana vyšle
segment s príznakom FIN a dostane na ňu odpoveď ACK. Pri ukončení spojenia môžu
nastať stavy:
• FIN-WAIT1 – jedna zo strán odoslala všetky dáta a nastaví príznak FIN, že chce
uzatvoriť spojenie
21
• FIN-WAIT2 – stav keď jedna strana vyslala segment s príznakom FIN a čaká na
príjem FIN segmentu od náprotivnej strany.
• CLOSE-WAIT – strana prijala segment s príznakom FIN a potvrdzuje ho
príznakom ACK
• CLOSING - strana čaká na potvrdenie ukončenia spojenia
• LAST-ACK – druhá strana odoslala všetky dáta a signalizuje celkové ukončenie
spojenia
• TIME-WAIT – v tomto stave sa nachádza strana keď je vyslaný posledný
potvrdzujúci segment o ukončení spojenia. Tento ukončujúci segment už nie je
potvrdzovaný a preto strana ostáva určitý čas v stave TIME-WAIT.
• CLOSED – Druhá strana prijala potvrdenie ukončenia spojenia a prechádza do
stavu CLOSED. Strana, ktorá vysielala potvrdenie o ukončení spojenia prejde do
stavu CLOSED až po uplynutí času v stave TIME-WAIT
UDP (Used Datagram Protocol)UDP je ďalším veľmi dobre známym transportným protokolom. UDP naproti TCP
nevytvára virtuálne spojenia, ale poskytuje nespojovo orientovanú službu. Vysielacia strana
po vyslaní UDP datagramu sa oň viac nestará. Nijako neoznačuje datagramy, z čoho vyplýva
že na prijímacej strane môžu prísť v rôznom poradí alebo môže dôjsť k strate bez toho, aby to
bolo signalizované a je na protokoloch vyšších vrstiev zabezpečenie spojenia. Bez
overovania a potvrdzovania príchodu datagramu je UDP rýchlejší a efektívnejší než TCP. Z
pohľadu spoľahlivosti je využiteľný v aplikáciách kde sú prípustné straty alebo ich
kompenzácia. Napríklad televízne vysielanie šírené internet protokolom IPTV (Internet
Protocol Television) alebo hlas prenášaný za pomoci IP protokolu VoIP (Voice over IP).
Na obrázku 2.12 je znázornená štruktúra UDP segmentu a ako môžme vidieť,
potvrdzuje hore zmienené fakty, že neobsahuje viacero polí a je oveľa jednoduchšia než
štruktúra TCP segmentu.
22
Data
Obrázok 2.12 Štruktúra UDP segmentu [2]
Source Port – Toto 16 bitové pole identifikuje zdrojový port odosielateľa.
Destination Port – 16 bitové pole identifikujúce cieľový port príjemcu UDP datagramu.
Length – Pole dĺžky datagramu je veľké 16 bitov. Vyjadruje veľkosť hlavičky a dát
datagramu.
Checksum – Kontrolný súčet je počítaný obdobne ako pri TCP (viď. TCP) avšak nie je
povinný. Ak nie je uvedený pole je vyplnené nulami.
Data – Pole nie je súčasťou hlavičky. Prenáša protokol vyššej vrstvy.
2.2.4. FTP, protokol aplikačnej vrstvy
FTP (File Transfer Protocol)FTP je protokolom aplikačnej vrstvy využívajúci výhradne TCP protokol. Slúži na
prenos súborov medzi počítačmi v rámci Internetu alebo intranetu. Používateľ (klient) na
jednom počítači môže prenášať súbory alebo vykonávať príkazy na vzdialenom počítači
(server). Na pripojenie k serveru je potrebné konto, ktoré zahŕňa užívateľské meno a heslo.
Na vytvorenie konta je potrebná registrácia u prevádzkovateľa FTP servera. Niektoré servery
sú tzv. anonymné a nevyžadujú registráciu. Typické meno na prihlásenie sa je anonymous
alebo ftp. Ako heslo je požadovaná email adresa.
Počas spojenia môže klient vykonávať na serveri rôzne operácie (ak má na to
oprávnenie) ako napríklad: pridávať a sťahovať dáta, odstraňovať premenovávať súbory zo
servera, atď. Pre prenos je potrebné vytvoriť dve spojenia. Jedno pre prenos príkazov
23
Length 16 bitov Checksum 16 bitov
Destination Port 16 bitovSource Port 16 bitov
a odpovedí a druhé spojenie pre prenos dát. Na strane FTP servera je spustený program,
ktorý zabezpečí že sa javí ako sever. Tento vždy očakáva prichádzajúce spojenia od FTP
klientov na porte 21. Ak klient nadväzuje spojenie dotazuje sa na tento port a vytvorí sa
kontrolný kanál, ktorým budú prenášané príkazy v oboch smeroch. Kontrolný kanál je
aktívny počas celej doby spojenia.
Prenosový mód dátového kanála
Pre prenos dát je nutný dátový kanál. Jeho inicializácia môže byť uskutočnená dvomi
spôsobmi: aktívnym alebo pasívnym módom:
• Aktívny mód - klient otvorí náhodný port, ktorého číslo však musí byť väčšie než
1023. Vyšle serveru číslo tohto portu kontrolným kanálom a očakáva spojenie od
servera. Server vytvorí dátový kanál pričom bude využitý port 20 na strane servera
a náhodný port (väčší než 1023) na strane klienta.
• Pasívny mód - klient vyšle kontrolným kanálom príkaz na pasívne otvorenie
komunikácie (PASV). Na to server otvorí náhodný port(väčší než 1023). Toto
číslo portu pošle kontrolným kanálom klientovi a čaká na spojenie od klienta.
Klient otvorí dátový kanál na čísle portu, ktoré obdržal od serveru a na jednom zo
svojich portov (číslo je väčšie než 1023) .
Reprezentácia dát
Na prenos dát v dátovom kanály môže byť použitých viacero spôsobov reprezentácie dát.
Najčastejšie sú používané tieto dva spôsoby módy: ASCII a Binárny mód:
• ASCII mód - každé písmeno ,číslica alebo znak je reprezentované jeho
prislúchajúcim znakom ASCII. Avšak tento mód je vhodný na prenos textových
súborov lebo ASCII využíva 7 bitov a dáta ako napríklad obrázky alebo hudba
využívajú 8 bitov z čoho je zrejme že pri prenose by došlo k strate jedného bitu čo
by znamenalo poškodenie súboru. Pre vyriešenie tohto problému môžme použiť
buď EBCDIC (Extended Binary Coded Decimal Interchange Code) mód, ktorý
využíva 8 bitov alebo binárnu reprezentáciu dát.
24
• Binárny mód - vysielacia strana posiela celý súbor bit za bitom a prijímateľ
ukladá tento prúd bitov do súboru.
Ako východiskový mód využíva väčšina FTP klientov ASCII mód.
Príkazy kontrolného kanála
Kontrolným kanálom sú vysielané príkazy, ktoré je možné rozdeliť do troch skupín.
Príkazy riadenia prístupu:
USER – klient posiela užívateľské meno
PASS – klient posiela užívateľské heslo
ACCT – klient posiela informácie o užívateľskom účte
CWD - zmena aktuálneho adresára
CDUP - zmena aktuálneho adresára o úroveň vyššie
QUIT – klient alebo server inicializuje ukončenie spojenia
Príkazy nastavujúce parametre prenosu:
PORT - klient posiela číslo portu, na ktorom bude očakávať dátové spojenie.
PASV – klient žiada server o pasívne spojenie.
TYPE - určuje typ reprezentácie dát.
Pomocné príkazy:
RETR – inicializuje prenos daného súboru zo servera.
STORE – inicializuje prenos daného súboru na server
RNFR, RNTO - premenovanie súboru
DELE - zmazanie súboru
MKD - vytvorenie nového adresára
RMD - zmazanie adresára
ABORT - zrušenie posledného príkazu
PWD – zisti aktuálny pracovný adresár servera
25
LIST – ak za príkazom nasleduje názov súboru server odpovie informáciami o tomto
súbore. Ak je to adresár získa sa jeho výpis. Pre získanie zoznamu je potrebné vytvoriť
dátové spojenie.
NLST – server vráti klientovi zoznam súborov alebo adresárov bez žiadnych iných
doplňujúcich informácii.
SYST – zistí systém bežiaci na FTP serveri
[9]
26
3. UML (Unified Modeling Language)Metodika softwarového inžinierstva predstavuje súbor prezentačných techník
a metodických postupov, ktoré podporujú systematický vývoj a údržbu programového diela.
Metodiky sa preto môžu odlišovať prezentačnými technikami (zápisom), metodickými
postupmi (proces) a dostupnými nástrojmi. Každá metodika priniesla niečo nového, zvyčajne
však aj nový zápis. Toto bolo dôvodom snahy o zjednotenie vyjadrovania. Rôzne
spoločnosti sa snažili vytvoriť vlastné návrhy ale až zoskupenie objektovo orientovaných
spoločností OMG (Object Management Group) vydalo štandard pod označením UML 1.1.
Súčasná verzia má označenie UML 2.1.1.
UML je vytváraný s úmyslom ako univerzálny štandard pre záznam, konštrukciu,
vizualizáciu a dokumentáciu artefaktov softwarových systémov. [14]
Cieľmi UML je:
• poskytnúť používateľom expresívny vizuálny modelovací jazyk aby mohli
vyvíjať rozumné modely
• poskytnúť možnosť rozšíriteľnosti a špecializáciu mechanizmov pre rozšírenie
hlavného konceptu
• byť nezávislý od rôznych programovacích jazykov a vývojových procesov
• poskytnúť formálnu bázu pre pochopenie modelovacieho jazyka
• povzbudiť rast nástrojov pre (objektovo orientovaný) OO trh
• podporovať vysoko úrovňové koncepty ako spolupráca, rámcové štruktúry,
zákonitosti a komponenty
• integrovať najlepšie postupy
3.1. Diagramy UML
Jazyk UML sa skladá z množstva grafických prvkov, ktoré je možno kombinovať
navzájom a vytvárať dvojrozmerné diagramy. Jednotlivé grafické prvky môžu byť vzájomne
prepojené, čím je vyjadrený vzťah medzi nimi. Toto grafické znázornenie definuje určitý typ
diagramu. V UML 2.1 je možné definovať 13 typov diagramov, z ktorých v nasledujúcej
časti bude popísaných najpoužívanejších 9. Sú to:
27
• diagramy triedy a objektu (class diagrams, object diagrams) popisujú statickú
štruktúru systému, znázorňujú dátový model systému od návrhu až po implementáciu
• diagram prípadov použitia (use case diagrams) dokumentujú možné prípady použitia
systému a udalosti, na ktoré musí systém reagovať
• sekvenčný diagram (sequence diagrams) popisuje scenár priebehu určitej činnosti v
systéme
• diagram spolupráce (collaboration diagrams) zobrazuje komunikáciu
spolupracujúcich objektov, možné stavy a prechody medzi nimi
• diagram aktivít (activity diagrams) popisuje priebeh aktivít procesu alebo činnosti
• diagram komponentov (component diagrams) popisujú rozdelenie výsledného
systému na funkčné celky (komponenty) a definuje náplň jednotlivých komponent
• diagram nasadenia (deployment diagrams) popisuje umiestenie funkčných celkov
(komponent) na výpočtové uzly informačného systému [15]
Diagramy je možné rozdeliť do troch systémových modelov:
• Statické - diagramy tried, diagramy spolupráce, diagramy komponent a diagram
nasadenia
• Funkčné - diagramy aktivít, scenáre udalostí a diagramy spolupráce
• Dynamické - dokumentujú stavové diagramy, diagramy spolupráce a diagramy aktivít
Použitie diagramov v jednotlivých fázach vývoja je dané príslušnou metodikou, ale je
možné povedať, že v rámci analýzy zadania sa využívajú diagramy tried, diagramy aktivít, a
stavové diagramy. Pre fázu návrhu sú použité diagramy tried, diagramy spolupráce, diagramy
aktivít, diagramy komponent a diagramy nasadenia. Vo fáze realizácie sa používajú diagramy
tried, diagramy komponent a diagramy nasadenia.
3.1.1. Diagram tried
Triedy predstavujú spoločné vlastnosti sady objektov. Reprezentujú kategórie z
prirodzeného sveta, ktoré sú popísané svojimi vlastnosťami, a správaním (operáciami). Na
obrázku 3.1 je znázornená trieda Trojuholník, ktorá má vlastnosti ako dĺžka, výška alebo
28
obvod. Tieto vlastnosti môžu mať nastavenú i počiatočnú hodnotu. V ďalšom poli sú
uvedené operácie, ktoré môže trieda vykonávať – zobraz(), odstran() atď. Symboly uvedené
pred jednotlivými vlastnosťami alebo operáciami označujú viditeľnosť daného prvku:
+ prvok je verejný (public)
− prvok je súkromný (private)
# prvok je chránený (protected)
Ak existuje previazanosť medzi triedami je potrebné ju vyznačiť čiarou s príslušnou asociáciou.
Obrázok 3.13 Príklad použitia diagramu triedy [15]
3.1.2. Diagram objektov
Objekt je pojem s presne definovanými hranicami a významom a je popísaný:
identitou, stavom a chovaním:
• Stav objektu je jedna z možných podôb, v ktorých sa objekt môže nachádzať. Stav
objektu sa môže meniť a je definovaný sadou vlastností ako sú atribúty a vzťahy.
• Chovanie určuje ako objekt reaguje na žiadosti iných objektov a popisuje , čo všetko
môže objekt vykonávať. Chovanie je implementované sadou operácii (metódami).
• Identita znamená, že každý objekt je jedinečný
29
Objekt diagram je považovaný za špeciálny prípad diagramu tried. Objektové diagramy
používajú podskupiny elementov diagramov tried aby zdôraznili vzťah medzi inštanciami
tried v určitom čase. Takýto diagram objektov je znázornený na obrázku 3.2.
Obrázok 3.14 Príklad použitia diagramu objektov [15]
3.1.3. Diagram prípadov použitia
Model prípadu použitia slúži pre základné vymedzenie hraníc medzi systémom a jeho
okolím. Model je zložený:
• aktér (actor) – je to ktokoľvek alebo čokoľvek mimo systému alebo spolupracujúci
systém
• hranice systému (system boundary) - určené hranice systému
• prípad použitia (use case) – dokumentácia udalostí, na ktorú musí systém reagovať
• komunikácia - väzba medzi aktérom a prípadom použitia (aktér komunikuje so
systémom na danom prípade).
Diagram prípadu použitia je znázornený na nasledujúcom obrázku (3.3) .
30
Obrázok 3.15 Príklad použitia diagramu prípadu použitia
Pri vytváraní modelu prípadu použitia treba brat na zreteľ, že ešte existujú sekundárny aktéri,
(užívateľské úlohy, spolupracujúce systémy), pre ktorých nie je systém určený, ale sú preň
nutný. Smer komunikácie je vyznačovaný orientovanými šípkami.
3.1.4. Diagram stavov
Stavové diagramy slúžia k popisu dynamického správania sa systému. V stavovom
diagrame sú definované možné stavy, možné prechody medzi stavmi, udalosti, ktoré
prechody vyvolávajú, podmienky prechodov a akcie, ktoré s prechodmi súvisia. Stavový
diagram je možné použiť pre popis dynamiky objektu , pre popis metódy (ak je známy
algoritmus), pre popis protokolu (vrátane protokolu o styku užívateľa so systémom). Takýto
stavový diagram je znázornený na obrázku 3.4.
Jednotlivé stavy sú znázornené ako obdĺžniky s oblými rohmi. Počiatočný stav je
znázornený ako čierny kruh. Aby bolo možné prejsť z jedného stavu do ďalšieho je potrebná
nejaká udalosť (stlačenie tlačidla, uplynutie času) .Táto udalosť je nazývaná aktivácia
(Trigger) . Po aktivácii môže nasledovať takzvaná „stráž“(Guard), čo je výraz
vyhodnocovaný na základe atribútov objektu a udalostí. Za aktiváciou a strážou nasleduje
„akcia“, čiže činnosť ak sú podmienky prechodu splnené. Časti aktivácia, stráž a akcia nie sú
povinné.
31
Obrázok 3.16 Príklad použitia diagramu stavov [15]
3.1.5. Sekvenčný Diagram
Diagram sekvencií predstavuje takisto dynamické správanie sa systému. Dokumentuje
spoluprácu účastníkov na určitej činnosti. Dôraz je zvlášť kladený na časovú zložku
komunikácie. Sú vhodné pre popis systémov kde prebieha komunikácia s používateľom.
Ukážka sekvenčného diagramu je na obrázku 3.5. Objekty alebo účastníci sú znázornený ako
obdĺžnik s príslušným menom. Správy ktoré sú posielané sú znázornené ako šípky. Správy
môžu byť synchrónne (koniec šípky je vyfarbený) alebo asynchrónne (koniec šípky je
nevyfarbený). Správy sú znázornené plnými čiarami a odpovede prerušovanými.
32
Obrázok 3.17 Príklad použitia sekvenčného diagramu
3.1.6. Diagram spolupráce
Podobne ako pri diagrame činností vyjadruje diagram spolupráce súčinnosť objektov
pri riešení úlohy a je zdôraznený komunikačný aspekt, pričom čas je vyjadrený číslovaním
(viď obr. 3.6.). Vedľa asociačnej čiary sa kreslí šípka smerujúca k cieľovému objektu
s názvom správy. Popisujú objekty a správy, ktoré si posielajú pri riešení úlohy. Sú vhodné
pre popis spolupráce objektov pri návrhu komunikácie.
Obrázok 3.18 Príklad diagramu spolupráce
3.1.7. Diagram aktivít
Diagram aktivít je variantom stavových diagramov, kde sú okrem stavov používané i
aktivity. Ak sa systém nachádza v nejakom stave, je prechod do iného stavu vyvolaný
nejakou vnútornou udalosťou. Pri tomto type diagramu na rozdiel od diagramu stavu je
33
prechod vyvolaný ukončením aktivity. Používajú sa pre dokumentáciu tried, metód. Môžu
obsahovať symbol „rozhodovania“ ako je znázornené na obrázku 3.7.
Obrázok 3.19 Príklad diagramu aktivít [14]
3.1.8. Diagram komponentov
Tento diagram zobrazuje vzťahy medzi softwarovými komponentmi, vrátane
zdrojových kódov, binárnych knižníc a spustiteľných programov. Komponent je
implementácia jednej alebo viacerých tried a môžu komunikovať s ostatnými komponentmi.
Má špecifikáciu, čo uskutočňuje, implementáciu a spustiteľný binárny kód.
Znázornenie diagramu komponentov a ich vzťahu je na nasledujúcom obrázku 3.8.
Obrázok 3.20 Príklad diagramu komponentov [14]
34
3.1.9. Diagram nasadenia
Tento diagram predstavuje fyzickú architektúru systému. Môže však zobrazovať
i softwarové prvky, ktoré sú umiestnené na danej fyzickej architektúre. Ako príklad diagramu
nasadenia je na obrázku 3.9. zobrazený diagram lokálnej siete.
Obrázok 3.21 Príklad diagramu nasadenia [15]
35
4. Distribuované objektové systémyV tejto kapitole je uvedená základná charakteristika distribuovaných objektových
systémov, ich základné vlastnosti, popis, význam a použitie CORBA štandardu a
komunikácia medzi distribuovanými objektmi.
Ako sa zdokonaľovali počítačové siete, postupy v programovaní a klesala cena
výpočtového výkonu, začala rásť požiadavka na vytvorenie systému rozdeleného do
viacerých nezávislých, vzájomne prepojených a komunikujúcich uzlov, ktoré sa zvonku javia
ako jednotný integrovaný systém. Z počiatku bola v prevažnej miere využívaná architektúra
klient/server, ale so zväčšujúcim sa záujmom o objektovo orientovaný vývoj programov sa
začínajú využívať distribuované objektové systémy.
Najznámejšie technológie na vytvorenie distribuovaného systému sú vyvolanie
vzdialenej metódy RMI (Remote Method Invocation), distribuovaný objektový model
DCOM (Distributed extension of the Component Object Model) a CORBA (Common Object
Request Broker Architecture).
4.1. Základné črty a vlastnosti
Každý distribuovaný objektový systém by mal spĺňať nasledujúce vlastnosti, ktoré
vyplývajú z jeho funkčnosti a objektového prístupu:
• Transparentnosť- užívateľ by nemal poznať, že využívané prostriedky sú lokálne
alebo vzdialené.
• Zdieľanie prostriedkov - systém by mal umožňovať viacerým aplikáciám zdieľať
systémové prostriedky (hardware, dáta).
• Odolnosť voči chybám - systém by mal mať schopnosť detekovať chyby a
pokračovať v práci aj v takom prípade ak sa jedna jeho súčasť distribuovaného
systému stane nedostupnou.
• Otvorenosť - špecifikácia systému a všetky jeho rozhrania sú verejne známe.
• Zapuzdrenie - umožňuje nezávislý vývoj jednotlivých objektov na iných
objektoch, bez toho aby muselo byť známe, akým spôsobom pracujú. Vývoj sa
uskutočňuje na základe dopredu stanoveného rozhrania jednotlivých objektov.
36
• Polymorfizmus a dedičnosť – možnosť využívať služby špecializovaných
objektov neznámych v čase prekladu.
4.2. CORBA
CORBA je štandard vyvíjaný skupinou OMG (Object Management Group), ktorá
zahŕňa viac ako 800 spoločností a ktorej hlavným cieľom je vytváranie modelov a štandardov
v oblasti distribuovaných systémov [13].
CORBA je dodávateľsky nezávislá architektúra a infraštruktúra, ktorú využívajú
zariadenia na prácu cez sieť. Ponúka, nezávislosť na platforme a nezávislosť na
programovacom jazyku. Nezávislosť na platforme znamená, že CORBA aplikácie môžu
komunikovať s akoukoľvek platformou, pre ktorú existuje implementácia ORB(Object
Broker Request). Nezávislosť na jazyku znamená, že implementácia klienta i servera môže
byť napísaná v akomkoľvek jazyku pre ktorý existuje kompilátor z jazyka pre definíciu
rozhraní IDL (Interface Definition Language) do tohto jazyka. IDL môže byť generované
z prvkov, z ktorých je vytvorený príslušný UML model (viď. Kapitola 3.).
Výhody použitia architektúry CORBA:
• nezávislosť na operačnom systéme
• nezávislosť na hardwari
• nezávislosť na jazyku
• robustnosť
• rozhranie distribuovanej časti je popísané jazykom IDL, odpadá písanie deklarácii v
konkrétnom jazyku
• použitie všeobecného protokolu zabezpečujúceho komunikáciu medzi objektmi ORB
GIOP (General Inter Orb Protocol), nad ktorým môže stáť ľubovoľný spojovo
orientovaný transportný protokol
• špecializované verzie, napríklad CORBA pracujúca v reálnom čase
• podpora dynamického zistenia dostupnosti objektov až za behu aplikácie
• existencia mnohých implementácii od rôznych výrobcov s bezproblémovou
komunikáciou
• neustály vývoj
37
Nevýhody použitia architektúry CORBA:
• vysoké ceny pri vývoji, ktoré sú niekedy spôsobené licenčnými podmienkami
[13]
4.2.1. Štruktúra architektúry CORBA
Každá distribuovaná aplikácia, nie len v architektúre CORBA, je rozdelená na dve
časti: klientsku časť a serverovú časť. Vzájomne medzi sebou komunikujú cez datagramovú
sieť pomocou protokolov GIOP alebo IIOP (Internet Inter Orb Protocol). Obe časti sa ďalej
skladajú z jednotlivých modulov. Na nasledujúcom obrázku 4.1. sú znázornené najhlavnejšie
moduly.
Obrázok 4.22 Moduly architektúry CORBA [11]
Klientska časť pozostáva z [11]:
• Aplikácia klienta – je program využívajúci vzdialené objekty. Pre použitie služieb
vzdialeného objektu musí poznať jednoznačnú adresu objektu a rozhranie objektu
a to buď v dobe prekladu alebo za chodu programu , tzv. (dynamické volanie).
38
• Statické IDL Proxy – poskytuje statické rozhranie na volanie objektov a definuje
ako klient vyvolá zodpovedajúci servis na serveri.
• Dynamic Invocaton Interface(DII) – umožňuje klientovi používať rozhranie, ku
ktorému získa prístup až počas behu programu.
• ORB klienta – sprostredkováva objektové komunikačné služby čím umožňuje
objektom transparentne vysielať požiadavky a prijímať odpovede od iných
objektov.
• ORB rozhranie - obsahuje niekoľko aplikačných rozhraní pre lokálne služby
slúžiace aplikáciám
• Lokálny operačný systém – operačný systém bežiaci na danom zariadení.
Serverová časť pozostáva z [11]:
• Implementácia objektu - je kód objektu implementujúci vzdialené rozhranie
(službu).
• Objektový adaptér - prijíma volanie serverových objektov, zabezpečuje ich
aktiváciu, odovzdáva im riadenie, ruší neaktívne objekty a zabezpečuje správu
referencií objektov
• Skeleton (kostra objektu) - prevezme správu vyslanú klientom od ORB a vyberie
z nej identifikáciu danej operácie spolu s parametrami potrebnými na vyvolanie
metódy
• Dynamic skeleton interface - je obdobou DII na strane servera, ide o dynamicky
vytvorenú kostru objektu.
• ORB servera – rovnaká úloha ako v klientskej časti
• ORB rozhranie – rovnaká úloha ako v klientskej časti
• Lokálny operačný systém – operačný systém bežiaci na danom zariadení
Sieťovú časť tvoria [11]:
• GIOP a IIOP – protokoly spájajúce klientsku a serverovú časť, ktoré môžu
komunikovať nad ľubovoľným transportným protokolom.
39
4.2.2. ORB (Object Request Broker)
ORB je základnou stavebnou jednotkou technológie CORBA. Tvorí jadro na, ktorom
sú postavené komponenty vyšších úrovní. Je to softwarový prostriedok, ktorý zaisťuje
komunikáciu medzi objektmi. Jeho základnou úlohou je vytvorenie spojenia medzi
komponentmi aplikácie a zabezpečenie predania požiadaviek na ich rozhranie. Táto
požiadavka musí zabezpečiť určenie umiestnenia cieľového objektu (aké metódy objektu sú
volané, hodnoty parametrov), poslanie žiadosti k objektu a vrátenie odozvy späť k pôvodcovi
volania (klientovi). Ďalšou dôležitou úlohou je taktiež zaistenie nezávislosti komunikácie na
platforme. Všetky parametre sú pred poslaním upravené do formátu nezávislého na
platforme. Po ich prijatí sú naopak z tohto nezávislého formátu prevedené do tvaru
akceptovateľného cieľovou platformou.
4.2.3. IDL (Interface Definition Language)
Ďalším nemenej dôležitým prvkom CORBY je jazyk pre definovanie rozhrania IDL
(Interface Definition Language). Nie je to programovací jazyk, aj keď jeho syntax je vo
veľkej miere podobná C++ alebo Jave. Popis vytvorený týmto jazykom poskytuje
platformovo nezávislý popis samotných rozhraní a nie implementácií daných objektov.
Pomocou IDL príslušná implementácia objektu oznámi klientovi, ktoré operácie ponúka
a ako ich je možné vyvolať.
Objekty CORBY sú mapované do rôznych programovacích jazykov, z čoho vyplýva
že ak je definované rozhranie objektu v IDL, je možné zvoliť si ľubovoľný programovací
jazyk, pre ktorý existuje podpora IDL. A v prípade použitia konkrétneho objektu, je možné
použiť ľubovoľný programovací jazyk na jeho vzdialené požiadanie [11].
4.2.4. DII (Dynamic Invocation Interface) a DSI (Dynamic Skeleton Interface)
Pre zaistenie komunikácie medzi serverom a klientom sú využité dva moduly. Na
strane klienta je to časť DII a na strane servera DSI. Tieto komponenty sú obsiahnuté
povinne v každej implementácii. V prípade DII návrh umožňuje dynamicky za chodu
aplikácie vyvolávať metódy na rozhraní distribuovaného objektu, ktorý nebol známy v dobe
40
prekladu. Pri DSI je situácia podobná, avšak táto časť bude volanie spracovávať a operácie,
ktoré bude môcť vyvolať budú zisťované až za chodu aplikácie. DSI model sa prevažne
využíva na premostenie jednotlivých distribuovaných objektových systémov [11].
4.2.5. GIOP (General Inter Orb Protocol)
GIOP špecifikuje prenosový syntax a formát sprav pre komunikáciu medzi ORB
objektmi. Bol vytvorený s úmyslom, aby bol čo najjednoduchší. Obsahuje minimum
doplnkových protokolových vrstiev potrebných pre prenos CORBA správ medzi ORB. Tento
protokol je určený pre komunikáciu nad spojovo orientovanou transportnou službou. Jeho
výhodou je, že implementácia každého ORB-u musí poznať iba jeden protokol, bez toho aby
sa musela zaoberať sieťovou štruktúrou. Nad všeobecným formátom sa následne budujú
ďalšie protokoly, ktoré už úzko spolupracujú s konkrétnymi transportnými protokolmi,
príkladom je IIOP [11].
GIOP je charakterizovaný nasledujúcimi prvkami:
• CDR (Common Data Representation) je prenosový syntax, ktorý mapuje IDL
dátové typy do nízko úrovňovej reprezentácie aby mohli byť prenášané medzi
ORB-ami.
• TA (Transport Assumptions) popisuje veľkosť prenášaného pásma potrebného na
prenos GIOP správ a taktiež popisuje riadenie spojenia.
• Formát prenášaných správ, ktoré môžu byť transportované medzi objektmi. V
tabuľke 3.1 sú uvedené vybrané správy.
Správy protokolu GIOP, ktoré môže posielať klient sú uvedené v tabuľke 4.1 :
KlientFormát správy Popis správy
Request vyvolanie metódy vzdialeného objektuCancel Request zrušenie predchádzajúcej požiadavky Locate Request zaistenie umiestnenia vzdialeného objektuMessage Error reakcia na predchádzajúcu správu
Tabuľka 4.3 Správy protokolu GIOP vysielané klientom [12]
Správy protokolu GIOP, ktoré môže posielať server sú uvedené v tabuľke 4.2 :
41
ServerFormát správy Popis správy
Reply výsledok vyvolaniaLocate Reply indikuje, či server implementuje objekt, alebo predá volanie ďalej
Close Connection ukončenie spojeniaMessage Error reakcia na predchádzajúcu správu (zlý formát, neznáma správa)
Tabuľka 4.4 Správy protokolu GIOP vysielané serverom [12]
4.2.6. IIOP (Internet Inter Orb Protocol)
IIOP je určený výlučne pre TCP/IP zatiaľ čo GIOP môže byť využitý nad ľubovoľnou
spojovo orientovanou transportnou službou. IIOP popisuje, ako sa majú správy GIOP
prenášať nad TCP/IP. Jeho účelom je zaistiť to, že klient bude schopný komunikovať so
serverom naprogramovaným pomocou iného ORB a inej distribúcie [12].
4.2.7. Komunikácia v architektúre CORBA
Komunikácia v CORBA architektúre, je znázornená na obrázku 4.2. Klient na
zariadeni1 má lokálnu aj vzdialenú implementáciu objektu. Ďalší postup bude zameraný na
volanie vzdialenej implementácie objektu umiestnenej na zariadení 2.
Obrázok 4.23 Volanie vzdialenej implementácie objektu [13]
Ako vidieť na obrázku, ORB môže rozoznať z objektovej referencie, či sa jedná
o objekt vzdialený alebo nie, klient toto nemôže. V objektovej referencii ktorú má klient nie
je nič, čo by identifikovalo umiestnenie cieľového objektu a týmto je zabezpečená
transparentnosť umiestnenia CORBA.
42
Všetky volania, či sa jedná o lokálne alebo vzdialené sú postupované zástupnému
objektu nazývanému „zvyšok“(Stub).Tento ich ďalej postupuje ORB-u, ktorý zisťuje či
objektová referencia je lokálna alebo vzdialená. V prípade ,že referencia je vzdialená ORB
zabezpečuje zabalenie správy do formy vhodnej pre prenos po sieti a predá ju ORB-u servera
, ktorý uskutoční prevod parametrov do formy vhodnej pre platformu servera. ORB ďalej
predá správu zástupnému objektu na strane serveru ,tzv. kostre (Skeleton). Tento z nej
vyberie identifikáciu danej operácie spolu s parametrami potrebnými na vyvolanie metódy,
pretransformuje volanie a parametre na požadovaný formát a vyvolá danú metódu objektu.
Po ukončení volania metódy vzdialeného objektu pretransformuje „kostra“ výsledky alebo
chyby volania a pošle ich klientovi naspäť prostredníctvom ORB-u.
43
5. Aplikácia pre analýzu log súborov Pre tvorbu aplikácie analyzujúcej zachytenú komunikáciu v log súbore som si vybral
objektovo orientovaný programovací jazyk JAVA a to z dôvodu, že aplikácie vyvíjané
v tomto jazyku sú nezávislé na operačnom systéme a architektúre. K spusteniu programu je
potrebné aby bol na danej platforme nainštalovaný správny virtuálny stroj. Ako vývojové
prostredie som použil prostredie ECLIPSE. Je to voľne šíriteľné integrované vývojové
prostredie, ktoré je ďalej možné rozširovať za pomoci rôznych prídavných modulov.
Aplikácia bola vytvorená za účelom rýchleho nájdenia chyby v dlhých log súboroch.
Výsledná aplikácia je skomprimovaná do súboru Analyzer.jar, ktorý je priamo spustiteľný.
Jednou z úloh vytvorenej aplikácie je analyzovanie dát uložených v log súbore. Tieto
dáta obsahujú zachytenú komunikáciu medzi viacerými komunikačnými modulmi, z ktorých
je zložená základňová stanica v sieti UMTS. Tieto moduly sú založené na CORBA
architektúre a medzi sebou si posielajú rôzne informačné správy pomocou GIOP protokolu.
Hlavný modul posiela správy svojim podriadeným modulom, ktoré sú mu povinné
odpovedať v určitom stanovenom čase. Ak tento stanovený čas prekročia je to vyhodnotené
ako chyba. Ďalšou úlohou aplikácie je na základe užívateľom stanovených podmienok nájsť
požiadavku hlavného modulu, k nemu prislúchajúcu odpoveď a vyhodnotenie, či čas medzi
požiadavkou a odpoveďou spĺňa stanovenú podmienku.
Ako základ pre návrh aplikácie bol vytvorený zjednodušený diagram objektov
v jazyku UML. Tento diagram a popis jednotlivých objektov, z ktorých sa skladá je
znázornený v prílohe č.6.
5.1. Používateľské rozhranie
Užívateľské rozhranie aplikácie môžme vidieť na obrázku 5.1. Je veľmi jednoduché
a užívateľ má k dispozícii prvky, ktoré majú nasledujúcu funkčnosť:
44
Obrázok 5.24 Užívateľské rozhranie aplikácie pre analýzu .log súborov
• Pole výpisu – V tomto poli je zobrazená analýza súboru a podmienok analýzy.
• Pole načítaných podmienok – Pole v ktorom je možné načítať užívateľské
podmienky definované v súbore „filterLog.log“ alebo ich editácia a následné
uloženie.
• Filtruj – Tlačidlo „Filtruj“ slúži pre užívateľa na vyfiltrovanie datagramov
v ktorých sa nachádza reťazec zadaný v poli pre zadanie reťazca pre filtráciu.
• Otvor súbor – Po stlačení tohto tlačidla sa zobrazí adresárová štruktúra zariadenia
a je možné vybrať súbor pre analýzu.
• Nastavenie – Po stlačení tohto tlačidla sa ako prvé zobrazí okno, do ktorého je
potrebné napísať názov súboru kde bude ukladaná analýza log súboru. V prípade
ak sa už v danom adresári takýto súbor nachádza je možné ho prepísať alebo
zvoliť iný názov súboru. V ďalšom okne je potrebné nastaviť súbor, do ktorého
45
budú zapisované výsledky filtrácie na základe podmienok uvedených v súbore
„filterLog.log“ .
• Načítaj – Slúži na načítanie podmienok definovaných v súbore „filterLog.log“
• Ulož – Po stlačení tohto tlačidla budú zmeny prevedené v užívateľských
podmienkach uložené do súboru „filterLog.log“.
• Koniec – Po stlačení tohto tlačidla sa otvorí okno pre potvrdenie ukončenia
aplikácie. Ak užívateľ stlačí „Yes“ aplikácia sa ukončí ak „No“ aplikácia beží
ďalej.
5.2. Nastavenie a vzorová analýza
V tejto podkapitole bude uvedený vzorový príklad analýzy log súboru. Je možné si
vybrať z dvoch možností:
• analýza bez udania filtračných podmienok
• analýza so zadanými filtračnými podmienkami
5.2.1. Analýza bez zadania filtračných podmienok
Pri tejto analýze budú zobrazené datagramy, z ktorých je zložený log súbor. Výsledky
analýzy budú zobrazené v poli výpisu (viď príloha 3.) a taktiež sa zapíšu do prednastaveného
súboru pakety.log umiestneného v tom istom adresári ako celá aplikácia alebo si môže
užívateľ sám definovať názov výstupného súboru a to v „Nastaveniach“. Do tohto
výstupného súboru budú zapísané výsledky analýzy, kde si ich môže užívateľ neskôr pozrieť.
V prípade ak veľkosť analyzovaného súboru je väčšia ako 8MB je výstupná analýza
zapisovaná len do prednastaveného súboru alebo užívateľom definovaného súboru
v „Nastaveniach“. Je to uskutočnené z dôvodu šetrenia operačnej pamäte zariadenia
a urýchlenia analýzy.
V prílohe číslo 3. je príklad analýzy log súboru. Výpis jedného datagramu obsahuje
nasledovné položky:
• Cislo paketu – určuje, koľkí v poradí je daný datagram.
• Cas prichodu paketu – určuje čas príchodu daného datagramu v závislosti od
času referenčného datagramu, ktorým je prvý datagram.
• Velkost paketu – určuje koľko bytov obsahuje daný datagram.
46
• Linkovy protokol – určuje aký linkový protokol je použitý na linkovej vrstve.
• Sietovy protokol – určuje aký sieťový protokol je použitý na sieťovej vrstve.
• IP adr. Odosielatela – určuje IP adresu z ktorej bol daný datagram odoslaný.
• IP adr. Prijimatela – určuje IP adresu pre koho je datagram určený.
• Transportny protokol – určuje použitý transportný protokol.
• Protokol najvyssej vrstvy – určuje protokol použitý na najvyššej vrstve, ktorá je
v datagrame využitá.
• Uzivatelske data – sú to dáta, ktoré prenáša protokol najvyššej vrstvy , prevedené
do podoby zrozumiteľnej užívateľovi.
V poli podmienok sú načítané podmienky, ktoré si definoval užívateľ. V tomto type
analýzy nie sú použite.
Užívateľ ďalej môže analýzu filtrovať zadaním reťazca do pola „Zadaj retazec pre
filter“. Po potvrdení tlačidlom „Filtruj“ sa zobrazia len tie datagramy, ktoré obsahujú zadaný
reťazec.
5.2.2. Analýza so zadanými filtračnými podmienkami
Hlavným rozdielom v porovnaní s predchádzajúcou analýzou je ,že v analýze
s podmienkami je potrebné definovať súbor s podmienkami, ktoré majú presne stanovenú
štruktúru, ktorá je zobrazená v tabuľke 5.1 a ako príklad na obrázku 5.2. Na základe týchto
podmienok je možné filtrovať len datagramy, ktoré obsahujú užívateľské dáta. Súbor
s podmienkami je bežný editovateľný textový súbor. Pre činnosť aplikácie musí byť tento
súbor uložený v adresári kde sa nachádza aplikácia a jeho názov musí byť „filterLog.log“.
Je však možné napísať tieto podmienky priamo do „pola nacitancyh podmienok“ a stlačiť
tlačidlo „Ulozit“. Týmto sa vytvorí príslušný súbor filterLog, do ktorého sa uložia napísané
podmienky. V tomto súbore môže byť definované väčšie množstvo podmienok(viď. Obr.:
5.3) Taktiež sú tu analyzované datagramy ukladané do súboru “pakety.log” a analýza
podmienok je ukladaná do súboru „analyza.log“ v adresári aplikácie .
Ip adresa
Odos/Prijim
1.Datagram
PODMIENKA
2. Datagram
PODMIENKA Max. oneskorenie [ms]
47
Tabuľka 5.5 Štruktúra zadávania podmienok
[172.16.0.16] [stillAlive&!Response&!connection] [stillAliveResponse] 50Obrázok 5.25 Príklad zadania podmienok
Jednotlivé časti podmienok musia byť medzi sebou oddelené medzerou a uzatvorené
v hranatých zátvorkách. Štruktúra zadávanej podmienky sa skladá z týchto častí:
Ip adresa Odos/Prijim – je to adresa, ktorú musí mať datagram v poli IP adr. Odosielatela
alebo IP adr. Prijimatela, aby spĺňal podmienku.
1.Datagram PODMIENKA – je to podmienka, ktorú musí spĺňať datagram aby bol
považovaný za žiadosť, na ktorú je očakávaná odpoveď. Túto podmienku musia taktiež
spĺňať užívateľské dáta obsiahnuté v datagrame, ktorý vyhovuje podmienke „Ip adresa“.
Táto podmienka môže byť zložená z viacerých subpodmienok, a ich výskyt v datagrame je
určený pomocou logických operátorov súčin ( & ), súčet ( | ) a negácia (!)
2. Datagram PODMIENKA – je to podmienka, ktorú musí spĺňať datagram aby bol
považovaný za odpoveď na vyslanú žiadosť. Túto podmienku musia taktiež spĺňať
užívateľské dáta obsiahnuté v datagrame, ktorá vyhovuje podmienke „Ip adresa“. Je zložená
len s jednej podmienky a nie je možné v nej používať logické operátory.
Max. oneskorenie [ms] – je to oneskorenie, ktoré je maximálne prípustné medzi datagramom
spĺňajúcim podmienku pre 1.Datagram a datagramom spĺňajúcim podmienku pre 2.
Datagram.. Ak je táto hodnota prekročená celkový výsledok podmienky je označený za
chybný.
Obrázok 5.26 Príklad zapísania viacerých podmienok v súboreObjasnenie významu podmienok
Na obrázku 5.3 sú znázornené tri hlavné podmienky, ktoré budú vyhodnocované
v log súbore. Vysvetlenie bude venované prvej z nich. Podmienka je chápaná nasledovne:
Ak v log súbore bude nájdený datagram, ktorý má IP adresu odosielateľa alebo prijímateľa
zhodnú s IP adresou definovanou v podmienke (172.16.0.16) , tak používateľské dáta sú
kontrolované či vyhovujú podmienke (stillAlive&!Response&!connection). Ak vyhovujú tejto
podmienke tak číslo a čas príchodu tohto datagramu sú uložené a je hľadaný datagram, ktorý
48
[172.16.0.16] [stillAlive&!Response&!connection] [stillAliveResponse] 50[172.16.0.6] [stillAlive&!Response&!connection] [stillAliveResponse] 145[172.16.0.7] [stillAlive&BaseBand&!Handler|!Response&connection] [stillAliveResponse] 4
spĺňa podmienku IP adresy (172.16.0.16) a podmienku (stillAliveResponse). Ak je nájdený
takýto datagram jeho čas príchodu je odpočítaný od uloženého datagramu. Tento čas je
porovnávaný s časom maximálneho oneskorenia (50). V prípade ak je tento čas menší je
všetko v poriadku. V prípade ak je čas väčší než max. oneskorenie alebo sú nájdené dva
datagramy, ktoré spĺňajú podmienku (stillAlive&!Response&!connection) a zároveň nemajú
odpoveď je výsledok označený za chybný. Na obrázku 5.4 je znázornený výsledok analýzy
a na obrázku 5.5 súhrn všetkých správne a nesprávne vyhodnotených datagramov pre každú
podmienku.
Obrázok 5.27 Výsledok analýzy pre jednotlivé podmienky a ich vyhodnotenie
Podmienka 1 mala: 5 spravne vyhodnotenych paketov 2 casovo nespravne vyhodnotenych paketov na poziciach 15 , 472 , 1 paket ktoremu chybala odpoved na poziciach: 466 , Podmienka 2 mala: 4 spravne vyhodnotenych paketov 0 casovo nespravne vyhodnotenych paketov na poziciach 2 paketov ktorym chybala odpoved na poziciach: 456, 478Podmienka 2 mala: 4 spravne vyhodnotenych paketov 3 casovo nespravne vyhodnotenych paketov na poziciach: 11, 233, 345 0 paketov ktorym chybala odpoved na poziciach:
Obrázok 5.28 Súhrn správne a nesprávne vyhodnotených datagramov pre každú podmienku
49
HLAVNA PODMIENKA 2Paket: 8 Z IP adresy: 172.16.0.6 S poodmienkou: [stillAlive&!Response&!connection]Paket: 10 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 3.96299362 Dobre
HLAVNA PODMIENKA 3 Paket: 9 Z IP adresy: 172.16.0.7 S poodmienkou:[stillAlive&BaseBand&!Handler|!Response&connection] Paket: 11 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 4.17304039 ZLE
HLAVNA PODMIENKA 1Paket: 12 Z IP adresy: 172.16.0.16 S poodmienkou: [stillAlive&!Response&!connection]Paket: 13 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 1.09195709 Dobre
5.2.3. Vzorová analýza
Ako prvé si je potrebné zadefinovať podmienky, pre ktoré chceme aby bola analýza
uskutočnená. Pre štruktúru podmienky viď kapitolu 5.2.2. Tieto podmienky zapíšeme do
poľa načítaných podmienok a stlačíme tlačidlo „Ulozit“. Otvoríme aplikáciu, v nastaveniach
si môžme zadefinovať vlastné súbory pre výstup datagramov obsiahnutých v log súbore a pre
výstup analyzovaných podmienok. Ak si tieto súbory nedefinujeme sú použité
prednastavené: „pakety.log“ a „analyza.log“. Vyberieme si log súbor pre analýzu. V prípade
ak je analyzovaný súbor menší než 8MB výpis datagramov a splnených podmienok prebehne
do poľa výpisu a taktiež do prislúchajúcich súborov. Ak je súbor väčší než 8MB do poľa
výpisu sú zobrazené len splnené podmienky a datagramy sú vypísané len do súboru.
Výsledky analýz sú zobrazené na obrázkoch 5.4 a 5.5 . Podmienky, ktoré sú chybné sú
odsadené , aby boli okamžite viditeľné.
V prílohe číslo 5. sú zobrazené výstupy analýzy súboru „komunikacia.ioa“ umiestneného
na CD, ktoré je súčasťou prílohy číslo 7. Taktiež je tam možné nájsť súbor filterLog
s podmienkami podľa ktorých bola analýza uskutočnená.
5.3. Možnosti rozšírenia aplikácie a znovu použitie tried
Vytvorená aplikácia nie je určená k zachytávaniu datagramovej komunikácie medzi
modulmi, ale k analýze už zachytených datagramov. Plne spĺňa požiadavky, ktoré boli
stanovené v zadaní diplomovej práce: dokáže načítať súbor umiestnený na lokálnom alebo
sieťovom disku. Má používateľské rozhranie, v ktorom si môže užívateľ definovať vlastné
výstupné súbory do ktorých budú zaznamenávané výsledky analýzy. Môže si definovať
filtračné podmienky, na základe ktorých budú zobrazené len tie datagramy , ktoré vyhovujú
tejto podmienke. Ďalšou možnosťou ako analyzovať súbor je definovanie podmienok
v textovom súbore, z ktorého budú načítané a v závislosti na nich uskutočnená analýza log
súboru. V neposlednom rade veľkou výhodou tejto aplikácie je ľahká modifikovateľnosť
programového kódu zabezpečená objektovo orientovaným prístupom a okomentovaním
každej z metód.
50
5.3.1. Možnosti rozšírenia aplikácie
Z hľadiska jej ďalšieho rozšírenia by bolo vhodné upraviť aplikáciu tak aby priamo
odchytávala datagramovu komunikáciu v reálnom čase, dokázala by ju analyzovať podľa
zadaných podmienky a vyhodnotiť. Týmto by bol ušetrený čas, ktorý je potrebný aplikácii na
načítanie datagramov obsiahnutých v súbore. Tento čas pri súboroch veľkých niekoľko GB ,
môže byť až niekoľko hodín.
Taktiež by bolo vhodné dopracovať komprimáciu zobrazovaného obsahu, aby bolo
možné zobraziť väčšie súbory. Ďalej by bolo vhodné optimalizovať veľkosť zabraného
miesta v operačnej pamäti a prístupu aplikácie na disk..
5.3.2. Znovu použitie tried
Keďže pri implementácii aplikácie bol využitý objektovo orientovaný prístup
programovania, boli vytvorené aj znova použiteľné triedy. Jednou z nich je trieda
„naplnPaket“(viď príloha. č.4), v ktorej je definovaná väčšina základných vlastností
datagramu (protokoly vrstiev, IP adresy). Je možné z nej čítať a zapisovať pomocou
nastavovacích a čítacích metód. Zdrojový kód triedy naplnPaket je umiestnený prílohe č.4.
Ďalšou triedou, ktorá je znovu použiteľná za určitých podmienok je trieda
„Linkova_A_Sietova“. Táto trieda dekóduje jednotlivé položky datagramu ako sú: linkový
protokol, veľkosť a čas príchodu datagramu, sieťový protokol a IP adresy. Výstupom triedy
sú reťazce reprezentujúce jednotlivé položky. Vstupnými údajmi jednotlivých metód triedy
sú polia typu integer, ktoré obsahujú načítané byty z log súboru.
Taktiež ďalšie triedy je možné za určitých podmienok a po menších úpravách využiť
pri implementácii iných podobných aplikácii.
51
6. ZáverCiele práce sú rozdelené do dvoch častí. Prvá časť je teoretická. Pojednáva o
vybraných protokoloch spadajúcich pod jednotlivé vrstvy referenčného modelu a popisuje
CORBA štandard. Druhá časť je praktická. Táto popisuje vytvorenú aplikáciu, ktorá
analyzuje datagramovu komunikáciu.
Protokol linkovej vrstvy HDLC bol základ, na ktorom bol postavený protokol PPP,
ktorý je využívaný ako protokol pre prístup do internetu.
Protokol IP je pevným základom, na ktorom sú postavené terajšie siete. Jeho verzia
číslo 4 pre nedostatok adries začína byť pomaly nahradzovaná verziou 6, ktorá prináša nové
prvky ako podporu mobility, lepšiu kvalitu služby, atď. S nástupom poskytovania hlasových
služieb založených na IP protokole začína byť väčšmi využívaný transportný protokol UDP,
ktorý nekladie také veľké výpočtové nároky na užívateľské zariadenia. TCP protokol je
využívaný v službách, ktoré vyžadujú vytvorenie spojenia a poskytuje vyššiu kvalitu služby
než UDP. Protokol GIOP sa taktiež začína dostávať do popredia ako sprostredkovateľ
prenosu medzi objektmi distribuovaných systémov v architektúre CORBA. FTP je veľmi
rozšíreným protokol pre prenos súborov avšak neposkytuje zabezpečenie mena a hesla
a preto je lepšie použiť jeho zabezpečenú formu SFTP (Secure FTP).
Vytvorená aplikácia má jednoduché používateľské rozhranie a umožňuje zobrazenie
jednotlivých datagramov, z ktorých sa skladá log súbor. Je možné filtrovať zobrazené
datagramy zadaním reťazca do príslušného poľa. Ďalej je možné definovať podmienky, ktoré
spĺňujú predpísaný formát a na základe nich vykonať analýzu log súboru.
Pri implementácii bola vytvorená univerzálna trieda „naplnPaket“, ktorá má vlastnosti
komunikačného datagramu a taktiež je jednoducho doplniteľná o nové možnosti. Táto trieda
môže byť využitá pri vývoji podobných aplikácií.
52
7. Zoznam použitej literatúry:[1] Blunár K., Diviš Z.: Telekomunikačné siete, EDIS, Žilina, 2000
[2] Dostálek L., Kabelová A..: Velký průvodce protokoly TCP/IP a systémem DNS,
Computer Press, Praha, 2000 . ISBN 80-7226-193-2
[3] Point- to – Point Protocol.[online] .April 2007. [cit. 14-12-2006]. Dostupné na internete:
http://en.wikipedia.org/wiki/Point-to-Point_Protocol .
[4] The Point-to-Point Protocol (PPP). [online]. Jul 1994. [cit. 14-12-2006]. Dostupné na
internete: http://www.ietf.org/rfc/rfc1661.
[5] The Point-to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over
Point-to-Point Links. [online]. Maj 1992. [cit. 15-12-2006]. Dostupné na internete:
http://www.ietf.org/rfc/rfc1331.txt.
[6] INTERNET PROTOCOL. [online]. September 1981. [cit 3-1-2007]. Dostupné na
internete: http://www.ietf.org/rfc/rfc791.txt.
[7] Internet Protocol, Version 6 (IPv6) Specification. [online]. December 1998. [cit 5-1-
2007]. Dostupné na internete: http://www.ietf.org/rfc/rfc2460.txt.
[8] IPv6 Datagram Main Header Format. [online]. September 2005. [cit. 11-1-2007].
Dostupné na internete:
http://www.tcpipguide.com/free/t_IPv6DatagramMainHeaderFormat-2.htm.
[9] FILE TRANSFER PROTOCOL (FTP). [online]. Oktober 1994. [cit. 21-1-2007].
Dostupné na internete: http://www.w3.org/Protocols/rfc959/4_FileTransfer.html.
53
[10] TCP/IP komunikácia (server/klient) v OS Linux. [online]. Februar 2004. [cit. 30-1-
2007]. Dostupné na internete: http://www.flatulent.szm.sk/linux/ine.html .
[11] CORBA a distribuované systémy - Andrew S. Tanenbaum, Maarten van Steen.:
Distributed Systems: Principles and Paradigms, Prentice-Hall, 2002, ISBN: 0-13-
088893-8
[12] Common Object Request Broker Architecture: Core Specification. [online]. Marec
2004. [cit 23-3-2007]. Dostupné na internete: http://www.omg.org/docs/formal/04-03-
12.pdf .
[13] CORBA BASICS. [online]. Marec 2007. [cit 23-3-2007]. Dostupné na internete:
http://www.omg.org/gettingstarted/corbafaq.htm#WhatIsIt .
[14] Rastaocny K.,Objektovo Orientované Modelovanie – Podklady pre prednasky
s predmetu systemy s vysokou integritou. 2003. [cit 2-4-2007]. Dostupné na internete:
http://fel.uniza.sk/kris/4_rocnik/F_OOM_UML.pdf .
[15] UML 2.1 Tutorial. [online]. Oktober 2006. [15-4-2007]. Dostupné na internete:
http://www.sparxsystems.com.au/resources/uml2_tutorial/index.html .
54
Čestné vyhlásenie
Prehlasujem, že som zadanú diplomovú prácu vypracoval samostatne, pod odborným
vedením vedúceho diplomovej práce Ing. Vladimíra Pšenáka a používal som len literatúru
v práci uvedenú.
Súhlasím so zapožičiavaním diplomovej práce.
V Žiline, dňa: 18.5.2007 .................................
podpis diplomanta
Poďakovanie
Touto cestou chcem poďakovať, všetkým ktorí mi pri tvorbe diplomovej práce
pomohli, hlavne vedúcemu diplomovej práce Ing. Vladimírovi Pšenákovi za jeho cenné rady,
pripomienky, dôležité informácie a pomoc pri vypracovaní diplomovej práce.
Veľká vďaka patrí taktiež mojím rodičom za ich veľkú podporu a porozumenie počas
celého štúdiu.
Ešte raz Ďakujem.
Žilinská univerzita v ŽilineElektrotechnická fakultaKatedra telekomunikácií
Aplikácia pre analýzu a spracovanie základných typov
protokolov komunikačných sietí
Prílohová časť
Bc. Michal Ptačin
2007
P1. Hexadecimálne hodnoty reprezentujúce protokoly skupiny 1, 2 a 3.
P2. Rozširujúce hlavičky IP protokolu verzie 6.
P3. Príklad analýzy log súboru.
P4. Znovu použiteľná trieda naplnPaket.
P5. Výstup analýzy pre súbor shortCom.ioa a podmienky, pre ktoré bola analýza
vykonaná.
P6. Zjednodušený diagram objektov aplikácie analyzujúcej log súbory s popisom
jednotlivých objektov
P7. CD obsahujúce aplikáciu, log súbor a súbor s podmienkami.
P 1. Hexadecimálne hodnoty reprezentujúce protokoly skupiny 1 , 2 a 3.
Hex. Hodnota Názov protokoluc021 Link Control Protocol (LCP)c023 Password Authentication Protocol (PAP)c025 Link Quality Report
c223
Challenge Handshake Authentication Protocol
(CHAP)Tabuľka 1. Hexadecimálne hodnoty reprezentujúce protokoly skupiny 1.
Hexa
Hodnota Názov kontrolného protokolu8021 Internet Protocol Contr. Prot.
8023
OSI Network Layer Contr.
Prot.8025 Xerox NS IDP Contr.Prot.8027 DECnet Phase IV Contr. Prot.8029 Appletalk Contr. Prot.802b Novell IPX Contr. Prot.8035 Banyan Vines Contr. Prot.804d IBM SNA Contr. Prot.8057 IP V6 Contr. Prot.
Tabuľka 2. Hexadecimálne hodnoty reprezentujúce protokoly skupiny 2
Hexa
hodnota Názov protokolu0021 Internet Protokol0023 OSI Network Layer0025 Xerox NS IDP0027 DECnet Phase IV0029 Appletalk002b Novell IPX0035 Banyan Vines004d IBM SNA0057 IP v 600ff Rezervované
Tabuľka 3. Hexadecimálne hodnoty reprezentujúce protokoly skupiny 3
P2. Rozširujúce hlavičky IP protokolu verzie 6
Hex. Hodnota Dec. Hod. Protokol / Rozširujúca hlavička0 0 Informácia pre smerovače (Hop-by-Hop)1 1 ICMPv42 2 IGMPv44 4 IP v IP enkapsulácii6 6 TCP8 8 EGP11 17 UDP29 41 IPv62B 43 Smerovacia informácia (Routing ext.header)2C 44 Záhlavie fragmentu (Fragm. Ext.header)2E 46 Protokol RRP32 50 Bezpečnostná hlavička (Encaps. Security Header)33 51 Autentizačná hlavička (Authentiacation Header)3A 58 Protokol ICMP3B 59 Nenasleduje ďalšia hlavička3C 60 Iná voľba
P4. Znovu použiteľná trieda naplnPaket
public class NaplnPaket {
/* vlastnosti objektu */
private int cisloPaketu;
private String prot2Vrstva;
private double absolutTime;
private int velkostPaketu;
private String prot3Vrstva;
private String ipAdresOdos = "";
private String ipAdresPri = "";
private String prot4Vrstva = "";
private String prot7Vrstva = "";
private String uzivatelData;
public NaplnPaket(int cisloPaketu, String prot2Vrstva, double absolutTime,
int velkostPaketu, String prot3Vrstva, String ipAdresOdos,
String ipAdresPri, String prot4Vrstva, String prot7Vrstva,
String uzivatelData) {
this.cisloPaketu = cisloPaketu;
this.prot2Vrstva = prot2Vrstva;
this.absolutTime = absolutTime;
this.velkostPaketu = velkostPaketu;
this.prot3Vrstva = prot3Vrstva;
this.ipAdresOdos = ipAdresOdos;
this.ipAdresPri = ipAdresPri;
this.prot4Vrstva = prot4Vrstva;
this.prot7Vrstva = prot7Vrstva;
this.uzivatelData = uzivatelData;
}
/* konstruktor prazdny */
public NaplnPaket() {
}
public void setCisloPaketu(int cisloPaketu) {
this.cisloPaketu = cisloPaketu;
}
public int getCisloPaketu() {
return this.cisloPaketu;
}
public void setProt2Vrstva(String prot2Vrstva) {
this.prot2Vrstva = prot2Vrstva;
}
public String getProt2Vrstva() {
return this.prot2Vrstva;
}
public void setAbsolutTime(double absolutTime) {
this.absolutTime = absolutTime;
}
public double getAbsolutTime() {
return this.absolutTime;
}
public void setVelkostPaketu(int velkostPaketu) {
this.velkostPaketu = velkostPaketu;
}
public int getVelkostPaketu() {
return this.velkostPaketu;
}
public void setProt3Vrstva(String prot3Vrstva) {
this.prot3Vrstva = prot3Vrstva;
}
public String getProt3Vrstva() {
return this.prot3Vrstva;
}
public void setIpAdresOdos(String ipAdresOdos) {
this.ipAdresOdos = ipAdresOdos;
}
public String getIpAdresOdos() {
return this.ipAdresOdos;
}
public void setIpAdresPri(String ipAdresPri) {
this.ipAdresPri = ipAdresPri;
}
public String getIpAdresPri() {
return this.ipAdresPri;
}
public void setProt4Vrstva(String prot4Vrstva) {
this.prot4Vrstva = prot4Vrstva;
}
public String getProt4Vrstva() {
return this.prot4Vrstva;
}
public void setProt7Vrstva(String prot7Vrstva) {
this.prot7Vrstva = prot7Vrstva;
}
public String getProt7Vrstva() {
return this.prot7Vrstva;
}
public void setUzivatelData(String uzivatelData) {
this.uzivatelData = uzivatelData;
}
public String getUzivatelData() {
return this.uzivatelData;
}
}
P 5. Výstup analýzy pre súbor shortCom.ioa a podmienky, pre ktoré bola analýza vykonaná
Súbor bol vyhodnocovaný vzhľadom na nasledujúce podmienky:
Vysledok analyzyHLAVNA PODMIENKA 2
Paket: 2 Z IP adresy: 172.16.0.6 S poodmienkou: [stillAlive&!Response&!connection]
Paket: 4 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 4.3 Dobre
HLAVNA PODMIENKA 3
Paket: 3 Z IP adresy: 172.16.0.7 S poodmienkou: [stillAlive&BaseBand&!Handler|!Response&connection]
Paket: 5 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 4.1 Dobre
HLAVNA PODMIENKA 1
Paket: 6 Z IP adresy: 172.16.0.16 S poodmienkou: [stillAlive&!Response&!connection]
Paket: 7 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 1.0001 Dobre
HLAVNA PODMIENKA 2
Paket: 8 Z IP adresy: 172.16.0.6 S poodmienkou: [stillAlive&!Response&!connection]
Paket: 10 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 3.9001 Dobre
HLAVNA PODMIENKA 3
Paket: 9 Z IP adresy: 172.16.0.7 S poodmienkou: [stillAlive&BaseBand&!Handler|!Response&connection]
Paket: 11 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 4.1 Dobre
HLAVNA PODMIENKA 1
Paket: 12 Z IP adresy: 172.16.0.16 S poodmienkou: [stillAlive&!Response&!connection]
Paket: 13 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 1.1001 Dobre
HLAVNA PODMIENKA 2
Paket: 15 Z IP adresy: 172.16.0.6 S poodmienkou: [stillAlive&!Response&!connection]
Paket: 17 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 4.1001 Dobre
HLAVNA PODMIENKA 3
Paket: 16 Z IP adresy: 172.16.0.7 S poodmienkou: [stillAlive&BaseBand&!Handler|!
Response&connection]
Paket: 18 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 4.2001 Zle
HLAVNA PODMIENKA 1
[172.16.0.16] [stillAlive&!Response&!connection] [stillAliveResponse] 5
[172.16.0.6] [stillAlive&!Response&!connection] [stillAliveResponse] 10[172.16.0.7] [stillAlive&BaseBand&!Handler|!Response&connection] [stillAliveResponse] 4.1
Paket: 24 Z IP adresy: 172.16.0.16 S poodmienkou: [stillAlive&!Response&!connection]
Paket: 25 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 1.1001 Dobre
HLAVNA PODMIENKA 2
Paket: 31 Z IP adresy: 172.16.0.6 S poodmienkou: [stillAlive&!Response&!connection]
Paket: 33 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 4.2001 Dobre
HLAVNA PODMIENKA 3
Paket: 32 Z IP adresy: 172.16.0.7 S poodmienkou: [stillAlive&BaseBand&!Handler|!
Response&connection]
Paket: 34 Z IP adresy: 172.16.0.1 S podmienkou [stillAliveResponse] Rozdiel = 4.4 Zle
------------------------------------------------------------------------------------
Sumár vyhodnocovaných podmienok
Podmienka 1 mala:
3 spravne vyhodnotenych paketov
0 casovo nespravne vyhodnotenych paketov na poziciach
0 paketov ktorym chybala odpoved na poziciach:
Podmienka 2 mala:
4 spravne vyhodnotenych paketov
0 casovo nespravne vyhodnotenych paketov na poziciach
0 paketov ktorym chybala odpoved na poziciach:
Podmienka 3 mala:
2 spravne vyhodnotenych paketov
2 casovo nespravne vyhodnotenych paketov na poziciach 18 , 34 ,
0 paketov ktorym chybala odpoved na poziciach:
P6. Zjednodušený diagram objektov aplikácie analyzujúcej log súbory s popisom
jednotlivých objektov
Popis objektov
GuiBean – rozhranie interagujúce s používateľom. Obsahuje tlačidlá, nadpisy, polia výpisu.
Analýza – výkonné jadro aplikácie, do ktorého vstupujú požiadavky používateľa,
analyzovaný súbor a podmienky pre filtráciu. Aplikácia na základe týchto
vstupov analyzuje log súbor. Výstupy aplikácie sú zobrazené v GuiBean
a zapísané do výstupných súborov pakety a analyza.
Log Súbor – analyzovaný súbor
flterLog – súbor obsahujúci podmienky filtrácie
pakety – výstupný súbor, do ktorého sú zapísané datagramy obsiahnuté v log súbore
analyza – výstupný súbor, do ktorého sú zapísané výsledky analýzy na základe
podmienok zo súboru filterLog.