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

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 (36)

RelaΦnφ vrstva

Jak jsme si ji₧ naznaΦili d°φve, Φty°i nejni₧Üφ vrstvy referenΦnφho modelu ISO/OSI jsou zam∞°eny p°edevÜφm na vlastnφ p°enos dat mezi jednotliv²mi uzlov²mi poΦφtaΦi. Ka₧dß z nich p°itom poskytuje "o n∞co vφce" ne₧ vrstva bezprost°edn∞ ni₧Üφ - Φtvrtß (tj. transportnφ) vrstva pak nabφzφ prost°edky pro takovou komunikaci dvou koncov²ch poΦφtaΦ∙ resp. ·Φastnφk∙, kterß je nezßvislß na konkrΘtnφ komunikaΦnφ podsφti, na jejφ topologii i na dalÜφch specifikßch. VyÜÜφ vrstvy referenΦnφho modelu ISO/OSI jsou pak ji₧ orientovßny spφÜe na pot°eby sφ¥ov²ch aplikacφ. Samy vyu₧φvajφ p°enosovΘ slu₧by transportnφ vrstvy, a p°idßvajφ k nim takovΘ funkce a schopnosti, kterΘ by m∞ly b²t u₧iteΦnΘ pro v∞tÜinu aplikacφ. Takov² je tedy smysl existence pßtΘ (relaΦnφ), ÜestΘ (prezentaΦnφ), a vlastn∞ i sedmΘ (aplikaΦnφ) vrstvy ISO/OSI modelu.

ReferenΦnφ model ISO/OSI tedy vychßzφ z p°edstavy, ₧e jednotlivΘ aplikace by m∞ly mφt k dispozici a m∞ly by vyu₧φvat jeÜt∞ dokonalejÜφ a obecn∞jÜφ slu₧by, ne₧ jakΘ nabφzφ transportnφ vrstva. Jejich realizaci pak referenΦnφ model sv∞°uje relaΦnφ (session) a prezentaΦnφ (presentation) vrstv∞. MlΦky tφm ovÜem p°edpoklßdß, ₧e je budou vyu₧φvat vÜechny aplikace, nebo alespo≥ v∞tÜina z nich - jen pak toti₧ mß rozumn² smysl realizovat je pro vÜechny aplikace spoleΦn∞. Existuje ale velkΘ mno₧stvφ aplikacφ, kterΘ tento p°edpoklad nespl≥ujφ, a kterΘ pln∞ vystaΦφ s takov²mi slu₧bami, jakΘ nabφzφ ji₧ transportnφ vrstva. V tomto ohledu nenφ jist∞ bez zajφmavosti, ₧e "konkurenΦnφ" soustava protokol∙ TCP/IP vychßzφ z p°esn∞ opaΦnΘ ·vahy ne₧ referenΦnφ model ISO/OSI - sv²m aplikacφm nabφzφ pouze p°enosovΘ slu₧by na ·rovni transportnφ vrstvy. Pot°ebuje-li n∞kterß aplikace resp. slu₧ba aplikaΦnφ vrstvy slu₧by obecn∞jÜφho charakteru, musφ si je realizovat sama vlastnφmi silami. To je takΘ d∙vod, proΦ soustava protokol∙ TCP/IP, na kterΘ je vybudovßna nap°. sφ¥ ARPANET resp. dneÜnφ Internet, s existencφ relaΦnφ a prezentaΦnφ vrstvy v∙bec nepoΦφtß.

RelaΦnφ vrstvu s takov²mi funkcemi, jakΘ jφ p°isuzuje referenΦnφ model ISO/OSI, nem∞la v dob∞ jeho zavedenφ ₧ßdnß sφ¥ - snad s v²jimkou sφt∞ SNA firmy IBM, kterß mß obdobnΘ funkce realizovßny ve vφce r∙zn²ch vrstvßch.

P°i vytvß°enφ samotnΘho referenΦnφho modelu ISO/OSI byla kolem relaΦnφ vrstvy a jejφch ·kol∙ velkß diskuse. N∞kterΘ alternativnφ nßvrhy, kterΘ se v tΘ dob∞ objevily, s relaΦnφ vrstvou dokonce v∙bec nepoΦφtaly. Nakonec se vÜak relaΦnφ vrstva do referenΦnφho modelu p°eci jen prosadila. Spolu se svou bezprost°edn∞ nad°azenou (tj. prezentaΦnφ vrstvou) vÜak byla a nadßle je relativn∞ nejmΘn∞ propracovanou vrstvou.

