VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:22/92
RoΦnφk:1992
Rubrika/kategorie: Co je Φφm ... v poΦφtaΦov²ch sφtφch
Dφl:33

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ dφl | nßsledujφcφ dφl

Ji°φ Peterka: Co je Φφm ... v poΦφtaΦov²ch sφtφch (33):

Sφ¥ovß vrstva - II

Otßzka volby mezi spojovan²mi a nespojovan²mi slu₧bami (connection-oriented vs. connectionless slu₧bami, viz 27. dφl naÜeho serißlu) je snad nejkontroverzn∞jÜφ prßv∞ na ·rovnφ sφ¥ovΘ vrstvy. Kdy₧ vznikal referenΦnφ model ISO/OSI, mezi jeho tv∙rci m∞li znaΦnou p°evahu zastßnci spojovan²ch slu₧eb. Proto takΘ referenΦnφ model p∙vodn∞ poΦφtal jen s tφmto druhem sφ¥ov²ch slu₧eb. Zastßnci druhΘ alternativy vÜak alespo≥ dodateΦn∞ prosadili do referenΦnφho modelu i slu₧by spojovanΘ. V Φem je ale skuteΦnΘ jßdro sporu mezi ob∞ma tendencemi?

P°ipome≥me si nejprve, ₧e spojovanß slu₧ba funguje obdobn∞ jako ve°ejnß telefonnφ sφ¥ - p°edpoklßdß nejprve navßzßnφ spojenφ mezi ob∞ma ·Φastnφky, pak vlastnφ p°enos dat prost°ednictvφm tohoto spojenφ, kterΘ se v jistΘm smyslu chovß jako roura, kterou se vlastnφ data "protlaΦujφ", a nakonec vy₧aduje ukonΦenφ (rozvßzßnφ) spojenφ. Naopak nespojovanß slu₧ba funguje obdobn∞ jako b∞₧nß listovnφ poÜta - ka₧d² jednotliv² paket (resp. datagram) doruΦuje samostatn∞ a nezßvisle na ostatnφch, bez toho, ₧e by se navazovalo spojenφ mezi p°φjemcem a odesilatelem. DalÜφ analogiφ s listovnφ poÜtou je rozdφl mezi spolehlivou a nespolehlivou nespojovanou slu₧bou - spolehlivß varianta je obdobou doporuΦenΘ zßsilky, kterß se nem∙₧e (alespo≥ teoreticky) ztratit, zatφmco nespolehlivß verze je obdobou obyΦejnΘ zßsilky, u kterΘ poÜta negarantuje jejφ doruΦenφ, a kterß se m∙₧e beze stopy ztratit.

Zastßnci spojovan²ch slu₧eb, rekrutujφcφ se p°edevÜφm z kruh∙ spojov²ch organizacφ, zastßvajφ nßzor, ₧e u₧ivatelΘ resp. vyÜÜφ vrstvy pot°ebujφ maximßln∞ spolehlivou a jednoduÜe pou₧itelnou slu₧bu pro p°enos dat, kterß by je zbavila vÜech starostφ se zabezpeΦenφm vlastnφho p°enosu dat (nap°. s pot°ebn²m °φzenφm toku, opravou chyb, zajiÜt∞nφm sprßvnΘho po°adφ jednotliv²ch doruΦovan²ch paket∙ atd.). Tedy spolehlivou spojovanou sφ¥ovou slu₧bu pro p°enos paket∙.

Druhß strana, reprezentovanß p°edevÜφm lidmi kolem sφt∞ Internet, argumentuje svou dlouhodobou zkuÜenostφ s provozovßnφm velkΘ poΦφtaΦovΘ sφt∞ v reßln²ch podmφnkßch. Podle nφ je nutnΘ pova₧ovat komunikaΦnφ infrastrukturu (podsφ¥, viz minul² dφl naÜeho serißlu) za nespolehlivou, bez ohledu na to, jak je navr₧ena (tedy i v p°φpad∞, ₧e se sama sna₧φ b²t spolehlivou). KoncovΘ systΘmy (hostitelskΘ poΦφtaΦe, viz minule) musφ poΦφtat s tφm, ₧e pakety se mohou v podsφti ztrßcet, a vÜe pot°ebnΘ k zajiÜt∞nφ spolehlivosti si tudφ₧ musφ realizovat sami - tedy detekci a opravu chyb, °φzenφ toku atd. To ovÜem vede na po₧adavek pou₧φvat na ·rovni sφ¥ovΘ vrstvy jen ty nejrychlejÜφ a nejjednoduÜÜφ slu₧by (na ·rovni operacφ typu "vyÜli paket" a "p°ijmi paket"), a spolehlivost zajistit a₧ v bezprost°edn∞ vyÜÜφ, transportnφ vrstv∞. Tato druhß strana tedy po₧aduje na ·rovni sφ¥ovΘ vrstvy jen jednoduchou nespolehlivou nespojovanou slu₧bu.

