Az Ethernet-ről alapfokon - 2. rész
Füle Sándor, 2003.04.22.
Az előző részben a kábelekről volt szó, most pedig a kábelen küldött jeleket fogom ismertetni.
Jelszint
A sodrott érpárokat használó Ethernet kommunikáció (pl. 10BaseT) hálózati csatlakozó kártyáin általában galvanikus elválasztást is biztosító, szimmetrikus illesztőtranszformátorokat találunk. Az érpárra oszcilloszkóppal rámérve max. 1.5 - 2 Vpp nagyságú nagyfrekvenciás jelet láthatunk. Mivel a kommunikáció a MHz-es tartományban történik, nagyon fontos, hogy a hálózati kártyáink és a kábelünk hullámimpedanciája azonos legyen, így biztosítva a visszaverődésmentes hullámterjedést. A technika elég megbocsájtó, egy 10 MBPS kapcsolat még egy "villanyszerelő módra", szigszalaggal megtoldott hálózati kábelen is működni képes. 100 MBPS esetén ezzel már ne próbálkozzunk...
Kódolás
A számítógépekben előálló bináris adatfolyamot valamiképpen át kell vinni a másik eszközre. Ennek legegyszerűbb módja az lenne, hogy a "0" bithez 0V-ot, az "1" bithez pl. 5V-ot hozzárendelve az adatfolyamot simán rákapcsolnánk egy érpárra, egy másik érpáron pedig jeleznénk azokat a pillanatokat, amikor az adatfolyamot olvasni kell (órajel). Ez a primitív módszer látható a jobboldali ábrán. Hátrány, hogy az órajel közléséhez egy külön érpár szükséges.
Olyan módszert kellene találni, ahol az órajel és az információ azonos jelbe van foglalva, így egyetlen érpáron átvihető. Több ilyen módszer is van, az Ethernet esetében a Manchester-kódolást alkalmazzuk. Ez azt jelenti (baloldali ábra) hogy "0" bitnek egy lefutó él felel meg, "1"-nek pedig egy felfutó él. Ahhoz, hogy egy ilyen kapcsolatban már az első bitet is értelmezhessük, a vevőnek tudomására kell hoznunk, mennyi időnként keresse az éleket. E célból egy néhány bájtos 101010101010... (szinkronozó) sorozatot küldünk az adatok előtt, amiből az élek közötti időt a vevő megmérheti. Figyeljük meg a szinkronozás végét jelző "11" bitpárt!
A keretek
Az Ethernet-en az adatállományokat nem egyben viszik át, hanem apró szeletekre bontva. Ezen szeletek neve frame, magyarul keret. Alábbiakban közöljük a keretek felépítését. Figyelem! Ennek a TCP/IP protokollhoz még semmi köze, ez a kommunikáció legalacsonyabb rétege, amit csak a hálózati illesztőkártyák "beszélnek" egymás között! A keretek több szakaszra oszthatóak, ezek időrendben a következők:
Szinkonozó:
Nyolc bájt hosszú sorozat "10101010..." ami a vevő szinkronozását szolgálja. Az utolsó két bit "1",ezzel jelzi a sorozat végét.
MAC címek
A MAC (Media Access Protocol) az a fukciója az Ethernet kártyának, amely a kábelen való adás jogát vezérli. Az OSI modell szerinti tágyalásban ez már az Adatkapcsolati Rétegbe tartozó funkció. (Az OSI modellről később...) Jelenleg számunkra az a fontos, hogy nyilvánvalóan egy hálózaton meg kell mondanunk, kinek küldjük az adatokat és hogy kik vagyunk.
Hogy kinek küldjük, azt egy 6 bájtos (MAC) címmel adjuk meg. A cím első 3 bájtja egyértelműen azonosítja a címzett hálózati interfész gyártóját, a második 3 bájt pedig a kártya gyári száma. Hogy a mi kártyánk honnan tudja, melyik kártyának kell címeznie küldeményét, az egy magasabb szintű funkció, később tárgyaljuk.
Az automatizálással foglalkozó olvasók számára talán érdekesek az alábbi gyártóazonosító MAC számok:
ABB
Yokogawa
Allen-Bradley
Yamatake
WISE
|
000023
000064
0000BC
002004
00207A
|
A következő 6 bájt a küldő hálózati kártya gyártóját és gyári számát tartalmazza. (Ezek alapján bizony még a végtelen Internet-en is megmondható, hogy egy adott frame arról a hálózati kártyáról származik-e, illetve megnézhetjük hogy egy nagynevű cég feliratával ellátott kontrollerben/processzorban milyen gyártó hálózati interfésze lapul.)
Adathossz
Két bájt hosszú mező, ami az ezután következő adatblokk hosszát adja meg bájtokban. Az adatblokk hossza minimum 46, maximum 1500 bájt lehet. Ha 46 bájtnál rövidebb üzenetet akarunk küldeni, a hálózati kártya PAD funkciója 46-ra kiegészíti, és az adathossz mezőben is jelzi, hogy a valós adatsor hány bájt.
Adatsor
E rész átvitele végett van szükség az egész keretrendszerre, mégsem foglalkozunk most azzal, mi van az adatblokkban. Lehet hogy már egy jpg fájl töredéke, lehet, hogy még a TCP/IP kommunikáció egy része. Lényeg hogy 46 és 1500 bájt közötti hosszúságú adatsor.
Ellenőrző összeg (CRC)
Az Ethernet-nél egy négybájtos átvitel ellenőrző számot használunk. Ennek segítségével a vevő kiszámolhatja, hogy minden bájtot helyesen vett-e. Ezzel zárul minden keret.
Szünet a keretek között
Minden keret leadása után az adónak tartania kell 8 bájtnyi átvitelnek megfelelő szünetet. Ez a visszajelzések és mások szóhoz jutásának esélyét teremti meg, ezzel azonban már a következő részben foglalkozunk.
|