Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Page 1
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 2
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.
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
Shannon-tétel
max adatráta 𝐻 log2(1 +𝑆
𝑁) 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
𝐵𝐸𝑅 𝑆𝑁𝑅 = 0.5 ∙ 𝑒−𝑆𝑁𝑅
Analóg vs. digitális átvitel
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 3
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
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)
Hibafelügyelet
Hibafelismerés
Hibajavítás
Előre
Utólag
Page 4
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)
𝑆 ⊆ 0,1 𝑛 a kódkönyv
kódok rátája: 𝑅𝑆 =log 2 |𝑆|
𝑛 (n bit hosszú kódokkal)
kódok távolsága: 𝛿𝑆 =𝑑(𝑆)
𝑛
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 5
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) – 𝑇𝑔𝑒𝑛 ≥ 2𝑑 (d a max propagációs késés)
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
Ethernet, Fast Ethernet, Gigabit Ethernet, CSMA/CD, binary exponential backoff
WLAN
Ú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 6
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 7
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 8
o Multi-player játékok
o 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 9
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 10
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 11
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 12
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