Báječný svět počítačových sítí. Část třetí síťové architektury

1. 5. 2005

Sdílet

Ve světě počítačových sítí existuje hned několik ucelených "světonázorů",neboli celkových pohledů na to, jak by vlastně celá síť měla být koncipována, jak by měla fungovat a j...

Ve světě počítačových sítí existuje hned několik ucelených „světonázorů“,
neboli celkových pohledů na to, jak by vlastně celá síť měla být koncipována,

jak by měla fungovat a jaké služby by měla poskytovat. Jde vlastně o celé

síťové architektury, které se mohou v mnohém lišit. Jinak se na svět dívá tzv.

referenční model ISO/OSI, jinak zase rodina protokolů TCP/IP, která je dnes asi

nejrozšířenější síťovou architekturou.



Navrhnout a realizovat dobře fungující síť není žádná maličkost. Právě naopak,

je to pořádně velký oříšek. K jeho rozlousknutí je proto vhodné použít stejný

postup, jaký se používá ve stejné situaci i v jiných oblastech lidské činnosti:

„Když je něco příliš velké, než aby se to dalo zvládnout jako celek, tak to

rozdělme na menší části a ty řešme samostatně“.

Odborně se tomu říká dekompozice, jejím výsledkem by měl být rozklad jednoho

velkého a obtížně řešitelného problému na několik menších problémů, z nichž

každý je sám o sobě snáze řešitelný.

Při vlastní dekompozici (dělení velkého problému na menší) je samozřejmě třeba

dát dobrý pozor na to, aby výsledné dílčí celky byly řešitelné samostatně,

resp. aby řešení jedné dílčí části nebylo vázáno na to, jaké řešení se zvolí v

části jiné. Jde tedy o to, kudy a jak vést pomyslný řez velkého problému.

V případě počítačových sítí je „řez“ tradičně veden horizontálně, díky čemuž

vznikají hierarchicky uspořádané vrstvy. Kolik takových vrstev má být, co a jak

mají dělat, jak mají fungovat atd. právě v tom se jednotlivé síťové

architektury liší.

Až se záhy dostaneme k tzv. referenčnímu modelu ISO/OSI, zjistíme, že

předpokládá 7 vrstev. Naopak rodina protokolů TCP/IP, na níž dodnes funguje

celý internet, předpokládá pouze 4 vrstvy. A také jí to stačí.



Výhody vrstevnatých modelů



Vedle schůdnějšího řešení menších problémů místo obtížného řešení jednoho

velkého přináší rozdělení do hierarchicky uspořádaných vrstev (tzv. vrstevnatý

model) i některé další výhody. Právě u počítačových sítí je velmi důležité, že

při vhodném návrhu může být každá vrstva implementována nezávisle na ostatních

vrstvách, a to dokonce různými způsoby. To znamená, že nižší vrstvy, zabývající

se přenosem dat, mohou existovat ve více variantách a mohou být používány podle

toho, jaký konkrétní mechanismus přenosu dat a jaké přenosové médium je právě k

dispozici. Vyšším vrstvám to ale může být jedno, mohou tak existovat v

jednotném provedení a fungovat vždy stejně bez ohledu na to, jaká nižší vrstva

je pod nimi právě „podstrčena“.

Praktickým důsledkem je například to, že internet funguje v principu všude

stejně, bez ohledu na to, zda jste právě připojeni přes telefon, ADSL,

kabelovou přípojku, nějakou formu bezdrátového připojení apod. Rychlost odezvy

se nejspíše bude lišit, ale to by měl být jediný rozdíl jinak by vše ostatní

mělo fungovat stejně.

Pokud se v budoucnu objeví nějaká nová technologie, schopná přenášet data a

zajistit připojení k internetu, bude třeba vyvinout novou variantu implementace

té vrstvy, která tuto novou technologii využívá a přenáší po ni data. Tato nová

varianta nižší vrstvy se pak „podstrčí“ pod vrstvy vyšší, které mohou zůstat

beze změny. Přesto by vše mělo fungovat tak, jak má. Internet bude rázem

dostupný i po této nové přenosové technologii.



Vrstvy, služby, protokoly



Předchozí příklad dává tušit, že jednotlivé vrstvy mají své konkrétní úkoly,

které plní. Jedna vrstva může zajišťovat přenos dat k přímým sousedům, zatímco

jiná hledá cestu po celé soustavě sítí, aby se přenášená data dostala až ke

svému cíli. Další vrstva pak rozumí přenášeným datům a zajišťuje fungování

služeb jako elektronická pošta či WWW.

Obecně tedy každá vrstva plní své úkoly tak, že poskytuje určité služby.

Nejvyšší vrstva je poskytuje přímo uživatelům (jako již zmiňovanou

elektronickou poštu, WWW stránky, přenos souborů atd.), ale ostatní vrstvy si

je poskytují navzájem: konkrétní vrstva nabízí své služby vrstvě bezprostředně

vyšší (v rámci daného uzlu). Sama přitom ke svému fungování využívá služeb,

které jí poskytuje vrstva bezprostředně nižší. Vše naznačuje i následující

obrázek.

V prostředí sítě je přirozené, že vrstvy jednotlivých uzlů spolupracují při

plnění svých úkolů s vrstvami jiných uzlů. Tato spolupráce se ale vždy odehrává

na stejné úrovni, resp. na úrovni stejnolehlých vrstev. Nikdy by naopak neměly

spolupracovat vrstvy na nestejných úrovních.

Důležitý je i konkrétní způsob vzájemné komunikace stejnolehlých vrstev.

Pravidla této komunikace a vzájemné interakce obou stran definuje tzv.

protokol. Ten například říká, jaký formát a význam mají data, která si obě

strany vzájemně předávají, jak má jedna strana reagovat na to, co jí posílá

protistrana atd. Protokoly přitom přísluší jednotlivým vrstvám různé vrstvy

stejných uzlů tedy používají ke vzájemné komunikaci různé uzly. Nebo obráceně:

každý protokol vždy „patří“ do určité vrstvy.

Bylo by ale chybou myslet si, že mezi protokoly a vrstvami platí poměr 1 : 1,

neboli co protokol, to vrstva a naopak. Jedna vrstva může ke svému fungování

využívat více protokolů, a to i souběžně. Například na jedné vrstvě

(transportní, viz dále) se mohou používat dva různé protokoly, jeden pro

spolehlivý přenos (zabezpečený proti ztrátám a poškození dat), druhý

nespolehlivý (který takto zabezpečen není). Na nejvyšší úrovni (aplikační, viz

dále) může být používán jeden protokol pro přenos WWW stránek, jiný protokol

pro přenos zpráv elektronické pošty a ještě jiný pro přenos souborů atd.

Zpět ale k protokolům jako takovým: ty musí být oběma stranám známy předem,

aniž by se na jejich podobě musely nějak domlouvat. Proč tomu tak musí být

vyplývá ze skutečnosti, že spolu mohou chtít komunikovat dva uzly, které až

dosud neměly nic společného. Vůbec se neznají, stojí na různých systémových

platformách, mají jiné operační systémy, používají jiné aplikace a přesto si

musí hned napoprvé dobře porozumět. Musí tedy příslušný protokol znát

„odjinud“, a to v jeho definitivní a „závazné“ podobě. Takovouto „předem

známou“ podobu protokolů nabízí standardizace, resp. vydávání standardů

popisujících dané protokoly.



Horizontální komunikace mezi vrstvami



Pravidla vzájemné komunikace mezi stejnolehlými vrstvami různých uzlů

(horizontální komunikace), definovaná konkrétním protokolem, obvykle

předpokládají, že jedna strana pošle druhé straně určitý „balíček“, obsahující

jak data, tak instrukce týkající se toho, co se s daty má stát (jak mají být

dále zpracovány atd.). Lze si to představit také tak, že jde o obálku: uvnitř

této obálky jsou data, na obálce je napsán vzkaz protistraně (instrukce).

Ovšem představa, že by tuto obálku skutečně jedna strana předala přímo své

