Síťová architektura

Systém vrstev, služeb, funkcí a protokolů.
Odpovídá struktuře síťového vybavení.

Referenční model ISO OSI - (Open System Interconnection)


* Otevřená architektura - všechna zařízení vyhovující normám vzájemně 
                          propojitelná. Obsah norem veřejně přístupný.

ISO: standard archtektury propojení otevřených systémů Open System
     Interconnection, IS 7498 (1984), ITU-T převzala jako X.200.

Cílem je poskytnout společnou základnu pro koordinované vypracovávání norem
pro propojení systémů (systém je zde zúžen na síťové vybavení).

* Systém - samostatný celek schopný vykonávat zpracování a přenos informace
* Otevřený systém - reálný systém, jehož síťové vybavení je v souladu s OSI RM

Otevřený systém podle OSI je abstraktním modelem reálného otevřeného systému,
konkrétní implementace není specifikována

Vrstvená architektura
---------------------
- sedmivrstvá architektura, počet vrstev (7) je kompromis dohody.
- norma určuje všeobecně úkoly jednotlivých vrstev, služby poskytované vyšší 
  vrstvě a očekávané od vrstvy nižší (jen věcně, ne formálně). 
  Protokoly zde nezařazeny, specifikovány v samostatných doporučeních.
- cílem dekompozice problému komunikace na menší, snadněji řešitelné celky
- možnost modulární výměny vrstev

Někdy je implementace vrstvy prázdná, pokud není jejich služeb zapotřebí.
Vrstva se často dělí do podvrstev (viz např. linková vrstva LAN: MAC, LLC)

Komunikace mezi otevřenými systémy sestává z komunikace mezi sousedními
vrstvami (vertikálně) a mezi entitamy stejnolehlých vrstev různých otevřených
systémů.

* Podsystém: průnik systému a vrstvy. V rámci podsystému se rozpoznávají entity,
  jako nositelé funkcí a poskytovatelé, příp. uživatelé služeb. 
  Entity jedné vrstvy interagují jen s entitami v sousedních dvou vrstvách.
  Pro vykonávání svých funkcí využívá entita služeb entit v nižší vrstvě.
  Funkce entity je cílená činnost směřující k poskytování své předem 
  specifikované služby

Vrstva je tvořena množinou entit.

Komunikace otevřených systémů:
 > vertikální - mezi jednotlivými vrstvami systému
 > horizontální - mezi entitami ve stejnolehlých vrstvách různých systémů

* vrstvový protokol - pravidla spolupráce entit ve stejné vrstvě na jiných 
                      systémech
* mezivrstvový protokol (rozhraní) - pravidla spolupráce sousedních vrstev,
                     používají služební primitiva, prostřednictvím přístupových
                     bodů služby (Service Access Point, SAP).

Výměna údajů mezi komunikujícími stanicemi v rámci protokolu se děje pomocí 
protokolových datových jednotek (PDU).

Vrstvový protokol používá PDU, mezivrstvový protokol využívá servisní datové
jednotky (SDU).
PDU obsahují protokolovou řídící informaci PCI - Protocol Control Information
(záhlaví) a uživatelská data.
Každá vrstva chápe PDU vyšši vrstvy jako data a přidává k nim svou řídící
informaci [hlavičku] 

Komunikace mezi vrstvami (standardní terminologie)
--------------------------------------------------
Vrstva N+1
------------------------------| IDU |---
                                 |
                     |-----------|      IDU - Interface Data Unit
                     |           |      ICI - Interface Control Information
                     |           |      SDU - Service Data Unit
     | PCI |      | SDU |     | ICI |   PDU - Protocol Data Unit
        \___   _____/                   PCI - Protocol Control Information
            | |
            | |
          | PDU | <---------| ICI |
             |
Vrstva N     |
----------| IDU |------------------------
Vrstva N-1


SDU - uživatelská data transparentně předávaná vrstvou
PCI - řídící informace protokolu mezi partnerskými entitami ve stejnolehlých
      vrstvách komunikujících systémů
PDU - datová jednotka protokolu mezi partnerskými entitamu ve stejnolehlých 
      vrstvách komunikujících systémů. Kombinace PCI (hlavička) a SDU (data)
ICI - parametry předávané při volání služeb podvrstvy
IDU - veškerá informace předávaná prostřednictvím přístupového bodu služby (SAP)
      mezi vrstvami: PCI+SDU+ICI



