Aplikační protokoly
Elektronická pošta
Schéma elektronické pošty odesilatel
user agent (UA)
mail transfer agent (MTA)
SMTP
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"
To: Petr Adamec Cc: [email protected] Subject: Spam pres buba? Zde je text tela dopisu.
prázdný řádek odděluje hlavičky od těla
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: B: A: B: A: B: A: B: A: B: B: A: B: A:
220 bubo.tul.cz SMTP service ready HELLO relay.xyz.cz 250 bubo.tul.cz says hello to relay.xyz.cz MAIL FROM: 250 sender ok RCPT TO: 250 recipient OK DATA 354 Enter mail, end with "." on a line by itself celý dopis – hlavičky a tělo . 250 message sent QUIT 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 [email protected]
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
6. zobrazení výsledku klient
4. intepretace HTML
5. obstarání doplňkových součástí (obrázky,…)
2. HTTP dotaz GET /index.html HTTP/1.0 server 3. HTTP odpověď HTTP/1.0 200 OK …
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
GET / HTTP/1.1 Host: www.tul.cz prázdný řádek
HTTP/1.1 200 OK Content-Type: text/html Content-Length: 6708 ...
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:[email protected]
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
1.2.3.4
REGISTER sip:kdesi.cz SIP/2.0 From: sip:[email protected] To: sip:[email protected] Contact: <sip:1.2.3.4> Expires: 3600 SIP/2.0 200 OK
registrační server
lokalizační databáze
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
DNS
zprostředkovává spojení
2
proxy sip.kdesi.cz
INVITE sip:[email protected] SIP/2.0 From: sip:[email protected];tag=33 To: sip:[email protected] Call-ID: [email protected] 3
6 SIP/2.0 200 OK
From: sip:[email protected];tag=76 To: sip:[email protected];tag=33 Call-ID: [email protected]
lokalizační databáze
5
4 INVITE sip:[email protected] SIP/2.0
7 ACK sip:[email protected] SIP/2.0
UA 1.2.3.4
From: sip:[email protected];tag=33 To: sip:[email protected] Call-ID: [email protected]
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