Na cel² spor mezi ob∞ma tßbory je mo₧nΘ se dφvat i z pon∞kud jinΘho ·hlu. SpojovΘ organizace jako zastßnci spojovan²ch slu₧eb cht∞jφ poskytovat u₧ivatel∙m co nejkomplexn∞jÜφ a nej·pln∞jÜφ slu₧by - je to asi p°irozenΘ, nebo¥ prßv∞ za n∞ jsou placeny. Druhß strana naopak tvrdφ, ₧e v²poΦetnφ kapacita je dnes tak lacinß, ₧e nenφ nejmenÜφ problΘm, aby si co nejvφce funkcφ zajiÜ¥ovaly a₧ jednotlivΘ hostitelskΘ poΦφtaΦe (obvykle ve vlastnictvφ u₧ivatel∙). DalÜφm siln²m argumentem tΘto skupiny je pak to, ₧e charakter n∞kter²ch sφ¥ov²ch aplikacφ (jako nap°. p°enos digitalizovanΘho zvuku a sb∞r dat v reßlnΘm Φase) up°ednost≥uje rychl² p°enos p°ed p°enosem spolehliv²m.

Rozpor mezi spojovan²mi a nespojovan²mi slu₧bami na ·rovni sφ¥ovΘ vrstvy je tedy ve svΘ podstat∞ sporem o to, kam umφstit veÜkerou slo₧itost - tedy funkce, spojenΘ se zajiÜt∞nφm spolehlivosti, kterΘ tak jako tak musφ b²t n∞kde realizovßny. Zastßnci spojovan²ch slu₧eb je cht∞jφ umφstit do sφ¥ovΘ vrstvy, zatφmco zastßnci nespojovan²ch slu₧eb po₧adujφ jejich umφst∞nφ a₧ do vrstvy transportnφ (zatφmco od vrstvy sφ¥ovΘ po₧adujφ jen nejjednoduÜÜφ nespolehlivou nespojovanou slu₧bu).

CONS i CLNS

Cel² spor byl nakonec vy°eÜen tak, ₧e aktualizovanß verze referenΦnφho modelu ISO/OSI ji₧ poΦφtß na ·rovni sφ¥ovΘ vrstvy s mo₧nostφ poskytovßnφ obou druh∙ slu₧eb - spojovan²ch sφ¥ov²ch slu₧eb (CONS - Connection-Oriented Network Services) i nespojovan²ch sφ¥ov²ch slu₧eb (CLNS, ConnectionLess Network Services).

Slu₧by vs. jejich realizace

Druh slu₧eb, kterΘ sφ¥ovß vrstva poskytuje svΘ bezprost°edn∞ vyÜÜφ (tj. transportnφ) vrstv∞, nesmφme mechanicky ztoto₧≥ovat s tφm, jak sφ¥ovß vrstva skuteΦn∞ funguje "uvnit°". Zßkladnφ mo₧nosti jsme si naznaΦili ji₧ v 17. dφlu naÜeho serißlu, kdy jsme si povφdali o ve°ejn²ch datov²ch sφtφch. Pomineme-li mo₧nost tzv. p°epojovßnφ okruh∙, kterß vytvß°φ p°φmΘ fyzickΘ spojenφ mezi ob∞ma koncov²mi ·Φastnφky, jde o dv∞ zßkladnφ varianty: prvnφ z nich jsou tzv. virtußlnφ okruhy (tΘ₧: virtußlnφ spoje, virtual calls, virtual circuits) jako mechanismus spojovanΘho charakteru, kter² p°ed vlastnφm p°enosem datov²ch paket∙ p°edpoklßdß "vytyΦenφ" logickΘ cesty (virtußlnφho okruhu) mezi ob∞ma koncov²mi ·Φastnφky.

