TCP/IP

Ú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, ….)

Hodnocení referátu TCP/IP

Líbila se ti práce?

Podrobnosti

  1. červenec 2008
  4 762×
  2570 slov

Komentáře k referátu TCP/IP