Co je vlastn∞ relace?

Pro sprßvnΘ pochopenφ smyslu relaΦnφ vrstvy je dobrΘ si nejprve oz°ejmit onen pon∞kud vßgnφ termφn relace (session). Nejnßzorn∞jÜφ bude z°ejm∞ analogie s telefonnφm hovorem - ten je t°eba nejprve vytoΦit (Φφm₧ vznikß analogie transportnφho spojenφ), a pak je mo₧nΘ jeho prost°ednictvφm vΘst rozhovor (relaci) dvou ·Φastnφk∙.

Relaci tedy m∙₧eme pova₧ovat za spojenφ mezi dv∞ma koncov²mi ·Φastnφky na ·rovni bezprost°edn∞ vyÜÜφ, ne₧ je vrstva transportnφ. Obvykle je ka₧dΘ takovΘto spojenφ (relace) zajiÜ¥ovßno prost°ednictvφm jednoho transportnφho spojenφ (tj. spojenφ na ·rovni transportnφ vrstvy), kterΘ je z°izovßno a ruÜeno p°i z°izovßnφ resp. ruÜenφ relace - viz obr. 36.1. a/. Je ovÜem mo₧n² i takov² p°φpad, kdy jedno transportnφ spojenφ zajiÜ¥uje dv∞ nebo vφce po sob∞ jdoucφch relacφ, viz obr. 36.1. b/. Pou₧ijeme-li op∞t analogii s telefonnφm hovorem, odpovφdß tato situace tomu, ₧e dva ·Φastnφci telefonnφho hovoru sv∙j rozhovor dokonΦφ, ale mφsto zav∞Üenφ p°edajφ telefon jinΘ dvojici, kterß se m∙₧e zaΦφt bavit o n∞Φem zcela jinΘm - tedy zahßjit nov² rozhovor (relaci).
Obrßzek 36.1.
Obr. 36.1.: Vztah relace a transportnφho spojenφ
a/ jedna relace - jedno transportnφ spojenφ
b/ vφce relacφ - jedno transportnφ spojenφ
c/ jedna relace - vφce transportnφch spojenφ
Podobn∞, jako se transportnφ vrstva sna₧φ zakr²t p°φpadnΘ v²padky spojenφ na ·rovni sφ¥ovΘ vrstvy, m∞la by se i relaΦnφ vrstva dokßzat vyrovnat s p°φpadn²m v²padkem transportnφho spojenφ, a zajistit pokraΦovßnφ relace prost°ednictvφm nov∞ z°φzenΘho transportnφho spojenφ - viz obr. 36.1. c/. V naÜφ "telefonnφ" analogii to odpovφdß situaci, kdy v pr∙b∞hu rozhovoru dvou ·Φastnφk∙ je jejich hovor p°eruÜen, a oni si musφ zavolat znovu, aby sv∙j rozhovor dokonΦili.

Zajφmavou odliÜnostφ relace od transportnφho spojenφ je i zp∙sob jejφho ukonΦenφ. V p°φpad∞ transportnφho spojenφ nabφzφ referenΦnφ model ISO/OSI jen prost°edky pro jednostrannΘ direktivnφ ukonΦenφ spojenφ, kterΘmu druhß strana nemß mo₧nost zabrßnit. Na ·rovni relaΦnφ vrstvy se vÜak p°edpoklßdß spφÜe ukonΦenφ na zßklad∞ vzßjemnΘ dohody obou z·Φastn∞n²ch stran. P°esn∞ji na nßvrh jednΘ strany, kter² ale druhß strana mß mo₧nost odmφtnou a zajistit si tak pokraΦovßnφ relace.

╪φzenφ dialogu

Jednφm z hlavnφch ·kol∙ relaΦnφ vrstvy je °φzenφ dialogu mezi ob∞ma koncov²mi ·Φastnφky. Tak jako p°i telefonnφm rozhovoru nenφ mo₧nΘ (Φi alespo≥ sluÜnΘ), aby oba ·Φastnφci mluvili souΦasn∞, existujφ i v poΦφtaΦov²ch sφtφch takovΘ aplikace, kterΘ vy₧adujφ koordinovanΘ st°φdßnφ obou z·Φastn∞n²ch p°i vysφlßnφ (nap°φklad r∙znΘ aplikace transakΦnφho charakteru apod.).