Druhou alternativou je pak p°enos datagram∙, kter² mß nespojovan² charakter, ka₧d² jednotliv² paket (nynφ naz²van² datagram) doruΦuje samostatn∞, nezßvisle na ostatnφch paketech, a nep°edpoklßdß ₧ßdnΘ vytyΦenφ cesty od odesilatele k jejich p°φjemci.

Je jist∞ z°ejmΘ, ₧e spojovanΘ sφ¥ovΘ slu₧by (CONS) se obvykle realizujφ prost°ednictvφm komunikaΦnφ podsφt∞, kterß pou₧φvß mechanismus virtußlnφch okruh∙, zatφmco nespojovanΘ sφ¥ovΘ slu₧by (CLNS) se realizujφ prost°ednictvφm podsφt∞, kterΘ pracuje na bßzi p°enosu jednotliv²ch datagram∙. Nenφ to ale jedinß mo₧nost. SpojovanΘ sφ¥ovΘ slu₧by lze bez v∞tÜφch problΘm∙ poskytovat i pomocφ podsφt∞, kterß pracuje s p°enosem jednotliv²ch datagram∙ (jestli₧e se ka₧d² paket mφsto virtußlnφm okruhem ve skuteΦnosti p°enßÜφ samostatn∞ jako datagram). Teoreticky je mo₧nß i opaΦnß kombinace - nespojovanΘ slu₧by v podsφti, kterß pracuje s virtußlnφmi okruhy. P°φliÜ efektivnφ to ale nenφ - pro p°enos ka₧dΘho jednotlivΘho datagramu je nutnΘ nejprve z°φdit, a pak zase zruÜit pot°ebn² virtußlnφ okruh. Pokud je ale k dispozici jen podsφ¥ s virtußlnφmi okruhy, nic jinΘho nezb²vß.

NaznaΦme si nynφ pon∞kud podrobn∞ji, jak jsou implementovßny a jak fungujφ mechanismy virtußlnφch okruh∙ a p°enosu datagram∙. Pom∙₧e nßm to lΘpe pochopit podstatu sporu mezi zastßnci spojovan²ch a nespojovan²ch slu₧eb.

Virtußlnφ okruhy vs. datagramy

Obrßzek 33.1.
Obr. 33.1.: P°edstava implementace mechanismu virtußlnφch okruh∙
a/ topologie sφt∞
b/ tabulky sφ¥ovΘ vrstvy v jednotliv²ch uzlech
Mechanismus virtußlnφch okruh∙ p°edpoklßdß, ₧e mezi zdrojem dat a jejich koncov²m p°φjemcem je v rßmci navazovßnφ spojenφ nejprve "vytyΦena" logickß cesta (virtußlnφ okruh), po kterΘ jsou pak postupn∞ p°enßÜeny jednotlivΘ pakety.

VytyΦit cestu ve skuteΦnosti znamenß, ₧e se prßv∞ jednou (v rßmci navazovßnφ spojenφ) najde takovß posloupnost mezilehl²ch uzl∙ (resp. uzl∙ IMP, viz minule), kterß vede od zdroje dat a₧ k jejich koncovΘmu p°φjemci, a je v dan² moment pova₧ovßna za optimßlnφ. ┌daje o tΘto cest∞ (virtußlnφm kanßlu) se pak uchovßvajφ v jednotliv²ch meziuzlech jako polo₧ky specißlnφ tabulky - viz obr. 33.1.b/.

JednotlivΘ datovΘ pakety, kterΘ jsou pak skuteΦn∞ p°enßÜeny, nejsou oznaΦeny adresou svΘho koneΦnΘho p°φjemce (kterß m∙₧e b²t relativn∞ dlouhß), ale pouze oznaΦenφm p°φsluÜnΘho virtußlnφho kanßlu. Sφ¥ovß vrstva v ka₧dΘm meziuzlu pak podle tohoto ·daje zjistφ ve svΘ tabulce, kter²m sm∞rem mß paket p°edat dßle, a uΦinφ tak.

