Rétegek: Felhasználói Szállítói Adatkapcsolati Hálózati Fizika

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Rétegek: Felhasználói Szállítói Adatkapcsolati Hálózati Fizika"

Átírás

1 Rétegek: Felhasználói Szállítói Adatkapcsolati Hálózati Fizika Alapsáv és szélessáv Alapsáv (baseband) A digitális szignál direkt árammá vagy feszültségváltozássá alakítódik A szignál minden frekvenciával átvitelre kerül Pl. NRZ-vel (feszültség magas = 1, feszültség alacsony = 0) Probléma: Átviteli korlátok Szélessáv (broadband) Az adatok egy széles frekvencia-tartományban kerülnek átvitelre Lehetőségek: Az adatokat egy vivőhullámra tehetjük (Amplitúdó moduláció) A vivőhullámot megváltoztathatjuk (Frekvencia / fázis moduláció) Különböző vivőhullámokat egyidejűleg használhatunk fel Ötlet: A közeg ideális Frekvenciáira koncentrálunk Egy sinus-görbét használunk, mint vivőhullámot a szignáloknak Egy sinusgörbe nem tartalmaz információt Az adatátvitelhez a sinusgörbét folyamatosan meg kell változtatni Digitális és Analóg átvitel összehasonlítása Digitális átvitel Diszkrét szignálok véges halmaza Pl. feszültség értékek / áramerősség értékek véges halmaza Analóg átvitel Szignálok végtelen (folytonos) halmaza Pl. a szignál a feszültségnek vagy az áramerősségnek felel meg a vezetékben Digitális szignálok előnyei: Lehetőség van a vételpontosság helyreállítására és az eredeti szignál rekonstruálására Analóg átvitel esetén fellépő hibák önmagukat felerősíthetik Önütemező kódolás - szinkronizáció megoldása: Felügyelet nélkül nincs szinkronizáció Megoldás: explicit órajel Párhuzamos átvitelt igényel egy külön csatornán Szinkronizáltnak kell lennie az adatokkal Csak rövid átvitel esetén ésszerű 1

2 Szinkronizáció kritikus időpontokban Pl. egy szimbólum vagy egy blokk kezdetén Egyébként teljesen szabadon futnak az órák Megbízik abban, hogy az órák rövid ideig szinkron futnak Órajel a szimbólumok kódolásából Fizikai alapok: λ f = c λ : hullámhossz (méterben) f : frekvencia - oszcillációk száma /sec (Hertz) c : fénysebesség, c = m/s Keretek (frames) A fizikai réteg bitáramát darabokra, u.n. keretekre (frames) osztjuk Szükséges a hibafelügyelethez A keretek az adatkapcsolati réteg csomagjai Keretekre-osztás (fragmentálás és a fogadó oldalon defragmentálás) szükséges, ha a hálózati réteg csomagjai nagyobbak, mint a keretek Hibafelügyelet Minimálisan megkövetelt szolgáltatás az adatkapcsolati rétegtől Keretek segítségével Hibafelismerés: van-e hibásan átvitt bit Hibajavítás: bithibák megtisztítása Header és Trailer legtöbbször a keret kezdetén használnak egy Header-t a végén pedig egy Trailer-t jelzik a keret kezdetét és végét kontrollinformációt hordoznak Pl. küldő, fogadó, kerettipus, hibafelügyeleti információ Speciális Flag Byte -ok jelzik a keret kezdetét és végét Byte beszúrás (byte stuffing): Ha a flag-byte a küldendő adatok között előfordul, akkor mint adatbyte-ot egy másik speciális jellel (Escape) kell jelezni Ha a másik speciális jel (Escape) a küldendő adatok között előfordul, azt is. Flag bits és bit beszúrás (bit stuffing) flag byte helyett egy bitsorozatot használunk, pl.: bit beszúrás: Ha a küldő öt 1-esből álló sorozatot küld, automatikusan beszúr a bit-áramba egy 0-t a flag bit-ek kivételével A fogadó, ha öt 1-es után egy 0-t kap, törli a 0-t Paritásbit: Odd/Even parity ha az 1-esek száma páros 1-est/0-t adunk hozzá 2

3 Hamming-távolság: hány helyen különbözik a két bitsorozat // d(x,y)=... Kód távolsága: A Hamming-távolságok minimuma d(s) = 1 : nincs felismerés, nincs javítás d(s) = 2 : 1 bit hiba felismerhető, de nem javítható d(s) = 3 : 1 bit hiba felismerhető és javítható d hiba felismeréséhez d+1 távolság szükséges d hiba javításához 2d+1 távolság szükséges Kód rátája: R_S = log S / n // S : kódok dbszáma, n: hosszuk Kód delta_s távolsága: delta_s = d(s)/n CRC Hatékony hibafelismerés Polinom aritmetikán alapul a 2-es maradékosztályok (Z2) testén A jelsorozatokat polinomnak tekintjük A bitek a polinom együtthatói G(x) generátor polinom, foka g Átküldésre került az ereti polinom g-vel eltoltja + a maradék A fogadó: fogadott polinom/generátor polinom Ha 0, akkor jó Ha nem 0, akkor hibás A hibát akkor nem ismerjük fel, ha a hibapolinom többszöröse a generátor polinomnak Simplex protokoll: csomagok küldése csak egyirányú A fogadó nyugtázza a küldő csomagjait (ehhez fél-duplex fizikai csatorna elegendő) A küldő vár egy bizonyos ideig a nyugtára (acknowledgment -- ACK) Ha az idő lejárt, újraküldi a csomagot Ha elveszik egy nyugta, akkor kap egy duplikátumot a fogadó (nem tud különbséget tenni) Alternáló bit protokoll: (duplikátumokra való megoldás) 0,1-et küld felváltva a küldő, így megállapítható ha valamit újraküld Hatékonyság: T_packet / (T_packet + d + T_ack + d) A hatékonyság javítható a csomagok folyamatos küldésével. Nem mind használható fel egyszerre. 3