Primitiva interakce mezi uživatelem a poskytovatelem služby 
-----------------------------------------------------------
(nezávislé na implementaci):
 * žádost [request] - žádost o službu nižší vrstvy
 * potvrzení [confirm] - potvrzení poskytovatele služby o dokončení akcí
                         dříve požadovaných primitivou request.
 * oznámení [indication] - oznámení poskytovatele služby o vzniklé situaci
            vedoucí k potřebě vyvolání určité akce na straně uživatele služby
 * odpověď [response] - reakce uživatele služby potvrzující ukončení akcí
            iniciovaných předtím poskytovatelem služby primitivou indication

  


Služby se spojením (connection-oriented) a bez spojení (connectionless)
-----------------------------------------------------------------------
Každá vrstva může sousední vrstvě poskytovat službu se spojením, bez spojení
nebo obě.

* Režim komunikace se spojením
  - fáze navázání spojení, přenosu dat, ukončení spojení
  - možnost dohodnout se na parametrech a volbách spojení
  - možnost identifikace konkrétního spojení
  - řízení toku při přenosu
  - potvrzování přenosu (a příslušné korekční akce) => zvýšení pravděpodobnosti
                           detekce chyb oproti službě poskytované nižší vrstvou
 Příklad: X.25, Frame Relay, virtuální okruhy/kanály

* Režim komunikace bez spojení
  - pro každou jednotku musí být nižší vrstvě udána adresa příjemce,
    příp. požadovaná kvalita služby a jiné volby. 
    Tyto parametry platí pouze pro přenos dané datové jednotky.

  - datová jednotka se směruje bez závislosti na ostatních. 
  - datová jednotka může být předána více příjemcům současně
  - nemusí dodržovat pořadí datových jednotek a řešit řízení toku dat.
 Příklad: spojová vrstva LAN, protokoly IP, IPX.

Pozn.: Běžně může vyšší vrstva poskytovat službu se spojením a využívat k tomu
       služby bez spojení poskytovanou nižší vrstvou (např. TCP+IP), nebo opačně
       poskytovat službu bez spojením s použitím spojově orientované služby 
       (např. LAN emulace nad spojově orientovanou sítí ATM)

Pozn.: Transportní služba musí poskytovat službu se spojením


Popis vrstev referenčního modelu OSI
====================================

Fyzická vrstva (physical layer)
-------------------------------
 - podporuje fyzickou komunikaci mezi systémy
 - popisuje fyzické, elektrické a logické parametry rozhraní k přenosovému
   kanálu
 - aktivace, udržování a deaktivace fyzických spojení pro přenos bitů nebo 
   značek
 - dvoubodové nebo vícebodové spojení, full nebo half duplex
 - poskytované služby: otevření a uzavření fyzického spojení, řazení bitů nebo
   značek, fyzický přenos bitů v určeném pořadí, oznamování chybových stavů
   linkové vrstvě 

 Příklady: RS232, RS422


Spojová(nesprávně linková) vrstva (link layer)
----------------------------------------------
 - poskytuje jedno nebo více spojení mezi dvěma entitami síťové vrstvy 
   v sousedících systémech.
 - vytváření, udržování a rušení spojení
 - formátování rámců
 - identifikace koncových bodů spojení, 
 - detekce a korekce chyb, oznamování neopravitelných chyb
 - flow control


 U lokálních sítí se pro zjednodušení realizace často rozčleňuje do podvrstev

 Příklady: LLC 802.2, PPP, Frame Relay 


Síťová vrstva (network layer)
-----------------------------

 - zabezpečuje přenos dat mezi obecně nesousedními uzly sítě
 - funkce a protokoly pro přenos po úsecích, směrování, zprostředkování přenosu
   přes mezilehlé systémy, multiplexování síťových spojení na telekomunikační
   okruhy, zřizování a rušení síťových spojení, korekce chyb, seřazování paketů
   [např. použitím virtuálních spojů], formátování zpráv - vytváření paketů
 - jedoznačná adresace v rámci celé intersítě
 - poskytuje transportní vrstvě nezávislost na směrování

 - služby: transparentní přenos dat mezi transportními entitami, zahajování
   a ukončování síťových spojení 

  Síťová služba se spojením - spolehlivá
  Síťová služba beze spojení [nespolehlivá, datagramová služba]

Cílem síťové vrstvy je překlenout rozdílné vlastností různých síťových 
technologií [spojově i nespojově orientovaných] a dosáhnout univerzální 
rozhraní služby.