partnerské straně (stejnolehlé vrstvě), není většinou správná. Kromě nejnižších

vrstev totiž spolu žádné jiné vrstvy fakticky přímo nekomunikují. Pokud si

potřebují něco předat, udělají to tak, že příslušnou „obálku“ předají k

doručení bezprostředně nižší vrstvě. Ta se zachová stejně: obálku od vyšší

vrstvy vloží do jiné (poněkud větší) obálky, na tu napíše vzkaz pro svou

partnerskou (stejnolehlou) vrstvu a předá ji protistraně. Opět ale nikoli

přímo, ale tak, že tuto obálku předá své bezprostřední vrstvě…

Takto vše pokračuje, dokud se obálka nedostane až k nejnižší vrstvě. Teprve ta

totiž něco fakticky přenáší vezme tedy obálku od druhé nejnižší vrstvy

(fakticky určitý blok dat) a celou ji předá, bit po bitu, druhé straně.



Síťové architektury



Pokud už tušíme, co je protokol a co jsou vrstvy, můžeme si vysvětlit i pojem

„síťová architektura“. Představuje ucelenou představou o tom, kolik by mělo

existovat vrstev a co by mělo být jejich úkolem. Kromě toho je součástí síťové

architektury i konkrétní představa o tom, jak by jednotlivé vrstvy měly své

úkoly plnit tedy představa o konkrétních protokolech, patřících do jednotlivých

vrstev.

Již avizovaným příkladem síťové architektury je rodina protokolů TCP/IP,

vytvořená pro potřeby internetu, dnes jednoznačně nejrozšířenější a

nejpoužívanější. Rozhodně ale není síťovou architekturou jedinou.

Síťové architektury se objevily již v době vzniku prvních počítačových sítí,

ale zpočátku jako tzv. proprietární (tj. jako vlastní řešení jedné konkrétní

firmy). Takto vznikly například architektury SNA (Systems Network Architecture

firmy IBM) či DECNET od společnosti Digital Equipment Corporation). Záhy se ale

objevila potřeba vytvořit něco nikoliv proprietárního, čemu by „nevelela“ jen

jedna firma, ale co by bylo naopak dostatečně otevřené.



Geneze referenčního modelu ISO/OSI



Úkolu vypracovat otevřenou síťovou architekturu se nakonec chopila organizace

ISO (International Organization for Standardization). Ta pochází spíše ze světa

spojů, je mezinárodní organizací pro normalizaci s formálním mandátem od

jednotlivých členských zemí, jejími členy jsou národní normalizační instituce.

Za ČR je členem ČSNI (Český normalizační institut).

Organizace ISO však původně chtěla vytvořit mnohem více než jen síťovou

architekturu ve výše uvedeném smyslu. Předsevzala si, že formuluje obecnou a

ucelenou představu toho, jak mají vypadat tzv. otevřené systémy. Přesněji:

architekturu otevřených systémů (Open Systems Architecture), zahrnující kromě

sítí i samotné uzly a jejich fungování „uvnitř“.

To se ale záhy ukázalo jako příliš velké sousto, a tak ISO svůj záměr

zredukovala odebrala „vnitřní fungování“ jednotlivých uzlů a rozhodla se

soustředit jen na jejich vnější projevy při vzájemném propojení. Výsledkem byla

i změna názvu toho, co mělo vzniknout. Nyní už šlo o „pouhé“ Open Systems

Interconnection Architecture (aneb architektura propojování otevřených systémů).

Bohužel i to se nakonec ukázalo jako příliš velké sousto, a tak ISO musela

slevit ještě jednou. Připravila sice představu o počtu vrstev a jejich úkolech,

ale již nestihla včas vymyslet jednotlivé protokoly, které by jednotlivé vrstvy

používaly. Proto nakonec zredukovala zadání na vytvoření pouhého „referenčního

modelu“ (jakéhosi všeobecného rámce) a z předchozího názvu (Open Systems

Interconnection Architecture, OSIA) muselo zmizet slovo „Architecture“. Tak