Obrßzek 33.2.
Obr. 33.2.: P°edstava implementace mechanismu datagram∙
a/ topologie sφt∞
b/ tabulky sφ¥ovΘ vrstvy v jednotliv²ch uzlech
Naproti tomu p°i p°enosu datagram∙ se p°edpoklßdß, ₧e mezi zdrojem dat a jejich koncov²m p°φjemcem nenφ navazovßno p°φmΘ spojenφ, a jednotlivΘ datovΘ pakety (datagramy) jsou vysφlßny "naslepo", v dobrΘ vφ°e, ₧e jejich p°φjemce v∙bec existuje a bude schopen je p°ijmout. Ka₧d² datagram je p°itom doruΦovßn nezßvisle na ostatnφch (tak jako nap°. b∞₧n² dopis v p°φpad∞ listovnφ poÜty) - to znamenß, ₧e v ka₧dΘm meziuzlu musφ sφ¥ovß vrstva v₧dy znovu rozhodnout, kter²m sm∞rem mß b²t datagram poslßn dßle. V jednotliv²ch meziuzlech si proto sφ¥ovß vrstva nevytvß°φ obdobu tabulky, popisujφcφ virtußlnφ okruhy. Mφsto toho pracuje s tabulkou, ve kterΘ mß alespo≥ zßkladnφ informace o topologii sφt∞ (nap°φklad jako na obrßzku obr. 33.2.), a podle nφ p°ijφmß svß rozhodnutφ o nejvhodn∞jÜφm sm∞ru dalÜφho p°enosu ka₧dΘho jednotlivΘho datagramu.

Hlavnφ v²hodou virtußlnφch okruh∙ je skuteΦnost, ₧e rozhodovßnφ o dalÜφm sm∞ru p°enosu paket∙ se v ka₧dΘm meziuzlu p°ijφmß jen jednou, a nikoli poka₧dΘ znovu, jako je tomu v p°φpad∞ datagram∙. Nev²hodou je naopak statick² charakter tohoto rozhodnutφ (a tφm i zvolenΘ cesty resp. virtußlnφho okruhu), kterΘ nenφ mo₧nΘ dynamicky p°izp∙sobovat okam₧itΘmu stavu sφt∞ - co₧ je naopak mo₧nΘ v p°φpad∞ p°enosu datagram∙.

Virtußlnφ okruhy vykazujφ v∞tÜφ jednorßzovou poΦßteΦnφ re₧ii (na navßzßnφ spojenφ resp. vytvo°enφ logickΘho okruhu), a menÜφ relativnφ re₧ii na p°enos jednotliv²ch paket∙, zatφmco v p°φpad∞ datagram∙ je tomu p°esn∞ naopak. Srovnßnφ dalÜφch aspekt∙ nabφzφ takΘ tabulka 33.3.

Obecn∞ lze °φci, ₧e mechanismus virtußlnφch okruh∙ je v²hodn∞jÜφ v p°φpad∞ p°enosu menÜφch paket∙ (jako je tomu nap°. p°i interaktivnφch aplikacφch), zatφmco varianta s p°enosem datagram∙ je v²hodn∞jÜφ pro menÜφ poΦty relativn∞ v∞tÜφch paket∙, a ve verzi nespolehlivΘ (resp. nepotvrzovanΘ) datagramovΘ slu₧by takΘ tam, kde jde p°edevÜφm o rychlost.
virtußlnφ okruhy datagramy
navazovßnφ a ukonΦovßnφ spojenφ ano ne
adresovßnφ ka₧d² paket obsahuje jen Φφslo virtußlnφho okruhu ka₧d² datagram obsahuje adresu
zdroje i p°φjemce datagramu
sm∞rovßnφ cesta volena jen jednou v rßmci navazovßnφ spojenφ, a vÜechny pakety jsou p°enßÜeny po tΘto jedinΘ cest∞ ka₧d² datagram je sm∞rovßn samostatn∞
detekce a oprava chyb realizovßna v sφ¥ovΘ vrstv∞ realizovßna v transportnφ vrstv∞
sprßvnΘ po°adφ paket∙ zajiÜt∞no nenφ zajiÜt∞no
°φzenφ toku dat mezi koncov²mi ·Φastnφky ano ne
efekt v²padku meziuzlu zanikajφ vÜechny z°φzenΘ virtußlnφ okruhy ztrßcφ se jen prßv∞ p°enßÜenΘ datagramy
slo₧itost soust°ed∞na do sφ¥ovΘ vrstvy transportnφ vrstvy
vhodnΘ pro realizaci spojovan²ch sφ¥ov²ch slu₧eb (CONS) spojovan²ch i nespojovan²ch sφ¥ov²ch slu₧eb (CONS i CLNS)
Tabulka 33.3.: Srovnßnφ virtußlnφch okruh∙ a datagram∙


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ dφl | nßsledujφcφ dφl
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm