Úvod
TCP/IP je zkratka slov Transmission Control Protocol / Internet Protocol. Tento protokol se používá po celé síti Internet a nejenom na ni. Příkladem jeho dalšího použití mohou být platformy jako UNIX, Banyan VINES, Microsoft LAN Manager či Novell NetWare. Přestože se stal standardním souborem protokolů teprve v poslední době, je starý již více jak dvacet let. V počátku byl použit pro spojení vládních počítačů (síť ARPANET - předchůdce dnešního Internetu), nyní je jeho největší využití právě v síti Internetu, jenž se stala největší celosvětovou sítí. Jako TCP/IP standard se tento síťový protokol začal prosazovat v době, kdy byl implementován do systému UNIX a jemu podobných, zhruba někdy kolem 80 let. Díky této podpoře a zároveň díky jeho vyplývající historické kompatibilitě vůči velkému množství hardwarových a softwarových systémů se dnes těší velké rozšíření.
Původně byla tato protokolová sada vyvinuta pro UNIXové systémy, ale později se velmi rozšířila, hlavně díky aktivitám některých programátorů a později i některých firem, také na počítače pracující se systémy jako je např. MS-DOS, MS Windows či OS/2 atd. Tato sada protokolů je neustále rozšiřována a vylepšována. V současné době připravuje mezinárodní výbor nový standard, který bude bezpečnější pro současné aktivity Internetu (obchod) a také zajistí další expanzi této "sítě", neboť neustále vzrůstající počet internetových adres se blíží svým počtem ke své fyzicky adresovatelné hranici.
Není také bez zajímavosti jeho využití u většiny dnešních her (podporující síťové funkce), komunikačních programů a jednoduchých sítích peer-to-peer, což si většina lidí ani neuvědomuje.
Historie protokolu TCP/IP
Úplné počátky vzniku používání síťového protokolu TCP/IP se nacházejí v době, kdy žádostí ministerstva obrany v USA byl vznesen požadavek, na vytvoření komunikační sítě, jenž by zabezpečovala spojení i v případě jaderné války, přesněji řečeno ještě o několik let zpět. Tato síť tedy měla poskytovat jednoduchou a bezproblémovou komunikaci v případě jaderného ohrožení a dokonce i po jaderné válce. Řešila se tedy velice zásadní strategická otázka. Jak něco takového zajistit. O třicet let nazpátek, tedy v 60-letech tato úloha stála před společností RAND (Rand Corporation, tehdejší přední americké mozkové centrum z období studené války). Její řešení bylo publikováno v roce 1964. Je jasné, že každý centrální úřad, jakékoliv centrální síťové centrum by bylo zřejmým a nevyhnutelným terčem nepřátelského útoku. Proto to měla být síť založená na decentralizované koncepci, žádné systémové centrum, žádná centrální správa. Z čehož plyne logické vyústění, že i kdyby došlo k jaderné válce a hlavní komunikační centra by byla zničena, tak by stále tato síť měla být schopna provozu.
RAND řešil tento problém za hlubokého vojenského utajení a od začátku koncipoval danou síť tak, aby právě fungovala i v nekonzistentním stavu. To znamená, že některé uzly a spojovací linky budou nutně chybět. Principy byly jednoduché:
Síť vlastně nikdy nebude pokládána za 100% spolehlivou, a proto bude navržena takovým způsobem, aby alespoň byla zachována nějaká možná komunikační cesta. Všechny uzly sítě budou z hlediska svého stavu rovnocenné a každý uzel bude mít svou vlastní autoritu pro vytváření, předávání a přijímání zpráv. Samotné zprávy budou rozděleny do paketů, každý paket bude nezávisle adresován. Paket bude vycházet z některého konkrétního uzlu sítě a končit na jiném, cílovém uzlu; přitom se bude pohybovat v síti samostatně. Konkrétní cesta, po které bude sítí procházet, nebude důležitá, podstatný bude pouze výsledek. V zásadě si uzly budou paket přehazovat více či méně směrem k jeho cílového určení tak dlouho, dokud neskončí na správném místě. I když budou velké celky sítě vyřazeny z činnosti, nevadí, pakety budou pořád kolovat a předávány těmi uzly, které nebyly zničeny. Takovýto poněkud nahodilý doručovací systém může být "neefektivní" z hlediska obvyklého chápání, rychlých a přesně definovaných komunikačních cest, je však zato extrémně robustní.
Tak vlastně později vznikla síť ARPANET. Tato síť se nazývala podle pentagonské agentury ARPA (Advanced Research Projects Agency). Roku 1969 byly instalovány první uzly této sítě a o několik let později již tato síť obsahovala na 37 uzlů. Ze sítě ARPANET se později stala dnešní páteřní síť Internetu. Původně sloužil ke sdílení prostředků výpočetní techniky, kdy byl strojový čas počítačů dosti drahý. Později se z této sítě stal „federálně dotovaný elektronický poštovní úřad“, jenž se začal využívat v daleko větší míře než sdílení strojového času.
Během 70-tých let se síť ARPANET stále více rozrůstala; její decentralizovaná struktura tuto expanzi jen usnadňovala. Na rozdíl od standardních firemních počítačových sítí mohl ARPANET připojovat mnoho různých typů počítačů - stačilo, aby tyto počítače rozuměly paketově-orientovanému protokolu nové "anarchistické" sítě, vše ostatní bylo nepodstatné.
Protokoly v ARPANETU, předchůdce TCP/IP
Původním ARPA-protokolem pro komunikaci byl NCP (Network Control Protocol), ale s postupem času a vznikem pokročilejších technologií začal být NCP nahrazován mnohem propracovanějším standardem vyšší úrovně označovaným TCP/IP. (TCP/IP vznikl jako výsledek projektu agentury DARPA, který měl za cíl zkoumat techniky a technologie pro propojování paketových sítí různých typů. Systém sítí - nebo "síť sítí" - navržený v rámci tohoto projektu vešel ve známost pod označením Internet.) Sada protokolů TCP/IP (v současnosti se jedná zhruba o několik desítek protokolů a další vznikají) má dvě skupiny:
TCP (Transmission Control Protocol)
Je protokol transportní vrstvy. Hlavním účelem protokolu TCP je získávat elektronické zprávy libovolné délky a převádět je do sekvence paketů, zpravidla o velikosti 64kb (poslední může být samozřejmě menší), na zdrojovém uzlu a pak je znovu sestavuje do původních zpráv na cílovém uzlu sítě.
Díky tomu může software řídící síťovou komunikaci zasílat zprávy po částech a kontrolovat každou z těchto částí samostatně. V případě, že se nepodaří daný paket přenést, tak se přenos opakuje. Efektivita přenosu je právě dána paketovým přenosem. Při chybě v přenosu se nemusí posílat celý „balík“ dat, ale jen chybný paket.
IP (Internet Protocol)
Je protokol síťové vrstvy a u každého paketu ověřuje jeho korektnost a obhospodařuje adresování, a to tak, aby pakety mohly být směrovány nejen přes řadu uzlů, ale dokonce i přes řadu sítí pracujících s různými komunikačními protokoly - nejen s původním ARPANETovským NCP standardem, ale i s jinými protokoly, jako jsou např. Ethernet, FDDI nebo X.25. Dále zajišťuje, aby byly pakety posílány ve správném pořadí a co možná nejvhodněji, co se týče cesty přenosu.
Již od roku 1977 začal být TCP/IP používán jinými sítěmi pro připojování k ARPANETu. Samotný ARPANET zůstával pod pevným řízením přinejmenším do roku 1983, kdy se jeho vojenský segment oddělil a vytvořil samostatnou vojenskou síť MILNET. Protokol TCP/IP všechny tyto nově příchozí sítě propojoval dohromady a ARPANET (třebaže stále rostoucí) se stával stále menší a menší částí oné ohromně rostoucí sítě jiných připojených počítačů.
Aplikační protokoly TCP/IP
Množství protokolů, které se dnes vyskytují u různých aplikací je velké množství a další , s vývojem IT přibývají. Bylo by si tedy chybné myslet, že TCP/IP jsou protokoly pouze dva, a proto není chybou, když se o tomto protokolu mluví ne v jednotném čísle, ale v čísle množném. V anglické terminologii se o těchto protokolech hovoří jako o „ TCP/IP protocol suit“, tedy jako o rodině protokolů TCP/IP.
Příklad některých aplikačních protokolů TCP/IP
HTTP (HyperText Transfer Protocol)
protokol pro komunikaci mezi WWW servery a jejich klienty (browsery). Umožňuje browseru vyžádat si na serveru konkrétní WWW stránku, kterou mu server následně zašle. Protokol HTTP je koncipován jako bezestavový, což znamená že každý požadavek je samostatný a nemá žádnou návaznost na žádný z případných předchozích požadavků - jinými slovy: WWW server si nemusí nic pamatovat o předchozí komunikaci s kterýmkoli klientem, a každý požadavek vyřizuje jako kdyby byl první (jediný).
SMTP (Simple Mail Transfer Protocol)
poštovní protokol pro vzájemnou komunikaci mezi poštovními servery, prostřednictvím kterého si jednotlivé servery předávají mezi sebou konkrétní zprávy. Protokol SMTP předpokládá trvalou dostupnost příjemce i odesilatele - pokud se odesílajícímu poštovnímu serveru nepodaří zkontaktovat přijímající poštovní server, interpretuje to jako chybu a snaží se ji napravit opakováním pokusů o přenos. Kvůli této své vlastnosti protokol SMTP není použitelný pro přenos poštovních zpráv až ke koncovým poštovním klientům, kteří nemusí být trvale dostupní. Pro tyto účely musely být vyvinuty další protokoly, konkrétně protokoly POP3 (Post Office Protocol, verze 3) a IMAP (Internet Message Access Protocol).
NNTP (Network News Transfer Protocol)
protokol pro distribuci síťových novin, resp. jednotlivých příspěvků v rámci diskusních skupin (newsgroups) síťových novin (USENET-u). Tento protokol musel být vyvinut poté, co se síťové noviny "přestěhovaly" do Internetu - tj. začaly být šířeny především prostřednictvím Internetu.
FTP (File Transfer Protocol)
protokol pro přenos souborů mezi uzlovými počítači sítě. Předpokládá existenci FTP serverů (nazývaných též FTP archivy), což jsou v zásadě běžné uzlové počítače s možností přístupu do jejich systému souborů na dálku - uživatel jiného uzlového počítače v roli FTP klienta pak může z FTP serveru "stahovat" soubory směrem k sobě (provádět tzv. "download"), nebo naopak soubory umisťovat na FTP server (provádět tzv. "upload"), podle konkrétních přístupových oprávnění, která mohou být v rámci FTP nastavována pro jednotlivé konkrétní uživatele.
TFTP (Trivial File Transfer Protocol)
protokol FTP je "plnohodnotný" přenosový protokol, v tom smyslu že je vybaven prakticky všemi mechanismy a vlastnostmi, které jsou zapotřebí pro přenosy celých souborů v počítačových sítích. V některých situacích však tato jeho "plnohodnotnost" může být spíše na závadu, a to kvůli jeho relativně velké složitosti a náročnosti na implementaci. To může vadit například bezdiskovým stanicím, které si potřebují pouze jednorázové stáhnout svůj tzv. boot image (soubor, obsahující vše potřebné k jejich startu), přičemž příslušný kód který toto zajistí musí být co možná nejmenší, tak aby jej bylo možné umístit do pevné paměti (např. paměti ROM) v bezdiskové stanici. Pro takovéto účely byl vyvinut protokol TFTP (Triviální FTP), jako maximálně odlehčená verze protokolu FTP. Odlehčená je například v tom, že nezná pojem uživatele a přístupových práv, nezná pojem aktuálního adresáře, a neumožňuje procházet adresáři serveru, ze kterého jsou soubory stahovány - TFTP klient nemůže na serveru nic vyhledávat, a místo toho musí "jít na jistotu" pro konkrétní soubor který potřebuje.
NFS (Network File System)
protokol NFS slouží potřebám plně transparentního sdílení souborů v sítích na bázi TCP/IP, a to zejména v sítích lokálních. Rozdíl mezi sdílením a přenosem souborů (který zajišťuje protokol FTP, ev. TFTP) je v tom, zda si klient uvědomuje rozdíl mezi "místními" a "vzdálenými" soubory či nikoli. V případě přenosu souborů je pro klienta zásadní rozdíl mezi "místními" soubory, které se nachází na jeho počítači, a soubory vzdálenými, které se nachází na jiném počítači (FTP serveru) - s těmito vzdálenými soubory musí manipulovat jinak, než s místními soubory (musí vědět, kde se nachází, a pak si je může přenést k sobě prostřednictvím protokolu FTP). Naproti tomu v případě sdílení souborů protokol NFS zajišťuje to, aby se i vzdálené soubory klientovi jevily jako soubory místní - aby klient nemusel vědět kde přesně se nachází, ani nemusel s nimi manipulovat zvláštním způsobem, ale aby se na ně mohl dívat stejně jako místní soubory a stejně tak s nimi manipulovat, jako kdyby to byly jeho místní soubory. Proto je také tento způsob sdílení označován jako plně transparentní (ve smyslu: neviditelný), protože z pohledu klienta skutečně zcela zakrývá fakt, že některé soubory ve skutečnosti jsou vzdálené.
Telnet
protokol Telnet slouží pro tzv. vzdálené přihlašování, neboli k tomu, aby se uživatel jednoho počítače dostal do stejného postavení, jaké má uživatel jiného (vzdáleného) počítače - a mohl si zde například spouštět různé aplikace a pracovat s nimi, a využívat tak výpočetní kapacitu vzdáleného počítače, či jeho další zdroje (aplikace, soubory, periferie apod.). Protokol Telnet je koncipován tak, aby umožňoval "spolupráci" různých platforem - nepožaduje nic specifického na platformě počítače, ze které se uživatel přihlašuje ke vzdálenému počítači (nepožaduje například, aby to byly počítače se stejným operačním systémem). Díky tomu je například možné, aby se prostřednictvím protokolu Telnet uživatel počítače PC s MS Windows přihlásit na dálku k Unixovému počítači, a pracoval s Unixovými aplikacemi, které běží na tomto vzdáleném počítači (ale na jeho počítači PC by provozovány být nemohly).
rlogin (remote login)
jednou z nevýhod protokolu Telnet je skutečnost, že při každém přihlášení ke vzdálenému počítači nutí uživatele, aby znovu zadal své "identifikační informace" (jméno a heslo) a sám se přihlásil ("zalogoval") do operačního systému vzdáleného počítače - protokol Telnet nedokáže takovéto přihlášení (login) zajistit sám a automaticky. Důvodem je právě fakt, že netrvá na žádné "příbuznosti" místního a vzdáleného počítače. Proto také nemůže předpokládat, že by se mu mohlo vždy podařit "vytáhnout" potřebné přihlašovací informace z místního počítače a pak je předložit vzdálenému počítači k automatickému přihlášení. Pokud například uživatel pracuje v prostředí MS DOS a prostřednictvím Telnetu se přihlašuje ke vzdálenému počítači (např. Unixovému), prostředí DOS vůbec nezná pojem uživatele, a protokol Telnet tedy ani nemá možnost zjistit jméno svého uživatele. Proto se musí uživatel přihlásit ("zalogovat") sám, ručně. Vedle protokolu Telnet však existuje obdobně zaměřený protokol rlogin (od: remote login, doslova: vzdálené přihlášení), který je schopen sám zajistit automatické přihlášení (zalogování) do vzdáleného počítače - ovšem za cenu toho, že obě komunikující strany musí stát na stejné platformě (v zásadě jen na platformě Unixu).
SNMP (Simple Network Management Protocol)
protokol sloužící potřebám správy sítí. Umožňuje průběžný sběr nejrůznějších informací pro potřeby správy sítě, a jejich následné vyhodnocování. Na tomto protokolu je dnes založena většina prostředků a nástrojů pro správu sítě.
NTP (Network Time Protocol)
Protokol, sloužící potřebám synchronizace časových základen uzlových počítačů sítě. Lze si jej představit jako prostředek pro oznamování aktuálního času, na jehož základě si jednotlivé uzly "seřizují" svoje individuální hodinky.
LDAP (Lighweight Directory Access Protocol)
protokol určený pro udržování adresářů a práci s informacemi o uživatelích (např. pro vyhledávání adres konkrétních uživatelů v příslušných adresářích, resp. databázích). Protokol LDAP je založen na doporučení X.500, které bylo vyvinuto ve světě ISO/OSI, ale do praxe se ne zcela prosadilo, zejména pro svou "velikost" a následnou "těžkopádnost". Protokol LDAP již ve svém názvu zdůrazňuje fakt, že je "odlehčenou" (lightweight) verzí, odvozenou od X.500.
WHOIS
protokol, vyvinutý v prostředí TCP/IP pro potřeby vedení databází údajů o uživatelích, zejména o jejich adresách. Existuje i dokonalejší verze (tzv. referral WHOIS, neboli rWHOIS). Dnes ale převažuje použití protokolu LDAP.
Z39.50
protokol pro indexaci a vyhledávání, který se stal základem pro službu WAIS (umožňující fulltextové vyhledávání v databázích dokumentů).
Tento článek (Aplikační protokoly TCP/IP) 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
Koncepce TCP/IP
Protokol TCP je protokolem transportní vrstvy, a je jedním ze dvou alternativních protokolů, které síťový model TCP/IP na úrovni této vrstvy nabízí. Druhým z protokolů je protokol UDP (User Datagram Protocol), který je rychlejší, ale nespolehlivější oproti protokolu TCP/IP. Síťový model TCP/IP se dělí do čtyř vrstev. Jak je vidno, tak i síťový model TCP/IP je modelem vrstveným. Vychází z podstaty dělení vrstev od návrhářů síťového referenčního modelu OSI. Ovšem při „konstrukci“ tohoto protokolu se vycházelo úplně z jiných předpokladů a tomu také odpovídá výsledek. Tyto čtyři vrstvy jsou uspořádány vzhledem k požadavkům na tento protokol.
Požadavky na TCP/IP:
- Možnost propojení různých sítí, které by mohly být vybudovány na odlišných principech a základních přenosových technologií.
- Navrhnout protokol tak, aby měly co nejlepší funkce nad nejrůznějšími protokoly v nejnižších vrstvách referenčního modelu OSI. A zároveň umožňoval použití protokolů, které ještě nebyly vůbec vyvinuty.
U TCP/IP není potřeba fyzická a linková vrstva. Ty jsou nahrazeny tzv. vrstvou síťového rozhraní (jsou prázdné, neobsahují žádné protokoly), která zároveň pokrývá zmiňovanou fyzickou a linkovou vrstvu referenčního modelu OSI.
Síťový model TCP/IP:
Aplikační vrstva - Do této vrstvy přímo zasahují jednotlivé aplikace.
Transportní vrstva - (TCP)
Síťová vrstva - (IP)
Vrstva síťového rozhraní - Tato vrstva se netýká přímo TCP/IP, neboť zde se přímo použijí fyzické přenosové protokoly jednotlivých druhů sítí(Ethernet, Token Ring, ATM, ….)
Obr. Protokolová sada TCP/IP a vztahy mezi protokoly a jejich funkcemi
Jak již z požadavků plyne, tak bylo nutno zajistit, aby šlo principiálně uskutečnit spojení různých druhů sítí vzhledem k optimálnosti dosahovaného spojení (viz. Problematika přenosu), což se autorům podařilo uskutečnit.
1.Aplikační vrstva
Třetí vrstva (počítáno od nulté) na rozdíl od RM OSI neobsahuje různé podpůrné prostředky pro např.:konverzi dat, komprimaci, šifrování, synchronizaci přenosu atd. Toto všechno musí být již naprogramováno v aplikaci. Tato vrstva slouží pouze k napojení pro uživatelského rozhraní dané aplikace, ze které probíhá další ovládání.
2.Transportní vrstva
Dalo by se očekávat, že když síťová vrstva neobsahuje mechanismy spolehlivosti, tak ji bude obsahovat vrstva nad ní, tedy vrstva transportní. Pravda je však někde uprostřed. Tato „nedodělanost“ vychází z praktických zkušeností. Některé aplikace nepotřebují prvky spolehlivosti přenosu vůbec žádné a některé se naopak bez nich vůbec neobejdou. Je třeba rozdíl při přenosu obrazového snímku s drobnými vadami, které lidské oko nepostřehne, naproti trhavému zobrazování daných snímků, které je způsobeno opakovanými přenosy paketů v síti.
V konečném důsledku se používají dva protokoly TCP a UDP. TCP zajišťuje určitou míru spolehlivosti, kdežto UDP nikoliv.
3.Síťová vrstva
Tato vrstva je navržena pro co možná maximální přenosovou rychlost na úkor spolehlivosti. Se spolehlivostí se autoři vypořádali tak, že při navrhování přenechali tyto starosti vyšším vrstvám tohoto modelu. Ovšem není pravdou, že by se tato vrstva vůbec nestarala o bezchybný přenos, pouze nepovažuje za svou povinnost starat se o jakoukoliv nápravu, když se některá data při přenosu poškodí. Samotná data posílá po blocích (datagramech) a to nespojitě. V podstatě nepočítá s tím, že při začátku přenosu naváže spojení s adresátem. Data vyšle v bloku (jako u e-mailu), který obsahuje cílovou adresu. Tímto způsobem je zabezpečena dosti velká robustnost při přenosu, neboť dojde-li někde na již zvolené přenosové cestě k přerušení přenosové cesty k adresátovi, tak si bloky zvolí jinou cestu.
S protokolem IP úzce spolupracují protokoly ICMP (Internet Control Message Protokol), ARP (Address Resolution Protokol), RARP (Reverse Address Resolution Protokol), SLIP (Serial Line IP) a PPP (Point-to-Point Protokol).
ICMP – slouží k odhalování a signalizaci chyb
ARP – slouží k mapování IP logických adres a adresy fyzické (HW adresy síťových adaptérů)
RARP – slouží k určování IP adresy z adresy fyzické (ten je využíván hlavně bezdiskovými pracovními stanicemi, které znají svoji fyzickou adresu, ale neznají svoji IP adresu
SLIP – internet protokol po sériové lince, dnes je pozvolna na ústupu
PPP – dnes nejrozšířenější pro typ přenosu „bod-bod“, má některá vylepšení oproti SLIPu (menší přenosová režie, lepší hospodaření s IP adresami atd.)
Pozn.: SLIP a PPP jsou částečnou výjimkou tvrzení, které říká že protokol TCP/IP se nestará o fyzický přenos dat, protože tyto dva protokoly se fyzickým přenosem skutečně zabývají.
4. Vrstva síťového rozhraní
Síťovým modelem TCP/IP není nikterak omezeno použití jakékoliv přenosové technologie která bude použita na úrovni vrstvy síťového rozhraní. Je to jakýsi univerzální mezičlánek, právě mezi aplikační vrstvou a vrstvou síťového rozhraní. Tento protokol, je navržen tak, že je mu jedno, jestli se budou dat přenášet po relativně spolehlivých cestách, kde dochází k častým chybám při přenosu, nebo po zcela spolehlivých cestách, kde je chybovost přenosu žádná nebo velice minimální. Neví také nic o tom jakou rychlostí se data budou přenášet, jaké bude zpoždění při přenosu či jaká bude velikost přenášených bloků atd..
Obr.: Vztahy RM OSI modelu a síťového modelu TCP/IP Obr.: Protokoly síťové vrstvy
Problematika přenosu
Jak již bylo zmíněno, existují v podstatě dva protokoly na přenos dat v prostředí TCP/IP. Je to protokol TCP a UDP. Nehledě na to, že každý má jinou míru spolehlivosti, tak také má i jiný princip odesílání dat.
TCP – před každou výměnou dat mezi dvěma uzly musí být nejprve navázáno spojení a po přenosu zase zrušeno. TCP protokol posílá data po jednotlivých bytech, očekává tedy že mu budou dat předávána od jeho vyšší vrstvy v tzv. oketech. Ty pak kumuluje do vyrovnávacího bufferu, obvykle o 64 kb velikosti a posílá dále. Celý mechanismus sdružování jednotlivých bytů do bloků je plně v režii protokolu TCP, který se přenosem větších celků snaží optimalizovat využití přenosových cest. Pro vyšší vrstvu je tento mechanismus neviditelný - vyšší vrstva pracuje s představou proudu jednotlivých bytů. Pro některé aplikace však nemusí být přenos přes vyrovnávací buffer příliš vhodný. Proto zde existuje přímý odesílací mechanismus nazývaný push, kterým si lze odeslání dat vynutit, aniž by byl buffer plný. UDP – tento protokol vyšle data aniž by navazoval jakékoliv spojení s nějakým uzlem. Na rozdíl od TCP posílá data v celém bloku. Očekává tedy od své bezprostředně vyšší vrstvy vždy celý blok dat, který se snaží přenést opět jako celek (v rámci jediného tzv. uživatelského datagramu), a na straně příjemce jej předává své bezprostředně vyšší vrstvě opět jako celek.
Při přenosu používá protokol TCP tzv. kladné potvrzování (positive acknowledgement), což znamená, že se potvrzují jen úspěšně přijatá data a naopak na „nepřijatá, chybná“ data vůbec nereaguje. Chybně vyslaná data se posílají opětovně po určité době (po vypršení časového limitu – time out). Ovšem bylo by značně neefektivní, kdyby protokol čekal na každé „dobré“ potvrzení. V praxi se přenos provádí tak, že se vyšle několik bloků dat ještě dříve než je přijata informace o tom, že byla data úspěšně přijata tzv. kontinuálního potvrzování (continuous acknowledgement). O tom kolik bloků může být vysláno dopředu rozhoduje velikost pomyslného okénka viz obr..
Bezpečnost protokolu TCP/IP
Problematika bezpečnosti se při vývoji vůbec neuvažovala, nebyl součástí zadání, při řešení přenosového protokolu TCP/IP. Protokol byl navrhován tak, aby byl co možná nejvíce efektivní a flexibilní. Proto přenosové cesty založené na tomto protokolu nejsou nikterak zabezpečeny. Bezpečnost se týká v podstatě dvou věcí:
data nejsou zabezpečena z hlediska přenosu do úrovně síťové vrstvy a to včetně (mohou se „ztrácet“)
data nejsou zabezpečena proti „odposlechu“ na přenášené lince (data nejsou šifrována)
Řešení: opakování přenosu se musí postarat transportní vrstva protokolu TCP data zabezpečit pomocí samotné aplikace která sama provádí potřebné šifrování
Další bezpečnostní „dírou“ ve protokolu TCP/IP je jeho „naivita“ na aplikační úrovni. Není rozhodně velkým problémem poslat třeba někomu e-mail pod jiným nebo smyšleným jménem. Při ověřování něčí identity jsou často hesla přenášena v nezakódované podobě atd. To rozhodně již neodpovídá dnešním požadavkům na bezpečný přenos dat např.: při placení přes Internet nebo při manipulaci s osobními daty apod.. Je tedy vidět, že se v těchto směrech bude ještě muset podniknou řada kroků, aby se dospělo ke kýženému cíli.
Budoucí vývoj
V současné době díky obrovskému rozmachu Internetu se pomalu ale jistě blíží doba, kdy budou veškeré IP adresy vyčerpány. Na počátku vývoje poskytovalo 32 bitů IP adresy nepředstavitelně velké množství možných adres. Jak lze tento problém vyřešit? Dnes je již připraven nový IP protokol, který nese název IPv6 (Internet Protokol verze 6) a má šířku adresy 128 bitů, která by měla určitě nějakou dobu vydržet, a již se pomalu zavádí do praxe.
Dalším úzkým místem protokolů TCP/IP je jejich rychlost, která přestává stačit reálnému přenosu většího množství dat. Konkurentem se v tomto smyslu stává nový protokol RTP (Real-Time Transport Protokol) a protokol RSVP (Resource Reservation Protokol). Tyto protokoly dokáží rychleji a plynuleji přenášet data a lépe spolupracují se směrovači.
Závěr
Ještě asi před dvěma lety byl Internet spojován s teoretickou možností provádět na něm obchody a prezentovat tam své služby a produkty. V současné době, podotýkám že nejen v USA, firma která není na Internetu jakoby ani nebyla. Tak dynamický vývoj zažilo toto médium a do budoucna určitě ještě zažije další, velice dynamický vývoj.
To samé lze říci o stávajících protokolech. Dochází k vývoji nových a staré se stále vylepšují, po stránkách rychlosti, bezpečnosti, spolehlivosti, atd. nebo zanikají. Procházejí vývojem, jak si je žádá vývoj v IT.
Výhodou protokolů TCP/IP je bezesporu jejich platformní nezávislost. Také jejich podpora ze strany programátorů stále stoupá. Je zajímavé, že ač jsou některé tyto protokoly staré přes dvacet let, tak přesto bez zásadních změn se používají dodnes.
Použitá literatura a zdroje:
Robert M. Thomas – Lokální počítačové sítě, Computer Press, Praha 1996
Jaromír Kříž – Velký frekvenční slovník počítačů, Polygra a.s., Brno 1994
http://archiv.czech.net/
Slovník:
ATM – asynchronous transfer mode, asynchronní přenos
Banyan VINES – Virtual Network Systém (Síťový operační systém na bázi souborového serveru vzniklý rozšířením systému UNIX. Byl vyvinut společností Banyan Incorporated)
Ethernet – Populární standardní síťový protokol a návrh spojení, podle kterého jsou počítače zapojeny pomocí sběrnicové topologie uzlů k jedinému hlavnímu kabelu. Fyzická sběrnice může však být díky koncentrátorům i hvězdicová.
FDDI – Fibred Distributed Data Interface (páteřní síť)
HDLC – High level data link control, vysokoúrovňové řízení datového spoje
IT – informační technologie
Koncentrátor – opakovače s více porty, umožňují propojit více segmentů sítě.
Paket – obecně dávka dat, zpracovávaná při komunikaci jako celek
Segment sítě – skupina počítačů v síti jednoho typu
Token Ring – Typ místní počítačové sítě firmy IBM s prstencovou topologií
OS/2 – operační systém od fy IBM podobný MS Windows
UNIX – víceuživatelský operační systém, úzce spjatý s programovacím jazykem C
X.25 – Specifikace pro komunikační zařízení
X.500 – Mezinárodní standard, vyvinutý spolkem International Consultative Commitee of Telephony and Telegraphy, pro formátování elektronických zpráv přenášených přes sítě nebo mezi počítačovými sítěmi
Maturita.cz - referát (verze pro snadný tisk)
http://www.maturita.cz/referaty/referat.asp?id=27