Ethernet hálózat alapjai Az Ethernet ezen az oldalon egy rendkívül összetett kategória, amit csaknem lehetetlen kibogozni. Voltaképpen mindent, ami a jellegzetes RJ45 csatlakozóban végződő vezetéken történik, ide szokás sorolni. Az ethernet neve mára egybeforrt az internettel és az intranetes hálózatokkal. Nagy tömegben gyártott, ezért olcsó berendezései és relatív nagy sebessége az automatizálástechnikában is kelendővé tette. Jellemzően az Ethernet ma már mindenütt "adott", csak egyszerűen rá kell csatlakozni. Az Ethernet az voltaképpen csak egy kommunikációs rendszer 2. OSI szintjén található átviteli technológia (IEEE 802.3), és nem a teljes rendszer, amire az egyszerűség kedvéért így szoktunk hivatkozni, hogy az Ethernet, és ebbe beleértünk mindent, ami az adott dróton folyik. Az Ethernet protokollok (talán egyetlen) közös jellemzője a CSMA/CD közeg-hozzáférési eljárás, amelyről bővebben a hálózati alapok jegyzetben olvashatunk. Az Ethernet az 1970-es évek elején kidolgozott ALOHANET-tel kapcsolatos fejlesztések eredménye. Bob Metcalfe és David Boggs 1976-ban tervezték meg és valósították meg az első helyi hálózatot a Xerox Palo Altó-i kutatási központjában. A nevét az éterről (angolul: ether), a 19. századi fizikusok által feltételezett, az elektromágneses sugárzások terjedésére szolgáló könnyű közegről kapta. Az Ethernet esetén a közeg nem vákuum, hanem egy speciális koaxiális kábel volt, amely akár 2,5 km hosszú is lehetett (500 méterenként egy ismétlővel). A kábelre csavarozott adóvevőkkel legfeljebb 256 gépet lehetett csatlakoztatni. A központi kábelnek, amelyhez a gépek csatlakoztak sokcsatlakozós kábel (multidrop cable) volt a neve, és 2,94 Mb/s-os sebességgel tudott üzemelni. Ez az Ethernet olyan sikeres volt, hogy a DEC, az Intel és a Xerox 1978-ban megállapodott egy közös, 10 Mb/s-os Ethernet szabványban, amely a DIX szabvány nevet kapta. Ebből jött létre később a IEEE 802.3 szabvány 1983-ban. Mivel a Xerox nem mutatott nagy érdeklődést az amúgy sikeres Ethernet iránt, Bob Metcalfe megalapította saját cégét, a 3Com-ot, hogy Ethernet csatolókat adjon el PC-khez. Eddig hozzávetőlegesen 100 millió darab kelt el belőlük. Az Ethernetet és Ethernet alapú átviteli megoldásokat az IEEE 802.3 szabvány definiálja. Jelen összefoglaló gyűjteményben a TCP/IP modell első 3 szintjét szeretném kicsit részletesebben leírni, ugyanis a 4. szint, mint alkalmazási szint az több száz oldalas részletezésbe sem férne bele, és ott érdemes az adott protokollok után részletesen utána olvasni.
A következő ábra szemlélteti az OSI-ISO és a TCP/IP referencia modellek kapcsolatát, tovább a modellek esetében melyik szinten milyen protkollok csücsülnek, és fizikai összeköttetés szempontjából melyik eszköz melyik szinten található:
Mielőtt belekezdenénk az Ethernet részletesebb tárgyalásában, fontos tisztáznunk, hogy az Ethernet mint technológia a „véletlen vezérlésű” közeg-hozzáférési módhoz tartozik, ahol a CSMA/CD technológiát alkalmazzák, ennek előnye, hogy gyér forgalom esetén gyors a közeghez való hozzáférés, viszont nagy forgalomnál sok ütközés keletkezik, ami még több adást és így egyre nagyobb forgalmat generál. Mi is az a CSMA/CD? CS (Carrier Sense): vagyis az egyes állomások „érzékelik” ha a csatorna foglalt
MA (Multiple Access): a másnak szóló csomagokat az adott állomás nem értelmezi CD (Collision Detection): ha adás közben észreveszem, hogy ütközés (collision) van, vagyis más is ad, akkor megállok, és véletlen ideig várok (backoff delay), ezután újrapróbálkozás, ha az ütközés újra fenn áll, akkor ismételten megállás és véletlen ideig várás, de ekkor a várakozás hosszabb (exponential backoff):
Itt kell beszélnünk még egy fogalomról a Capture Effect-ről, amely akkor következik be, ha túlterhelt a hálózat, vagyis az exponenciális backoff következménye, ekkor egyetlen állomás kisajátíthatja az erőforrásokat.
Térjünk vissza ezután a kis CSMA/CD bevezető után az Ethernet alapjaira és a TCP/IP modell réteges felépítésére. Jól látható, hogy az OSI modell 1-2 szintje a fizikai és az adatkapcsolati réteg, amely a TCP/IP modell esetében 1 szintet jelent az adatkapcsolati réteget (link layer), vagy más-más környezetben szokták ezt hálózati rétegnek is nevezni. Ezen a szinten kell beszélnünk a tényleges fizikai összekapcsolódásról, csatlakozó típusokról és a vezetékes és vezeték-nélküli technológiák felhasználásáról. Itt jellemző egységként pusztán bitekről beszélhetünk. Magát az Ethernetet alapvetően három kategóriába sorolhatjuk, a klasszikus Ethernet, a gyors Ethernet és a gigabites Ethernet: -
A klasszikus Ethernet esetében a megnevezés első száma az átviteli sebességet jelöli, az ezt követő Base az alapsávú átvitelre utal. A következő szám, koaxiális kábel esetén a kábel hosszát adja meg 100 méteres egységekre kerekítve.
-
A gyors Ethernet (IEEE 802.3u) esetét tekintve 1992-ben összehívták a bizottságot, hogy készítsenek egy új szabványt, egy gyorsabb LAN-ra, megtartva az IEEE 802.3 minden egyéb
előírását. Egy másik elképzelés szerint viszont teljesen át kell mindent alakítani, biztosítani kell a valós idejű forgalmat, valamint a digitális hangátvitelt. A nevet – üzleti okokból – meg akarták tartani. A bizottság az első változatot fogadta el, és elkészítette a 802.3u-t. Az el nem fogadott javaslat hívei elkészítették a saját szabványukat, a 802.12-t, ami nem terjedt el. -
Harmadik szabvány tekintetében a gigabites Ethernet (IEEE 802.3z). A gyors Ethernet szabványt követően 1995-ben a 802-es bizottság egy még gyorsabb Ethernet tervein kezdett dolgozni. A célkitűzések a következők voltak: 10x gyorsabb sebesség, kompatibilitás az eddigi Ethernetekkel. A végső szabvány, a 802.3z eleget tett a feltételeknek. A gigabites Ethernet – eltérően a klasszikus Ethernettől – pont-pont felépítésű. A legegyszerűbb topológiánál a két számítógép van gigabites Ethernettel összekapcsolva. Gyakoribb az a megoldás, amikor egy kapcsoló vagy elosztó köt össze több számítógépet, vagy további elosztókat vagy további kapcsolókat. Minden esetben egy Ethernet kábel végén pontosan egy-egy eszköz található csak. A gigabites Ethernet két működési módot támogat: a duplex és half-duplex működést. "Normális" esetnek a duplex módot tekintik, a forgalom mindkét irányban egy időben folyhat. Ezt akkor használják, ha egy központi kapcsolót vagy a periférián lévő gépekkel, vagy más kapcsolókkal kötnek össze. Ekkor minden adatot pufferelnek, így bármelyik gép és kapcsoló tetszés szerinti időben küldheti el az adatait (kereteit). Az adónak nem kell figyelnie a csatorna forgalmát, mert a versengés kizárt. Mivel a kábel egy gépet és egy kapcsolót köt össze, csak ez a gép adhat a kapcsoló felé, a duplex megoldás miatt az esetleges ellenirányú adatküldés biztosan sikeres lesz. Nincs tehát versengés, a CSMA/CD protokoll használata felesleges, a maximális kábelhosszt a jel erőssége határozza meg, nem pedig egy zajlöket adóhoz való visszajutás ideje. A kapcsolóknak módjukban áll keverni és egyeztetni a sebességeket, és automatikusan konfigurálhatják a hálózatot is, hasonlóan a gyors Ethernethez. Ha a számítógépek nem kapcsolóhoz, hanem elosztóhoz kapcsolódnak, akkor a half-duplex módot használják. Az elosztó nem puffereli a beérkező kereteket. A kapcsoló belül villamosan összeköti az összes vonalat, hasonlóan a klasszikus Ethernetnél alkalmazott megoldáshoz. Az ütközések nem kizárhatók, tehát szükséges a CSMA/CD protokoll használata. Mivel a legrövidebb keretet (64 byte) 100-szor gyorsabban lehet elküldeni, a maximális távolság is 100-szor kisebb, azaz 25 méteres lesz, hogy megmaradjon az a sajátosság, hogy az adás még a legrosszabb esetben is addig tart, amíg a zajlöket visszaér az adóhoz. Egy 2500 méter hosszú kábel esetében, 1 Gb/s sebesség mellett az adó már régen végzett egy 64 byte-os keret adásával, amikor a keret a kábel hosszának tizedét sem tette még meg (a visszaútról nem is beszélve). A bizottság – érthetően – elfogadhatatlannak tartotta a 25 méteres távolságot, ezért bevezette a vivőkiterjesztés (carrier extension) és a keretfűzés (frame bursting) funkciókat. Így a kábelhossz 200 méterre kiterjeszthető. Ellentmondásos, hogy egy szervezet, amelyik a gigabites Ethernet megvalósítása mellett dönt, de elosztókkal köti össze a gépeket, ezzel tulajdonképpen a klasszikus Ethernetet szimulálja. Tény, hogy az elosztók valamivel olcsóbbak a kapcsolóknál, és a gigabites Ethernet illesztő-kártyák elég drágák. Ha ezt a relatív drágaságot az olcsóbb elosztókkal akarja a szervezet ellensúlyozni, akkor ezzel egyben a hálózata teljesítményét drasztikusan csökkenti.
A bizottságnak viszont a kitűzött visszafelé kompatibilitás előírása – és szokás – miatt a 802.3z szabványban meg kellett engednie ezt a lehetőséget.
TCP/IP modell adatkapcsolati vagy hálózati rétege (1. szint) Leggyakoribb Ethernet fizikai közegek: - 10Base2: vékony (thin) ethernet, koax, T alakú BNC csatlakozók - 10Base-T: 10Mb/s legalább Cat3 csavart érpáron - 100Base-TX: 100Mb/s legalább Cat5 csavart érpáron - 100Base-FX: 100Mb/s optikai érpáron: 1. Half duplex módban 412 m maximális kábelhossz 2. Full duplexben 200 m maximális kábelhossz 3. Tipikusan multimódusú optikán - 1000Base-SX: Short Wavelength, 850 nm, gigabit - 1000Base-LX: Long Wavelength, 1300 nm, gigabit Kábelek: - rézkábelek: 1. UTP: Unschielded Twisted Pair: ez a legelterjedtebb, a csavart érpár 2. ScTP: Screened Twisted Pair: árnyékolt csavart érpár - optikai kábelek: 1. MMF (Multi-Mode Fiber): multimódusú: a. a fény több úton halad a kábelen b. LED-del megvilágított c. 50-100 micron az átmérője d. legalább 3 csomagoló réteg borítja e. a kábelhossz 2000m alatt van f. tipikusan felhasználási területe az épületen belüli kiépítés 2. SMF (Single-Mode Fiber): egymódusú: a. a fény nem szóródik a kábelben b. 10 micron a kábel átmérője c. drága d. nagyobb távolságokra használatos Összefoglalva látható a következő táblázatban az Ethernetre jellemző átviteli közegeket:
A következő tábla jól szemlélteti a létező Ethernet kábeleket szabvány és egyéb tulajdonság szerint:
Az átviteli közegek tisztázása után még mindig a a TCP/IP modell első szintjén a fizikai réteg szinten, vagy más néven az adatkapcsolati / hálózati réteg szinten maradunk. Ugyanis ezen a szinten az átviteli közegek mellett helyezkednek kell az OSI-ISO modell terminológiáját tekintve az adatkapcsolatért felelős tényezők (MAC, ARP, NDP, LLC). Ezen a részen viszont már a TCP/IP modellt
illetően is nem csak bitekről beszélünk, hanem összefüggő adatról, amelyet keretnek (frame) nevezünk. Nézzük meg részletesebben az ide tartozó fogalmakat! 1. MAC/OUI (Medium Access Control / Organizationally Unique Identifier): eszközhozzáférésvezérlő cím / egyedi szervezeti azonosító. Jellemzően minden Ehternet alapú protokoll alkalmazza a partnerek egyedi azonosítására a MAC-címet. Ez a cím (elvileg) az egész világon egyedi. A cégazonosítót az IEEE Standards Department-től lehet kérni a cég azonosítása céljából - ez az eljárás (mármint a cím-kiadás) nem ingyenes. Ez a MAC cím OUI (egyedi szervezeti azonosító) része. Összefoglalva a MAC alréteg feladata a közeghez való hozzáférés, a kereteknek a kábelre való juttatása (az adási jog megszerzése és az adása).
A 48 bites MAC címzés elvileg 248 azaz 281,474,976,710,656 egyedi címet tesz lehetővé. Érdekesség, hogy a MAC címzés még az Internet őskorából, a Xerox címzési sémából maradt meg. A MAC címet eredetileg egy egyedi azonosító jelnek szánták, azért ennek az egyediségével óvatosan kell bánni, ugyanis: - jó néhány gyártó nem nagyon foglalkozik azzal, hogy minden termékének eltérő legyen a ROM-ban tárolt MAC címe - részben az előző pont miatt, részben "csak"; sok terméknek a címe nem ROM-ba került letárolásra, így azt meg lehet változtatni Ezért ha hálózatunk vergődik, és a címzéssel folyamatosan problémák merülnek fel, érdemes arra gyanakodni, hogy a hálózaton két, azonos MAC című egység is található. MAC cím típusok:
-
-
BIA (burned-in addresses): ide tartoznak a tradícionális MAC címek, ezeket a gyártók ROMba írják, azaz égetik, ezért ezek nem változtathatóak. Ezekben az esetekben az első bájt 2. bitje mindig 1-es értéket tartalmaz LA MAC (locally administered): lokális MAC cím, ezeket meg lehet változtatni, ezáltal (mivel a többieknek sok értelmük nincs), az OUI mezőben csak a jelölőbitek kerülnek kitöltésre. Az első bájt két legalacsonyabb helyi értékű bitje. Mivel ezekben az esetekben a többi érték 0, így a lokális (MAC) címeket onnan lehet felismerni, hogy az első bájtjuk értéke 2 vagy 3.
A következő táblázatban látható a MAC címek felosztása:
A táblázatban szereplő „Világállandó” címeket az IEEE osztja ki 224-es darabokban. A címekben 3 bájt (első 3) fix, például Cisco eszközöknél 00:00:0C. 2. ARP (Address Resolution Protocol): címfeloldási protokoll Jellemzően az Ethernet hálózatokon elterjedt protokoll célja a logikai IPv4 címekhez tartozó MAC fizikai címek felderítése (Az IPv6 címekhez már az NDP protokoll alkalmazandó). Erre azért van szükség, mert míg az IP címek szabadon változtathatók, a MAC címek ROM-ból kerülnek kiolvasásra minden egységben - ezért ezek jellemzően egyedi azonosítók. Amikor egy egység egy másikkal akar forgalmazni, első körben ki kell derítenie annak a MAC-címét. Ennek menetét (és az ARP célját) egy példán keresztül szemléltetem. A példa szerint a 192.168.1.11 IP című géről szeretnénk elérni a 192.168.1.37 című eszközt:
Az ARP protokoll működése: 1. ARP cache checked: a PC megvizsgálja az ARP gyorsító tára, hogy nem lelhető-e véletlenül ott a célállomás címe 2. ARP send a request: a PC egy broadcast ARP csomagot küld a hálózaton levő összes eszköznek, a csomagban a keresett 192.168.1.37-es IP címmel 3. ARP entry is added to cache: az összes állomás akinek nem szól a csomag az eldobja, mivel az nem az ő IP címére szólt. A keresett eszköz mielőtt válaszolna lementi a saját ARP gyorsító tárába a küldő eszköz MAC címét és az annak megfelelő IP címet 4. ARP send reply: válasz a küldő eszköznek, a válasz csomag tartalmazza a keresett eszköz MAC címét 5. ARP entry is added to cache: az egész kérést indító eszköz megkapta a választ, így ő is rögzíti a paramétereket az ARP gyorsító tárba.
3. RARP (Reverse Address Resolution Protocol): az ARP protokoll fordítottja, itt nem a MAC címek után szeretnénk keresni IP alapján, hanem IP-ket szeretnénk azonosítani MAC cím alapján. Ezek alapján az RARP olyan táblázattal dolgozik, amelyben az van felsorolva, hogy milyen IP cím milyen fizikai (MAC) címnek felel meg. Ennek használata csak speciális esetekben szükséges, pl: hálózati boot, X-terminálok.
4. NDP (Neighborn Discovery Protocol): A 2007-ben - RFC 4861-ban - publikált NDP funkcionálisan gyakorlatilag megegyezik az ARP működésével, azzal az eltéréssel, hogy ezzel az IPv6-os címek alapján lehet vadászni a MAC címeket. (és persze ebből adódóan az NDP csomagok felépítése eltér az ARP-s elődétől).
5. LLC (Logical Link Control): az LLC ellenőrzi a vett keretek épségét, kéri és végzi az újraküldést és szervezi a kapcsolatot, a MAC réteg szolgáltatásainak (keret adása és vétele) felhasználásával.
6. Frame (keret) struktúra A következő táblázat szemléleti az Ethernet alapú keretek formátumát:
Preambulum
SFD
Destination MAC
Source MAC
Length / Ethertype
Data
Pad
CRC
Preambulum (előtag): 7 byte hosszan (56 bit) váltakozó 0 és 1 értékeket tartalmaz, amely a vevő szinkronizálásához szükséges SFD (Start Frame Delimiter): 1 byte hosszan, melynek tartalma „10101011” jelsorozat, és szintén a vevő szinkronizálására szolgáló információt tartalmazza Destination/source MAC (cél/forrás): a küldő és fogadó eszközök fizikai címének helye Length/ehtertype: hossz vagy típus, ha 1500-nál kisebb, akkor hossz, ha nagyobb, akkor típus. A hossz a következő byte-tól a CRC-ig számít. Data (adat): szokás „Payload”-nak nevezni amelynek mérete 46-1500 byte, ha a minimális értéket nem éri el, akkor kiegészítés történik (Pad). CRC (Cyclic Redundancy Check): ciklikus redundancia ellenőrzés, egy olyan ellenőrző összeg, amely a cél címtől az adat végéig számolja a küldő és a fogadó is, ha a CRC hibát jelez, akkor a fogadó eldobja a csomagot. Interfram gap (kivárás): framek-k közt legalább 12 byte (96 bit) idő.
Hálózati paramétereknek fontos szerepe van a frame kezelésben, ugyanis ha elindul egy frame, akkor a hálózat legtávolabbi pontján is érzékelni kell mielőtt véget ér, fontos, mivel nem lehetne észrevenni az ütközést. Emiatt korlátozni kell a kábelhosszt és a repeaterek számát, továbbá minimalizálni kell a médiumon megengedett frame hosszát, alapesetben 512 bit (64 byte), gigabit esetén 4096 bit.
Két esetet különítünk el, mikor túl kicsit a frame mérete, vagy túl nagy: -
64 byte-nál kisebb, ekkor runt (törpe) frame-ről beszélünk, itt az alap 18 byte (12 byte cím, 2 byte hossz, 4 byte CRC) mellett a 46 byte adat nincs meg. 1518 byte-nál nagyobb, ekkor giant (óriás) frame-ről beszélünk, itt az alap 18 byte mellett a megengedett 1500 byte adatmennyiség nagyobb (tagged frame)
Internet vagy hálózati réteg (OSI-ISO 3. szint, TCP/IP 2. szint) Az internetprotokoll az internet (és internetalapú) hálózat egyik alapvető szabványa (protokollja). Ezen protokoll segítségével kommunikálnak egymással az internetre kötött csomópontok. Kialakításában fontos szerepet játszott az egyszerűség, és a robusztusság. Ezek egy olcsó technológiát eredményeztek, aminek segítségével gyorsan terjedt az IP, kiszorítva például a jóval komplexebb, de igen drága konkurenst, az ATM-et. Fejlesztését még az ARPA kezdte el, jelenleg az IETF felügyeli. 4-es verziójának (IPv4) leírását az RFC 791 tartalmazza. Az IPv6 az internet cím-éhségére adott válaszként született meg, az átállás a két címzés között még hosszú éveket fog igénybe venni, addig a két címzési rendszer egymás mellett fog futni. Az IP a klasszikus OSI besorolás alapján a 3., a hálózati rétegben helyezkedik el. Csomagkapcsolt hálózatot valósít meg, azaz nem építi fel a kapcsolatot a forrás és a cél között, hanem minden egyes csomagot külön irányít (route-ol). Hibadetektálást és hibajavítást nem végez (ezeket nevezzük „megbízhatatlan” protokollnak), ezeket a funkciókat főleg a szállítási rétegben elhelyezkedő protokollokra bízza (például TCP). Ennek a kialakításnak az oka az, hogy az egyszerűségre törekedtek. Így a hibajavítás terhe főképp a forrás és a cél számítógépeknél jelentkezik, és nem terheli feleslegesen az egyébként is leterhelt hálózati útirányválasztó csomópontokat (router). IPv4 protokoll (Internet Protocol version 4): Az IPv4-ben a forrás- és célállomásokat (az úgynevezett hostokat) címekkel (IP-címek) azonosítja, amelyek 32 biten ábrázolt egész számok; azonban ezt hagyományosan négy darab 8 bites (azaz 1 byte-os, vagyis 0 és 255 közé eső), ponttal elválasztott számmal írjuk le a könnyebb olvashatóság miatt (pl: 192.168.23.18). A címek felépítése hierarchikus: a szám bal oldala (vagy szakmai nevén a legnagyobb helyiértékű bitek felől indulva) a legfelső szintet jelenti, és jobbra haladva az ez alatti szinteket kapjuk meg, például egy szolgáltatót, a szolgáltató alatti ügyfeleket, és az ügyfelek alatti egyes számítógépeket. A hálózatokon az IP címek a MAC-címekhez kerülnek hozzárendelésre, melyek (mivel ROM-ban kerülnek tárolásra) az egységek egyedi azonosítását végzik. A hozzárendelések megkeresésére szolgál az ARP protokoll (IPv4 címek esetén, IPv6-nál az NDP célravezető). IPv4 header (fejrész) szerkezete:
Version: Ez a mező teszi lehetővé, hogy azonos hálózatban eltérő IP verziók működhessenek, egy-egy átállás így folyamatosan mehet végbe, nem kell egyszerre az egész hálózat összes berendezését átállítani. Jelenleg évek óta tart például az IPv4-ről IPv6-ra történő migrációja az internetnek. A verzió mező értéke 4 ha IPv4, 6 amennyiben IPv6 protokollhoz tartozik a csomag. (az IPv5 egy kísérleti protokoll volt, mely végül nem terjedt el) IHL (Internet Header Length): az IP fejléc hossza nem állandó, ez a mező hordozza a fejléc hosszára vonatkozó információt. A hosszt 32 bites szavakban adja meg, 5 és 15 között vehet fel értéket, ami minimum 20 maximum 60 bájtos fejlécet jelent. (a fejléchossz az opciók változó száma miatt nem állandó) ToS (Type of Service): 6 bites mező. Eredeti tartalma három bitnyi precedencia információ, majd három jelző bit ami gyakorlatilag prioritásnak felel meg(0: normál csomag, 7: hálózatvezérlő csomag). A három bit egyenként a késleltetésre, átbocsátásra és a megbízhatóságra vonatkozott. Egy csomag priorizálásánál ezekkel lehetett kiválasztani, hogy a szolgáltatás mely minőségi eleme fontos a kézbesítésnél. Mivel sok eszköz figyelmen kívül hagyta egyszerűen az IHL-t, jelentését végül megváltoztatták. Ma egyszerűen szolgáltatási osztályhoz tartozást jelöl, ami a fenti információkat is magába foglalja. Total length: ez a mező a csomag teljes hosszát tartalmazza bájtban megadva, beleértve a fejlécet opciókkal és az adatrészt együttesen. Maximális értéke 65535. Ez a felső korlát. Hamarosan ez igencsak szűkös lehet, de az IPv6-ban már van lehetőség ún. Jumbogram vagy Jumbo frame küldésre, mely elméleti maximális csomagmérete 1 bájt híján 4 gigabájt. Identification: erre a mezőre a célhosztnak feltétlen szüksége van ahhoz, hogy a felsőbb protokollok darabolt üzeneteit össze tudja állítani. Minden datagram szétdarabolása után az összes darab ugyanazzal az azonosítóval kerül továbbításra. Flags: - DF (Do not fragment!): egyetlen jelzőbit, beállításával az üzenet darabolását lehet tiltani. Ilyenkor a routerek elkerülik a kiscsomagos hálózatokat. - MF (More Fragments): szintén egyetlen bit, mely jelzi, hogy létezik még több darabja az üzenetnek. Egy darabolt üzenet minden darabjának a fejléce tartalmazza, kivéve az utolsót. Fragment Offset: darabeltolás, megadja, hogy a feldarabolt daragramnak a csomagban szállított része honnan kezdődik. Elengedhetetlen információ a datagram összeállításához a vételi oldalon. Az eltolást itt 8 bájtos egységekben kell értelmezni. TTL (Time to live): Ezzel a mezővel korlátozzák egy csomag hálózatban eltölthető idejét, illetve egyúttal a megoldás azt is biztosítja, hogy ne maradhassanak a hálózatban vég nélkül keringő csomagok. Kezdőértéke 255 lehet maximálisan, melyet minden router csökkent eggyel továbbításkor. Ha eléri a nullát, egyszerűen eldobja. Protocol: ez a mező jelzi, hogy a csomag milyen protokoll számára szállít. Amikor a csomagokból összeállítja az üzenetet a vételi oldal, ezalapján továbbítja a felsőbb réteg megfelelő protokolljának (ált. TCP vagy UDP). Az egyes protokollok ide vonatkozó megfeleltetést az RFC 790 írja le.
Header Checksum: csak a fejrészre vonatozik! Sajnos az élettartam mező miatt minden alkalommal újra kell számolni. Source IP Address: a 32 bites (4 byte) forrás/küldő állomás címe. Destination IP Address: a 32 bites (4 byte) cél/fogadó állomás címe. Options: opcionális műveletekhez biztosított 32 bit. Ritkán szokás használni. Eddig 5 opciót definiáltak: - A biztonság opció az információ titkosságának fokára utal. Használata gyakorlatban nem célszerű, mert felhívja a figyelmet a fontos információra. Eredményesebb álcázás, ha a fontos adatok eltűnnek a lényegtelenek tömegében. - Szigorú forrás általi forgalomirányítás IP címek sorozataként megadja a teljes útvonalat - Laza forrás általi forgalomirányítás lényegében az útvonal irányát jelöli ki. (Az információ bizonyos országokon ne haladjon át, ne hagyja el az országot, stb) - Útvonal feljegyzése opció főként a routerek üzemeltetőinek fontos. .Lehetővé teszi a hibák felderítését.(Miért ment USA-n keresztül a szomszéd épületbe címzett üzenet?) A mai körülmények között sokszor kevés a 40 bájt az útvonal tárolására. - Az időbélyeg opció az IP cím mellé egy 32 bites időbélyeget is feljegyez. Főként a router algoritmusok hibakeresésénél hasznos eszköz. Data: Az adatmező nem része a fejlécnek, ezért a checksum beszámításába se kerül be. Ennek a területnek a kezelése a szállítási réteg protokolljaira tartozik. Az adat mező tartalmazhatja a következő protokollok adatait: ICMP, IGMP, TCP, UDP, ENCAP, OSPF, SCTP. IPv4 alapú címzési rendszer: Az IPv4 két részből áll: hálózati cím + hoszt cím Egy hoszt egyszerre több hálózathoz is csatlakozhat. Ekkor minden hálózatban külön IP címe van. A címet megjeleníthetjük binárisan, vagy decimális formában. Szokásos az úgy nevezett "Dotted decimal" formátum. A 32 bit 4 bájtnak felel meg. Minden bájt decimális értékét írjuk ki, pontokkal elválasztva, pl.: 173.47.156.201 Az egy hálózatba tartozó gépek száma igen tág határok között változhat, ezért cím - osztályokat alakítottak ki. A címek adminisztrációját a NIC (Network Information Center) végzi. Ez a szervezet osztja ki a cím tartományokat. A címtartomány korlátozottsága miatt (mindössze 32 bit, és ez sem osztható ki maradéktalanul) belátható időn belül szükség lesz a módosítására az Internet rohamos terjedése miatt. Számos javaslat született a megoldásra , és van szabvány javaslat is (IPv6), de az áttérés jelentős költségei miatt egyelőre várat magára az áttörés. Valószínű, hogy az IPv4 világban IPv6 szigetek jönnek létre, melyeket a meglévő kapcsolatokon keresztül alagút jelleggel kapcsolnak össze mindaddig, míg az IPv6 általánossá válik.
Az IPv4-es címosztályok:
A címek egy része speciális célokra foglalt. A 0.0.0.0 címmel indul minden hoszt, majd a hálózati paraméterek betöltése után többet nem használja. A 127.xx.yy.zz címek a visszacsatolások címzésére vannak fenntartva. A 127.0.0.1 a hoszt saját maga, ez szokás „localhost” vagy „loopback” címnek is hívni. A 255.255.255.255 helyi adatszórást jelent. Az adatszórás csak az alhálózaton belülre szól. Egy távolabbi hálózatban is végezhetünk adatszórást, ha egy helyes hálózati cím mögé csupa 1-eket írunk: hálózati cím + 11….11 A helyi alhálózatunkban egy hosztot úgy is megcímezhetünk, hogy nem adjuk meg a teljes címet, csak az alhálózaton belüli hoszt címet: 0000…00 + hoszt cím
IPv4 és az alhálózatok kapcsolata: A nagyszámú géppel rendelkező felhasználó hamar szembe kerül azzal a problémával, hogy a NIC-től szeretne egy összefüggő címtartományt kapni, ugyanakkor ezt a címtartományt szeretné kisebb, külön-külön menedzselhető tartományra bontani. A hálózati cím és a hoszt cím szétválasztására alkalmas eszköz a netmaszk. A netmaszk a hálózati cím-pozíciókban 1-et, a hoszt - cím helyén 0-kat tartalmaz. A címosztály meghatározza, hogy a hálózati cím hány bites. Kívülről csak a hálózat címezhető,az alhálózatunk nem , mert a továbbított csomagokban nincs benn a netmaszk. A helyi hálózatunkban azonban valamennyi eszköz tartalmazza a netmaszk-ot (Subnet Mask), és így kiderül, hogy a csomag melyik alhálózatnak szól. A hoszt címeket egy EXOR művelettel választhatjuk le a teljes címből.
(teljes cím) EXOR (netmaszk) = (hoszt cím) Példaként hozzunk létre alhálózatot egy C osztályú címen belül . Az alhálózat max. 32 gépet tartalmaz. A címtartomány legyen: 193.221.15.32 - 193.221.15.63
A külső hálózat nem látja az alhálózati maszkot, csak a "C" osztályt ismeri fel! Alhálózati maszk: Decimálisan:
11111111 255
11111111 255
11111111 255
Példa: alhálózati cím leválasztása a 193.221.15.41 címből:
Az alhálózat címe: 193.221.15.32
11100000 224
IPv6 protokoll (Internet Protocol version 6): A hagyományos IP-protokoll szerinti IP-címeket nevezzük „IPv4” címeknek is, ami a negyedik generációs (v4, version 4) internetprotokollt jelenti. Bár kezdetben jól megfelelt, az internet előre nem látott növekedése közben sok problémába ütköztek a hálózati szakemberek. Egyik ilyen az, hogy nem elégséges a kiosztott címek mennyisége. Gondot jelent, hogy nem támogatja a protokoll a mobilitást, nincs lehetőség benne korrekt titkosítás támogatására stb. Az IPv6-ot ezeknek a problémáknak feloldására hozta létre az Internet Engineering Task Force (IETF) 1998-ban, és a szabályait az RFC 2460 rögzíti. Tervezésekor nemcsak az IPv4 hibáit igyekeztek megszüntetni, hanem új szolgáltatásokat beépíteni, amelyek a protokollt gyorsabbá és az új felhasználói igényeknek jobban megfelelőbbé teszik. Az IPv6 legfontosabb jellemzői: - 128 bitre megnövelt, nagyobb címtartomány, új címzési séma - hatékonyabb és flexilisebb csomagformátum, egyszerűbb fejrész - a továbbfejlesztés lehetősége az opcionális fejrészek bevezetésével - közvetlen végponti címezhetőség - forgalomirányító táblázatok méretének csökkenése - protokollok egyszerűsítése, gyorsabb feldolgozás a routereken - automatikus konfiguráció, vagyis a munkaállomások automatikus hálózati konfigurálását támogató rendszer - hálózati mobilitás, egy hálózati csatolóhoz egy időben több címet rendelhetünk. Ez hasonló a mobilszolgáltatók roaming, (barangolási) szolgáltatásához. - titkosítás, azonosítás: Az IPv6 címzés szerves része az IPSec biztonsági protokoll, ez hálózati szinten nyújt lehetőséget arra, hogy a kommunikációban résztvevő felhasználók hitelesen azonosítsák egymást, és az egymást közt zajló adatforgalmat titkosítsák egy biztonságos úgynevezett alagúton, tunnel-en keresztül anélkül, hogy az Internetről bárki le tudná hallgatni őket. - többszörös címezhetőség, szabványosított multicast - névfeloldás és a csoportmenedzsment része a protokollnak, így az ARP és az IGMP kikerült a rendszerből Az átállás az IPv4-ről IPv6-ra, nem tud az egész Interneten egy időben lezajlani, ezért szükséges, hogy a két rendszer egymás mellett működhessen, akár az Interneten vagy a gépen belül is. Ezt az átmenetet a kompatibilis címek (az IPv4 címek egyszerűen átalakíthatók IPv6-címekké), és a különféle alagutak alkalmazása biztosítja. Használhatnak egy kettős protokollcsomag, (dual stack IP) nevű technikát is, amely mindkét protokollt egy időben támogatja. A két teljesen különálló hálózati alrendszer és a két különböző protokollverzió nincs hatással egymásra. A hálózatokon az IP címek a MAC-címekhez kerülnek hozzárendelésre, melyek (mivel ROM-ban kerülnek tárolásra) az egységek egyedi azonosítását végzik. A hozzárendelések megkeresésére szolgál az ARP protokoll IPv4 címek esetén, IPv6-nál az NDP célravezető. IPv6 címzés: Az IPv6 esetében a címzésre 128 bit áll rendelkezésre, szemben az IPv4 32 bites címzésével.
Ellentétben az IPv4 hálózatokkal, ahol a hálózati maszk változó méretű, az IPv6 esetében a hálózatok fixen 64 bites (/64) prefixeket használnak. Háromféle egyedi (unicast) cím típust lehet megkülönböztetni: - link lokális cím (link local address, FE80::/10) - globális unicast cím (GUA: global unicast address) - egyedi lokális cím (ULA: unique local address, FC00::/7) Minden végberendezésnek (host) rendelkeznie kell link lokális címmel és legalább egy GUA címmel az IPv6 Internet eléréséhez. Az IPv6-os cím tehát két részből áll: egy 64 bites (al-)hálózati részből, illetve egy 64 bites hosztrészből, melyet többféleképpen lehet generálni (pl. a MAC-címből, stb.). Az IPv6-os címek a CIDR címzések módját követik. Egy IPv6-os cím 8 db 4 hexadecimális számjegyből álló csoportból áll, kettőspontokkal elválasztva. Egy érvényes cím a következőképp nézhet ki: 2001:0db8:85a3:08d3:1319:8a2e:0370:7334 Négy 0-ból álló négyes (0000) elhagyható, és helyére négyespont írható (::). Így több 0000-s négyes is átírható négyespontokká, illetve a négyesekből a vezető nullások is elhagyhatóak (pl.: 0d56 → d56) A következő címek mind egyenértékűek, ugyanarra a címre mutatnak: -
2001:0db8:0000:0000:0000:0000:1428:57ab 2001:0db8:0000:0000:0000::1428:57ab 2001:0db8:0:0:0:0:1428:57ab 2001:0db8:0:0::1428:57ab 2001:0db8::1428:57ab 2001:db8::1428:57ab
Ilyen módszerrel viszont csak egy ilyen nullásokból álló csoport hagyható el, több nem. Például 2001:0db8:0000:0000:34d2:0000:1428:57ab nem azonos 2001:0db8::34d2::1428:57ab-vel, csak 2001:0db8::34d2:0000:1428:57ab, vagy 2001:0db8:0000:0000:34d2::1428:57ab az érvényes. IPv6 header (fejrész):
Version: az IP verziója, jelen esetben a 6. Traffic Class: a csomagokat ezzel a 8 bittel lehet priorizálni. Flow Label: A 20 bites QoS szolgáltatáshoz került be, ami a valós idejű applikációkat támogatja illetve támogatná, mert jelenleg még nincs használatban. Payload Length: Az IPv4 65535 byte-ban maximált címtartományát (Total Length) jelentősen kibővítették (meg át is nevezték). A kibővített címzési lehetőség lehetővé teszi az un. jumbo payload
(hop-by-hop) műveletet is, mellyel egyszerre 4 GiB méretű csomag is küldhető (2 32 - 1 = 4,294,967,295 bytes). Next Header: ez a mező jelzi, hogy a csomag milyen protokoll számára szállít. Amikor a csomagokból összeállítja az üzenetet a vételi oldal, ezalapján továbbítja a felsőbb réteg megfelelő protokolljának (ált. TCP vagy UDP). Az egyes protokollok ide vonatkozó megfeleltetést az RFC 790 írja le. A mező funkcionálisan az IPv4 protocol mezővel egyezik meg. Hop Limit: Ezzel a mezővel korlátozzák egy csomag hálózatban eltölthető idejét, illetve egyúttal a megoldás azt is biztosítja, hogy ne maradhassanak a hálózatban vég nélkül keringő csomagok. Kezdőértéke 255 lehet maximálisan, melyet minden router csökkent eggyel továbbításkor. Ha eléri a nullát, egyszerűen eldobja. A mező funkcionálisan az IPv4 TTL mezővel egyezik meg. Source Address: a forrás/küldő állomás 128 bites (16 byte) IP címe. Destination Address: a cél/fogadó állomás 128 bites (16 byte) IP címe.
ICMP és IGMP Az Internet réteg esetében a két IP szabvány mellett fontos megemlíteni az ICMP és IGMP vezérlő protokollokat is. ICMP (Internet Control Message Protocol): az ICMP egy interneten használt protokoll, melynek segítségével értesülhetünk a hibákról illetve azok típusáról, valamint hálózati diagnosztizálásban lehet a segítségünkre. Az ICMP (az UDP-hez hasonlóan) datagram-orientált kommunikációs protokoll, mert egyáltalán nem garantált a csomagok megérkezése vagy sorrendje. Az ICMP (a TCP-hez és az UDP-hez hasonlóan) az IP-t használja borítékként (ICMP csomagok csak IP hálózaton mehetnek). Az ICMP-t részletesen az RFC 792-ben definiálták. ICMP csomag formátum:
Legfontosabb ICMP üzenetek:
CÉL ELÉRHETETLEN üzenet akkor keletkezik, ha a router nem találja a célt, vagy ha olyan üzenetet kapott, ahol áll a DF bit, és a hálózat nem tud akkora csomagot kezelni, mint a beérkezett. IDŐTÚLLÉPÉS üzenetet akkor küld a router, ha a csomag élettartam mezője elérte a nullát. (Torlódás van, hurokba került a csomag, túl alacsony a beállított élettatam). PARAMÉTER PROBLÉMA üzenet az IP fejrész hibáját jelzi. Rendszerint valamelyik router szoftver hibája okozza. FORRÁSLEFOJTÁS üzenetet a túl sok csomagot küldő hosztok kapnak, hogy lassítsanak. Az új forgalomirányító algoritmusok nem használják. (A forgalomszabályozás a szállítási rétegben történik.) ÚJRAIRÁNYÍTÁS üzenetet akkor küld a router, ha a csomag rosszul irányítottnak tűnik. (Teljesen rossz földrajzi irány.) VISSZHANG KÉRÉS és VISSZHANG VÁLASZ üzenetek egy hoszt elérhetőségének tesztelésére használhatók. Az IDŐBÉLYEG KÉRÉS és IDŐBÉLYEG VÁLASZ üzenet a hoszt elérhetőségén túl a hálózat teljesítményét is méri. Az üzenet érkezési ideje és a válasz indulási ideje is szerepel a válaszban. Az ICMP teljes definíciója az RFC 792-ben található.
IGMP (Internet Group Management Protocol): Multiast üzenetek küldésénél használatos. Egyetlen csomagot egyszerre több végberendezéshez is eljuttathatunk. IGMP csomag formátum:
Szállítási réteg protokollok (OSI 4. szint, TCP/IP 3. szint) UDP (User Datagramm Protocol): Az Interneten is használt datagram-orientált kommunikációs protokoll, amely nem fedi el teljesen a hálózat sajátosságait. Így az esetlegesen hibásan megérkező csomagokat a cél-alkalmazásnak fel kell ismernie, illetve neki kell kezelnie a csomag-duplázódást, a csomag veszteséget és a változó csomag sorrendet. Olyan esetben előnyös a használata, amikor nincs szükség kapcsolat kiépítésére (mint a TCP esetén kell), és az sem feltétlenül probléma, ha egy csomag esetleg elveszne. Jellege miatt tipikusan ilyen felhasználási terület lehet pl. az online audio/video streaming és hasonló alkalmazások, ugyanis ebben az esetben mindenképpen lépést kell tartani a stream-mel, akár azon az áron is, hogy inkább kihagyunk pár csomagot, ha nem érkeztek meg időben. Mint már tisztáztuk, a TCP/IP modell sajátossága a bedobozolás módszere, ahol minden szinten sajátos egységről beszélünk, így minden egységnél adott egy fejrész (header). UDP header (fejrész):
Source Port (Forrás port): Értelemszerűen a küldő (forrás) alkalmazás portjának száma 16 biten ábrázolva Destination Port (Cél port): A vevő portjának száma. Length (Hossz): A csomag hosszát adja meg (fejléc + adatmező). (Az adatmező változó hosszúságú lehet.) A csomag minimális mérete 8 bájt, ekkor csak fejlécet tartalmaz. Checksum (Ellenőrző összeg): A csomag tartalmának sértetlenségét ellenőrzi. Kiszámolása nem kötelező, ekkor ezt a mezőt 0-ra kell állítani. UDP Pseudo header IPv4 esetén:
A pszeudofejrész az ellenőrző összeg számításakor beleszámít a fejrészbe. Az UDP szegmens hossz a fejrész és az adatrész együttes hosszát adja meg. A forrás és a célport a hosztokon belül azonosítja a végpontokat (szolgáltatásokat). Az UDP-t az RFC 768-ban találjuk meg részletesen.
TCP (Transmission Control Protocol): A TCP-t 1978-ban specifikálták a mai formájában. Az NCP-rol a TCP-re való áttérés 1983-ra valósult meg teljesen. Azóta az Internet szabványos protokollja a TCP. Leírását az RFC793 tartalmazza. A TCP egy megbízható folyamat-folyamat közti kommunikációra alkalmas protokoll célját szolgálja. Alapfunkciói: -
-
-
-
-
-
Alapvető adatátvitel: Egy oktettekből álló folytonos adatfolyam átvitelére látja el, úgy hogy a bájtokat szegmensekre bontja szét. Időnként szükség lehet arra, hogy meggyőződjünk róla, hogy minden elküldött adatot a túloldal megkapott, ezért a TCP definiál egy push műveletet, mely arra szolgál, hogy minden még el nem küldött adatot elküldjünk, illetve meggyőződjünk róla, hogy minden elküldésre szánt adat megérkezett. A fogadó oldal ebből a push műveletből semmit sem érzékel. Megbízhatóság: A TCP dolga az elveszett, megsérült, megduplázódott, nem helyes sorrendben érkezett csomagok érzékelése, és ezek kiküszöbölése. Ezt úgy éri el, hogy minden egyes kiküldött oktetthez tartozik egy sorszám, és a fogadó oldalnak pozitív megerősítést kell adjon a megérkezett oktettekről. Ha egy bizonyos időn belül nem jön pozitív megerősítés, akkor az adatot újraküldi a küldő oldal. Mindemellet ez a sorszám arra is jó, hogy a fogadó oldal a nem helyes sorrendben jött adatokat helyesen sorba tudja rendezni és észlelje a duplázódásokat. Az adatok sérülésének észrevételére pedig ellenőrzőösszeget használ. Adatfolyam vezérlés: A TCP egy úgynevezett ablakot használ az adatfolyam-vezérlésre. A küldő oldal egyszerre pozitív megerősítés nélkül nem küldhet több oktettet, mint amekkora a fogadó ablaka. Multiplexitás: Mint említettük a TCP folyamat-folyamat közti kommunikációra szolgál, azonban egy hoszton több folyamat is futhat, és több is akarhat párhuzamosan kommunikálni, így a TCP a hoszton ún. portokat használ. A kapcsolat kommunikációnál használt hálózati címe, és a TCP port együtt adják az ún. socket-et és a socketekből álló egyértelmű párokkal azonosítjuk a kapcsolatot. Minden egyes hoszt saját feladata, hogy a feladatok számára portokat biztosítson egy hozzárendeléssel(bind()). Kapcsolatok: A megbízhatóságot, és az adatfolyam-vezérlést már említettük. Ezek arról szólnak, hogyan kell létrehozni és karbantartani a kapcsolatokat. Ezen információk együttese alkotja a kapcsolatot, beleértve a socket-et, a sorszámot és az ablakméretet. Amikor két folyamat kommunikálni szeretne, előbb létre kell hozni a kapcsolatot és ha a kommunikációt befejezettnek tekintik, akkor azt le kell zárni és a használt erőforrásokat fel kell szabadítani. Lévén a kommunikációt egy nem feltétlenül megbízható alapokra helyezett hálózaton kell lefolytatni, így a kapcsolat létrehozásához kézfogási (Handshake) mechanizmusokat kell beépíteni. Megelőző biztonság: A TCP-t használó esetekben, ha nincs minden érték előre megadva, akkor a TCP gondoskodik helyes default értékek használatáról, és beállításáról. (Pl. kapcsolódó kliens esetén automatikusan kap portot, ha nem adunk meg külön ablakméretet, akkor az OS TCP kezelő része ad meg ilyet, stb.)
A TCP nyugtázásos rendszeren alapuló adatfolyam(stream)- és kapcsolatorientált adattovábbítási protokoll, vagyis a különböző alkalmazásoktól kapott adatokat adatfolyamba helyezi és úgy
továbbítja. Van kimenő és bejövő adatfolyam, ezek full-duplex kommunikációt tesznek lehetővé. A folyamokat szegmensekre osztja ezeknél kisebb adatmennyiséget nem „szeret” küldeni, megvárja, mire megnő ekkorára. A nyugtázás azt jelenti, hogy a célállomás nyugtát küld arról, hogy az adatokat megkapta. Ezeket a nyugtákat a küldött adatok fejlécében helyezik el, vagyis nincs külön nyugtafejléc. Ezt a módszert hívják piggy-backing-nek. Ezen felül a TCP a kommunikáció kezdetét egy speciális kapcsolat-felépítő mechanizmussal indítja, mely során a két fél információkat cserél és egyezteti a beállításait. A kapcsolatot a kommunikáció végén szabályosan lebontják. TCP header (fejrész) szerkezete:
TCP header a Pseudo header elkülönítésével:
Source port / Destination port: A TCP az egyes szolgáltatásokhoz, taszkokhoz, processzekhez tartozó adatokat portokkal azonosítja. Ezek a portok határozzák meg, hogy az elküldött és fogadott adatok mely applikációkhoz tartoznak. 1024 db ún. well-known (jól ismert) portja van ezek funkciója előre meghatározott. Sequence number (szekvencia szám): megadja, hogy a kapott adat a streamben hányadik helytől kezdődik.
Acknowledgement number (ráültetett nyugta): A legnagyobb megkapott sorszámú byte sorszámát írja ide. Ilyen módon nem kell minden nyugtát elküldeni, hanem a timeout időn belül össze lehet vonni a nyugtákat és csak az utolsót elküldeni. Data offset (fejléc hossz): megadja 4 byte-os egységekben, hogy hol kezdődik az adat. Reserved: 6 bites használaton kívüli rész. Flags (zázslók – jelzőbitek): -
-
-
-
CWR (Congestion Windows Reduced) / ECE (ECN Echo): Amikor valamely oldal olyan TCP csomagot vesz, amely CE codepoint-ot tartalmaz az IP fejlécben, úgy a nyugtában beállítja az ECE TCP flag-et. A túloldal ezt olyan módon nyugtázhatja, hogy a következő csomagjában a CWR TCP flag szerepel. URG (Urgent pointer field is significant): Ha az URG bit magas, akkor az Urgent Pointer (sürgősségi mutató) által jelölt bájttal bezárólag sürgősségi feldolgozást kér a vevőtől. ACK (Acnowledgement field is significant): jelzi, hogy a szegmens érvényes nyugtát tartalmaz. PSH (Push function): A küldő ezzel a flag-gel definiál egy push műveletet, mely arra szolgál, hogy minden még el nem küldött adatot elküldjünk, illetve meggyőződjünk róla, hogy minden elküldésre szánt adat megérkezett. A fogadó oldal ebből a push műveletből semmit sem érzékel. Általában a TCP nem “zavarja” minden beérkező szegmenssel az alkalmazást, gyakran egy pufferben gyűjtögeti a szegmensek adattartalmát és amikor „eléggé” megtelt a puffer, akkor adja át az alkalmazásnak az adatokat. RST (Reset the connection): többféle jelentése lehet: a. Egy összeköttetés helyreállításának kezdetét jelzi. b. Más esetben az összeköttetés létesítésére irányuló kérés visszautasítását is jelentheti. c. Nincs a megadott portszámon szolgáltatás (nincs a socket nyitva) d. A jelentkező már nem fér be a várakozási sorba. e. A kapcsolódást kérő IP címről nem engedélyezett a szolgáltatás elérése. SYN (Synchronize sequence numbers): szinkronizáció, kapcsolatfelvétel. FIN (No more date from sender): Az adó jelzi, hogy nincs több adat. Bontható az összeköttetés ezen iránya, azaz aki ezt küldte az már nem kíván adni, de venni még átmenetileg szeretne.
Window Size: A window size mezőben azt közli a vevő, hogy hány bájtot küldhet az adó anélkül, hogy visszaigazolást kellene kapnia a vevőtől (általános elnevezéssel ez burst eljárás). Más megközelítésben a WINDOW, a TCP által használt adó és vevő ablak méretét határozza meg. Az adási ablakból következik az adó puffer mérete. Itt az olyan sorszámú bájtokat tartják, amelyek már adásra kerültek, de a hozzájuk tartozó nyugta még nem érkezett meg. Az adási ablakban található legkisebb sorszámú bájthoz tartozó nyugta beérkezésekor az ablak előrébb csúszik a következő nyugtázatlan bájtig. A vételi ablak mutatja, hogy milyen sorszámú bájtokat fogadhat el a vevő. A vételi ablakban “látható” sorszámok a beérkező bájtoknak megfelelően növekszenek, azaz az ablak egyre fentebb “csúszik”. Checksum: a fejléc ellenőrző összege.
Urgent pointer: Itt egy, az aktuális sorszámhoz viszonyított eltolási mutató szerepel, amely meghatározza a sürgős adatok helyét a szegmensben. A megszakítás-üzeneteket helyettesíti. Az URG flag-gel lehet aktiválni. Options: Számos dologra használják, például kapcsolat felépítésekor információk cseréjére.
Ezen ismeretek birtokában kijelenthetjük, hogy a TCP/IP modell, a fent már említett TCP szállítási réteg szabvány IP hálózati rétegen (IPv4 vagy IPv6) való alkalmazása. Technikailag ez azt jelenti, hogy a két adatsor egymásba ágyazódik. A TCP/IP modell utolsó rétegének (Application layer), az alkalmazási rétegnek részletezésére nem térek ki, mivel a legtöbb protokoll itt helyezkedik el, és ezen protokollok működése már nem az operációs rendszer kernel szintű módjához kapcsolódnak, hanem a felhasználói módban való futáshoz. Legfontosabb alkalmazás rétegbeli protokollok csak felsorolás szinten: DHCP, DHCPv6, DNS, FTP, http, IMAP, IRC, LDAP, NNTP, BGP, NTP, POP, POP3, RPC, RTP, RTSP, RIP, SIP, SMTP, SNMP, SOCKS, SSH, Telnet, TLS/SSL és egyéb fontos protokollok. A teljesség igénye nélkül a következő linkek megtalálhatóak a felsorolt protokollok: http://en.wikipedia.org/wiki/Category:Application_layer_protocols
Felhasznált források: http://ob121.com/bus_ethernet.html http://en.wikipedia.org/wiki/Transmission_Control_Protocol http://en.wikipedia.org/wiki/User_Datagram_Protocol http://en.wikipedia.org/wiki/Ethernet http://users.itk.ppke.hu/~mpasztor/netora/ http://e-oktat.pmmf.hu/webgui/www/uploads/images/1749/8internetv3.pdf http://en.wikipedia.org/wiki/Category:Application_layer_protocols