CCNA 2/10 Další funkce TCP/IP Aleš Mareček Jaroslav Matějíček 1

Podobné dokumenty
6. Transportní vrstva

Počítačové sítě Transportní vrstva. Transportní vrstva

Vlastnosti podporované transportním protokolem TCP:

Počítačové sítě II. 14. Transportní vrstva: TCP a UDP. Miroslav Spousta, 2005

4. Transportní vrstva

Počítačové sítě 1 Přednáška č.6 Transportní vrstva

Model ISO - OSI. 5 až 7 - uživatelská část, 1 až 3 - síťová část

TÉMATICKÝ OKRUH Počítače, sítě a operační systémy

Zjednodusene zaklady ARP,TCP/IP Jiri Kubina Ver. 1.0 leden 2006

Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF

Přednáška 3. Opakovače,směrovače, mosty a síťové brány

Zabezpečení dat při přenosu

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.

Technologie počítačových sítí 8. přednáška

Počítačové sítě pro V3.x Teoretická průprava II. Ing. František Kovařík

Analýza aplikačních protokolů

Rodina protokolů TCP/IP. Rodina protokolů TCP/IP. verze 3. Téma 9: Transportní protokoly. Jiří Peterka

Transportní vrstva. RNDr. Ing. Vladimir Smotlacha, Ph.D.

Síťová vrstva. RNDr. Ing. Vladimir Smotlacha, Ph.D.

4. Síťová vrstva. Síťová vrstva. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme si funkci síťové vrstvy a jednotlivé protokoly.

Počítačové sítě. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

TFTP Trivial File Transfer Protocol

Poˇ c ıtaˇ cov e s ıtˇ e pˇredn aˇsky Jan Outrata ˇr ıjen listopad 2008 Jan Outrata (KI UP) Poˇ c ıtaˇ cov e s ıtˇ e ˇ r ıjen listopad / 34

Počítačové sítě Systém pro přenos souborů protokol FTP

Eva Hladká. podzim 2011

Rodina protokolů TCP/IP verze 3

JAK ČÍST TUTO PREZENTACI

Y36PSI Protokolová rodina TCP/IP

Jan Outrata. říjen prosinec 2010 (aktualizace září prosinec 2013)

Seminární práce do předmětu: Bezpečnost informačních systémů. téma: IPsec. Vypracoval: Libor Stránský

Identifikátor materiálu: ICT-3-03

MODELY POČÍTAČOVÝCH SÍTÍ

PROTOKOL RDS. Dotaz na stav stanice " STAV CNC Informace o stavu CNC a radiové stanice FORMÁT JEDNOTLIVÝCH ZPRÁV

Počítačové sítě Teoretická průprava II. Ing. František Kovařík

3. Linková vrstva. Linková (spojová) vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl

Inovace a zkvalitnění výuky prostřednictvím ICT Počítačové sítě Vrstvový model TCP/IP Ing. Zelinka Pavel

Komunikační protokol

SPINEL. Komunikační protokol. Obecný popis. Verze 1.0

Počítačové sítě. Lekce 3: Referenční model ISO/OSI

EXTRAKT z české technické normy

VYUŽITÍ PROTOKOLU TCP V SIMULAČNÍM PROSTŘEDÍ OPNET MODELER

mbank.cz mtransfer Okamžitá notifikace o mtransferu Dokumentace pro externího partnera

SSL Secure Sockets Layer

Úvod Virtuální kanál TCP Datagramová služba UDP URL TCP, UDP, URL. Fakulta elektrotechnická

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP TCP/IP.

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování

Komunikační protokol

3.17 Využívané síťové protokoly

Technologie počítačových komunikací

Datum vytvoření. Vytvořeno 18. října Očekávaný výstup. Žák chápe pojmy URL, IP, umí vyjmenovat běžné protokoly a ví, k čemu slouží

Inovace bakalářského studijního oboru Aplikovaná chemie

DUM 16 téma: Protokoly vyšších řádů

Management procesu II Mgr. Josef Horálek

Software pro vzdálenou laboratoř

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

