Katedra softwarového inženýrství, Matematicko-fyzikální fakulta, Univerzita Karlova, Praha
Jak funguje internet Jiří Peterka
Upraveno z materiálů Jiřího Peterky, www.earchiv.cz (a se souhlasem autora :). Nicméně záruky poskytnuty žádné, studium na vlastní nebezpečí. Roman Chýla
1
Jak funguje Internet? • Používá technologie, které se dohromady označují jako
rodina protokolů TCP/IP (TCP/IP protocol suite) • tyto technologie pokrývají: – přenosy dat – způsob identifikace zdrojů – ………..
2
Co je protokol? • implementovat funkční síť je hodně složité a náročné • jde o jeden velký problém, který se vyplatí dekomponovat – rozdělit na menší části, které je možné řešit samostatně
• počítačové sítě: dekompozice se provede po hierarchicky uspořádaných vrstvách – dobře to odpovídá povaze řešeného problému – přináší to i další výhody • možnost alternativních řešení na úrovni nižších vrstev • větší modulárnost
vrstva vrstva síť (jako celek)
vrstva vrstva vrstva vrstva protokol: říká jak má
fungovat vrstva jednoho uzlu při komunikaci se stejnolehlou vrstvou jiného uzlu
3
Způsob komunikace mezi vrstvami
vrstva
pravidla komunikace definuje protokol
vrstva
vrstva
vrstva
vrstva
vrstva
komunikace probíhá pouze mezi stejnolehlými (rovnocennými, angl.: peer) vrstvami
mohou stát na různých platformách 4
aplikace (aplikační služby, např.: el. pošta, WWW, … ) komunikace mezi koncovými uzly přenos dat
aplikační vrstva
SMTP, HTTP FTP, LDAP, DNS, …
transportní v.
UDP, TCP
síťová v.
protokol IP
(zajišťuje protokol IP, Internet Protocol)
týká se fyzických přenosů
vrstva síťového rozhraní
protokoly TCP/IP pokrývají
Vrstevnatý model TCP/IP
TCP/IP nepokrývá
5
Rodina protokolů TCP/IP •
ve skutečnosti je to celá tzv. síťová architektura – zahrnuje představu o počtu vrstev, o jejich významu a roli, a také konkrétní protokoly • vrstvy jsou 4
– každý protokol se vždy "týká" určité vrstvy – na jedné vrstvě může "fungovat" více protokolů • každý z nich plní jiný úkol, nebo plní stejný úkol jiným způsobem atd.
•
rodina protokolů TCP/IP dnes obsahuje přes 100 různých protokolů !!! – tj. TCP/IP není 1 protokol !!!
• rodina protokolů TCP/IP obsahuje protokoly které pokrývají: – přenos dat (protokoly IP, TCP, UDP) – manipulaci s adresami – fungování služeb (aplikací), např.: • • • • •
el. pošta: SMTP, RFC822 web: HTTP, HTML přenos souborů: FTP, NFS přístup k adresářům: LDAP …..
• protokoly jsou definovány standardy Internetu – dokumenty RFC (STD)
• neustále se vyvíjí, vznikají nové
6
Filosofie TCP/IP - nespolehlivost •
teze: přenosová vrstva se má starat o přenos dat – má to dělat co nejefektivněji – nemá se rozptylovat dalšími úkoly (např. zajišťováním spolehlivosti, když to si snáze a lépe zajistí koncové uzly sítě) – zajištění spolehlivosti je úkolem koncových uzlů
•
aplikace
aplikace
UDP
TCP síťová vrstva
•
IP
na transportní vrstvě existují dva hlavní protokoly: – UDP – zachovává nespolehlivost
co je nespolehlivost? – pokud některý uzel zjistí, že je něco poškozeno, má právo to zahodit a nemusí se starat o nápravu!! – nesmí nic zahazovat samovolně!!
aplikace
transportní vrstva
důsledek: – přenosy dat (na úrovni síťové vrstvy, protokolem IP) fungují jako nespolehlivé
•
aplikace
• nestará se o ztracená/poškozená data
– TCP – zajišťuje spolehlivost • napravuje ztráty/poškození
•
aplikace si mohou vybrat spolehlivý, či nespolehlivý přenos
7
Filosofie TCP/IP - nespojovanost •
přenosy dat v TCP/IP fungují na nespojovaném principu – nenavazují spojení, posílají data v dobré víře že příjemce existuje a bude ochoten je přijmout – každý jednotlivý blok dat (paket) je přenášen samostatně a nezávisle na ostatních paketech
představa spojovaného přenosu 4 5
2
3
spojení
• může být přenášen jinou cestou než ostatní • pořadí doručování nemusí být zachováno
1
– výhody:
2
• je to velmi robustní – není nutné explicitně reagovat na ztráty spojení, změny v topologii sítě
1
4
3
5
– nevýhody: • pro přenosy větších objemů dat v kratších intervalech je to neefektivní
•
protokol IP funguje nespojovaně
představa nespojovaného přenosu
8
Princip maximální snahy • anglicky"best effort"
•
– přenosová část sítě se maximálně snaží vyhovět všem požadavkům, které jsou na ni • kladeny – pokud se jí to nedaří, má právo krátit požadavky (limitovat, ignorovat je, nevyhovět jim, …) • • např. pozdržet přenášené pakety do doby, než je bude moci zpracovat • může i zahazovat pakety, které vůbec nedokáže zpracovat
– dělá to rovnoměrně vůči všem požadavkům • • "měří všem stejně", nepracuje s prioritami
je to celková filosofie TCP/IP – je praktickým důsledkem použití paketového přenosu a přístupu ke spolehlivosti
alternativa: – garance služeb (QoS, Quality of Service) • QoS nabízí telekomunikační sítě
výhoda: – sítě fungující na principu "best effort" jsou mnohem efektivnější (i ekonomicky) než sítě nabízející QoS • kdyby Internet poskytoval QoS, byl by mnohem dražší než dnes a méně rozvinutý
nevýhoda: – vadí to multimediálním přenosům 9
Představa paketového přenosu problém: není předem známo, jak dlouho se ten který paket zdrží v přepojovacím uzlu (záleží to na momentálním souběhu všech paketů ze všech vstupů)
přepojovací uzel
přepojovací logika (rozhoduje, kudy bude dále odesláno)
?
pakety pracuje na principu store & forward
interní paměť (vyrovnávací buffer)
10
Jiný pohled: hloupá síť vs. chytré uzly •
přenosová část sítě (IP síť) má být "hloupá" – ale efektivní, má co nejrychleji a nejefektivněji plnit své základní úkoly
•
"chytré" mají být koncové uzly – inteligence má být soustředěna do koncových uzlů
IP síť
inteligence
rychlost
transport. vrstva
inteligence transport. vrstva
síťová vrstva
síťová vrstva
síťová vrstva
vrstva síť. rozhraní
vrstva síť. rozhraní
vrstva síť. rozhraní
koncový uzel
směrovač
koncový uzel
11
Problém multimediálních aplikací 1. potřebují dostávat svá data:
1. možná řešení:
– s malým zpožděním – s pravidelným zpožděním
– "kvantitativní": zvyšování disponibilní kapacity
1. s pravidelnými odstupy mezi sebou
• týká se to například přenosu živého obrazu či zvuku – aplikace VOIP, TV vysílání, rozhlas, video-on-demand
1. fungování na principu "maximální snahy …" zůstává 2. zlepšení je statistické 1. je menší pravděpodobnost, že bude muset dojít ke krácení požadavků
• týká se:
3. problém je s fungováním přenosových 1. přenosových kapacit (tj. linek) mechanismů TCP/IP na principu 2. "přepojovacích kapacit" (směrovačů, switchů) "maximální snahy, ale nezaručeného výsledku" – "kvalitativní": zavedení podpory QoS – byla by zapotřebí podpora QoS (kvality služeb) • QoS je v zásadě "protipólem" principu maximální snahy
• fungování na principu "maximální snahy …" je nahrazeno jiným způsobem fungování • zlepšení je garantované – ale drahé a obtížné
12
Problém distribučních aplikací •
s postupem času se objevily i takové aplikace, pro které je fungování přenosových mechanismů TCP/IP principiálně nevhodné
• "distribuční služby" = videokonference, vysílání rozhlasu a TV, …. – potřebují dopravovat stejná data od 1 zdroje k více příjemcům současně • tzv. multicasting (event. broadcasting)
– přenosové mechanismy TCP/IP to neumí !!! • přenosové mechanismy počítají s přenosem 1:1 (od jednoho zdroje k jednomu příjemci) • pokus: služba MBONE (nepříliš úspěšná) • řeší se až v rámci IPv6 a IP Multicast Initiative
bez multicastingu
s multicastingem
13
Filosofie TCP/IP: katenetový model • TCP/IP předpokládá že "svět" (Internet) je: – tvořen soustavou dílčích sítí • chápaných jako celky na úrovni síťové vrstvy, tzv. IP sítí
představa katenetu
– dílčí sítě jsou vzájemně propojeny na úrovni síťové vrstvy • pomocí směrovačů (dříve nazývaných IP Gateways, dnes: IP Routers)
– toto propojení může být libovolné • může být stylem "každý s každým", nebo "do řetězce" apod. – jedinou podmínkou je souvislost grafu – "katenet" je "řetězec" – ten je jakousi minimální podmínkou pro souvislost celé soustavy sítí
• možné je i redundantní propojení
skutečná síť = IP síť = IP Router (směrovač) 14
Hostitelské poč ítače vs. směrovač e IP síť
IP síť
• TCP/IP předpokládá, dva typy uzlů v síti: – hostitelské počítače (host computers) • tj. koncové uzly, např. servery, pracovní stanice, PC, různá zařízení (tiskárny, …) • jsou připojeny jen do jedné IP sítě (mají jen jednu síťovou adresu)
IP síť
– směrovače (IP Routers) • jsou připojeny nejméně do dvou IP sítí • zajišťují "přestup" (směrování)
= směrovač +
+
+
• teze: – každý uzel by měl mít přiřazenu celosvětově unikátní síťovou adresu • tzv. IP
= multihomed host
adresu
– přesněji: každé rozhraní by mělo mít vlastní adresu • směrovač má nejméně 2 IP adresy (podle počtu svých rozhraní)
=hostitelské počítače (hosts)
IP síť
IP síť
15
IP adresy •
IP adresy jsou 32-bitové – lze je chápat jako jedno velké (32-bitové) binární číslo – ale to se špatně zapisuje i čte
•
používá se jednotný způsob zápisu: – obsah každého bytu je vyjádřen jako desítkové číslo – jednotlivé části jsou spojeny tečkou – příklad: 193.84.57.34 – příklad: 147.3.1.3
•
C0H
A8H
0H
2H
192
168
0
2
192.168.0.2
zásada: – žádná IP adresa nesmí být přidělena (použita) dvakrát • jinak by algoritmy pro hledání cesty v síti (tzv. směrování) nemohly fungovat
16
Třídy adres A,B,C • autoři TCP/IP vyšli z předpokladu že bude existovat: – malý počet opravdu velkých sítí • vyžadují malou síťovou část, a naopak velkou část pro relativní adresu uzlu
– střední počet středně velkých sítí • měly by mít srovnatelně velkou síťovou i relativní část
• tomu uzpůsobili i velikost síťové části IP adresy – má 3 možné polohy, které odpovídají 3 třídám adres
– třída A • pro velmi velké sítě, poloha hranice 8:24 (rozděluje 32bitů na 8 a 24)
– třída B • pro středně velké sítě, 16:16
– třída C • pro malé sítě, 24:8
– velký počet malých sítí • vyžadují velkou síťovou část, stačí jim malá část pro relativní adresy
tímto se snažili zmenšit plýtvání s IP adresami 17
Představa IP adres – třídy A, B a C
7 bitů
A
0
24 bitů
adresa sítě
adresa uzlu
14 bitů
B
1 0
16 bitů
adresa sítě 21 bitů
C
1 1 0
adresa sítě
adresa uzlu 8 bitů
adresa uzlu 18
Třídy ještě jednou • IP adresy se přidělují po celých blocích • v případě adres třídy C jde o 256 individuálních IP adres • v případě adres třídy B jde o 65536 IP adres • …..16777216 IP adres
• když se řekne "získat jednu adresu třídy C" – míní se tím získání 256 individuálních IP adres • 256 čísel z množiny všech 32-bitových čísel
– analogicky pro třídy B a A
• třída A:
1.x.x.x - 126.x.x.x
• třída B:
128.0.x.x - 191.255.x.x
• třída C:
192.0.0.x – 223.255.255.x
•
1x třída A:
10.0.0.0 – 10.255.255.255
•
16x třída B:
172.16.0.0 – 172.31.255.255
•
256x třída C
192.168.0.0 – 192.168.255.255 19
Mechanismus CIDR Classless InterDomain Routing • řeší problém úbytku IP adres – umožňuje přidělovat koncovým sítím "přesně velké" skupiny IP adres
Dnešní způsob distribuce IP adres ICANN
• v zásadě to nahrazuje původní systém tříd A, B a C
• adresy jsou dnes přidělovány zásadně jako tzv. CIDR bloky
ARIN
RIPE
APNIC
přidělování menších bloků
– např. 194.213.228/24 je CIDR blok odpovídající 1 dřívější síťové adrese C (má 24 bitů přidělování IP adres prefixu, zbývá 8 na adresu koncovým uživatelům uzlu)
provider
provider
20
Privátní IP adresy • co brání vícenásobnému použití IP adres?
způsob jak šetřit IP adresami
– to, že by směrovací algoritmy nevěděly, kam doručovat IP pakety
• idea: tam, kde nebude existovat přímá komunikace (nutnost směrovat) by se adresy mohly opakovat – tato situace nastává v sítích bez přímé IP konektivity ("privátních sítích"), které jsou odděleny od "ostatního světa" vhodnou bránou (firewallem) proxy • která zajišťuje přestup na úrovni vyšší, než je síťová!! aplikace (pošta, WWW, …)
privátní síť
IP adresa např. 192.168.0.1
"zbytek světa"
IP pakety
brána
privátní síť
IP adresa např. 192.168.0.1
21
Jak se dostanu do...?
domény adresy DNS • IP adresy jsou dobré pro stroje • jména jsou dobré pro lidi – dokonce i programům se 'hodí' 22
Co je doména? • je to jméno? • prvek v rámci hierarchického členění jmenného prostoru – není apriorně stanovena ani hloubka, ani košatost hierarchie (stromu)!!
• čemu má doména odpovídat? – – – –
organizačnímu členění? teritoriálnímu členění? jinému členění? NENÍ TO PŘEDEPSÁNO !!! • správce nadřazené domény zde rozhoduje
• výjimka: je předepsán charakter domén nejvyšší úrovně – tzv. TLD domén (Top Level Domén) – existují ccTLD (country code TLD), odpovídající státním útvarům, tvar dle normy ISO-3166 • • • •
.cz pro ČR .sk pro Slovesko .us pro USA .ru pro Rusko
přiděluje ICANN
– existují gTLD (generic TLD), vyjadřující charakter subjektu • .edu pro školské instituce • .com pro komerční organizace • .int, .net, .gov, .mil, .org, .arpa
23
Plochý vs. hierarchický prostor jmen • Plochý jmenný prostor – všechna jména jsou "jednorozměrná" • např. ALPHA, Sun, PC1 • je omezený počet "smysluplných" jmen
– jména se přidělují z jedné "množiny" • musí to být centrálně koordinováno – ten kdo chce nějaké jméno se musí ptát zda ještě nebylo použito
• nevýhody: – je to nepružné, neškálovatelné, organizačně náročné
• Hierarchický jmenný prostor – existuje hierarchie (strom) dílčích jmenných prostorů, • těmto dílčím jmenným prostorům se říká domény
– "výsledná" jména budou mít více složek – organizačně to je zařízeno tak, aby (dílčí, složková ..) jména v rámci domén bylo možné "čerpat" nezávisle na ostatních doménách • tomu musí odpovídat i "sestavování" dílčích složek jmen do větších celků
24
Představa hierarchického jmenného prostoru cz
cuni
hierarchie jmenných prostorů / domén každá doména má své jméno (label)
mff
www (jméno přidělené v doméně "cuni.cz", plně kvalifikované jméno je www.cuni.cz
ms
www (jméno přidělené v doméně "mff.cuni.cz", plně kvalifikované jméno je www.mff.cuni.cz
www kocour
ksi (jméno přidělené v doméně "ms.mff.cuni.cz", plně kvalifikované jméno je ksi.ms.mff.cuni.cz 25
Princip delegace pravomoci cz v každé doméně mohli přidělit jméno www, aniž se museli kohokoli ptát !!!!
cuni
mff
ms
www
Pravidlo: v jedné doméně nesmí být stejné jméno použito dvakrát !!!
fsv
troja
karlin
www
www
www www.fsv.cuni.cz
www.ms.mff.cuni.cz www.troja.mff.cuni.cz
www.karlin.mff.cuni.cz
26
Jak má být doména "velká"? • není apriorně stanoveno – to co komu vyhovuje, co do velikosti i logice členění
• "příliš velká" doména – není smysluplné, aby se přímo v této doméně přidělovala jména uzlům spadajícím do domény • např. z organizačních důvodů
– řeší se "delegováním pravomoci" (parcelací "okruhu působnosti") • vytváří se dceřinné domény
• "vhodně velká" doména – s takovým počtem uzlů, aby se nevyčerpala smysluplná/požadovaná jména – netýká se to až tak správy domény !!
• příklady: – pro malou organizaci bývá "vhodně velká" doména druhé úrovně – pro velkou organizaci je vhodnější víceúrovňové členění • např. UK (cuni.cz)
27
Name servery, domény a překlad doménových jmen •
plně kvalifikovaná doménová jména jsou celosvětově jednoznačná • v rámci Internetu existuje převodní mechanismus, zajišťující převody – symbolické doménové jméno >>> číselná IP adresa – číselná IP adresa >>> symbolické doménové jméno
•
tento mechanismus je součástí systému DNS (Domain Name System) – lze si jej představit jako velkou distribuovanou databázi, jejími uzly jsou tzv. name servery
•
Name server – vždy přísluší k nějaké konkrétní doméně – je to server (uzel) který má k dispozici data příslušné domény a odpovídá na dotazy které se jich týkají
•
představa: – name server zná IP adresy všech uzlů, kterým bylo v dané doméně přiděleno symbolické jméno • např: uzel WWW má IP adresu 193.86.72.5
– každá doména má svůj name server • a ten poskytuje službu spočívající v převodu jmen na IP adresy
– name servery jsou uspořádány do stromu • stejně jako samotné domény
– 1 počítač může plnit roli name serveru pro více domén • 1 zóna = 1 uzel
28
Proč DNS? •
k jednoznačné identifikaci uzlů a pro • fungování přenosových mechanismů stačí IP adresy
DNS je řešení, které umožňuje používat symbolická jména místo číselných adres
– ale jsou málo mnemonické – DNS = Domain Name System – v některých speciálních situacích a pro • zahrnuje: některé účely nepostačují – pravidla pro tvorbu jmen a • aliasy fungování celého systému • dynamicky přidělované IP adresy
– pro některé účely nejsou vhodné • když je potřeba "oslovit" poskytovatele určité služby, ne konkrétní uzel • pro flexibilní doručování elektronické pošty ("na doménu") • ….. když hrozí přečíslování …
– nevypovídají nic o povaze/určení/umístění uzlu
• 195.113.19.213 vs. ksi.ms.mff.cuni.cz
• založená na principu domén
– databázi symbolických jmen a jim odpovídající číselných adres • dnes i dalších údajů
– převodní mechanismy • pro převod mezi symbolickými a doménovými jmény
– ….. 29
Princip překladu tazatel se nejprve ptá kořenového name serveru, jehož adresa je všeobecně známa
root 2 cz cz
až se dostane k takovému name serveru, který mu dokáže odpovědět
cuni cuni
5
4
3
2
1
tazatel je postupně odkazován na další name servery
4 mff
tazatel
195.113.19.213 ptá se na IP adresu uzlu ksi.ms.mff.cuni.cz
3
1
mff 5 ms ms
uzel ksi.ms.mff.cuni.cz
troja karlin troja karlin 30
Skutečný průběh překladu root
oslovený name server sám zprostředkuje zodpovězení dotazu
cz cz
ksi.ms.mff.cuni.cz?
cuni
name server
cuni
195.113.19.213
mff
tazatel se ptá "nejbližšího" name serveru nejbližší je ten, jehož existenci má zanesenu ve své konfiguraci
mff ms ms
troja karlin troja karlin 31
Struktura name serverů root cz cz cuni cuni fsv fsv ms ms
mff mff
troja karlin troja karlin
• struktura name serverů logicky odpovídá struktuře domén – každá doména má svůj name server – existuje tzv. kořenový (root) name server, který "zná" name servery všech TLD (domén nejvyšší úrovně)
• fyzicky jsou name servery členěny jinak – 1 zóna má 1 name server – kvůli dostupnosti jsou name servery nejméně zdvojeny name server
doména
32
DNS servery a resolvery aplikace
dotazy
•
resolver
DNS má architekturu klient/server – name server odpovídá na dotazy
odpovědi
• plní roli serveru
– resolver pokládá dotazy name serverům
DNS záznamy obsahují TTL
dotazy
resolver
• plní roli klienta
•
odpovědi
cache data
name server
– i name server se ptá jiných name serverů, k tomu potřebuje resolver
dotazy • odpovědi
na uzlu který plní roli name serveru musí být implementovány obě složky
na ostatních uzlech stačí jen resolver 33
URL – Uniform Resource Locator • URL a doména nejsou totéž • potřebuje mít možnost identifikovat různé druhy objektů (zdrojů), např. – souborů, – WWW stránek – uživatelských poštovních schránek
• a to jednoznačně, v rámci celého Internetu – symbolická doménová jména na to nestačí, protože identifikují jednotlivé uzly jako celky (a nerozlišují objekty v rámci uzlů) !!!!
• konvence o tom, jak jednoznačně "ukázat" na konkrétní: – – – –
WWW stránku soubor, menu Gopheru, uživatele (schránku) ......
• Ukazatel URL obsahuje 3 složky: – schéma (protokol) – adresu uzlu nebo hostname • symbolickou doménovou adresu, ev. i číselnou IP adresu
– relativní adresu objektu v rámci uzlu a jeho jméno • např. jméno souboru a přístupovou cestu k němu
34
URL - příklady Typ zdroje (jméno protokolu, který má být použit pro načtení objektu). Zde jde o protokol HTTP používaný v rámci WWW, a tudíž jde o WWW stránku
http://alfa.vse.cz/~sklenak/latex.html symbolické doménové jméno uzlu
relativní adresa: jméno souboru (obsahujícího WWW stránku) a přístupová cesta k němu
typ zdroje: emailová adresa
mailto:
[email protected] emailová adresa
35