UNIX 7. Meziprocesová komunikace a sítě © Milan Keršlágerhttp://www.pslib.cz/ke/slajdy Obsah: ● meziprocesová.

Slides:



Advertisements
Podobné prezentace
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Advertisements

Inf Používání a tvorba databází. Výukový materiál Číslo projektu: CZ.1.07/1.5.00/ Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT.
ELEKTRONICKÉ ZABEZPEČOVACÍ SYSTÉMY. Název projektu: Nové ICT rozvíjí matematické a odborné kompetence Číslo projektu: CZ.1.07/1.5.00/ Název školy:
Warez scéna, crack. Warez, co to je? Warez je termín počítačového slangu označující autorská díla, se kterými je nakládáno nelegálně, zejména v rozporu.
UNIX 13. Síťová komunikace © Milan Keršlágerhttp:// Obsah: ● TCP/IP, RFC, BSD socket.
Počítačové sítě 8. Využití sítí © Milan Keršlágerhttp:// Obsah: ● sdílení v sítích.
Číslo projektu: CZ.1.07/1.4.00/ Název DUM: Prostředí internetu Číslo DUM: III/2/VT/2/2/27 Vzdělávací předmět: Výpočetní technika Tematická oblast:
MATURITNÍ OTÁZKA Č.6 ORIENTACE V PRINCIPECH, MOŽNOSTECH A PRAKTICKÉM VYUŽITÍ POČÍTAČOVÝCH SÍTÍ.
Globální adresace na Internetu Vazební síťové prostředky (uzly) Směrování Adresný plán.
POS 40 – 83. Základy datové komunikace - MULTIPLEX Kmitočtovým dělením (FDMA) – Přidělení kmitočtu jednotlivým uživatelům = šířka pásma se rozdělí na.
Počítačové sítě 14. IPv4 © Milan Keršlágerhttp:// Obsah: ● IP protokol, IP adresa,
I DENTIFIKACE NA INTERNETU Mgr. Marie Kardová Leden 2014.
IP adresace (IPv4) Velikost a určení IP adresy I. Epocha (dělení na třídy) II. Epocha (zavedení masky) Speciální adresy Příklady a řešení IP adres Souhrn.
Technologie počítačů 4. Sběrnice © Milan Keršlágerhttp:// Obsah: ● ISA, EISA, VL-BUS,
Autor:Ing. Pavel Brož Předmět/vzdělávací oblast:Informační a komunikační technologie Tematická oblast:Práce se standardním aplikačním programovým vybavením.
Základní škola a mateřská škola Lázně Kynžvart Autor: Mgr. Petra Šandová Název: VY_32_INOVACE_5B_INF3_16_ Téma: pro 4.,5.ročník ZŠ, vytvořeno:
Principy Základních registrů Ing. Ondřej Felix, CSc.
Mobilní sítě Jakovljevič, Sklenář. obsah Protokol ICMP Ping Traceroute DNS 1G, 2G, 3G, 4G, LTE Virtuální mobilní operátor.
Síťové operační systémy OB21-OP-EL-KON-DOL-M Orbis pictus 21. století.
UNIX 12. Komunikace mezi procesy © Milan Keršláger
UNIX 12. Komunikace mezi procesy © Milan Keršlágerhttp:// Obsah: ● meziprocesová.
INTERNET. Internet je celosvětový systém navzájem propojených počítačových sítí, ve kterých mezi sebou počítače komunikují pomocí rodiny protokolů TCP/IP.
OPERAČNÍ SYSTÉMY Část 5 – souborové systémy
Topologie lokálních sítí
Unix a Internet 6. DHCP a DNS
Databáze © Mgr. Petr Loskot
PŘIHLÁŠENÍ K ELEKTRONICKÉ EVIDENCI TRŽEB
Počítačová bezpečnost Cvičení 2: Procesy a oprávnění
Síťové Protokoly.
Počítačové sítě 16. IPv6 Obsah: původ IPv6, IPv6 adresa a její zápis
Počítačové sítě 7. Topologie sítí
Internet.
Ucelené řešení pro řízení lidských zdrojů, ekonomiky a logistiky
UNIX 12. Komunikace mezi procesy
Transportní vrstva v TCP/IP
Operační systémy 9. Spolupráce mezi procesy
Operační systémy Hardwarové prostředky využívané počítačem
Principy počítačové sítě
Seminář - routing Směrování Pojmy IP adresa
Operační systémy Soubory a adresáře
Druhy sítí podle rozlehlosti
OPERAČNÍ SYSTÉMY Část 1 – úloha OS Zpracovala: Mgr. Marcela Cvrkalová
Inf Operační systémy a jejich funkce
Správa paměti - úvod Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Komunikační model TCP/IP
INTERNET Číslo projektu CZ.1.07/1.5.00/ Název školy
Prvky v síti Střední škola hotelová a služeb Kroměříž Název školy
Financováno z ESF a státního rozpočtu ČR.
Seminář – ARP, ICMP Obsah cvičení
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně
Inf Ovládání operačního systému
Financováno z ESF a státního rozpočtu ČR.
Souběh Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Stránkování Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
1. ročník oboru Mechanik opravář motorových vozidel
UNIX 13. Síťová komunikace
Informatika pro ekonomy přednáška 8
NÁZEV ŠKOLY: Základní škola Josefa Bublíka, Bánov
Instalace OS Linux Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Portál naměřených dat 13. – , Říčany u Prahy Josef Mádlo.
Programovatelné automaty (Programmable logic controllers – PLC)
Portál PUBLIKACE jako nástroj evidence výsledků vědeckovýzkumných aktivit Situace ke konci roku 2016 Cíl na rok 2017 – z nástroje dílčích sběrů vytvořit.
Materiál byl vytvořen v rámci projektu
Remote login.
Ing. Jiří Šilhán IPV4.
Přednášky z Distribuovaných systémů
Směrování II.
Informační systém základních registrů
Lukáš Melcher, Denis Dusík 4.C
Digitální učební materiál
Transkript prezentace:

