Real-time analyzátor protokolů přenosu VolP. Univerzita Karlova v Praze Matematicko-fyzikální fakulta. Michal Dvořák DIPLOMOVÁ PRÁCE

Rozměr: px
Začít zobrazení ze stránky:

Download "Real-time analyzátor protokolů přenosu VolP. Univerzita Karlova v Praze Matematicko-fyzikální fakulta. Michal Dvořák DIPLOMOVÁ PRÁCE"

Transkript

1 Univerzita Karlova v Praze Matematicko-fyzikální fakulta DIPLOMOVÁ PRÁCE Michal Dvořák Real-time analyzátor protokolů přenosu VolP Katedra softwarového inženýrství Vedoucí diplomové práce: Doc. Ing. Václav Jirovský, CSc. Studijní program: Informatika, Softwarové systémy

2 Rád bych poděkoval svému vedoucímu, docentu Václavu Jírovskému, za odborné rady a trpělivost. Dále děkuji panu inženýrovi Jiřímu Malkovskému z Českého Telecomu za poskytnutí poslední verze doporučení ITU-T H.225, H.245 a H.323 Implementers Guide. Prohlašuji, že jsem svou diplomovou práci napsal samostatně a výhradně s použitím citovaných pramenů. Souhlasím se zapůjčováním práce. V Praze dne ", 2

3 Obsah 1 o protokolech voice over IP H základní inform.ace Topologie sítě H H protokoly H Call Signalling H RAS H RTP RTCP Audio/video kodeky Datové aplikace (V. 150, T.120, T.38) 7 2 Vymezení cílů práce Jaké informace by měl program detekovat Předběžné technické požadavky a omezení. 8 3 Podrobněj ší analýza problému, H spojovací a rozpojovací procedury 10 4 Návrh implementace Detekce hovoru Dekódování zpráv protokolů H.225 a H Návrh aplikace Rozdělení aplikace do vláken 17 5 Detaily implementace Důležité třídy, Zachytávání a analýza dat Práce se síťovými protokoly výstupy programu Schéma datového toku v aplikaci Konkrétní implementace abstraktních tříd 24 6 Závěr 27 7 Seznam použité literatury 28 3

4 Abstrakt Název práce: Real-time analyzátor protokolů přenosu Vol? Autor: Michal Dvořák Katedra (ústav): Katedra softwarového inženýrství Vedoucí diplomové práce: Doc. Ing. Václav Jirovský, CSc. Abstrakt: Práce má za cíl na základě studia standardů pro přenos hlasových služeb sítí internet navrhnout aplikaci pracující v reálném čase a umožňující sledovat a vyhodnocovat tento typ provozu. Práce se zaměřuje na sledování standardu H 323. Součástí práce je i implementace. Klíčová slova: h.323 voip monitorování Title: Real-time analyzer ofvoip transmission protocols Author: Michal Dvořák Department: Department ofsoftware Engineering Supervisor: Doc. Ing. Václav Jirovský, CSc. Supervisor's address:jirovsky@ksi.ms.mf!cuni.cz Abstract: This thesis' goal is to design an application which would allow real-time monitoring and analyzing ofservices for transferring voice over the Internet network, based on the study oj the relevant standards. The thesis focuses on monitoring the H323 standard. An implementation ts a part ojthis thesis. Keywords: h.323 voip monitoring 4

5 1 O protokolech voice over IP Myšlenka internetové telefonie je už poměrně stará 1, nicméně až v posledních několika letech začala být kapacita průměrných internetových linek dostatečná pro její masové uvedení do praxe. Spolu s neustálým rozšiřováním této technologie se přirozeně objevuje také potřeba tento druh komunikace monitorovat a údaje o ní zaznamenávat pro potřeby pozdější analýzy. Existuje několik různých standardů pro implementaci VoIP, v současné době jsou hlavní zajímavé dva: H starší standard organizace ITU-T (International Telecommunication Union, Telecommunication Section) SIP - novější standard organizace IETF (Internet Engineering Task Force) Tato práce bude pokrývat starší standard H H základní informace Standard H.323 byl publikován roku 1996 jakožto základ pro datovou, hlasovou a obrazovou komunikaci v sítích s paketovým přenosem dat. Zaměřuje se obzvláště na sítě, které negarantují kvalitu služby - tedy pakety se v nich mohou ztrácet a nedají se prioritizovat. Není závislý na konkrétních síťových technologiích ani topologiích, cílem bylo, aby se dal nasadit pokud možno kdekoliv. H.323 je takzvaný "zastřešující" standard, protože se sám odkazuje na celou řadu jiných standardů ITU. Vychází ze starších telekomunikačních standardů, kupříkladu Q.931, což je signalizační protokol v síti ISDN. V síti H.323 tento protokol využívá a rozšiřuje protokol H.225. Abychom pochopili, jakvlastně síť H.323 funguje, podívejme najejí vlastnosti blíže Topologie sítě H.323 Síť H.323 se skládá ze čtyř hlavních typů komponent (v síti nemusejí být přítomny všechny): 1. terminály 2. brány 3. správci 4. jednotky Meu Terminály Terminály představují koncové body každého spojení v síti H.323. Terminál musí podporovat přenos zvuku pomocí standardu G.711 a řídící protokoly H.225, H.245 a RAS. Případně může podporovatjiné audio kodeky, přenos videa nebo dat. Brány Brána slouží k propojení sítě H.323 se sítí fungující na principu přepojování okruhů, typicky s klasickou telefonní sítí nebo s ISDN. Má za úkol konverzi různých datových formátů a řídících funkcí použitých v rámci spojení. Bránaje nepovinný prvek sítě H Za průkopnickou práci v této oblasti se dá považovatnetwork Voice Protocol, který poprvé implementoval v roce 1973 Danny Cohen z University of Southem Califomia v prostředí tehdejšího ARPANETu. Protokol je popsán v RFC

6 6 Správci Správce (v originále Gatekeeper) patří také mezi nepovinné prvky a poskytuje různé řídící funkce. Každý správce má přidělený určitý rozsah působnosti (tzv. zónu) a všechny terminály v této zóně jsou povinny jeho služeb využívat. Hlavní funkce správce jsou překlad adres, služby pro navazování či odmítání hovorů a správa přenosového pásma. Jednotky MCU Jednotky MeD (multipoint control unit) se používají při konferencích mezi více než dvěma uživateli. Starají se o správné navázání a ukončení vícebodového spojení, míchání audio a video proudů a správnou distribuci dat H protokoly Jak už bylo uvedeno, je H.323 standardem zastřešujícím pod sebou řadu různých komunikačních a jiných protokolů. Na následujícím obrázku je seznam těch základních, implementovaných nad sítí TCP/IP. RTCP Obr. 1: Protokoly použité ve standardu H.323 Funkce jednotlivých protokolů jsou následující: H Call Signalling Protokol Call Signalling se používá pro navázání a ukončení spojení a jeho podpora je tak pro

7 7 zařízení odpovídající standardu H.323 zcela klíčová - bez něj se prostě nikam nedovoláme. Je částečně založen na protokolu Q.931, což je signalizační protokol používaný v síti ISDN a jeho použití usnadňuje vzájemné propojení sítí H.323 a ISDN. Tomuto protokolu budeme nadále říkat zkráceně H H RAS Protokol pro signalizaci mezi terminálem a správcem. Pomocí něj se terminály II správce registrují a žádají o povolení navázat spojení. Tomuto protokolu budeme nadále říkat zkráceně RAS H.245 Flexibilita standardu H.323 vyžaduje, aby se koncová zařízení před zahájením audio/video komunikace dohodla na vzájemně kompatibilních nastaveních. Protokol H.245 se stará o výměnu informací o schopnostech jednotlivých zařízení (co se týče přenosu zvuku a obrazu) otevírání a zavírání logických kanálů (audio, video, data) řízení toku dat RTP RTP (Real-time Transport Protocol) zajišťuje přenos audiovizuálních dat v reálném čase. Přenos se provádí pomocí paketů, kdy každý paket je opatřen časovým razítkem a číslem v sekvenci, což umožňuje cílovému zařízení přehrát pakety ve správném pořadí, co nejlépe se vyrovnat se ztrátou paketu, případně zahodit duplicitní pakety RTCP Real-time Transport Control Protocol. Doplňkový protokol k RTP - implementuje jeho řídící funkce Audio/video kodeky Implementují funkce pro převádění audiovizuálních informací do digitální podoby a zpět Datové aplikace (V.150, T.120, T.38) Slouží pro přenos textu, obrázků či jakýchkoliv jiných dat, které je potřeba přenášet mimo základní audiovizuální kanály. Tyto protokoly nespadají do rámce této práce a v dalším textu je budeme ignorovat.

8 2 Vymezení cílů práce Výsledkem mé práce by měla být sonda, umožňující monitorovat komunikační provoz podle standardu H.323 na síti TCP/IP. Měla by být schopna zachytit hovory probíhající na jednom síťovém segmentu a zaznamenat o nich důležité statistické informace. Tyto informace by měla být schopna jednak zobrazit, jednak uložit pro pozdější zpracování. Pro jednoduchost se omezíme na hovory s dvěma konferencí necháme na další případné rozšíření. 2.1 Jaké informace by mělprogram detekovat koncovými body. Detekci a analýzu Samozřejmě v první řadě síťovou adresu volajícího a volaného, čas zahájení a ukončení hovoru. Tyto požadavky vyplývají zcela přirozeně ze zadání práce. A co dále? Nabízí se třeba sledování šířky přenosového pásma zabrané daným hovorem. Na druhý pohled se ovšem tato informace jeví jako méně atraktivní - programů na monitorování vytížení sítě existuje mnoho, pro získání těchto informací člověk nepotřebuje aplikaci monitorující specificky provoz VoIP. Na druhou stranu se při znalosti použitých protokolů jistě dají z probíhajícího spojení vyčíst atributy, které obecné síťové monitory nezjistí. Jako příklad byly vybrány aliasy, neboli textové popisky terminálů účastnících se spojení, a to, jestli při hovoru probíhala signalizace DTMF či nikoliv. Signály DTMF představují tzv. "tónovou volbu" a jejich detekci navrhl Ing. Jiří Malkovský z '\tl Ceského Telecomu, kterému by se taková informace hodila při detekci takzvaného telekomunikačního fraudu, při kterém si někdo pronajme od ČT internetovou linku a poté skrze ni poskytuje telefonní služby. Volání přes takovou službu vypadá pak tak, že volající se přes standard H.323 připojí k poskytovatelově počítači a pak přes tónovou volbu zadá číslo telefonu, kam chce skutečně volat. Takže pokud je některý počítač podezřelý z telekomunikačního fraudu, může informace o tom, jestli při hovorech na něj směřovaných dochází či nedochází k přenosu signálů DTMF, podezření bud' potvrdit, nebo vyvrátit. Informací, které můžeme uchovávat je samozřejměmnohem více. Dekódování obrazu a videa v reálném čase kvůli výpočetní náročnosti (v případě mnoha hovorů naráz) pravděpodobně nepřipadá v úvahu, ani k němu není žádný zvláštní důvod. Ale audiovizuální data by se dala kupříkladu zachytávat a ukládat pro pozdější přehrání. Dal by se zapisovat seznam použitých kodeků pro každý hovor. I ta zmíněná zabraná šířka přenosového pásma by se nakonec dala měřit a ukládat. Nicméně pro základní funkčnost zcela postačí údaje uvedené v předchozích odstavcích. 2.2 Předběžné technické požadavky a omezení Jaké technické aspekty programu se dají určit už v této fázi? V první řadě musí program zjevně být schopen zachytávat veškerý dostupný síťový provoz. K tomuto účelu existuje na unixových systémech knihovna libpcap, na Windows její obdoba WinPcap ([1]). Což nás přivádí k otázce vývojového prostředí. vývoj bude probíhat na platformě Windows. Je to čistě z toho důvodu, že je na něj autor práce zvyklý. Pokud by se v průběhu práce ukázalo, že toto prostředí s sebou přináší nějaké nezanedbatelné nevýhody, bude zvážena možnost změny vývojové platformy na unixovou. Tak jako tak, výsledný kód by měl být pokud možno platformově nezávislý, neboť ne každý je fanoušek operačních systémů od Microsoftu. Není to sice priorita, ale snaha bude psát kód tak, aby jeho případná portace na jiný operační systém nebyla příliš složitá.