4 Csúszó ablak: A sorozatszámot megnöveljük n bitre, azaz 2^n sorozatszámra Küldő-ablak: sorozatszámok olyan sorozata, amely 1 adott időben elküldhetők Fogadó-ablak: sorozatszámok olyan sorozata, amely 1 adott időben elfogadhatók Az ablakok mérete lehet fix vagy időben dinamikusan változtatható Az ablakméret folyamfelügyeletet tesz lehetővé A működés feltételei: Az adatátkapcsolati rétegnek minden frame-et helyesen és helyes sorrendben kell átvinni A küldő hatékonyság növeléséhez pipeline technikát használva küldi a csomagokat Csomagvesztés esetén: Ha a fogadó-ablakméret = 1, a következő csomagokat mind eldobja a fogadó Go-back-N: Ha a fogadó-ablakméret = 1, akkor a fogadó nem tudja feldolgozni azokat a frame-eket, melyek egy elveszett (vagy hibás) frame-et követnek Nem tudja azokat nyugtázni, mert csak egy nyugtát küld az utolsó helyesen fogadott csomagról A küldőnél lejár a várakozási idő a nyugtára: Timeout Minden frame-et, amit az utolsó nyugtázott frame után küldött, újra kell küldeni Go-back-N Frames! Szelektív ismétlés: Tegyük fel, hogy a fogadó tudja pufferelni a csomagokat, amelyek a közbenső időben érkeztek A fogadó értesíti a küldőt a hiányzó csomagról negatív nyugtával A küldő elküldi a hiányzó frame-eket szelektíven (selective repeat) Amikor a hiányzó frame megérkezik, minden frame-et (a helyes sorrendben) átad a fogadó a hálózati rétegnek Hátizsák technika (általánosan használt): A nyugtát az ellentétes irányba küldött adat-frame fejlécébe tesszük (piggybacking) MAC (Medium Access Control -- MAC): Statikus multiplexálás Dinamikus csatornafoglalás o Kollúzió alapú protokollok o Verseny-mentes protokollok (contention-free) o Protokollok korlátozott versennyel (limited contention) Az Ethernet példája Adott egy link (erőforrás / resource) A kommunikációs kapcsolatokhoz fix időegységeket (TDM) / frekvenciasávot (FDM) / csatornákat rendelünk 4

5 Ez akkor jó megoldás, ha o fix adatráták vannak és a o sávszélességet annak megfelelően osztjuk csatornákra A források a vezetéket jól kihasználják Löketszerűen érkező adatok (bursty traffic): elegendően nagy kapacitás (pazarlás, mert átlagos ráta nem használja ki a csatornát) pufferek Dinamikus csatorna foglalás MAC: Statikus multiplexálás nem megfelelő löketszerű adatforgalom kezelésére A csatorna/link/erőforrás hozzárendelése ahhoz a forráshoz aki éppen adatot akar küldeni o Dinamikus csatorna foglalás (channel allocation) o az erőforrás fix részének hozzárendelése helyett ALOHA: egy csomagátvitel akkor sikeres, ha két egységnyi időben nincs másik csomagátviteli kísérlet CSMA: 1-persistent CSMA Ha a vivő médium nem szabad, várjunk, amíg szabad lesz Akkor azonnal kezdjük meg az átvitelt Ha kollúziót tapasztalunk, akkor várjunk véletlenül választott ideig és ismételjük meg elölről non-persistent CSMA Ha a csatorna szabad, kezdjük meg az átvitelt Ha a csatorna nem szabad, várjunk véletlenül választott ideig, utána ellenőrizzük újra, hogy a csatorna szabad-e, és így tovább A csatornát nem ellenőrizzük folyamatosan kevésbé mohó p-persistent CSMA 1. Ha a csatorna szabad, p valószínűséggel küldjük a csomagot ha kollíziót tapasztalunk, várjunk véletlen ideig kezdjük újra az 1. pontban egyébként (1-p valószínűséggel) várjunk a következő slot-ra folytassuk az 1. pontban 2. Ha a csatorna foglalt figyeljük folyamatosan, amíg nem lesz szabad, azután folytassuk az 1. pontban CSMA/CD - Kollízió felismerés A fizikai rétegtől függően, a kollízió felismerhető! 5

