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

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

Sφ¥ov² model TCP/IP

ReferenΦnφ model ISO/OSI, kter²m jsme se v naÜem serißlu dosud zab²vali, je vÜeobecn∞ pova₧ovßn za koncepci resp. sφ¥ovou architekturu, kterß do budoucna p°evlßdne a stane se dominujφcφ. Nenφ ale zdaleka koncepcφ jedinou, a svΘ budoucφ postavenφ si musφ teprve vybojovat. V souΦasnΘ dob∞ je nejv∞tÜφm "rivalem" referenΦnφho modelu ISO/OSI soustava protokol∙ TCP/IP.

╪ekne-li se dnes TCP/IP, je to obvykle chßpßno jen jako oznaΦenφ dvou p°enosov²ch protokol∙, pou₧φvan²ch v poΦφtaΦov²ch sφtφch s poΦφtaΦi na bßzi Unixu, konkrΘtn∞ protokol∙ TCP (Transmission Control Protocol) resp. IP (Internet Protocol). Ve skuteΦnosti ale zkratka TCP/IP oznaΦuje celou soustavu protokol∙, ne nutn∞ vßzanou na operaΦnφ systΘm Unix, p°iΦem₧ TCP a IP jsou sice nejznßm∞jÜφ protokoly tΘto soustavy, ale zdaleka ne protokoly jedinΘ. Sprßvn∞jÜφ je ale pova₧ovat TCP/IP za ucelenou soustavu nßzor∙ o tom, jak by se poΦφtaΦovΘ sφt∞ m∞ly budovat, a jak by m∞ly fungovat. Zahrnuje toti₧ i vlastnφ p°edstavu o tom, jak by m∞lo b²t sφ¥ovΘ programovΘ vybavenφ Φlen∞no na jednotlivΘ vrstvy, jakΘ ·koly by tyto vrstvy m∞ly plnit, a takΘ jak²m zp∙sobem by je m∞ly plnit - tedy jakΘ konkrΘtnφ protokoly by na jednotliv²ch ·rovnφch m∞ly b²t pou₧φvßny. Ve smyslu definice, kterou jsme si zavedli ve 23. dφlu naÜeho serißlu, je tedy TCP/IP sφ¥ovou architekturou.

Pohled do historie

PoΦßtky TCP/IP se datujφ do konce 60. let, a jsou ·zce spojeny s Φinnostφ ·ΦelovΘ agentury ARPA (Advanced Research Projects Agency) ministerstva obrany USA, kterß si novΘ protokoly nechala vyvinout pro svou poΦφtaΦovou sφ¥ ARPANET. Na v²voji celΘ soustavy protokol∙, financovanΘm prost°ednictvφm tzv. grant∙ ministerstva obrany (·Φelov²ch dotacφ na v²zkum) se pak podφlela poΦφtaΦov∞ orientovanß pracoviÜt∞ p°ednφch univerzit USA. Svou dneÜnφ podobu zφskaly novΘ protokoly zhruba v letech 1977-79, a brzy potΘ na n∞ zaΦala postupn∞ p°echßzet i vlastnφ sφ¥ ARPANET, kterß se poslΘze stala zßrodkem a pßte°φ celΘho konglomerßtu sφtφ, naz²vanΘho dnes p°φznaΦn∞ Internet.

Agentura ARPA (mezitφm p°ejmenovanß na DARPA) se pak sna₧ila prosadit nov∞ vytvo°enΘ protokoly (a vlastn∞ i celou ucelenou sφ¥ovou architekturu) do praktickΘho ₧ivota i mimo sφ¥ ARPANET, p°edevÜφm pak do akademickΘho prost°edφ. V∞tÜina univerzitnφch poΦφtaΦov²ch pracoviÜ¥ v USA v tΘ dob∞ provozovala n∞jakou verzi tzv. BSD Unixu, pochßzejφcφ ze st°ediska Berkeley Software Distribution (BSD) na University of California v Berkeley. Agentura DARPA si proto nechala u p°ednφ americkΘ firmy Bolt, Beranek and Newman (BBN) na zakßzku vyvinout implementaci TCP/IP protokol∙ pod operaΦnφ systΘm Unix, a univerzit∞ v Berkeley p°isp∞la v²zkumn²mi granty na zaΦlen∞nφ t∞chto protokol∙ do univerzitou distribuovan²ch produkt∙. Tφm se protokoly TCP/IP prosadily do BSD Unixu, a poslΘze pak i do ostatnφch verzφ Unixu bu∩ p°φmo jako jejich standardnφ souΦßst, nebo jako voliteln² dopln∞k (option). Dφky svΘ popularit∞ se vÜak zßhy dostaly i na jinΘ platformy, a dnes jsou implementovßny snad ve vÜech v²poΦetnφch prost°edφch, od osobnφch poΦφtaΦ∙ PC s operaΦnφm systΘmem MS DOS a₧ nap°. po sßlovΘ poΦφtaΦe (mainframes) firmy IBM a operaΦnφ systΘm VM.

