Protokol TCP (1) TCP (Transmission Control Protocol) je speci-fikován dokumentem RFC 793 Spojovaná (connection oriented) služba, která mezi dvěma aplikacemi naváže spojení Přenášené byty jsou číslovány Číslování začíná od náhodně vygenerované 32bitové hodnoty (ISN) Je-li překročena hodnota 232-1, pokračuje se cyklicky od hodnoty 0 Ztracená nebo poškozená data jsou znovu vy-žádána 17/09/2018
Protokol TCP (2) Integrita dat je zabezpečena pomocí kontrol-ního součtu Koncové aplikace (adresát a odesílatel) jsou identifikovány pomocí čísla portu (0 – 65535) Příklady čísel portů různých aplikací: FTP: port 21 SSH: port 22 Telnet: port 23 SMTP: port 25 HTTP: port 80 17/09/2018
Acknowledgment Number Protokol TCP (3) Přenos je realizován v segmentech TCP: + 0 – 3 4 – 7 8 – 15 16 – 31 Source Port Destination Port 32 Sequence Number 64 Acknowledgment Number 96 Data Offset Reserved C W R E C U R G A C K P S H R S T S Y N F I N Window Size 128 Checksum Urgent Pointer 160 Options 160, 192+ Data 17/09/2018
Protokol TCP (4) Source Port (16 b): Destination Port (16 b): identifikuje port odesílatele Destination Port (16 b): identifikuje port adresáta Sequence Number (32 b): je-li SYN=1, pak označuje náhodně vygenerované ISN – Initial Sequence Number je-li SYN=0, pak označuje pořadové číslo prvního bytu v části Data Acknowledgment Number (32 b): je-li ACK=1, pak označuje další byte, který příjemce očekává 17/09/2018
Protokol TCP (5) Data Offest (4 b): Reserved (4 b): Příznaky (8 b): specifikuje velikost hlavičky TCP v 32bitových slovech minimální velikost hlavičky je 20 B minimální hodnota Data Offset je 5 maximální velikost hlavičky je 60 B maximální hodnota Data Offset je 15 Reserved (4 b): rezervováno pro budoucí účely všechny bity by měly být nastaveny na 0 Příznaky (8 b): URG: je-li nastaven, pak indikuje, že pole Urgent Poin- ter obsahuje podstatné (platné) informace 17/09/2018
Protokol TCP (6) ACK: je-li nastaven, pak indikuje, že posílaný segment je součástí probíhajícího přenosu dat a pole Acknow- ledgment Number obsahuje podstatné (platné) infor- mace (další byte, který příjemce očekává). Je-li ACK=0 a SYN=1, pak se jedná o žádost o navá- zání spojení PSH: je-li nastaven, pak by měl příjemce poslat data přímo aplikaci a nikoliv je ukládat do buffferu RST: je-li nastaven, pak je spojení chybné a musí být resetováno SYN: používán společně s ACK pro navázání spojení FIN: je-li nastaven, pak značí, že spojení by mělo být ukončeno 17/09/2018
Protokol TCP (7) Window Size (16 b): Checksum (16 b): udává, kolik místa je ve vyrovnávací paměti adresáta používáno adresátem k informování odesílatele, jaké množství dat chce přijmout Checksum (16 b): kontrolní součet Urgent Pointer (16 b): je-li URG=1, pak udává pořadové číslo bytu, označující poslední urgentní byte Options: nepovinná část, určená pro speciální účely 17/09/2018
Protokol TCP (8) Navázání spojení (mezi stanicí A a stanicí B) probíhá ve třech krocích (3-way handshake): odeslání synchronizačního packetu (A B): má nastaven příznak SYN – oznamuje vznik nového spojení (ACK=0) v poli Sequence Number obsahuje náhodně vygenerova-né ISN (Initial Sequence Number) stanice A (ISN-A), které umožňuje rozpoznávat zasílané segmenty odeslání potvrzovacího packetu (B A) : má nastaveny příznaky SYN a ACK v poli Sequence Number obsahuje náhodně vygenerova-né ISN stanice B (ISN-B) – je nezávislé na ISN-A 17/09/2018
Protokol TCP (9) jako Acknowledgment Number je odesláno ISN-A+1, což indikuje, že segment navazující spojení byl korekt-ně přijat dokončení navázání spojení (A B) : stanice A zasílá stanici B packet s nastaveným příznakem ACK (SYN=0) pole Sequence Number je nastaveno na ISN-A+1 v Acknowledgment Number je odesláno ISN-B+1 Při přenosu dat je využívána metoda posuv-ného okna (sliding window method), umožňu-jící odesílat data, aniž by jejich příjem byl po-tvrzen až dokud se nedosáhne hranice okna 17/09/2018
Protokol TCP (10) Posuvné okno (příklad): Odesílatel Adresát 9 8 7 6 5 4 3 2 1 zapotřebí přenést segmenty 0 – 9, WIN=4 3 2 1 Odesílatel Adresát 9 8 7 6 5 4 3 2 1 poslány segmenty 0 – 3, které nyní čekají na potvrzení 17/09/2018
Protokol TCP (11) segment 0 přijat a potvrzen posunutí okna 3 2 1 Odesílatel Adresát 9 8 7 6 5 4 3 2 1 ACK 0 segment 0 přijat a potvrzen posunutí okna 4 3 2 1 Odesílatel Adresát 9 8 7 6 5 4 3 2 1 poslání segmentu 4 17/09/2018
Protokol TCP (12) segmenty 1 – 4 přijaty a potvrzeny posunutí okna Odesílatel Adresát 9 8 7 6 5 4 3 2 1 4 3 2 1 ACK 4 segmenty 1 – 4 přijaty a potvrzeny posunutí okna 8 7 6 5 Odesílatel Adresát 9 8 7 6 5 4 3 2 1 4 3 2 1 poslání segmentů 5 – 8 17/09/2018
Protokol TCP (13) zmenšení okna na WIN=2 8 Odesílatel Adresát 9 8 7 6 5 4 3 2 1 7 6 5 4 3 2 1 ACK 7, WIN=2 zmenšení okna na WIN=2 segmenty 5 až 7 přijaty a potvrzeny posunutí okna 9 8 Odesílatel Adresát 9 8 7 6 5 4 3 2 1 7 6 5 4 3 2 1 poslání segmentu 9 17/09/2018
Protokol TCP (14) segment 8 nebyl potvrzen nutnost zaslat znovu 9 8 Odesílatel Adresát 9 8 7 6 5 4 3 2 1 7 6 5 4 3 2 1 Time Out segment 8 nebyl potvrzen nutnost zaslat znovu Odesílatel Adresát 9 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 2 1 ACK 9 segmenty 8 a 9 přijaty a potvrzeny konec přenosu 17/09/2018
Protokol TCP (15) Spojení může být ukončenou libovolnou stanicí (A i B), např.: stanice A zašle stanici B segment s FIN=1 a ACK=1 stanice B odpoví segmentem s ACK=1 a FIN=1 stanice A odpoví segmentem s ACK=1 17/09/2018
Protokol UDP (1) UDP (User Datagram Protocol) nedává záru-ky na přenášené datagramy Na rozdíl od protokolu TCP nezaručuje, že se: přenášený datagram neztratí nezmění pořadí doručených datagramů některý datagram nedoručí vícekrát Používaný např. pro DNS, VoIP, TFTP nebo online hry Koncové aplikace (adresát a odesílatel) jsou identifikovány pomocí čísla portu (0 – 65535) 17/09/2018
Protokol UDP (2) Struktura packetu UDP: Source Port (16 b): + 0 – 15 16 – 31 Source Port Destination Port 32 Length Checksum 64 Data Source Port (16 b): je-li použit, pak identifikuje port odesílatle a měl by být použit jako port pro odpověď v opačném případě by měl mít hodnotu 0 17/09/2018
Protokol UDP (3) Destination Port (16 b): Length (16 b): identifikuje port adresáta Length (16 b): specifikuje délku celého datagramu udáván v bytech minimální délka je 8 B Cehecksum (16 b): kontrolní součet 17/09/2018
Propojování sítí (1) Propojování dvou a více sítí je možné reali-zovat pomocí následujících zařízení: Repeater (opakovač): zesilovač, který předává veškeré informace z jedno-ho síťového segmentu na druhý používá se k prodloužení síťového segmentu pracuje na fyzické vrstvě modelu OSI Bridge (most): zařízení předávající packety (rámce) z jedné sítě do druhé pracuje na linkové vrstvě modelu OSI 17/09/2018
Propojování sítí (2) Router (směrovač): v případě, že packet vyslaný uzlem v jedné síti je určen pro uzel nacházející se ve stejné síti, pak tento packet je bridgem ignorován (není předán do druhé sítě) Router (směrovač): zařízení předávající informace z jedné sítě do druhé v závislosti na jejich síťové adrese má za úkol poskytnout cestu ze síťového uzlu na uzel v jiné síti bývá realizován hardwarovým zařízením pracujícím na úrovni síťové vrstvy modelu OSI může být realizován běžným počítačem, popř. spe-cializovaným zařízením 17/09/2018
Propojování sítí (3) # # # # # # # # # Gateway (brána): zařízení umožňující propojení i velmi odlišných sítí pracuje na horních vrstvách modelu OSI 40 32 115 50 E # # # # B 147.251.50.0 147.251.48.0 # # A G 1 10 19 14 Router 10 1 D # 62 147.251.52.0 61 # # C 147.251.61.60 5 211 17/09/2018
Propojování sítí (4) Routovací tabulky (zjednodušené): Node Network Subnet Mask Gateway Interface A 0.0.0.0 0.0.0.0 147.251.48.14 147.251.48.19 147.251.48.0 255.255.255.0 147.251.48.19 147.251.48.19 B 0.0.0.0 0.0.0.0 147.251.48.14 147.251.48.50 147.251.48.0 255.255.255.0 147.251.48.50 147.251.48.50 C 0.0.0.0 0.0.0.0 147.251.52.1 147.251.52.5 147.251.52.0 255.255.255.0 147.251.52.5 147.251.52.5 D 0.0.0.0 0.0.0.0 147.251.52.1 147.251.52.10 147.251.52.0 255.255.255.0 147.251.52.10 147.251.52.10 E 0.0.0.0 0.0.0.0 147.251.50.1 147.251.50.40 147.251.50.0 255.255.255.0 147.251.50.40 147.251.50.40 G 0.0.0.0 0.0.0.0 147.251.61.61 147.251.61.62 147.251.48.0 255.255.255.0 147.251.48.14 147.251.48.14 147.251.52.0 255.255.255.0 147.251.52.1 147.251.52.1 147.251.50.0 255.255.255.0 147.251.50.1 147.251.50.1 147.251.61.60 255.255.255.252 147.251.61.62 147.251.61.62 17/09/2018
IPv6 (1) Nová verze protokolu IP (nyní také označova-ného jako IPv4) IPv6 má za úkol řešit nedostatky protokolu IPv4, které jsou spojené zejména s velkým rozmachem Internetu Mezi hlavní rysy IPv6 patří: rozšířený adresní prostor implementace bezpečnostních mechanismů podpora mobilních zařízení možnost automatické konfigurace spolupráce s IPv4 17/09/2018
IPv6 (2) Pro adresaci v rámci protokolu IPv6 se použí-vá 128bitová adresa Adresa IPv6 se většinou zapisuje v hexadeci-mální soustavě jako osm 16bitových skupin oddělených dvojtečkou, např.: 21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A Při zápisu adresy IPv6 lze v každé 16bitové skupině vynechat levostranné nuly, např:. 21DA:D3:0:2F3B:2AA:FF:FE28:9C5A Rovněž je možné vynechat libovolný počet po sobě následujících 16bitových skupin obsahu-jících samé nuly a nahradit je symbolem :: 17/09/2018
IPv6 (3) Náhradu pomocí symbolu :: lze v zápisu IPv6 adresy provést nejvýše jednou (jinak by do-cházelo k nejednoznačnostem) Např. adresu. 1800:0000:0000:7AEF:0000:0000:1072:4310 lze zkrátit jako: 1800::7AEF:0:0:1072:4310 nebo 1800:0:0:7AEF::1072:4310 Nelze však použít zápisu: 1800::7AEF::1072:4310 – Pozor: chybný zápis 17/09/2018
IPv6 (4) Adresa IPv6 může být uvedena i s vyznačením prefixu, který udává počet bitů vymezený pro podsíť, např.: 12AB:0000:0000:CD30:0000:0000:0000:0000/60 12AB:0:0:CD30::/60 udává, že prvních 60 bitů (12AB00000000CD3) označuje podsíť Speciálním případem zápisu IPv6 adresy je adresa, která obsahuje vloženou adresu IPv4 V takovém případě se poslední 4 byty zapisují ve stejném formátu jako adresa IPv4 17/09/2018
IPv6 (5) Např.: 0000:0000:0000:0000:0000:FFFF:189.44.152.138 0:0:0:0:0:FFFF:189.44.152.138 ::FFFF:189.44.152.138 Adresy v IPv6 se nepřidělují jednotlivým uzlům, ale síťovým rozhraním Uzel je identifikován adresou typu unicast, která je spojena s jeho síťovým rozhraním Jedno síťové rozhraní může mít přiděleno více adres stejného nebo různých typů 17/09/2018
IPv6 (6) Protokol IPv6 rozlišuje tři typy adres: unicast: anycast: identifikuje jedno síťové rozhraní packet odeslaný s adresou typu unicast bude doručen na na síťové rozhraní odpovídající této adrese anycast: reprezentuje skupinu síťových rozhraní náležejících obvykle různým síťovým uzlům packet odeslaný s tímto typem adresy bude doručen na „nejbližší“ rozhraní vyhovující dané adrese multicast: označuje množinu síťových rozhraní patřících obvykle různým síťovým uzlům 17/09/2018
IPv6 (7) packet odeslaný s tímto typem adresy bude doručen na všechna rozhraní odpovídající zadané adrese: Poznámka: IPv6 nepoužívá adresaci typu broadcast, která je nahrazena obecnější adresací typu multicast Adresový prostor v IPv6 je rozdělen pomocí prefixu FP (Format Prefix) FP má proměnlivou délku a tvoří nejvyšší bity IPv6 adresy 17/09/2018
IPv6 (8) Prefix Zlomek adr. prost. Význam 0000 0000 1/256 Rezervováno (např. ::1 označuje loopback) 0000 001 1/128 Rezervováno pro NSAP alokaci 0000 010 1/128 Rezervováno pro IPX alokaci 001 1/8 Agregovatelné globální unicast adresy, odpovídají současným IPv4 adresám a identifikují rozhraní tak, aby bylo celosvětově jednoznačné 010 1/8 Provider-based adresy 100 1/8 Rezervováno pro Geographic-based adresy 1111 1110 10 1/1024 Lokální linkové adresy – jednoznačné jen v rámci dané fyzické sítě 1111 1110 11 1/1024 Místní lokální adresy – jednoznačné jen v rámci dané instituce 1111 1111 1/256 Skupinové (multicast) adresy 17/09/2018
IPv6 (9) IPv6 rozlišuje následující adresy typu unicast: agregovatelné globální unicast adresy: odpovídají současným klasickým IP adresám identifikují dotyčné rozhraní tak, aby bylo celosvětově jednoznačné 001 TLA ID Res. NLA ID SLA ID Interface ID 3 b 13 b 8 b 24 b 16 b 64 b TLA ID – Top-Level Aggregation Identifier NLA ID – Next-Level Aggregation Identifier SLA ID – Site-Level Aggregation Identifier 17/09/2018
IPv6 (10) geographic based adresy: na výše uvedenou adresu lze zjednodušeně pohlížet jako na adresu skládající se ze 3 částí: public topology: tvořena většími a menšími poskytovateli Internetu site topology: tvořena podsítěmi v rámci instituce network identifier: identifikátor konkrétního síťového rozhraní 001 TLA ID Res. NLA ID SLA ID Interface ID 48 b 16 b 64 b Public topology Site topology Network identifier geographic based adresy: nejsou a patrně nebudou ve větším měřítku používány 17/09/2018
IPv6 (11) lokální linkové adresy (Link Local Addresses): jednoznačné pouze v rámci dané fyzické sítě 1111111010 000….000 Interface ID 10 b 54 b 64 b místní linkové adresy (Site Local Addresses): jednoznačné pouze v rámci dané fyzické sítě mají formát, který umožňuje jejich snadné nahrazení agregovatelnými globálními unicast adresami 1111111011 Subnet ID Interface ID 10 b 54 b 64 b 17/09/2018
IPv6 (12) Pole Interface ID by u všech unicast adres (s prefixem 001 až 111) mělo by být ve formá-tu EUI-64 Adresu ve formátu EUI-64 lze vytvořit na zá-kladě ethernetové adresy karty Ethernetová adresa se skládá ze dvou částí: první tři byty tvoří identifikátor výrobce karty (tzv. OUI - Organizational Unique Identifier) druhé tři byty identifikují konkrétní kartu daného výrobce (tzv. Node-ID) 17/09/2018
IPv6 (13) 47 41 24 23 OUI (24 b) Node-ID (24 b) Bit 41 (U/L - Universal/Local) vyjadřuje, zda-li adresa je platná globálně (=0) nebo lokálně (=1) Adresa ve formátu EUI-64 vznikne: vložením dvou bytů s hexadecimální hodnotou FFFE mezi OUI a Node-ID inverzí bitu 41 (U/L) 17/09/2018
IPv6 (14) Příklad: Poznámka: ethernetová adresa: 00:00:0B:0A:2D:51 po vložení bytů FFFE: 00:00:0B:FF:FE:0A:2D:51 výsledná adresa ve formátu EUI-64 (tj. po inverzi bitu U/L): 0200:0BFF:FE0A:2D51 Poznámka: v budoucnu by adresy síťových karet architektur standardizovaných dokumenty IEEE 802 měly být již 64bitové: 24 bitů pro OUI 40 pro Node-ID 17/09/2018
IPv6 (15) speciální adresy: IPv6 adresy s vloženými adresami IPv4: nespecifikovaná adresa: 0:0:0:0:0:0:0:0 (::) používaná pro rozhraní, které nemá přidělenu žádnou adresu adresa může být následně dynamicky přidělena nějakým serverem loopback: 0:0:0:0:0:0:0:1 (::1) adresa ekvivalentní 127.0.0.1 v IPv4 IPv6 adresy s vloženými adresami IPv4: dovolují přenášet (tunelovat) IPv6 packety přes IPv4 směrovací infrastrukturu slouží k usnadnění přechodu z IPv4 na IPv6 17/09/2018
IPv6 (16) IPv4 kompatibilní adresa (IPv4 compatible address): IPv6 uzly, které používají tuto techniku mají přiřazenu speciální IPv6 unicast adresu nesoucí ve svých dolních 32 bitech adresu IPv4 ostatní bity adresy jsou vždy rovny nule např. ::130.192.252.27 IPv4 mapovaná adresa (IPv4 mapped address): označuje uzel, který může pracovat pouze s adresací IPv4, která se převádí na IPv6 adresaci slouží pouze pro interní účely (nikdy není použita jako adresa odesílatele nebo příjemce IPv6 packetu) IPv4 adresa je opět umístěna v dolních 32 bitech, kterým nyní předchází 16 bitů tvořených jedničkami zbývající bity adresy jsou vždy rovny nule např. ::FFFF:130.192.252.27 17/09/2018
IPv6 (17) Struktura adresy typu multicast: Flags: 11111111 Flags Scope Group ID 8 b 4 b 4 b 112 b Flags: zatím definován pouze nejnižší bit T (Transient): 0: označuje trvale přiřazenou multicast adresu 1: označuje přechodně přiřazenou multicast adresu Scope: určuje rozsah skupinového vysílání (Node-local, Link-local, Site-local Organization-local, Global) 17/09/2018