Přednáška č.9
Role transportní vrstvy Druhy transportních protokolů
TCP protokol Porty & sokety TCP segmentace
TCP proces komunikace Zahlcení sítě UDP protokol
QoS DCCP SCTP
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Hlavním úkolem transportní vrstvy je realizovat spojení mezi dvěma klienty v síti
Zprostředkovává spojení mezi nižšími vrstvami a aplikační vrstvou
Transportní vrstva umožňuje jednotlivým programům vznášet nároky na zajištění regulace, spolehlivosti a dalších potřeb vznikajících při realizaci přenosu
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Role IP a Transportní vrstvy
IP vrstva využívá nespojované a nespolehlivé komunikaceo neumožňuje řešit specifické potřeby jednotlivých
aplikací
o nerozlišuje mezi službami jednotlivých klientů
o na jednom serveru může běžet více služeb (jedné IP adrese je třeba konkrétně doručit a zařadit jednotlivé služby)
Transportní vrstva rozděluje bytový tok do jednotlivých částí (segmentů)
Samotná realizace výše uvedených úkolů je zajištěna transportními protokoly
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Transportních protokolů existuje větší množství, rozdílné jsou zejména díky charakteristice služeb, pro které jsou vhodné
Charakteristika služeb
◦ Spojovaná služba - spojení – přenos – konec
◦ Nespojovaná služba – spojení se nezřizuje
◦ Potvrzovaná služba – spolehlivá
◦ Nepotvrzovaná služba – nespolehlivá
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Nejznámější zástupci transportních protokolů
◦ TCP – funguje spojově a spolehlivě, pozměňuje původní vlastnosti IP protokolu (vhodné pro typ služeb vyžadující vysokou spolehlivost přenosu)
◦ UDP – funguje nespojově a nespolehlivě (vhodné pro datově náročné přenosy s tolerancí nespolehlivosti)
◦ Další možné protokoly RTP, RTCP, SCTP, RTSP, RVSP,DCCP – zajišťující obvykle specifické požadavky aplikací na přenos v reálném čase (multimédia, videokonference, VoIP...)
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
TCP (Transmision Control Protocol) zajišťuje komunikaci spojovým a spolehlivým způsobem mezi dvěma konkrétními klienty v síti
V rámci komunikačního procesu je vytvořen (emulován) plně duplexní virtuální okruh po dobu spojení
Integrita dat je zabezpečena kontrolním součtem (neposkytuje však ochranu proti hackingu)
TCP protokol využívá potvrzování zprav při přenosu a předchází zahlcení počítačové sítě
Cílová aplikace je určena IP adresou, transportním protokolem a číslem portu
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Základní jednotkou přenosu je TCP segment (TCP paket) podmíněný vazbou na nižší síťové vrstvy
o aplikace potřebuje přenést např. 700 MB = běžný počítačový film
o soubor je rozdělen do jednotlivých segmentů, které by měly korespondovat s velikostí linkového rámce (MTU)
o data TCP jsou segmentována a vložena do jednotlivých IP datagramů
o pokud je vytvořen příliš velký IP datagram, je nutné jej fragmentovat (viz. předchozí přednášky)
o nutná fragmentace však zpomaluje komunikační proces
o IP datagram je následně vložen například do ethernetovéhorámce
o po přenosu příjemce provede obrácený proces
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Fyzická vrstva má omezení velikosti přenášených dat dle standardů:
Ethernet (Ethernet II encapsulation) 1500
Ethernet (IEEE 802.3 SNAP encapsulation) 1492
FDDI 4352
X.251 600
Frame Relay 1600
ATM (Classical IP over ATM) 9180
Minimum MTU 576
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
TCP segment rozděluje datový proud na jednotlivé segmenty
Maximální velikost TCP segment je 65535 bajtů –mínus velikost záhlaví (obvykle 20 bajtů)
Jednou z nejdůležitější informací obsaženou v segmentu je číslo portu zdrojového a cílového počítače je informace o zdrojové a cílovém portu
Záhlaví segmentu obsahuje následující položky
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Zdrojový port a cílový port – jednoznačná definice číslo zdroje a cíle během vysílání na úrovni transportní vrstvy
Pořadové číslo odesílaného bajtu – je pořadové číslo prvního bajtu TCP segmentu v datovém toku od odesílatele k příjemci (nese bajty od pořadového čísla odesílaného bajtu až do délky segmentu)
Pořadové číslo přijímaného bajtu – vyjadřuje číslo následujícího bajtu, který je příjemce připraven přijmout (potvrzení přijetí bajtů až do pořadového čísla přijatého bajtu mínus jedna)
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Délku záhlaví – stejné jako u IP záhlaví 32 bitů (viz. předchozí přednášky)
Délku okna – vyjadřuje přírůstek pořadového čísla přijatého bajtu, který bude příjemcem ještě akceptován (zajišťuje ochranu před zahlcením sítě)
Ukazatel naléhavých dat – ukazuje na úsek naléhavých dat (přednostní zpracování pro naléhavá data využívá např. TELNET)
Volitelné složky TCP záhlaví
Kontrolní součet je počítán
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Skupina Rozsah
Známé porty 0 - 1023
Registrované 1024 - 49151
Dynamické 49152 - 65535
Služby protokolu TCP
Port Služba
20 FTP
21 FTP
23 Telnet
22 SSH
25 SMTP
53 DNS
80 HTTP
110 POP3
123 NTP
143 IMAP 4
220 IMAP 3
443 HTTPS
990 FTPS
993 IMAPS
995 POP3S
1863 MSN Messenger
5190 ICQ
Služby protokolu UDP
Port Služba
53 DNS
69 TFTP
137 NetBIOS
161 SNMP
520 RIP
2840 Windows Messenger
známá čísla portů – přiděluje
organizace IANA
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Nejpoužívanější komunikační architekturou je klient – server – na tuto architekturu ve vztahu k TCP se zaměřuje další výklad
Protokol TCP využívá k transportu dat protokol IP –nad tímto protokolem zřizuje spojovanou službu a řeší následující problematiku
o navazování spojení
o ukončení spojení
o potvrzování přijatých dat
o vyžádání ztracených dat
o problémy průchodnosti přenosové cesty
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Komunikační prostředí je definováno v API každého operačního systému
o umožňuje definovat styl práce s porty
o realizovat proces komunikace jednotlivým aplikacím
o konkrétní proces komunikace a styl práce s porty v počítačové síti může být realizován například
o soketovým rozhráním – socket vznikl jako abstrakce souboru v BSD Unixu (Winsock)
o sdílení XML dat – které se díky své univerzálnosti a jednoduchosti poslední dobou prosazuje
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Pro vlastní proces komunikace je důležitá součást TCP segmentu:
o URG – TCP segment nese naléhavá data
o ACK – TCP segment má platné pořadové číslo přijatého bajtu
o PSH – TCP segment nese aplikační data
o RST – odmítnutí spojení
o SYN – odesílatel začíná s novou sekvencí číslování, TCP-segment nese pořadové číslo prvního odesílaného bajtu
o FIN – odesílatel ukončil odesílání
Výměny TCP segmentů (handshaking) – mezi oběma konci vytváří komunikační základnu, na které je postaveno komunikační rozhrání aplikační vrstvy (včetně soketového)
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
V každém okamžiku je spojení v nějakém stavu –při navazování spojení
o server ve stavu:
o LISTEN - server je připraven na spojení s klienty
o SYN_RCVD – server přijal od klienta první TCP segment –segment s příznakem SYN
o klient ve stavu:
o SYN_SEND – klient odeslal první segment se SYN
o navázaní spojení ESTABLISHED – v tomto stavu mohou oba konce současně přenášet data (duplexní spoj)
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Součástí seg. může být volitelná položka záhlaví –MSS (Maximum segment size)
o položka oznamuje druhé straně max. délku datové části TCP segmentu, jakou si přeje přijímat
o volba MSS se může vyskytovat pouze v TCP segmentech s nastaveným SYN (první dva segmenty)
o implicitně je MSS = 536 bajtů (použitelné pro spojení mimo lokální síť – WAN)
o pro Ethernet II je max. délka datové části rámce = 1500 (1500 – 20 pro IP-záhlaví – 20 pro TCP záhlaví = 1460)
SERVER – KLIENT (druhý segment)
o již potvrzuje přijatá data – nastaven příznak ACK
o od segmentu (2) budou již všechny segmenty potvrzovat přijatá data – bude nastaven příznak ACK
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
KLIENT – SERVER (třetí segment)
◦ potvrzuje příznak SYN
◦ další segmenty již nemohou nést volitelnou položku záhlaví MSS
◦ končí navazovaní spojení
◦ Protokol TCP navazuje spojení třífázovým handshakingem
KLIENT-SERVER-KLIENT... (čtvrtý a pátý segment)
◦ po obdržení ACK od druhé strany je možné začít s vysíláním dat
◦ jedná se o duplexní spoj
◦ segment, který nese aplikační data má nastaven příznak PSH
◦ segment s nastaveným ACK a PSH (.AP...) nese aplikační data a potvrzuje příjem dat od druhé strany
◦ segment s pouze ACK (.A....) pouze potvrzuje příjem dat
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Ukončení spojení může provést libovolná strana
Spojení ukončuje TCP segment s příznakem FIN
◦ provádí tzv. aktivní ukončení spojení (active close)
◦ druhá strana je nucena provést tzv. pasivní ukončení (pasive close)
Šestý segment aktivuje uzavření spojení nastavením FIN
Sedmý segment potvrzuje uzavření spojení – zahájeno polouzavřené spojení – half duplex
Strana, která aktivně spojení uzavřela, již nemůže poslat data
◦ většinou sedmý segment obsahuje také příznak FIN a spojení uzavře i druhá strana
◦ strana, která zatím neposlala FIN, může v přenosu dat pokračovat (half duplex) – polouzavřené spojení
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
osmý segment uzavírá spojení i druhá strana (.A...F)
devátý segment potvrzuje uzavření spojení (.A....)
Spojení se odmítá nastavením příznaku RST (Reset) v záhlaví TCP segmentu◦ klient požaduje spojení na portu, na kterém neběží žádný
server
◦ je odmítnuto pokračovat v již navázaném spojení
aplikace chce ihned po odeslání ukončit spojení (nechce vyčkávat ve stavu TIME_WAIT)
jedna ze dvou stran zjistí, že protějšek je nedůvěryhodný, pak okamžitě ukončí spojení (použití protokolu SSL)
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Výpis všech spojení protokoly TCP a UDP lze získat pomocí příkazu netstat (práce s příkazem je součástí cvičení)
Technika zpoždění odpovědí je jedna z možností, jak snížit zahlcení sítě
Typické interaktivní aplikace, respektive protokoly vyžadují rychlou a nepřetržitou odezvu mezi klientem a serverem
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Původně definovaná architektura by však pro jakoukoliv sebemenší interakci musela vystavit segment potvrzení◦ operační systém spustí pro tento účel hodiny zpravidla s tikem
200 ms◦ délka tiku musí být pod 500 ms◦ po každém tiku systém zkontroluje, zdali není něco k odeslání◦ pokud je třeba něco odeslat, pak vše odešle najednou
Pro aplikace přenášející velké objemy dat technika zpoždění dat nemá smysl
Existují další inteligentní techniky zvyšující dále efektivitu komunikace interaktivní aplikací (Nagleůvalgoritmus)
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Okna definují maximální možnou délku dat, které je možné odeslat bez potvrzení
Okna a velikost segmentu MSS jsou definována a inzerována před zahájením přenosu
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Jestliže server není schopen přijímat data◦ potvrdí přijaté byty◦ nastaví velikost okna rovno nule – zamezí dalšímu
zahlcování◦ poté, co je schopen dalšího přijmutí dat, okno otevře
(nastaví menší velikost okna)
V případě odesílání velkého množství dat je tedy možné zvýšit velikost okna dle potřeby (využitím volitelných položek až do cca 1 GB)
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Cílem však je přenášet s maximální velikostí okna nezpůsobující zahlcení komunikujících sítí (tyto sítě mají velmi často rozdílnou architekturu)
Maximální možná velikost okna se určuje dynamicky
◦ CWND (Congestion Window) určuje velikost okna odesílatele◦ optimální velikost bloku dat leží je nastavena automaticky◦ SSTHRESH definuje hranice vysoké pravděpodobnosti
zahlcení◦ odesílatel zvětšuje velikost okna postupně exponenciálním
způsobem (2n) až do doby, něž dojde k zahlcení (sekvence segmentů nebyla potvrzena)
◦ SSTRESH se v takovém případě nastaví na polovinu CWND
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
UDP protokol (User Datagram Protocol) je nespolehlivý protokol
Zajišťuje jednoduchou nadstavbu nad protokolem IP
◦ nemění základní vlastnosti protokolu IP◦ navíc poskytuje jen multiplexing/demultiplexing◦ má kontrolní součet, který pokrývá hlavičku i data kontrolní součet IP datagramu pokrývá pouze hlavičku kontrolní součet UDP datagramu lze vypnout
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Typickým využitím je potřeba co nejrychlejší a nejefektivnější komunikaci
Vlastnosti
◦ funguje nespolehlivě & nespojovaně◦ vytváří iluzi blokového přenosu přenáší UDP Datagramy obvykle je velikost menší datagramu (512 bytů) musí se vtěsnat tak, jako TCP datagram do IP datagramu
◦ může být použit pro rozesílání broadcast i multicast◦ komunikace je narozdíl od IP protokolu bezestavová
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Efektivní rozdělení šířky pásma v síti je nutné pro zachování stability a propustnosti sítě
Mezi základní možnosti zahrnujeme
◦ Agregace fyzických linek v jednu virtuální ( agregace na druhé vrstvě dle ISO/OSI)
◦ Vyrovnávání zátěže pomocí směrovacího procesu (agregace a rozložení zátěže na třetí vrstvě vrstvě dle ISO/OSI)
◦ Regulace šířky pásma pro klienta, respektive část sítě (bandwith shaping)
◦ Regulace a nastavení priority služeb pomocí QoS◦ Implementace ACL (přístupových sezamů) a bezpečnostní
politiky v síti => v síti proudí pouze ta data, která mají právo být odesílány nwbo přijímány
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Jedná se o jednu ze základních možností, jak limitovat propustnost pásma
Ve větších sítích je nutná regulace pásma pro:
◦ Snížení latence v síti
◦ Udržení dostupnosti služeb
◦ Vykrytí „špiček“ v síti
◦ Ochrana proti přetížení sítě
◦ Definici politicko-obchodních pravidel v síti
◦ Redukci chybovosti vysílání v síti
Implementace Shapingu může být provedena na různých platformách
◦ WINDOWS ( Pro řízení toku dat a bezpečnostní politiku je vhodné využít Microsoft ISA server)
◦ LINUX(UNIX) (např. menšími poskytovateli používaný Zorp Traffic spolu s Prometeus)
◦ HW zařízení (např. Mikrotik, Cisco…)
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Quality of Services umožňuje dále propustnost sítě podle určitého typu služeb
QoS je možné rozdělit do dvouhlavních domén využití◦ Kvalita služeb pro poskytovatele služeb
◦ Kvalita služeb v rámci sítě organizace
Typické služby, které bývají upřednostňovány◦ IP telefonie
◦ Video konference ( přenos videa a hlasu obecně)
◦ Důležité služby v síti s potřebou okamžité dostupnosti a funkčnosti
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Typické služby, které nebývají upřednostňovány
◦ Sdílení dat mezi uživateli
◦ Prohlížení webu
◦ Služby sítě definované s nižší prioritou datového přenosu
Implementace Shapingu může být opět provedena na různých platoformách
Typickým zástupce je CISCO QoS Manager
Více užitečných informací naleznete na:
◦ http://www.cisco.com/en/US/products/ps6558/products_ios_technology_home.html
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
TCP a UDP nejsou jedinými transportními protokoly
Mezi novější protokoly navržené pro speciální aplikace patří
◦ DCCP
◦ SCTP
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
DCCP – RFC 4340 (2006)
Datagram Congestion Control Protocol
Původní protokol TCP není vhodný pro všechny typy vysílání, jeho využití je omezeno vlastnostmi tohoto protokolu
TCP není příliš vhodný pro přenos hlasových a video služeb
◦ založen na principu označení sekvencí pro jednotlivé byte
◦ zaručuje spolehlivé doručení dat
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
DCCP je vhodný pro tyto služby
◦ garantuje spolehlivé doručení paketů, ale negarantuje došlé pořadí a vyžádání nového vysílání (pomocí ECN Explicit Congestion Notification – rozšíření původního IP protokolu)
◦ kontroluje a řídí zahlcení vysílání
◦ umožňuje implementovat transport specifických služeb bez využití nadstavbových mechanizmů v aplikační vrstvě
◦ dodržuje sémantiku TCP protokolu
Většina současných služeb využívá stále TCP nebo UDP s nadstavbou v aplikační vrstvě
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
SCTP – RFC 2960 (2001)
Stream Control Transmission Protocol
Protokol vhodný pro přenos telefonie přes IP sítě
Na rozdíl od TCP nepřiřazuje sekvenční čísla jednotlivým bitově reprezentovaným datagramům ale zprávám (balíky vysílané v proudech vztahu odesílané službě)
Balík je označován jako DATA CHUNK
Umožňuje paralelní vícenásobný přenos datových proudů
Jeden klient může být reprezentován více IP adresami (IPv4 či IPv6)
Dle spolehlivosti jsou data doručována na různé IP adresy klienta => je zajištěn redundantní přenosový mechanizmus
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9
Konec
Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.9