Vyšlo v týdeníku: | COMPUTERWORLD |
Číslo: | 1/93 |
Ročník: | 1993 |
Rubrika/kategorie: | Co je čím ... v počítačových sítích |
Díl: | 55 |
Až doposud jsme v našich úvahách předpokládali, že prvotními odesilateli a konečnými příjemci nejrůznějších dat v počítačových sítích jsou jednotlivé uzlové počítače jako takové. Nyní si však musíme tuto představu upřesnit: skutečnými odesilateli a příjemci jsou entity aplikační vrstvy. Tyto mohou být označovány různě: jako procesy (processes), úlohy (tasks), aplikační programy (application programs) či ještě jinak. Podstatné ovšem je, že v prostředí víceúlohových operačních systémů takovýchto entit může být (a také bývá) více. Oba protokoly transportní vrstvy pak potřebují podle něčeho rozhodnout, které entitě aplikační vrstvy mají přijatá data předat.
Adresovat data konkrétním procesům tedy není příliš rozumné. Jaké jsou ale alternativy?
![]() |
Síťový model TCP/IP používá právě tento mechanismus, a příslušné "přechodové body" označuje jako porty (ports).
Z pohledu procesu, který je právě připojen k určitému portu, se tento jeví jako vyrovnávací paměť s režimem fronty - entita transportní vrstvy ukládá data do portu z jedné strany, a entita aplikační vrstvy (tj. proces) si je ve stejném pořadí zase odebírá - viz obr. 55.1. Analogicky i pro opačný směr přenosu. Samotný port s právě naznačenými vlastnostmi je sám o sobě datovou strukturou, a jako takový může dynamicky vznikat i zanikat, obdobně jako vlastní procesy.
Otázkou ovšem je, jak může aplikační proces na jednom hostitelském počítači zjistit potřebná čísla portů na jiném počítači, ať již chce využít některou z jím poskytovaných služeb, nebo jinak komunikovat s některým z aplikačních procesů na tomto jiném počítači.
K řešení této otázky jsou v zásadě dva možné přístupy. První z nich spočívá v tom, že čísla portů se na všech hostitelských počítačích přidělí jednou provždy a stejně, a toto přidělení se zveřejní. Každý aplikační proces pak má k dispozici informaci o číslech příslušných portů na všech uzlových počítačích - těmto portům se pak také říká dobře známé porty (well-known ports). Problém je ovšem v tom, že tato varianta statického charakteru se dá použít jen pro zveřejnění takových služeb, které jsou předem známy, a s jejichž existencí lze předem počítat.
Alternativou je umožnit procesům na jiných uzlových počítačích zjistit si číslo portu na daném počítači - dotazem stylu: "na jakém portu je poskytována služba přenosu souborů?" Tato varianta stále vyžaduje alespoň jeden "dobře známý port" (přes který by bylo možné vznést příslušný dotaz), a je také spojena s určitou režií. Na druhé straně je ale mnohem pružnější, neboť umožňuje vytvářet porty a přidělovat jim čísla (adresy) podle okamžité potřeby dynamicky vznikajících a zanikajících aplikačních procesů, a není vázána tím, jak jsou obdobná přidělení realizována na jiných uzlových počítačích.
Tvůrci TCP/IP protokolů se rozhodli pro kombinaci obou variant - pro nejčastěji používané služby použili první možnost, tedy pevné přidělení čísel "dobře známým portům", a zbylé adresy ponechali volné pro dynamické přidělování podle okamžitých potřeb.
Multiplex a demultiplex datagramů
![]() |
Tato představa velmi dobře odpovídá koncepci nespojované přenosové služby, kterou poskytuje protokol UDP. Tento protokol se na každý port dívá skutečně jako na jeden logický objekt - frontu, do které jsou postupně ukládány všechny datagramy, adresované tomuto portu na daném počítači.
Protokol TCP však vychází z poněkud odlišné abstrakce.
Vzhledem ke svému spojovanému charakteru pracuje se
spojeními, která jsou definována dvěma koncovými body
- každý koncový bod je přitom určen dvojicí
zpět do archivu článků | rejstřík |
předchozí díl |
následující díl