vznikl konečný název Open Systems Interconnection, OSI.

Výsledkem práce organizace ISO tedy byl referenční model ISO/OSI. Ten měl být

„oficiálním“ řešením, které by jednotlivé členské státy následně zavedly do

praxe. Některé se o to skutečně i snažily ale neuspěly. Narazily totiž na to,

že na trhu nebyly prakticky žádné produkty, které by z referenčního modelu

ISO/OSI vycházely.

Důvod byl dosti příznačný. Celá koncepce RM ISO/OSI vznikala u zeleného stolu,

bez kontaktu s realitou a bez respektování toho, co a jak se dá prakticky

implementovat a co se také implementovat vyplatí a je pro praxi potřebné.

Zjednodušeně by se dalo říci, že referenční model ISO/OSI vznikal následujícím

postupem: jeho autoři postupně „přihazovali“ další a další vlastnosti a funkce,

které by celé řešení podle jejich názoru mělo obsahovat. Když už je nic dalšího

nenapadalo, vše sečetli a udělali z toho závazný standard. Teprve následně (a

často to byli jiní lidé) se začali zamýšlet nad tím, zda a jak by šlo vše

realizovat. A tu se obvykle zjistilo, že standardem požadované řešení je příliš

bohaté, příliš „velké“ a prakticky nerealizovatelné. Musely se hledat prakticky

implementovatelné podmnožiny… než se ale našly a prosadily do praxe, ujala se

vlády nad počítačovými sítěmi jiná architektura: rodina protokolů TCP/IP. Na tu

se podrobněji podíváme v příštím dílu tohoto seriálu.



Současnost ISO/OSI



Ačkoli referenční model ISO/OSI v souboji s protokoly TCP/IP prohrál (i v

souvislosti s úspěchem TCP/IP v rámci internetu), přesto není správné se na něj

dívat jako na něco zcela odepsaného, o čem ani nemá smysl se zmiňovat. To

určitě ne. Některé z protokolů, které byly vyvinuty pro ISO/OSI a (dodatečně)

dosazeny do jeho referenčního modelu, se skutečně používaly nebo se staly

alespoň základem pro jiné úspěšné protokoly. Za všechny lze zmínit například

protokol X.400, který sloužil potřebám elektronické pošty a byly na něm

založeny i některé reálně fungující poštovní systémy. Protokol X.500 zase

prošel odtučňovací kůrou a stal se základem pro protokol LDAP (Lightweight

Directory Access Protocol) z rodiny protokolů TCP/IP.

Kromě toho referenční model ISO/OSI a to hlavně jeho vrstvový model je dodnes

základem pro většinu učebních textů, jež seznamují zájemce se základními

principy světa počítačových sítí. Proto s ním začneme i my.

Sedm vrstev ISO/OSI

Referenční model ISO/OSI předpokládá existenci sedmi vrstev, jak ostatně

naznačuje i obrázek. Tři nejnižší vrstvy se primárně zabývají přenosem dat a

přenášená data nijak nezpracovávají ani neinterpretují. Naopak tři nejvyšší

vrstvy již přenášená data nějakým způsobem zpracovávají či alespoň

interpretují, snaží se tedy vycházet vstříc potřebám jednotlivých aplikací.

Mezi těmito dvěma trojicemi pak existuje ještě jedna vrstva, která má fungovat

jako jakési přizpůsobení, resp. přizpůsobovací vrstva.

Jen pro srovnání rodina protokolů TCP/IP má pouze čtyři vrstvy a také si s nimi

bohatě vystačí.



Fyzická vrstva



Úkolem fyzické vrstvy, jak už její název napovídá, je „fyzický“ přenos

jednotlivých bitů. Jak jsme si již uvedli výše, jde vlastně o jedinou vrstvu,

která skutečně přenáší nějaká data. Přenáší je po bitech a bezprostředně vyšší

vrstvě (vrstvě linkové) tedy nabízí dvě služby: odeslání bitu a příjem bitu.

Aby tak mohla činit, musí se fyzická vrstva zabývat tím, jak jsou jednotlivé