UNIX 7. Meziprocesová komunikace a sítě © Milan Keršlágerhttp:// Obsah: ● meziprocesová komunikace, soubor, sdílená paměť ● mapování souborů do paměti, signály, zasílání zpráv ● roura, pojmenovaná roura, IPC soket ● zamykání souborů, souborové zámky ● TCP/IP, RFC, BSD socket API, síťové rozhraní ● směrovací tabulka, DNS, resolver, diagnostika sítě ● superserver xinetd, firewall

Účely komunikace ● Inter-Process Communication (IPC) ● multiprogramování – úloha je rozdělena na více samostatných úloh, aby mohly být zpracovávány odděleně – je nutné zajistit synchronizaci, signalizaci a výměnu dat ● clustery – výpočty probíhají na oddělených počítačích – je nutné zajistit synchronizaci, signalizaci a výměnu dat při využití počítačové sítě

Meziprocesová komunikace ● soubor ● sdílená paměť ● mapování souborů do paměti ● signály ● zasílání zpráv ● roura ● pojmenovaná roura ● IPC socket ● zamykání souborů

Soubor ● nejjednodušší výměna dat mezi procesy ● dočasné soubory ● v unixových systémech v adresáři /tmp, /var/tmp – všichni mají právo zápisu → mohou si vzájemně škodit ● používá se sticky bit → nelze si vzájemně mazat i přes „w“ ● i tak vyžaduje vytváření dočasných souborů speciální zacházení ● zejména u privilegovaných procesů je riziko poměrně velké ● též problém souběhu → náhodné názvy, zamykání ● komunikace je však poměrně těžkopádná ● velká režie (zápis na HDD) ● mají však všechny systémy → přenositelnost

Sdílená paměť ● procesy jsou normálně odděleny ● kromě threadů, které mají sdílenou paměť záměrně ● sdílená paměť je shodná s částí jiného procesu ● při zápisu problém souběhu – řeší se zamykáním, synchronizačními primitivy ● funkce pro ovládání definuje POSIX – definuje vytvoření, připojení, získání ukazatele – pak zápisy i čtení, odpojení, zrušení sdílené paměti – zaručuje přenositelnost