6 Szükséges: A küldőnek képesnek kell lenni hallgatni a médiumot miközben küld és összehasonlítani amit küld és amit hall Ha különbözik: Kollízió Várunk egy véletlen ideig! Randomizálás deszinkronizálja a médium hozzáférést, és ezzel segít elkerülni a kollíziót Valamennyi kihasználatlan időt eredményez Váltakozva verseny- és átviteli-periódusok Periódusai: Üres Verseny Átviteli Binary Exponential Backoff: Növeljük k-t a kollízió után: sok lehetőség van (k: várakozási idő) Általánosan használt: duplázzuk meg k-t De csak egy korlátig, mondjuk, 1024 slot kezdjük k=2-vel Csökkentsük k-t, ha elegendően sok frame kollízió mentesen átvitelre került Tehát az algoritmus: a várakozási időt dinamikusan a csatornát használó állomások számához igazítja gondoskodik a csatorna egyenletes kihasználásáról MAC - Versenymentes protokollok: Statikus (idő-) multiplexálás (TDMA) o Minden állomáshoz egy fix idő-slotot rendelünk egy ismétlődő idő-séma szerint Bit-map protokoll o A TDMA probémája o Ha az állomás nem küld semmit, az idő-slotja kihasználatlan o Foglalási rendszer: Bit-map protocol o Rövid statikus foglalás-slotok, melyek jelzik az átvitel kívánságot o Minden állomásnak hallani kell o Tulajdonságok alacsony terhelés esetén Ha nincs csomagküldés, akkor az (üres) verseny-slot ismétlődik Egy állomás, ha küldeni akar, meg kell várnia a verseny-slotokat Viszonylag nagy késés (delay) Tulajdonságok nagy terhelés esetén A csatornát az adatcsomagok dominálják Az adatcsomagok nagyobbak mint a verseny-slotok Az overhead elhanyagolható Jó és stabil átvitel (throughput) MAC Protokollok korlátozott versennyel: Adaptív fabejárás protokoll 6

7 Backward learning (bridge-ekben): A honnan tudja, hogy hol van B? o Nem tudja: o nem számít egyszerűen továbbítja az ismeretlen című csomagot mindenfele o Azon hálózat kivételével, ahonnan érkezett o Az algoritmus: elárasztás (flood) ha a cím ismeretlen; dobja el ha tudja, hogy nem szükséges; továbbítsa specifikusan, ha a cél címe ismert o Flood korlátozása: Megjegyezzük mely frame-eket továbbítottunk már Előfeltétel: a frame-ek egyértelműen azonosíthatók o Másik megoldás: Feszítőfák A csomagok ciklusai csak akkor jönnek létre, ha a gráf, amit a bridge-ek definiálnak kört tartalmaz. LAN-ok és bridge-ek csomópontok, ezek vannak összekötve élekkel Alakítsuk körmentessé FTP: File Transfer Protocol Távol lévő végrendszertől/végrendszerre szállít file-t Kliens/szerver modell Kliens: az az oldal, amely a file transzfert kezdeményezi Szerver: távoli végrendszer ftp: RFC 959 ftp server: port 21 TCP-t adja meg a szállító protokollként 2 párhuzamos kapcsolatot alakít ki o kontroll: parancsok és válaszok cseréléséhez o Adat: file szerverhez/szervertől Szükséges szolgáltatások a szállítói rétegtől: ~Adatvesztés, Időzítés, Sávszélesség UDP és TCP socketeken keresztül / hasonló a file I/O-hoz UDP: Egyszerű socket üzenetek küldése/fogadása Nincs garancia a megérkezésükre Nem szükségszerűen sorrendtartó Datagram független csomagok Minden csomagot meg kell címezni Például: Multimédia, VOIP TCP: Megbízható a megérkezés garantált Byte folyam sorrendtartó Kapcsolat-orientált egy socket kapcsolatonként A kapcsolat felépítése után adatátvitel Például: Web, , Telnet 7

8 Routing-tábla Tartalmazza a cél címekhez a következő számítógép (gateway) címek a hozzá a hozzá vezető úton A cél lehet egy számítógép vagy egy sub-net Ezen kívül tartalmaz egy default gateway-t Packet forwarding IP csomag (datagram) tartalmazza a küldő IP címét és a cél IP címét Amikor egy IP csomag megérkezik egy routerhez: o Ha a cél IP = saját IP, akkor a csomagot kiszállítja o Ha a cél IP = a routing táblában van, akkor továbbítja a megadott gateway-hez o Ha a cél IP-subnet a routing táblában van, továbbítja a megadott gateway-hez o Egyébként továbbítja a default gateway-nek IP csomag tartalma: o TTL: Time-to-Live hopok száma o Küldő IP-címe o Címzett IP-címe Csomag kezelése a routerben: o TTL := TTL-1 o Ha TTL!= 0, akkor packet forwarding a routing-tábla alapján o Ha TTL = 0, akkor töröljük Ha a csomag nem ICMP (Internet Control Message Protocol), akkor küldjök az ICMP-csomagot: TTL equals 0 during transit), ahol: Cél IP cím = eredeti küldő IP címe Küldő IP cím = aktuális IP cím Statikus és dinamikus routing o Forwarding: csomagok továbbítása o Routing: Útvonalak meghatározása: a routing-tábla felépítése (route detection) o Statikus routing: A routing-táblát manuális építjük fel Kis és statikus LAN-ok esetén értelmes o Dinamikus routing: A routing-tábla félpítése és aktualizálása automatizált Centralizált algoritmus: pl. Link State Egy/minden állomásnak ismernie kell minden információt Decentralizált algoritmus: pl. Distance Vector minden routeren lokálisan dolgozik, lokális információkkal o Legrövidebb utak fája (8. ea példák) Dijkstra algoritmus Bellman-Ford Distance Vector Routing Protocol Count-to-Infinity probléma: o Új kapcsolat létrejöttekor gyorsan aktualizálódnak a táblák o Ha kiesik egy kapcsolat: a szomszédok felváltva növelik a távolságokat ciklusok keletkeznek Megakadályozásához: o Split horizon: olyan sorokat nem küld vissza a csomópont annak a szomszédjának, amit tőle tanult 8