bity na přenášeném médiu znázorněny zda a jak jsou kódovány či modulovány, jak

je vyřešeno časování a synchronizace, případně jaké jsou používány konektory a

jednotlivá rozhraní, jaké jsou jejich řídící signály atd. Podle toho se pak

rozlišuje např. synchronní a asynchronní přenos, přenos modulovaný a

nemodulovaný (resp. v základním pásmu), případně přenos sériový a paralelní

atd. Bere se v úvahu také přenosová rychlost (v bitech za sekundu, resp. v

násobcích), modulační rychlost (v Baudech), volí se různé způsoby modulace atd.

Fyzická vrstva naopak nijak neinterpretuje bity, které přenáší, s každým

nakládá stejně jako s ostatními. Nepozná ani to, že některé bity „patří k sobě“

a představují nějaký ucelenější blok dat například linkový rámec.



Linková vrstva



Sestavovat jednotlivé bity do větších celků tzv. linkových rámců (anglicky

frames) má za úkol až vrstva linková. Ta tedy sama využívá služeb fyzické

vrstvy (typu „přijmi bit, odešli bit“) a sama musí zajistit korektní rozpoznání

začátku i konce každého jednotlivého rámce.

Důležité také je, že linková vrstva přenáší linkové rámce jen ke svým přímým

sousedům. Tedy k uzlům, s nimiž má přímé spojení (a nikoli takové, které vede

zprostředkovaně přes jiný uzel). Lze si to představit i tak, že na úrovni

linkové vrstvy každý uzel „vidí“ jen své přímé sousedy, zatímco existenci

dalších uzlů si nemusí uvědomovat.

Na linkovou vrstvu však mohou být kladeny ještě kromě samotného přenosu

linkových rámců další požadavky. Například tzv. řízení toku, které má

zabraňovat tomu, aby odesilatel zahlcoval příjemce tedy aby mu posílal data

rychleji, než je příjemce schopen je zpracovávat.

Po linkové vrstvě může být také požadováno, aby zajišťovala spolehlivý přenos

tedy aby kontrolovala, zda při přenosu nedošlo k nějaké chybě. Pokud snad ano,

pak je povinna se postarat o nápravu (typicky tak, že si nechá poslat poškozená

či ztracená data znovu). V opačném případě, pokud tedy není spolehlivost

požadována, se takový přenos označuje jako nespolehlivý.



Podvrstvy linkové vrstvy



Linková vrstva referenčního modelu ISO/OSI původně počítala spíše s rozlehlými

sítěmi (sítěmi WAN), které propojují své uzly pomocí vyhrazených dvoubodových

spojů jako na obrázku. Velmi brzy se ale na scéně objevily také lokální sítě

(LAN), které mají sdílenou topologii, protože používají sdílené přenosové

médium. Tedy takové, k němuž je připojeno více uzlů najednou a všechny tyto

uzly mohou také současně přijímat. Ovšem vysílat by měl vždy nejvýše jeden

uzel, protože jinak dochází k tzv. kolizi a „promíchání“ signálů od více

vysílajících uzlů.

V takových lokálních sítích proto musí být použita nějaká metoda řízení

přístupu jednotlivých uzlů ke sdílenému médiu. Ta ale musí být implementována

nad fyzickou vrstvou, protože sama ke svému fungování využívá vysílání a příjem

jednotlivých bitů. Stejně tak ale musí být přístupová metoda implementována

ještě pod linkovou vrstvou, protože když tato vrstva přenáší celé rámce, měla

by již mít zajištěn výlučný přístup ke sdílenému médiu pro potřeby vysílání.

Autoři ISO/OSI tento protichůdný požadavek vyřešili šalamounsky. V zásadě mezi

původní fyzickou a linkovou vrstvu vsunuli jednu další vrstvu. Aby tím ale

nezvyšovali již tak vysoký počet vrstev, označili to jako rozdělení vrstvy

linkové na dvě podvrstvy:

l(vyšší) podvrstvu řízení linkového spoje (podvrstvu LLC, z anglického Logical

Link Control), která dělá v zásadě vše, co původní linková vrstva,

l(nižší) podvrstvu řízení přístupu ke sdílenému médiu (podvrstvu MAC, z

anglického Media Access Control), jež implementuje přístupovou metodu.



Síťová vrstva



Zatímco linková vrstva přenáší linkové rámce pouze ke svým sousedům, v praxi

bývá nutné přenést nějaká data ještě dále přes mezilehlé uzly, do dalších sítí.

To už ale má za úkol vrstva síťová. Blokům dat, které přenáší, se říká pakety

(anglicky packets). Síťová vrstva je přenáší přes různé mezilehlé uzly tak

dlouho, dokud je nedoručí jejich konečnému příjemci. Aby se tak stalo, musí být

síťová vrstva schopna provádět tzv. směrování, neboli hledat cesty skrze sítě,

vedoucí až ke kýženému cílovému uzlu.

Metod, jak hledat nejvhodnější cestu k cílovému uzlu, existuje celá řada a

jejich podrobnější popis vydá na jeden z příštích dílů tohoto seriálu. Zde si

jen naznačme, že existují různě inteligentní (promyšlené) algoritmy směrování.

Mezi ty „méně promyšlené“ patří například metoda tzv. záplavového směrování,

kdy každý mezilehlý uzel předá každý paket dál ve všech směrech, jež vedou z

daného uzlu (kromě příchozího směru). Tím sice vznikají duplicitní pakety,

které je třeba následně eliminovat, ale je zaručené, že se „záplava“ dříve či

později dostane ke svému cíli.

Promyšlenější algoritmy směrování hledají cestu k cílovému uzlu jinak, na

základě znalosti celé soustavy vzájemně propojených sítí. Na úrovni síťové

vrstvy by si proto jednotlivé (mezilehlé) uzly měly plně uvědomovat celou

topologii soustavy sítí a nikoli jen bezprostřední sousedy.



Transportní vrstva



O transportní vrstvě již víme, že je jakousi přizpůsobovací vrstvou mezi

trojicí nejspodnějších vrstev, orientovaných na přenos dat, a trojicí

nejvyšších vrstev, orientovaných na podporu aplikací. Je také první vrstvou,

která je přítomna až v koncových uzlech a naopak není přítomna v uzlech

mezilehlých, propojujících jednotlivé sítě (v tzv. směrovačích). Na rozdíl od

nižších vrstev tedy nezajišťuje komunikaci mezi přímými sousedy, ale až

komunikaci mezi dvěma koncovými uzly (tzv. end-to-end komunikaci).

Funguje-li transportní vrstva jako přizpůsobovací vrstva, pak přizpůsobuje

možnosti a způsob fungování trojice nižších vrstev tomu, co požadují tři

nejvyšší vrstvy. Rozdíl mezi možnostmi a požadavky může být například v tom, že

nejnižší tři vrstvy fungují nespolehlivě (nepovažují za svou povinnost postarat

se o nápravu případných chyb při přenosu), zatímco vyšší vrstvy požadují

spolehlivý přenos. Nižší vrstvy také fungují tzv. nespojovaně (nenavazují

spojení na začátku přenosu), zatímco vyšší vrstvy naopak chtějí fungovat

spojovaně.

V prostředí sítí na bázi protokolů TCP/IP je tomu přesně tak: síťová vrstva (a

na ní protokol IP) funguje nespolehlivě a nespojovaně. Na úrovni transportní

vrstvy pak existují dva vzájemně alternativní protokoly, TCP a UDP. UDP nemění

způsob fungování protokolu IP (také funguje nespojovaně a nespolehlivě), ale

protokol TCP funguje spojovaně a spolehlivě. Vyšší vrstvy si pak mohou vybrat,

kterou vrstvu budou používat.

Transportní vrstva má však ještě jeden důležitý úkol, rozlišování různých

příjemců a odesilatelů v rámci každého uzlu. Ještě síťová vrstva se totiž

dívala na každý uzel jako na dále nedělitelný celek a nerozlišovala například

