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
●
●
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: 𝜆 ∗ 𝑓 = 𝑐 𝜆 : hullámhossz (méterben) f : frekvencia - oszcillációk száma /sec (Hertz) c : fénysebesség, 𝑐 = 3 ∗ 108 𝑚/𝑠 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.: 01111110 ● 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
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
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
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
○ 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
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, Email, Telnet
7
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
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 o
9
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
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
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 43200 IN A 157.181.161.52 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
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 www.xy.z.hu névvel o S2 válaszol a z.hu-hoz tartozó NS bejegyzéssel o S1 lekérdezi S3-at a www.xy.z.hu névvel (additional information alapján) o S3 válaszol a www.xy.z.hu-hoz 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 157.181.161.9 o lekérdezés: 9.161.181.157.in-addr.arpa o root -> arpa -> in-addr -> 157 -> 181 -> 161 -> 9 o
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
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
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
ú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
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
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
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: e-mail, www, content delivery networks, peer-to-peer networks, forgalom az interneten Email: 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
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
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