9 o Split horizon with poison reverse: negatív információt küld vissza o Mindkét módszer csak 2 csomópontból álló ciklus kerül el Link State Protocol Minden Link State Router o tárolja a hálózat topológiáját o egy nem-elosztott legrövidebb utak algoritmust használ A routerek Link State Packets (LSP) által cserélnek információkat LSP tartalmazza o az LSP-t létrehozó r router IP címét o a költségét r minden direkt szomszédjához o sorozatszámot (SEQNO) o TTL (time to live) mezőt Megbízható elárasztás (Reliable Flooding) o minden csomópont aktuális LSP-jét használjuk o továbbítjuk az LSP-ket minden aktuális csomóponthoz azon csomópont kivételével, amely az LSP-t felénk továbbította o a továbbításnál TTL := TTL-1 o periodikusan létrehozunk egy új saját LSP-t növekvő SEQNO-val Autonomous Systems (AS), Intra-AS és Inter-AS routing o Intra-AS routing: pl.: RIP, OSPF, IGRP o Inter-AS routing: kapcsolódási pont: átjáró gateway decentralizált routing pl.: BGP, EGP Intra-AS Routing: o RIP Routing Information Protocol Distance Vector alg: távolság metrika = hop szám A távolság vektorokat minden router minden 30s Response-üzenettel (advertisement) adja át a szomszédjának A szomszédok is advertisement-et küldenek ha így a táblájuk megváltozott Minden advertisement-ben célhálózathoz hirdetik meg az utakat UDP-vel Ha 180s-ig nem kap a router advertisement-et egy szomszédjától: az utakat a szomszédon keresztül érvényteleníti új advertisement-eket küld a szomszédainak count-to-infinity (ping-pong) elkerülése végett split horizon with poison reverse-t használ végtelen távolság = 16 hop o OSPF Open Shortest Path First Link-State algoritmus LS csomagok terjesztése a topológiát minden csomópontban tárolja az útvonalakat Dijkstra algoritmusával számítja ki OSPF-advertisement TCP-vel növeli a biztonságot az egész AS-be elárasztja több egyenlő költségű útvonal lehetséges 9

10 o o o Hierarchikus OSPF Két hierarchia szerint: lokális és gerinchálózat (backbone) szerint Lokális: Link-State advertisement Minden csomópont csak az irányt számítja ki más lokális területek hálózataihoz Local Area Border Router: saját lokális területeik távolságait foglalják össze Backbone Routers: OSPF protokollt használnak gerinchálózatra korlátozva Boundary Routers: Más AS-ekkel kapcsolnak össze IGRP Interior Gateway Routing Protocol Distance Vector Protocol, mint a RIP Holddown time Split horizon Poison reverse Különböző költség metrikákat támogat Delay, Bandwith, Reliability, stb. TCP-t használ a routing információk kicseréléséhez BGP Border Gateway Protocol Path Vector Protocol Hasonló a Distance Vector protokollhoz minden border gateway meghirdeti minden szomszédjának (peers) az egész utat (AS-ek sorozata) a célig (advertisement) TCP-t használ Broadcast és Multicast Broadcast routing o Egy csomagot (másolatot) minden más csomópontnak el kell küldeni o Megoldások: A hálózat elárasztása Jobb: Minimális feszítőfa Multicast Routing o az adatokat egy küldőtől egyidejűleg több fogadóhoz kell eljuttatni pl: Streaming, Telefon-, videokonferencia o IP D címosztály: Egy multicast-csoport minden tagja ugyanazt a címet használja o Megoldások: Optimális Minimális Steiner Fa Probléma NP-teljes Más (nem opt.) fát konstruálni o Naív/Rossz megoldás: a küldő külön másolatot küld minden fogadónak nem hatékony o Multicast fa segítségével: Minden linken csak egyszer továbbítódik egy csomag IPv4 címek: Osztály alapú címzés (1993-ig) o 5 fix osztály, melyek mindegyikét egy prefix azonosítja o A,B,C osztály: fix hosszúságú prefix és host-id 10

11 o D: multicast osztály o E: lefoglalt Problémák: o A és B osztályú hálózatok sok állomást tartalmazhatnak, ami a routerek számára nehezen kezelhető subnetting o Elfogynak a címek Subnetting o Bevezetünk alhálózatokat, melyeket az IP host részéről leválaszott bitek azonosítanak (a hálózaton kívülről nem látható) o A lokális routernek tudnia kell, hogy hol van ez a leválasztás: ez a subnet mask által adható meg IP cím MAC címre való fordítása: ARP 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 címek: Autokonfiguráció: DHCP, Mobile IP, átszámozás Új szolgáltatások o Biztonság (IPsec) o Quality of Service (QoS) o Multicast Egyszerűsítés a routernek o nincs IP checksum o nem particionálja az IP csomagokat Címek: DHCP (Dynamic Host Configuraion Protocol) o Kézi hozzárendelés (hozzákötni a MAC címhez, pl: szerverek) 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) Új számítógép kapcsolódása konfiguráció nélkül o A számítógép kér egy IP címet a DHCP szervertől o Az dinamikusan hozzárendel egy IP címet a számítógéphez o Miután a számítógép elhagyja a hálózatot, az IP címeket frissíteni kell IPsec Security Architecture for the IP Biztonsági protokollok o Authentication Header (AH) Biztosítja az adat küldőjének azonosítását kapcsolatmentes adatintegritást védelmet Replay-támadásokkal szemben o Encapsulating Security Payload (ESP) IP fejléc titkosítás nélkül, adatok titkosítva, azonosítással Kulcs management: o IKE (Internet Key Exchange) Protokoll o Egy Security Association létrehozása IPsec transport üzemmódban (direkt kapcsolatokhoz): o IPsec fejléc az IP fejléc és az adatok között van IPsec tunnel üzemmódban (ha van legalább egy IPsec nélküli router közötte) 11

