Aplikační protokoly
Elektronická pošta
Schéma elektronické pošty odesilatel user agent (UA) SMTP mail transfer agent (MTA) SMTP mail transfer agent (MTA) SMTP příjemce user agent (UA) IMAP nebo POP mailbox IMAP/POP server mail transfer agent (MTA) cílový server
Programy User Agent (UA) uživatelské rozhraní poštovního systému rozhodující pro uživatelský komfort MS Outlook, Mozilla Thunderbird,... Mail Transfer Agent (MTA) zajišťuje přepravu dopisů neviditelný z hlediska uživatele sendmail, Postfix, MS Exchange,...
SMTP Simple Mail Transfer Protocol, RFC 5321 formát dopisu definuje RFC 5322: obálka: přepravní informace, interní pro MTA, uživatel se o ní nedozví hlavičky: kdo poslal, kudy prošlo,...; využívá UA, vychází z nich řada jeho funkcí (řazení dopisů, vyplňování adres při odpovědi,... tělo: vlastní nesená zpráva, pro uživatele
Příklad dopisu Received: from bubo.tul.cz (147.230.16.1) by tyto.tul.cz (Mercury 1.44) with ESMTP; 19 May 03 08:53:09 +0200 Received: from relay.xyz.cz (relay.xyz.cz [123.24.128.45]) by bubo.tul.cz (Postfix) with ESMTP; Mon, 19 May 2006 08:53:09 +0200 Received: from xyz.cz (office.xyz.cz [123.24.132.67]) by relay.xyz.cz (Postfix) with ESMTP; Mon, 19 May 2006 08:53:11 +0200 Date: Mon, 19 May 2006 08:53:09 +0200 From: "Vitezslav T. Se'm" <travis@xyz.cz> To: Petr Adamec <Petr.Adamec@tul.cz> Cc: Pavel.Satrapa@tul.cz Subject: Spam pres buba? prázdný řádek odděluje hlavičky od těla Zde je text tela dopisu.
Příklad SMTP komunikace relay.xyz.cz (B) předává dopis na bubo.tul.cz (A) B naváže TCP spojení s A na port 25, po něm proběhne tento dialog: A: 220 bubo.tul.cz SMTP service ready B: HELLO relay.xyz.cz A: 250 bubo.tul.cz says hello to relay.xyz.cz B: MAIL FROM: <travis@xyz.cz> A: 250 sender ok B: RCPT TO: <petr.adamec@tul.cz> A: 250 recipient OK B: DATA A: 354 Enter mail, end with "." on a line by itself B: celý dopis hlavičky a tělo B:. A: 250 message sent B: QUIT A: 221 relay.xyz.cz closing connection
E-mail a DNS používá DNS ke zjištění, kam posílat poštu MX záznamy (Mail exchange) MX priorita jméno příklad: dopis pro pavel.satrapa@tul.cz vyhledá v DNS MX záznamy pro tul.cz: 0 bubo.tul.cz 50 tul.cesnet.cz pokusí se předat (po SMTP) na bubo.tul.cz neuspěje-li, zkusí server s horší prioritou
Vzdálený přístup ke schránce schránka musí být stále dostupná, je umístěna na počítači s cílovým MTA UA často na jiném počítači (přístup z domova) Post Office Protocol (POP) umí stáhnout dopisy na počítač a vymazat ze schránky jednoduchý, široce implementovaný Interactive Mail Access Protocol (IMAP) vzdálená práce se schránkami, větší možnosti, složitější ideální kombinovat se SSL
MIME Multipurpose Internet Mail Extensions, RFC 2045 a další dle RFC 822 smí tělo dopisu tvořit jen US ASCII problém s národními znaky, přílohami,... MIME zakóduje složitý dopis do podoby podle RFC 822 lze přepravovat stávajícími MTA implementuje klient (UA) kóduje/dekóduje
MIME hlavičky MIME-Version je použito MIME identifikuje verzi, zatím stále 1.0 Content-Type jakého typu je obsah dopisu Content-Transfer-Encoding jak je kódován Quoted-Printable pro text s akcenty, Base64 pro binární data
MIME typy (1) typ/podtyp typ určuje základní charakter dat podtyp identifikuje formát text textová informace; text/plain, text/html image obrázek; image/jpeg, image/gif audio zvuk; audio/basic, audio/mpeg video videosekvence; video/mpeg
MIME typy (2) application data ke zpracování speciální aplikací; application/octet-stream, application/postcript message obsahem je jiný dopis multipart obsah má několik částí multipart/mixed prezentovat postupně (nejčastější) multipart/parallel prezentovat současně multipart/alternative různé varianty téhož obsahu multipart/digest každou částí je elektronický dopis, např. souhrn elektronické konference
World-Wide Web
Základní prvky uspořádání klient server HyperText Transfer Protocol (HTTP) protokol pro komunikaci mezi klientem a serverem HyperText Markup Language (HTML) jazyk pro definici obsahu stránky XHTML HTML přeformulováno do XML vývoj koordinuje WWW konsorcium
Komunikace klient server uživatel 1. volba stránky klient 4. intepretace HTML 6. zobrazení výsledku 2. HTTP dotaz GET /index.html HTTP/1.0 3. HTTP odpověď HTTP/1.0 200 OK server 5. obstarání doplňkových součástí (obrázky, ) <HTML> </HTML>
HTTP RFC 2616 bezstavový protokol zodpovězením dotazu transakce pro server končí, neudržuje stavové informace o klientech další dotaz nedává do souvislosti s předchozími stav si uchovává klient výhody: robustní, snadnější implementace nevýhody: větší režie, některé služby vyžadují stavové informace (nákupní košík) klient musí předat serveru
HTTP zprávy formátem připomínají elektronický dopis dotaz: metoda lokátor verze hlavičky (doplňují) odpověď: verze kód popis hlavičky tělo prázdný řádek GET / HTTP/1.1 Host: www.tul.cz HTTP/1.1 200 OK Content-Type: text/html Content-Length: 6708 <html>...</html>
Uniform Resource Locator univerzální adresa struktura: schéma:specifická část typicky: http://www.kdesi.cz/doc/help.html schéma (protokol) server cesta elektronická pošta: mailto:pavel.satrapa@tul.cz
IP telefonie
IP telefonie též Voice over IP (VoIP) přenos telefonních hovorů počítačovou sítí nevelký objem dat (desítky kb/s), ale citlivé na zpoždění (delay) a jeho kolísání (jitter) podle některých prognóz samostatná telefonní infrastruktura postupně zmizí a telefonie se stane jednou ze služeb počítačových sítí výhoda: jedna (datová) infrastruktura obslouží vše
Přímá IP telefonie IP telefon (HW) Internet IP telefon (SW)
Nepřímá IP telefonie IP telefon (HW) běžný telefon veřejná telefonní síť Internet telefonní ústředna
Úlohy IP telefonie vlastní přenos hlasu efektivní kódování/dekódování zpravidla (ideálně) přímo mezi koncovými zařízeními signalizace navazování hovorů, autentizace účastníků, dohoda o technických parametrech, účtování,... zpravidla zajišťují specializované servery
Přenos hlasu vlastní přenos zajišťuje Real-Time Protocol (RTP, RFC 3550) obvykle provozován po UDP poskytuje pořadová čísla paketů a časové značky, ale nezajišťuje QoS kódování/dekódování hlasu zajišťují kodeky velké množství, mění se v čase G.711 klasické PCM (64 kb/s), implementace povinná GSM původem z mobilních telefonů, 5 7 kb/s
Signalizace připraví půdu pro vlastní přenos přepravována nezávisle, často jinými cestami H.323 + kolektiv binární protokol s kořeny v telekomunikacích široce podporovaný, dnes spíše na ústupu Session Initiation Protocol (SIP) textový protokol vyvinutý IETF rychle rostoucí popularita
SIP RFC 3261 použitelný i pro další služby (videokonference, instant messaging,...) základní funkce: lokalizace uživatele kde je daný koncový systém dostupnost uživatele je ochoten přijmout hovor? dohoda o schopnostech technické parametry sestavení spojení vyzvánění správa spojení změny, konec
Uživatelský agent (UA) koncové zařízení podporující SIP hardwarový či softwarový telefon,... většina inteligence v koncových zařízeních obsahuje dvě části: UA klient (UAC) zahajuje hovory, vysílá požadavky UA server (UAS) čeká na příchozí hovory, odpovídá na požadavky klientů
Adresy sip:uživatel@doména doména může identifikovat konkrétní zařízení nebo být obecnější využívá DNS ke zjištění podrobností cíl: identifikovat uživatele problém: uživatel se pohybuje, mění IP adresy řešení: registrační servery
Registrační server při startu se SIP klient registruje UA REGISTER sip:kdesi.cz SIP/2.0 From: sip:adam@kdesi.cz To: sip:adam@kdesi.cz Contact: <sip:1.2.3.4> Expires: 3600 registrační server lokalizační databáze 1.2.3.4 SIP/2.0 200 OK
SIP požadavek 1. řádek: metoda lokátor verze_sip dostupné metody: INVITE zahájení hovoru ACK potvrzení závěrečné odpovědi BYE ukončení hovoru CANCEL ukončit vyhledávání a vyzvánění OPTIONS dohoda o schopnostech REGISTER registrace u lokalizační služby
SIP odpověď 1. řádek: verze_sip kód slovní_popis podobné předchozím protokolům (SMTP, HTTP)
Proxy server UA 5.6.7.8 1 SRV kdesi.cz sip.kdesi.cz INVITE sip:adam@kdesi.cz SIP/2.0 From: sip:eva@jinde.cz;tag=33 To: sip:adam@kdesi.cz Call-ID: 98765@jinde.cz 3 2 DNS zprostředkovává spojení proxy sip.kdesi.cz lokalizační databáze 7 6 ACK sip:adam@1.2.3.4 SIP/2.0 SIP/2.0 200 OK From: sip:adam@kdesi.cz;tag=76 To: sip:eva@jinde.cz;tag=33 Call-ID: 98765@jinde.cz UA 1.2.3.4 4 5 INVITE sip:adam@1.2.3.4 SIP/2.0 From: sip:eva@jinde.cz;tag=33 To: sip:adam@kdesi.cz Call-ID: 98765@jinde.cz
DNS pro IP telefonii (1) identifikace proxy serverů analogie MX záznamů záznamy SRV: typ_služby SRV priorita port jméno_serveru např. pro SIP proxy server _sip._udp SRV 0 5060 sip.kdesi.cz.
DNS pro IP telefonii (2) enum RFC 2916, též E.164 umožňuje přechod z klasické telefonie (identifikátorem je telefonní číslo) do IP (potřebuje port, adresu apod.) z telefonního čísla se vytvoří doména obrácené pořadí číslic (včetně mezinárodního prefixu) každá číslice samostatnou doménou přípona e164.arpa
DNS pro IP telefonii (3) např. +420 485 351 111 odpovídá doméně 1.1.1.1.5.3.5.8.4.0.2.4.e164.arpa v dané doméně záznam NAPTR obsahující informace pro IP telefonii IP adresy, porty, protokoly,... (IP) telefon si po zadání čísla v DNS zjistí vše potřebné pro spojení s druhým koncem
vytvořeno s podporou projektu ESF