Pro sv∙j ·zk² vztah k sφti Internet je soustava protokol∙ TCP/IP n∞kdy oznaΦovßna takΘ jako Internet protocol suite (doslova: soustava protokol∙ Internetu), nebo tΘ₧ Department of Defense (DoD) protocol suite, co₧ naopak zd∙raz≥uje vztah k ministerstvu obrany USA.

Filosofie TCP/IP

Hlavnφ odliÜnosti mezi referenΦnφm modelem ISO/OSI a TCP/IP vypl²vajφ p°edevÜφm z rozdφln²ch v²chozφch p°edpoklad∙ a postoj∙ jejich tv∙rc∙. Jak jsme si ji₧ naznaΦili v p°edchozφch dφlech naÜeho serißlu, p°i koncipovßnφ referenΦnφho modelu ISO/OSI m∞li hlavnφ slovo zßstupci spojov²ch organizacφ. Ti pak nov∞ vznikajφcφmu modelu vtiskli svou vlastnφ p°edstavu - p°edevÜφm spojovan² a spolehliv² charakter slu₧eb, poskytovan²ch v komunikaΦnφ podsφti (tj. a₧ do ·rovn∞ sφ¥ovΘ vrstvy, vΦetn∞). Jin²mi slovy: ISO/OSI model poΦφtß se soust°ed∞nφm co mo₧nß nejvφce funkcφ, vΦetn∞ zajiÜt∞nφ spolehlivosti p°enos∙, ji₧ do komunikaΦnφ podsφt∞, kterß v d∙sledku toho bude muset b²t pom∞rn∞ slo₧itß, zatφmco k nφ p°ipojovanΘ hostitelskΘ poΦφtaΦe budou mφt relativn∞ jednoduchou ·lohu. Pozd∞ji se ale ukßzalo, ₧e nap°φklad prßv∞ v otßzce zajiÜt∞nφ spolehlivosti to nenφ nejÜ¥astn∞jÜφ °eÜenφ - ₧e toti₧ vyÜÜφ vrstvy nemohou pova₧ovat spolehlivou komunikaΦnφ podsφ¥ za dostateΦn∞ spolehlivou pro svΘ pot°eby, a tak se sna₧φ zajistit si po₧adovanou mφru spolehlivosti vlastnφmi silami. V d∙sledku toho se pak zajiÜ¥ovßnφm spolehlivosti do urΦitΘ mφry zab²vß vlastn∞ ka₧dß vrstva referenΦnφho modelu ISO/OSI.

Tv∙rci protokol∙ TCP/IP naopak vychßzeli z p°edpokladu, ₧e zajiÜt∞nφ spolehlivosti je problΘmem koncov²ch ·Φastnφk∙ komunikace, a m∞lo by tedy b²t °eÜeno a₧ na ·rovni transportnφ vrstvy. KomunikaΦnφ podsφ¥ pak podle tΘto p°edstavy nemusφ ztrßcet Φßst svΘ p°enosovΘ kapacity na zajiÜ¥ovßnφ spolehlivosti (na potvrzovßnφ, op∞tnΘ vysφlßnφ poÜkozen²ch paket∙ atd.), a m∙₧e ji naopak pln∞ vyu₧φt pro vlastnφ datov² p°enos. KomunikaΦnφ podsφ¥ tedy podle tΘto p°edstavy nemusφ b²t zcela spolehlivß - m∙₧e v nφ dochßzet ke ztrßtßm p°enßÜen²ch paket∙, a to bez varovßnφ a bez snahy o nßpravu. KomunikaΦnφ sφ¥ by ovÜem nem∞la zahazovat pakety bezd∙vodn∞. M∞la by naopak vyvφjet maximßlnφ snahu p°enßÜenΘ pakety doruΦit (v angliΦtin∞ se v tΘto souvislosti pou₧φvß termφn: best effort), a zahazovat pakety a₧ tehdy, kdy₧ je skuteΦn∞ nem∙₧e doruΦit - tedy nap°. kdy₧ dojde k jejich poÜkozenφ p°i p°enosu, kdy₧ pro n∞ nenφ dostatek vyrovnßvacφ pam∞ti pro doΦasnΘ ulo₧enφ, v p°φpad∞ v²padku spojenφ apod. Na rozdφl od referenΦnφho modelu ISO/OSI tedy TCP/IP p°edpoklßdß jednoduchou (ale rychlou) komunikaΦnφ podsφ¥, ke kterΘ se p°ipojujφ inteligentnφ hostitelskΘ poΦφtaΦe.

DalÜφ odliÜnost od referenΦnφho modelu ISO/OSI spoΦφvß v nßzoru na to, jak mß komunikaΦnφ sφ¥ vlastn∞ fungovat. Zatφmco model ISO/OSI poΦφtß p°edevÜφm se spojovan²m p°enosem - tedy s mechanismem virtußlnφch okruh∙, TCP/IP naopak p°edpoklßdß nespojovan² charakter p°enosu v komunikaΦnφ podsφti - tedy jednoduchou datagramovou slu₧bou - co₧ ostatn∞ vypl²vß i z p°edstavy co mo₧nß nejjednoduÜÜφ komunikaΦnφ podsφt∞.