12 o Az egész IP csomagot titkosítja o Csak a kapcsolat két végén kell, h legyen IPsec IPsec része az IPv6-nak porting IPv4-re létezik IP címek és a Domain Name System (DNS) IP címek o Minden hálózati interface egy hálózatban világszerte egyértelmű IP címmel rendelkezik o 32 bit, amely a Net-ID és Host-ID-ra oszlik o Net-ID: az Internet Network Information Center adja ki o Host-ID: a helyi hálózat adminisztrátora adja ki o Domain Name System (DNS) az IP-címek nehezen kezelhetők jobbak a természetes szavak az IP-címekhez A DNS lefordítja ezeket a címeket IP-címekre (és fordítva) elosztott adatbázis Minden domain-en belül, a domain tulajdonosa felügyeli a névteret a domain alatt DNS Resource Record o Erőforrás bejegyzés (Resource Record: RR): a domainekről, egyes hostokról adnak információt o RR formátum: name: pl domain név vagy host név TTL: time to live érvényesség mp-ben class: internet esetén IN type: ~~ value: IP cím példa: pandora.inf.elte.hu IN A DNS Name Server o A névtér zónákra van osztva o Minden zónához tartozik egy Authoritativ Server Egy Primary Name Server Egy vagy több Secondary Name Server o Minden Name server ismeri a saját zónáját a gyermek zónák Name Server-eit Servers/Resolvers o Minden végrendszernek van egy feloldója (resolver) Tipikusan egy könyvtár, amit felhasználásokhoz kapcsolhatunk Lokális name-server-ek kézzel konfigurálva o Name servers tipikusan egy zónáért felelősek lokális szerverek A lokális végrendszereknek végeznek lekérdezéseket távoli végrendszer nevekről megválaszolják a lekérdezéseket a lokális zónáról Root Name Servers o root zónáért felelősek 12

13 o a lokális szerverek kapcsolatba lépnek a root szerverrel, ha ők nem tudnak megválaszolni egy lekérdezést DNS lekérdezések o Iteratív lekérdezés A szerver annyi információt ad, amennyit tud a root/távoli szerverek így dolgoznak o Rekurzív lekérdezés a lokális szerverek tipikusan így dolgoznak Feloldási folyamat: o felhasználás: gethostbyname() o végrendszer lekérdezi a lokális name servert (S1) o S1 lekérdezi a root szervert (S2) a névvel o S2 válaszol a z.hu-hoz tartozó NS bejegyzéssel o S1 lekérdezi S3-at a névvel (additional information alapján) o S3 válaszol a tartozó bejegyzéssel Caching o Gyors válasz ismételt lekérdezés esetén o DNS negatív lekérdezések: ne kelljen ismételni a kudarcot pl. elgépelés o a cache-ben tárolt adatok érvényessége egy idő után lejár (TTL) Megbízhatóság o DNS szerverek replikáltak a name service működik ha egy replika működik a lekérdezések kiegyensúlyozottak a replikák között (load balancing) o UDP-thasznál timeout esetén alternatív szerver exponential backoff ha visszatér ugyanahhoz a szerverhez ugyanaz az azonosító minden szerverhez Reverse name lookup o o lekérdezés: in-addr.arpa o root -> arpa -> in-addr -> 157 -> 181 -> 161 -> 9 A szállítói réteg szolgáltatásai Kapcsolat nélküli vagy kapcsolatorientált Megbízható vagy nem megbízható (reliable/unreliable) o best effort vagy quality of service o Hibafelügyelet Torlódás felügyelet vagy torlódás felügyelet nélkül Lehetőség több végpontra egy végrendszeren (Demultiplexálás) Több interakciós modell támogatása Multiplexálás a szállítói rétegben A hálózati réteg az adatokat kontroll nélkül továbbítja a szállítói rétegnek A szállítói rétegnek az adatokat különböző felhasználásokhoz kell hozzárendelni: o Web, Mail, FTP, ssh, stb. o TCP/UDP portszám alapján o pl. 80 : web-szerver 13

