Architektura TCP/IP v Internetu Síťová architektura Internetu - TCP/IP Soustava protokolů TCP/IP je v současné době nejpoužívanější v nejrozsáhlejším konglomerátu sítí - Internetu. Řekne-li se dnes TCP/IP, je to obvykle chápáno jen jako označení dvou přenosových protokolů, konkrétně protokolů TCP (Transmission Control Protocol) a IP (Internet Protocol). Ve skutečnosti, ale zkratka TCP/IP označuje celou soustavu protokolů a ucelenou soustavu názorů o tom, jak by se počítačové sítě měly budovat, a jak by měly navenek fungovat. Zahrnuje totiž i vlastní představu o tom, jak by mělo být síťové programové vybavení členěno na jednotlivé vrstvy (úrovně abstrakce), 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. TCP/IP je tedy síťovou architekturou Internetu. 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 nechalo vyvinout pro svou počítačovou síť ARPANET. Na vývoji celé soustavy protokolů, financovaném prostřednictvím 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ří sítí, dnes nazývaných Internet. Hlavní odlišnosti mezi klasickými referenčními modely a TCP/IP vyplývají především z rozdílných výchozích předpokladů a postojů jejich tvůrců. Při koncipování jednoho z referenčních modelů (ISO/OSI) měli hlavní slovo zástupci spojových organizací, kteří kladli důraz na vlastnosti sítě (především spojovaný a spolehlivý charakter služeb) s tím, že k síti připojované hostitelské počítače budou mít relativně jednoduchou úlohu. Později se ale ukázalo, že např. právě v otázce zajištění spolehlivosti to není nejšťastnější řešení - že vyšší vrstvy nemohou považovat spolehlivou komunikační síť 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í síť pak podle této představy nemusí ztrácet část své přenosové kapacity na zajišťování spolehlivosti (na potvrzování, opětovné vysílání poškozených paketů atd.), a může ji naopak plně využít pro vlastní datový přenos. V komunikační síti může 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
2/5/2012
Architektura TCP/IP v Internetu
1
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 a rychlou komunikační podsíť, ke které se připojují inteligentní hostitelské počítače. TCP/IP předpokládá nespojovaný charakter přenosu v komunikační síti - tedy jednoduchou datagramovou službou a obsahuje jen čtyři vrstvy (viz obrázek). V obrázku je pro názornost uveden i vztah jednotlivých vrstev modelů ISO/OSI a TCP/IP a také několik vybraných protokolů jednotlivých vrstev modelu TCP/IP. O čtyřech vrstvách modelu TCP/IP bude řeč v následujících kapitolách.
-
Vrstva síťového rozhraní (Network Interface Layer) Nejnižší vrstva, (dle OSI spojová vrstva, resp. Data Link Layer) a fyzická vrstva (Physical Layer) dohromady) 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.).
2/5/2012
Architektura TCP/IP v Internetu
2
-
Internetová vrstva (Internet Layer) Vyšší vrstva, která již není závislá na konkrétní přenosové technologii, označována též jako IP vrstva (IP Layer) podle toho, že je realizována pomocí protokolu IP, odpovídá síťové vrstvě ISO/OSI a často je nazývána stejným jménem. Úkolem této vrstvy je, aby se jednotlivé pakety dostaly od odesilatele až ke svému skutečnému příjemci, zpravidla přes mezilehlé směrovače. 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. Síťová vrstva se však musí vyrovnávat i s konkrétními odlišnostmi jednotlivých dílčích sítí - například s odlišným charakterem adres, s různou maximální velikostí přenášených paketů resp. rámců a jejich formátem a s odlišným charakterem nižší vrstvou poskytovaných přenosových služeb. Pro každou síť či každý přenosový kanál, na který je brána připojena, má samostatný ovladač na úrovni vrstvy síťového rozhraní. -
Transportní vrstva (Transport Layer) Třetí vrstva, též označována 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ř. protokol UDP (User Datagram Protocol), který na rozdíl od TCP nezajišťuje (mimo jiné) spolehlivost přenosu. Samozřejmě je využíván pouze aplikacemi, které si spolehlivost na úrovni transportní vrstvy nepřejí, příkladem je SNMP (Simple Network Management Protocol) protokol, který se používá pro zajištění přenosu dat pro dohlížení sítě. -
Aplikační vrstva (Application Layer) Nejvyšší vrstva, 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 realizovat samy (pokud je vyžadují). TCP/IP tedy nemá relační vrstvu, ten, kdo ji skutečně potřebuje, si ji musí implementovat na úrovni aplikace. TCP/ IP nemá ani prezentační vrstvu, zajištění případných prezentačních služeb je taktéž na koncových aplikacích. Podstatné je, že pokud aplikace prezentační nebo relační vrstvu nepotřebuje, nevzniká žádná zbytečná režie.
2/5/2012
Architektura TCP/IP v Internetu
3
Možnosti sady TCP/IP - vybrané protokoly Na úvod připomeňme co je to vlastně protokol: Protokol je množina pravidel určujících formát a význam rámců, paketů a zpráv vyměňovaných mezi partnerskými entitami (funkčními jednotkami). Entity používají protokoly, aby mohly implementovat definice svých služeb. - Protokoly aplikační vrstvy • DHCP (Dynamic Host Configuration Protocol), stanicí v síti využíván k získání IP adresy a dalších síťových parametrů (výchozí brána, DNS server, ...) z DHCP serveru. Usnadňuje úkony související s adresací v rámci lokální sítě tím, že centralizuje přidělování zmíněných klíčových parametrů síťové konfigurace. • DNS (Domain Name System), umožňuje překlad pro člověka zapamatovatelného jména (např. http://www.seznam.cz/) na odpovídající IP adresu (http://77.75.72.3/), která je potřebná, aby stanice byla schopna přistoupit na požadovaný server. • FTP (File Transfer Protocol), se používá k přenosu dat mezi stanicemi přes Internet. • TFTP (Trivial File Transfer Protocol), zjednodušená verze FTP s omezenými funkcemi. • HTTP (Hypertext Transfer Protocol), používán k dopravě informací u WWW. • IMAP (Internet Message Access Protocol), pro přístup lokální stanice do emailové schránky na vzdáleném serveru. • POP3 (Post Office Protocol verze 3), určen k získávání emailových zpráv z poštovního serveru. • SMTP (Simple Mail Transfer Protocol), standard pro výměnu emailových zpráv v rámci Internetu. • SNMP (Simple Network Management Protocol), využíván k monitorování stavu aktivních síťových prvků vyskytujících se ve spravované síti. • SSH (Secure Shell), protokol dovolující výměnu dat zabezpečeným kanálem mezi dvěma stanicemi. Bezpečností se myslí nejen důvěrnost, ale i integrita dat. • TLS/SSL (Transport Layer Security / Secure Socket Layer), kryptografické protokoly umožňující zabezpečenou komunikací (webovou, emailovou, ...). Zabezpečení se provádí na úrovni transportní vrstvy, přesto se pro svou komplexnost řadí do aplikační vrstvy. • GTP (GPRS Tunneling Protocol), protokol na tunelování (zapouzdřený přenos) IP paketů v datových podsítích v rámci GSM nebo UMTS. - Protokoly transportní vrstvy • TCP (Transmission Control Proíocol), poskytuje aplikačním protokolům spolehlivou spojovanou službu s dodržením správnosti pořadí doručení přenášených jednotek. • UDP (User Datagram Protocol), poskytuje nespolehlivou službu (tzv. datagramová služba), rychlý přenos dat bez navazování spojení. Nezaručuje ani správné pořadí předávání doručených jednotek, pokud je to nezbytné, musí se to řešit na úrovni aplikačního protokolu, který využívá služeb UDP.
2/5/2012
Architektura TCP/IP v Internetu
4
• RTP (Real Time Protocol), standardizovaný formát přenosu audio a video proudů Internetem. • ICMP (Internet Control Message Protocol), umožňuje např. oznamování chybových stavů, ověřování dostupnosti síťových zdrojů apod. - Protokoly Internetové vrstvy • IPv4 (Internet Protocol verze 4), klíčový protokol (spolu TCP, UDP a ICMP). Paketově orientovaný protokol fungující způsobem „best effort“. Poskytuje globálně unikátní identifikátor (IP adresa), zajišťuje tedy jednoznačnou identifikaci stanice v rámci Internetu a tedy i možnost směrování dat přenášených sítí k danému cíli (nejkratší nebo nejrychlejší cestou). • IPv6 (Internet Protocol verze 6), nejen nová verze IP protokolu obsahující mnohá vylepšení a rozšíření, ale kompletní sada protokolů podobně jako TCP/IP. Podstata je ale stejná, tj. jednoznačná identifikace stanice v rámci Internetu a možnost směrování dat přenášených sítí k danému cíli (nejkratší nebo nejrychlejší cestou). • OSPF (Open Shortest Path First), směrovací protokol, využíván směrovací (routery) k vytváření směrovací tabulky, tj. údajů podle kterých se následně rozhodují, kudy posílat pakety (IP protokolu) k požadovanému cíli (cílová IP adresa). • IPsec (IP Securitý), sada protokolů pro zabezpečení komunikace IP protokolem. • ARP (Address Resolution Protocol), standard pro hledání fyzické adresy stanice na lokální sítě na základě známé Internetové (nejčastěji hledaní MAC adresy na základě IP adresy). - Protokoly síťového rozhraní • 802.11 (Wireless Local Area Network stanáttás), několik standardů pro bezdrátové lokální sítě v pásmu 2.4 GHz a 5 GHz. • WiMAX (Worldwide Interoperability for Microwave Access), bezdrátová technologie navržená pro spojení na větší vzdálenosti než 802.11. Umožňuje spojení od typu bod-bod až po buňkový systém podobný sítím GSM. Založen na standardu IEEE 802.16. • Ethernet (IEEE 802.3), v současné době nejpoužívanější standardy lokální sítě, které se prosadily zejména svou jednoduchostí. K přenosu dat se využívají tzv. rámce. • GPRS (General Packet Rádio Service), technologie paketově orientovaného přenosu dat v mobilních sítích GSM, u které se zpravidla platí pouze za přenesená data, nikoliv za čas, na rozdíl od CSD = Circuit Switched Data.
Různé úrovně překladu adres v IP sítích V IP sítích, které pracují za pomocí protokolové sady TCP/IP, dochází na různých úrovních k různým převodům (překladu) adres. Většinou se jedná o případ, kdy je ve hře IP adresa a některá z dalších adres, vyskytujících se v počítačových sítích, viz následující kapitola.
2/5/2012
Architektura TCP/IP v Internetu
5
Převod IP adres na fyzické adresy IP adresy představují jednotný způsob adresace, který používá libovolný konglomerát vzájemně propojených sítí na bázi soustavy protokolů TCP/IP. Jsou však stále jen abstrakcí na úrovni síťové vrstvy, která odpovídá představě jednotné virtuální sítě. Ta je ale ve skutečnosti realizována dílčími sítěmi více či méně odlišného typu, které používají své vlastní mechanismy adresování a formáty adres. Proto také IP adresy musí být převáděny na takové konkrétní (fyzické) adresy, jaké příslušná dílčí síť skutečně používá (na úrovni vrstvy síťového rozhraní). Způsoby řešení převodu IP adresy na fyzickou adresu: a) pomocí přímého převodu Velmi jednoduchá myšlenka, která se v této souvislosti sama nabízí, je neřešit převod výčtem (tj. pomocí tabulky), ale pomocí vhodné transformační funkce (způsobu převodu). To je ale možné jen tam, kde si zřizovatel sítě může fyzické adresy jednotlivých uzlů volit sám, podle vlastních potřeb. Má-li například volitelná fyzická adresa rozsah 8 bitů, je nejjednodušší volit ji shodně s posledním oktetem (posledními osmi bity) IP adresy. Transformace IP adresy na fyzickou se pak stává zcela triviální matematickou úlohou a není třeba udržovat tabulku odpovídajících si adres. b) pomocí dynamické vazby Možnost volit fyzickou adresu přímo na síťovém adaptéru při jeho instalaci je v praxi únosná jen pro adresy malého rozsahu. Především je ale spojena s potenciálním nebezpečím lidských chyb, které mohou vyústit v existenci dvou adaptérů resp. uzlů se stejnou fyzickou adresou v jedné síti. Většina síťových technologií se proto k celému problému staví opačně -uživateli nedávají žádnou možnost ovlivnit fyzickou adresu síťového adaptéru, ta je totiž u každého adaptéru předem pevně dána. Takto je tomu například u lokálních sítí typu Ethernet. Ty používají fyzické adresy v rozsahu 48 bitů, které v příslušných síťových adaptérech nastavuje přímo jejich výrobce. Aby se zajistila jednoznačnost adres i mezi síťovými adaptéry různých výrobců, musí si každý z nich nechat přidělit určitý rozsah adres od centrální autority, která Ethernetovské adresy spravuje (v tomto konkrétním případě jde o americké sdružení IEEE). Jakmile je ale potřeba transformovat 32-bitové IP adresy na 48-bitové Ethernetovské (či jiné "velké" adresy, které není možné podle potřeby volit), nezbývá než vrátit se zpět k převodním tabulkám, definujícím vzájemnou vazbu mezi jednotlivými adresami. Pokud možno ale nikoli ke statickým tabulkám, ale naopak k tabulkám dynamickým, které se vytváří a modifikují průběžně, podle okamžitého stavu sítě.
2/5/2012
Architektura TCP/IP v Internetu
6