Mapování souborů do paměti ● původně metoda nahrazující klasické operace ● otevření, čtení, zápis, posun ukazatele, zavření – nevýhodou je neustále kopírování dat mezi cache, bufferem a paměťovým prostorem procesu ● využívá mechanismu „výpadku stránky“ – odkládání nepoužívaných částí paměti na disk – využíváno u stránkování paměti ● lze využít i pro meziprocesovou komunikaci ● namapovaný soubor může být sdílen více procesy ● samozřejmě je nutné řešit souběh atp.

Signály ● jednoduchá meziprocesová komunikace ● implementováno v jádře OS ● asynchronní signalizace mezi procesy – v unixových OS může odesílat signál i jádro OS ● lze poslat jen vlastním procesům – správce (root) může poslat signál všem procesům ● proces zpracovává signál vyvoláním procedury – implicitní akce, ignorování signálu, vlastní obsluha signálu – ne všel lze předefinovat (KILL bohužel, resp. naštěstí nejde) – při zpracování volat jen bezpečné funkce (! reentrantnost) ● odesláním signálu systémovým voláním kill()

Syscall: kill() ● název podle signálu KILL ● signály odlišeny názvy, ty mapovány na čísla – HUP – „zavěšení“ + ukončení, dnes rekonfigurace – INT – přerušení (z terminálu CTRL+c) – QUIT – ukončení + core dump – KILL – nepodmíněné ukončení procesu („vražda“) ● nelze ve stavu D (proces je v jádře, čeká na dokončení I/O) – SEGV – porušení ochrany paměti – PIPE – signalizace rozpadu roury (ukončení skupiny) – TERM – slušná žádost o ukončení procesu – STOP – pozastavení procesu – CONT – obnovení běhu procesu

Příkaz kill ● zasílání signálů z příkazového řádku ● kill -l → vypíše seznam signálů + jejich čísla ● kill – zaslání signálu TERM (žádost o ukončení) – je číslo procesu – signál lze posílat jen svým procesům, root může všem ● kill -1 nebo kill -HUP – dnes někdy znovunačtení konfigurace (rekonfigurace) ● kill -9 nebo kill -KILL – bezpodmínečné ukončení procesu

Zasílání zpráv ● univerzálnější, než signály ● mezi procesy lze přenášet i data ● implementace v jádře nebo jako sdílená paměť ● řešení mezních situací ● synchronní a asynchronní ● jednosměrné, obousměrné ● spolehlivý přenos nebo bez záruk – nutnost implementovat fronty, potvrzování zpráv ● řešení duplikace, ztráty, příjemce skončil atd.

Kolona (roura) ● propojení příbuzných procesů ● propojení přes deskriptory – jednosměrné spojení (jeden zapisuje, druhý čte) ● vytváří se skupina procesů – jádro posílá při přerušení roury signál SIGPIPE – skupina reaguje ukončením („broken pipe“) ● v paměti kruhový vyrovnávací paměť – buffer ● typicky se využívá v příkazovém řádku grep ro /etc/passwd | sort

Pojmenovaná roura ● umožňuje spojení nepříbuzných procesů ● definuje POSIX ● styčné místo je speciální soubor typu roura – název lze nějak předat nepříbuzným procesům – vytvořená pojmenovaná roura „přežije“ ukončení procesů ● data vyměňována v paměti (buffer) ● pouze jednosměrná komunikace (FIFO) – jeden proces zapisuje, další čte

IPC socket ● též tzv. Unix Domain Socket, definuje POSIX ● speciální soubor, ale implementováno v RAM ● obdoba síťové komunikace – od roury přidává obousměrnou komunikaci – navíc možnost více klientů ● například PostgreSQL server + klient – /tmp/.s.PGSQL.5432 – klient otevře a připojí se

Zamykání souborů ● pro zabránění souběhu ● v unixových systémech jen informativní (advisory) – i když je na soubor aplikován zámek, jádro ho nevynutí – všechny programy musí zámky respektovat – funkce fcntl() a flock() → též na části souboru ● sdílené zámky – též nazývány jako zámky pro čtení ● exkluzivní zámky – též nazývány jako zámky pro zápis ● souborové zámky