Y36PSI QoS Jiří Smítka. Jan Kubr - 8_rizeni_toku Jan Kubr 1/23

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava. Cvičení 5 POČÍTAČOVÁ OBRANA A ÚTOK - POU

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.

Inovace bakalářského studijního oboru Aplikovaná chemie

Protokoly TCP/IP. rek. Petr Grygárek Petr Grygárek, FEI VŠB-TU Ostrava, Počítačové sítě (Bc.) 1

Základy transportního protokolu TCP. Leoš Boháč

Technologie počítačových sítí 11. přednáška

Důležité pojmy z oblasti počítačové sítě

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Ústav automobilního a dopravního inženýrství. Datové sběrnice CAN. Brno, Česká republika

Ing. Jitka Dařbujanová. , SSL, News, elektronické konference

SAS (Single-Attachment Station) - s jednou dvojicí konektorů, tj. pro použití pouze na jednoduchém kruhu.

Adaptabilní systém pro zvýšení rychlosti a spolehlivosti přenosu dat v přenosové síti

Počítačové sítě 1 Přednáška č.4 Síťová vrstva

Semestrální práce CC3 TCP/IP transport a aplikace

Katedra softwarového inženýrství Matematicko-fyzikální fakulta UK

Systémy pro sběr a přenos dat

Počítačové sítě pro V3.x Teoretická průprava I. Ing. František Kovařík

Seminární práce pro předmět Technologie sítí WAN (CCNA4) Síťové modely, základy IP adresování

Y36PSI IPv6. Jan Kubr - 7_IPv6 Jan Kubr 1/29

4. Co je to modulace, základní typy modulací, co je to vícestavová fázová modulace, použití. Znázorněte modulaci, která využívá 4 amplitud a 4 fází.

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB

Vrstva přístupu k médiu (MAC) a/b/g/n

Směrování- OSPF. Směrování podle stavu linek (LSA) Spolehlivé záplavové doručování

Distribuované systémy a počítačové sítě

SCTP protokol. Lukáš Krejčík

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.

Základní techniky skenování TCP portů

Výuková interaktivní animace TCP/IP síťové komunikace

Rodina protokolů TCP/IP, verze 2.7. Část 7: Transportní protokoly

Kódování signálu. Problémy při návrhu linkové úrovně. Úvod do počítačových sítí. Linková úroveň

5. Směrování v počítačových sítích a směrovací protokoly

Sada protokolů TCP/IP

RTP = real=time protocol ST-II = Internet Stream Protocol (náhrada TCP pro streamy, řídicí protokol, datový přenos)

Typy samostatných úloh PSI 2005/2006

Počítačové sítě Implementace RM OSI. Počítačové sítě - Vrstva datových spojů 1

Technologie počítačových sítí 2. přednáška

Základní komunikační operace

Benefity a úskalí plošného souvislého sledování IP provozu na bázi toků při řešení bezpečnostních hlášení

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat.

Protokol S-BUS pro MORSE Popis protokolu

Y36SPS Bezpečnostní architektura PS

Transkript:

CCNA 2/10 Další funkce TCP/IP Aleš Mareček Jaroslav Matějíček xmarec07@stud.fit.vutbr.cz xmatej33@stud.fit.vutbr.cz 1

Obsah: 1. TCP... 3 1.1 Hlavička TCP segmentu... 3 1.2 Přenos dat a potvrzovací proces... 4 1.3 Three-Way Handshake... 6 2. UDP...7 3. Porty...8 4. Otázky k procvičení...8 2