Příklad: IP, IPX - bez spojení, X.25 - se spojením

Transportní vrstva (transport layer)
------------------------------------

- transparentní, spolehlivý a ekonomický přenos s požadovanou kvalitou. 
- adresace transportních entit v rámci zařízení s jednou síťovou adresou
- služby poskytované vyšším vrstvám nezávisí na implementaci sítě. 
- postavena mezi síťovou infrastrukturu a její uživatele.
- nejnižší vrstva, jejíž entity se nacházejí pouze v koncových systémech.
- mezi dvěma systémy může být několik transportních spojení současně, 
- nestará se o směrování a přepojování 

Pozn.: Transportní protokoly [a protokoly vyšších vrstev] se týkají 
       jen komunikace koncových systémů.

funkce:
 > vytváření, udržování a ukončování transportních spojení [spojově orientovaná
   služba] nebo přenos bloků [nespojově orientovaná služba]

 > adresování - mapovaní transportních adres na síťové
 > multiplexování a demuliplexování transportních spojení
 > koncová korekce chyb
 > koncové řízení toku,
 > fragmentace a defragmentace zpráv, shlukování krátkých zpráv do delších celků
 > dohled nad spojením [např. keepalives]
 > urgentní přenos

Každé relační entitě přiřazuje transportní adresu, transportní spojení poskytuje
duplexní přenos mezi dvojicí transportních adres.

Kvalita služeb poskytovaných relační vrstvě závisí na požadované třídě služeb 
zadané při vytváření transportního spojení a popsané souborem parametrů 
[např. maximální zpoždění, zbytková chybovost, propustnost] 
- dodržováno po celou dobu trvání transportního spojení.


Způsoby mapování spojení vrstev vyšších do spojení vrstev nižších
-----------------------------------------------------------------
> 1:1
> multiplexování - několik spojení vyšší vrstvy do jednoho spojení
                   v nižší vrstvě
   - efektivnější využití kanálu nebo práce více spojení, je-li k dispozici 
     jen jeden kanál
   Implementované funkce:
    * identifikace datových jednotek jednotlivých toků,
    * nezávislé řízení toku dat na jednotlivých tocích
    * přidávání/rušení spojení vyšší vrstvy z multiplexu

> rozvětvení - jedno spojení vyšší vrstvy do několika spojení nižší vrstvy
   - zajištění spolehlivosti zvýšením počtu spojení
   - využití více spojení s nižším výkonem, než je požadovaný, je-li
     to ekonomičtější
   - nutnost naplánování způsobu rozvětvení, zpětné obnovení pořadí
     datových jednotek z více spojení na straně přijímače
   - fáze zřizování/rušení dalšího spojení a fáze transportu dat
  Implementované funkce: 
   * dynamické alokování/dealokování spojení, volba odpovídajících spojení
     podle požadavků na kvalitu služby od vyšší vrstvy
   * určení optimální délky transportních jednotek
  
  
   


Pozn. Adresování: přiřazení síťové adresy transportní adrese transportní entity.

      Jedna transportní entita může obsluhovat více než jednu relační entitu. 
Několika transportním entitám sdružených do jedné transportní entity může být
přiřazena jedna síťová adresa. Mapování adres se děje v transportních entitách.


Příklad: většina architektur nabízí alespoň dva základní transportní protokoly,
         pro spojově orientovanou a nespojovanou službu, např TCP/UDP, SPX/IPX.

Relační vrstva (session layer)
------------------------------

 - zabezpečuje výměnu dat mezi aplikacemi
 - organizace a synchronizace dialogu mezi partnerskými presentačními entitami
 - služby:  > vytvoření a uzavření relačního spojení
            > normální a urgentní přenos zprávy
            > pozdržený přenos zpráv - zpráva již přenesená spojením se skutečně
              doručí adresátovi až na pokyn odesílatele
            > řízení dialogu [interakce] - jednosměrné, obousměrné střídavé
                                          a obousměrné současné
            > synchronizace relačního spojení [transakce] - definování
              synchronizačních bodů, obnovení relačního spojení do stavu
              definovaného některým synchronizačním bodem,
            > oznamování neopravitelných stavů vyšší vrstvě

 - funkce: 
 > mapování relačního spojení na transportní spojení - např. namapování jedné
                           relace na více transportních spojení, popř. opačně,
                           nebo vytváření a rušení transportního spojení 
                           dynamicky během jedné relace, příp. více následných i
                           relací přes jedno transportní spojení
 > řízení toku dat v rámci relace