14 Szállítói réteg (transport layer) TCP (transmission control protocol) o Megbízható adatolyamot hoz létre 2 végpont között o A felhasználói réteg adatáramát csomagokra osztja o A másik oldal a csomagok fogadásáról nyugtákat küld (Ack) UDP (user datagram protocol) o Egyszerű, nem megbízható szolgáltatás csomagok küldésére o Az inputot egy datagrammá alakítja o A felhasználói réteg határozza meg a csomag méretét A csomagokat a hálózati réteg küldi Nincs routing: végpont-végpont protokollok TCP-fejléc Küldő-Port + Cél-Port-Nr. Sorszám Nyugta szám Checksum Fejléchossz FLAGS o URG: sürgős o ACK : nyugta o PSH: Push gyors adattovábbítás a felhaszn rétegnek o RST: Reset válasz a hiba esetén (connection reset) o SYN: Synchronize o FIN: Finished TCP Kapcsolatorientált megbízható szolgáltatás o Két résztvevő: Egy résztvevő socket által azonosított: IP-cím és port o egyértelműen azonosított egy socketpár által o nincs broadcast és multicast o kapcsolatfelépítés és lezárás szükséges o amíg egy kapcsolat nincs lezárva, addig aktív Megbízható o Minden adatcsomag megérkezését nyugtázza (ack) o A nem nyugtázott csomagokat újraküldi o TCP számozza a csomagokat és sorba rendezi a fogadónál o törli a duplikátumokat Szolgáltatás Bidirekcionális byte-folyamokhoz A tartalom nem interpretálódik Átviteli közeg hatékony használata Kapcsolatfelépítés rendszerint Client-Server kapcsolat o Felépítés 3 TCP-csomaggal (syn-> majd syn <- ack <- majd ack->) o az első SYN-szegmensben az MSS (maximum size segment) is átvitelre kerül Kapcsolat lezárása Félig lezárás o küldő jelzi a kapcsolat befejezését FIN-szegmensben és vár a nyugtájára o Két félig lezárás zárja le a TCP-kapcsolatot 14

15 Nyugták hátizsák technika piggybacking o a nyugták az ellenkező irány adatszegmensein utaznak Egy nyugta több adatszegmenst is nyugtázhat o Ha nincs küldeni való adat, késlelteti az ACK-okat Exponenciális visszavétel (exponential backoff) Retransmission Timeout (RTO) o időköz szabályzása a küldés és duplikátum újraküldése között, ha egy nyugta kimarad o Nyugta nem kerül nyugtázásra, ha: Ha a nyugta több időt vesz igénybe, mint az átlagos RTT (round time trip) Csak későn jön a nyugta o Küldő: vár az RTO-nak megfelelő ideig Ha nem érkezett nyugta, újraküldi a csomagok és növeli RTO <- 2RTO RTO újraszámolása, ha a csomagok nyugtázódnak TCP Nagle algoritmusa Kis csomagok nem kerülnek addig küldésre, amíg a nyugták hiányoznak o egy csomag kicsi, ha az adathossz < MSS Ha a korábban küldött csomag nyugtája megérkezik, küldi a következőt Tulajdonsága: Önmagát ütemező: Gyors kapcsolat = sok kis csomag Csúszó Ablakok (sliding windows) Adatráta szabályozása ablak segítségével o A fogadó meghatározza az ablak méretét (wnd) az ACK-szegmensek TCP fejlécében o Ha a fogadó puffere tele van, akkor wnd=0 t küld o Máskülönben a fogadó wnd>0 t küld A küldőnek be kell tartani: az elküldött nem nyugtázott adatcsomagok száma <= ablak mérete Slow Start (Lassú start) A küldőnek nem szabad a fogadó által felajánlott ablakméretet azonnal kihasználni Második ablak: congestion-ablak o a küldő választja o az ablak amiben küld: min{wnd,cwnd} o kezdetben: cwnd := MSS o minden csomagnál a kapott nyugta után nő: cwnd <- cwnd + MSS o Addig amíg egyszer egy nyugta kimarad Fast Retransmit és Fast Recovery TCP Tahoe o Ha csak egy csomag veszik el, akkor a csomag újraküldi + a fennmaradó ablakot egyidejű slow start o Fast retransmit Ha ugyanazon csomaghoz 3 nyugta-duplikátum (azaz 4 azonos nyugta) érkezik triple duplicate ACK 15

16 újraküldi az elveszett csomagot, egyidejű slow start TCP Reno o Fast retransmit után: ssthresh := max (mint(wnd,cwnd)/2,2mss) cwnd := ssthreash + 3 MSS o Fast recovery a fast retransmit után minden további nyugta után növeli a rátát: cwnd := cwnd + MSS o Congestion avoidance: amikor új adat nyugtája megérkezik (újraküldés ack-ja): cwnd := ssthresh AIMD kapcsolat felépítés: x := 1 csomagvesztésnél MD: x := x/2 nyugtázott szegmensnél AI: x:=x+1 AIMD additive increase multiplicative decrease Fairness és hatékonyság Az átvitel maximális, ha a terhelés a hálózat kapacitását majdnem eléri Ha a terhelés tovább nő, túlcsordulnak a pufferek, csomagok vesznek el, újra kell küldeni, nő a válaszidő (ez a torlódás a congestion) Maximális terhelés helyett ajánlatos a hálózati terhelést a könyök közelében beállítani. o Ekkor a válaszidő lassan emelkedik, míg az adatátvitel már a max közelében van Torlódáselkerülési stratégia: o a hálózat terhelését a könyök közelében tartja: hatékonyság o minden résztvevőt egyforma rátával szolgálunk ki: fairness TCP összefoglalás: megbízható byte-folyamot hoz létre: hibafelügyelet go-back-n által congestion control o ablak alapú o aimd, slow start, congestion threshhold o folyamfelügyelet window által o kapcsolatfelépítés o nagle algoritmusa TCP fairness & TCP friendliness dinamikusan reagál a rendelkezésre álló sávszélességre sávszélesség fair felosztása: n TCP-kapcsolat esetén mind 1/n részt kap TCP más protokollal o reakció más szállítói protokollok terhelésétől függ pl: udp-ben nincs congestion control o más protokollok mindenkor felhasználhatók o UDP és más protokoll el tudja nyomni a TCP kapcsolatokat A szállítói protokolloknak TCP-kompatibilisnek kell lenni UDP nem megbízható kapcsolat nélküli szállítói réteg protokoll csomagoknak fő funkció: hálózati réteg csomagjainak demultiplexálása egy funkció: chechsum: UDP header + data 16