╚ty°i vrstvy TCP/IP

Obrßzek 42.1.
Obr. 42.1.: ╚ty°i vrstvy sφ¥ovΘho modelu TCP/IP vs. RM ISO/OSI
Zatφmco referenΦnφ model ISO/OSI vymezuje sedm vrstev sφ¥ovΘho programovΘho vybavenφ, TCP/IP poΦφtß jen se Φty°mi vrstvami - viz obrßzek 42.1.

Nejni₧Üφ vrstva, vrstva sφ¥ovΘho rozhranφ (Network Interface Layer) (n∞kdy tΘ₧: linkovß vrstva resp. Link Layer) mß na starosti vÜe, co je spojeno s ovlßdßnφm konkrΘtnφ p°enosovΘ cesty resp. sφt∞, a s p°φm²m vysφlßnφm a p°φjmem datov²ch paket∙. V rßmci soustavy TCP/IP nenφ tato vrstva blφ₧e specifikovßna, nebo¥ je zßvislß na pou₧itΘ p°enosovΘ technologii.

Vrstvu sφ¥ovΘho rozhranφ m∙₧e tvo°it relativn∞ jednoduch² ovladaΦ (device driver), je-li dan² uzel p°φmo p°ipojen nap°φklad k lokßlnφ sφti Φi ke dvoubodovΘmu spoji, nebo m∙₧e tato vrstva p°edstavovat naopak velmi slo₧it² subsystΘm, s vlastnφm linkov²m p°enosov²m protokolem (nap°. HDLC apod.). Vzhledem k velmi ΦastΘmu p°ipojovßnφ jednotliv²ch uzl∙ na lokßlnφ sφt∞ typu Ethernet je vrstva sφ¥ovΘho rozhranφ v rßmci TCP/IP Φasto oznaΦovßna takΘ jako Ethernetovß vrstva (Ethernet Layer).

Bezprost°edn∞ vyÜÜφ vrstva, kterß ji₧ nenφ zßvislß na konkrΘtnφ p°enosovΘ technologii, je vrstva sφ¥ovß, v terminologii TCP/IP oznaΦovanß jako Internet Layer (voln∞ji: vrstva vzßjemnΘho propojenφ sφtφ), nebo tΘ₧ IP vrstva (IP Layer) podle toho, ₧e je realizovßna pomocφ protokolu IP. ┌kol tΘto vrstvy je v prvnφm p°iblφ₧enφ stejn², jako ·kol sφ¥ovΘ vrstvy v referenΦnφm modelu ISO/OSI - starß se o to, aby se jednotlivΘ pakety dostaly od odesilatele a₧ ke svΘmu skuteΦnΘmu p°φjemci, p°es p°φpadnΘ sm∞rovaΦe resp. brßny. Vzhledem k nespojovanΘmu charakteru p°enos∙ v TCP/IP je na ·rovni tΘto vrstvy zajiÜ¥ovßna jednoduchß (tj. nespolehlivß) datagramovß slu₧ba.

T°etφ vrstva TCP/IP je oznaΦovßna jako transportnφ vrstva (Transport Layer), nebo tΘ₧ jako TCP vrstva (TCP Layer), nebo¥ je nejΦast∞ji realizovßna prßv∞ protokolem TCP (Transmission Control Protocol). Hlavnφm ·kolem tΘto vrstvy je zajistit p°enos mezi dv∞ma koncov²mi ·Φastnφky, kter²mi jsou v p°φpad∞ TCP/IP p°φmo aplikaΦnφ programy (jako entity bezprost°edn∞ vyÜÜφ vrstvy). Podle jejich nßrok∙ a po₧adavk∙ m∙₧e transportnφ vrstva regulovat tok dat ob∞ma sm∞ry, zajiÜ¥ovat spolehlivost p°enosu, a takΘ m∞nit nespojovan² charakter p°enosu (v sφ¥ovΘ vrstv∞) na spojovan².

P°esto₧e je transportnφ vrstva TCP/IP nejΦast∞ji zajiÜ¥ovßna prßv∞ protokolem TCP, nenφ to zdaleka jedinß mo₧nost. DalÜφm pou₧φvan²m protokolem na ·rovni transportnφ vrstvy je nap°φklad protokol UDP (User Datagram Protocol), kter² na rozdφl od TCP nezajiÜ¥uje mj. spolehlivost p°enosu - samoz°ejm∞ pro takovΘ aplikace, kterΘ si to (na ·rovni transportnφ vrstvy) nep°ejφ.

NejvyÜÜφ vrstvou TCP/IP je pak vrstva aplikaΦnφ (Application Layer). Jejφmi entitami jsou jednotlivΘ aplikaΦnφ programy, kterΘ na rozdφl od referenΦnφho modelu ISO/OSI komunikujφ p°φmo s transportnφ vrstvou. P°φpadnΘ prezentaΦnφ a relaΦnφ slu₧by, kterΘ v modelu ISO/OSI zajiÜ¥ujφ samostatnΘ vrstvy, si zde musφ jednotlivΘ aplikace v p°φpad∞ pot°eby realizovat samy.


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