RelaΦnφ vrstva tento po₧adavek zajiÜ¥uje obvykle pomocφ mechanismu p°edßvßnφ pov∞°enφ k p°enosu dat (data token) - vysφlat data smφ v₧dy jen ten, kdo vlastnφ tento pomysln² Ütafetov² kolφk (pov∞°enφ resp. token), viz obrßzek 36.2. b/. RelaΦnφ vrstva p°itom nabφzφ prost°edky, pomocφ kter²ch lze pov∞°enφ p°edat, nebo si jej naopak vy₧ßdat.

Obrßzek 36.2.
Obr. 36.2.: P°edstava vzßjemnΘ komunikace v rßmci relace
a/ pln∞ duplexnφ dialog
b/ poloduplexnφ dialog
Obecn∞ se na ·rovni relaΦnφ vrstvy rozliÜujφ t°i zp∙soby vedenφ dialogu - pln∞ duplexnφ (v terminologii RM ISO/OSI: TWS resp. Two-Way-Simultaneous), poloduplexnφ (TWA resp. Two-Way-Alternate) a simplexnφ (One-Way). Mechanismus p°edßvßnφ pov∞°enφ se p°itom t²kß samoz°ejm∞ jen poloduplexnφho dialogu. Zd∙razn∞me si vÜak, ₧e zp∙sob vedenφ dialogu nemß nic spoleΦnΘho s duplexnφm, poloduplexnφm Φi ev. simplexnφm charakterem p°enosovΘho kanßlu. VÜechna spojenφ v referenΦnφm modelu ISO/OSI jsou obecn∞ pln∞ duplexnφ, a umo₧≥ujφ tedy souΦasn² p°enos dat ob∞ma sm∞ry. R∙znΘ aplikace vÜak z r∙zn²ch d∙vod∙ nemusφ tΘto mo₧nosti vyu₧φvat, a po pln∞ duplexnφm spoji mohou vΘst jen poloduplexnφ dialog.

Synchronizace

DalÜφm d∙le₧it²m ·kolem relaΦnφ vrstvy je tzv. synchronizace (synchronization, tΘ₧: checkpointing). K jejφmu pochopenφ si nejprve p°edstavme nßsledujφcφ situaci: p°φjemcem dat v rßmci urΦitΘ relace nech¥ je poΦφtaΦ, kter² si p°ijφmanß data pr∙b∞₧n∞ zapisuje na disk, p°φpadn∞ je ihned tiskne na tiskßrn∞. Dojde-li nßhle k poruÜe disku Φi tiskßrny (nebo jφ nap°. dojde papφr, toner apod.), m∙₧e p°φjemce p°ijφt o urΦit² objem dat, kterΘ jinak v po°ßdku p°ijal (tj. kterΘ byly transportnφ vrstvou bezchybn∞ doruΦeny).

Obrßzek 36.3.
Obr. 36.3.: P°edstava kontrolnφch bod∙
Co je pak zapot°ebφ, je mo₧nost "vrßtit se o kousek zp∞t", a ztracenß data p°enΘst znovu. Tedy znovu dosßhnout pot°ebnΘ synchronizace (vzßjemnΘho souladu). RelaΦnφ vrstva °eÜφ tento problΘm mo₧nostφ vklßdat do p°enßÜen²ch dat kontrolnφ body (synchronization points, checkpoints). P°φjemci pak umo₧≥uje, aby si na vysφlajφcφm vy₧ßdal nßvrat k zadanΘmu kontrolnφmu bodu, a novΘ vyslßnφ t∞ch dat, kterß le₧φ za tφmto bodem.

Nenφ ovÜem ·kolem relaΦnφ vrstvy pamatovat si p°enßÜenß data tak, aby byl mo₧n² nßvrat k existujφcφm kontrolnφm bod∙m. Tato data si musφ "pamatovat" sßm jejich odesilatel, kter² slu₧eb relaΦnφ vrstvy vyu₧φvß. Aby si ale nemusel uchovßvat zbyteΦn∞ velkΘ objemy dat, rozliÜuje relaΦnφ vrstva dva druhy kontrolnφch bod∙ - hlavnφ (major) a vedlejÜφ (minor). Rozdφl mezi nimi je ten, ₧e p°es vedlejÜφ kontrolnφ bod se vracet lze, zatφmco p°es hlavnφ kontrolnφ bod ji₧ nikoli. Pro vysφlajφcφho z toho pak vypl²vß, ₧e si musφ "pamatovat" p°enßÜenß data jen od poslednφho hlavnφho kontrolnφho bodu - viz obr. 36.3.


zp∞t do archivu Φlßnk∙ | rejst°φk | 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