Je potřeba zdůraznit, že pro určení přenosového kanálu je možné implicitní hodnotu portu používat pouze pro cílový počítač! Oprosťme se od pohledu uživatele osobního počítače. Představme si, že by ve výše zmiňovaném příkladu současně s uživatelem User1 otvíral funkci TELNET ve stejném směru i třeba uživatel User4. Pokud bychom i pro port na počátečním počítači použili standardní hodnotu 23 , nemohli bychom tyto dva virtuální kanály rozlišit. Proto je port počátečního počítače generován (jeho) systémem, aby bylo zaručeno, že v každé čtveřici definující virtuální kanál je alespoň jedno číslo odlišné. Jakým způsobem je zajišťováno generování odlišné hodnoty počátečního portu závisí na způsobu implementace v operačním systému. V našem příkladu to zajišťuje část TCP a IP , která obhospodařuje veškerou komunikaci do sítě. Snad ještě poznámka k tomu, že i na PC je situace obdobná. Proto můžeme například v TELNETu i z PC současně otvírat třeba dvě seance na tentýž (cílový) počítač.
Je-li přenosový kanál otevřen, nemusí být určující čtveřice čísel - dvakrát 32-bitová hodnota adres počítačů a dvakrát 16-bitová hodnota portů - po celou dobu konstantní. V Internetu existují prostředky, aby bylo možno ( v průběhu seance ) změnit port, lze vzájemně zaměnit roli cílového a počátečního počítače, otevírat další virtuální kanály a podobně.
Například FTP vytváří pro vlastní přenos souboru ještě druhý virtuální kanál, a to opačným směrem. Přitom tento druhý, tzv. datový kanál, může být otevřen buď po celou dobu seance anebo jen po dobu přenosu některého souboru. Alespoň nahlédnout lze na koncepční schéma - Figure 1 ( část 2.3 ) - v RFC959 [2], které popisuje File Transfer Protocol .
TCP / IP
Většina internetových aplikací pracuje tak, že data přenášená virtuálním kanálem jsou segmentována do částí, o kterých se hovoří jako o tzv. datagramech. Způsob segmentování popisuje protokol TCP - Transmission Control Protocol . Většina aplikací se přitom obrací na komponentu systému nazývanou TCP-část, jež takovouto činnost na počítači zajišťuje. ( RFC793 [3] )
Představme si, že například jsme někam propojeni TELNETem a po přenosovém kanálu je právě potřeba přenést celou popsanou obrazovku, což představuje ( s nějakými mezerami na konci řádků ) tak 1600 znaků. Program TELNET, s nímž pracujeme, předá všechny znaky TCP-části, která je rozdělí na 500, 500, 500 a 100 znaků. Ke každé této části doplní hlavičku, možná výstižněji záhlaví TCP-protokolu a předá ji komponentě, která pak zajistí jejich odeslání. Každá z těchto čtyř částí potom putuje samostatně sítí Internet až k cílovému počítači. A zde opět pracuje TCP-část, která ony čtyři části správným způsobem složí a předá je programovému vybavení, které zde podporuje naši práci v TELNETu. Pochopitelně mohou jednotlivé části na cílový počítač dorazit v pozměněném pořadí, třeba poslední část, ve které je jen 100 znaků, může dorazit již jako druhá. V doplňovaném TCP-záhlaví tedy musí být informace, podle níž je možno jednotlivé části opět správně složit. Například v oné poslední části je konkrétně uvedeno číslo 1500, které znamená, že tato část navazuje na předchozí 1500. znak, tedy je potřeba nejprve složit (a získat) ony tři 500 znakové části.
Ba co více. Pokud některá část vůbec nedorazí nebo je při přenosu poškozena, TCP-část na cílovém počítači si je schopna si ji znovu vyžádat z počátečního počítače. A teprve po správném sestavení přenášené množiny znaků potvrdí TCP-části na počátečním počítači úspěšné přenesení dat po virtuálním přenosovém kanálu. Proto se také při využívání protokolu TCP hovoří v Internetu o potvrzovaných službách.
Popis struktury TCP-hlaviček tj. TCP-záhlaví doplňovaných k vytvářeným částem (datagramům) je převzat z části 2. Introduction to the Internet Protocols [4] zmiňovaném již v předchozí kapitole. Snad lze ještě doplnit, že každý řádek obsahuje 4 byty (oktety), tedy 32 bitů. ( Každý z nich je ve schématu reprezentován jednou pomlčkou - .)
Zaujímavosti o referátoch
Ďaľšie referáty z kategórie