330 likes | 432 Views
Kapcsolatmentes csomagkapcsolt adathálózat. Internet. Protokollok és kapcsolatok a kezdeti TCP/IP modellben. TELNET. FTP. SMTP. DNS. TCP. UDP. IP. Csomagkapcsolt rádió. LAN. ARPANET. SATNET. TCP/IP „ajánlás”.
E N D
Protokollok és kapcsolatok a kezdeti TCP/IP modellben TELNET FTP SMTP DNS TCP UDP IP Csomagkapcsolt rádió LAN ARPANET SATNET
TCP/IP „ajánlás” • Mivel nem egy szabványosítási szervezet hozta létre, hanem cégek, kukató intézetek, ezért csupán ajánlásról van szó. • Az Internet minden ajánlása RFC-k (Request For Comment) formájában, bárki számára szabadon elérhető. • Az RFC-ket számozzák (máig több, mint 2000 van). Ha valamelyik kiöregszik, azt egy újabbal helyettesítik, de már publikált RFC-t sose változtatnak meg. • Bármely RFC-hez bárki véleményt fűzhet, és elküldheti a szerzőknek, így segítve a további fejlesztést.
Internet, mint hálózat • Csomagkapcsolt adatátviteli rendszert alkalmazó független hálózatok összessége. • Minden hálózat egyenlő, függetlenül attól, hogy milyen módszerrel szállítja a csomagokat, milyen késleltetést okoz, milyen fizikai címzést használ és mekkora csomagméretet alkalmaz. • Független hálózatok közti kapcsolatot a Gateway-ek (manapság inkább Router-eknek nevezik) teszik lehetővé. Ezek kettő (vagy több) független hálózathoz csatlakoznak egy időben. • Az Internet minden végberendezése és Routere egységes címet – úgynevezett IP címet – alkalmaz. Ezt központilag osztják ki, úgy, hogy két gépnek nem lehet azonos címe.
Internet címek • IP cím, egy 32 bites előjeltelen bináris szám, amelye logikailag két részre tagolódik: • Hálózat-azonosító (netID) • Hoszt-azonosító (hosztID) • A 32 bites címet az egyszerűbb kimondhatóság érdekében 4 db 8 bites csoportra osztják, amiket decimálisa pontokkal elválasztva írnak le. Ezt nevezik pontozott decimális címnek (Dotted Decimal Address) Pl.: 11000000 11010001 01010100 10000001 = 192.225.84.129
IP címek osztályokba sorolása Annak függvényében, hogy a 32 bitből mennyi a netID, soroljuk osztályokba a címeket. • A: 8 bites • B: 16 bites • C: 24 bites 0 1 2 3 4 8 16 24 31 Class A 0 netID hosztID Class B 1 0 netID hosztID 0 netID Class C 1 hosztID 1 0 1 1 multicast address 1 Class D 1 0 1 1 fejlesztésre fenntartva 1 Class E
IP címek kiosztása • Internet minden hosztja legalább egy IP címmel rendelkezik. A routerek azonban egyszerre több hálózatban is vannak, így legalább annyi címmel kell hogy rendelkezzen, ahány hálózatban vannak. (IP cím, a hálózati kapcsolat címe, nem a gépé!) Ilyen berendezéseket multi homed eszközöknek nevezzük. • A netID-k és a hosztID-k kiadásakor néhány konvenciót alkalmaznak: • Ha a netID és/vagy hosztID =0 a cím „ezt” – this – a hosztot/hálózatot jelöli. • Ha a hosztID vagy az IP cím minden bitje 1, ez az úgynevezett (limited, directed) broadcast cím.
Speciális IP címek • „Ez” a hoszt (csak startup alatt, cél nem lehet) • „Ez” a hálózat (forrás/cél-cím nem lehet) • Hoszt „ezen” a hálózaton (csak startup alatt, cél nem lehet) • Limited broadcast (forrás-cím nem lehet) • Directed broadcast (forrás-cím nem lehet) • Loopback (soha nem jelenhet meg hálózaton) csupa 0 netID csupa 0 hosztID csupa 0 csupa 1 netID csupa 1 127 akármi (gyakran 1)
Byte sorrend • Mivel az Interneten különböző típusú gépek működnek együtt, ezért szükséges volt az egy oktetnél hosszabb adatok esetére a byte-sorrend definiálása. • Két különböző sorrendű byte-ábrázolást alkalmaznak: • Big Endian: pl. Sparc, Motorola CPU • Little Endian: Intel CPU • Az Interneten szabványos byte-sorrendje (Network Standard Byte Order) a Big Endian. Vagyis előszőr mindig a legmagasabb helyiértékű biteket tartalmazó byte kerül átvitelre.
IP címek és fizikai címek különbözősége • Azért szükséges, mert a különböző hálózati technikák különféle címzéseket használnak. Az Interneten minden kapcsolatot egységes formátumú egyedi címmel különböztet meg. • Ez azért előnyös, mert az Internet kompatibilis protokollokat megvalósító programokat, döntő többségben a tényleges hardver résztől függetlenül alakítják ki. • A rendszer csak akkor működik, ha megtaláljuk a módját az IP címek és a fizikai címek összerendelésére. Ezt címfeloldási problémának (Address Resolution Problem) nevezik.
Direkt leképezés(Direct Mapping) • Ahol a hálózati kártya rövid, szabadon beállítható címeket használ, ott a hálózatot felépíthetjük úgy, hogy fizikai címként az IP címeket használjuk. • Ezt alkalmazzák pl. a Token Ring hálózatokban, ahol a hosztok 8 bites fizikai címe az illesztőkártyán állítható be. • Így az IP címből a fizika cím meghatározása csak néhány gépi műveletet igényel. • Hátrány, hogy az IP cím megváltoztatása esetén a fizikai címet is változtatni kell, illetve hibás konfigurálás esetén két gép azonos fizikai címet kaphat.
Dinamikus leképzés(Dynamic Mapping) • Ahol nem lehetséges a fizikai címek megváltoztatása, illetve egyszerű leképzése IP címre (pl. Ethernet), ott alkalmazzák ezt a módszert. • Azt a protokollt, amellyel a hoszt egy másik hoszt fizikai címét csupán annak IP címének ismeretéből megállapítja, ARP-nek (Address Resolution Protocol) nevezik. • Ethernet hálózaton az ARP azt használja ki, hogy létezik broadcast cím is. • A hálózat minden gépének egy olyan csomagot elküldve, aminek az adat részében egy ARP csomag van, megtalálható a keresett gép.
ARP csomag 0 8 16 24 31 Hardware Type Protocol Type Hardware Type: Ethernet esetén =1 Protocol Type: 0800H (IP címek feloldását kérjük) Operation: 1: ARP Request 2: ARP Response 3: RARP Request 4: RARP Response HLEN, PLEN: IP, fizikai címek hossza (Ethernet: 4,6) HLEN PLEN Operation Sender Hardwer Address (octet 0-3) Sender Hardwer Address (octet 4-5) Sender IP Address (octet 0-1) Sender IP Address (octet 2-3) Target Hardwer Address (octet 0-1) Target Hardwer Address (octet 2-5) Target IP Address (octet 0-3)
ARP működése • A csomagot elküldjük minden gének. • Amelyik felismeri az IP címét az visszaküldi a csomagot kiegészítve. • Az így megszerzett címmel létre lehet hozni a kapcsolatot. • Ahhoz, hogy ne legyen folytonos felesleges kommunikáció a hálózaton, a megismert címeket e hosz egy ideig tárolja. • Háttértárak nélküli gépek, a saját címük megismerésére használják az RARP-t (Reverse Address Resolution Protocol), amit a gép addig küldözget a hálózatba, amig választ nem kap egy géptől, mely ismeri a címét.
Szállítási szolgáltatások • Az Internet a felhasználó szempontjából egyetlen virtuális hálózatnak tekinthető. Ezt az egymásra épülő szabványos protokollok biztosítják. • A réteges felépítés lehetővé teszi, hogy a különböző szinteken elhelyezkedő protokollok egymástól függetlenül működjenek. Applikációs szolgáltatások Megbízható szállítási szolgáltatás Kapcsolatmentes szállítási szolgáltatás
Kapcsolatmentes adatátvitel • Legalapvetőbb Internet szolgáltatás a kapcsolatmentes szállítási szolgáltatás (Connectionless Delivery Service). • Ez a szolgáltatás csomagok (Internet terminológia szerinti nevük datagram) szállítását végzi, mégpedig „felelősség nélkül” (nem garantálja célba érkezését). • Kapcsolatmentesség arra utal, hogy az egyes csomagokat függetlenül juttatja el a célba. A csomagvesztés tényéről semelyik felet sem értesíti. • Ezt a szolgáltatást az IP (Internet Protokoll) nyújtja. Ez meghatározza a datagram formátumát, és kezelését.
Csomagolás • A datagramok az átvitel során a fizikai szállító közeg csomagjában (pl. Ethernet frame) utaznak. Ezt csomagolásnak (encapsulation) nevezik Daragram Header Datagram Data Frame header Frame Trailer Frame Data
VERS: IP protokoll verzió szám(4) HLEN: Fejléc hossza (4 oktetben) Precedence: Fontosság (0-7) D-T-R: Átvitel jellege D=1: Alacsony késleltetésű átvitel T=1: Nagy sávszélesség R=1: Nagy megbízhatóság Total Length: adat+fej hossz (max. 65535) IP datagram 0 4 8 11 12 13 16 19 24 31 VERS HLEN Prec. D T R - - Total Length Identification Flags Fragment offset Time-to-Live Protocol Header Checksum Head Source IP Address Destination IP Address IP Options (opcionális) Padding Data …
Tördelés (fargmentation) • IP daragram megengedett legnagyobb hossza 64K oktet. A fizikai közeg azonban általában nem enged meg ekkora csomagokat. (Ethernet: max. 1500 oktet) • Ha a datagram mérete meghaladja a fizikai szállító közeg maximális csomagméretét (Maximum Transfer Unit, MTU) akkor azt tördelni kell. Az így kapott darabokat fragment-eknek nevezik. Datagram Header Data 1 (400 oktet) Data 2 (400 oktet) Data 3 (200 oktet) MTU Data 1 F1 H. F2 H. Data 2 F3 H. Data 3
Széttördelt datagram • Strukturálisan megegyezik az eredetivel, csak néhány mező tartalma változik. Identification: Azonosítja a datagramot. A darabokban megegyezik. Fragment Offset: A darab offset-jét agja meg az eredei datagram-ban. Flags: Első bitje a „do not fragment” bit. Ha 1, akkor nem tördelhető. Utolsó bitje „more fragments”, ami az utolsó fragment kivételével mindig 1. Time-to-Live: Maximális élettartam. Minden router egyel csökkenti. Ha 0 eldobja, és értesíti a feladót. Protocol: Szállított adat típusa.
IP hálózat vezérlése • Interneten a feladó hosztól a datagramok az útba eső routerek közreműködésével jutnak el a címzettig. Ha valamelyik router olyan körülményt észlel amelyek lehetetlenné teszik az adat továbbítását, azt jeleznie kell a datagramot küldő gépnek. • Ezeknek a céloknak a megvalósítását szolgálja az Internet Vezérlő Üzenet Protokoll (ICMP, Internet Control Message Protocol). • Az ICMP hibajelzésen túl hálózatellenőrzési funkciókat is ellát. • Az ICMP protokoll elem az IP datagramok adatmezejébe csomagolva utaznak.
ICMP üzenet 0 8 16 31 Type Code Checksum • Az üzenet csak egy állapot jelzésére szolgál, nem javításra. • Javítás a feladó feladata. Type: ICMP üzenet típusa Code: Üzenet jelentésének finomítása Checksum: Hibák felderítésére • Üzenet – hibajelzéskor – mindig tartalmazza a hibát kiváltó datagram fejlécét, és a szállított adat első 8 oktetjét. ICMP üzenet-specifikus tartalom
IPCM üzenetek • Echo: Cím elérhetőségének ellenőrzésére (ping) • Host/Port Unreachable: A datagramot nem tudja a végső címhez továbbítani. (Pillanatnyi működésképtelenségre utal) • Source Quench: Torlódás jelzés, az üzeneteket túl szaporán feladó küldőnek. • Redirect: Ha a router ismer jobb útvonalat is, ebben tájékoztatja a feladót. • Time Exceeded: Time-to-Live mező értéke elérte a 0-t. • Time Stamp: Távoli gép órájának aktuális értéke. • Subnet Mask Request: Lekéri egy adott hoszt által használt Subnet Mask aktuális értékét. • Parameter Problem: Hiba a datagram fejlécében.
Az IP hálózat felhasználása • Modern számítógépek nagy teljesítményének kihasználása csak több feladatú (multitask) operációs rendszerek segítségével lehetséges. • Az applikációs programok, és az operációs rendszer mind teljesebb szétválasztása érdekében a hálózat kezelését az operációs rendszer tartalmazza. • Ennek értelmében a hálózat szempontjából a végső címzett nem egy felhasználói program (process), hanem annak operációs rendszerbeli absztrakciója. • Ezt a képzelt elemet az Internet hálózatban kapunak (port) nevezzük. • Egy hoszton belül a portokat 16 bites előjeltelen bináris számok azonosítják, amit portcímnek nevezünk.
UDP(User Datagram Protocol) • Azt a protokollt, ami lehetővé teszi, hogy egy adott hoszton belül a portokat megcímezzük, UDP-nek nevezzük. • Az UDP szolgáltatás az IP-re épül, azon felül csak a port-címzés szolgáltatást nyújtja. (Kapcsolatmentes, felelősség nélküli szállítási szolgáltatás) UDP Header UDP Data IP Header IP Data Frame header Frame Trailer Frame Data
User datagram (UDP protokoll-üzenetek) felépítése 0 16 31 Source Port: Feladó process hoszton belüli portcíme. Ha nem adjuk meg, értékét 0-ra kell állítani. Destination Port: Címzett process – címzett hoszton belüli – portcíme. UDP Length: UDP datagram (header+data) hossza oktetekben mérve. UDP Checksum: Esetleges hibák felismerésére a fejlécben. Source Port (opcionális, ekkor 0) Destination Port UDP Length UDP Checksum (opcionális) User Datagram Data
Portok kezelése • UDP feladata a beérkező UDP datagramok megfelelő porthoz irányítása. Ezt demultiplexálásnak nevezzük. • Ahhoz, hogy egy kliens kapcsolatba tudjon lépni egy szerver adott programjával, a szerver címén túl ismernie kell annak portcímét is. • Ennek megkönnyítésére vezették ne a jól ismert port (well-known port) fogalmát. Ennek értelmében bizonyos applikációk minden Internet hoszban egy központilag meghatározott – 1…1023 közötti – címen érhetők el. • A fennmaradó címek kiosztása a hosztok joga, ami a beérkező dinamikus igények alapján történik.
Megbízható szállítási szolgáltatás • Nem minden folyamat képes megfelelően működni, ha adatvesztés következik be. • Megbízható szállításról gondoskodik a szállítás vezérlési protokoll (TCP, Transmission Control Protocol), ami maximálisan kihasználja az IP tulajdonságait, de attól független. • A TCP megléte mentesíti az egyedi applikációkat attól a feladattól, hogy maguk gondoskodjanak a hibamentes átvitelről.
Applikáció és TCP közti kapcsolat • Bitfolyam szemlélet: Átvitt adatnak semmilyen belső struktúrát nem tulajdonítunk. Egyetlen betartandó szabály, hogy egész számú oktet legyen. • Kapcsolat orientált (Virtual Circuit Connection): Két végpontnak virtuális kapcsolatba kell lépnie, és a sikeres átvitelt nyugtáznia kell. • Tárolt továbbítás (Bufferd Transfer): Sorrendhelyes adatátadás. Bizonyos esetben az applikáció utasíthatja a protokollt azonnali átadásra (push) • Részenkénti szállítás (Unstructured Stream): Egyes rekordok összeillesztéséről az applikáció gondoskodik. (1. pont) • Független kétirányú kapcsolat (Full Duplex Connection): Külön kezeljük a két irányt, így azokat külön-külön is megszakíthatjuk. (piggybacking)
Pozitív nyugtázás újraküldéssel (positiv acknowledgement with retransmission) • TCP hibamentes étvitelhez ezt az eljárást alkalmazza. • Az adó elküld egy csomagot, és ezzel egyidőben elindít egy időzítést. Majd nyugtára vár. • Ha nyugta nem érkezik az időzítő lejárta előtt, feltételezi, hogy a csomag elveszett, és elküldi újból. (Hogy elkerüljük a duplázódott csomagokat, azokat sorszámmal látjuk el.) • A hálózat jobb kihasználása érsekében egymás után több csomag is útnak indul, anélkül, hogy megvárnák a nyugtázást. Ezt az eljárást csúszó, vagy körbeforgó ablak (sliding window) technikának nevezzük. Az egyidőben úton levő csomagok számát az ablakméret (windiw size) határozza meg.
TCP kapcsolat • Mivel kapcsolat-orientált, így az adó és a vevő közt létrejön egy logikai kapcsolat (virtuális áramkör). • Az adó a sliding window alkalmazás érdekében három mutatót (pointer) használ. Ezek az adatfolyam offsetjei, vagyis az elküldött oktetek sorszámai. • Bal oldali a már nyugtázott keretek sorszáma (legmagasabb offsetű oktet) • A jobb oladali a csúszó ablak felső határa (még elküldhető) • Középső a következőként küldendő oktet. • A bal és a jobb oldali pointer közti távolság az ablakméret. (Nyugta nélkül elküldhető csomagok) • A vevő a nyugtában jelzi, hogy még hány oktet fogadására kész. (Ablakméret ajánlás)
TCP protokoll adatelem:Szegmens (segment) 0 4 10 16 24 31 Source Port, Destinaton Port: Mint az UDP-nél Sequence Number: Data mező oktetjeinek offsetje az adafolyamban Acknowledgement Number: Nyugta (vevő által várt következő oktet) HLEN: Fejléc hossza 4 oktetben kifejezve Window: Vevő által javasolt ablakméret Checksum: Fejléc ellenőrző összege Source Port Destination Port Sequence Number Acknowledgement Number HLEN Fenntartva Code Bits Window Checksum Urgent Pointer Opciók Padding Data …
Code Bits 6 mező balról jobbra a következő biteket tartalmazza: URG Urgent Pointer Valid – Sürgős adatot jelez. Ekkor az Urgent Pointer a sürgős adat ablakon belüli cégcíme. ACK Acknowledgemen Vaild – Acknowledgement Number érvényes (hibátlanul vett legmagasabb offsetű adat) Komulatív nyugtázásnak hívják. PSH Push – Azonnal küldendő adat RST Reset Connection – Virtuális áramkör azonnali mindkét irányú megszakítása SYN Synchronize Sequenc Numbers – Virtuális áramkör felépüléséhez szükséges adatcsere. FIN End of Stream – Virtuális áramkör egyik irányú lezárása