Dr. Beinschróth József Távközlési informatika II. 2.rész ÓE-KVK Budapest, 2017.
Tartalom Hálózati architektúrák: szabványgyűjtemények A fizikai réteg: bitek továbbítása Az adatkapcsolati réteg: kapcsolatvezérlés és közeghozzáférés Példák az adatkapcsolati rétegre épülő technológiákra A hálózati réteg 1: funkciók és protokollok A hálózati réteg 2: Útvonalválasztás Példa hálózati rétegre épülő technológiára A szállítási réteg Az alkalmazási réteg Kriptográfia IPSec, VPN, határfelületi védelem QOS és multimédia Kiegészítő fejezetek 2
A fejezet tartalma Hálózati működés Általános jellemzők Protokollok NAT/PAT* *Egyaránt érint a Szállítási és a hálózati réteget
Hálózati modellek Alkalmazási réteg Megjelenítési réteg Alkalmazási réteg Alkalmazási réteg Viszony réteg Szállítási réteg Hálózati réteg Szállítási réteg Hálózati réteg Szállítási réteg Hálózati réteg Adatkapcsolati réteg Fizikai réteg Fizikai réteg Adatkapcsolati réteg Fizikai réteg 4 Hálózati modellek
A szállítási réteg adategysége a szegmens Feladatai Hatékony, megbízható, gazdaságos szolgálat nyújtása az alkalmazásoknak, az átvitel sikerességének biztosítása. Az üzenetek szegmensekre bontása A hálózati réteg hibáinak javítása a hálózati réteg nem megbízható Az alkalmazások megkülönböztetése Összeköttetés alapú esetben a kapcsolatok nyilvántartása. Forgalomszabályozás (a lassú vevő védelme a gyors adótól). Pufferelés (az esetleges újraküldések érdekében). Összeomlás utáni helyreállítás 5 Általános jellemzők
A szállítási réteg a hálózati rétegre épül Jellemzői A szállítási réteg egy streamet kap a fölötte levő rétegtől és egy streamet ad vissza Logikai csatornát biztosít a végpontok szoftver folyamatai (processzek) között. Egyaránt lehet összeköttetés alapú és összeköttetés mentes kapcsolat. Felhasználja a hálózati réteg által nyújtott szolgálatokat. A szállítási entitás tipikusan az operációs rendszer részeként valósul meg. Saját címzési rendszerrel rendelkezik (port). Végpontok közötti adatszállítás Nyalábolás Egyetlen IP cím felhasználásával több alkalmazás is kommunikálhat Korlátozott sávszélességű virtuális áramkörök esetén a sávszélességek összeadása 6 Általános jellemzők
Szállítási szolgálati primitívek interfészt biztosítanak az alkalmazások számára A primitívek jelentősége Primitívek: Meghívható parancsok. Az alkalmazások szabványos primitívkészletet használhatnak. A primitívek interfészt biztosítanak az alkalmazások számára. Kódoláskor nem kell foglalkozni az alsóbb rétegek problémáival (hálózati technológia, megbízhatóság, címzések, stb. 7 Általános jellemzők
Tipikus primitívek Primitív Jelentés LISTEN Várakozás kapcsolódásra (szerver) CONNECT Összeköttetés létrehozása SEND Adatküldés RECEIVE Várakozás adatok érkezésre DISCONNECT Összeköttetés bontási szándék 8 Általános jellemzők
A gépeken belül az alkalmazásokat is címezni kell (1) Port: alkalmazás cím (alkalmazás azonosító szám) TSAP (Transport Service Access Point), port. 16 bites szám, az 1024 alatti számok fenntartottak well-known portok. A szerverek a well-known portokat használják Well-known portok (RFC1700) pl.: FTP 21 Telnet 23 SMTP 25 HTTP 80 POP3 110 A kliens alkalmazások portja nem a well-known port! Az op. rendszer határozza meg, a konkrét érték kapcsolódik az alkalmazást megvalósító process PID-jéhez. Válasz esetén az lesz a célport, amelyik a kérésben a forrásport volt. 9 Általános jellemzők
A gépeken belül az alkalmazásokat is címezni kell (2) Socket Konnektor, foglalat, csatlakozó, szolgálat elérési pont Az alkalmazás (pl. web szerver vagy kliens) által létrehozott kommunikációs végpont, amelyet a szállítási entitás is ismer. Az alkalmazás és a szállítási entitás írhat bele, ugyanúgy, mint egy fájlba. Általánosított fájl abban az értelemben, hogy használat előtt meg kell nyitni, lehet bele írni, lehet belőle olvasni és a végén le kell zárni. A socket azonban nem tartalmaz adatokat, hanem az információ csere egyik végpontja. Amit egyik fél küld, a másik azt fogadhatja és viszont. Jellemzői Protokollcsalád (IPv4, IPv6, IPX) Típus (TCP, UDP) Protokoll (http, smtp ) Címzése: IP cím + port cím 10 Általános jellemzők
Az internet szállítási protokolljai TCP UDP 11 Protokollok
TCP (Transmission Control Protocol) A TCP jellemzői TCP UDP Átvitelvezérlési protokoll (RFC793, RFC1122, RFC1323) Megbízható összeköttetést biztosít (Connection Oriented Service) Adatok sorszámozása Adatok nyugtázása Hibajavítás ismétléssel Flow Control Urgent Data (Adatok prioritásának kezelése) A csomagokat sorrendhelyesen továbbítja megbízhatatlan összekapcsolt hálózaton (Összekapcsolt hálózat Az egyes részek topológiája, csomagmérete sávszélessége, késleltetése stb. egymástól jelentősen különböznek.) Duplex, kétvégpontú kapcsolat (nem támogatja a többesküldést (multicast) és az adatszórást (broadcast)). Robusztus, sokféle meghibásodással szemben nagymértékben ellenálló. Az összeköttetés azonosítására (Connection Identifier) a Socket-et (IP Address+Port Number) használja. 12 Protokollok
A TCP az üzeneteket szegmensekre tördeli TCP UDP A kapcsolat megvalósulása Mind a küldő, mind a fogadó létrehoz egy socketet és a socketek között összeköttetés valósul meg. Maximálisan 64 KB-os darabokra tördeli az adatfolyamot, ami a felhasználói alkalmazás felől érkezik. Minden ilyen darabot külön IP- csomagban küld el. A címzettnél a beérkező csomagokat az ottani TCP-entitás kapja meg, ami újra előállítja belőle azt a byte-folyamot, amit a küldő oldali alkalmazás állított elő. (A sorrendhelyesség biztosítása.) Ellátja az időzítések kezelését és a datagramok újraküldését, ha az szükséges, mivel ez az IP-rétegnek nem feladata. 13 Protokollok
TCP összetett headert használ (1) TCP UDP A TCP header TCP fejrész hossz 6 bit fenntartott Forrásport U R G Ellenőrző összeg A C K P S H R S T S Y N Sorszám Nyugta F I 32 bit N Opciók (0 vagy több 32 bites szó) Adatok (opcionális) Célport Ablakméret Sürgősségi mutató 14 Protokollok
TCP összetett headert használ (2) TCP UDP Mező Forrásport Célport Sorszám Nyugta TCP fejrész hossz URG (1bit) ACK (1bit) PSH (1bit) RST (1bit) SYN (1bit) FIN (1bit) Leírás A forrás alkalmazás port címe A cél alkalmazás port címe A küldött szegmens sorszáma A várt szegmens sorszáma Hány 32 bites szóból áll a fejrész? URG=1: Érvényes sürgősségi mutató van. ACK=1: A szegmens nyugtát tartalmaz, a nyugta mező érvényes PSH=1: A vevő készüljön fel adatvételre (puffer felszabadítás) RST=1: Probléma jelzése (pl. összeomlás) SYN=1: A kapcsolat létrehozásakor az adó-vevő Sequence Number és Acknowledgement Number mezőinek összeszinkronizálása. FIN=1: Összeköttetés bontása nincs továbbítandó adat 15 Protokollok
TCP összetett headert használ (3) TCP UDP Mező Leírás Ablakméret A vevőnél rendelkezésre álló buffer méretét jelzi, ezzel a Flow Control is megvalósul. (Ennyi Byte-ot hajlandó fogadni nyugta nélkül.) Ellenőrző összeg Bizonyos mezők ellenőrző összege (IP címek is protokollhierarchia sértés!) Sürgősségi mutató A soron kívüli, sürgős adat helyének megadása (interrupt helyett). (pl. egy interaktív felhasználó egy távoli számítás megszakításához CTRL+C-t használ.) Opciók Opciók azonosítása. Pl.: A legnagyobb elfogadható TCP adatmező megadása. (alapértelmezés 536 Byte) Léteznek adatot nem tartalmazó szegmensek, nyugtázásra, vezérlésre használhatók. 16 Protokollok
A TCP megbízható összeköttetést valósít meg TCP UDP A probléma: a hálózati réteg nem biztosít megbízható kapcsolatot javítani kell Túlterhelt hálózat, az IP csomagok (amik a szegmenseket szállítják) és a nyugták késnek. Az időtúllépések miatt újraküldések vannak. A régi csomagok (mik a szegmenseket szállítják) egy idő után újra felbukkannak, csomagkettőzések jönnek létre. Kék hadsereg, fehér hadsereg 17 Protokollok
A megbízható összeköttetés megvalósítása: háromutas kézfogás (1) TCP UDP Normál működés CR = CONNECTION REQUEST, CA = CONNECTION ACCEPTED 18 Protokollok
A megbízható összeköttetés megvalósítása: háromutas kézfogás (2) TCP UDP Régi kettőzött CR CR = CONNECTION REQUEST, CA = CONNECTION ACCEPTED 19 Protokollok
A megbízható összeköttetés megvalósítása: háromutas kézfogás (3) TCP UDP Régi kettőzött CR és CA CR = CONNECTION REQUEST, CA = CONNECTION ACCEPTED 20 Protokollok
A háromutas kézfogás az összeköttetés bontása során számos hibát kezel (1) Az összeköttetés bontása TCP UDP Az aszimmetrikus bontás adat- vesztéssel járhat, az összeköttetés bontása után nincs adatfogadás. CR = CONNECTION REQUEST CA = CONNECTION ACCEPTED DR = DISCONNECT REQUEST ACK = ACKNOWLEDGE 21 Protokollok
A háromutas kézfogás az összeköttetés bontása során számos hibát kezel (2) TCP UDP Normál működés 22 Protokollok
A háromutas kézfogás az összeköttetés bontása során számos hibát kezel (3) TCP UDP Az ACK elvész 23 Protokollok
A háromutas kézfogás az összeköttetés bontása során számos hibát kezel (4) TCP UDP A válasz elvész 24 Protokollok
A háromutas kézfogás az összeköttetés bontása során számos hibát kezel (5) TCP UDP 25 Protokollok A válasz és az utána következő DR elvész Telbisz Ferenc: Nagysebességű TCP protokollok http://videotorium.hu/hu/recordings/details/864,nagysebessegu_tcp_protokollok
UDP (User Datagram Protocol) TCP UDP Jellemzői Felhasználói datagram protokoll RFC768 Connectionless nem megbízható, datagram service Olyan alkalmazások használhatják, amelyek összeköttetés kiépítése nélkül kívánnak datagramokat küldeni. Best Effort átvitel Forgalomszabályozást, újraküldést, hibakezelést nem végez 26 Protokollok
Az UDP nem megbízható TCP UDP Nem garantált a kézbesítés Nem garantált, hogy az egyes csomagok egyáltalán megérkeznek a címzetthez. Nem tördeli a csomagokat, mindössze egy fejléccel ellátva továbbítja őlet. Meglehetősen alacsony átviteli költségekkel tud üzemelni, nincsenek nyugtázások, összehangolási paraméterek, elsőbbségi beállítások, sorszámok, újraküldési időzítők stb. Általában adatszórásra, DNS lekérdezésre és real time adatok átvitelére alkalmazzák. A kliens szerver kapcsolattokban gyakoriak a rövid kérdés rövid válasz kapcsolatok A nyugtáknak nincs értelme, mert, ha a kliens egy ideig nem kap választ, megismétli a kérdést. Példa: DNS Real time kapcsolatok (multimédia) Az újraküldésnek nincs értelme, az elveszett csomagok a címzettnél interpolációval pótolhatók. Példa: VoIP 27 Protokollok
Az UDP header TCP UDP 32 bit Forrásport UDP szegmens hossza Célport UDP ellenőrző összeg* *Ellenőrző összeg: Bizonyos mezők ellenőrző összege (IP címek is protokollhierarchia sértés!) 28 Protokollok
NAT/PAT: címfordítás NAT (Network Address Translation), PAT (Port Address Translation): címfordítás a határfelületen A címzési rendszer kidolgozásakor nem számítottak ennyi gépre számuk egyre növekszik kevés az IP cím! 2 32 gép??? (Bizonyos esetekben megoldás a dinamikus IP címkiosztás) Az IPv6 hosszú távon végleges megoldást jelenthet. (IPv6 esetén nincs NAT.) Biztonsági probléma: A szervezetek nem kívánják publikálni a gépeik IP konfigurációit, számát stb. 29 NAT/PAT
NAT: a hatékonyabb IP cím felhasználás és a biztonság növelése (1) Külső és belső IP címek: egy szervezet IP hálózata kívülről más címtartományban jelenik meg, mint amit belül valójában használ (rfc 1631, rfc 3022) A cégek tipikusan egy vagy csak néhány IP címet kapnak, ez(ek) látható(k) az internet felöl (globális, külső IP cím) Cégen belül az egyes gépek egyedi IP címekkel rendelkeznek, de ezek az internet felöl nem láthatók (lokális, belső IP cím) A privát hálózat és az internet határán a belső címek lecserélődnek a cég külső IP címére (címeire) 30 NAT/PAT
NAT: a hatékonyabb IP cím felhasználás és a biztonság növelése (2) A címfordítást a NAT box végzi, ami gyakran egy egységet alkot a routerrel és a tűzfallal A címfordító router nem hirdeti a belső hálózatot kifelé, de a külső hálózatból jövő routing információt a szokásos módon hirdeti a belső hálózatban Ha a fordítás nem lehetséges (pl. betelt a táblázat), a NAT box eldobja a csomagot és egy ICMP Host Unreachable üzenetet küld a forrásnak Alkalmazási területek A szolgáltató váltás egyszerűvé válik (nem szükséges minden gép IP címét átállítani) Több gép érheti el az internetet, mint ahány IP címmel rendelkezik a szervezet Terhelésmegosztás virtuális szerver (pl. egy IP cím mögött több azonos tartalommal rendelkező web szerver van) 31 NAT/PAT
Milyen IP címek használhatók belső címként? Címtartomány (rfc 1918) Gépek maximális száma 10.0.0.0-10.255.255.255/8 >16M host 172.16.0.0 172.31.155.255/12 >1M host 192.168.0.0 193.168.255.255/16 >65e host 32 NAT/PAT
NAT (Network Address Translation): Hogyan változnak az IP címek? Belső hálózat Külső hálózat Pl.: web szerver A határfelületen a lokális forráscímek globális forráscímre lesznek cserélve IP csomag IP csomag Globális cél Globális cél Lokális forrás Globális forrás Lokális cél Globális forrás Globális cél Globális forrás IP csomag IP csomag A határfelületen a globális célcímek lokális célcímre lesznek cserélve A lokális és globális címek között egy-egy értelmű összerendelés van. 33 NAT/PAT
PAT: Sok belső és csak néhány külső IP cím Eljárás küldéskor Amikor egy IP csomag elhagyja a hálózatot a belső IP címe le lesz cserélve külső IP címre (címfordítás) A csomag TCP(UDP) headerében a forrás port is le lesz cserélve egy pointerre, amely egy táblázat egy bejegyzésére mutat A táblázat a határfelülten levő eszközön tárolódik (Az headerek control szummáit újraszámolják és az új értékkel helyettesítik) A bejegyzés tartalmazza az eredeti (belső) IP címet és az eredeti forrás port értéket Eljárás a válasz visszaérkezésekor A TCP (UDP) header cél port mezőjében pointer szerepel, az IP headerben pedig a külső IP cím A táblázat és a pointer alapján külső IP cím le lesz cserélve a belső IP címre, a cél port pedig az eredeti forrás port értékre (Az headerek control szummáit újraszámolják és az új értékkel helyettesítik) A csomag a belső IP címnek megfelelően továbbításra kerül 34 NAT/PAT
A címfordítás történhet statikusan és dinamikusan Statikus címfordítás Egy-egy értelmű megfeleltetés a belső és külső címek között, ez esetben a csere nincs adminisztrálva a táblázatban (ha bizonyos gépeknek mindig azonos IP címmel kell megjelenniük a külső hálózaton) Tipikusan kívülről elérhető szerverek esetén Dinamikus címfordítás A belső IP címekhez a külső IP címek egy tartományából (pool) lesz külső IP cím rendelve 35 NAT/PAT
A NAT/PAT nem teljes mértékben követi az alapelveket, emiatt problémákat okozhat 36 Az IP architektúrális modellje sérül Minden IP cím egyértelmű módon kellene, hogy azonosítson egy gépet A k-adik réteg nem tudhat semmit arról, hogy mi van a k+1-edik réteg headerében (pl. nem TCP vagy UDP kapcsolat, továbbfejlesztett TCP header stb.) Összeköttetés nélküli kapcsolat alapelve nem teljesül A NAT box a kapcsolatról információt tárol: a kapcsolatállapot nyilvántartási tulajdonság az összeköttetés alapú hálózatokat jellemzi A NAT box kritikus elem: kiesésével a táblázat elvész, az egész TCP kapcsolat megszűnik A forrás port tartománya (16bit) limitálja a táblázat méretét A fenntartott első 4096 port miatt a táblázat maximális mérete 65535-4096 Ennél több aktív session esetén több külső IP cím szükséges Némelyik alkalmazással nem feltétlenül működik együtt Szabványos FTP H.323 NAT/PAT Kadlecsik József: IPv6 csomagszűrés http://videotorium.hu/hu/recordings/details/773,ipv6_csomagszures
Ellenőrző kérdések 1. Melyek a szállítási réteg feladatai és jellemzői? 2. Jellemezze a TCP headert! 3. Jellemezze az UDP headert! 4. Miért szükséges háromutas kézfogás? 5. Miben különbözik egymástól a TCP és az UDP? 6. Mi a NAT? 7. Mit jelent a lokális és a globális cím? +1: Írjon még öt ellenőrző kérdést 37
Teszt feladatok (1) 1. A szállítási réteg a hálózati architektúrából kihagyható, az alkalmazás megfelelő beállításával elérhető, hogy az alkalmazási réteg közvetlenül forduljon a hálózati réteghez. 2. A szállítási rétegben nincs szükség külön címzésekre, mert a címzések a hálózati rétegben megvalósulnak. 3. A TCP a Time Compenzation Puffer arra utal, hogy a real-time alkalmazások esetén a jitter okozta problémák pufferek alkalmazásával kezelhetők. 4. Az UDP a Uniform Data Package rövidítése. Arra utal, hogy az azonos szerkezetű csomagok továbbítása során nincs szükség hálózati rétegre a szállítási réteg közvetlenül az adatkapcsolati réteghez kapcsolódik. 5. A well-known portokat oktatási/didaktikai célból különböztetik meg más portoktól. 6. Az OSI-ban nincs külön szállítási réteg, funkciói a hálózati rétegben valósulnak meg. 7. A megbízható adatátvitel azt jelenti, hogy nyugtázások valósulnak meg. 8. A TCP-ben addig nem küldhető új szegmens, amíg az előzőről a nyugta meg nem érkezett. 38
Teszt feladatok (2) 9. Az UDP-ben nem fordulhat elő újraküldés. 10. Az UDP-ben legfeljebb egyszer lehetséges újraküldés. 11. Az UDP-ben alkalmazott háromutas kézfogás a robusztusságot biztosítja. 12. Az UDP protokoll alkalmazható real-time kapcsolatok esetén, mivel ekkor az újraküldés értelmetlen lenne. 13. A TCP headerben szereplő ablakméret azt jelenti, hogy hány szegmens küldhető el nyugta nélkül. 14. A TCP headerben levő TCP fejrész hossz mező a TCP és UDP header együttes hosszát adja meg. 15. Az UDP általában a TCP-nél alacsonyabb átviteli költségeket eredményez. 16. A háromutas kézfogás az összes elveszett szegmens okozta hibát kezeli. 39
Teszt feladatok (3) 17. A szállítási réteg javítja a hálózati réteg hibáit, mivel a hálózati réteg nem valósít meg megbízható kapcsolatot. 18. A szállítási entitás az alkalmazások (pl. web szerver) egyik összetevőjeként valósul meg. 19. Az UDP forgalomszabályozást, újraküldést, hibakezelést nem végez. 20. Tipikus hiba lehet, hogy a régi csomagok egy idő után újra felbukkannak, csomagkettőzések jönnek létre. 21. A háromutas kézfogás során gyakori, hogy időzítés miatt következik be egy újraküldés. 22. Az UDP HBR D-je azt arra utal, hogy a szállítás nem megbízható ugyanakkor biztosított a sorrendhelyes szállítás. 23. Az ábra azt fejezi ki, hogy a vivő (carrier CR) modulálva lesz az adatjellel (CA), majd alapsávi adatátvitel valósul meg (ADAT) 40
Teszt feladatok (4) 24. NAT-olás során minden IP cím megváltozik. 25. Szerverek esetén nem kerül sor címfordításra. 26. Ha címfordítás történik, a szállítási rétegbeli header megváltozik. 27. Címfordítás esetén az eredeti belső IP cím az IP header opciók mezőjébe kerül. 28. A NAT box tárolja az eredeti belső IP címeket. +1: Írjon még öt teszt kérdést
Feladat: Egészítsük ki az ábrát! (Töröljük a fölösleges(eke)t!) Tüntessük fel a timeoutot! Ablak=4 Timeout:100 a1 a2 a_ a_ a_ a_ S3 (elveszett) s1 s2 s_ s_ s_ s_ s_ a_ s_ 42
Feladat: Egészítsük ki az ábrát! (Töröljük a fölösleges(eke)t!) Tüntessük fel a timeoutot! Timeout megáll a1 a2 S3 (elveszett) s1 s2 s4_ a2 s5_ a2 s6_ Ablak=4 (4=6-2) Timeout:100 a2 a_ s_ Timeout lejár s3_ a6 s7 43