TÉMATICKÝ OKRUH Počítače, sítě a operační systémy
Číslo otázky : Otázka :
10. Služby Internetu a jejich protokoly: elektronická pošta, WWW, Telnet, Systém DNS
Obsah : 1. Elektronická pošta 1.1 SMTP 1.2 POP3 1.3 IMAP 2. WWW 2.1 URL (Uniform Resource Locator) 2.2 HTTP (Hypertext Transfer Protocol) 3. Telnet 4. Systém DNS Příloha A: Příklad komunikace SMTP protokolem Příloha B: Příklad komunikace pop3 protokolem Příloha C: Příklad http komunikace Příloha D: Příklad zónového souboru
1. Elektronická pošta Elektronická pošta, zkráceně e-mail, je způsob odesílání, doručování a přijímání zpráv přes elektronické komunikační systémy. Termín e-mail se používá jak pro internetový systém elektronické pošty založený na protokolu SMTP (Simple Mail Transfer Protocol), tak i pro intranetové systémy, které dovolují posílat si vzájemně zprávy uživatelům uvnitř jedné společnosti nebo organizace (tyto systémy často používají nestandardní protokoly, mívají ovšem bránu, která jim dovoluje posílat a přijímat e-maily z internetu). K širokému rozšíření e-mailu přispěl zejména internet.
1.1 SMTP (Simple Mail Transport Protocol) Protokol určený pro přenos zpráv elektronické pošty (e-mailů) mezi přepravci elektronické pošty (MTA - Mail Transfer Agent ). Protokol zajišťuje doručení pošty pomocí přímého spojení mezi odesílatelem a adresátem; zpráva je doručena do tzv. poštovní schránky adresáta, ke které potom může uživatel kdykoli (off-line) přistupovat (vybírat zprávy) pomocí protokolů POP3 nebo IMAP. Jedná se o jednu z nejstarších aplikací, původní norma RFC 821 byla vydána v roce 1982 (v roce 2001 ji nahradila novější RFC 2821). SMTP funguje nad protokolem TCP, používá port TCP/25.
1.2 POP3 (Post Office Protocol 3) Protokol, který se používá pro stahování emailových zpráv ze vzdáleného serveru na klienta. Jedná se o aplikační protokol pracující přes TCP/IP připojení. POP3 protokol byl standardizován v roce 1996 v RFC 1939. POP3 je následníkem protokolů POP1 a POP2 (označení POP už dnes téměř výhradně znamená POP3). V současné době používají téměř všichni uživatelé elektronické pošty pro stahování emailů programy využívající POP3. POP3 je výhodný pro uživatele, kteří mají časově omezené připojení k Internetu (jako je např. telefonní připojení). Zprávy si ze svého poštovního serveru pouze stáhnou, odpojí se a můžou si číst doručené emaily libovolně dlouho a být při tom offline (odpojen od Internetu). Menší nevýhodou (ale pro někoho to může být i výhodné) je fakt, že po přenesení zpráv ze serveru do klienta (tzn. počítače, do kterého budete stahovat zprávy) se na serveru tyto zprávy smažou. Jistá výhoda může být v tom, že pokud dostáváte mnoho pošty nebo velké emaily a nemáte na serveru velký prostor pro zprávy, tak budete mít všechny zprávy pouze doma na počítači a na poštovním serveru bude vždy místo pro další. Nicméně většina poštovních klientů umožňuje zanechání zprávy na serveru.
1.3 IMAP (Internet Message Access Protocol) Protokol pro vzdálený přístup k e-mailové schránce. Na rozdíl od protokolu POP3 vyžaduje IMAP trvalé připojení (tzv. on-line), avšak nabízí pokročilé možnosti vzdálené správy (práce se složkami, přesouvání zpráv, prohledávání na straně serveru a podobně). V současné době se používá protokol IMAP4 (IMAP version 4 revision 1 - IMAP4rev1), který je definován v RFC 3501. Výhody oproti pop3: –protokol POP3 dovoluje připojení pouze jednoho uživatele ke schránce. IMAP dovoluje současné připojení více uživatelů k jedné schránce, a umožňuje vidět změny provedené ostatními klienty. –Téměř všechny e-maily jsou přenášeny ve formátu MIME, což dovoluje zprávám mít stromovou strukturu, kde listové uzly jsou všechny varianty jednotlivých částí obsahu a nelistové uzly jsou varianty více částí. IMAP4 Protokol dovoluje klientům odděleně přijímat jednotlivé MIME části zprávy. –Díky použití příznaků definovaných v protokolu IMAP4 si mohou klienti udržovat přehled o stavu
zprávy, např. jestli zpráva byla přečtena, bylo na ni odpovězeno, nebo byla smazána. Nevýhody: –Oproti protokolu POP3 je IMAP4 velmi komplikovaný protokol. Jeho implementace je značně složitější a tedy i náchylnější k chybám než implementace POP3. Navzdory tomu IMAP používá mnoho e-mailových serverů a klientů jako jejich standardní přístupovou metodu. –Dokud nejsou ukládací a vyhledávací algoritmy na serveru bezpečně implementovány, prohledávání velké schránky může značně zatěžovat server. IMAP4 klienti mohou způsobit zpoždění při vytváření nových zpráv, u pomalých připojení (např. u mobilních zařízení)
2. WWW (World Wide Web) WWW - označení pro aplikace internetového protokolu HTTP. Je tím myšlena soustava propojených hypertextových dokumentů. Dokumenty umístěné na počítačových serverech jsou adresovány pomocí URL, jehož součástí je i doména a jméno počítače. Název naprosté většiny těchto serverů začíná zkratkou www, i když je možné používat libovolné jméno vyhovující pravidlům URL. Autorem Webu je Tim Berners-Lee, který jej vytvořil při svém působení v CERNu. Navrhl jazyk HTML a protokol HTTP, napsal první webový prohlížeč WorldWideWeb a koncem roku 1990 spustil první webový server na světě info.cern.ch. V říjnu roku 1994 založil World Wide Web Consortium (W3C), které dohlíží na další vývoj Webu.
2.1 URL (Uniform Resource Locator) Je řetězec znaků s definovanou strukturou, který slouží k přesné specifikaci umístění zdrojů informací (ve smyslu dokument nebo služba) na Internetu. Jednotlivá pole v URL: schéma, doménové jméno, port, specifikace souboru, parametry Úplná URL:<schéma>://
:@:<port>/?<parametry> Některá pole jsou nepovinná – buď nemají význam, nebo se předpokládá předdefinovaná hodnota, závislá např. na schématu (např. pro protokol HTTP je implicitní port 80), nebo na aplikaci (pro webový prohlížeč se předpokládá protokol HTTP).
2.2 HTTP (Hypertext Transfer Protocol) Internetový komunikační protokol, na kterém je postavena výměna libovolných dat mezi klientem a serverem pomocí páru požadavek (request) – odpověď (response). Požadavek i odpověď jsou složeny z textových hlaviček, prázdného řádku a binárních dat. Typ dat je určen pomocí MIME (Multipurpose Internet Mail Extension) typů v hlavičce Content-Type. Metody protokolu: OPTIONS - představuje dotaz na možnosti komunikace spojené s uvedeným URL. Metoda umožňuje klientovi určit možnosti a omezení spojené se zdrojem nebo schopnostmi serveru. Pokud je URL v dotazu ve tvaru "*", pak se jedná o dotaz na možnosti serveru jako celku. GET - představuje požadavek na poslání dokumentu určeného pomocí URL. V souvislosti s proxy se může metoda GET změnit na "podmíněný GET", která požaduje poslat dokument pouze za určitých podmínek definovaných v hlavičce dotazu. HEAD - je identická s metodou GET, server však nemusí posílat tělo odpovědi. Metodu je možné použít k získání doplňkových informací o dokumentu, často se používá k testování hypertextových linek, jejich dostupnosti a poslední modifikace. Klient může získané hlavičky analyzovat a případně požádat o data novým dotazem GET (např. test zda dokument není příliš dlouhý). POST – používá se v případě, kdy má cílový server přijmout data z požadavku. Skutečná funkce metody závisí na URL s ní spojené. Výsledkem POST metody může být poslání mailu,
předání dat do procesu, který data zpracuje, rozšíření databáze. Posílaná data nejsou nijak omezená a je možné v hlavičkách tělo zprávy popsat. PUT - představuje požadavek na uložení posílaných dat pod specifikované URL na server. Takto uložená data budou dostupná např. následnými dotazy GET. Metoda PUT předpokládá, že uložení dat do souboru na server provádí přímo server nikoli externí aplikace (CGI program). DELETE - požadavek na zrušení dokumentu na serveru. Rušený dokument je specifikován v URL. TRACE - metoda použitá k testování originálního serveru. Originální server má vrátit klientovi kladnou odpověď bez dat. Návratové kódy jsou rozděleny do 5 skupin: –1xx - informační - požadavek byl obdržen. –2xx - úspěch - dotaz byl serverem pochopen a akceptován. –3xx - přesměrování - klient musí provést další akce, aby získal požadovaný dokument. –4xx - klientova chyba - klient položil chybný dotaz nebo nemá oprávnění získat dokument požadovaný v dotazu. –5xx - chyba serveru - server není z nějakého důvodu schopen obsloužit požadavek.
3. Telnet (Telecommunication Network ) Je protokol na aplikační vrstvě používaný v počítačových sítích a na Internetu pro spojení klient-server pomocí protokolu TCP. Uživateli umožňuje ovládat vzdálené zařízení pomocí terminálu s příkazovým řádkem, ale může zajišťovat i komunikaci mezi programy. Server standardně naslouchá na portu číslo 23. Protokol přenáší osmibitové znaky oběma směry (duplexní spojení) a je velmi jednoduchý. Jeho hlavní nevýhodou je absence šifrování přenášených dat, a proto je v současnosti využíván jen minimálně. Jeho částečným nástupcem je protokol SSH. V dokumentu RFC 854 jsou definovány tři základní služby: •Síťový virtuální terminál (NVT – Network Virtual Terminal), který poskytuje standardní rozhraní. •Vyjednávání klienta/serveru o nastavení určitých voleb •Symetrické zobrazení terminálu a procesů. Síťový virtuální terminál zajišťuje průhlednost všech operací vůči uživateli. Nejsou zde rozdíly mezi jednotlivými komunikujícími zařízeními. Virtuální terminál poskytuje obecnou sadu příkazů pro všechny typy zařízení. Pro přenos využívá spolehlivé přenosové služby TCP,ale jen poloduplexním způsobem. Definovaný formát NVT používá sedmibitový kód ASCII pro znaky a zobrazení. Díky tomu může Telnet operovat na různých operačních systémech. Klávesnice NVT generuje všech 128 kódů ASCII pomocí kláves, klávesových kombinací. Přesto,že obě komunikující strany předpokládají,že je protější strana vybavena NVT, proběhne nejdříve výměna údajů, ve které se obě strany dohodnou na určitých parametrech a volbách komunikace. Pokud jedna strana neumí použít danou volbu, požadavek zamítne. Strany však musí dodržet minimální standard NVT. Existují čtyři možné požadavky: • WILL - odesílatel chce danou volbu zapnout • DO - odesílatel chce, aby příjemce danou volbu zapnul • WONT - odesílatel chce danou volbu vypnout • DONT - odesílatel chce, aby příjemce danou volbu vypnul
4. Systém DNS (Domain Name System) Hierarchický systém doménových jmen, který je realizován servery DNS a protokolem
stejného jména, kterým si vyměňují informace. Jeho hlavním úkolem a příčinou vzniku jsou vzájemné převody doménových jmen a IP adres uzlů sítě. Později ale přibral další funkce (např. pro elektronickou poštu či IP telefonii) a slouží dnes de facto jako distribuovaná databáze síťových informací. Protokol používá porty TCP/53 i UDP/53, je definován v RFC1035. Servery DNS jsou organizovány hierarchicky, stejně jako jsou hierarchicky tvořeny názvy domén. Jména domén umožňují lepší orientaci lidem, adresy pro stroje jsou však vyjádřeny pomocí adres 32bitových (IPv4) A záznam nebo 128bitových (IPv6) - AAAA záznam. Systém DNS umožňuje efektivně udržovat decentralizované databáze doménových jmen a jejich překlad na IP adresy. Stejně tak zajišťuje zpětný překlad IP adresy na doménové jméno - PTR záznam. Typy záznamů: • A (address record) obsahuje IPv4 adresu přiřazenou danému jménu, například když jménu cosi.kdesi.cz náleží IP adresa 1.2.3.4, bude zónový soubor pro doménu kdesi.cz obsahovat záznam • AAAA (IPv6 address record) obsahuje IPv6 adresu. Zmíněnému stroji bychom IPv6 adresu 2001:718:1c01:1:02e0:7dff:fe96:daa8 přiřadili záznamem • CNAME (canonical name record) je alias - jiné jméno pro jméno již zavedené. Typicky se používá pro servery známých služeb, jako je například WWW. Jeho definice pomocí přezdívky umožňuje jej později snadno přestěhovat na jiný počítač. Pokud náš cosi.kdesi.cz má sloužit zároveň jako www.kdesi.cz, vložíme do zónového souboru • MX (mail exchange record) oznamuje adresu a prioritu serveru pro příjem elektronické pošty pro danou doménu. Tentokrát jsou parametry dva - priorita (přirozené číslo, menší znamená vyšší prioritu) a doménové jméno serveru. Pokud poštu pro počítač cosi.kdesi.cz přijímá nejlépe počítač mail.kdesi.cz a případně jako záložní i mail.jinde.cz, bude zónový soubor obsahovat záznamy (všimněte si použití jmen s tečkou a bez tečky) • NS (name server record) ohlašuje jméno autoritativního DNS serveru pro danou doménu. Bude-li mít doména kdesi.cz poddoménu obchod.kdesi.cz, jejímiž servery budou ns.kdesi.cz (primární) a ns.jinde.cz (sekundární), bude zónový soubor pro kdesi.cz obsahovat • PTR (pointer record) je speciální typ záznamu pro reverzní zóny. Obsahuje na pravé straně jméno počítače přidělené adrese na straně levé (adresa je transformována na doménu výše popsaným postupem). Držme se našeho příkladu pro záznam typu A - v souladu s ním by zónový soubor pro doménu 3.2.1.in-addr.arpa měl obsahovat (zónový soubor definuje reverzní doménu, proto je třeba psát na pravé straně kompletní jméno s tečkou, jinak by za ně připojil reverzní doménu) • SOA (start of authority record) je zahajující záznam zónového souboru. Obsahuje jméno primárního serveru, adresu elektronické pošty jejího správce (zavináč je v ní ale nahrazen tečkou) a následující údaje: • Serial — sériové číslo, které je třeba zvětšit s každou změnou v záznamu. Podle něj sekundární server pozná, že v doméně došlo ke změně. Pokud jej zapomenete zvětšit, rozejde se obsah sekundárních serverů s primárním, což rozhodně není dobré. Pro přehlednost často ve formátu YYYYMMDDHH. • Refresh — jak často se má sekundární server dotazovat na novou verzi zóny (v sekundách). • Retry — v jakých intervalech má sekundární server opakovat své pokusy, pokud se mu nedaří spojit s primárním. • Expire — čas po kterém označí sekundární servery své záznamy za neaktuální, pokud se jim nedaří kontaktovat primární server. • TTL — implicitní doba platnosti záznamů. Časové údaje jsou v sekundách. Novější implementace umožní pro vyšší pohodlí používat k
číslům přípony 'M','H','D' a 'W' (minuta, hodina, den, týden) – například 8h znamená 8 hodin, čili totéž co hodnota 28800. Prostor doménových jmen:
Přílohy Příloha A: Příklad komunikace SMTP protokolem S: C: S: C: S: C: S: C: S: C: C: C: C: C: C: C: C: S: C: S:
220 mail.example.com ESMTP Postfix HELO example.net 250 Hello example.net MAIL FROM: <[email protected]> 250 Ok RCPT TO: 250 Ok DATA 354 End data with . Subject: test message From: [email protected] To: [email protected] Hello, This is a test. Goodbye. . 250 Ok: queued as 12345 QUIT 221 Bye
Příloha B: Příklad komunikace pop3 protokolem S: C: C:
+OK POP3 server ready <[email protected]> APOP mrose c4c9334bac560ecc979e58001b3e22fb USER mrose
S C: S S: C: S: C: S: S: S: S: C: S: S: S: C: S: C: S: S: S: C: S: C: S:
+OK User accepted PASS mrosepass +OK Pass accepted +OK mrose's maildrop has 2 messages (320 octets) STAT +OK 2 320 LIST +OK 2 messages (320 octets) 1 120 2 200 . RETR 1 +OK 120 octets . DELE 1 +OK message 1 deleted RETR 2 +OK 200 octets . DELE 2 +OK message 2 deleted QUIT +OK dewey POP3 server signing off (maildrop empty)
Příloha C: Příklad http komunikace HTTP 1.0 - bezestavový, požadavek – odpověď – konec spojení HTTP 1.1 - persistentní spojení, musí být přítomen parametr Host, požadavek na část dokumentu, data můžou být zasílány po částech Formát: : ... :
Get: GET /index.html HTTP/1.0 Post: POST /path/script.cgi HTTP/1.0
většinou neobsahuje tělo obsahuje tělo
From: [email protected] User-Agent: MoleHill/0.13 Content-Type: application/x-www-form-urlencoded Content-Length: 32 name=mole&event=trap&action=kill ---------------pozadavek--------------GET /turecek http/1.0 HOST: www.něco.com User-agent: mozilla/5 Accept: text/html, text/xml Accept-language: cs-cz -encoding: gzip -charset:windows-1250 ---------------odpoved----------------http/1.1 200 OK Cache-control: private Content-type: text/html -length: 134
Date: Frri, 21…… ....
Odpověď:
HTTP/verze kód text
(100,200,300,400,500)
Příloha D: Příklad zónového souboru $TTL 1w @
cosi server www
IN
SOA
IN IN
NS NS
server.kdesi.cz. 200605140 1h 5m 1w 1d ) server ns.jinde.cz.
IN IN
MX MX
10 server 20 mail.jinde.cz.
IN IN IN IN
A AAAA A CNAME
franta.kdesi.cz. (
1.2.3.4 2001:718:1c01:1:02e0:7dff:fe96:daa8 1.2.3.1 server