1. TCP 1.1 Hlavička TCP segmentu TCP je spojově orientovaný protokol používaný pro spolehlivou přepravu dat přes síť, zajišťuje: proudový přenos dat není potvrzován každý paket, ale skupina (window); každý byte je identifikován sekvenčním číslem; pokud TCP dostane od vyšších vrstev blok dat, rozdělí je do segmentů, označí sekvenčním číslem a pošle 3. vrtsvě (IP) k přenosu spolehlivost zajištěna potvrzováním příjmu skupiny paketů; ztracené nebo opožděné pakety příjemce nepotvrdí a odesílatel je pošle znovu efektivní řízení toku příjemce nepotvrzuje každý paket, ale skupinu (příjemce informuje odesílatele jaké množství paketů je schopen přijmout čímž je zamezeno přetečení jeho interních bufferů) plně duplexní operaci TCP umožňuje přijímat i odesílat data současně multiplexing možnost datových toků různých aplikací vyšších vrstev najednou prostřednictvím jednoho spojení TCP je definován v RFC 793. Hlavička TCP segmentu Source Port Destination Port Sequence Number Acknowledgement Number Data Offset Reserved Control Bits Window Checksum Urgent Pointer Options Padding Data octets Source port - port procesu generujícího datagram Destination port - určuje kterému procesu na cílovém uzlu jsou data určena Sequence Number - sekvenční číslo prvního datového oktetu v segmentu (pokud není nastaven příznak SYN). Pokud je nastaven příznak SYN, jedná se o tzv. initial sequence number ISN a první datový oktet má číslo ISN + 1 Acknowledgement Number - má význam pouze když je nastaven kontrolní bit ACK. Toto číslo je nastaveno na hodnotu, kterou odesílatel očekává v poli Sequence Number v následujícím paketu. Je-li ustaveno spojení, je toto číslo vždy posíláno. Data Offset - specifikuje číslo vyjádřené 32bitovým slovem. Indikuje kde data v segmentu začínají data přenášená tímto datagramem. Reserved - toto 6ti bitové pole je rezervované a mělo by vždy být nulové Control Bits - kontrolní bity (příznaky) zajišťující "handshaking" a ostatní specifické procesy URG - Urgent Pointer ACK - Acknowledgement PSH - Push funkce 3

RST - Reset spojení SYN - synchronizace sekvenčních čísel FIN - oznámení, že odesílající nemá žádná další data Window - množství dat oktetech, které je potvrzováno najednou Checksum - kontrolní součet, není povinný a v tom případě je 0 Urgent Pointer - údaj je platný pouze pokud je nastaven příznak URG Options - pole proměnné délky určené pro volitelné parametry TCP, parametr je používán např. pro indikaci maximální velikosti segmentu, kterou je přijímají strana schopna zpracovat Padding - specifické množství nulových bitů doplňujících hlavičku tak, aby měla 32 bitovou hranici (tj. aby byla beze zbytku dělitelná 32) Informace tvořená dvojicí IP adresa, číslo portu je nazývána socket. Socket představuje definitivní informaci o cíli TCP komunikace. Port je číslo, které rozlišuje proces v rámci uzlu. Při navazování spojení nejsou důležité pouze IP adresy, ale i čísla portů. Port na serverové straně jednoznačně identifikuje některé z procesů. Pro některé z procesů byla definována konkrétní čísla portů (známa jako well known ports). Spolehlivost přenosu a řízení toku požaduje aby protokol TCP inicializoval a spravoval stavové informace o každém datovém přenosu. Kombinace těchto informací se nazývá connection. Zahrnuje čísla socketů, sekvenční čísla a podstatnou část informací o window. Každé spojení (connection) je jednoznačně definované párem socketů, které identifikují obě strany virtuálního spojení. Spojení je tedy plně definováno čtyřmi čísly - internetovou adresou obou stran a TCP portem obou stran. Internetové adresy jsou součástí IP hlavičky, čísla portů jsou součástí TCP hlavičky. Když chtějí dva procesy komunikovat, TCP musí nejdříve na každém uzlu navázat spojení. Po ukončení přenosu je toto spojení ukončeno a tím uvolněny zdroje dalším uživatelům. Během datového přenosu zajišťuje TCP na každém z uzlů kontrolní mechanismus zda byla data přijata bez chyb nebo bez ztrát. Pokud dojde k přerušení přenosu např. díky problémům se sítí, oba uzly tento problém detekují a oznámí jej aplikačnímu programu. 1.2 Přenos dat a potvrzovací proces Každý oktet v rámci segmentu je potvrzen tím, že je potvrzeno přijetí segmentu, který oktet obsahuje. Potvrzování je podobné potvrzování u navazování spojení (handshaking). Používá příznak ACK a sekvenční čísla. Zdrojový proces musí uchovávat všechna odeslaná data dokud neobdrží potvrzení jejich převzetí. Jestliže potvrzení nepřijde do určité doby (uživatelsky ovlivnitelná veličina), proces považuje data za ztracená nebo poškozená a odešle je znovu všechna počínaje prvním nepotvrzeným bytem. Pokud nepřijde odpověď do vypršení časovače, je provedeno opětovné odeslání všech nepotvrzených dat. Počet možných opakování je uživatelsky ovlivnitelný a dojde-li k jeho překročení je pro vyšší vrstvy generována chyba a přerušeno TCP spojení. TCP proces má dvě fronty frontu pro odesílaná data a frontu pro přijímaná data. Již bylo řečeno, že data v 4