17 Biztonság Fenyegetés, támadás: Egy számítógéphálózat fenyegetése minden olyan lehetséges esemény vagy akciók sorozata, amely a biztonsági célok megsértéséhez vezet A támadás a fenyegetés realizálása Biztonsági célok: Bizalmasság Adatintegritás (adatok megváltozása kideríthető legyen) Felelős hozzárendelhetősége (minden tetthez hozzárendelhető legyen az okozó) Rendelkezésre állás Kontrollált hozzáférés (csak autorizált felhasználók érjék el) A kommunikációs biztonság terminológiája Biztonsági szolgáltatás o Szolgáltatás, mely egy biztonsági tulajdonságot kíván biztosítani o Lehet kryptografikus protokollal vagy anélkül realizálni Kryptografikus algoritmus o matematikai transzformáció Kryptografikus protokoll o lépések és kicserélendő üzenetek sora egy biztonsági cél eléréséhez Szimmetrikus titkosítási módszerek: Kryptografikus hash-függvények: pl.: SHA-1, SHA-2, MD5 egy h hash függvényegy szöveget képez le fix hosszúságú kódra, úgy, hogy o h(text) = kód o és nincs olyan szöveg melyre: h(tex1) = h(tex2) és tex1!= tex2 Aszimmetrikus titkosítás módszerek: pl. RSA privat kulcs, csak a fogadó ismeri public kulcs, minden résztvevő ismeri o egy fv állítja elő keygen(privat) = public titkosító fv f és visszakódoló fv g o mindenki ismeri titkosítás o f(public,text) = code o minden résztvevő ki tudja számítani visszakódolás o g(privat,code) = text o csak a fogadó tudja kiszámítani Elektronikus aláírás: Más néven digitális szignatúra o Az aláírónak van egy (titkos) privát kulcsa o A dokumentumot privát kulcs felhasználásával írja alá és a nyilvános kulccsal verifikálható, hogy az aláírás tőle származik o a nyilvános kulcs mindenki számára ismert Példa: o text: üzenet o az aláíró: kiszámítja h(text) értékét h kryptografikus hash fv-nyel 17

18 nyilvánosságra hozza text és signature = g(privat,h(text)) értékét, ahol g az aszimmetrikus visszakódoló fv o Az aláírást ellenőrző: kiszámítja h(text) értékét megvizsgálja, h f(public,signature) = h(text), ahol f az aszimmetrikus titkosító fv Internet tűzalak (firewalls) Egy hálózati tűzfal o A hozzférést az Internetről egy biztosított hálózatra korlátozza o Korlátozza a belépést a hálózatba egy gondosan ellenőrzött pontra o Véd, hogy a támadók ne jussanak más védelmi mechanizmusok közelébe o Korlátozza a kilépést egy gondosan ellenőrzött pontra Általában egy hálózati tűzfal egy olyan pontra van telepítve, ahol a védett (al)hálózat egy kevésbé megbízható hálózathoz kapcsolódik Típusai: o Host-Firewall pl. Personal Firewall Felügyeli a számítógép teljes adatforgalmát Védelem külső és belső támadásoktól o Hálózat-Firewall megkülönböztet: Külső hálózatot (internet: ellenséges) Belső hálózatot (LAN: megbízható) Demilitarizált zónát (külső hálózatról elérhető szerver) Módszerek: o Csomagszűrő Portok vagy IP címek letiltása o Tartalomszűrő SPAM-Mailek, vírusok, activex vagy javascript kiszűrése HTML oldalakból o Proxy Speciális számítógép, amelyen a kérések és válaszok keresztül vannak irányítva Transzparent Host-ok A kommunikáció és a lehetséges támadások elvezetése biztosított számítógépekre o NAT, PAT Network Address Translation o Bástya Host Egy olyan számítógép a periférián, ami különös veszélynek van kitéve, ezért különösen védett Dual-homed host: közönséges számítógép két interfésszel (2 hálózatot köt össze) Perimeter Network: Egy részhálózat, amely a védett és védetlen zóna között egy további réteget ad o Szinonima: demilitarizált zóna (DMZ) NAT és PAT NAT (Network Address Translation) Basic NAT (Static NAT) o Minden belső IP cím egy külsővel helyettesítődik 18

19 Hiding NAT = PAT (Port Address Translation) = NAPT ( Network Address Port Translation) o A socket-pár (IP-cím és Port-szám) átszámítódik Módszerek o A különböző lokális számítógépeket a portokban kódoljuk o Ezeket a WAN-hoz csatlakozó router megfelelően átszámítja o Kimenő csomagoknál (melyeknek a célja a LAN-IP-cím), a kódolt Port alapján a lokális számítógép és a hozzátartozó Port egy táblázat segítségével számítható vissza Előnyök o A lokális hálózat számítógépei direkt nem elérhetők o Megoldja/enyhíti az IPv4 címek szűkösségének a problémáját o lokális számítógépek nem szolgálhatnak szerverként DHCP (Dynamic Host Configuration Protocol) hasonló előnyöket biztosít Tűzfal architechtúra egy standard workstation amely két hálózati interfésszel és szűrő szoftverrel rendelkezik vagy spec. szűrésre képes router Screened Host A csomagszűrő o csak az Internet és a screened host között és a o screened host és a védett hálózat között enged meg forgalmat A screened host bástya-hostként működik, képes önmaga támadást elhárítani Screened subnet perimeter hálózat 2 csomagszűrő között a belső csomagszűrő védi a belső hálózatot, ha a bástya-hostnak nehézségei támadnak o Egy hackelt bástya-host így nem tudja a belső hálózati forgalmat kikémlelni perimeter hálózatok különösen alkalmasak nyilvános szolgáltatások rendelkezésére bocsátására; pl. FTP, vagy WWW-szerver Tűzfal csomagszűrő Alap csomagszűrés lehetővé teszi az adatátvitel ellenőrzését a köv. alapján: o Source IP address o Destination IP address o Transport protocol o Source/destination application port csomagszűrés o tunnel algoritmusok nem ismerhetők fel o lehetséges betörni más kapcsolatok által is pl. laptop, GSM, memory stick Felhasználói réteg: példák felhasználói rétegre: , www, content delivery networks, peer-to-peer networks, forgalom az interneten Komponensei: o user agents o message transfer agents szolgáltatások o kompozíció, küldés, értesítés, megjelenítés, rendelkezés további szolgáltatások 19