Souborové zámky ● soubor signalizující zamčeno ● např. /etc/shadow.lock – znamená: někdo si mění heslo, tak počkáme – někdy název včetně PID procesu, který ho vytvořil ● opět jde o záležitost respektu, jádro nevynucuje ● používá se ve shellu a na FS bez podpory zámků – např. starší verze NFS bez lock démona ● vytvoření musí být atomická operace – v shellu „noclobber“ nebo vytvoření adresáře – v zásadě poměrně komplikovaná logika – problém „opuštěných zámků“ (anglicky: stale lock file)

Historie počítačových sítí ● první pokusy dálkového spojení již 1940 ● ovládání kalkulátoru dálnopisem v USA (Stibitz) ● 60. léta → různé pokusy ● systémy podporující multitasking – 1964 time-sharing systémy ● USA: Dartmouth – pro 300 studentů, Berkeley (Thompson) – 1967 IBM: OS/360 s MFT ● řízení telefonní ústředny počítačem ● 1969 ARPANET – 50kbps – 1975 – počátek vývoje TCP/IP – 1983: ARPANET adoptoval TCP/IP (IPv4)

TCP/IP ● celá rodina protokolů ● základem je IPv4, dnes nástup IPv6 – přenos pomocí datagramů („salámová metoda“) – používání IP adres (např ) ● systém vrstev – vrstvy nezávislé, zaměnitelné, snadnější implementace – definována vzájemná komunikace vrstev (API) ● za přenos neodpovídá síť, ale koncové počítače – zjednodušení propojovacích prvků sítě – využívá se přepojování (přeposílání) datagramů

RFC ● Request Foc Comments ● neformální standardy pro Internet – též žertovná aprílová vydání ● vydává je RFC editor podle pokynů IAB – označována vzestupnou řadou čísel (první 1969) ● již vydané se neruší, jen nahradí novějším RFC ● dostupné na ● nejprve je vydán draft (návrh) – formulují experti na daný problém – osvědčí-li se, dostane přiděleno číslo a je vydáno

Implementace ● 1983: BSD socket API ● de fakto standard pro síťovou komunikaci – socket() → vytvoření socketu – bind() → připojení na lokální port (server) – listen() → zahájení naslouchání (server) – connect() → vytvoření nového spojení (klient) – accept() → přijmutí příchozího spojení (server) – send(), recv(), write(), read(), recvfrom(), sendto() – close() → uzavření spojení – gethostbyname(), gethostbyaddr() → převod IP – DNS – pool() → kontrola stavu socketu – select() → zjištění stavu více socketů (deskriptorů)

TCP/IP stack ● implementace umístěna v jádře OS ● společný kód pro všechny aplikace – snadněji se odstraňují chyby – je možné centrálně opravit chybu, doplnit novou vlastnost – např. DOS neměl, takže každá aplikace vlastní implem. ● velký rozsah řešených situací – ne všechny stavy definovány (pomocí RFC) – odchylky chování na nezvyklé situace → rozpoznání OS ● nástroj nmap ● umí odesílat a přijímat IP datagramy – též zajišťuje vyšší vrstvy pro ICMP, UDP, TCP

Součásti TCP/IP ● ICMP ● signalizace a řízení sítě – povinná součást implementace TCP/IP ● UDP ● systém „otázka → odpověď“, bez záruk ● např. DNS, ale i VoIP (Skype & spol.) ● TCP ● zajišťuje nad „nespolehlivou“ sítí zaručený přenos – tj. zachování pořadí, vyřešení ztrát a duplicit ● přenos ů, WWW,...

Síťové rozhraní ● slouží k realizaci komunikačního rozhraní ● určena IP adresa, maska sítě, MTU ● může být fyzické (síťová karta) nebo virtuální – označeno názvem (eth0, eth1, wlan0,...) – obsluhováno jádrem (resp. TCP/IP stackem) ● konfigurace příkazem ifconfig ifconfig – výpis všech aktivovaných rozhraní ifconfig eth0 up (nebo down ) ifconfig eth netmask

Příklad výpisu ~]$ LANG=C ifconfig lo Link encap:Local Loopback inet addr: Mask: UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets: errors:0 dropped:0 overruns:0 frame:0 TX packets: errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes: (13.1 MiB) TX bytes: (13.1 MiB) wlan0 Link encap:Ethernet HWaddr 00:1F:3B:58:43:EF inet addr: Bcast: Mask: UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets: errors:0 dropped:0 overruns:0 frame:0 TX packets: errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes: (24.8 MiB) TX bytes: (3.3 MiB)

