Semestrální práce CC3 – TCP/IP transport a aplikace
Datum: 23.3. 2007
Vypracoval: Aleš Skopal, Radek Žilka
Obsah TCP/IP.................................................................................................................................................. 2 Historie a vývoj of TCP/IP.............................................................................................................. 3 Filosofie TCP/IP.............................................................................................................................. 3 Aplikační vrstva...............................................................................................................................3 Transportní vrstva............................................................................................................................ 4 Internetová vrstva............................................................................................................................ 4 Vrstva síťového rozhraní................................................................................................................. 5 IP adresy.......................................................................................................................................... 5 TCP/IP Transportní vrstva....................................................................................................................6 Úvod do TCP/IP transportní vrstvy................................................................................................. 6 Řízení toku dat (flow control)..........................................................................................................6 Navázání relace (session), udržování a ukončení............................................................................ 6 Three-way handshake ..................................................................................................................... 8 Windowing ......................................................................................................................................8 Acknowledgment............................................................................................................................. 9 TCP ................................................................................................................................................. 9 UDP .............................................................................................................................................. 10 Čísla TCP a UDP portů..................................................................................................................10 Aplikační vrstva..................................................................................................................................11 Úvod do TCP/IP aplikační vrstvy .................................................................................................11 DNS .............................................................................................................................................. 11 FTP a TFTP................................................................................................................................... 11 HTTP ............................................................................................................................................ 11 SMTP ............................................................................................................................................ 11 SNMP ............................................................................................................................................12 Telnet ............................................................................................................................................ 12
2
TCP/IP Internet byl vyvinut jako komunikační síť, která by mohla sloužit ve válce. Tzn. necentralizovaná síť, která bude fungovat i při výpadku některého komunikačního uzlu. Je založen na TCP/IP protokolu, který je ideální pro necentralizované a rozlehlé sítě. Spousta další běžně používaných protokolů byla vyvinuta právě pro 4-vrstvou TCP-IP modelu. Každé zařízení v Internetu, které chce komunikovat s dalším musí mít unikátní identifikátor, kterým je IP adresa. Směrovače ji využívají, aby našli nejlepší cestu k danému zařízení. V současné době existuje IP verze IPv4 a IPv6. IPv4 bylo navrženo pro velký počet adres. Díky obrovskému rozmachu internetu se počet vyčerpal a bylo nutné začít využívat subneting, překlad NAT a privátní adresy. IPv6 vylepšuje předchozí verzi a poskytuje mnohem větší adresový prostor. TCP/IP je rodina protokolů, které spolu úzce souvisí. Není to tedy jeden protokol, ale v současné době až stovka. IP pracuje na 3-tí vrstvě OSI modelu a jde o nespojovaný protokol poskytující nejlepší schopnost doručení po internetu. TCP pracuje na vrstvě transportní a jde o službu spojovanou, poskytující kontrolu toku dat a spolehlivost. Kombinace těchto protokolů poskytuje široké pole použití. Internet je právě vystavěn na TCP/IP protokolu.
Historie a vývoj of TCP/IP Historie TCP/IP dosti úzce souvisí s historií Internetu - ten vznikl jako experiment amerického ministerstva obrany, který měl ověřit možnost vybudování počítačové sítě propojující místa velení a schopnou přežít i jaderný úder nepřítele. Ministerstvo obrany USA si za tímto účelem nechalo vypracovat studii (od firmy Rand Corporation), aby vědělo kterým směrem se vůbec vydat. Zmíněná studie dospěla k závěru, že jedinou možností je nevytvářet v síti žádný centrální prvek který by jistě byl prvním cílem nepřítele - a pak také nutnost předem počítat s nespolehlivostí přenosových cest. A tak americké ministrersvo zahraničí začalo budovat rozlehlou počítačovou síť, schopnou propojit výzkumná střediska, které totéž ministerstvo financovalo ze svých prostředků na rozvoj vědy. Světlo světa tak spatřila síť ARPANET, pojmenovaná po grantové agentuře ARPA (Advanced Research Projects Agency) - což byla účelová organizace ministerstva obrany USA (DoD, Department of Defense). Skutečný výzkum zajišťovala akademická sféra. Roli amerického ministerstva obrany při vzniku protokolů TCP/IP (i Internetu jako takového) je možné přirovnat k rodičovské péči o vlastního potomka, který se v jistém stádiu života postaví na vlastní nohy a žije dále svým vlastním životem. Stejně tak jako Internet, který po určité počáteční době svého života přešel pod civilní vědeckovýzkumnou správu, začaly i protokoly TCP/IP být veřejnými v tom smyslu, že pro svůj další rozvoj již nejsou vázány na příděl peněz od nějaké centrální autority, která by také mohla o mnoha věcech rozhodovat. Dnes je vývoj protokolů TCP/IP v podstatě věcí veřejnou, na které se podílí jak zainteresovaní jednotlivci tak i mnohé čistě komerční firmy a další instituce.
Filosofie TCP/IP Síťový model TCP/IP je vystavěn na jiných předpokladech, než z jakých vychází referenční model ISO/OSI. Především z tohoto faktu pak vyplývají základní vlastnosti modelu TCP/IP a jeho odlišnosti od referenčního modelu. Podobně jako referenční model, vychází i síťový model TCP/IP ze stejné výchozí představy o tom, že by síťové funkce měly být rozděleny do hierarchicky 3
uspořádaných vrstev. I síťový model TCP/IP je tedy modelem vrstvovým, stejně jako ISO/OSI. Autoři TCP/IP však při svém počátečním rozhodování o počtu vrstev a jejich úloze vyšli z jiných předpokladů než autoři ISO/OSI, a proto také dospěli k odlišným závěrům, a mj. i k odlišnému počtu vrstev - ke čtyřem, zatímco referenční model ISO/OSI jich předpokládá sedm.
Aplikační vrstva Nejvyšší vrstva je aplikační. Obsluhuje reprezentaci dat a kódování. Data jsou zde řádně zapouzdřena před předáním protokolům z nižší vrstvy, jakými jsou TCP, UDP. Aplikační vrstva obsahuje protokoly pro přenos souborů, e-mail, vzdálené přihlášení a další. ➢
File Transfer Protocol (FTP) – FTP je spolehlivá spojovaná služba, která využívá TCP protokol pro přenos souborů mezi dvěma systémy podporující FTP.
➢
Trivial File Transfer Protocol (TFTP) – TFTP je nespojovaná služba. Využívá UDP protokol. TFTP se používá pro přenos konfiguračních souborů a Cisco IOS souborů a k přenosům mezi systémy podporujícími TFTP. Ve stabilním prostředí je výhodnější, protože je rychlejší než FTP.
➢
Network File System (NFS) – NFS je protokol pro distribuovaný souborový systém vyvinutý firmou Sun Microsystems. Protokol dovoluje přistupovat skrz síť k souborů na vzdálených počítačích.
➢
Simple Mail Transfer Protocol (SMTP) – SMTP protokol pro přenos e-mailových zpráv přes počítačovou síť. Neumí přenášet jiná než textová data (plain text).
➢
Telnet – Pomocí Telnetu lze přistupovat ke vzdálenému počítači.
➢
Simple Network Management Protocol (SNMP) – SNMP protokol pro sledování a řízení síťových zařízení. Používá se k nastavení výkonnosti, bezpečnosti či zjištění statistik o provozu v síti.
➢
Domain Name System (DNS) – DNS je systém používaný v Internetu k překladu doménových jmen na IP adresy.
Transportní vrstva Transportní vrstva poskytuje logické spojení mezi zdrojovým a cílovým počítačem. Protokoly této vrstvy rozdělují nebo sestavují data, která přichází z vyšší vrstvy, tak aby mohla být předána nižší vrstvě a přenesena. Jedním z hlavních úkolů je zajistit, že data spolehlivě dorazila skrz síť k na místo určení. Napomáhá k tomu technika „sliding windows“ (posuvná okna), číslování 4
sekvencí a potvrzovací zprávy (acknowledgments). Transportní vrstva vymezuje spojení mezi aplikacemi hostů. Transportní vrstva zahrnuje protokoly TPC a UDP: ➢
TCP – Transmisson Control Protocol (spojovaný)
➢
UDP – User Datagram Protocol (nespojovaný)
Funkce TCP a UDP jsou následující: ➢
Rozdělení dat přicházejících z aplikační vrstvy
➢
Poslání segmentů z jednoho zařízení na druhé
Hlavním úkolem TCP je zajistit spojení mezi koncovými uživateli, poskytnutí řízení toku dat pomocí „sliding windows“ a zajištění spolehlivosti číslováním sekvencí a potvrzovacími zprávami.
Internetová vrstva Účelem internetové vrstvy je vybrat pro posílané pakety nejvhodnější cestu skrz síť. Hlavním protokolem této vrstvy je protokol IP. Protokoly internetové vrstvy: ➢
IP poskytuje směrování paketů. Nezajímá ho obsah paketů, ale jen jejich cesta k cíli.
➢
Internet Control Message Protocol (ICMP) má schoponosti pro řízení a zasílání zpráv.
➢
Address Resolution Protocol (ARP) – na základě IP adresy určí MAC adresu.
➢
Reverse Address Resolution Protocol (RARP) na základě MAC adresy určí IP adresu.
IP vykonává operace popisu struktury paketu a adres, přenáší data do síťové vrstvy, směruje pakety ke vzdáleným hostům. IP je někdy označený za nespolehlivý protokol, protože nedetekuje chyby a neopravuje je. To zajišťují vyšší vrstvy.
Vrstva síťového rozhraní Tato vrstva obsahuje LAN a WAN technologie a všechny detaily, které zajišťují fyzická a linková vrstva modelu OSI. Vrstva síťového rozhraní ví, jak zacházet se síťovým hardwarem a jak přistupovat na přenosové médium. Dále také vytváří vazbu IP adresy na fyzické rozhraní a zapozdřuje IP pakety do rámců. Protokoly vrstvy síťového rozhraní: Ethernet, Fast Ethernet, SLIP, PPP, FDDI, ATM, Frame Relay, SMDS, ARP, RARP
5
IP adresy V současné době se stále nejvíce používají adresy verze 4. Jedná se o 4 bajtové adresy. Počet adres je tedy 4 294 467 295. Zapisují se obvykle jako 4 desítkové číslice oddělené tečkami. Např. 192.168.0.1 Adresa určuje podle podle masky síť a pak konkrétního hosta v dané síti. Zápis masky je stejný jako zápis IP adresy nebo se za IP adresu píše lomítko a počet bitů zleva, na kterých obsahuje maska jedničku. Např. 192.168.0.1 / 24 je adresa 192.168.0.1 s maskou 255.255.255.0 v binární podobě je to pak adresa:
11000000.10101000.00000000.00000001
maska:
11111111.11111111.11111111.00000000
Adresa sítě je dána bitovým logický součinem, tzn. Adresa sítě = adresa & maska Adresa počítače v síti = adresa & (!maska) kde ! chápeme jako bitovou negaci IPv4 adresy se dělí do různých tříd podle jejich použití, odpovídají jim různé počty podsítí a hostů v závislosti na masce viz. následující tabulka. Třída
Podsítě
Počet Hostů
Poč. bity
Rozsah adres
Maska
A
126*
16 777 216
0
0-127
/8
B
16 384
65 535
10
128-191
/16
C
2 097 152
254
110
192-223
/24
1110
224-239
/28
D *127 je rezervovaná
E třída 240-255 pro vlastní výzkum IETF (Internet Engineering Task Force) Nová verze adres IPv6 využívá 16 bajtů a zapisuje se v hexadecimální podobě po 2 bajtech oddělených dvojtečkami. Počet adres je 3,4 * 1038. Např. A524:72D3:2C80:DD02:0029:EC76:002B:EA73 Význam jednotlivých bajtů popisuje následující obrázek.
6
TCP/IP Transportní vrstva Transportní vrstva přenáší data mezi aplikacemi zdrojového a cílového zařízení. Mnoho těchto aplikací je uživatelům důvěrně známo. HTTP, FTP a SMTP lidé vidí jako internetové prohlížeče a e-mailové klienty.
Úvod do TCP/IP transportní vrstvy Tato vrstva zajistí logické spojení mezi dvěma koncovými body v síti, rozdělí a znovu sestaví data posílaná aplikační vrstvou. Funkce vrstvy: ➢
Zajistí, že odesílatel dostane potvrzení o odeslaném segmentu
➢
Umožní přeposlat nepotvrzené segmenty.
➢
U příjemce vloží segment na správné místo podle pořadí.
➢
Dokáže se vyrovnat a řídit zahlcení.
Řízení toku dat (flow control) Při vysílání segmentů do sítě se pokouší síťová vrstva zajistit, aby nedošlo ke ztrátě dat. K ní můžu dojít, pokud cílový počítač nestíhá přijímat příchozí data. Ten je pak donucen data zahodit. Řízení toku dat umožní obou účastněným stranám spolu komunikovat, jestli je vše v pořádku.
Navázání relace (session), udržování a ukončení Před přenosem dat mezi jednotlivými aplikacemi se nejprve oba počítače informují o tom, že mezi nimi začne transport začne. Jeden počítač oznámí spojení druhému a ten to musí potvrdit, pak jsou obě strany připraveny. Obrázek ukazuje typické spojení dvou systémů. Komunikace začíná žádostí o navázání spojení, následuje prvotní synchronizace a její potvrzení, že obě strany souhlasí s navázáním spojení a může začít přenos dat.
7
Zahlcení může nastat ze dvou důvodů: 1. Rychlost vysílání z počítače je větší než propustnost sítě. 2. Při vysílání dat z více počítačů jednomu cíli. Když přicházejí datagramy k cíli nebo k bráně příliš rychle, jsou dočasně uloženy do paměti. Pokud je paměť naplněna, jsou datagramy zahozeny. Místo toho, aby byla data ztracena, příjemce upozorní zdroj, že není připraven. Tento signál zastaví přenos až do okamžiku, kdy zdrojový počítač dostane zprávu, že cíl je opět připraven. Ukončení celého přenosu signalizuje zdroj svému cíli zprávou, kterou cíl musí potvrdit. Tím je přenos ukončen.
Three-way handshake TCP je spojovaný protokol. Vyžaduje ustálení spojení před samotným přenosem dat. Nejprve se oba počítače musí sesynchronizovat pomocí „sequence numbers“, tím se vytvoří spojení. Synchronizace probíhá výměnnou segmentů, které nesou kontrolní bit (SYN) a sequence numbers. Toto řešení vyžaduje mechanismus, který vybere počáteční sequence numbers a vymění je. Na začátku synchronizace je potřeba poslat vlastní počáteční „sequence number“ (INS) a potvrdit jeho přijetí (ACK) na druhé straně. Toto provedou obě strany. “Three-way handshake“ je nezbytný, protože „sequence numbers“ nejsou vytvořena z globálních hodin a TCP protokoly mohou používat různých mechanismů na jejich vytvoření. Pořadí zpráv je zobrazen na obrázku.
8
Windowing Pakety musí být doručeny k příjemci ve stejném pořadí jako byly odeslány. To lze zajistit potvrzováním poslaných paketů (ACK). Pokud bude vysílač čekat na signál ACK, sníží se tím propustnost. Proto mnoho spojovaných spolehlivých protokolů poskytuje posílání ACK po více přijatých paketech. Počet přijatých paketů dostane zdrojový počítač před přijetím potvrzení ACK. Pokud zdroj nedostane potvrzení o přijetí, může změnit velikost okna a pošle vyslané pakety znovu.
Acknowledgment Bezpečné doručení garantuje, že proud dat posílaný z jednoho zařízení je doručeno jinému zařízení bez duplikací a ztrát. Pozitivní „acknowledgment“ s opětovným přenosem je jednou z technik, která garantuje spolehlivé doručování dat. Takovýto „acknowledgment“ vyžaduje, aby příjemce komunikoval se zdrojem a posílal mu zpět ACK, když přijme data. Vysílač si zaznamenává všechny datové packety nebo segmenty, které poslal a očekává ACK. Zdrojový počítač spustí časovač, když vyšle data. Pokud vyprší čas před přijetím ACK, pošle data znovu.
9
TCP TCP je spojovaným protokolem transportní vrstvy, který poskytuje spolehlivý plně-duplexní datový přenos. Před samotný přenosem je ustáleno spojení. TCP rozděluje zprávy do segmentů a znovu je sestavuje v cílových počítačích, popř. znovu posílá vše, co nebylo přijato. Mezi aplikace, které používají TCP patří FTP, HTTP, SMTP, Telnet. TCP posílá data zapouzdřená v segmentech jejichž struktura je následující:
Význam jednotlivých položek je následující. „Source port“ označuje číslo portu, ze kterého jsou data poslána. „Destination port“ je číslo cílového portu. „Sequence number“ značí číslo sekvence pro zajištění správného pořadí . „Acknowledgment number“ je číslo označující další očekávaný TCP bajt. HLEN je opět číslo označující počet 32-bitových čísel v hlavičce. „Code bits“ označuje kontrolní bit pro nastavení a ukončení relace. „Window“ je velikost okna v bajtech. „Checksum“ značí kontrolní součet hlavičky a datových polí. „Urgent pointer“ značí konec povinných dat. „Data“ jsou data protokolu vyšší vrstvy.
UDP UDP je jednoduchý protokol, který přenáší datagramy bez záruky jejich doručení. To ponechává na protokolech vyšší vrstvy, stejně jako indikaci chyb a opětovné poslání nedoručených dat. UDP nepoužívá windowing nebo ACK. UDP je navrženo pro aplikace, které nepotřebují dodržovat přesné pořadí segmentů. UDP používá např. TFTP, SNMP, DHCP, DNS .
10
Význam jednotlivých položek je následující. „Source port“ je zdrojový port, naproti tomu „Destination port“ je cílový port. „Length“ značí velikost hlavicky v bajtech. „Checksum“ je kontrolní součet hlavičky a dat. „Data“ jsou data protokolu vyšší vrstvy.
Čísla TCP a UDP portů TCP i UDP používají čísla portů, aby rozpoznali komunikaci různých aplikací. Některé porty jsou přidělené autoritou Internet Assigned Numbers Authority (IANA) jednotlivým aplikacím. Čísla portů nad 1023 mohou být používána různě, ale mnoho z nich je již registrováno pro konkrétní aplikace. Porty pro UDP a TCP jsou oddělené. Rozmezí portů ➢
Vyhrazené 0 – 1023
➢
Registrované 1024 - 65535
11
Aplikační vrstva Úvod do TCP/IP aplikační vrstvy Relační, prezentační a aplikační vrstva OSI modelu jsem spojeny do jedné aplikační vrstvy modelu TCP/IP. Tento návrh poskytuje maximální flexibilitu pro výrobce software. TCP/IP protokoly, které podporují přenos souborů, e-mail a vzdálené přihlašování jsou nepochybně veřejnosti známy.
DNS Internet je postaven na hierarchickém adresování. Toto schéma dovoluje, aby bylo směrování klasifikováno, aby se nemuselo používat individuální směrování. Pro lidi je velmi nepraktická a těžko zapamatovatelná IP adresa, proto se zavedla tzv. doménová jména. Systém doménových jmen Domain Name System (DNS) dokáže převést jméno na IP adresu. Doména je skupina počítačů, které spolu souvisí, ať už geograficky nebo svým záměrem. Doménové jméno se může skládat z písmen angl. abecedy a čísel a dalších znamének jako např. pomlčky, tečky. Existuje přes více než 200 domén prvního řádu. Některé z nich jsou např. .us – United States, .cz – Česká republika, .edu – vzdělání, .com – komerční, .gov – vláda, .org – nevýdělečné organizace atd.
FTP a TFTP FTP (file transfer protocol) je spolehlivá spojovaná služba, která slouží k přenosu souborů mezi systémy podporujícími FTP. Hlavním účelem je přenášet soubory ze serverů na klienty a naopak. Při přenosu vystupuje vždy jeden jako server (ten přenos řídí) a druhý jako klient. TFTP je nesepojovaná služba, která se používá pro přenos konfiguračních souborů mezi směrovači nebo k přenosu souborů mezi systémy podporujícími TFTP. Je navržen tak, aby byl malý a snadno implementovatelný. Postrádá mnoho vlastností FTP. TFTP dokáže číst a zapisovat soubory vzdáleného serveru, ale nedokáže získat adresářovou strukturu nebo obstarat autentizaci. Je užitečný ve stabilních spolehlivých sítích, kde je rychlejší než FTP.
HTTP Hypertext Transfer Protocol (HTTP) pracuje s World Wide Web, což je nejrychleji rostoucí a nejpoužívanější část Internetu. Jeden z hlavních důvodů takového zájmu o web je jednoduchý přístup k informacím pomocí internetového prohlížeče. Ten reprezentuje různá (i multimediální) data na internetových stránkách, které jsou ve formátu (X)HTML (eXtended Hypertext Markup Language). Provázané linky těchto dokumentů umožňují jednoduchou navigaci. Cesta ke stránkám je dána identifikátorem Uniform Resource Locator (URL). Klient si vyžádá požadovanou stránku a pokud ta na serveru existuje, dostane ji.
SMTP E-mailové servery mezi sebou komunikují pomocí Simple Mail Transfer Protocol (SMTP), aby si mohli posílat a přijímat elektronickou poštu. SMTP protokol přenáší zprávy v ASCII formátu. Existuje několik cest, jak mohou mail klienti pracovat. Mohou použít program pro přístup na mail server přímo k souborům, nebo je mohou ukládat pomocí mnoha síťových protokolů. Nejpopulárnější protokoly jsou POP3 a IMAP4 a oba používají TCP pro přenos dat. Ačkoliv tito klienti používají speciální protokoly pro ukládání mailů, téměř vždy používají SMTP pro posílání. 12
Při kontrole konfigurace mail klientů se kontroluje korektnost nastavení protokolů SMTP a POP nebo IMAP. Jednou z možností jak testovat, zda je mail server dostupný je Telnet na SMTP (port 25) nebo na POP3 (port 110). Následující příkaz testuje, zda je služba SMTP dostupna na mail serveru s IP adresou 192.168.10.5: C:\>telnet 192.168.10.5 25
SNMP Simple Network Management Protocol (SNMP) je protokol běžící na aplikační vrstvě sloužící pro usnadnění výměny řídících informací mezi síťovými zařízeními. SNMP umožňuje síťovým správcům řídit výkon sítě, hledat a řešit síťové problémy a usnadňuje také naplánování růstu sítě. SNMP užívá UDP který je na transportní vrstvě. SNMP obsahuje tři hlavní prostředky pro usnadnění správy sítě: ➢
Network Managament System (NMS) – NMS spouští aplikace, které monitorují a kontrolují zařízení. Množství procesů a množství paměti vyžadované pro správu sítě jsou poskytované NMS. Jeden nebo více NMS musí v síti existovat.
➢
Managed devices – jde o síťové uzly obsahující SNMP agenty, kteří jsou jakoby místními správci. „Manage devices“ tedy shromažďuje a ukládá informace o síti a umožňuje přístup k nim pro NMS užitím SNMP. „Managed devices“, občas zvané jako sítové elementy, mohou být směrovače, servery, přepínače, mosty, rozbočovače, tiskárny, nebo počítače ve formě hostů.
➢
Agenti – Agent je program pro správu a řízení sítě a nachází se právě v „managed devices“. Agent má lokální znalosti o síti a překládá tyto informace tak, aby měli formu kompatibilní se SNMP
Telnet K vytvoření spojení z telnet klienta musí být vybrány volby pro spojení. Typicky se volí jméno hosta a typ terminálu. Jméno hosta je IP adresa nebo DNS jméno vzdáleného počítače. Typ terminálu popisuje typ emulace, kterou by měl telnet klient vykonávat. Telnet operace se provádí tak, že se na telnet server přenáší stisky kláves a zpět se vrací screen výstupu. Telnet pracuje na aplikační vrstve TCP/IP modelu a tedy na horních třech vrstvách OSI modelu. Aplikační vrstva pracuje s příkazovou řádkou. Prezentační vrstva formátuje za použití ASCII. Relační vrstva provádí samotný přenos. V TCP/IP modelu jsou funkce všech těchto vrstev obsaženy jako části vrstvy aplikační.
Kontrolní otázky ➢
Vrstvy TCP/IP modelu
➢
Co zajišťuje transportní vrstva?
➢
Co zajišťuje aplikační vrstva?
➢
Protokoly transportní vrstvy
➢
Protokoly aplikační vrstvy 13