mezi tím, že v rámci jednoho uzlu mohou přijímaná data „patřit“ například WWW

serveru, poštovnímu serveru nebo naopak WWW browseru, poštovnímu klientovi či

nějaké jiné aplikaci.

Takové rozlišení různých odesilatelů a příjemců v rámci uzlu zajišťuje až

transportní vrstva. Využívá k tomu přechodové body mezi sebou a bezprostředně

vyšší vrstvou, které se v terminologii referenčního modelu ISO/OSI označují

jako „body SAP“ (Service Access Point) a v terminologii TCP/IP jako tzv. porty.

Jednotlivé pakety pak specifikují své odesilatele a příjemce tím, že obsahují

číselné identifikátory příslušných přechodových bodů. Přes ně je pak příslušný

příjemce převezme, resp. odevzdá.



Relační vrstva



O relační vrstvě referenčního modelu ISO/OSI se říká, že vlastně nemá nic na

práci a je tedy ve své podstatě zbytečná. Původně tomu ale tak nemělo být,

relační vrstva měla zajišťovat řadu činností, spojených s „vedením relace“ mezi

dvěma komunikujícími stranami. Například měla zajišťovat podporu transakcí nebo

zabezpečení přenášených dat (jejich šifrování), případně i řízení toku a

poloduplexnosti (aby například klient nezahltil server příliš mnoha požadavky).

Nakonec se ale ukázalo, že takové funkce buď nejsou vůbec zapotřební, nebo sice

zapotřebí jsou, ale stejně si je vyšší vrstvy (hlavně vrstva aplikační) zajistí

podle svého.



Prezentační vrstva



Prezentační vrstva má již větší opodstatnění. Řeší totiž problém s tím, že

stejný řetězec bitů může mít jiný význam pro odesilatele a jiný pro příjemce.

Důvodem může být jiné kódování znaků pokud si dvě strany posílají nějaký text,

ale každá používá jiné kódování znaků, pak příjemce nebude přijatému textu

vůbec rozumět. Podobně pro znázornění celých čísel, čísel s plovoucí desetinnou

čárkou (a obecně pro všechny datové struktury), případně pro pouhé uložení

vícebitových dat v paměti. I zde existují dvě různé konvence (označované jako

Little Endian a Big Endian), mezi nimiž je třeba řádně rozlišovat.

Pokud se bezprostředně nižší vrstvy snaží stůj co stůj přenést všechny bity

tak, jak jsou, aniž by se na nich cokoli změnilo, pak to může být špatně a

příjemce může přijatým datům rozumět jinak než jim rozuměl odesilatel. Proto

jsou zapotřebí vhodné konverze přenášených dat a právě tyto konverze má na

starosti prezentační vrstva.



Aplikační vrstva



Poslání aplikační vrstvy by na první pohled mohlo být jasné a přímočaré: v této

vrstvě jsou provozovány jednotlivé aplikace. Není to ale pravda, a to z dosti

kuriózního důvodu: pokud by se v aplikační vrstvě nacházely skutečně celé

aplikace se vším všudy, pak by to znamenalo, že by jejich fungování muselo být

standardizováno a tudíž i sjednoceno. V praxi by všechna okénka musela být

stejná (standardizovaná), stejné (standardizované) by musely být i způsoby

ovládání aplikací atd. To samozřejmě nemá smysl, protože by to bránilo autorům

aplikací v rozvoji a v unikátnosti jejich produktů.

V aplikační vrstvě proto nejsou celé aplikace, ale jen jejich části takové,

které má smysl standardizovat a tím podřídit společným konvencím, aby si

rozuměly s jinými implementacemi téže aplikace. Jsou to obvykle „základy“

aplikací, jako například mechanismy přenosu zpráv elektronické pošty. Naopak

uživatelské rozhraní, sloužící k psaní zpráv, k jejich čtení, třídění, tisku,

odpovídání atd. zajišťuje část aplikace, která již je „nad“ aplikační vrstvou a

tudíž již nemusí být standardizována.