20 o továbbküldés, auto-válasz, szabadság-funkciók Struktúra o Boríték a szállításhoz szükséges információ, az MTA használja o Tartalom Fejléc a kontroll információ az UA-nak Törzs a valódi tartalom SMTP : Simple Mail Transfer Protocol POP: Post Office Protocol IMAP: Internet Message Access Protocol World Wide Web Client-Server-Architechtúra o Web-Server web-oldalakat bocsát rendelkezésre o Formátum: Hypertext Markup Language (HTML) o Web-Browser oldalakat kérdez le a web-servertől o Server és browser Hypertext Transfer Protocol (HTTP) által kommunikálnak egymással Szerver-Farm A szerver oldal teljesítményének növeléséhez több szerver dolgozik Front end o fogadja a lekérdezéseket o továbbítja a lekérdezéseket egy különálló csomóponthoz további feldolgozásra Web-Serverek és adatbázisok Web-Serverek nem csak statikus web-oldalakat bocsátanak rendelkezésre o weboldalakat automatikusan is létre lehet hozni o ehhez egy adatbázisból kérdeznek le adatokat o ez az adatbázis nem szükségszerűen statikus, megváltoztatható lehet probléma: konzisztencia megoldás: web-szolgáltatás és adatbázis egy 3-adfokú architechtúrája Web-Cache Helye: o a kliens oldalon o a lokális hálózatban o az internet-service-providernél Kérdések: o adatok elhelyezése, nagysága, aktuálitása o érvénytelenítés timeout-tal WWW terhelés kiegyensúlyozás (load balancing) web-szörfözéskor tipikusan o web-szerverek weboldalakat bocsátanak rendelkezésre o webkliensek weboldalakat kérnek le rendszerint ezek a halmazok diszjunktak a lekérdezések a webszervereken terhelést okoznak o átviteli sávszélesség o számítási igény Terhelési elvárások o Egyes szervereken mindig magas terhelést kell kiszolgálni o Más szervereken nagy az igények ingadozása Terhelés kiegyensúlyozása a WWW-n o Kommersziális megoldás 20

21 szolgáltatók ilyen esetre Cache szervereket kínálnak a sok lekérés ezekre a szerverekre kerül eloszlásra Web Caching o dinamikus hash-függvények segítségével osztják el az adatokat a szervereken, az ingadozó terhelésnek megfelelően Kiindulási szituáció o terhelés kiegyensúlyozás nélkül: minden böngésző ugyanattól a web-szervertől tölti le a weboldalt o előny: egyszerű o hátrány: a szervert a legrosszabb esethez kell dimenzionálni Web-hely Caching o Az egész web-helyet több web-cache-be másoljuk (replikáljuk) o A böngésző a web-szervertől kér egy oldalt o Web-szerver átírányítja a kérést a web-cache-hez (redirect) o Web-cache elküldi a weboldalt o előny: az oldalak elosztásának jó a kiegyensúlyozása o hátrány: szűk keresztmeszet: redirect nagy overhead a teljes web-hely replikálása miatt Proxy Caching o Minden web-helyet egyes web-cache-re osztunk el o csak az első kérés éri el a web-szervert o a linkek az oldalon web-cache-beli oldalakra mutatnak o ezután a kliens a web-cache-ben szörfözik o előny: nincs szűk keresztmetszet o hátrány: terhelés kiegyensúlyozás csak implicit lehetséges magas követelmény a caching algoritmussal szemben Content Distribution Networks (CDN) o Cache-ek koordinált halmaza nagy web-helyek terhelését elosztja globális elosztott szerver-farmon lehetőleg különböző szervezetek web-oldalainak kezelése a cache-lekérdezések regionálisan és terhelést tekintve a leginkább megfelelő helyre kerülnek átirányításra Peer-to-Peer hálózat Nem kliens-szerver hálózat Egyenértékű partnerek közötti kapcsolatot jelenti netslang: P2P Egy Peer-to-Peer hálózat egy o számítógépek közötti kommunikációs hálózat az Interneten o melyben nincs központi irányítás o és megbízható partner sem a Peer-to-Peer hálózatok forgalmának túlnyomó része szerzői jogokat sért legális felhasználások: o internet-telefon, skype o szoftver elosztás (pl.: linux..) gyorsabb letöltés, szerverek tehermentesítése o GNU-licenc alatti szoftver cserélje o privát filmek, fényképek, dokumentumok cserélje 21