Příklady:
  RPC
 Sdílení disku: transportní spojení se naváže vždy jen na dobu komunikace, 
 relační spojení po celou dobu "připojení" vzdáleného disku do lokálního
 souborovoého systému


Prezentační vrstva (presentation layer)
---------------------------------------

 - cílem poskytnout reprezentaci informace, které entity v aplikační vrstvě
   používají při komunikaci [reprezentace dat] nebo se na ni odkazují 
   [datové struktury].
 - smyslem je jednotný způsob reprezentace přenášených zpráv pro aplikace

Syntaxe používané vysílající aplikační entitou, přijímající aplikační entitou
a přenosová syntaxe mohou být obecně různé. Proto presentační vrstva
  - realizuje transformaci syntaxe = převod kódů a abeced, adaptace datových
            struktur a formátů
  - poskytuje mechanismy pro dohodu o syntaxi a mechanismy její pozdější změny

funkce: žádost o vytvoření a zrušení relace, přenos zpráv, dohoda o syntaxi,
transformace syntaxe a dat.

Pozn.: Presentační vrstva se zabývá pouze strukturou zpráv, sémantika zpráv je
       známa pouze aplikaní vrstvě.

Příklad: normy pro kódování textu ASCII/EBDIC, grafických dat (TIFF,JPEG,...),
         binární reprezentace jednotlivých datových typů (XDR, CDR/GIOP),
	 řazení bitů ve slově (pozice LSB), řazení bajtů čísel, ...
         Šifrování.
Příklad: ASN.1 - Abstract Syntax Notation:
       - formální jazyk pro popis dat a jejich vlastností
       - sám o sobě nedefinuje formáty uložení a kódování dat, k tomu užívá
         Basic Encoding Rules (BER)
       - Použití např. v SNMP (Simple Network Management Protocol, správa sítě)

Aplikační vrstva (application layer)
------------------------------------

- cílem poskytnout aplikacím přístup ke komunikačnímu systému.
Služby:
 > přenos zpráv
 > identifikace komunikujících partnerů - jmény, adresami, podpisem
   (+ ověření přípustnosti těchto parametrů)
 > zjištění stupně okamžité připravenosti partnera ke komunikaci
 > dohoda o mechanismech zabezpečení zpráv
 > určení přijatelné kvality služby
 > synchronizace aplikací
 > výběr režimu dialogu, způsobu jeho zahájení a ukončení
 > dohoda o odpovědnosti za korekce chyb a zachování konzistence dat
 > dohoda o syntaxi zpráv

Aplikační vrstva předepisuje v jakém formátu a jak mají být data přebírána/předávána od aplikačních programů (vč. způsobu dialogu mezi konci spojení).

Pozn.: Funkce aplikační vrstvy (jako jediné z vrstev) mohou provádět i lidé,
       nikoli jen programy a technické prostředky .

Přiklady: síťové aplikace - elektronická pošta-SMTP, přenos souborů-FTP,
                            libovolný aplikační sw využívající sítě



Funkce společné více vrstvám
============================
Některé funkce se opakují ve více vrstvách a vzájemně se doplňují svým rozsahem
(např. zabezpečení přenosu mezi mezilehlými uzly vs. zabezpečení přenosu
 konec-konec). 

Obvyklé služby duplikované ve více vrstvách
-------------------------------------------

  Zapouzdření  - nutné k funkci vrstvových a mezivrstvových protokolů
               - redundance dat, 

> řízení toku dat
> detekce a korekce chyb
> fragmentace/defragmentace (=segmentace/reassembling)
  Zprávy se dělí na fragmenty, v transportní vrstvě z nich bloky, v síťové
  vrstvě z nich pakety, v linkové vrstvě z nich rámce.

  Problém neslučitelnosti datových jednotek v jednotlivých vrstvách co do délek
  Datová jednotka vyšší vrstvy proto musí být fragmentována (segmentována) do
  více protokolových jednotek nižší vrstvy, do jejichž hlavičky musí být
  uveden údaj pro opětovné seskládání fragmentů (reassembling)

  Výhody fragmentace na kratší jednotky:
   lepší (příp. jednodušší) error-control, menší buffery na přijímači
  nevýhody: větší režie (větší poměr servisní informace), více času 
            spotřebovaného na větší počet jednotek

  Možný i opačný případ: seskupení několika SDU do jednoho PDU

Standardizační instituce působící v počítačových sítích