Számítógép-hálózatok és internet eszközök Lukovszki Tamás diái alapján készítette: Erdélyi Viktor Bevezetés internet felépítése (kliens, ISP, backbone...) rétegszerkezet haszna a felsőbb rétegek az alsó rétegek segítségével végzik el a feladataikat adatok burkolása Rétegmodellek TCP/IP (host-to-network, Internet, szállítói, felhasználói) ISO/OSI (fizikai, adatkapcsolati, hálózati, szállítói, ülés (session), prezentációs, felhasználói) Tanenbaum hibrid modellje (fizikai, adatkapcsolati, hálózati, szállítói, felhasználói) Egyéb Információ (szép idő), adat (28 C), szignál (áram a hőmérő szenzorban) Unicast, multicast, broadcast LAN, MAN, WAN vezetékes és vezeték nélküli hálózatok (WLAN) kliens-szerver architektúra kommunikáció socket API segítségével select() működése TCP ( telefonhívás ) vs UDP ( postai levél ) TCP server: socket-bind-listen-accept-(send/recv)-close TCP client: socket-connect-( send/recv)-close UDP server: socket-bind-(sendto/recvfrom) UDP client: socket-( sendto/recvfrom)-close Fizikai réteg A fizikai réteg definiál mechanikus, elektronikus, funkcionális és procedurális tulajdonságokat egy fizikai kapcsolat felépítéséhez, fenntartásához és befejezéséhez. A rossz vétel okai: elnyelődés (küldő energiája osztva a vételi energiával) frekvencia elvesztése frekvenciafüggő elnyelődés közeg által okozott fáziseltolás, torzulás (fáziseltolódás nagysága a frekvenciától függ) Page 1
zaj Elméleti korlátok Nyquist-tétel egy sáv által korlátos, folytonos szignál rekonstruálásához legalább kétszer akkora mintavételi frekvencia szükséges, mint a szignál maximális frekvenciája. Shannon-tétel maximális szimbólumráta 2 H baud maximális adatráta 2 H (log_2)v bit/s DE: nem veszi figyelembe a zajt max adatráta H log 2 (1 + S N ) bit/s H a sávszélesség, S a jel erőssége, N a zaj erőssége (nem db!) De: létező kódolások nem érik el az elméleti korlátokat Órajel-szinkronizáció probléma a szinkronizáció elvesztésekor (pl. az egyik végpont órája gyorsabban jár) Megoldások: o explicit órajel o kritikus időpontokban (pl. szimbólum vagy blokk kezdetén) o önütemező kódok használata (pl. Manchester) Alapsáv, szélessáv Alapsáv: közvetlen szignálátvitel (minden frekvencián) Szélessáv: széles frekvenciatartományban kerülnek átvitelre az adatok o vivőhullám, moduláció o a közeg ideális frekvenciáira lehet koncentrálni Moduláció Analóg vs. digitális szignál amplitúdó-moduláció, on/off keying frekvencia-moduláció, frekvencia-eltolás-keying (FSK) fázis-moduláció, fázoseltolás-keying (PSK) QPSK QAM-16: amplitúdó- és fázis-moduláció egyben Bithiba-gyakoriság (hibásan fogadott bitek részaránya) függ a szignál és a zaj erősségétől, az átviteli sebességtől és a felhasznált módszertől Analóg vs. digitális átvitel BER SNR = 0.5 e SNR Analóg: forráskódolás, csatornakódolás, fizikai átvitel Digitális: forráskódolás, csatornakódolás, moduláció, fizikai átvitel Átviteli médiumok Vezetékes o twisted pair o koaxiális Page 2
o üvegszál Vezeték nélküli o rádióhullám o mikorhullám o infravörös o fényhullám A médium többszörös használata tér-multiplexálás frekvencia-multiplexálás idő-multiplexálás hullámhossz-multiplexálás kód-multiplexálás (pl. ortogonális chip kódok) Adatkapcsolati réteg Az adatkapcsolati réteg feladatai: Szolgáltatásokat rendelkezésre bocsátani a hálózati rétegnek Keretek (frames) Hibafelügyelet Folyamfelügyelet (flow control) Hibafelismerés és javítás Hibajavító kódok Hibafelismerő kódok Elemi adatkapcsolati protokollok Simplex protokoll nyugtákkal Csúszó ablak (sliding window) o 1-Bit-Sliding Window (alternáló bit) o Go Back N o Selective Repeat, negatív ACK-k Hibafelügyelet Hibafelismerés Hibafelügyelet Előre Hibajavítás Utólag Keretek eleje és vége hosszinformációval byte stuffing (FLAG byte + ESC) bit stuffing kód megsértése által (nem megengedett kombináció jelzi a keret elejét/végét) Page 3
Redundancia paritásbit Hamming-távolság (d bit meghibásodásának felismeréséhez d+1, javításához 2d+1 Hamming-távolság szükséges) S 0,1 n a kódkönyv kódok rátája: R S = log 2 S (n bit hosszú kódokkal) n kódok távolsága: δ S = d(s) n jó kódoknak a rátája és a távolsága is nagy CRC modulo 2 polinomaritmetika Átviteli protokollok egyszerű szimplex protokoll nyugtákkal o problémák: A felső réteg gyorsabban küldi a csomagokat, mint ahogy a nyugták megérkeznek Mi történik, ha nyugták elvesznek alternáló bit protokoll (0-s és 1-es sorszám, 0-s után csak 1-est hajlandó fogadni) csúszó ablak protokoll (Go-back-N, selective repeat) piggybacking (hátizsák technika, visszafelé menő adatcsomagba az ACK-t) Medium Access Control Statikus multiplexálás probléma: löketszerű forgalom ( bursty traffic ) esetén nagy késés Dinamikus multiplexálás modellek: folytonos időmodell vs slotted time, carrier sensing feldolgozandó terhelés: G ha >1: túlterhelés hatékonyság mérése: o átvitel o késés o fairness Page 4
Lehetséges protokollok kollízió alapú protokollok o ALOHA (amint kész a csomag, küldi) o Slotted ALOHA o CSMA (Carrier Sense Multiple Access) non-persistent, 1-persistent, p-persistent o CSMA/CD (Collision Detection) T gen 2d (d a max propagációs késés) Ethernet WLAN o véltelen várakozási idő: binary exponential backoff (ha ütközés van, 2x-esére növeljük az időt, ha sikeres, alapértékre állítjuk) versenymentes protokollok o statikus időmultiplexálás (problémás) o bitmap protokoll (rövid statikus foglalás-slotok, mindenki a saját slotjában jelezheti ha küldeni akar) korlátozott versenyű protokollok o adaptív fabejárási protokoll: az állomásokat bináris ID-k reprezentálják, minden csomópont a fa egy levelének felel meg o tesztel egy csomópontot (minden részfabeli csomópont küld), és ha csomagütközés van, akkor teszteli a bal, majd a jobb oldali részfát. Ethernet, Fast Ethernet, Gigabit Ethernet, CSMA/CD, binary exponential backoff Új problémák: CSMA/CA (Carrier Sense Multiple Access, Collision Avoidance) o Virtual Carrier Sensing: NAV (Network Allocation Vector) a frame-ben benne van, mennyi időre foglalná le a csatornát, aki ezt hallja, az addig nem küld. o RTS (Ready To Send), CTS (Clear To Send) ha a CTS-t megkapta, nem lesz ütközés o elkerüli a rejtett kollíziókat LAN-ok összekapcsolása Fizikai rétegben: repeater, hub ( multiline repeater ) Adatkapcsolati rétegben: switch, bridge o backward learning: XY-nak szóló adatot oda kell küldeni ahonnan XY feladójú adat jött, ha még nem jött, akkor flood Page 5
o köröket okozhat, megoldás: feszítőfa, spanning tree protocol (STP) Hálózati rétegben: router felsőbb rétegekben: transport/application gateway Hálózati réteg Feladatai: útvonal-információk felépítése (route detection) csomagok továbbítása (packet forwarding) Egyéb Internet Protocol (IP) Routing tábla, felépítése (az is benne van, hogy melyik interface-en kell küldeni) TTL mező (time-to-live) Statikus routing A routing-táblát manuálisan építjük fel Kis és statikus LAN-ok esetén értelmes Dinamikus routing A routing-tábla felépítése és aktualizálása automatizált Centalizált algoritmus, pl. Link State (OSPF) o Egy/minden állomásnak ismerni kell minden információt Decentrális algoritmus, pl. Distance Vector (RIP) o minden routeren lokálisan dolgozik, lokális információkkal Algoritmusok Dijkstra, Bellman-Ford Distance Vector Routing Protocol: elosztott Bellman-Ford-ot használ o Count-to-infinity probléma: C kiesik, de A tud egy utat C-be (igaz, B-n keresztül), és ezt el is mondja B-nek. Page 6
Hierarchikus routing Problémák nagy hálózatok esetén: o Link State-nél túl sok tárolandó információ o DistanceVector-nál ciklusok, lassú konvergencia Autonóm rendszerek (AS, Autonomous System) o külön routing az AS-en belül, és azok között Inter-AS routing: BGP (Border Gateway Protocol Path Vector protokoll, teljes útvonalakat használ) IP címzés IPv4 osztály alapú címzés, és problémái, subnetting oszály nélküli címzés (CIDR, Classless Inter Domain Routing) netmask fogalma (megadja, a 32 bites IP-ből hány bit azonosítja a hálózatot, és hány a hostot) Address Resolution Protocol (ARP) IP cím MAC címre fordítása Broadcast a LAN-ban, lekérdezni azt, hogy melyik állomáshoz tartozik az adott IP cím Csak az a csomópont válaszol, amelyhez az IP tartozik, a MAC címmel A router akkor a csomagot oda ki tudja szállítani IPv6 sokkal több lehetséges IP cím (128 bit) autokonfiguráció biztonság quality of service (QoS) multicast DHCP (Dynamic Host Configuration Protocol) IP címek automatikus kiosztása o Kézi hozzárendelés (hozzákötni a MAC címhez, pl. szervereknél) o Automatikus hozzárendelés (fix hozzárendelés, de nem előre beállított) o Dinamikus hozzárendelés (újrakiosztás lehetséges) DNS hostnevek feloldása IP címre Iteratív lekérdezés: o A megkérdezett szerver annyi információt ad a válaszban, amit ő maga tud o Pl. annak a szervernek a nevét, akit meg kell kérdezni Rekurzív lekérdezés: o A megkérdezett szerver rekurzívan kideríti a hiányzó információt o A lokális szerverek tipikusan rekurzív lekérdezési módban dolgoznak o Root vagy távoli szerverek iteratívban DNS cache dinamikus dns (pl. DynDNS) reverse lookup (9.161.181.157.in-addr.arpa) Multicast Alkalmazásai: o Real time Streaming, o Web-cache update, o IPTV, Page 7
o o Multi-player játékok Telefon-, Videokonferencia (all-to-all multicast) Módszerek: o Multicast-via-unicast o Multicast fák forrás alapú (source-based): minden forrástól külön fa a fogadókhoz osztott fa (shared tree): ugyanazt a fát használja a csoport minden tagja o source-based tree (forrás alapú fa): küldőnként egy fa legrövidebb utak fája utak megfordítása (reverse path forwarding) o group-shared tree: a csoport ugyanazt a fát használja Steiner fa center-based trees tunneling (multicast routerek kommunikációja unicast közbenső routereken keresztül) Scenariok (PIM, Protocol Independent Multicast): o Sűrű: A csoport tagjai sűrűn helyezkednek el egymáshoz közel Sávszélesség bőven rendelkezésre áll A routereknél feltételezzük a csoport tagságot, addig amíg a router explicit prune üzenetet nem küld Sávszélességet és a nem-csoport-routerek erőforrását pazarolja o Ritka: A hálózatok száma, melyek tartalmaznak csoport tagot, összehasonlítva a kapcsolódó hálózatok számával, alacsony A csoport tagjai nagy távolságra szétszórtak Sávszélesség nem áll olyan bőségesen rendelkezésre Amíg a router nem kapcsolódik explicit, addig nincs csoport tagsság Sávszélességet és a nem-csoport-routerek erőforrását konzervatívan használja Congestion Control o lavina-jelenség o Követelmények: nagy átvitel (throughput), kis késés (delay) o Eszközei: A kapacitás megnövelése Erőforrás-foglalás és hozzáférés-szabályzás A terhelés csökkentése és szabályzása o Helye: hoston vagy routeren o router: törölheti a csomagot, csomagvesztés implicit visszajelzést ad a küldőnek o proaktív módszer: lefojtó csomagok (tovább növelheti a terhelést), helyette figyelmeztető bitek küldése o Random Early Detection Page 8
Circuit switching (telefonvonal) vs. packet switching (internet) Szállítói réteg Kapcsolat nélküli vagy kapcsolat orientált (connectionless/connection oriented) Megbízható vagy nem megbízható (reliable/unreliable) Best effort vagy Quality of Service Hibafelügyelet Torlódás-felügyelet (congestion control) vagy torlódás felügyelet nélkül Multiplexálás o lehetőség több végpontra egy végrendszeren (host) o Több interakciós modell támogatása: Byte-áram, üzenetek, Remote Procedure Call o A hálózati réteg az adatokat kontroll nélkül továbbítja a szállítói rétegnek o A szállítói rétegnek az adatokat különböző felhasználásokhoz kell hozzárendelni: pl. Web, Mail, FTP, ssh,... o TCP/UDP ezt port-szám alapján teszi, pl. port 80 a Web-szerverhez TCP (transmission control protocol) Megbízható adatfolyamot hoz létre két végpont között A felhasználói réteg adatáramát csomagokra osztja A másik oldal a csomagok fogadásától nyugtákat küld (Acknowledgment) UDP (user datagram protocol) Egyszerű nem megbízható szolgáltatás csomagok küldésére Az inputot egy datagrammá alakítja A felhasználói réteg határozza meg a csomag méretét A csomagokat a hálózati réteg által küldi Routing nincs: végpont-végpont protokollok Page 9
TCP kapcsolat-felépítés TCP kapcsolat-lezárás Congestion Control Retransmission Timeout (RTO) binary exponential backoff szerint, ha túl későn jön nyugta (RTT, round trip time-hoz viszonyítva) Nagle algoritmusa Cél: o kis csomagok időben egymáshoz közel kerüljenek kiszállításra o sok adat esetén nagy csomagok előnyben részesüljenek Algoritmus: o Kis csomagok nem kerülnek addig küldésre, amíg nyugták hiányoznak (egy csomag kicsi, ha az adathossz < MSS) o Ha a korábban küldött csomag nyugtája megérkezik, küldi a következőt Önmagát ütemező: Gyors kapcsolat = sok kis csomag Improves performance by allowing several small packets to be combined together into a single, larger packet for more efficient transmission. While this improves overall performance and reduces TCP/IP overhead, it may briefly delay transmission of smaller packets. Sliding window fogadó ablak >= congestion window (aktuálisan használt küldői ablak) Page 10
slow start Fast Retransmit (TCP Tahoe): 3 duplicate ACK esetén újraküldi az elveszettnek tekintett csomagot, és egyidejűleg slow start Fast Recovery (TCP Reno): o fast retransmit után o minden további nyugta tovább növeli a rátát o ha az újraküldött csomag ACK-ja megérkezik, cwnd:=ssthresh AIMD: additive increase, multiplicative decrease Szempontok fairness hatékonyság Biztonság Biztonsági célok Bizalmaság (confidentiality): o Csak egy előre meghatározott publikum tudja írni vagy olvasni az átvitt vagy tárolt adatokat o A résztvevők azonosságának a bizalmassága: Anonimitás Adatintegritás (data integrity) o Adatok megváltoztatása kideríthető legyen o Az adatok szerzője felismerhető legyen Felelős hozzárendelhetősége (accountability) o Minden kommunikációs eseményhez hozzárendelhető legyen annak okozója Rendelkezésre állás (availability) o A szolgáltatások elérhetők legyenek és helyesen működjenek Kontrollált hozzáférés (controlled access) o A szolgáltatásokat és az információkat csak autorizált felhasználók érjék el Módszerek kriptográfia tűzfalak Titkosítási módszerek Szimmetrikus titkosítás ugyanazzal a kulccsal kell kódolni és dekódolni Caesar-kód, DES, AES Hash-függvények szövegből csinál fix hosszú hash értéket nehezen vagy egyáltalán nem lehet a hash-ből visszakövetkeztetni az eredeti szövegre SHA-1, MD5 Aszimmetrikus titkosítás publikus és privát kulcs publikussal kódolni, priváttal dekódolni, így csak az tudja dekódolni akinek megvan a privát, ideális esetben csak a fogadó RSA, Diffie-Hellman, PGP Page 11
Digitális aláírás a szövegből kiszámít egy hash-t, és a privát kulcsával lekódolja, a szöveggel együtt elküldi a fogadó a publikus kulccsal visszakódolja, és összehasonlítja a fogadott szöveg hash-ével ha egyezik, nyert Egyéb fogalmak proxy NAT, PAT portforwarding DMZ Felhasználói réteg FTP HTTP, HTTPS, TLS, SSL e-mail (POP, SMTP, IMAP) XML Egyebek Webcache, HTTP mirrors fontos kérdés: a másolatok szinkronban tartása loadbalancing PageRank Peer-to-peer hálózatok Page 12