Sokety a sí ování. Katedra po íta. Ji í Vok ínek. P edná²ka 9 B6B36PJV Programování v JAVA
|
|
- Antonín Čech
- před 6 lety
- Počet zobrazení:
Transkript
1 Sokety a sí ování Ji í Vok ínek Katedra po íta Fakulta elektrotechnická ƒeské vysoké u ení technické v Praze P edná²ka 9 B6B36PJV Programování v JAVA Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 1 / 85
2 ƒást 1 Sí ování Sí ování Zp soby a modely komunikace Sí ové modely a Internet Transportní a aplika ní protokoly Sí ová API Soket Sí ování v Jav T ídy UDP a TCP soket Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 2 / 85
3 ƒást 2 P íklad jednoduchý klient a server P íklad jednoduchý klient a server Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 3 / 85
4 ƒást 3 P íklad aplikace Boss/Worker P íklad vláknové aplikace Server P íklad vláknové aplikace Klient Spu²t ní jiného programu z procesu Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 4 / 85
5 ƒást I Sí ování Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 5 / 85
6 Co je sí ování? Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 6 / 85
7 Zdroje Ji í Peterka, RFC - Request for Comments, série poznámek o Internetu. Martin Majer, W. Richard Stevens, UNIX Network Programming. Prentice Hall. W. Richard Stevens and Stephen A. Rago, Advanced Programming in the UNIX Environment. Addison Wesley. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 7 / 85
8 Motivace Sí ování je z pohledu vývoje aplikace (programování) technická realizace komunikace vzdálených výpo etních systém. Komunikace je p irozenou sou ástí distribuovaných aplikací. Aplikace nabízející sluºby uºivateli (nap. webový server, databáze). Uºivatelské aplikace zprost edkovávající uºivateli p ístup ke sluºbám (nap. webový prohlíºe ). Sdílení zdroj - distribuované výpo etní systémy. Sb r dat (data acquisition) - zpracování dat z mnoha m ících míst, senzorické sít. Distribuované ízení - nap íklad kooperující skupina mobilních robot. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 8 / 85
9 Vývoj aplikace P i vývoji aplikace vyuºíváme zpravidla n jakého rozhraní (API) pro realizaci komunika ního spojení se vzdáleným systémem. Z tohoto pohledu sí ové spojení slouºí ke tení a zápisu posloupnosti byt. Podle typu aplikace je rozhodující: spolehlivost p enosu dat, p enosová rychlost, zpoºd ní (latence) p enosu, zp sob p edávání dat, Vlastnosti souvisejí s konkrétní realizací sí ového spojení a je nutné je respektovat. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 9 / 85
10 Komunikace Komunikace slouºí k p enosu informace. P enos informace se d je vým nou zpráv. Mechanismus vým ny zpráv musí mít denovaná pravidla. Typicky lze denovat: zahájení komunikace, p edání zprávy, reakce na zprávu, ukon ení komunikace. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 10 / 85
11 Protokol Zp sob komunikace denuje komunika ní protokol. Protokol denuje: formát zpráv, po adí vým ny zpráv, syntaxi zpráv, sémantiku zpráv, chování p i p ijmu a vyslání zprávy. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 11 / 85
12 P enos bit /byt Z uºivatelského hlediska jde o p enos obsahu sd lení. print("hallo"); Hallo! P enos v²ak vyºaduje dal²í informace související s p enosovou cestou. Výsledná velikost p ená²ených dat je vy²²í. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 12 / 85
13 Po et ú astníku komunikace Komunikaci m ºe rozd lit podle po tu ú astník. Dvou bodové (point-to-point) - jeden p ijímací bod, jeden vysílací bod. duplexní p enos - komunikace m ºe probíhat ob ma sm ry sou asn. Vícesm rové - více p ijímacích stran, jedna vysílací. multimediální aplikace, p enos videa, tele-konference. v²esm rové - broadcast, vícesm rové - multicast. My se budeme zabývat p eváºn dvou bodovou komunikací. Vhodné pro Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 13 / 85
14 Modely komunikace Typická sí ová aplikace se skládá ze dvou ástí: Server - reprezentuje sluºby. Klient - reprezentuje poptávku po sluºb. Modely komunikace jsou: klient/server - klient ºádá o sluºbu server. Webový server, po²tovní server, Instant Messaging (IM), vzdálená sezení. peer-to-peer (P2P) - kaºdý ú astník vystupuje jako klient i jako server. Sluºby sdílení soubor, bittorrent,.... Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 14 / 85
15 Zp soby komunikace Kritéria d lení komunikace. Podle zp sobu navazování spojení: spojovaná komunikace, nespojovaná komunikace. Podle zp sobu p enosu data: proudový p enos, blokový p enos. Podle kvality p enosu a garance kvality p enosu: spolehlivý, nespolehlivý, s garantovanou kvalitou, bez ízení kvality. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 15 / 85
16 Zp soby komunikace Kritéria d lení komunikace. Podle zp sobu navazování spojení: spojovaná komunikace, nespojovaná komunikace. Podle zp sobu p enosu data: proudový p enos, blokový p enos. Podle kvality p enosu a garance kvality p enosu: spolehlivý, nespolehlivý, s garantovanou kvalitou, bez ízení kvality. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 15 / 85
17 Zp soby komunikace Kritéria d lení komunikace. Podle zp sobu navazování spojení: spojovaná komunikace, nespojovaná komunikace. Podle zp sobu p enosu data: proudový p enos, blokový p enos. Podle kvality p enosu a garance kvality p enosu: spolehlivý, nespolehlivý, s garantovanou kvalitou, bez ízení kvality. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 15 / 85
18 Zp soby komunikace Kritéria d lení komunikace. Podle zp sobu navazování spojení: spojovaná komunikace, nespojovaná komunikace. Podle zp sobu p enosu data: proudový p enos, blokový p enos. Podle kvality p enosu a garance kvality p enosu: spolehlivý, nespolehlivý, s garantovanou kvalitou, bez ízení kvality. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 15 / 85
19 Spojovaná komunikace Spojovaná komunikace (Connection oriented). Skládá se ze t í krok : 2. Vlastní vým na sd lení. 3. Ukon ení spojení. 1. Ob strany nejd íve navazují spojení. Ob strany potvrdí zájem o komunikaci p ípadn up esní parametry vzájemné komunikace. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 16 / 85
20 Vlastnosti spojované komunikace Sou ástí komunikace je p echod stav ú astník. P echody mezi stavy musí být koordinované. Ob strany musí být v kompatibilním stavu, aby se domluvily. Musí být o²et ovány nestandardní situace. Nap íklad rozpad spojení. P i p enosu zpráv je zachováno po adí vysílaných zpráv. P ijímací strana obdrºí zprávy ve stejném po adí v jakém je poslala vysílací strana. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 17 / 85
21 Nespojovaná komunikace Komunikující strany nenavazují spojení. Nedochází k ov ování existence druhé strany. Komunikace probíhá zasíláním samostatných zpráv (datagram ). Není nutné komunikaci ukon ovat. Vlastnosti: Komunikace je bezstavová. Adresování zprávy Zprávy jsou p ená²eny v samostatném bloku dat (datagramu), které jsou samostatn p ená²eny. Není zaru ené po adí zpráv. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 18 / 85
22 Zp soby p enosu Proudový p enos (stream) Data jsou p ená²ena po bytech (bitech). Data nemusí být p ená²ena po v t²ích blocích. P edpokládá spojovaný typ komunikace. Data nejsou adresována. Blokový p enos Data jsou p ená²ena po blocích. Blok je p enesen jako celek. Spojovaný i nespojovaný typ komunikace. Data jsou adresována podle typu komunikace. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 19 / 85
23 Sloºky sí ování Propojování systém se skládá z: 1. p enosového média, 2. ízení p ístupu k p enosovému médiu, 3. rozli²ení (adresace) fyzického prost edku p ipojení, 4. p enosových pravidel (jak jsou data p ená²ena), 5. komunika ních pravidel (jak je denované spojení), 6. aplika ního rozhraní, 7. aplika ního protokolu. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 20 / 85
24 Sí ové modely Modely jsou vícevrstvé. Vrstva denuje vlastnosti p íslu²né ásti komunikace. Vrstvený model je abstrakcí jednotlivých stup realizace sít. Modely: ISO-OSI - 7-vrstvý obecný model. TCP/IP - 4-vrstvý model, nejpouºívan j²í v rámci Internetu, základem je jednoduchý protokol IP. Pokud víte co d láte, 4 vrstvy sta í, pokud ne, ani 7 vrstev vám nepom ºe. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 21 / 85
25 Sí ové modely Modely jsou vícevrstvé. Vrstva denuje vlastnosti p íslu²né ásti komunikace. Vrstvený model je abstrakcí jednotlivých stup realizace sít. Modely: ISO-OSI - 7-vrstvý obecný model. TCP/IP - 4-vrstvý model, nejpouºívan j²í v rámci Internetu, základem je jednoduchý protokol IP. Pokud víte co d láte, 4 vrstvy sta í, pokud ne, ani 7 vrstev vám nepom ºe. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 21 / 85
26 ISO-OSI sí ový model 1. Fyzická vrstva - médium (kabel, vzduch), jejím úkolem je p enos bit po vedení. 2. Linková vrstva - pravidla pro asový multiplex paket. 3. Sí ová vrstva - pravidla pro HW adresování. 4. Transportní vrstva - pravidla pro zasílání paket. 5. Komunika ní vrstva - pravidla pro komunika ní spojení mezi dv ma po íta i. 6. Prezenta ní vrstva - sí ové API 7. Aplika ní vrstva. (a mnohem víc, ). Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 22 / 85
27 TCP/IP sí ový model Linková vrstva - p enos bit. Sí ová vrstva (Internet nebo téº IP vrstva) - cesta datagram z jednoho hosta na jiný. Transportní vrstva - TCP zprávy transportní vrstvy. Aplika ní vrstva - sí ová aplikace. Jednotným prvek modelu TCP/IP je p enosový protokol IP, který má v²ude (linková vrstva) stejné vlastnosti. P enosový protokol IP p edepisuje jednotný zp sob adresování: inet - 32 bitová adresa, inet6-128 bitová adresa. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 23 / 85
28 Zapouzd ování datových jednotek aplikační vrstva aplikační zpráva transportní vrstva segment segment síťová vrstva hlavička datová oblast datagramu datagram linková vrstva hlavička datová oblast rámce Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 24 / 85
29 Sí TCP/IP (Internet) Sloºena ze soustavy díl ích sítí, které jsou vzájemn propojeny. Rozli²ujeme dva typu uzl : Hostitelský po íta (host) - koncový uzel sít, má svoji adresu. Sm rova (router) - propojuje nejmén dv IP sít. Ethernet Switch Ethernet Switch Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 25 / 85
30 Adresování v TCP/IP a transportní protokoly Vrstva IP denuje sí ovou adresu sí ového rozhraní (host). Z pohledu více proces na hostitelském po íta i je výhodné zavést dal²í rozli²ovací údaj, (v rámci transportního protokolu). Nejznám j²í transportní protokoly jsou UDP - User Datagram Protocol, TCP - Transport Control Protocol. Oba protokoly pouºívají íslo portu. Adresa je sloºena z 1. IP adresy (host address), 32bit nebo 128bit, 2. ísla portu (16bit ). N které IP adresy mají vyhrazené pouºítí, nap localhost. Ur ité aplikace pouºívají standardních port, 80 - www, 21 - ftp, 23 - telnet, 22 - ssh. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 26 / 85
31 Adresování v TCP/IP a transportní protokoly Vrstva IP denuje sí ovou adresu sí ového rozhraní (host). Z pohledu více proces na hostitelském po íta i je výhodné zavést dal²í rozli²ovací údaj, (v rámci transportního protokolu). Nejznám j²í transportní protokoly jsou UDP - User Datagram Protocol, TCP - Transport Control Protocol. Oba protokoly pouºívají íslo portu. Adresa je sloºena z 1. IP adresy (host address), 32bit nebo 128bit, 2. ísla portu (16bit ). N které IP adresy mají vyhrazené pouºítí, nap localhost. Ur ité aplikace pouºívají standardních port, 80 - www, 21 - ftp, 23 - telnet, 22 - ssh. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 26 / 85
32 UDP User Datagram Protocol Nespojovaný a nespolehlivý zp sob komunikace. Blokový p enos zpráv (datagram ). Roz²i uje p enosový protokol IP (RFC 791) sí ové vrstvy o íslo portu. P enos kaºdého datagramu je nezávislý. RFC 768. P idává pouze tenkou vrstvu nad IP. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 27 / 85
33 UDP vlastnosti Není nutné navazovat spojení, které m ºe být asové náro né Hlavi ka datagramu je malá. šádná kontrola propustnosti, maximální rychlost p enosu. UDP datagram je p enesen najednou. zvy²uje zpoºd ní Hodí se pro p enos dat, které mohou obsahovat výpadky (nedoru ení zprávy), ale vyºadující minimalizaci asových zpoºd ní. Spolehlivost lze e²it v aplika ní vrstv. nap. data m ená opakovan (opakovaný p enos zpráv) Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 28 / 85
34 Transmission Control Protocol TCP Spojovaný zp sob komunikace - dochází k vým n ídicích zpráv, (vyºaduje model klient/server pro navázání spojení). Dvou bodové obousm rné spojení. Proudový p enos zpráv - zachování po adí. Pipelined p enos s vyrovnávací pam tí, zapsaná data nemusí být ihned poslána. Tok dat je ízen - nem ºe dojít k zahlcení p ijímací strany, ( ízení toku je realizováno potvrzení p íjetí). Spolehlivost p enosu je zaji²t na potvrzováním p ijatých dat. ídicí zpráva ACK potvrzující p íjem zprávy (packetu). Spojení je udrºováno kontrolními zprávami i v p ípad, ºe nedochází k p enosu aplika ních dat (detekce rozpadu spojení). RFC - 793, 1323, 2018, Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 29 / 85
35 TCP - Potvrzování p ijatých dat Potvrzení p ijetí kaºdého vyslaného paketu musí být p ijato v daném asovém intervalu (TCP timeout). Data jsou posílána za sebou, sou asn se eká na více potvrzení. Doba p enosu zprávy (paketu) tzv. Round Trip Time RTT (RTT) - doba p enesení vlastních dat a potvrzovací zprávy. Závisí na konkrétním zatíºení sít. TCP timeout m ºe být p íli² krátký pro konkrétní RTT. lze nastavit Vyuºívá se kumulativních ack potvrzení více p ijatých paket najednou. V p ípad obousm rné komunikace jsou ack potvrzení p ená²ena s daty ve spole ném paketu. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 30 / 85
36 TCP ízení toku proudu Vysílací strana vyuºívá p ijatých ACK k ízení toku dat, aby nedocházelo k p ehlcovaní p ijímací strany (sít ). Problém ízení toku se uplat uje p i pomalém zpracování na p ijímací stran. V p ípad nedostate né kapacity sít, dochází k zahlcování sít, vedoucí k del²ím zpoºd ním a p ípadn ke ztrátám paket. kone ná velikost vyrovnávací pam ti sm rova Velikost okénka pro maximální po et p ená²ených se dynamicky m ní, podle zatíºení koncových bod spojení. Poznámka - spolehlivost p enosu: garantovaná, ale ne zas tak moc, v t²í stupe garance lze dosáhnout dal²ími aplika ními úrovn mi. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 31 / 85
37 HTTP HTTP - HyperText Transfer Protocol pro webové aplikace. Aplika ní protokol nad p enosovým protokolem TCP z rodiny protokol TCP/IP. Klient/Server model komunikace: client - webový prohlíºe, ºádá o webové objekty, které chce zobrazit. server - webový server, posílá webové objekty jako odpov na ºádost. Bezstavová komunikace, request/response model. HTTP 1.0: RFC 1945, HTTP 1.1:RFC Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 32 / 85
38 HTTP - request/response Postup vy ízení ºádosti o webový objekt (HTML stránka): 1. Klient iniciuje TCP spojení k serveru. 2. Server p ijímá TCP spojení (spojení je navázáno). 3. Klient posílá HTTP zprávu s ºádostí o webový objekt. 4. Server posílá HTTP zprávu s webovým objektem. 5. Klient p ijímá HTTP zprávu s webovým objektem. 6. Server uzavírá spojení. Navazování spojení (TCP handshaking) e²í transportní vrstva, p i navazování zpravidla dojde k vým n n kolika zpráv. TCP protokol je potvrzovaný, server uzavírá spojení, aº kdyº klient potvrdí p íjem zprávy. Potvrzení op t e²í transportní vrstva. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 33 / 85
39 HTTP - request/response Postup vy ízení ºádosti o webový objekt (HTML stránka): 1. Klient iniciuje TCP spojení k serveru. 2. Server p ijímá TCP spojení (spojení je navázáno). 3. Klient posílá HTTP zprávu s ºádostí o webový objekt. 4. Server posílá HTTP zprávu s webovým objektem. 5. Klient p ijímá HTTP zprávu s webovým objektem. 6. Server uzavírá spojení. Navazování spojení (TCP handshaking) e²í transportní vrstva, p i navazování zpravidla dojde k vým n n kolika zpráv. TCP protokol je potvrzovaný, server uzavírá spojení, aº kdyº klient potvrdí p íjem zprávy. Potvrzení op t e²í transportní vrstva. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 33 / 85
40 HTTP - request/response Postup vy ízení ºádosti o webový objekt (HTML stránka): 1. Klient iniciuje TCP spojení k serveru. 2. Server p ijímá TCP spojení (spojení je navázáno). 3. Klient posílá HTTP zprávu s ºádostí o webový objekt. 4. Server posílá HTTP zprávu s webovým objektem. 5. Klient p ijímá HTTP zprávu s webovým objektem. 6. Server uzavírá spojení. Navazování spojení (TCP handshaking) e²í transportní vrstva, p i navazování zpravidla dojde k vým n n kolika zpráv. TCP protokol je potvrzovaný, server uzavírá spojení, aº kdyº klient potvrdí p íjem zprávy. Potvrzení op t e²í transportní vrstva. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 33 / 85
41 HTTP p íklad 1 telnet cs.felk.cvut.cz 80 2 Trying 2001:718:2:1611:: Trying Connected to cs.felk.cvut.cz. 5 Escape character is '^]'. 6 GET /index.html 7 8 <!DOCTYPE html> 9 <html> 10 <head> 11 <meta charset="utf-8"> 12 <meta name="description" content=""> 13 <meta name="robots" content="noindex"> 14 <meta http-equiv="x-ua-compatible" content="ie= edge"> 15 <meta name="viewport" content="width=device-width, initial-scale=1"> <base href=""> <title>department of Computer Science</title> Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 34 / 85
42 Soket Soket je objekt, který propojuje aplikaci s n jakým sí ovým protokolem BSD4.1 Unix. Soket je softwarová komponenta. Soket je obecný objekt komunikace mezi dv ma procesy. Není omezen pouze na TCP/IP. Soket API konvertuje obecnou aplika ní vrstvu na specický protokol transportní vrstvy. Soket API denuje operace nad soketem (primitiva). Soket reprezentuje koncový bod komunikace. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 35 / 85
43 Soket - aplikace a OS Sí ové rozhraní pat í mezi sdílené prost edky, proto p ístup k n mu ídí OS. uživatelský proces operační systém proces soket transportní vrstva proces soket transportní vrstva Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 36 / 85
44 Soket a TCP/IP Dva základní transportní protokoly TCP a UDP. Plná specikace soketu (ve spojení): protokol, lokální adresa, vzdálená adresa (m ºe být na témºe hostu). Adresa se skládá z IP adresy a ísla portu. P íklad obsahu Soket deskriptoru Family: PF_INET Service: SOCK_STREAM Local IP: Remote IP: Local Port: Remote Port: 22 Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 37 / 85
45 Základní primitiva soketu create - vytvo ení soketu. bind - p i azení portu soketu na lokální adrese. connect - iniciace spojení na vzdálený soket. listen - ekání na iniciaci spojení. accept - p ijmutí spojení. send - poslání zprávy. receive - p ijmutí zprávy. shutdown - uzav ení spojení. close - uvoln ní soketu. Z pohledu vlastní komunikace jsou nejd leºit j²í primitiva send a receive. Ostatní souvisí s navazováním a ukon ováním spojení. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 38 / 85
46 Soket a klient/server TCP protokol vyºaduje model komunikace klient/server. 1. Server o ekává ºádost o spojení. 2. Klient navazuje spojení se serverem. 3. Po navázání spojení probíhá komunikace. 4. Uzav ení komunikace. Soket serveru ekající na ºádost o spojení není aktivní (neprobíhá komunikace). íkáme, ºe je v pasivním reºimu. Soket je aktivní - slouºí k inicializaci spojení a komunikaci. pasivní - eká na p íchozí spojení. Nep ipojený soket konvertujeme na pasivní soket primitivem listen. Alternativn pouºíváme tzv. Serverový soket. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 39 / 85
47 Accept - p ijmutí spojení Primitivum accept zp sobí: 1. ekání na p íchozí ºádost o spojení, 2. p íjem spojení, vrací nový soket deskriptor. Client Client Socket connect(adresa) Server Socket Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 40 / 85
48 Accept - p ijmutí spojení Primitivum accept zp sobí: 1. ekání na p íchozí ºádost o spojení, 2. p íjem spojení, vrací nový soket deskriptor. Client Client Socket connect(adresa) Server Socket navázané spojení Socket accept Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 40 / 85
49 Bind - nastavení adresy P i adí soketu lokální adresu (IP, port). Nastavení IP adresy je uºite né v p ípad více sí ových rozhraní. TCP Server p ijímá spojení pouze z nastavené sí ové adresy (sít ). TCP Client posílá datagramy p es nastavené sí ové rozhraní. Server nastavuje port na standardní hodnotu (80 http, 22 ssh....), tak aby se klient mohl p ipojit. TCP klient nemusí nastavovat port. V p ípad, ºe není adresa ani port specikován vybere OS volnou hodnotu. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 41 / 85
50 ƒísla port BSD rozd lení: BSD rezervované, BSD do asné porty, s krátkou dobou pouºití, nap. spojení s webovým serverem, BSD servery, neprivilegované. IANA: Internet Assigned Numbers Authority IANA známé porty, IANA registrované porty, IANA dynamické nebo privátní porty. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 42 / 85
51 TCP P íklad P íklad server servsock=sock(); bind(servsock, port); listen(servsock); //servsock je v pasivním reºimu sock=accept(servsock); //spojení navázáno msg=receive(sock); send(sock, msg2); close(sock); P íklad klient sock = sock(); add = address( servip, port); connect(sock, add); //spojení navázáno send(sock, msg); msg = receive(sock); close(sock); Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 43 / 85
52 UDP soket UDP komunikace neobsahuje spojení mezi serverem a klientem. Vysílací strana explicitn stanovuje cílovou IP adresu a port. P ijímací strana musí získat IP adresu a port vysílací strany z p ijatého datagramu. Vysílaná data mohou být: p ijata v jiném po adí (datagram ), ztracena. Server eká, ºe n co p ijme od n jakého klienta. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 44 / 85
53 UDP P íklad P íklad server sock=sock(); bind(sock, port); //sock je p ipraven na p ijmutí dat od klienta msg=receive(sock); cladd = address(msg); //poslání dat na klientovu adresu sendto(sock, msg2, cladd); close(sock); P íklad klient sock = sock(); add = address( servip, port); //poslání dat na adresu serveru sendto(sock, msg, add); //doufám, ºe mne server vysly²í a po²le odpov msg = receive(sock); close(sock); Server m ºe komunikovat s více klienty prost ednictvím jediného soketu (multiplexing). Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 45 / 85
54 Sí ování a paralelismus (vlákna) Doporu ení pro b ºné aplikace, pokud to programové prost edí dovoluje. TCP server realizuje obsluhu klienta samostatným vláknem, Boss/- Worker model. UDP server komunikující prost ednictvím jediného soketu je výhodné realizovat multiplexem I/O operací. Klient, u kterého je soket jedním z mnoha generátor událostí, realizujeme více vláknov. Asynchronní model I/O operací je typický v embedded aplikacích. Nár st výpo etních výkonu embedded procesor vede na pouºívání OS s podporou paralelismu (pseudoparalelismu). Aktivnímu ekání se snaºíme pokud moºno vyhnout. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 46 / 85
55 ƒtení proudu Proud je nekone ná posloupnost byt. Jediné tení zprávy z proudu, m ºe vrátit celou zprávu nebo pouze jediný byte. Aplika ní protokol musí denovat jak rozpoznat zprávu Identikace za átku a konce zprávy je zpravidla kontextov závislá (stavová komunikace). TCP proud pouºíváme jako spolehlivého kanálu pro p enos zpráv denované délky (nap. HTTP). P íklad První dva byty obsahují velikost n zprávy v bytech. Za átek následující zprávy se nachází v proudu o n byt dále. V p ípad chybné detekce nebo nep ijetí zprávy v as ukon ujeme spojení, pokusíme se identikovat za átek dal²í zprávy. SLIP - Serial Line Internet Protocol, RFC Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 47 / 85
56 Sokety v Jav Lesson: All About Sockets UDP soket java.net.datagramsocket TCP sokety: Adresa java.net.serversocket java.net.socket String host, int port, java.net.inetaddress. java.net.socketaddress. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 48 / 85
57 Sokety v Jav Lesson: All About Sockets UDP soket java.net.datagramsocket TCP sokety: Adresa java.net.serversocket java.net.socket String host, int port, java.net.inetaddress. java.net.socketaddress. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 48 / 85
58 Sokety v Jav Lesson: All About Sockets UDP soket java.net.datagramsocket TCP sokety: Adresa java.net.serversocket java.net.socket String host, int port, java.net.inetaddress. java.net.socketaddress. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 48 / 85
59 UDP soket Datová jednotka java.net.datagrampacket. DatagramPacket(byte[] buf, int length) DatagramPacket(byte[] buf, int length, InetAddress address, int port) byte[] getdata() Primitiva connect(inetaddress address, int port) bind(socketaddress addr) disconnect() close() receive(datagrampacket p) send(datagrampacket p) Cílová adresa je sou ástí datagramu. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 49 / 85
60 TCP soket Server soket primitiva bind(socketaddress endpoint) Socket accept() close() Soket (klientský) primitiva connect(socketaddress endpoint) connect(socketaddress endpoint, int timeout) bind(socketaddress bindpoint) Jaké rozhraní a jaký port chceme pouºít pro spojení (null). close() Zápis a tení je realizováno proudy. OutputStream getoutputstream() InputStream getinputstream() Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 50 / 85
61 O²et ení výjime ných stav Mechanismem výjimek java.net.socketexception, resp. java.io.ioexception. BindException ConnectException NoRouteToHostException ProtocolException SocketException SocketTimeoutException UnknownHostException Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 51 / 85
62 P íklad jednoduchý klient a server ƒást II P íklad jednoduchý klient a server Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 52 / 85
63 P íklad jednoduchý klient a server Popis innosti Jednoduchý telnet server s dv ma p íkazy. time po²le aktuální as serveru. bye ukon ení spojení. Textov orientované spojení. Po navázání spojení (TCP) musí klient poslat uºivatelské jméno a heslo. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 53 / 85
64 P íklad jednoduchý klient a server Denice protokolu 1. Po navázání spojení server posílá výzvu 'Username:'. 2. Klient odpovídá posláním uºivatelského jména zakon eného znakem '\n'. 3. Server posílá výzvu 'Password:'. 4. Klient odpovídá posláním hesla zakon eného znakem '\n'. 5. Server odpovídá zprávou 'Welcome\n'. 6. Klient m ºe posílat serveru p íkazy v libovolném po adí. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 54 / 85
65 P íklad jednoduchý klient a server Denice protokolu - p íkazy P íkaz se skládá ze jména p íkazu a znaku konce ádky '\n'. Server odpovídá textovou zprávou závislou na p íkazu, ukon enou '\n'. P íkazy: šádost o zaslání aktuálního asu. 1. Klient: 'time\n'. 2. Server: posílá aktuální as ve formátu 'time is: E M d hh:mm:ss zzz yyyy\'. Ukon ení spojení. 1. Klient: 'bye\n'. 2. Server: posílá konec proudu a zavírá soket. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 55 / 85
66 P íklad jednoduchý klient a server Implementace Implementaci rozd líme na t ídy: ParseMessage - realizuje tení a zápis textové zprávy z/do proudu. Obsah textové zprávy m ºe za ínat a nebo kon it zadanou sekvencí znak. Server - otevírá serverový soket na zadaném portu, po p ijetí klienta vytvá í ovlada klientského spojení. ClienHandler - realizuje obsluhu klientského spojení v samostatném vlákn. Client - testovací klient, který se p ipojí k serveru na zadané adrese a portu. Po²le uºivatelské jméno, heslo a ºádost o aktuální as, který vypí²e na obrazovku (pouze asový údaj) a skon í. V²e prob hne bez interakce uºivatele. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 56 / 85
67 P íklad jednoduchý klient a server ParseMessage 1 class ParseMessage { 2 void write(string msg) throws IOException { 3 out.write(msg.getbytes()); 4 } 5 String read(string startstr, String endstr) throws IOException { 6 byte[] start = startstr.getbytes(); 7 byte[] end = endstr.getbytes(); 8 int si = 0; int ei = 0; byte r;int count = 0; 9 while((si < start.length) 10 && ((r = (byte)in.read())!= -1)) { 11 si = (r == start[si])? si+1 : 0; 12 } 13 while ((ei < end.length) && (count < BUFFSIZE) 14 && ((r = (byte)in.read())!= -1)) { 15 buffer[count++] = r; 16 ei = (r == end[ei])? ei+1 : 0; 17 } 18 return new String(buffer, 0, 19 count > end.length? count-end.length : 0); 20 } 21 } Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 57 / 85
68 P íklad jednoduchý klient a server ClientHandler 1/3 1 class ClientHandler extends ParseMessage implements Runnable { 2 static final int UNKNOWN = -1; 3 static final int TIME = 0; 4 static final int BYE = 1; 5 static final int NUMBER = 2; 6 static final String[] STRCMD = {"time", "bye"}; 7 8 static int parsecmd(string str) { 9 int ret = UNKNOWN; 10 for (int i = 0; i < NUMBER; i++) { 11 if (str.compareto(strcmd[i]) == 0) { 12 ret = i; 13 break; 14 } 15 } 16 return ret; 17 } Socket sock; //klientsky soket 20 int id; //cislo klienta Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 58 / 85
69 P íklad jednoduchý klient a server ClientHandler 2/3 1 ClientHandler(Socket isocket, int iid) throws IOException { 2 sock = isocket; 3 id = iid; 4 out = sock.getoutputstream(); 5 in = sock.getinputstream(); 6 7 } 8 public void start() { new Thread(this).start(); } 9 void log(string str) { System.out.println(str); } public void run() { 12 String cid = "client["+id+"] "; 13 try { 14 log(cid + "Accepted"); 15 write("login:"); 16 log(cid + "Username:" + read("", "\n")); 17 write("password:"); 18 log(cid + "Password:" + read("", "\n")); 19 write("welcome\n"); Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 59 / 85
70 P íklad jednoduchý klient a server ClientHandler 3/ //run pokracování 2 boolean quit = false; 3 while (!quit) { 4 switch(parsecmd(read("", "\n"))) { 5 case TIME: 6 write("time is:"+ new Date().toString() + "\n"); 7 break; 8 case BYE: 9 log(cid + "Client sends bye"); 10 quit = true; 11 break; 12 default: 13 log(cid + "Unknown message, disconnect"); 14 quit = true; 15 break; } } 18 sock.shutdownoutput(); 19 sock.close(); 20 } catch (Exception e) { 21 System.out.println(cID + "Exception:" + e.getmessage()) ; 22 e.printstacktrace(); 23 } } Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 60 / 85
71 P íklad jednoduchý klient a server Server 1 public class Server { 2 public Server(int port) throws IOException { 3 int i = 0; 4 ServerSocket servsock = new ServerSocket(port); 5 while (true) { 6 try { 7 new ClientHandler(servsock.accept(), i++); 8 } catch (IOException e) { 9 System.out.println("IO error in new client"); 10 } } 11 } // Server() public static void main(string[] args) { 14 try { 15 new Server(args.length > 0? 16 Integer.parseInt(args[0]) : 9000); 17 } catch (Exception e) { 18 e.printstacktrace(); 19 } 20 } 21 } Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 61 / 85
72 P íklad jednoduchý klient a server Client 1/2 1 public class Client extends ParseMessage { 2 Socket sock; 3 public static void main(string[] args) { 4 Client c = new Client( 5 args.length > 0? args[0] : "localhost", 6 args.length > 1? Integer.parseInt(args[1]) : ); 8 } 9 10 Client(String host, int port) { 11 try { 12 sock = new Socket(); 13 sock.connect(new InetSocketAddress(host, port)); 14 out = sock.getoutputstream(); 15 in = sock.getinputstream(); Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 62 / 85
73 P íklad jednoduchý klient a server Client 2/2 1 //Client konstruktor pokra ování 2 write("user\n"); 3 read("", "Password:"); 4 System.out.println("Password prompt readed"); 5 write("heslo\n"); 6 read("", "Welcome\n"); 7 write("time\n"); 8 out.flush(); 9 System.out.println("Time on server is " + read("time is:", "\n")); 10 write("bye\n"); 11 sock.shutdownoutput(); 12 sock.close(); 13 System.out.println("Communication END"); 14 } catch (Exception e) { 15 System.out.println("Exception:" + e.getmessage()); 16 } 17 }} Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 63 / 85
74 P íklad jednoduchý klient a server Ukázka innosti P íklad Telnet 1 oredre$ java Telnet 2 Login:telnet 3 Password:tel 4 Welcome 5 time 6 time is:tue Nov 28 09:56:49 CET time 8 time is:tue Nov 28 09:56:50 CET bye P íklad Server 1 oredre$ java Server 2 client[0] Accepted 3 client[0] Username:telnet 4 client[1] Accepted 5 client[1] Username:user 6 client[1] Password:heslo 7 client[1] Client sends bye 8 client[0] Password:tel 9 client[0] Client sends bye P íklad Klient 1 oredre$ java Client 2 Password prompt readed 3 Time on server is Tue Nov 28 09:56:40 CET Communication END Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 64 / 85
75 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu ƒást III P íklad aplikace Boss/Worker Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 65 / 85
76 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu P íklad vícevláknové aplikace klient/server K serveru se p ipojí klient, který obdrºí parametry pro generování grafu. Klient vrací serveru hash hodnotu e²ení nejkrat²ích cest z uzlu 0. B hem vlastního e²ení musí klient komunikovat se serverem denovaným zp sobem a udrºovat spojení. Po odeslání výsledku server posílá potvrzení správného / ²patného e²ení a ukon uje spojení. Není-li spojení správn udrºované (periodické), posíláním alive zpráv, ukon uje server spojení. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 66 / 85
77 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Popis innosti serveru Po p ijetí klienta jsou provedeny následující operace. 1. Poslání parametr spojení klientu. 2. ƒekání na ºádost o parametry grafu. 3. Poslání parametr grafu. 4. Generování grafu, hledání e²ení a výpo et hash. 5. P íjem klientského e²ení. 6. Porovnání vlastního a klientského e²ení. 7. Poslání výsledku porovnání klientu. 8. Ukon ení spojení. B hem bodu 4 a 5 je nutné hlídat, zda klient udrºuje spojení. Klient m ºe poslat e²ení d íve neº jej nalezne server. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 67 / 85
78 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Pr b h innosti server obsluha klienta navázání spojení klient výpočet potvrzení spojení žádost o zadání zadání udržování spojení výsledek výpočtu potvrzení výpočtu a ukončení spojení Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 68 / 85
79 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Základní architektura Pro kaºdého p ipojeného klienta vytvo íme clienthandler, který obsahuje komunika ní modul comm, watchdog modul watchdog, který hlídá udrºování komunikace s klientem, modul pro e²ení zadaní dij, který volá program tdijkstra. Synchroniza ní mechanismy: fronta událostí, exkluzivní p ístup ke sdíleným prom nným. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 69 / 85
80 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Propojení modul hlavní vlákno vlákno vlákno komunikační modul nová událost fronta událostí čekání na událost nová událost dij modul watchdog modul vlákno volání rozhraní obsluha události volání rozhraní volání rozhraní Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 70 / 85
81 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Fronta událostí 1 class EventQueue { 2 Queue queue; 3 Object cond; 4 5 EventQueue() { 6 queue = new Queue(); 7 cond = new Object(); 8 9 } 10 synchronized void addevent(int event) { 11 queue.push(event); 12 cond.notify(); } 15 synchronized int getevent() { 16 if (queue.size() == 0) { 17 cond.wait(); 18 } 19 return queue.pop(); 20 } 21 } Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 71 / 85
82 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Modul Dij 1 class Dij extends Thread { 2 EventQueue queue; 3 int number; int seed; int from; 4 int hash; 5 Dij(EventQueue iqueue) { 6 queue = iqueue; 7 } 8 public void run() { 9 hash = calltdijkstra(number, seed, from); 10 queue.addevent(solution_found); 11 } 12 synchronized int gethash() { 13 return hash; 14 } 15 synchronized void solve(int n, int s, int f) { 16 if (!isalive()) { 17 number = n; seed = s; from = f; 18 start(); 19 } } 20 synchronized void shutdown() { 21 join(); 22 } 23 } Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 72 / 85
83 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Modul Watchdog 1/2 1 public class Watchdog extends Thread { 2 EventQueue queue; 3 int period; 4 int ping; 5 Watchdog(EventQueue iqueue, int iperiod) { 6 queue = iqueue; 7 period = iperiod; 8 } synchronized void alive() { 12 ping++; 13 } Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 73 / 85
84 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Modul Watchdog 2/2 1 public void run() { 2 boolean q = false; 3 while (!q) { 4 sleep(period); 5 synchronized(this) { 6 q = quit; 7 if (ping == 0) { 8 eventqueue.add(watchdog_timeout); 9 } 10 ping = 0; 11 } 12 } 13 } void shutdown() { 16 synchronized(this) { 17 quit = true; 18 } 19 join(); 20 } 21 } Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 74 / 85
85 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Modul Comm 1/2 1 class Comm extends Thread { 2 NetConnection conn; 3 EventQueue queue; 4 Comm(EventQueue iqueue, NetConnection iconn) { 5 queue = iqueue; 6 conn = icon; 7 } 8 synchronized void shutdown() { 9 if (!isalive()) { 10 conn.stop(); //stop network (blocking receiving) 11 join(); 12 } } 13 private synchronized int parse(commmessage msg) { return msgtype; 16 } 17 int synchronized gethash() { 18 //client hash from network connection 19 return hash; 20 } Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 75 / 85
86 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Modul Comm 2/2 1 public void run() { 2 CommMessage msg; 3 boolean quit = false; 4 //blocking receive 5 while(!quit && (msg = conn.receive()!= null)) { 6 switch(parse(msg)) { 7 case MSG_GETPARAM: 8 queue.addevent(client_getparam); 9 case MSG_ALIVE: 10 queue.addevent(client_alive); 11 break; 12 case MSG_SOLUTION: 13 queue.addevent(client_solution); 14 default: 15 //unknown message 16 quit = true; 17 break; 18 } 19 } 20 //inform main thread 21 queue.addevent(comm_terminated); 22 } Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 76 / 85
87 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Hlavní vlákno 1/3 ClientHandler je vytvo en po navázání spojení. 1 public class ClientHandler extends Thread { 2 EventQueue queue; 3 Watchdog watchdog; 4 Dij dij; 5 Comm com; 6 ClientHandler(NetConnection conn) { 7 queue = new EventQueue(); 8 watchdog = new Watchdog(queue, PERIOD); 9 dij = new Dij(queue); 10 comm = new Comm(queue, conn); 11 start(); 12 } void shutdown() { 15 watchdog.shutdown(); 16 comm.shutdown(); 17 dij.shutdown(); 18 queue.addevent(stop); 19 join(); 20 } Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 77 / 85
88 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Hlavní vlákno 2/3 1 public void run() { 2 int ev; 3 boolean clientsolution; boolean mysolution; 4 Param par = new Param(); 5 while (ev = queue.getevent()!= STOP) { 6 switch(ev) { 7 case CLIENT_GETPARAM: 8 par = generateparam(); 9 dij.solve(par.number, par.seed, par.from); 10 comm.sendparam(param); 11 watchdog.start(); 12 break; 13 case CLIENT_ALIVE: 14 watchdog.alive(); 15 break; 16 case CLIENT_SOLUTION: 17 clientsolution = true; 18 queue.addevent(compare); 19 break; 20 case COMM_TERMINATED: 21 queue.addevent(stop); 22 break; Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 78 / 85
89 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Hlavní vlákno 3/3 1 case SOLUTION_FOUND: 2 mysolution = true; 3 queue.addevent(compare); 4 break; 5 case COMPARE: 6 if (clientsolution && mysolution) { 7 if (dij.gethash() == comm.gethash()) { 8 comm.senddisconnect("solution OK"); 9 } else { 10 comm.senddisconnect("solution WRONG"); 11 } 12 queue.addevent(stop); 13 } 14 break; 15 case WATCHDOG_TIMEOUT: 16 comm.senddisconnect("alive timeout"); 17 queue.addevent(stop); 18 break; 19 default://unknown event 20 queue.addevent(stop); 21 break; 22 } 23 } } } Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 79 / 85
90 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Jak implementovat klientskou ást? Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 80 / 85
91 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Jak implementovat klientskou ást? server navázání spojení klient žádost o zadání udržování spojení výpočet výsledek výpočtu potvrzení výpočtu ukončení spojení Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 80 / 85
92 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu Propojení modul hlavní vlákno vlákno vlákno komunikační modul nová událost fronta událostí čekání na událost nová událost dijkstra modul watchdog modul vlákno volání rozhraní obsluha události volání rozhraní volání rozhraní Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 81 / 85
93 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu P íklad Spu²t ní jiného programu z procesu P íklad spu²t ní jiného programu z Javy program volání spuštění jiného programu stdin proces jiného programu stdout, stderr ukončení programu Identická architektura aplikace (Boss/Worker) Hlavní logika programu je v obsluze hlavní smy ky zpráv Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 82 / 85
94 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu P íklad Spu²t ní jiného programu z procesu P íklad spu²t ní jiného programu z Javy program volání spuštění jiného programu stdin proces jiného programu stdout, stderr ukončení programu Identická architektura aplikace (Boss/Worker) Hlavní logika programu je v obsluze hlavní smy ky zpráv Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 82 / 85
95 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu P íklad - spu²t ní jiného programu z procesu P íklad - spu²t ní programu tdijkstra z Javy 1 private boolean calldijkstra() { 2 boolean ret = false; 3 try { 4 String cmd = "./tdijkstra -h -n " + size + " -s " + seed; 5 Process child = Runtime.getRuntime().exec(cmd); 6 child.waitfor(); 7 if (child.exitvalue() == 0) { 8 BufferedReader out = new BufferedReader(new InputStreamReader(child.getInputStream())); 9 hash = Integer.parseInt(out.readLine()); 10 ret = true; 11 } else { 12 System.out.println("Error in dijsktra"); 13 } 14 } catch (Exception e) { 15 System.out.println("Error: Exception : " + e.getmessage()); 16 } 17 return ret; 18 } Co se stane p i nedostate né vyrovnávací pam ti pro stdout. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 83 / 85
96 P íklad aplikace Boss/Worker Server P íklad aplikace Boss/Worker Klient Spu²t ní jiného programu z procesu P íklad - spu²t ní jiného programu z procesu P íklad - spu²t ní programu tdijkstra z Javy 1 private boolean calldijkstra() { 2 boolean ret = false; 3 try { 4 String cmd = "./tdijkstra -h -n " + size + " -s " + seed; 5 Process child = Runtime.getRuntime().exec(cmd); 6 child.waitfor(); 7 if (child.exitvalue() == 0) { 8 BufferedReader out = new BufferedReader(new InputStreamReader(child.getInputStream())); 9 hash = Integer.parseInt(out.readLine()); 10 ret = true; 11 } else { 12 System.out.println("Error in dijsktra"); 13 } 14 } catch (Exception e) { 15 System.out.println("Error: Exception : " + e.getmessage()); 16 } 17 return ret; 18 } Co se stane p i nedostate né vyrovnávací pam ti pro stdout. Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 83 / 85
97 Diskutovaná témata Shrnutí p edná²ky Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 84 / 85
98 Diskutovaná témata Diskutovaná témata Sí ování Sí ová API Soket Sí ování v Jav P íklady Jednoduchý klient a server Boss/Worker Server P í²t : Výkon a prolování Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka 9: Sokety a sí ování 85 / 85
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)
Příklad aplikace Klient/Server s Boss/Worker modelem (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2
Sokety a síťování. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
Sokety a síťování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 9 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek, 2017 B0B36PJV Přednáška
Část 1 Síťování. Sokety a síťování. Část 2 Příklad jednoduchý klient a server. Část 3 Příklad aplikace Boss/Worker
Část 1 Síťování Sokety a síťování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 9 B0B36PJV Programování v JAVA Síťování Způsoby a modely komunikace
Sokety a síťování. Jiří Vokřínek. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
Sokety a síťování Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 9 B0B36PJV Programování v JAVA Jan Faigl, Jiří Vokřínek, 2017 B0B36PJV Přednáška
Síťování (informativní)
Síťování (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2 : Síťování (informativní) 1 / 79 Síťování
Síťování (informativní)
Síťování (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Jan Faigl, 2015 A0B36PR2 : Síťování (informativní) 1 / 79 Síťování
Síťování (informativní) Síťování (informativní) Zdroje. Co je síťování? Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
Síťování (informativní) Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze A0B36PR2 Programování 2 Síťování (informativní) Síťování v Javě Síťování Způsoby a modely
Část 1 Příklad GUI aplikace Simulátor/Plátno. GUI s plátnem Struktura aplikace Struktura simulátoru Struktura grafického rozhraní Praktické ukázky
Část 1 Příklad GUI aplikace Simulátor/Plátno Část 2 Spuštění externího programu v Javě Vícevláknové aplikace modely a příklady Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické
Vícevláknové aplikace modely a příklady
Vícevláknové aplikace modely a příklady Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 A0B36PR2 Programování 2 Jan Faigl, 2016 A0B36PR2 Přednáška 6:
Vícevláknové aplikace modely a příklady
Vícevláknové aplikace modely a příklady Jan Faigl Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Přednáška 6 A0B36PR2 Programování 2 Jan Faigl, 2016 A0B36PR2 Přednáška 6:
Počítačové sítě Transportní vrstva. Transportní vrstva
UDP TCP Rozhraní služeb Rozhraní protokolů 17 6 ICMP IGMP OSPF 01 02 89 SAP Síťová vrstva IP Rozhraní přístupu k I/O ARP Ethernet driver RARP Vrstva síťového rozhraní 1 DATA Systém A Uživatel transportní
6. Transportní vrstva
6. Transportní vrstva Studijní cíl Představíme si funkci transportní vrstvy. Podrobněji popíšeme protokoly TCP a UDP. Doba nutná k nastudování 3 hodiny Transportní vrstva Transportní vrstva odpovídá v
Přednáška 3. Opakovače,směrovače, mosty a síťové brány
Přednáška 3 Opakovače,směrovače, mosty a síťové brány Server a Client Server je obecné označení pro proces nebo systém, který poskytuje nějakou službu. Služba je obvykle realizována některým aplikačním
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
Počítačové sítě 1 Přednáška č.4 Síťová vrstva
Počítačové sítě 1 Přednáška č.4 Síťová vrstva Osnova = Síťová vrstva = Funkce síťové vrstvy = Protokoly síťové vrstvy = Protokol IPv4 = Servisní protokol ICMP ISO/OSI 7.Aplikační 6.Prezentační 5.Relační
Nastavení vestav ného p evodníku Ethernet -> sériová linka ES01
KMB systems, s. r. o. Dr. M. Horákové 559, 460 06 Liberec 7, Czech Republic tel. +420 485 130 314, fax +420 482 736 896 E-mail: kmb@kmb.cz, Web: www.kmb.cz Nastavení vestav ného p evodníku Ethernet ->
Server. Software serveru. Služby serveru
Server Server je v informatice obecné označení pro počítač či skupinu počítačů, kteří poskytují nějaké služby. Rovněž pojmem server můžeme označit počítačový program, který tyto služby realizuje. Služby
Počítačové sítě II. 12. IP: pomocné protokoly (ICMP, ARP, DHCP) Miroslav Spousta, 2006 <qiq@ucw.cz>, http://www.ucw.cz/~qiq/vsfs/
Počítačové sítě II 12. IP: pomocné protokoly (ICMP, ARP, DHCP) Miroslav Spousta, 2006 , http://www.ucw.cz/~qiq/vsfs/ 1 ICMP Internet Control Message Protocol doslova protokol řídicích hlášení
Vícevláknové aplikace
Vícevláknové aplikace Ji í Vok ínek Katedra po íta Fakulta elektrotechnická ƒeské vysoké u ení technické v Praze P edná²ka 7 B6B36PJV Programování v JAVA Jan Faigl, Ji í Vok ínek, 2016 B6B36PJV P edná²ka
7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.
7. Aplikační vrstva Studijní cíl Představíme si funkci aplikační vrstvy a jednotlivé protokoly. Doba nutná k nastudování 2 hodiny Aplikační vrstva Účelem aplikační vrstvy je poskytnout aplikačním procesům
Úvod Virtuální kanál TCP Datagramová služba UDP URL TCP, UDP, URL. Fakulta elektrotechnická
TCP, UDP, Katedra počítačů Fakulta elektrotechnická 10. května 2007 Přehled 1 2 TCP a sokety obecně TCP klient TCP server 3 UDP klient UDP server 4 Sít ová spojení nad sít ovou vrstvou (typicky protokol
Počítačové sítě II. 14. Transportní vrstva: TCP a UDP. Miroslav Spousta, 2005
Počítačové sítě II 14. Transportní vrstva: TCP a UDP Miroslav Spousta, 2005 1 Transportní vrstva přítomná v ISO/OSI i TCP/IP zodpovědná za rozšíření vlastností, které požadují vyšší vrstvy (aplikační)
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
Java a Caché IV: Manipulace s objekty
1 z 6 11.1.2007 11:13 přihlašovací jméno heslo Registrace Přihlásit články odkazy aktuality CZJUG konference o portálu přidejte se o nás Vyhledávání Text: najdi Oborový filtr J2ME J2SE J2EE Enterprise
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í
Model ISO - OSI. 5 až 7 - uživatelská část, 1 až 3 - síťová část
Zatímco první čtyři vrstvy jsou poměrně exaktně definovány, zbylé tři vrstvy nemusí být striktně použity tak, jak jsou definovány podle tohoto modelu. (Příkladem, kdy nejsou v modelu použity všechny vrstvy,
Počítačové sítě Systém pro přenos souborů protokol FTP
Počítačové sítě Systém pro přenos souborů protokol FTP Autorizovaný přístup do souborového systému hostitelského uzlu Informace o obsahu souborového systému hostitelského uzlu Obousměrný přenos kopií souborů
Se vznikem internetu se můžeme na síťovou komunikaci v Javě (komunikace mezi více JVM) dívat dvěma pohledy-způsoby:
4. blok Java síťová Studijní cíl V tomto bloku studenti získají základní dovednosti při práci s Javou v síťovém prostředí. V úvodu budou zkoumány třídy pro práci se síťovými adresami InetAddress, InetSocketAddress
Návod pro vzdálené p ipojení do sít UP pomocí VPN pro MS Windows 7
Návod pro vzdálené p ipojení do sít UP pomocí VPN pro MS Windows 7 1. Úvod nezbytné kroky ne se p ipojíte 2. Jak si vytvo it heslo 3. Nastavení VPN p ipojení pro Windows 7 1. Úvod Slu ba VPN umo uje vstoupit
Analýza aplikačních protokolů
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická PROJEKT Č. 4 Analýza aplikačních protokolů Vypracoval: V rámci předmětu: Jan HLÍDEK Komunikace v datových sítích (X32KDS) Měřeno: 28. 4. 2008
Vlastnosti podporované transportním protokolem TCP:
Transportní vrstva Transportní vrstva odpovídá v podstatě transportní vrstvě OSI, protože poskytuje mechanismus pro koncový přenos dat mezi dvěma stanicemi. Původně se proto tato vrstva označovala jako
X36PKO. 2006 Jiří Smítka
X36PKO Propojování sítí 2006 Jiří Smítka Jiří Smítka - X36PKO 1 2/2006 Propojování sítí propojujeme sítě s různými topologiemi a operačními systémy tím vytváříme internety největším internetem je Internet
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
Programování v jazyku Java Java a Internet, základní pojmy, socketové x datagramové spojení, klient - server architektura.
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Programování v jazyku Java Java a Internet, základní pojmy, socketové x datagramové spojení, klient - server architektura. BI-PJV Programování
Praktické úlohy- zaměření specializace
Praktické úlohy- zaměření specializace Realizace praktických úloh zaměřených na dovednosti v oblastech specializace POS: Síťový OS, instalace, konfigurace a optimalizace podle zamýšleného použití; Inicializace
Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták
Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták 25.4.2005 Obsah Úvod Vrstvy podle TCP/IP Požadavek / Odpověď Metody požadavku Hlavičky Kódy odpovědi Ukázka 25.4.2005 Pavel
Konceptuální modelování
Konceptuální modelování Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS
Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33
Programování v C# Síťová komunikace Petr Vaněček 1 / 33 Obsah přednášky Jednoduchá komunikace Sockety 2 / 33 System.Net Namespace poskytuje jednoduché rozhraní ke standardním protokolům Třída WebClient
Transportní vrstva. RNDr. Ing. Vladimir Smotlacha, Ph.D.
Transportní vrstva 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é sít ě BI-PSI
Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava. Cvičení 5 POČÍTAČOVÁ OBRANA A ÚTOK - POU
Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava Cvičení 5 POČÍTAČOVÁ OBRANA A ÚTOK - POU TCP/IP model Síťová (IP) vrstva - IP (Internet protokol) nejpoužívanější
MiiNePort E1 POPIS NASTAVENÍ. SofCon spol. s r.o. Křenova 11 162 00 Praha 6 tel: +420 235 090 888 E-mail: sofcon@sofcon.cz www: http://www.sofcon.
Term06e - MOXA MiiNePort E1 POPIS NASTAVENÍ Příručka uživatele a programátora SofCon spol. s r.o. Křenova 11 162 00 Praha 6 tel: +420 235 090 888 E-mail: sofcon@sofcon.cz www: http://www.sofcon.cz Verze
Inovované řešení VDT/VT
Inovované řešení VDT/VT Spojujeme trhy a příležitosti Inovované řešení pro obchodování na vnitrodenním a vyrovnávacím trhu v ČR, vyvinuté společností OTE, a.s., umožní uživatelům rychlou reakci na aktuální
Komunikace v sítích TCP/IP (2)
Č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 (2) Jiří Smítka jiri.smitka@fit.cvut.cz 25.2.2011 1/34 Opakování pojmů IP adresa
Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady
Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady 1 Pracovní stanice modem Pracovní stanice Směrovač sítě Směrovač sítě Pracovní stanice Aplikační server Směrovač sítě 2 Soubor
Stručný průvodce instalací
BR - 6104K Stručný průvodce instalací Začínáme Následuje postup pro zahájení používání routeru a připojení k Internetu. 1. Připravte si síťové prostředí podle následujícího obrázku. Síťový adaptér ADSL
4. Počítačová síť. Co je to počítačová síť
4. Počítačová síť Co je to počítačová síť Pojmem počítačová síť se rozumí zejména spojení dvou a více počítačů tak, aby mohly navzájem komunikovat a sdílet své prostředky. Přitom je jedno zda se jedná
Distribuované systémy a výpočty
Distribuované systémy a výpočty X36DSV Jan Janeček Peter Macejko CORBA Common Object Request Broker Architecture - konsorcium OMG (Object Management Group) - standard pro podporu komunikace v DS - pouze
Rozhraní Sockets Java a C (BSD)
Rozhraní Sockets Java a C (BSD) Počítačové sítě 3. cvičení Seznámení s Virtlabem Aktivní úlohy odkazy na konzoly rezervovaných zařízení Pozor na kvóty Používat záznam, zálohovat si konfiguraci před ukončením
DMX DUO Návod k obsluze
DMX DUO Návod k obsluze Ovládací prvky (Str. 4) 1. Vypínač Slouží k zapnutí a vypnutí zařízení. V dolní poloze je zařízení vypnuté, v horní poloze je zařízení zapnuté. 2. LED diody časovače FX Zobrazují
Y36PSI Protokolová rodina TCP/IP
Y36PSI Protokolová rodina TCP/IP Jan Kubr - Y36PSI 1 11/2008 Program protokol síťové vrstvy IP podpůrné protokoly ICMP RARP, BOOTP, DHCP protokoly transportní vrstvy UDP TCP Jan Kubr - Y36PSI 2 11/2008
íta ové sít TCP/IP Protocol Family de facto Request for Comments
Architektura TCP/IP v současnosti nejpoužívanější síťová architektura architektura sítě Internet Uplatnění user-end systémy (implementace všech funkčních vrstev) mezilehlé systémy (implementace spodních
Odpov di na dotazy k ve ejné zakázce. 30/2014-53-27. SSZ Registr IKP
Odpov di na dotazy k ve ejné zakázce. 30/2014-53-27 SSZ Registr IKP 1. V dokumentu 4_Priloha_1_Specifikace-predmetu-technicke-pozadavky_Rozvoj-podpora-RIKP v kapitole 2.1 Popis architektury a vazeb v APV
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.
Dálkové p enosy ze za ízení aktivní protikorozní ochrany Severomoravské plynárenské, a.s.
Dálkové p enosy ze za ízení aktivní protikorozní ochrany Severomoravské plynárenské, a.s. Tomáš D dina, Lubomír Herman Severomoravská plynárenská, a.s. Hlavní d vody realizace Podmínkou bezpe nosti a spolehlivosti
Soft Computing (SFC) 2014/2015 Demonstrace u ení sít RCE, Java aplikace
Soft Computing (SFC) 2014/2015 Demonstrace u ení sít RCE, Java aplikace Franti²ek N mec (xnemec61) xnemec61@stud.t.vutbr.cz 1 Úvod Úkolem tohoto projektu bylo vytvo it aplikaci, která bude demonstrovat
Zásobník protokolů TCP/IP
Zásobník protokolů TCP/IP Základy počítačových sítí Lekce 3 Ing. Jiří ledvina, CSc Úvod Vysvětlení základních pojmů a principů v protokolovém zásobníku TCP/IP Porovnání s modelem ISO/OSI Adresování v Internetu
TFTP Trivial File Transfer Protocol
TFTP Trivial File Transfer Protocol Jan Krňoul KIV / PSI TFTP Jednoduchý protokol pro přenos souborů 1980 IEN 133 1981 RFC 783 1992 RFC 1350 1998 RFC 1785, 2090, 2347, 2348, 2349 Noel Chiappa, Bob Baldvin,
KTE / ZPE Informační technologie
4 KTE / ZPE Informační technologie Ing. Petr Kropík, Ph.D. email: pkropik@kte.zcu.cz tel.: +420 377 63 4639, +420 377 63 4606 (odd. informatiky) Katedra teoretické elektrotechniky FEL ZČU Plzeň Největší
Co je to IPv6 Architektura adres Plug and Play Systém jmenných domén Přechod Současný stav IPv6
Co je to IPv6 Architektura adres Plug and Play Systém jmenných domén Přechod Současný stav IPv6 Problémy IPv4 Vyčerpání IPv4 adres 4 slabiky = 4,3 miliard adres Méně než je populace lidí (6,1 miliard)
Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF
IP vrstva Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF UDP TCP Transportní vrstva ICMP IGMP OSPF Síťová vrstva ARP IP RARP Ethernet driver Vrstva síťového rozhraní 1 IP vrstva Do IP vrstvy náležejí další
13. Sítě WAN. Rozlehlé sítě WAN. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme rozlehlé sítě typu WAN. Doba nutná k nastudování
13. Sítě WAN Studijní cíl Představíme rozlehlé sítě typu WAN. Doba nutná k nastudování 2 hodiny Rozlehlé sítě WAN Uvedená kapitola vychází ze zdroje [1]. Rozlehlé sítě umožňují komunikaci (přenos dat,
4. Síťová vrstva. Síťová vrstva. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme si funkci síťové vrstvy a jednotlivé protokoly.
4. Síťová vrstva Studijní cíl Představíme si funkci síťové vrstvy a jednotlivé protokoly. Doba nutná k nastudování 3 hodiny Síťová vrstva Síťová vrstva zajišťuje směrování a poskytuje jediné síťové rozhraní
4. Transportní vrstva
4. Transportní vrstva PB156: Počítačové sítě Eva Hladká Fakulta informatiky Masarykovy univerzity jaro 2010 Eva Hladká (FI MU) 4. Transportní vrstva jaro 2010 1 / 55 Struktura přednášky 1 Přehled 2 Úvod
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:
Manager AP. Uživatelská p íru ka programu. zá í 2012 preliminary verze
Ing. Z.Královský Ing. Petr Štol Perk 457 Okrajová 1356 675 22 STA 674 01 T EBÍ vývoj a výroba m ící a ídící techniky Tel.: 568 870982 Tel.: 568 848179 SW pro vizualizaci, m ení a regulaci Fax: 568 870982
Odpov di na dotazy uchaze k ve ejné zakázce. 25/
Odpov di na dotazy uchaze k ve ejné zakázce. 25/2016-53-56 Rámcová smlouva o vývoji a údržb aplika ního programového vybavení pro oblast D chodové dávky - II Jaká konkrétní dokumentace pro jednotlivé moduly
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
FULL HD fotopast s MMS - 12MP, IP54
FULL HD fotopast s MMS - 12MP, IP54 Návod k obsluze Hlavní výhody přístroje: Vysoká výdrž baterie Jednoduché ovládání MMS www.spyobchod.cz Stránka 1 1. Popis 1.1 Popis zařízení www.spyobchod.cz Stránka
Radek Krej í. rkrejci@cesnet.cz. NETCONF a YANG NETCONF. 29. listopadu 2014 Praha, IT 14.2
Radek Krej í rkrejci@cesnet.cz NETCONF a YANG NETCONF 29. listopadu 2014 Praha, IT 14.2 Jak funguje protokol NETCONF Radek Krej í NETCONF a YANG 29.11. 2014 1 / 28 Základní charakteristiky klient-server
CCNA 2/10 Další funkce TCP/IP Aleš Mareček Jaroslav Matějíček 1
CCNA 2/10 Další funkce TCP/IP Aleš Mareček Jaroslav Matějíček xmarec07@stud.fit.vutbr.cz xmatej33@stud.fit.vutbr.cz 1 Obsah: 1. TCP... 3 1.1 Hlavička TCP segmentu... 3 1.2 Přenos dat a potvrzovací proces...
Architektura TCP/IP je v současnosti
Architektura TCP/IP - úvod Architektura TCP/IP je v současnosti nejpoužívanější síťová architektura architektura sítě Internet Uplatnění TCP/IP user-end systémy (implementace všech funkčních vrstev) mezilehlé
Komunikační adaptér pro propojení řídicího systému MICROPEL s inteligentní elektroinstalací ABB Ego- n přes Ethernetové rozhraní.
CA4EGN Komunikační adaptér pro propojení řídicího systému s inteligentní elektroinstalací ABB Ego- n přes Ethernetové rozhraní. Aplikační list 5/2 Verze firmware: 3.7 Komunikační adaptér CA4EGN nabízí
Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
Transak ní zpracování I
Transak ní zpracování I Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS
1. Téma 12 - Textové soubory a výjimky
1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se
Web51 I/O Controller lite
Web51 I/O Controller lite Aplikace zdarma, umožňuje konverzi RS-232 Ethernet, vzdálené ovládání vstupů a výstupů, vyčítání dat z teploměru atd.. Firmware funguje s : Modul Charon I (Web51 ver. 6.x) Web51
Zakázka bude pln na b hem roku 2014 a v následujících 48 sících od uzav ení smlouvy.
OD VODN NÍ VE EJNÉ ZAKÁZKY Služba na zajišt ní provozu a expertní podpory datové sít Od vodn ní ve ejné zakázky pro ú ely p edb žného oznámení Od vodn ní ú elnosti ve ejné zakázky obsahuje alespo Popis
Obsah. O autorech 9. Předmluva 13. KAPITOLA 1 Počítačové sítě a Internet 23. Jim Kurose 9 Keith Ross 9
Obsah 3 Obsah O autorech 9 Jim Kurose 9 Keith Ross 9 Předmluva 13 Co je nového v tomto vydání? 13 Cílová skupina čtenářů 14 Čím je tato učebnice jedinečná? 14 Přístup shora dolů 14 Zaměření na Internet
JAK ČÍST TUTO PREZENTACI
PŘENOSOVÉ METODY V IP SÍTÍCH, S DŮRAZEM NA BEZPEČNOSTNÍ TECHNOLOGIE David Prachař, ABBAS a.s. JAK ČÍST TUTO PREZENTACI UŽIVATEL TECHNIK SPECIALISTA VÝZNAM POUŽÍVANÝCH TERMÍNŮ TERMÍN SWITCH ROUTER OSI
NIO. Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
NIO Aplikační programování v Javě (BI-APJ) - 12 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Útoky DoS a DDoS. Přehled napadení. Projektování distribuovaných systémů Ing. Jiří ledvina, CSc. Lokální útoky. Vzdálené útoky
Útoky DoS a DDoS Projektování distribuovaných systémů Ing. Jiří ledvina, CSc. Přehled napadení Lokální útoky Přetečení bufferu Prolomení hesla Vzdálené útoky Spoofing SYN Flood Smurf Attack Frangle Attack
MODELY POČÍTAČOVÝCH SÍTÍ
MODELY POČÍTAČOVÝCH SÍTÍ V počátcích budování počítačových sítí byly sítě a technické prostředky těchto sítí od jednotlivých výrobců vzájemně nekompatibilní. Vznikla tedy potřeba vytvoření jednotného síťového
Počítačové sítě. Počítačová síť. VYT Počítačové sítě
Počítačové sítě Počítačová síť Je soubor technických prostředků, které umožňují spojení mezi počítači a výměnu informací prostřednictvím tohoto spojení. Postupný rozvoj během druhé poloviny 20. století.
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
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
C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++
C++ Akademie SH 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory Za áte níci C++ 20. b ezna 2011 Obsah 1 Prom nné - primitivní typy Celá ísla ƒísla s pohyblivou desetinnou árkou, typ bool 2 Podmínka
Úvod do síťových technologií
Úvod do síťových technologií, 30. Říjen 2014 Osnova - Co vás čeká Fyzická vrstva - Média Síťové vrstvy a zapouzdření MAC Adresa IP Adresa, sítě a masky Příklady komunikace Přehled síťových prvků (HW) Diskuze
I/O modul univerzální rozhraní
9 780 DESIGO I/O-OPEN I/O modul univerzální rozhraní Pro integraci cizích zařízení do systému řízení budov DESIGO V2.2. PTM1.RS232 PTM1.RS485 Pro implementaci zákaznických řešení integrací. Aplikace může
Úvod, terminologie. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 1
Úvod, terminologie Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS ZS 2010/11,
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.......................
WinCC/Event Notifier. WinCC V7.0 SP3 Option WinCC/Event Notifier. Informa ní stupn. Výrobní editel. Vedoucí závodu.
WinCC V7.0 SP3 Option WinCC/Event Notifier Informa ní stupn Výrobní editel Vedoucí závodu Obsluha na míst Siemens AG 2012. All Rights Reserved. Základní princip WinCC (SCADA) Internet Kvitace Pokud není
Skalární sou in. Úvod. Denice skalárního sou inu
Skalární sou in Jedním ze zp sob, jak m ºeme dva vektory kombinovat, je skalární sou in. Výsledkem skalárního sou inu dvou vektor, jak jiº název napovídá, je skalár. V tomto letáku se nau íte, jak vypo
Základy počítačových sítí Model počítačové sítě, protokoly
Základy počítačových sítí Model počítačové sítě, protokoly Základy počítačových sítí Lekce Ing. Jiří ledvina, CSc Úvod - protokoly pravidla podle kterých síťové komponenty vzájemně komunikují představují
QoS na L2/L3/L4. Brno, 28.05.2015 Ing. Martin Ťupa
QoS na L2/L3/L4 Brno, 28.05.2015 Ing. Martin Ťupa Měření kvality služeb Kolik protlačíte přes aktivní prvky? Kde jsou limitní hodnoty ETH spoje? Central Office Data Hlas Video House Multiservice switch
Integrování jako opak derivování
Integrování jako opak derivování V tomto dokumentu budete seznámeni s derivováním b ºných funkcí a budete mít moºnost vyzkou²et mnoho zp sob derivace. Jedním z nich je proces derivování v opa ném po adí.
Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.
Aplikační vrstva http-protokol, díky kterému je možné zobrazovat webové stránky. -Protokol dokáže přenášet jakékoliv soubory (stránky, obrázky, ) a používá se také k různým dalším službám na internetu
LPS2. Sada pro synchronní komunikaci na 1000m s galvanickým oddělením. 15. října 2010 w w w. p a p o u c h. c o m
Sada pro synchronní komunikaci na 1000m s galvanickým oddělením 15. října 2010 w w w. p a p o u c h. c o m LPS2 Katalogový list Vytvořen: 30.8.2005 Poslední aktualizace: 15.10.2010 8:00 Počet stran: 8
CAL (CAN Application Layer) a CANopen
CAL (CAN Application Layer) a CANopen J. Novák České vysoké učení technické v Praze Fakulta elektrotechnická Katedra měření Průmyslový distribuovaný systém na bázi sběrnice CAN Pressure sensor Stepper
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)
IPCorder KNR-100 Instala ní p íru ka
IPCorder KNR-100 Instala ní p íru ka 12. srpna 2007 2 Obsah 1 Instalace 5 1.1 Obsah balení....................................... 5 1.2 Instalace pevného disku................................. 5 1.3 Zapojení