odesílací frontě jsou držena dokud nepřijde potvrzení jejich přijetí. Poté je fronta uvolněna a od vyšší vrstvy jsou přijata nová data k odeslání. Cílový proces si podle sekvenčních čísel ukládá přijímané segmenty do přijímací fronty (bufferu) a tím dochází ke skládání přijímané informace. Tato data postupuje ke zpracování vyšší vrstvě. Potvrzovací proces Již bylo řečeno, že potvrzovací proces je založen na sekvenčních číslech. Sekvenční čísla jsou generována v první chvíli náhodně a v průběhu procesu komunikace jsou postupně zvyšována o příslušný počet již odeslaných (obdržených) oktetů (bytů). Protože potvrzování každého segmentu je neefektivní, byl zvolen specifický model řízení toku dat založený na tzv. okně (window). Tento model zefektivňuje proces potvrzování přijatých paketů tím že významně redukuje počet potvrzování. Okno má určitou velikost, která představuje objem dat přenesený do potvrzení. Počáteční velikost okna je určena v procesu ustavení spojení a může být v průběhu přenosu měněna. Přizpůsobování velikosti okna TCP proces je schopen se přizpůsobit kvalitě spojení. Velikost okna může být v závislosti na spolehlivosti doručení celého okna může být zvětšována i zmenšována. Zvětšování i zmenšování zajišťuje přijímající strana, vysílající strana se na základě požadavků přizpůsobuje. Pokud přijímající proces není schopen přijímat další data, inzeruje to vysílající straně prostřednictvím tzv. zero receive window neboli okna s nulovou velikostí. Data, která jsou v tu chvíli na cestě nejsou přijímajícím procesem potvrzena. Vysílající proces si nastaví nulovou velikost okna a dokud není přijímajícím procesem velikost okna změněna (tento TCP proces není opět schopen přijímat data), musí vysílat pakety s neplatným sekvenčním číslem a potvrzovacím číslem a jedním bytem nesmyslných dat. Přijímající proces posílá potvrzení jejich příjmu. Důvodem těchto paketů je udržení TCP spojení. 5

1.3 Three-Way Handshake Nový TCP proces otevírá socket a používá při tom lokální a vzdálené číslo portu, specifikované v TCB. Jestliže TCP proces na aktivní straně přiřadí číslu lokálního portu hodnotu nula, IP zajistí socketu unikátní číslo lokálního portu. Pasivní strana odpovídá aktivní straně s použitím čísel portů, které byly zajištěny aktivní stranou. Je-li lokální socket vytvořen, TCP posílá vzdálenému socketu inicializační paket SYN, nastavuje časovač pro opětovné poslání (retransmission timer) a čeká na návrat odpovědi od vzdáleného soketu. Nejdéle však po dobu danou časovačem. SYN paket obsahuje prázdný TCP segment a má nastavený příznak SYN v TCP hlavičce. Když dorazí SYN paket na serverovou stranu procesu, IP proces zjišťuje zda je socket možné přijmout. Je-li vše v pořádku, postoupí paket poslouchajícímu procesu, který verifikuje nastavení příznaku SYN a kontrolní součet. Pokud je paket vhodný k přijetí požadavku, naslouchající proces zajišťuje vytvoření TCP procesu na této (pasivní) straně. Je vytvořen TCB, TCP software z paketu vybere IP adresu odesílatele a čísla TCP portů a zajistí vytvoření bufferu. Nově vytvořený proces odesílá aktivní straně SYN-ACK paket. Při tom nastavuje časovač pro opětovné poslání (retransmission timer) za stejným účelem jako první strana. Když TCP proces, který vyvolal spojení obdrží ze serverové (pasivní) strany paket potvrzení synchronizace (SYN-ACK), posílá zpět paket potvrzující přijetí potvrzení. Mezi tímto paketem a paketem, který jako potvrzení obdržel sám je rozdíl v tom, že tento paket má nastaven pouze příznak ACK, nikoliv SYN. 6