Směrovací tabulka ● routing table ● definuje způsob odeslání IP datagramů – význam zejména u routerů (směrovačů) – koncová stanice jen k rozlišení ● přímý soused (ve stejné podsíti) ● odeslání přes bránu, resp. router („do Internetu“) ● součást TCP/IP stacku route -n route add č.sítě netmask maska gw IPbrány route add default gw Ipbrány route del č.sítě netmask maska

Příklad výpisu ~]$ LANG=C route -n Kernel IP routing table Destination Gateway Genmask Flag Metr Ref Use Iface U wlan UG wlan0

DNS ● Domain Name System ● hierarchický systém doménových jmen ● převod doménové jméno → IP adresa (a zpět) ● na počítači knihovna → resolver – viz dříve zméněné BSD socket API ● realizace DNS servery – pro dotaz používáme co nejbližší → nižší latence – využívá se cachování dotazů ● stanice musí znát IP adresu DNS serveru – typicky 2 různé (jako záložní)

Resolver ● knihovna pro podporu DNS ● převod doménové jméno → IP adresa (a zpět) – tj. odeslání a příjem patřičného UDP datagramu – viz zmíněné funkce gethostbyname()... ● nastavení uloženo v souboru /etc/resolv.conf ● nameserver ● nameserver ● domain mojedomena.cz ● search mojedomena.cz

Nastavení v počítači 1) manuální ● všechny údaje do konfiguračních souborů ● nastavení aktivováno při startu (skriptem) ● používá se typicky na serverech 2) automatické ● rozhraní obsluhuje DHCP klient – získá konfigurační informace z DHCP serveru – typicky pro uživatelské stanice – výhoda: nemusí se nikam nic zapisovat

Postup testování sítě 1) lokální IP adresa (v rámci svého počítače) – test loopbacku ( ping –n ) – test vlastních aktivních síťových rozhraní 2) ve stejné podsíti – schopnost komunikace s přímými sousedy – brána do Internetu je též ve stejné podsíti 3) mimo podsíť – kontakt s routerem a počítači za ním (Internet) – např.: ping –n ) test DNS ping seznam.cz

Příklady testů ping -n ping -n ping -n ping -n ping -n ping seznam.cz seznam.cz telnet telnet seznam.cz 80 GET / HTTP/1.0 {Enter}

Poskytování služeb ● každá služba typicky vlastního démona ● WWW → httpd ● FTP → vsftpd ● DNS → named ● DHCP → dhcpd ● Samba → smbd, nmbd ● atd. ● spouštěno pomocí skriptů ● /etc/init.d/httpd a skript chkconfig

Superserver xinetd ● nahrazuje trvale běžící síťové démony ● někdy nevýhodné mít neustále spuštěného démona – jde o úsporu systémových prostředků ● xinetd obsadí příslušný síťový TCP port ● při příchodu požadavku spustí obslužný program – musí být přizpůsoben funkci přes xinetd – po obsloužení požadavku skončí – není výhodné pro často využívané služby (WWW) ● konfigurace v adresáři /etc/xinetd.d/ chkconfig –-list atd.

Firewall ● firewall filtruje datagramy ● na vstupu, výstupu, procházející (router) – akce: přijme, odmítne, zahodí ● firewall umístěn mezi aplikací a síťovým rozhraním – v jádře (součást TCP/IP stacku) nebo formou aplikace 1) nestavový ● posuzuje jednotlivé datagramy 2) stavový ● posuzuje akci na základě předchozích – součást TCP spojení, limit za jednotku času atd.

Firewall v Linuxu ● iptables ● implementováno jako součást TCP/IP stacku – dostatečně kvalitní, rozšiřitelný ● nastavování stejnojmenným příkazem – nastavení z příkazového řádku – též nastavování přes GUI rozhraní ● je to nestavový i stavový firewall – je možno zapojit i externí aplikaci ● připravuje se náhrada – sjednocení podpory IPv4, IPv6, bridge