9 Jako programovací jazyk byl zvolen C++, který produkuje výkonný nativní binární kód a přitom umožňuje objektový přístup, který (při správném použití) vede k relativně přehlednému zdrojovému kódu. Aplikaci by mělo být možné nasadit i na sítě se značně objemným provozem. S objemem přenesených dat a nárůstem počtu současných spojení standardu H.323 totiž zjevně naroste i výpočetní náročnost a může se snadno stát, že ani nejvýkonnější dostupný procesor nebude potřebám real-time analýzy dostačovat. Aplikace by tudíž měla být schopna využít možností víceprocesorových strojů, z čehož vyplývá, že by měla být v každém případě vícevláknová. Tím samozřejmě vznikne přidaná práce se synchronizací jednotlivých vláken, zároveň však bude naše aplikace škálovatelná. Pokud se podíváme na současnou nabídku aplikací, umožňujících monitorování provozu H.323, zjistíme, že je jich velmi málo a všechny jsou komerční. Tady se naše implementace může oproti konkurenci vydělit tím, že bude otevřená a dostupná zdarma. Z toho vyplývá požadavek na to, aby, pokud při vývoji použijeme knihovny třetích stran, byly tyto pokud možno také otevřené a zdarma. Knihovna WinPcap, kterou použijeme k zachytávání síťového provozu tuto podmínku splňuje. Nakonec by aplikace měla být rozšiřitelná, a to jak ve smyslu sledování jiných komunikačních protokolů, než H.323, tak ve smyslu fungování nad jinými síťovými technologiemi, než je nejobvyklejší TCP/IP. Q