Pokud serverový proces obdrží ACK paket, je spojení ustaveno a může být zahájen přenos dat. Pro všechny kroky platí, že po pokud nepřijde odpověď do vypršení časovače, je provedeno opětovné odeslání paketu. Počet možných opakování je uživatelsky ovlivnitelný a dojde-li k jeho překročení je pro vyšší vrstvy generována chyba. Asi jste si všimli, že v kroku č. 1 je nastaven příznak SYN a v kroku č. 2 jsou společně nastaveny příznaky SYN a ACK. Jde o stavy uvedených příznaků, které jsou jedinečné pro proces ustavení spojení nikdy jindy se v TCP procesu nevyskytují. Této znalosti lze použít pro zamezení jednosměrného navázání TCP spojení (např. povolit z intranetu do Internetu, ale zakázat z Internetu do intranetu) a tvoří jeden ze základních principů filtračních firewallů. 2. UDP UDP je nespojový (connectionless) protokol, nepřináší vlastnosti spolehlivosti přenosu, řízení toku nebo funkcí opravy chyb; jde o jednoduchý interfejs mezi protokoly vyšší vrstvy a IP protokolem hlavička protokolu UDP obsahu menší množství informací než hlavička TCP a tím má tento protokol menší režii; protože UDP nemá žádné mechanismy pro dorozumívání se obou komunikujících stran je přenos rychlejší než v případě TCP. UDP je definován v RFC 768. Hlavička UDP Source port Length Destination port Checksum Data octets Source port Destination port Length - port procesu generujícího datagram; pokud proces nepodporuje zdrojový port, může toto pole zůstat 0. - určuje kterému procesu na cílovém uzlu jsou data určena. - vyjadřuje délku UDP hlavičky a dat vyjádřenou v oktetech. Checksum - kontrolní součet, není povinný a v tom případě je 0. 7

3. Porty Port je prostředek pro upřesnění identifikace odesílatele a příjemce síťových dat v rámci počítače (přesněji v rámci IP adresy). To znamená, že určuje, kterému programu mají být data předána. Číslo portu je reprezentováno dvěma byty tudiž je k dispozici rozsah portů 0-65535 Porty se dají rozdělit do několika skupin. 0 1023 (TCP i UDP) - označovány jako well known ports, jednotlivé porty jsou vyhrazeny pro některé služby (http://www.iana.org/assignments/port-numbers) 1024 49151 - tzv. registrované porty, používají se pro příchozí spojení méně znamých služeb 49152 65535 - porty pro odchozí spojení 4. Otázky k procvičení Spočítejte jak dlouho by trval přenos 1 MB dat za předpokladu a) window size je 10 b) window size je 1 Zpoždění průchodu paketu od jednoho uzlu k druhému a zpět je 100 ms a MTU je 500 byte. Uvažujme ideální síť kde nedochází ke ztrátám paketů. Pro zjednodušení nebudeme počítat skutečnou dobu, ale pouze navýšení doby přenosu zapřičiněnem potvrzováním. Kolik je možno mít naráz otevřeno tcp spojení? Vyjmenujte nejznámější well known porty. Začátek komunikace je uvozen packetem SYN. SEQ. number je 200. Jaký byde SEQ. number a ACK při příjmutí SYN a odpovědi ACK? 8