Mi történik a keretekkel? Az előző részben ismertettük az Ethernet kártyák által küldött/vett keret (frame) felépítését, most nézzük meg, mi történhet ezekkel a keretekkel!
A baloldalon láthatunk egy egyszerű Ethernet 10BaseT (csillag) hálózatot, mely 4 PC-ből és egy központi "elosztóból" áll. A központi elosztó sokféle lehet, válasszuk a legegyszerűbb esetet, amikor ez egy HUB! Ez a HUB nem más, mint egy doboz, melyben van 4 db. hálózati kártya, egy nagysebességű belső busszal összekötve. Ez nem is olyan kis feladat, ha számításba vesszük, hogy egy 2000 forintos Ethernet kártyában akkora a számítási teljesítmény mint 100 db Commodore 64-esben! A hálózat mindegyik kábele 2 sodrott érpárt tartalmaz, egyiken a PC ad, a HUB vesz, a másikon fordítva. A hálózati interfészek másodpercenként többször ellenőrzik hogy van-e a túloldalon valaki. E célból impulzusokat adnak ki. Ha a vevőoldal kihagyás nélkül megkap néhány LTP (Link Test Pulse) jelet, úgy tekinti, hogy a csatlakozás létrejött, jöhetnek-mehetnek a keretek. Fontos, hogy nincs egy központi ütemező, mint pl. a H1 fieldbus-nál, aki jogot oszt szét az adásra. Emlékezzünk, a hálózatot olyanra tervezték, hogy ne legyen benne központ, melynek kiesése a kommunikációt lebénítja. (Khm... És a HUB?)
Bajok a keretek körül
Ha nem egy hálózatról lenne szó, hanem csak két összekötött gépről, egyszerűbb lenne a helyzet. Akár egyszerre is adhatnának a kábel két végén, hiszen külön érpáron vannak az adók. Egy hálózaton azonban egyszerre csak egy gép adhat, ezért kell egy módszer, ami megoldja hogy mindenki szóhoz jusson. E módszer neve CSMA/CD azaz Carrier Sensing Multiple Access / Collision Detection. Magyarul ez annyit tesz: Vivőfrekvencia Érzékelés Többszörös Hozzáférés / Ütközés Érzékelés. A név még abból az időből származik, mikor a gépek - busz topológiában - egyetlen koax érpárra voltak felfűzve, és mielőtt valaki megszólalt, megnézte, van-e vivőfrekvencia (adáshoz szükséges) a buszon. Ha nincs, kezdődhet az adás! A csillag topológiában erre nincs szükség, hiszen - mivel külön adás- és vétel érpárak vannak - csupán azt kell megnézni, folyik-e vétel jelenleg. Ha nem, miénk a pálya! (Arról nem is beszélve, hogy a 10BaseT névben a "Base" azt jelenti, alapsávi, tehát nincs is vivőfrekvencia.) Hasonlatként a rádió antennáját és a hangszóró kábelét tudnám felhozni: A hangszórókábelen a hang közvetlenül, elektromos alakban van jelen - ez az alapsávi átvitel, az antennakábelen a hangjel egy magas frekvenciára ültetve halad...
Ütközés
Egyik hibalehetőség, hogy két gépnek egyszerre támad adhatnékja. Szabvány szerint járnak el, figyelik, ad-e már valaki. Mivel nem, egyszerre adni kezdenek. Ez persze minden vevő érpárján kesze-kusza, értelmezhetetlen jelszintet eredményez. Ezért a bölcs hálózati kártyák adásuk közben figyelik a vevő érpárat is. Ha valaki más is adásba fogott, beszüntetik az adást, várnak, majd újra próbálkoznak 16 alkalommal. A várakozási idő véletlenszerű, és az ismétlések számával egyre nő. Ha végképp nem megy, feladják a küzdelmet, a keretet törlik a feladni valók listájáról. Ilyenkor felsőbb szinten (pl az alkalmazásban) kell lekezelni a történteket. Belátható, hogy minél többen vannak a hálózaton, annál gyakoribb az ütközés. Ez az Ethernet egyik gyengéje, de a 100 MBPS és 1000 MBPS sebességű új (fast) Ethernetek legtöbbször megszüntetik ezt a gondot.
Fecsegés (jabber)
Ha egy hálózati kártya elromlik, a normális keretnél hosszabbat ad (vagy akár folytonosan ad), fecsegésről beszélünk. A túloldali kártya felismeri a fecsegőt, és a hibás keretet nem engedi tovább, ne terhelje az egész hálózatot! Csonka keret (runt) Megeshet, hogy egy keret adása közben megszakad a kapcsolat. Ilyenkor csonka (runt) keretről beszélünk. A vevőoldal (HUB) ezt is felismeri, nem adja tovább.
Hibás keret (jam)
Ha az átvitelt valami zavarja, vagy a kábelezés nem megfelelő, a küldött adatok torzulnak, a vevő hibásan olvashat. Szerencsére a keret végén a CRC erre fényt derít. A hibás keret se jut keresztül a vevőn. 100 Base TX - a gyors Ethernet A fent leírtak nem csak a 10 MBPS Ethernetre vonatkoznak, hanem a gyorsabb, 100 Base TX-re is. Mivel az automatizálásban is kezdi kiszorítani a 10 Base T verziót, érdemes a különbségekről szót ejteni. A 100 Base TX nem egyszerűen a 10 Base T "felturbózott" változata. A bitráta növelésén túlmenően három eltérés is van benne: NRZI kódolás Az előző részben leírtuk, hogy a 10 Base T "Manchester" kódolást használ. A 100 Base TX-nél használt NRZI (Non Return to Zero Invert) azaz Nullába Vissza Nem Térő kódolás azt jelenti, hogy az "1" bitet az Ethernet kábelen feszültségváltozással, a "0" bitet a feszültségváltozás hiányával jelezzük. MLT-3 átvitel
Az NRZI alapelvet felhasználva a gyors Ethernet szakít a bináris átvitellel, azaz nem csak "0"-kat és "1"-eket küld a kábelen, hanem 3 állapot lehetséges: "-1", "0" és "+1". Innen ered az MLT (Multi Level Transmission) azaz Többszintű Átvitel elnevezés. Az MLT-3 kódolás működése a baloldali ábrán követhető. Belátható, hogy egyetlen "digitalizált szinuszhullám" alatt legalább 4 bitet lehet átvinni! Felhívjuk a figyelmet, hogy a 3 lehetséges jelszint miatt a 100 Base T zavarérzékenysége megnőtt! Csakis Category 5, STP kábelen használható, különösen ipari környezetben! 4B/5B konverzió Az átviteli biztonság növelése érdekében egy olyan konverzió került alkalmazásra, ami a 4 bittel leírható hexadecimális számok mindegyikéhez egy olyan, 5 bites sorozatot rendel, amiben legalább 1 db átmenet van. Az alábbi ábrán jól látható a teljes kódtábla: Könnyű az átállás
A 100 Base TX-nél a csatlakozó lábkiosztása nem változik, tehát ugyanaz a patch-kábel használható mint a 10 Base T esetében. (Legyen Cat5, STP!) Helyzetünket még tovább könnyíti, hogy tisztességes Ethernet kártyák egymással megtárgyalják az alkalmazható sebességet, tehát ha mindkét oldal "tudja" a 100 Base TX átvitelt, automatikusan így fognak kommunikálni.
TCP/IP - a protokollcsomag
A fenti rövidítés a Transmission Control Protocol/Internet Protocol -ból származik. A TCP/IP azonban nem egyetlen, jól definiálható protokoll, amit itt kivesézve magunk is könnyen írhatnánk egy TCP/IP kommunikációt, hanem olyan protokollok csomagja, amit az Internet-en való használatra fejlesztettek. A csomag alapvető építőkövei a TCP és UDP, de ide tartozik pl. az email-ezés által használt Simple Mail Transfer Protocol (SMTP), a Post Office Protocol (POP), vagy a File Transfer Protocol (FTP) és a Simple Network Management Protocol (SNMP) is.
Címzés
Egy soros vonalra felfűzött Modbus "hálózat" címzése igen egyszerű, hiszen lehet benne egy master, és néhány slave. A címek így 1 bájtban kényelmesen elférnek. A TCP/IP-t sokkal, sokkal, sokkal nagyobb hálózatokra találták ki, ezért a címtartománynak is nagyobbnak kell lenni. Jelenleg 4 bájtos "IP címeket" használunk (max. 4.3 millió gép a hálózaton), de az Internet növekedése miatt már bevezették a hatbájtos címzés szabványát is. Ez már 279 milliárd gépet képes egyidejűleg befogadni. (Valószínűleg akkor is elég lesz, ha majd a nyomástávadókat is egyenként, online felkötik) A négybájtos "IP cím" egyértelműen hozzárendel egy gépet a hálózathoz. Mégis bizonyos vagyok abban, hogy a világon számos olyan eszköz (PC, DCS kontroller, PLC processzor) működik, melynél azonos IP címet találnánk, ha a beállításoknál megnéznénk. Hogyan lehetséges ez? Csakis úgy, hogy ezek az eszközök olyan hálózatra vannak kötve,mely nincs közvetlenül összekötve az Internet-tel. Ebben az esetben a rendszergazda a címeket akár hasraütésszerűen is kioszthatja. (Látni fogjuk, hogy önmagának árt, ha így tesz...)
Címosztályok
A négybájtnyi címtartományt három nagy részre osztották az Internet Atyák: Azon óriási intézmények számára, melyek egyidejűleg több mint 65.000 IP címet szeretnének használni (pl. Internet szolgáltatók) az "A" címosztályból (1.0.0.0. - 127.0.0.0.) adnak tartományt. Közepes szervezetek, melyek beérik kevesebb mint 65.000 címmel ám 254 cím nem elég, a "B" címtartományból (128.0.0.0 - 191.255.0.0.) kapnak egy szeletet. A kicsi, 254-nél kevesebb IP címet használó csatlakozni vágyók számára a "C" címtartományból osztanak ki egy apró részt. HA az általunk kiépíteni kívánt hálózat nem fog közvetlenül az Internetre csatlakozni, akkor is a fenti címosztályokon belül, magánhálózati célokra kijelölt tartományba tartozó címeket illik használni. Ezek: "A" osztályú hálózatban a 10.0.0.0 - 10.255.255.255 tartomány, (Ha egy ilyen hálózat rendszergazdája olvassa a PID.hu-t, valószínűleg ezt nem innen tudja meg...) "B" osztályban a 172.16.0.0 - 172.31.255.255, a kicsik pedig a 192.168.0.0 - 192.168.255.255. Ha ön MOST megnézi saját gépe IP címét, (Vezérlőpult/Hálózatok/Tulajdonságok) valamit meg fog tudni saját rendszerükről és rendszergazdájukról...
Alhálózat(ok)
Nagyméretű hálózatokat célszerűségi okból kisebb részekre - alhálózatokra - szokás osztani. Az egy alhálózatban levő eszközök közvetlenül kommunikál- hatnak egymással, míg más alhálózatok felé csak speciális átjárókon (router) keresztül. Erre a biztonság és hálózati teljesítmény szempontjából van szükség. Gondoljuk csak meg: Ha 1.000 PC között kell CSMA/CD elven egyetlen Ethernet-et megosztani, a hatásfok (sebesség) igen alacsonyra fog adódni! Másrészt a routereket be lehet állítani, kit engedjenek ki- illetve be. Minden alhálózatnak van egy "jelvénye", egy számsor, amit alhálózati maszknak hívunk. Csak azok a PC-k láthatják egymást, amelyekben azonos ez a "jelvény". Ezeket az alhálózati maszkokat szintén a rendszergazda osztja ki, csakúgy mint az IP címeket. Ez esetben se találomra történik a kiválasztás: Bár a maszkot decimálisan szokás bekérni, működése binárisan érthető meg. Ha pl. a 255.255.255.0 maszkot áttesszük binárisba, ezt kapjuk: 11111111.11111111.11111111.00000000. Ahol a maszkban "1" van, ott az IP cím adott bitje nem látható. Ahol lyuk van ("0" bit) ott az IP cím bitje használható. A 255.255.255.0 alhálózati maszk tehát azt jelenti, hogy csak az IP cím utolsó bájtja használható a PC-k címzésére. Elméletileg tehát 256 cím áll rendelkezésünkre. Ebből azonban le kell vonni a 0 címet, mert az az alhálózat címe (kívülről nézve), a 255 pedig az ú.n. broadcast (üzenetszórási) cím. Amely üzenetet a broadcast címre küldünk, azt az alhálózat összes gépe megkapja. Mire jó ez? Például ha meg akarjuk tudni, kikkel vagyunk közös alhálózaton...