10 1(\ 3 Podrobnější analýza problému v této kapitole bychom se měli podrobněji podívat na to, jakou funkčnost musí naše aplikace mít, aby mohla splnit cíle uvedené v kapitole 2 a jaké problémy bude muset překonat. Začneme tím, že se podrobněji podíváme na provoz sítě H H spojovací a rozpojovací procedury Pokud máme monitorovat hovory podle standardu H.323, musíme v první řadě umět detekovat zahájení a ukončení spojení. Podívejme se tedy podrobněji na kroky potřebné k ustavení a zrušení spojení tohoto standardu. Budeme uvažovat síť se dvěma terminály a jedním správcem. (Obrázky a popisy procedur vycházejí z dokumentu "ITU-T Recommendation H.323" [3]) Zahájení hovoru T1 1. ARQ ,---,-_.,-"_.,-".". 2. ACF _.---_...- ~---_.- 4. CALL PROCEEDING Správce 3. SETUP T2 I I I 1 7. ALERTING 8. CONNECT ----~ H RAS ~ H Call Signalling Obr. 2: Ustaveni hovoru 1. Terminál Tl žádá správce o povolení přístupu k sítí pomocí zprávy ARQ (Admission Request) protokolu RAS. 2. Správce povoluje terminálu Tl přístup zprávou ACF (Admission Confinn) protokolu RAS. 3. Terminál Tl posílá terminálu T2 zprávu Setup protokolu H.225 a žádá tak o spojení. 4. T2 odpovídá zprávou Call Proceeding. 5. Nyní musí T2 požádat správce o povolení přijmout hovor, činí tak znovu pomocí zprávy ARQ. 6. Správce povoluje zprávou ACF terminálu T2 přijetí hovoru. 7. Terminál T2 zpravuje terminál Tl o ustavení spojení (zatím pouze na úrovni protokolu H.225) zprávou Alerting. (Na straně T2 nyní "vyzvání telefon'") 8. Terminál T2 potvrzuje přijetí hovoru zprávou Connect protokolu H.225. (Uživatel na

11 " 0'0 11 straně T2 "zvedl sluchátko".) Zahájení hovoru - pokračování T1 l.. I i I Správce i 10. TerminalCapabilitySetAck ~. ~_1~_~ ~l1ni ~~I<::ap~~nitySe~. 9. TerminalCapabilitySet T2 I 12. TerminalCapabilitySetAck...,. ~ Op~~LogicaIChannel.. ~ 14.0penLogicalChannelAck... "......,,"'..,. 15. OpenLogicalChannel ,..,,,, ". 16. OpenLogicalChannelAck i ~ II I :... H.245 Obr. 3: Řidicl spojeni H Mezi terminály je ustaven komunikační kanál protokolu H.245. Tl posílá tímto protokolem zprávu TerminalCapabilitySet, ve které dává terminálu T2 vědět, jaké audio/video/datové přenosy podporuje a s jakými kodeky. 10. T2 potvrzuje příjem zprávou TerminalCapabilitySetAck. 11. T2 posílá Tl seznam svých podporovaných formátů komunikace a Tl to zprávou TerminalCapabilitySetAck potvrzuje. 13. Tl otevírá komunikační kanál (pro přenos audia/videa/dat) zprávou openlogicalchanne1. Data tohoto kanálu budou přenášena pomocí transportního protokolu RTP. Zároveň zpráva obsahuje transportní adresu (IP adresu a port), kterou Tl vyhradil řídícímu protokolu RTCP. 14. T2 potvrzuje založení jednosměrného komunikačního kanálu (z Tl do T2) zprávou openlogicalchannelack. Tato zpráva obsahuje transportní adresu, na které T2 očekává data tohoto kanálu. 15. T2 zprávou openlogicalchannel otevírá komunikační kanál směrem k Tl. Zpráva obsahuje také transportní adresu, na které bude T2 přijímat zprávy RTCP. 16. Tl potvrzuje založení jednosměrného komunikačního kanálu (z T2 do Tl). Potvrzující zpráva openlogicalchannelack obsahuje transportní adresu, na které bude Tl očekávatdata tohoto kanálu. Od nynějška je navázána obousměrnákomunikace.

12 12 Průběh hovoru T1 Správce T2 17. RTP - multimediální data,, 18. RTP - multimediální data.~ rp Ip zprávy RTCP... I I r ~~ ~ ~ ~~~vy~t~~. Obr. 4: Přenos multimediálních dat a jeho řízení 17. Tl posílá T2 multimediální data zapouzdřená v protokolu RTP. 18. T2 posílátl multimediální data zapouzdřená v protokolu RTP. 19. Tl posílá T2 řídící zprávy protokolu RTCP. 20. T2 posílá Tl řídící zprávy protokolu RTCP. Ukončení hovoru T1 Správce T2 21. EndSessionCommand -.-o.... '''.' "." EndSessionCommand 23. RELEASE COMPLETE 24. DRQ _._----_ DCF _.._._--_..._..--_... '-" ,-~--...-~ DRQ _ DCF _._'-.,..._,,_.._--..."'-.. _. -_.. _~ H RAS ~ H Call Signalling... ~ H.245 Obr. 5: Ukončení hovoru 21. T2 zahajuje ukončení spojení. Zasílá Tl protokolem H.245 zprávu

13 EndSessionCommand. 22. Tl potvrzuje ukončení také zprávou EndSessionCommand. 23. T2 zakončuje hovor zprávou Release Complete protokolu H Tl i T2 dávají správci vědět o ukončení hovoru zprávoudrq (Disengage Request). 25. Správce potvrzuje ukončení zprávou DCF (Disengage Confirm). Uvažme nyní, jaké protokoly se komunikace podle standardu H.323 účastní a jak moc důležité pro funkci naší aplikace jsou. Nejdříve si ještě jednou vypišme seznam protokolů, které jsme viděli na obrázcích 2 až 5 a jejich funkce: RAS - komunikace mezi terminály a správcem - zahrnuje administrativní informace ohledně provozu sítě, účtování hovorů a podobně H komunikace mezi terminály - zahrnuje ustavení a ukončení hovoru a výměnu různých informačních zpráv H komunikace mezi terminály - zahrnuje řídící informace nezbytné pro správnou výměnu audiovizuálních a jiných dat RTP - komunikace mezi terminály - zajišťuje přenos samotných audiovizuálních dat RTCP - komunikace mezi terminály - zajišťuje přenos zpráv ovlivňujících a řídících provoz spojení RTP Protokol RAS můžeme ze svých úvah zcela vypustit. Na první pohled by se sice zdál jako ideální zdroj informací - terminály v něm správci posílají informace o započatých a ukončených hovorech, ale a) správce v síti nemusí vůbec být, b) i když v ní je, nemusí nutně komunikace mezi ním a terminálem procházet naším segmentem sítě, zatímco spojení terminálu s jiným terminálem může, a bylo by trapné, kdyby v takovém případě naše sonda nebyla schopna žádné informace poskytnout. Protokolem, který nás bude naopak eminentně zajímat, je H.225. Komunikační kanál tohoto protokolu se naváže jako první a ukončí jako poslední a jeho zprávy SETUP, CONNECr a RELEASE COMPLETE představují přirozené ohraničení hovoru. Zároveň nám tento protokol, na rozdíl od ostatních, poskytne i informace o odmítnutých hovorech (tj. hovorech, kde druhá strana nezvedla sluchátko). Protokol H.245 není pro provoz sondy tak podstatný, nicméně i z něj se dají získat některé zajímavé informace. Například se zde dají nalézt informace o odeslání signálu DTMF, konkrétně ve zprávě Indication, (která na obrázcích není uvedena, ale je popsána ve specifikaci H.245). Protokoly RTP a RTCP jsou zhruba na hranici či spíše těsně za hranicí rámce, který jsme si pro tuto práci vytyčili. Sondu by mělo být možné o zachytávání těchto protokolů pokud možno bezbolestně rozšířit, ale v základní implementaci je tato funkčnost nadbytečná. 13

14 4 Návrh implementace Nyní máme dostatečné informace pro to, abychom začali by měl náš program mít? vymýšlet implementaci. Jaké části Zaprvé to bude samozřejmě část, která bude (s pomocí knihovny WinPcap) zachytávat síťové pakety a předávat je k dalšímu zpracování. Zachycené pakety se budou muset nějakou dobu skladovat - mohou totiž dojít ve špatném pořadí a ve chvíli, kdy detekuje začátek spojení H.323 by už další jeho pakety mohly být ztracené. Zachycování paketů se provádí na linkové vrstvě. Budeme tudíž potřebovat kód, který z nich dokáže vybrat, případně sestavit, data síťové, transportní a aplikační vrstvy. Pokud chceme zachovat možnost rozšiřitelnosti o jiné síťové technologie než TCP/IP, měl by se tento síťový kód oddělen od zbytku aplikace vrstvou abstrakce. Další část kódu se musí starat o sledování a dekódování dat protokolů standardu H.323 a produkování výstupů. Pokud chceme zachovat rozšiřitelnost o další sledované standardy VoIP, měla by i tato část kódu být oddělena od zbytku vrstvou abstrakce. To by tedy byl návrh na té nejobecnější úrovni. Pojďme se teď zamyslet nad detaily těchto velmi hrubě navržených komponent naší aplikace. 4.1 Detekce hovoru Prvním detailem, který nám zjevně chybí na cestě k funkčnímu programu, je způsob, jakým detekovat síťové spojení dle standardu Máme část kódu 'A', která zachytává síťová data, a část 'B', která analyzuje protokoly H.323, ale zatím nevíme, jak by měla část 'A' poznat, která data má posílat části 'B' a která nikoliv. Analýza spojovacích a rozpojovacích procedur v kapitole 3 vede k závěru, že bychom se měli snažit o detekci protokolu H.225. Toto spojení existuje po celou dobu hovoru, navazuje se jako první a ruší jako poslední. Pokud dostane analyzátor toto spojení k ruce, dokáže si z něj už informace o dalších probíhajících spojeních získat a zachytávací části si o ně říct. Další věc, kterou o spojení H.225 víme, je, že první zpráva, která po něm projde, je vždy zpráva SETUP. Abychom mohli začít sledovat spojení protokolu H.225, musíme v první řadě vymyslet způsob, jakým je v záplavě síťových paketů rozpoznat. Zprávy protokolu H.225 se posílají po spolehlivém spojení, v IP síti je to TCP spojení. Na úrovni linkové vrstvy, ze které dostáváme data, se ovšem i spolehlivé spojení rozpadá na jednotlivé pakety. Každý zachycený paket tudíž musíme podrobit analýze a rozhodnout, jestli představuje začátek H.225 spojení nebo ne, a pokud ano, začít ho podrobněji sledovat. Vzhledem k tomu, že paketů může být potenciálně velké množství a sonda má fungovat v reálném čase, nemůže být tato analýza příliš složitá. Pro pořádek připomeňme, že pro analýzu máme k dispozici data od linkové vrstvy výše. Standard H.323 se dá implementovat nad různými linkovými, síťovými a transportními vrstvami, přičemž jeho implementace se nad různými protokoly může lišit. Analýza tudíž může, v některých případech možná musí, vzít data nižších vrstev v úvahu. V rámci naší práce se omezíme na analýzu standardu H.323 v síti TCP/IP. Takže jaké máme možnosti: 14

15 1. Pustit na každý paket dekodér H.225 a zjistit, jestli dostaneme zprávu SETUP. Pokud ano, našli jsem začátek hovoru. O O výhody: analýza je dokonale přesná nevýhody: analýza je zbytečně výpočetně náročná. Zprávy protokolu H.225 jsou kódovány podle standardu ASN.l PER 2, který není zcela triviální rozkódovat. Kromě toho se zpráva nemusí vejít do jediného paketu a dohledávání dalších paketů dále zvýší náročnost. 2. Rídit " se podle cílového portu. Terminály fungující v prostředí TCP/lP obvykle naslouchají příchozím spojením na portu 1720 (viz např. [6]). Mohli bychom tedy u každého paketu zkontrolovat, zda cílový port je 1720 a pokud ano, dál se spojením zabývat, a pokud ne, ignorovat je. O O výhody: výpočetní náročnost veškerá žádná nevýhody: pokud budou terminály komunikovat na jiném portu než 1720, budou jejich spojení pro naši sondu neviditelná. To jistě není dobré. Takových případů by sice nemělo být mnoho - pokud chce být terminál kompatibilní s jinými, musí posílat spojení H.225 na port 1720, ale nějaká proprietární řešení mohou teoreticky používat jiný port, a sonda by měla, pokud možno, fungovat i na nich. 3. Využijeme toho, co víme o fungování protokolu H.225 nad TCP a fungování samotného TCP. Zprávy H.225 se nejprve balí do paketů TPKT, což je formát popsaný v RFC 1006 (ISO transport services on top of the TCP, viz [2]) a byl vytvořen za účelem tunelování protokolůvyšších vrstev síťového ISO modelu skrze TCP. Použití TPKT nad TCP svým způsobem kombinuje vlastnosti protokolů TCP a UDP stejně jako UDP se data přenáší v paketech, ale na rozdíl od UDP běží po spolehlivém a spojovaném kanálu. Pakety tedy vždy dojdou na místo určení (pokud se spojení zcela nerozpadne) a dojdou ve stejném pořadí, v jakém byly odeslány. Formát paketu je následující (první čtyři bajty tvoří hlavičku): C ~:jr~~-]r~~:~~~j~=~~~~~~~p~~i~j_1 Obr. 6: Formátpaketu TPKT verze je vždy 3 délka paketu je mezi 7 a ~~jt 5 oe n data paketu Vzhledem k tomu, že TCP spojení se na síťové vrstvě rozpadá na pakety typicky o jiné délce, než je délka paketu TPKT, může se hlavička obecně nacházet prakticky na libovolné pozici TCP paketu. Nicméně vzhledem k tomu, že zpráva SETUP protokolu H.225 je vždy první zpráva, která po daném kanálu přenese, víme, že hlavička jejího TPKT paketu bude hned na začátku dat prvního TCP paketu. Z toho nám vyplývá jednoduchá analýza - u každého paketu zkontrolujeme, jestli patří do protokolu TCP, pokud ano, tak jestli má první bajt po TCP hlavičce hodnotu 3 a třetí a čtvrtý bajt reprezentují šestnáctibitové číslo větší nebo rovno 7, a pokud teprve pokud jsou všechny tyto podmínky splněné, budeme se jím dále zabývat. O výhody: výpočetní nenáročnost - naprostou většinu paketů můžeme rovnou vyřaditjako nezajímavé, jen TCP pakety, které začínají trojkou podrobíme dalšímu zkoumání. Zároveň tím zachytíme i taková spojení, která by se odehrávala na I! 2 ASN.l = Abstract Syntax Notation One je telekomunikačnístandard pro popisování datových struktur. PER = Packed Encoding Rules je způsob uložení zpráv ASN.l v komprimovaném tvaru. 15

16 nestandardním portu. O nevýhody: oproti možnosti 2 větší počet chybných pozitivních výsledků analýzypři předpokladu posílání náhodných dat přes protokol TCP bude trojkou začínat každý 256. paket, který pak budeme zbytečně podrobněji analyzovat. Na druhou stranu také oproti možnosti 2 tu budeme mít nulové množství chybných negativních výsledků. V naší práci byla nakonec po zvážení všech výhod a nevýhod implementována metoda 3. Pokud by se ukázal počet chybných pozitivních výsledků předběžné analýzy paketu jako příliš vysoký, můžeme ho dále snížit podmínkou, že druhý bajt hlavičky TPKT musí být O. Tím by se počet chybných pozitivních výsledků snížil na zhruba 1 z Tento požadavek byl ale zahrnut až do třetí verze specifikace protokolu H.225, mohlo by se tudíž stát, že zařízení vyrobená podle první nebo druhé verze ho nebudou dodržovat. 4.2 Dekódování zpráv protokolů H.225 a H.245 Standardy ITU H.225 a H.245 ([4] a [5]) definují zprávy těchto dvou protokolů pomocí ASN.1, což je formální jazyk pro abstraktní popis datových struktur. Je to společný standard organizací ISO a ITU. Pro tento jazyk existuje několik dodatečných. standardů definujících různé soubory pravidel pro převod těchto datových struktur do digitální podoby. Pro H.225 i H.245 se používají pravidla PER (Packed Encoding Rules). Vzhledem k tomu, že dekódování A8N.1 PER je poměrně netriviální, je to výborný kandidát na použití kódu nějaké třetí strany. Bohužel pro nás jsou dekodéry tohoto standardu v naprosté většině komerční, a ty, co jsou přístupné zdarma, nejsou příliš funkční. Proto se jako nejlepší šance jeví znovupoužití dekódovacích částí některé volně dostupné implementace standardu H.323. Nejstarší, a po dlouhou dobu jediná, taková implementace je OpenH323 ([7]), od konce roku 2004 mu konkuruje "Objective Open H.323 for C" (ooh323c) ([8]) od firmy Objective Systems. Tato firma je výrobcem kompilátoru' datových struktur A8N.l jménem ASN1C. Tento kompilátor je (podle očekávání) komerční, nicméně pomocí něj vyvinutý framework pro implementaci standardu H.323 byl uvolněn jako open source zdarma pod licencí OPL. Tento framework byl použit, neboť autorovi připadal mnohem přehlednější a pochopitelnější než odpovídající části programu OpenH Kompilátor jazyka A8N.l dostane na vstupu popis datových struktur v jazyce A8N.l a na výstupu vygeneruje třídy v nějakém programovacím jazyku umožňující kódování a dekódování daných datových struktur. 16

17 4.3 Návrh aplikace Začíná se nám tedy rýsovat rozdělení aplikace do několika funkčních celků. Z předchozí analýzy vyplývá zhruba následující struktura: dekodér ASN. 1 PER (ooh323c) dekodér síťových protokolů analyzátor H ~ r ' J zahaj sledován í dalšího síťového spojení (pokud je třeba) I sklad iště paketů v zachytávač paketů t WinPcap pošli data tohoto spojení anlyzátoru H.323 předběžná analýza paketů Obr. 7: Návrh toku dat v aplikaci pakety na síti Obdélníky představují jednotlivé části (předpokládané třídy) programu, šedivé části jsou implementované kódem třetí strany. Plné šipky představují tok dat, čerchované představují signály, které slouží k řízení toku dat. Základní idea zachytávače dat je taková, že pakety, které patří již sledovaným spojením pošle skrz dekodér síťových protokolů analyzátoru H.323, ty, které nikoliv, pošle na předběžnou analýzu, na zařadí případně spojení mezi sledovaná. Všechny pakety také uloží do skladiště paketů pro (případné) pozdější využití. Předběžná analýza má za cíl pouze co nejrychleji rozhodnout, jestli je daný paket něčím zajímavý nebo ne. Pokud ano, začne se spojení podrobněji sledovat a analyzovat. Funkce ostatních částí by měla být z obrázku zřejmá Rozdělení aplikace do vláken Nyní, když máme již hrubou představu, jak by naše aplikace měla fungovat, nastal čas vrátit se k požadavku na škálovatelnost a zamyslet se nad tím, jak by se navržená funkčnost dala rozdělit do více vláken. První celkem samozřejmý nápadje oddělit získávání dat od jejich analýzy. Zachytávač paketů spolu s předběžným analyzátorem by běžely v jednom vlákně, analýza spojení H.323 v druhém. Při takovémto rozdělení však dokážeme využít maximálně dva procesory. Kromě toho - v případě velkého množství současně probíhajících hovorů - by také mohla výpočetní náročnost druhého vlákna velmi vzrůst. To vedlo k následující implementaci: zachytávač paketů a předběžný analyzátor zůstanou 17

18 nadále v jednom vlákně, ale pro analýzu každého hovoru se založí zvláštní vlákno. Toto řešení je pružnější a umožní rozklad na víceméně libovolné množství procesorů (samozřejmě shora omezené počtem právě probíhajících hovorů). Předběžný analyzátor paketu by měl být výpočetně co nejméně náročný, takže zůstane v jednom vlákně. Kdyby se ukázalo, že výpočetní náročnost tohoto vlákna ve velké sítí příliš narůstá, mohlo by se vytvořit více instancí a pakety mezi ně dělit. Nicméně pro základní implementaci necháme předběžnou analýzu v jednom vlákně. 18

19 5 Detaily implementace v této kapitole budou popsány detaily skutečné implementace. Celý zdrojový kód je k dispozici na přiloženém CD spolu se spustitelnou podobou a testovacími daty. 5.1 Důležité třídy Zachytávání a analýza dat class NetworkReader : public Thread { public: NetworkReader(ProtocolStack * protocolstack, packet_checkers packetcheckers, MessageRouter * router); -NetworkReader(void); virtual void Stop(void); } ; Tato třída se stará o zachytávání paketů a jejich předběžnou analýzu. Pokud jsou pakety vyhodnoceny jako zajímavé, vytvoří se objekt PhonecallReader, který začne dané spojení sledovat. Každý paket se také uloží do cache, ve které nějakou dobu zůstane (to je z toho důvodu, že pakety mohou přijít v nesprávném pořadí a mohli bychom tak zahodit paket, který budeme v blízké budoucnosti potřebovat). Třída se spouští v samostatném vlákně. class NetStreamList { public: NetStreamList(void); -NetStreamList(void) ; void add(netstreamlnfo *streamlnfo, NetSocket *netsocket); bool remove(netstreamlnfo *streamlnfo); bool contains(netstreamlnfo * streamlnfo); NetSocket * getnetsocket(netstreamlnfo * streamlnfo); void lock(void); void unlock(void); }; Třída NetStreamList slouží jako seznam síťových spojení, která právě sledujeme. Když NetworkReader vyhodnotí nějaký paket jako zajímavý, vytvoří objekt NetSocket, který reprezentuje toto spojení a uloží ho do tohoto seznamu spolu s objektem NetStreamlnfo, který dané spojení popisuje a identifikuje. Další pakety z daného spojení už NetworkReader neanalyzuje, ale posílá je rovnou sem. Třída obsahuje funkce na zjištění, jestli obsahuje dané spojení, funkce pro jeho přidání a odebrání. Jelikož k tomuto seznamu může přistupovat několik vláken naráz, obsahuje funkce na své zamčení a opětovné odemčení (provádí se přes mutex). class PacketCache { public: PacketCache(void) ; -PacketCache(void); bool addpacket(packet_data * packetdata); vector<packet_data *> getpackets(netstreamlnfo * streamlnfo, ProtocolStack * protocolstack); } ; Třída PacketCache slouží jako skladiště pro zachycené pakety. Doba skladování se dá nastavit. Při přidání každého nového paketu se zároveň vymažou ty, které jsou příliš staré. 19

20 Funkce getpackets potom slouží k vybrání všech paketů, které patří k určitému síťovému spojení. Vrací ovšem pouze kopie paketů - idea je taková, že každý zachycený paket, bez ohledu na to, jestli je analyzován jako zajímavý nebo ne, jestli si ho někdo z cache vybere nebo ne, zůstane v cachi k dispozici po celý určený časový interval. Pak teprve bude, vymazan. class PhonecallReader : public Thread { public: PhonecallReader(void); void setstreamlist(netstreamlist * watchedstreamlist); void setpacketcache(packetcache * packetcache); virtual void setlnitialsocket(netsocket * socket) = O; void setprotocolstack(protocolstack *protocolstack); void setmessagerouter(messagerouter *router); virtual -PhonecallReader(void); inline unsigned int getphonecallid() { return phonecallid; protected: NetSocket * startwatchingconnection(netstreamlnfo * streamlnfo, timeval fromtime); void stopwatchingconnection(netsocket * socket); void senddisregardmessage(void); void sendcalllnitmessage(string calleraddress, string calleeaddress, vector<string> calleraliases, vector<string> calleealiases, timeval time); void sendcallopenmessage(string calleraddress, string calleeaddress, vector<string> calleraliases, vector<string> calleealiases, timeval time); void sendcallrejectmessage(string calleraddress, string calleeaddress, vector<string> calleraliases, vector<string> calleealiases, timeval time); void sendcallclosemessage(string calleraddress, string calleeaddress, vector<string> calleraliases, vector<string> calleealiases, } ; timeval time); void senddtmfmessage(string dtmf, timeval time); PhonecallReader představuje abstraktního předka tříd pro sledování jednoho telefonního hovoru. V naší aplikaci má pouze jednoho konkrétního potomka, kterým je třída H323CallReader pro sledování hovorů podle standardu H.323. Třída, respektive každý její potomek, se pouští v samostatném vlákně. Mezi public funkcemi je kromě konstruktoru, destruktoru, a funkcí pro předání odkazů na některé důležité objekty zajímavá funkce setlnitialsocket, která předá instanci PhonecallReaderu první síťové spojení, které má začít sledovat - totiž to spojení, které NetworkReader při předběžné analýze vyhodnotil jako zajímavé. Protected část obsahuje několik funkcí, které budou typicky potřebovat všichni potomci, pročež jsou implementované už tady. startwatchingconnection vytvoří NetSocket pro sledování spojení popsaného objektem streamlnfo a zařadí jej do seznamu NetStreamList. Parametr fromtime představuje hranici v čase, od které se má dané spojení sledovat. Pokud z něj máme k dispozici nějaké dřívější pakety, budou se ignorovat. stopwatchingconnection odstraní dané spojení ze seznamu NetStreamList. funkce sendcall/nitmessage, sendcallopenmessage, sendca//rejectmessage, sendcallclosemessage a senddtmfmessage slouží k zasílání zpráv na front-end o tom, že daný hovor byl inicializován, přijat, odmítnut, ukončen nebo že došlo k přenosu impulsu DTMF. senddisregardmessage pošle front-endu zprávu, že má všechny předchozí zprávy o daném hovoru ignorovat. 20

21 5.1.2 Práce se sít'ovými protokoly Protokoly standardu H.323 (či jiných sledovaných standardů) nemusejí být provozovány pouze nad sítí TCP/lP, ale i nad jinými (kupříkladu IPx/SPX, nebo IPv6). Ačkoliv v současné implementaci naše sonda pracuje pouze s TCP/lP, měla by být připravena na přidání podpory dalších síťových prostředí. Z toho vyplývá požadavek na striktní oddělení kódu tříd zděděných ze třídy PhonecallReader od kódu zajišťující podporu síťových a transportních protokolů. Stejně tak i co nejvíc ostatních částí sondy by mělo být nezávislých na síťové platformě, aby byly v případě rozšíření jednoduše znovupoužitelné. To vedlo k vytvoření následující abstraktní třídy ProtocolStack, která zajišťuje abstraktní přístup k síťovým a transportním protokolům a datům: class ProtocolStack { public: virtual int getprotocolstackld(void); virtual bool getnetworkpacketlnfo(const u_char * networkpacket, packet_data * info); virtual NetStrearnlnfo * getnetstrearnlnfo(const packet_data * packetdata, NetStreamlnfo * strearnlnfo); virtual NetStrearnlnfo * getreverseddirectionstreamlnfo( NetStreamlnfo * strearnlnfo); virtual NetSocket * createnetsocket(netstreamlnfo * strearnlnfo); virtual bool packetbelongs(netstrearnlnfo *streamlnfo, const packet_data * packetdata); virtual NetStrearnlnfo * getnetstrearnlnfo(netsocket * socket); } ; Použité datové struktury: packet_data je datová struktura uchovávající v sobě data zachyceného paketu, informace o použitém linkovém, síťovém a transportním protokolu a odkazy na začátek dat síťové, transportní a aplikační vrstvy v datech paketu NetStreamlnfo je (abstraktní) třída popisující jedno konkrétní spojení probíhající ve sledované síti. V síti TCP/IP popisuje data tekoucí z jedné IP adresy a jednoho portu do druhé IP adresy a druhého portu. NetSocket je abstraktní třída, která extrahuje aplikační data z paketů jednoho síťového spojení. Z ní jsou zděděny dvě abstraktní třídycontinuoussocket a DatagramSocket reprezentující spojované a nespojované sockety. ContinuousSocket vrací souvislý proud dat, DatagramSocket obsahy jednotlivých paketů. Podrobnější popis funkcí třídy ProtocolStack: getprotocolstackld vrací ID identifikující danou implementaci této abstraktní třídy. getnetworkpacketlnfo vyplní ve vstupně/výstupní struktuře packet_data údaje o protokolech a datech síťové a transportní vrstvy. Vrací false v případě chyby. getnetstreamlnfo vrátí objekt NetStreamlnfo popisující spojení, jehož částí je paket packetdata. V rámci optimalizace výkonu znovupoužije již existující objekt streamlnfo, pokud ho dostane. getreverseddirectionstreamlnfo - vzhledem k tomu, že NetStreamlnfo popisuje spojení pouze v jednom směru, slouží tato funkce k vytvoření objektu popisujícího stejné spojení v opačném směru. createnetsocket vytvoří objekt NetSocket, který bude v našem programu reprezentovat spojení odpovídající popisnému objektu streamlnfo. 21

22 packetbelongs vrací trne, pokud daný paket patří do daného síťového spojení. getnetstreamlnfo je pomocná funkce, která vytvoří objekt NetStreamlnfo popisující spojení reprezentované daným objektem NetSocket. Tato vrstva abstrakce umožňuje maximální možné oddělení tříd Phonecal/Reader od síťových protokolů, nad kterými běží. Bohužel ne ve všech případech je možné stoprocentní oddělení. Jedna část kódu, která většinou s abstraktní vrstvou pracovat nebude je předběžný analyzátor paketů, který určuje, jestli dané síťové spojení vypadá zajímavě nebo ne. Vzhledem k tomu, že tato analýza se provádí nad každým paketem, provádět pokaždé přechod do abstraktní vrstvy by jednak nebylo příliš efektivní, za druhé by nás to připravilo o informace z nižších síťových vrstev, které nám při této předběžné analýze mohou pomoci. Druhý případ, kdy použití abstraktní vrstvy není možné, je otevírání nových komunikačních kanálů. Kupříkladu ve třídě H323Ca//Reader začínáme se známým komunikačním kanálem H.225, ale (pokud všechno probíhá správně), dostaneme na něm brzy zprávu s údaji o transportní adrese, na které se otevře kanál protokolu H.245 a potřebujeme tudíž síťové vrstvě nějak sdělit, že toto spojení potřebujeme také sledovat. To bohužel nejde udělat bez kusu kódu, který rozumí jak datům protokolu H.225, tak síťové vrstvě, nad kterou tento protokol běží. Tento kus kódu je tomto případě oddělen od zbytku třídy H323Ca/1Reader do zdrojového souboru h323_network_support.cpp. Jedná se však pouze o tři nepříliš rozsáhlé funkce a jinak je H323Ca//Reader od síťové vrstvy zcela oddělen, Linková vrstva S linkovou vrstvou se v aplikaci příliš nepracuje, jediná funkce, která je na ní použita, je globální funkce getnetworklayerpacket, která vrátí na paketu linkové vrstvy odkaz na data síťové vrstvy. Tato funkce je momentálně definována pouze pro linkovou vrstvu typu Ethernet, ale neměl by být problém rozšířit ji o libovolnou další linkovou vrstvu výstupy programu Jedna oblast, kterou jsme při návrhu aplikace trochu přešli, jsou aplikační výstupy. Vzhledem k tomu, že se snažíme naši aplikaci vytvořit pokud možno rozšiřitelnou a modulární, nabízí se přirozeně požadavek na rozšiřitelnost i co se výstupů týče. Toho by se dosahovalo poměrně obtížně v případě, že by si každý PhonecallReader definoval své vlastní výstupy. Proto strukturu aplikace v tomto směru poněkud rozšíříme. V aplikaci bude definováno obecné rozhraní pro zasílání zpráva několik základních typů těchto zpráv (typu "hovor zahájen", "hovor ukončen") s několika základními atributy ("volající", "volaný", "čas" atd.) a každý PhonecallReader bude tyto zprávy produkovat a posílat na zmíněné rozhraní. Tím dosáhneme vítané flexibility, protože (v závislosti na tom, jaké třídy pro zpracování těchto zpráv napíšeme) pak můžeme s výstupními údaji udělat prakticky cokoliv - vypsat je na konzoli, zobrazit je v grafické aplikaci, uložit do souboru, uložit do databáze, poslat em - fantazii se meze nekladou. Zmíněné rozhraní pro zasílání zpráv má následující podobu: class MessageRouter { public: MessageRouter(void); -MessageRouter(void) ; void sendmessage(message * message); void Stop(void); 22

23 } ; Pro každou vygenerovanou zprávu zavolá daný Phoneca//Reader funkci sendmessage a o nic víc se nemusí starat. MessageRouter tuto zprávu potom rozešle všem modulům na zpracování zpráv (viz níže). Funkce Stop potom slouží k zastavení a ukončení všech těchto modulů. Třída Message vypadá následovně: class Message { public: virtual int getmessagetypeld(void); virtual bool isdescendantof(int messagetypeld); int getsenderld(void) { return senderld; }; int getphonecallld(void) { return phonecallld; }; void setsenderld(int id) { this->senderld = id; }; void setphonecallld(int id) { this->phonecallld = id; }; virtual Message * makecopy(void) = o; } ; Každá třída odvozená od typu Message má své unikátní ID, které vrací funkce getmessagetypeld. Funkce isdescendantofvrací informaci o tom, jestli je třída dané zprávy potomkem třídy s daným ID. Senderld je pole pro identifikaci třídy odesilatele zprávy a v současné implementaci není využito. Phonecallld je unikátní identifikátor hovoru v rámci daného spuštění naší aplikace. Zprávy se stejným Phonecallld patří ke stejnému hovoru. Funkce makecopy podle očekávání slouží k vytvoření kopie zprávy. Samotné zpracování zpráv provádějí potomci třídy MessageProcessor, která vypadá následovně: class MessageProcessor : public Thread { public: MessageProcessor(void); -MessageProcessor(void); virtual void sendmessage(message * message); } ; Třída se pouští v samostatném vlákně (aby zpracování zpráv neblokovalo odesílající PhonecallReader), ale jinak je její rozhraní velmi jednoduché. Jediná zajímavá funkce je sendmessage, která slouží pro přijímání zpráv od MessageRouteru. 23

24 5.1.4 Schéma datového toku v aplikaci Na obrázku 7 v kapitole 4 jsme viděli předběžný návrh komponent naší aplikace a datového toku mezi nimi. Ted', když už máme všechny části implementované (byť některé jen na abstraktní úrovni), můžeme si na obrázek doplnit konkrétní jména tříd. Kromě toho došlo k rozšíření návrhu o třídy pro výstup, které také doplníme. I MessageProcessor MessageRouter j~ dekodér ASN. 1 PER ~ (ooh323c) ~ PhonecallReader ProtocolStack i zahaj sledování dalšího síťového spojení (pokudje třeba) I I PacketCache NetworkReader --- t WinPcap ~.. pošli data tohoto spojení anlyzátoru H.323 i pakety na síti Obr. 8: Doplněná struktura aplikace s tokem dat Předběžná analýza paketů není nakonec implementována jako samostatná třída, ale jako statická metoda každého konkrétního potomka třídy PhonecallReader. 5.2 Konkrétní implementace abstraktních tříd v minulé podkapitole jsme v seznamu tříd v některých případech uvedli pouze abstraktní třídy, které implementují rozhraní viditelné z ostatních částí programu. Tyto třídy ale pochopitelně musejí mít i potomky, kteří implementují jejich abstraktní funkce. Tady si je,,, popiseme. ProtocolStack Abstraktní třída ProtocolStack má jedinou implementaci, a to IPProtocoIStack, která implementuje kód pro práci se síťovými a transportními protokoly TCP/IP. Je to samozřejmě logická volba, jelikož TCP/IP je dnes zdaleka nejrozšířenější síťové prostředí a všechny volně dostupné implementace standardu H.323 (nebo alespoň všechny, které jsou autorovi známy) fungují právě nad ním. Vedle samotné třídy IPProtocolStack je definována také třída TCPUDPStreamInfo (potomek třídy NetStreamInfo) jakožto třída popisující jedno konkrétní spojení protokolem TCP nebo UDP a třída TCPSocket rozšiřující abstraktní třídu ContinuousSocket, která se stará o extrahování aplikačních dat z TCP paketů (kód je založen na informacích z [9]). 24

25 Logicky by se nabízela ještě třída UDPSocket, která by byla potomkem DatagramSocket a která by vracela aplikační data paketů protokolu UDP, ale vzhledem k tomu, že sledování protokolu UDP není v současné implementaci naší sondy zapotřebí, nebyla třída UDPSocket zatím implementována. PhonecallReader PhonecallReader má taktéž jednu implementaci, a to třídu H323CallReader. Toto je, dalo by se říci, nejdůležitější třída celé aplikace. Ostatní třídy jsou tu jen proto, aby této třídě umožnily fungovat a bez ní by celá práce pozbyla smyslu. Třída implementuje sledování a dekódování protokolů H.225 a H.245 a v závislosti na zachycených zprávách těchto protokolů generuje zprávy vlastní (pro komponentu MessageRouter). Pro dekódování zpráv zapsaných podle standardu ASN.l PERje použita knihovna "Objective Open H.323 for C" od firmy Objective Systems. Následuje seznam zachytávaných zpráv protokolů H.225 a H.245. Zprávy protokolu H.225: Každá zachycená zpráva protokolu H.225 se vypíše do logu. Následně se zkontroluje, jestli neobsahuje alias (neboli jméno) volajícího nebo volaného, pokud ano, tak se zapamatuje a pošle se v některé následující zprávě. Zkontroluje se, jestli zpráva neobsahuje informace o signálu DTMF, pokud ano, vygeneruje se zpráva PhonecallDTMFMessage. Zkontroluje se, jestli zpráva neobsahuje tunelované zprávy protokolu H.245, pokud ano, tak se zpracují. SETUP - Pokud první zpráva na kanálu H.225 není SETUP, je sledování hovoru ukončeno, protože jsme se zjevně napojili někde v půlce a tento hovor by měla sledovat jiná instance H323CallReaderu. Jinak se ze zprávy vytáhnou aliasy volajícího a volaného a vygeneruje se zpráva PhonecalllnitMessage. Kromě toho se také začne sledovat síťové spojení H.225 v opačném směru. (Na začátku dostane H323CallReader ke sledování pouze jednosměrné spojení.) CALL PROCEEDING - Zpráva může obsahovat informaci o transportní adrese (typicky IP adresa + port), na které očekává druhá strana data protokolu H.245. Pokud tuto informaci skutečně obsahuje, zahájí se sledování daného síťového spojení (v obou směrech). ALERTING - Může obsahovat transportní adresu kanálu H.245. Postupuje se stejně jako u zprávy CALL PROCEEDING. CONNECT - Vygeneruje se zpráva PhonecallOpenMessage. Také může obsahovat transportní adresu kanálu H.245. Postupuje se stejně jako u zprávy CALL PROCEEDING. FACILITY - Může také obsahovat transportní adresu kanálu H.245. PROGRESS - I tato zpráva může obsahovat transportní adresu kanálu H.245. RELEASE COMPLETE - Vygeneruje se zpráva PhonecallCloseMessage. Daná instance H323CallReaderu se ukončí. Zprávy protokolu H.245: Každá zachycená zpráva protokolu H.245 se zaloguje. Indication - Může obsahovat informace o signálu DTMF. Pokud ano, vygeneruje se zpráva Phoneca/1DTMFMessage. 25

26 V rámci tříde je definována také statická funkce checkpacket, která provádí předběžnou analýzu paketu. Princip fungování této funkce je podrobnějipopsán v podkapitole 4.1. Message Od třídy Message je odvozena třída PhonecallMessage, od které jsou odvozeny třídy Phonecalllnitbdessage, PhonecallOpenMessage, PhonecallRejectMessage, PhonecallCloseMessage, PhonecalllnfoMessage a PhonecallDTMFMessage. Ve svých atributech mohou nést adresu a alias volajícího a volaného a čas, kdy událost nastala. MessageProcessor Abstraktní třída MessageProcessor má dvě implementace. Za prvé je to PhonecallMessageProcessor, který data o hovorech vypisuje na konzoli a do souboru esv (comma separated values -lze importovat do většiny tabulkových procesorů). Druhou implementací je RemoteMessageProcessor, který umožňuje zprávy posílat přes TCP spojení na jiný počítač, tam je přijímat a předávat MessageRouteru. V konfiguračním souboru se dá nastavit, jestli má být RemoteMessageProcessor odesilatel nebo příjemce zpráva jestli má fungovat jako server nebo klient. Tyto dvě implementace umožňují, aby byla samotná sonda spuštěna na jednom počítači a klient, který data zobrazuje a ukládá, na jiném počítači, či alespoň v jiné konzoli. 26

27 6 Závěr Vytvořili jsme aplikaci, která je schopna spolehlivě detekovat hovory podle standardu H.323 a vypisovat o nich informace, které se dají dále statisticky zpracovat (například v tabulkovém procesoru). Aplikace je škálovatelná a používá pouze volně dostupné knihovny. Aplikace je snadno rozšiřitelná o sledování dalších technologií VoIP, funkčnost nad jinými síťovými protokoly než TCP/lP a o další možnosti zobrazování a ukládání získaných dat. Má ovšem i několik nedostatků a ne zcela dotažených částí: Pokud je v síti H.323 správce, může v některých případech routovat hovor přes sebe. Aplikace v současné době neobsahuje detekci tohoto jevu, routovaný hovor se tak zobrazí jako dva různé hovory. Zprávy DTMF se od čtvrté verze specifikace H.323 (z roku 2001) mohou kromě protokolů H.225 a H.245 přenášet také v protokolu RTP (konkrétní způsob je definován v [10]). Vzhledem k tomu, že současná implementace protokol RTP nezachytává, projde takový způsob zaslání signálu DTMF nepovšimnut. Pokud by se aplikace měla dále rozvíjet, rozhodně by to (kromě opravení zmíněných nedostatků) v první řadě mělo být směrem k lepšímu zobrazování a ukládání dat. Místo prostého výpisu na konzoli by se mohla vyrobit slušivá okenní aplikace, která by mohla mít i nějaké statistické funkce v sobě zabudované (např. zobrazení uzlů s největším počtem hovorů). Také ukládání dat by se místo do textového souboru mohlo provádět do databáze. Třída H323CallReader by se mohla rozšířit o zachytávání samotných audiovizuálních dat a jejich ukládání do souboru nebo databáze. Nabízí se také implementace nového PhonecallReaderu, který by zachytával provoz VolP podle novějšího standardu SIP. Tento standard získal během doby, po niž vznikala tato práce, na popularitě a dnes už by mohl být rozšířenější, než starší H.323. Nicméně i bez těchto rozšíření vznikl program, který nabízí funkce doposud vlastní pouze komerčním aplikacím. 27

Komunikace systémů s ostatními multimediálními sítěmi

Komunikace systémů s ostatními multimediálními sítěmi H.323 Martin Černý Definice H.323 je standard, který specifikuje součásti, protokoly a procedury, které poskytuji multimediální komunikační služby: zvuk, video a datové komunikace přes paketové sítě, včetně

Více

Voice over IP Fundamentals

Voice over IP Fundamentals přednáška pro studenty katedry elektroniky a telekomunikační techniky VŠB-TUO: Voice over IP Fundamentals Miroslav Vozňák Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky

Více

Telekomunikační sítě Protokolové modely

Telekomunikační sítě Protokolové modely Fakulta elektrotechniky a informatiky, VŠB-TU Ostrava Telekomunikační sítě Protokolové modely Datum: 14.2.2012 Autor: Ing. Petr Machník, Ph.D. Kontakt: petr.machnik@vsb.cz Předmět: Telekomunikační sítě

Více

20. Projekt Domácí mediotéka

20. Projekt Domácí mediotéka Projekt Domácí mediotéka strana 211 20. Projekt Domácí mediotéka 20.1. Základní popis, zadání úkolu V projektu Domácí mediotéka (Dome) se jednoduchým způsobem evidují CD a videa. Projekt je velmi jednoduchý

Více

Počítačové sítě. Miloš Hrdý. 21. října 2007

Počítačové sítě. Miloš Hrdý. 21. října 2007 Počítačové sítě Miloš Hrdý 21. října 2007 Obsah 1 Pojmy 2 2 Rozdělení sítí 2 2.1 Podle rozlehlosti........................... 2 2.2 Podle topologie............................ 2 2.3 Podle přístupové metody.......................

Více

Zajištění kvality služby (QoS) v operačním systému Windows

Zajištění kvality služby (QoS) v operačním systému Windows VŠB TU Ostrava Směrované a přepínané sítě Zajištění kvality služby (QoS) v operačním systému Windows Teoretické možnosti aplikace mechanismů zabezpečení kvality služby (QoS) v nových verzích MS Windows

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Analýza komunikace při realizaci VoIP spojení

Analýza komunikace při realizaci VoIP spojení Analýza komunikace při realizaci VoIP spojení Tomáš Mácha Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav telekomunikací, Purkyňova 118, 612 00 Brno, Česká republika

Více

Architektura protokolů

Architektura protokolů Architektura protokolů KIV/PD Přenos dat Martin Šimek O čem přednáška je? 2 co se rozumí architekturou protokolů? protokol a složky protokolu encapsulace protokolových složek ISO OSI RM Co se rozumí architekturou

Více

Internet protokol, IP adresy, návaznost IP na nižší vrstvy

Internet protokol, IP adresy, návaznost IP na nižší vrstvy Metodický list č. 1 Internet protokol, IP adresy, návaznost IP na nižší vrstvy Cílem tohoto tematického celku je poznat formát datagramů internet protokolu (IP) a pochopit základní principy jeho fungování

Více

EXTRAKT z české technické normy

EXTRAKT z české technické normy EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. Inteligentní dopravní systémy esafety Volitelná dodatečná datová struktura systému

Více

Technologie VoIP. Od historie po současnost

Technologie VoIP. Od historie po současnost Technologie VoIP VoIP je zkratka z Voice over Internet Protocol. Označují se tak technologie přenosu hlasu prostřednictvím protokolu IP primárně užívaného v Internetu a v lokálních počítačových sítích.

Více

Komunikace v sítích TCP/IP (1)

Komunikace v sítích TCP/IP (1) České vysoké učení technické v Praze FAKULTA INFORMAČNÍCH TECHNOLOGIÍ katedra počítačových systémů Komunikace v sítích TCP/IP (1) Jiří Smítka jiri.smitka@fit.cvut.cz 14.2.2011 1/30 Úvod do předmětu Jiří

Více

Benefity a úskalí plošného souvislého sledování IP provozu na bázi toků při řešení bezpečnostních hlášení

Benefity a úskalí plošného souvislého sledování IP provozu na bázi toků při řešení bezpečnostních hlášení Europen 18.5. 2009, Praděd Benefity a úskalí plošného souvislého sledování IP provozu na bázi toků při řešení bezpečnostních hlášení Tomáš Košňar CESNET z.s.p.o. kosnar@cesnet.cz Obsah požadavky plynoucí

Více

Statistiky sledování televize

Statistiky sledování televize Statistiky sledování televize Semestrální práce (36SEM) ZS 2005/2006 Martin Fiala FEL ČVUT 5.ročník - 2 - Obsah 1. Úvod......4 1.1 Digitální vysílání......4 1.2 Převod přijímaného signálu na lokální síť...4

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

H.323 standard. Specifikace H.323 byla schválena v roce 1996 skupinou Study Group 16 (součást ITU). Verze 2 byla schválena v lednu 1998.

H.323 standard. Specifikace H.323 byla schválena v roce 1996 skupinou Study Group 16 (součást ITU). Verze 2 byla schválena v lednu 1998. Co to je? H.323 standard H.323 zastřešuje množinu doporučení od ITU (International Telecommunications Union), která specifikuje standardy v oblasti multimediálních komunikací přes sítě, jež negarantují

Více

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE. Vizualizace a demonstrace IP fragmentace.

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE. Vizualizace a demonstrace IP fragmentace. PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY BAKALÁŘSKÁ PRÁCE Vizualizace a demonstrace IP fragmentace 2011 Jiří Holba Anotace Tato práce pojednává o problematice fragmentace IP datagramu

Více

Voice over IP - přehled protokolů a praktické zkušenosti

Voice over IP - přehled protokolů a praktické zkušenosti Voice over IP - přehled protokolů a praktické zkušenosti Vladimír Toncar, Jakub Zeman (vtoncar@kerio.com) Kerio Technologies ČR, s.r.o 1 Úvod Tento článek si klade za cíl poskytnout základní přehled o

Více

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti. Intervalové stromy Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme průběžně provádět tyto dvě operace: 1. Změna jednoho čísla v posloupnosti. 2. Zjištění součtu čísel

Více

POPIS STANDARDU CEN TC278/WG1. Oblast: ELEKTRONICKÉ VYBÍRÁNÍ POPLATKŮ (EFC) Zkrácený název: ZKUŠEBNÍ POSTUPY 2. Norma číslo:

POPIS STANDARDU CEN TC278/WG1. Oblast: ELEKTRONICKÉ VYBÍRÁNÍ POPLATKŮ (EFC) Zkrácený název: ZKUŠEBNÍ POSTUPY 2. Norma číslo: POPIS STANDARDU CEN TC278/WG1 Oblast: ELEKTRONICKÉ VYBÍRÁNÍ POPLATKŮ (EFC) Zkrácený název: ZKUŠEBNÍ POSTUPY 2 Norma číslo: 14907-2 Norma název (en): RTTT EFC - TEST PROCEDURES FOR USER AND FIXED EQUIPMENT

Více

Vynikající výkon v každém směru. Řada stolních SIP telefonů KX-HDV

Vynikající výkon v každém směru. Řada stolních SIP telefonů KX-HDV Vynikající výkon v každém směru Řada stolních SIP telefonů KX-HDV Úspora nákladů bez kompromisů Inovativní řada stolních SIP telefonů KX-HDV vám zprostředkuje výjimečný komunikační výkon, bezchybnou spolehlivost

Více

Programování v C++ 1, 5. cvičení

Programování v C++ 1, 5. cvičení Programování v C++ 1, 5. cvičení konstruktory, nevirtuální dědění 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 3 Shrnutí minule procvičené

Více

POČÍTAČOVÉ SÍTĚ 1 Úvod

POČÍTAČOVÉ SÍTĚ 1 Úvod POČÍTAČOVÉ SÍTĚ 1 Úvod 1.1 Definice Pojmem počítačová síť se rozumí seskupení alespoň dvou počítačů, vzájemně sdílejících své zdroje, ke kterým patří jak hardware tak software. Předpokládá se sdílení inteligentní.

Více

MPLS MPLS. Label. Switching) Michal Petřík -

MPLS MPLS. Label. Switching) Michal Petřík - MPLS (MultiProtocol Label Switching) Osnova prezentace: Technologie MPLS Struktura MPLS sítě MPLS a VPN G-MPLS Dotazy 2 / 21 Vznik MPLS: Ipsilon Networks (IP switching) pouze pro ATM Cisco systems, inc.

Více

3. Linková vrstva. Linková (spojová) vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl

3. Linková vrstva. Linková (spojová) vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl 3. Linková vrstva Studijní cíl Představíme si funkci linkové vrstvy. Popíšeme její dvě podvrstvy, způsoby adresace, jednotlivé položky rámce. Doba nutná k nastudování 2 hodiny Linková (spojová) vrstva

Více

Na základě Business Targets autora Simona Greenalla, vydaných nakladatelstvím Macmillan Heinemann English Language Teaching (Oxford).

Na základě Business Targets autora Simona Greenalla, vydaných nakladatelstvím Macmillan Heinemann English Language Teaching (Oxford). LANGMaster International, s.r.o. Branická 107, 147 00 Praha 4 Česká republika Tel.: +420 244 460 807, +420 736 623 459 Fax: +420 244 463 411 e-mail: info@langmaster.cz http://www.langmaster.cz Na základě

Více

Flow monitoring a NBA

Flow monitoring a NBA Flow monitoring a NBA Kdy, kde a jak? Petr Špringl springl@invea.com Obsah Monitorování datových toků = Flow monitoring Flow monitoring a bezpečnost sítě = Network Behavior Analysis (NBA) Monitorování

Více

Počítačové sítě internet

Počítačové sítě internet 1 Počítačové sítě internet Historie počítačových sítí 1969 ARPANET 1973 Vinton Cerf protokoly TCP, základ LAN 1977 ověření TCP a jeho využití 1983 rozdělení ARPANETU na vojenskou a civilní část - akademie,

Více

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH 0. Obsah Strana 1 z 12 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION

Více

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová

Struktura třídy, operátory, jednoduché algoritmy, junit. Programování II 2. cvičení Alena Buchalcevová Struktura třídy, operátory, jednoduché algoritmy, junit 2. cvičení Alena Buchalcevová Cíle cvičení seznámit se s rozhraním (interface) v Javě seznámit se s testováním při vývoji (makety, JUnit) naučit

Více

Směrovací protokoly, propojování sítí

Směrovací protokoly, propojování sítí Směrovací protokoly, propojování sítí RNDr. Ing. Vladimir Smotlacha, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Vladimír Smotlacha, 2011 Počítačové

Více

B4. Počítačové sítě a decentralizované systémy Jakub MÍŠA (2006)

B4. Počítačové sítě a decentralizované systémy Jakub MÍŠA (2006) B4. Počítačové sítě a decentralizované systémy Jakub MÍŠA (2006) 5. Síťové technologie videokonference a multimediální přenosy, IP telefonie, IP verze 6. Vysokorychlostní počítačové sítě pro vědu a výzkum

Více

Identifikátor materiálu: ICT-3-03

Identifikátor materiálu: ICT-3-03 Identifikátor materiálu: ICT-3-03 Předmět Téma sady Informační a komunikační technologie Téma materiálu TCP/IP Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí architekturu TCP/IP. Druh

Více

EXTRAKT z mezinárodní normy

EXTRAKT z mezinárodní normy EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě ICS: 03.220.01; 35.240.60 Komunikační infrastruktura pro pozemní mobilní zařízení (CALM)

Více

Alcatel OmniPCX 4400 Základní vlastnosti

Alcatel OmniPCX 4400 Základní vlastnosti Alcatel OmniPCX 4400 Základní vlastnosti Popis Multimediální telekomunikační systém Alcatel OmniPCX 4400 umožňuje digitální přenosy hlasu, dat a obrazů do kapacity 50 000 přípojek a připojení do běžných

Více

ACASYS-KS Komunikace v systému ACASYS

ACASYS-KS Komunikace v systému ACASYS Komunikace v systému ACASYS Programátorská příručka Verze 1.05 acasys-ks_ms_cz_105 AMiT, spol. s r. o. nepřejímá žádné záruky, pokud se týče obsahu této publikace a vyhrazuje si právo měnit obsah dokumentace

Více

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP Počítačové sítě Lekce 4: Síťová architektura TCP/IP Co je TCP/IP? V úzkém slova smyslu je to sada protokolů používaných v počítačích sítích s počítači na bázi Unixu: TCP = Transmission Control Protocol

Více

EXTRAKT z mezinárodní normy

EXTRAKT z mezinárodní normy EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě ICS: 03.220.01; 35.240.60 Inteligentní dopravní systémy Komunikační infrastruktura pro

Více

Inovace výuky prostřednictvím šablon pro SŠ

Inovace výuky prostřednictvím šablon pro SŠ Název projektu Číslo projektu Název školy Autor Název šablony Název DUMu Stupeň a typ vzdělávání Vzdělávací oblast Vzdělávací obor Tematický okruh Inovace výuky prostřednictvím šablon pro SŠ CZ.1.07/1.5.00/34.0748

Více

a autentizovaná proxy

a autentizovaná proxy Mendelova univerzita v Brně Virtuální privátní síť a autentizovaná proxy Verze: 1.2 Datum: 5. dubna 2011 Autor: Martin Tyllich, Aleš Vincenc, Stratos Zerdaloglu 2 Obsah 1 Připojení pomocí proxy serveru

Více

Komunikační protokoly počítačů a počítačových sítí

Komunikační protokoly počítačů a počítačových sítí Komunikační protokoly počítačů a počítačových sítí Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1138_Komunikační protokoly počítačů a počítačových sítí_pwp Název školy: Číslo a název projektu:

Více

Kvalita služeb datových sítí z hlediska VoIP

Kvalita služeb datových sítí z hlediska VoIP Kvalita služeb datových sítí z hlediska VoIP Ing. Pavel BEZPALEC Katedra telekomunikační techniky, ČVUT FEL v Praze Technická 2, Praha 6 bezpalec@fel.cvut.cz Abstrakt: Příspěvek rozebírá pojem kvalita

Více

Topologie počítačových sítí Topologie = popisuje způsob zapojení sítí, jejich architekturu adt 1) Sběrnicová topologie (BUS)

Topologie počítačových sítí Topologie = popisuje způsob zapojení sítí, jejich architekturu adt 1) Sběrnicová topologie (BUS) Počítačové sítě Je to spojení dvou a více uzlů (uzel = počítač nebo další síť), za pomoci pasivních a aktivních prvků při čemž toto spojení nám umožňuje = sdílení technických prostředků, sdílení dat, vzdálenou

Více

CE - Prohlášení Prohlašujeme, že TEAC MEDIA SYSTEMS IP-20 USB Telefon splňuje následující normy a dokumenty: EMC Directive 89/336 / EEC

CE - Prohlášení Prohlašujeme, že TEAC MEDIA SYSTEMS IP-20 USB Telefon splňuje následující normy a dokumenty: EMC Directive 89/336 / EEC CE - Prohlášení Prohlašujeme, že TEAC MEDIA SYSTEMS IP-20 USB Telefon splňuje následující normy a dokumenty: EMC Directive 89/336 / EEC EN 55022 : 1998 + A1 : 2000 + A2 : 2003 EN 55024 : 1998 + A1 : 2001

Více

REALIZACE SIP/H.323 BRÁNY S POUŽITÍM ÚSTŘEDNY ASTERISK

REALIZACE SIP/H.323 BRÁNY S POUŽITÍM ÚSTŘEDNY ASTERISK VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS

Více

PODKLADY PRO PRAKTICKÝ SEMINÁŘ PRO UČITELE VOŠ. Testování a analýza napájení po Ethernetu. Ing. Pavel Bezpalec, Ph.D.

PODKLADY PRO PRAKTICKÝ SEMINÁŘ PRO UČITELE VOŠ. Testování a analýza napájení po Ethernetu. Ing. Pavel Bezpalec, Ph.D. PODKLADY PRO PRAKTICKÝ SEMINÁŘ PRO UČITELE VOŠ Testování a analýza napájení po Ethernetu Ing. Pavel Bezpalec, Ph.D. AUTOR Pavel Bezpalec NÁZEV DÍLA Testování a analýza napájení po Ethernetu ZPRACOVALO

Více

3.17 Využívané síťové protokoly

3.17 Využívané síťové protokoly Název školy Číslo projektu Autor Název šablony Název DUMu Tematická oblast Předmět Druh učebního materiálu Anotace Vybavení, pomůcky Střední průmyslová škola strojnická Vsetín CZ.1.07/1.5.00/34.0483 Ing.

Více

Uživatelem řízená navigace v univerzitním informačním systému

Uživatelem řízená navigace v univerzitním informačním systému Hana Netrefová 1 Uživatelem řízená navigace v univerzitním informačním systému Hana Netrefová Abstrakt S vývojem počítačově orientovaných informačních systémů je stále větší důraz kladen na jejich uživatelskou

Více

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k

Více

IP - nové normy a aktualizace metodických pokynů MVČR

IP - nové normy a aktualizace metodických pokynů MVČR IP - nové normy a aktualizace metodických pokynů MVČR www.orsec.cz orsec@orsec.cz Historie a současnost průmyslové televize ( neustálý vývoj ).. 1948... 1996 2010... Historie a současnost průmyslové televize

Více

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit

Více

Smart PSS dohledový systém

Smart PSS dohledový systém Smart PSS dohledový systém Uživatelský manuál OBSAH Spuštění...3 Obecné nastavení...4 Účty...5 Přidat uživatele...5 Úprava a vymazání uživatele...6 Správce zařízení...7 Přidat zařízení...7 Nastavení parametrů...9

Více

LTC 8500 Modulární maticové přepínače a řídicí systémy Allegiant

LTC 8500 Modulární maticové přepínače a řídicí systémy Allegiant CCTV LTC 85 Modulární maticové přepínače a řídicí systémy Allegiant LTC 85 Modulární maticové přepínače a řídicí systémy Allegiant Přepínání 64 kamer na 8 monitorech 8 nezávislých klávesnic Modulární konstrukce

Více

SYSTEL IP 12 SYSTEL IP 4

SYSTEL IP 12 SYSTEL IP 4 SYSTEL IP 12 SYSTEL IP 4 IP TELEFONIE PRO ŽIVÁ ROZHLASOVÁ A TELEVIZNÍ TALK- SHOW A MULTIKONFERENČNÍ APLIKACE HD VoIP TELEFONNÍ SYSTÉMY Systémové požadavky Systel IP je systém typu call-in s multikonferenčními

Více

Manuál administrátora FMS...2

Manuál administrátora FMS...2 Manuál administrátora Manuál administrátora FMS...2 Úvod... 2 Schéma aplikace Form Management System... 2 Úvod do správy FMS... 3 Správa uživatelů... 3 Práva uživatelů a skupin... 3 Zástupci... 4 Avíza

Více

The Locator/ID Separation Protocol (LISP)

The Locator/ID Separation Protocol (LISP) The Locator/ID Separation Protocol (LISP) Robin Kořístka (KOR0116) Abstrakt: Seminární práce je věnována popisu a přiblížení funkčnosti nové síťové architektury LISP (Locator/ID Separation Protocol). Součástí

Více

Malý průvodce Internetem

Malý průvodce Internetem Malý průvodce Internetem Úvod Toto povídání by mělo sloužit jako užitečný zdroj informací pro ty, co o Internetu zatím mnoho neví nebo o něm jen slyšeli a neví, co si pod tím slovem představit. Klade si

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

Technologie počítačových sítí 5. cvičení

Technologie počítačových sítí 5. cvičení Technologie počítačových sítí 5. cvičení Obsah jedenáctého cvičení Active Directory Active Directory Rekonfigurace síťového rozhraní pro použití v nadřazené doméně - Vyvolání panelu Síťové připojení -

Více

DÁLKOVÁ SPRÁVA ŘÍDICÍCH SYSTÉMŮ V PROSTŘEDÍ CONTROL WEB 5

DÁLKOVÁ SPRÁVA ŘÍDICÍCH SYSTÉMŮ V PROSTŘEDÍ CONTROL WEB 5 1 DÁLKOVÁ SPRÁVA ŘÍDICÍCH SYSTÉMŮ V PROSTŘEDÍ CONTROL WEB 5 VŠB - Technická Univerzita Ostrava, Katedra automatizační techniky a řízení Příspěvek popisuje způsoby přístupů k řídicím systémům na nejnižší

Více

Základy Voice over IP (VoIP) pro IT techniky

Základy Voice over IP (VoIP) pro IT techniky Základy Voice over IP (VoIP) pro IT techniky Souhrn IP telefonie přichází - nebo už přišla - do vašich kanceláří. Voice over IP (VoIP) představuje pro síťové techniky nové prostředí, které vyžaduje znalosti

Více

IDENTITY MANAGEMENT Bc. Tomáš PRŮCHA

IDENTITY MANAGEMENT Bc. Tomáš PRŮCHA IDENTITY MANAGEMENT Bc. Tomáš PRŮCHA 20. 12. 2013 ÚVOD S penetrací IT do fungování společnosti roste důraz na zabezpečení důvěrnosti a opravdovosti (autenticity) informací a potvrzení (autorizaci) přístupu

Více

SIP terminály Aastra 67xxi

SIP terminály Aastra 67xxi SIP terminály Aastra 67xxi Aastra 5000 a Aastra IntelliGate Jádro bezpečných telekomunikačních řešení Vstupte do světa IP telefonie Kvalitní a spolehlivé terminály tvoří základ moderní komunikace, která

Více

Katedra softwarového inženýrství MFF UK Malostranské náměstí 25, 118 00 Praha 1 - Malá Strana

Katedra softwarového inženýrství MFF UK Malostranské náměstí 25, 118 00 Praha 1 - Malá Strana , v. 3.5 o čem bude druhá část přednášky? Katedra softwarového inženýrství, Matematicko-fyzikální fakulta, Univerzita Karlova, Praha Lekce 1: internetworking J. Peterka, 2011 internetworking aneb: vzájemné

Více

Microsoft Office Project Server 2003. V Eurotelu Praha byl implementován systém pro řízení strategických projektů

Microsoft Office Project Server 2003. V Eurotelu Praha byl implementován systém pro řízení strategických projektů Microsoft Office Project Server 2003 V Eurotelu Praha byl implementován systém pro řízení strategických projektů Přehled Země: Česká republika Odvětví: Telekomunikace Profil zákazníka Eurotel Praha, spol.

Více

X36PKO Úvod Jan Kubr - X36PKO 1 2/2006

X36PKO Úvod Jan Kubr - X36PKO 1 2/2006 X36PKO Úvod Jan Kubr - X36PKO 1 2/2006 X36PKO přednášející: Jan Kubr kubr@fel.cvut.cz,místnost G2,(22435) 7628 cvičící: Jan Kubr Jiří Smítka smitka@fel.cvut.cz, G2, 7629 Pavel Kubalík xkubalik@fel.cvut.cz,

Více

Počítačová gramotnost II Mgr. Jiří Rozsypal aktualizace 1. 9. 2011

Počítačová gramotnost II Mgr. Jiří Rozsypal aktualizace 1. 9. 2011 Počítačová gramotnost II Mgr. Jiří Rozsypal aktualizace 1. 9. 2011 Počítačová gramotnost II Tato inovace předmětu Počítačová gramotnost II je spolufinancována Evropským sociálním fondem a Státním rozpočtem

Více

Normy ISO/IEC NISS. V Brně dne 7. listopadu 2013

Normy ISO/IEC NISS. V Brně dne 7. listopadu 2013 Normy ISO/IEC 27033 Bezpečnost síťové infrastruktury NISS V Brně dne 7. listopadu 2013 Soubor norem řady ISO/IEC 27033 ISO/IEC 27033 - Informační technologie Bezpečnostní techniky Síťová bezpečnost Jde

Více

Průvodce Bosch IP síťovými video produkty. Představení IP technologie a budoucnosti průmyslové televize.

Průvodce Bosch IP síťovými video produkty. Představení IP technologie a budoucnosti průmyslové televize. Průvodce Bosch IP síťovými video produkty Představení IP technologie a budoucnosti průmyslové televize. Motivací vývoje technologie průmyslové televize jsou tři hlavní požadavky. Prvním je požadavek na

Více

Č.j. PPR-15160-80/ČJ-2011-0099EC Praha 2.12.2011 Počet listů: 5 + email nebo fax

Č.j. PPR-15160-80/ČJ-2011-0099EC Praha 2.12.2011 Počet listů: 5 + email nebo fax POLICEJNÍ PREZIDIUM ČESKÉ REPUBLIKY Odbor veřejných zakázek Č.j. PPR-15160-80/ČJ-2011-0099EC Praha 2.12.2011 Počet listů: 5 + email nebo fax Dle seznamu uchazečů č.j. PPR-15160-15/ČJ-2011-0099EC, kteří

Více

Universal Serial Bus. Téma 12: USB. Komunikační principy Enumerace Standardní třídy zařízení

Universal Serial Bus. Téma 12: USB. Komunikační principy Enumerace Standardní třídy zařízení Universal Serial Bus Téma 12: USB Komunikační principy Enumerace Standardní třídy zařízení Obecné charakteristiky distribuovaná datová pro připojení počítačových periferií klávesnice, myš, Flash disk,

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

NÁVRH ZMĚNY TECHNOLOGIE CALL CENTRA PROPOSAL OF CALL CENTER TECHNOLOGY CHANGING

NÁVRH ZMĚNY TECHNOLOGIE CALL CENTRA PROPOSAL OF CALL CENTER TECHNOLOGY CHANGING VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA PODNIKATELSKÁ ÚSTAV INFORMATIKY FACULTY OF BUSINESS AND MANAGEMENT INSTITUTE OF INFORMATICS NÁVRH ZMĚNY TECHNOLOGIE CALL CENTRA PROPOSAL

Více

KIV/PIA Semestrální práce

KIV/PIA Semestrální práce KIV/PIA Semestrální práce Diskuzní fórum Tomáš Časta(A10N0057P) casta@students.zcu.cz 1. Architektura aplikace 1.1 MVC Model-view-controller (MVC) je softwarová architektura, která rozděluje datový model

Více

EXTRAKT z mezinárodní normy

EXTRAKT z mezinárodní normy EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě ICS: 03.220.01; 35.240.60 Inteligentní dopravní systémy Komunikační infrastruktura pro

Více

Management procesu II Mgr. Josef Horálek

Management procesu II Mgr. Josef Horálek Management procesu II Mgr. Josef Horálek Vlákna = Vlákna (Threads) = proces je definován množinou zdrojů výpočetního systému, které používá a umístěním, kde je spuštěn; = vlákno (thread) nazýváme lehký

Více

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,

Více

Rychlý postup k nastavení VoIP gatewaye ASUS VP100

Rychlý postup k nastavení VoIP gatewaye ASUS VP100 Rychlý postup k nastavení VoIP gatewaye ASUS VP100 Zapojení kabelů 1 Porty LINE1 a LINE2 připojte k telefonním přístrojům nebo faxu pomocí kabelu RJ-11 2 WAN port propojte ethernetovým kabelem RJ-45 s

Více

Bezpečnostní problémy VoIP a jejich řešení

Bezpečnostní problémy VoIP a jejich řešení Bezpečnostní problémy VoIP a jejich řešení Miroslav Vozňák Bakyt Kyrbashov VŠB - Technical University of Ostrava Department of Telecommunications Faculty of Electrical Engineering and Computer Science

Více

Jak se měří síťové toky? A k čemu to je? Martin Žádník

Jak se měří síťové toky? A k čemu to je? Martin Žádník Jak se měří síťové toky? A k čemu to je? Martin Žádník Představení CESNET je poskytovatelem konektivity pro akademickou sféru v ČR Zakládající organizace jsou univerzity a akademi věd Obsah Motivace Popis

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence schopnost, který je spolufinancován

Více

IPv6: Už tam budeme? Pavel Satrapa, TU v Liberci Pavel.Satrapa@tul.cz

IPv6: Už tam budeme? Pavel Satrapa, TU v Liberci Pavel.Satrapa@tul.cz IPv6: Už tam budeme? Pavel Satrapa, TU v Liberci Pavel.Satrapa@tul.cz AMS-IX IPv6 lehce přes 0,5 % provozu květen 2014 3,05 % září 2013 1,87 % Google Google detail víkendy Závěry ze statistik Černého Petra

Více

A7B36PSI Úvod 1/29. Jan Kubr. Honza Kubr - 1_uvod

A7B36PSI Úvod 1/29. Jan Kubr. Honza Kubr - 1_uvod A7B36PSI Úvod 1/29 A7B36PSI přednášející: kubr@fel.cvut.cz,místnost KN:E-435,(22435) 7628 cvičící: Ondřej Votava votavon1@fel.cvut.cz, KN:E-22,(22435) 7296, Michal Medvecký medvem1@fel.cvut.cz, KN:E-435,(22435)

Více

ArduinotechGSMShield knihovna

ArduinotechGSMShield knihovna Knihovna pro GSM shiled Pro Arduinotech GSM shield jsme vypracovali knihovnu základních funkcí, které jsou potřeba pro zacházení s hovorem a SMSkou. Tato knihovna bude dále rozvíjena. Některé příklady

Více

Obsah. 1. Upozornění. 2. Všeobecný popis

Obsah. 1. Upozornění. 2. Všeobecný popis Obsah 1. Upozornění... 1 2. Všeobecný popis... 1 3. Obsah servisního CD... 2 4. Hlavní elektronické části LES-RACK:... 2 5. Nastavení Ethernetového modulu zařízení LES-RACK... 2 6. Použití servisního programu

Více

Local Interconnect Network - LIN

Local Interconnect Network - LIN J. Novák Czech Technical University in Prague Faculty of Electrical Engineering Dept. Of Measurement Distributed Systems in Vehicles CAN LIN MOST K-line Ethernet FlexRay Základní charakteristiky nízká

Více

metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování

metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování Cílem tohoto tematického celku je poznat formát internet protokolu (IP) a pochopit základní principy jeho fungování včetně návazných

Více

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat.

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat. Počítačové sítě Počítačová síť je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat. Základní prvky sítě Počítače se síťovým adaptérem pracovní

Více

Metodika pro analýzu úrovně poskytování informací cestujícím ve veřejné dopravě. uplatnění výsledků výzkumu

Metodika pro analýzu úrovně poskytování informací cestujícím ve veřejné dopravě. uplatnění výsledků výzkumu Metodika pro analýzu úrovně poskytování informací cestujícím ve veřejné dopravě METODIKA uplatnění výsledků výzkumu 2012 Metodika pro analýzu úrovně poskytování informací cestujícím ve veřejné dopravě

Více

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB Úloha č. 2. Zadání: 1. Seznamte se s principy komunikace na sériovém

Více

Realizace a zabezpečení telefonního centra s využitím technologie Voice Over Internet Protocol. Implementation of secure VOIP call center

Realizace a zabezpečení telefonního centra s využitím technologie Voice Over Internet Protocol. Implementation of secure VOIP call center Realizace a zabezpečení telefonního centra s využitím technologie Voice Over Internet Protocol Implementation of secure VOIP call center Bc. Josef Zavřel Diplomová práce 2011 UTB ve Zlíně, Fakulta aplikované

Více

ELEARNING NA UJEP PŘEDSTAVY A SKUTEČNOST

ELEARNING NA UJEP PŘEDSTAVY A SKUTEČNOST ELEARNING NA UJEP PŘEDSTAVY A SKUTEČNOST JAN ČERNÝ, PETR NOVÁK Univerzita J.E. Purkyně v Ústí nad Labem Abstrakt: Článek popisuje problematiku rozvoje elearningu na UJEP. Snahu o vytvoření jednotného celouniverzitního

Více

Průzkum a ověření možností směrování multicast provozu na platformě MikroTik.

Průzkum a ověření možností směrování multicast provozu na platformě MikroTik. Průzkum a ověření možností směrování multicast provozu na platformě MikroTik. K. Bambušková, A. Janošek Abstrakt: V této práci je popsán základní princip multicastů, následuje popis možností použití multicastů

Více

CD-ROM, MULTIMÉDIA A INTERNET VE VEŘEJNÝCH KNIHOVNÁCH

CD-ROM, MULTIMÉDIA A INTERNET VE VEŘEJNÝCH KNIHOVNÁCH CD-ROM, MULTIMÉDIA A INTERNET VE VEŘEJNÝCH KNIHOVNÁCH Vladimír Karen 1. Veřejné knihovny v informačním věku V poslední době se to v našem i zahraničním tisku hemží rozhovory, polemikami a anketami na téma

Více

TIPES ČASTO KLADENÉ DOTAZY

TIPES ČASTO KLADENÉ DOTAZY TIPES ČASTO KLADENÉ DOTAZY Otázka: Po zapnutí se mi Tipes nerozjede. Řešení: Zkontrolujte síťový adaptér (adaptéry). Výstupní napětí musí být 12V. Zkontrolujte také kabely, čistotu konektorů. Otázka: Mám

Více

PB169 Operační systémy a sítě

PB169 Operační systémy a sítě PB169 Operační systémy a sítě Architektura poč. sítí, model OSI Marek Kumpošt, Zdeněk Říha Úvod počítačová síť Počítačová síť skupina počítačů a síťových zařízení vzájemně spojených komunikačním médiem

Více