Bakalářská státnice - Informatika - Základy informatiky - ISPS - Sítě a internetové technologie
zpět: Bakalářská státnice - Informatika - Základy informatiky - obor Správa počítačových systémů
zdroje:
- Výpisky z TCP/IP (s0cketka)
- Přednášky Jiřího Peterky
Obsah
- 1 Architektura ISO/OSI
- 2 Rodina protokolu TCP/IP (ARP, IPv4, IPv6, ICMP, UDP, TCP) - adresace, routing, fragmentace, spolehlivost, flow control, congestion control, NAT
- 3 Rozhraní BSD sockets
- 4 Spolehlivost - spojované a nespojované protokoly, typy, detekce a oprava chyb
- 5 Bezpečnost - IPSec, principy fungování AH, ESP, transport mode, tunnel mode, firewalls
- 6 Internetové a intranetové protokoly a technologie - DNS, SMTP, FTP, HTTP, NFS, HTML, XML, XSLT a jejich použití
Architektura ISO/OSI[editovat | editovat zdroj]
- vrstevnatá filozofie - dekompozice sítě jako celku na vrstvy
- horizontální komunikace - protokoly, PDU (protocol data unit), entity
- vertikální komunikace mezi vrstvami - poskytování/využívání služby, rozhraní, přechodové body
Referenční model ISO/OSI:
- ze světa spojů, pokus o univerzální síťovou architekturu, od organizace ISO
- od zeleného stolu, maximalistický přístup
Vrstvy ISO/OSI:
- aplikační
- původní představa: bude obsahovat aplikace - ale musely by být celé standardizované
- obsahuje jádro aplikace (standardizovanou část - aplikační protokol)
- prezentační
- konverze dat - kódování znaků, formát čísel (Big Endian <-> Little Endian), převod mezi formáty stanice a sítě
- relační
- vedení relací
- může zajišťovat synchronizaci, šifrování, podporu transakcí
- transportní
- přizpůsobovací vrstva nad přenosovými vrstvami
- end-to-end komunikace
- může měnit spolehlivost a spojovanost
- na koncových uzlech rozlišuje jednotlivé entity (skrz přechodové body - porty) - procesy, démony, aplikace, ...
- síťová
- přenáší pakety, doručuje až ke konečnému adresátovi přes mezilehlé uzly
- rounting - hledání cest v síti - algoritmy adaptivní/neadaptivní, izolované/distribuované/centralizované
- forwarding - vykonávání přeskoku paketů na mezilehlých uzelch
- poslední vrstva, kterou musí mít směrovače
- linková
- přenos celých bloků (rámců) k přímým sousedům
- synchronizace na úrovni rámců
- zajištění spolehlivosti (detekce a oprava chyb) - pokud je požadováno
- spojovaná/nespojovaná komunikace
- rozděluje se na podvrstvy:
- LLC - ostatní úkoly
- MAC - přístup ke sdílenému médiu
- fyzická - přenos bitů, kódování, modulace, časování, konektory, kabeláž
Vlastnosti, kritika:
- nebere v potaz svět počítačů
- soustředí inteligenci do sítě
- příliš maximalistický
- nepočítal s lokálními sítěmi
- některé činnosti se zbytečně opakují na několika vrstvách
- upřednostňuje spolehlivé a spojované služby
Rodina protokolu TCP/IP (ARP, IPv4, IPv6, ICMP, UDP, TCP) - adresace, routing, fragmentace, spolehlivost, flow control, congestion control, NAT[editovat | editovat zdroj]
- historie - ARPANET, experimentální protokol NCP
- dokumenty RFC, STD, FYI
- organizace ISOC, ICANN, IANA, W3C
Charakteristiky, vlastnosti:
- od jednoduššího k složitějšímu
- nejprve praktické ověření (2 nezávislé implementace), pak standardizace
- nespojované, nespolehlivé, best effort
- rychlá "hloupá" síť, inteligence v koncových uzlech
- virtuální IP (IPv4) adresy, převod mezi linkovými (ARP, RARP)
Vrstvy
- aplikační vrstva
- transportní vrstva - přidává porty, TCP (spolehlivé, spojované), UDP
- síťová vrstva - individuální dle přenosové technologie, IP vytváří nad touto vrstvou "pokličku" -> všude stejné vlastnosti
- vrstva síťového rozhraní - TCP/IP neřeší
Protokol ARP = Address Resolution Protocol
- převod IP adresa -> linková adresa
- broadcast s výzvou
IPv4
- IP adresa = adresa sítě + adresa uzlu
- 32-bitové IP adresy
- původně: třídy adres A,B,C; speciální třída D (multicast) a E (vyhrazeno)
- subnetting, supernetting, maska, prefix
- CIDR (Classless Interdomain Routing)
IPv6
- 128-bitové adresy, hierarchické členění
- podpora QoS, bezpečnost (IPSec)
- adresa = global routing prefix + subnet ID + relativní část
ICMP
- protokol pro řízení komunikace, na IP vrstvě
- oznamuje o zahazování paketů, nedostupných sítích, vypršení TTL - traceroute, ping
UDP
- přidává pouze porty, zůstává nespolehlivý a nespojovaný -> UDP datagramy
TCP
- přidává porty, spolehlivost, spojovanost
- potvrzování - kontinuální, jednotlivé (při chybě), řízení toku, metoda okénka
- 3-fázový handshake a ukončení spojení
Routing
- vyhledávání cest v síti
- přímé/nepřímé doručování
- statické/dynamické směrování
- routovací protokoly - vector-distance/link-state - RIP, BGP, OSPF
- agregace, default route
- autonomní systémy
Fragmentace
- maximální velikost datagramů v lokální síti (MTU)
- fragmentace paketů - hlavička: IDENTIFICATION, FRAGMENTATION OFFSET, MORE FRAGMENTS
- IPv4 - fragmentované pakety možno dále dělit
- IPv6 - fragmentaci musí zajistit odesílatel -> zahození paketů, které neprojdou
NAT = Network Address Translation
- statický NAT - 1:1 staticky
- dynamický NAT - 1:1 dynamicky dle potřeby
- PAT - 1:n
- lokální IP adresy
- Flow control = řízení toku, předcházení zahlcení, TCP: přizpůsobování toku stavu sítě a odezvě (point to point)
- Congestion control = ochrana před zahlcením, TCP: dočasný přechod na samostatné potvrzování (v rámci celé sítě)
Rozhraní BSD sockets[editovat | editovat zdroj]
- standardizované rozhraní pro komunikaci mezi procesy na jednom počítači nebo po síti, vzniklo v BSD
- brána k síťovým službám
- se sokety lze pracovat přes souborové operace, souborové deskriptory
- UNIX sockets - pojmenované sokety po komunikaci na lokálním počítači
Nespojovaná komunikace:
- socket() - vytvoření soketu
- bind() - napojení socketu na port
- sendto() - odeslání datagramu
- recvfrom() - přijetí datagramu z dané adresy
- close() - uzavření soketu
Spojovaná komunikace:
- server
- socket() - vytvoření soketu
- bind() - napojení socketu na port
- listen() - přepnutí soketu k přijímání spojení
- accept() - čekání na spojení, přijímání
- send() - odeslání dat
- recv() - přijetí dat
- close() - uzavření soketu
- klient
- socket() - vytvoření soketu
- connect() - navázání spojení
- send() - odeslání dat
- recv() - přijetí dat
- close() - uzavření soketu
Další info:
Spolehlivost - spojované a nespojované protokoly, typy, detekce a oprava chyb[editovat | editovat zdroj]
- spolehlivost
- může být zajištěna na kterékoliv vrstvě (kromě fyzické)
- TCP/IP řeší na transportní (TCP), ISO/OSI očekává spolehlivost na všech (počínaje linkovou)
- větši režie, zpoždění při chybách
- nespolehlivá komunikace
- menší režie, lepší odezva
- výhodné pro audio/video přenosy, kde lze tolerovat ztráty
- spojovaná komunikace - stavová, virtuální okruhy, navazování a ukončení spojení
- nespojovaná komunikace - zasílání zpráv, datagramy (UDP), nestavová, bez navazování a ukončování
Detekce ztrát a chyb:
- schopnost poznat, že došlo k nějaké chybě při přenosu
- Hammingovy kódy - příliš velká redundance, nepoužívané
- potvrzování (ACK)
- příjemce si znovu nechá zaslat poškozená/nedoručená data
- podmínkou existence zpětného kanálu (alespoň half-duplex)
- jednotlivé vs. kontinuální
- kladné a záporné
- samostatné vs. nesamostatné (piggybacking)
- metoda okénka
- selektivní opakování vs. opakování s návratem
- parita - příčná, podélná
- kontrolní součty
- cyklické redundantní součy (CRC)
- druhy chyb: pozměněná data, shluky chyb, výpadky dat
- při chybě nutno vyžádat si celý rámec znovu
Bezpečnost - IPSec, principy fungování AH, ESP, transport mode, tunnel mode, firewalls[editovat | editovat zdroj]
- IPsec - zavedení bezpečnosti do IP vrstvy, původně pro IPv6, některé věci zpětně portovány do IPv4
- několik desítek RFC dokumentů
- autentifikace - ověření původu dat (odesílatele)
- kryptování - šifrování komunikace (mimo IP hlavičky)
- může být implementováno na bráně (security gateway, lokální síť je považována za bezpečnou) nebo na koncových zařízení
- SA (Security Association)
- point-to-point bezpečnostní spoj (návrh uvažuje i o jiných variantách)
- pro každý směr a každý prototokol nutné mít vlastní SA spoj
IPsec módy:
- transport mode
- IP hlavička nechráněná, tělo paketu šifrováno (data vyšších protokolů)
- použitelné jen na koncových stanicích
- tunnel mode
- pakety jsou celé (včetně hlavičky) zašifrovány a vloženy do dalšího paketu, na druhé straně rozbaleny
- povinné pro security gateways, volitelné pro koncové stanice
- ve vnější IP hlavičce se jako příjemce uvádí security gateway na hranici cílové sítě
IPsec protokoly:
- AH (Authentication Header)
- komunikující strany se dohodnout na klíči
- k datům se připojuje hash
- chrání také před replay attack
- provádí autentizaci a kontrolu změny dat, neprovádí šifrování
- ESP (Encapsulating Security Payload)
- provádí autentizaci a také šifruje obsah
- pro šiforvání používá 3DES, Blowfish aj. (původně DES, již není považováno za bezpečné)
Dohoda klíčů:
- před použitím prtokolu AH či ESP si musí strany dohodnout klíče
- manuální konfigurace
- automatická konfigurace - IKE (Internet Key Exchange) protokol
Firewally:
- sledování a filtrování komunikace na síti
- blokování - zabraňuje neoprávněnému přístupu
- prostupnost - propouštění povoleného toku
- paketové filtry - např. na routeru
- stavový firewall (stateful) - sleduje vztahy mezi pakety, ohlíží se na historii
- na různých vrstvách
- síťová - pouze dle zdrojových a cílových adres a protokolu
- transportní - také podle portů
- aplikační - dle obsahu (dat)
- demilitarizovaná zóna (DMZ):
- jiné řešení bezpečnosti
- přístup ven pouze přes speciálizovaná zařízení (proxy, brány), nelze přímo - platí pro oba směry
Zdroje:
- Referát IPsec (ČVUT)
- Slajdy předmětu Administrace Unixu (přenáška č.7, materiályn dostupné jen ze sítě MFF)
Internetové a intranetové protokoly a technologie - DNS, SMTP, FTP, HTTP, NFS, HTML, XML, XSLT a jejich použití[editovat | editovat zdroj]
DNS (Domain Name System):
- soubor hosts
- doména, zóna, delegace, TLD, ccTLD, gTLD
- syntaxe jmen, FQDN (plně kvalifikované...)
- IDN
- name servery - primární/sekundární, autoritativní/cachovací, kořenové, replikace
- iterativní dotaz, rekurzivní dotaz, cachování, resolvery, TTL, autoritativní odpověď
- Resource Records (RR)
- formát - name, type, class, TLL, rdlength, rdata
- A, NS, MX, PTR, AAAA, SPF, TXT, SRV, ...
- DNS protokol - TCP/UDP, truncation
SMTP (Simple Mail Transfer Protocol):
- SMTP - protokol pro přenos zpráv
- RFC822 - formát zpráv - 7-bitová data
- POP3, IMAP - stahování zpráv ze schránky
- MIME - rozšíření formátu zpráv - Quoted-Printable, Base64, mime-type
- struktura zprávy - hlavička + tělo + přílohy
- e-mailové adresy, MX záznamy, priority
FTP (File Transfer Protocol):
- řídící a datová spojení
- textový/binární režim
- příkazy - řízení přístupu, nastavení parametrů, výkonné příkazy
- TFTP
HTTP (Hyper-Text Transfer Protocol):
- přenosový protokol, data v textovém tvaru, bezestavový
- verze 0.9 - bez hlaviček, minimální možnosti
- verze 1.0 - rozšiřující hlavičky, podpora MIME
- verze 1.1 - virtuální servery, jedno spojení pro více přenosů (keep-alive), komprimace dat
- GET, HEAD, POST
- cookies
- cachování
NFS (Network File System):
- bezestavový (v4 již stavová), transparentní sdílení souborů
- mount server
- XDR - prezentační služby - definuje jednotný způsob reprezentace přenášených dat
- RFC - Remote Procedure Call
HTML (Hyper-Text Markup Language):
- značkovací jazyk pro hypertext, definuje obsah, nikoliv vzhled
- CSS
- statické a dynamické HTML dokumenty - CGI, ISAPI, NSAPI, ASP, PHP
- skripty, Java, ActiveX
XML (eXtensible Markup Language):
- obecný značkovací jazyk
- popis truktury dokumentu z hlediska věcného obsahu jednotlivých částí, neřeší vzhled
XSLT (eXtensible Style Sheet Language Transformations):
- převod dat v XML do jiného formátu
- wcs:XSLT