Többszörös hozzáférésű csatornák kiosztására több algoritmus is ismert. A következő fejezetben megismerkedünk néhány jellegzetes protokollal az érdekesebbek közül, és példákat mutatunk be a használatukra.
Az első MAC-protokoll története az érintetlen Hawaii-szigeteken kezdődött az 1970-es évek elején. Ebben az esetben az „érintetlent” úgy kell értelmezni, hogy „működő telefonhálózattal nem rendelkező”. Ez problémát okozott Norman Abramsonnak, a Hawaii Egyetem kutatójának és kollégáinak, akik más szigeteken lévő felhasználókat szerettek volna csatlakoztatni a Honoluluban található központi számítógéphez. Nem volt kivitelezhető az az elképzelés, hogy saját kábeleket fektessenek a Csendes-óceán fenekére, ezért más megoldás után néztek.
Az általuk talált megoldás rövid hatótávolságú rádiót használt, amelyben minden felhasználói terminál közösen használta ugyanazt a felirányú (upstream) frekvenciasávot a központi számítógéphez irányuló keretek továbbítására. Tartalmazott továbbá egy új, elegáns módszert a csatornakiosztás problémájának megoldására. Munkájukat azóta sok kutató fejlesztette tovább [Schwartz és Abramson, 1985]. Bár Abramson ALOHA-rendszernek nevezett munkáját földi telepítésű rádiós üzenetszóráshoz készítette, az alapötlete bármely olyan rendszerre alkalmazható, amelyben koordinálatlan felhasználók egyetlen megosztott csatorna hozzáférési jogáért versengenek.
Az ALOHA két változatát fogjuk vizsgálni: az egyszerű (pure) és az időszeletelt (slotted) ALOHA-t. Ezek abban különböznek, hogy az időt folytonosnak veszik-e, mint az egyszerű ALOHA esetében, vagy diszkrét időszeletekre osztottnak, amelyekbe minden keretnek el kell férnie.
Az ALOHA-rendszer alapötlete egyszerű: engedjük a felhasználót adni, amikor csak van továbbítandó adata. Természetesen ütközések lesznek, és ezek a keretek el fognak veszni. A küldőnek meg kell tudnia állapítani, hogy ez történt-e. Az ALOHA-rendszerben miután egy állomás elküldte a keretét a központi számítógépnek, a központi számítógép a vett keretet adatszórással visszaküldi minden állomásnak. Emiatt a küldő állomás figyeli a központi számítógép adatszórását azért, hogy megállapítsa, vajon a kerete átjutott-e. Más rendszerekben, például vezetékes LAN-ok esetén, a küldő képes lehet az ütközés érzékelésére a küldés alatt.
Ha a keret megsérült, a küldő egyszerűen véletlenszerű ideig várakozik, majd ismét elküldi a keretet. A várakozási időnek véletlenszerűnek kell lennie, különben ugyanazok a keretek ütköznének újra és újra szabályos időközönként. Azokat a rendszereket, amelyekben a közös csatorna használata konfliktushelyzetek kialakulásához vezethet, versenyhelyzetes (contention) rendszereknek nevezzük.
Az ALOHA-rendszerben a keretgenerálás vázlatát a 4.1. ábra mutatja. A kereteket egyforma hosszúnak vettük, mivel az ALOHA-rendszerek átbocsátóképessége egyforma keretméretek esetén maximális.
4.1. ábra - Az egyszerű ALOHA-rendszerben a keretek küldése tetszőleges időpillanatban kezdődhet meg
Amikor ugyanabban az időpillanatban két keret is megpróbálja elfoglalni a csatornát, ütközés lép fel (ahogy a 4.1. ábrán látható), és mindkét csomag megsérül. A két keret akkor is használhatatlanná válik (azaz hibás lesz az ellenőrző összege), ha az egyik első bitje éppen hogy ütközik a másik utolsó bitjével, így később mindkét keretet újra kell majd küldeni. Az ellenőrző összeg nem különbözteti meg (és nem is feladata) a teljes ütközést a részlegestől. Ami hibás, az hibás.
Nagyon érdekes kérdés a következő: milyen egy ALOHA-csatorna hatékonysága. Vagyis az elküldött keretek mekkora hányada képes épségben maradni ilyen kaotikus körülmények között? Először képzeljünk el egy végtelen számú felhasználói csoportot, ahol mindenki a terminálja (állomása) előtt ül. Egy felhasználó mindig két állapot közül az egyikben van: vagy gépel, vagy várakozik. Kezdetben minden felhasználó gépel. Amikor egy sor elkészült, a felhasználó befejezi a gépelést és várja a visszajelzést. Ekkor az állomás egy keretbe helyezve továbbítja a sort a központi számítógépnek a megosztott csatornán, miközben figyeli a csatornát, hogy sikeresen átjutott-e a csomag. Ha sikeres volt az átvitel, a felhasználó visszajelzést kap erről, majd tovább gépel. Ha az átvitel nem sikerül, a felhasználó tovább várakozik, mialatt az állomás újra meg újra elküldi a keretet addig, amíg a csatornán egyszer sikeresen át nem jut.
Nevezzük „keretidőnek” azt az időtartamot, amely egy szabványos, fix hosszúságú keret átviteléhez szükséges (azaz a keret hosszát osztva az adatsebességgel)! Tegyük fel, hogy a felhasználók végtelen populációja az új kereteket Poisson-eloszlás szerint állítja elő, keretidőnként átlagosan N keretet. (A végtelen populáció feltételezése azért szükséges, hogy a felhasználók blokkolódása esetén se csökkenjen N értéke.) Ha N > 1, akkor a felhasználói közösség nagyobb intenzitással állítja elő a kereteket, mint ahogyan azt a csatorna kezelni képes, így majdnem minden keret ütközést fog elszenvedni. Elfogadható áteresztőképesség 0 < N < 1 tartományban alakulhat ki.
Az új keretek elküldése mellett az állomásoknak a régi, ütközést szenvedett keretek újraküldését is el kell végezni. Tegyük még fel, hogy az új és régi keretek együttes elküldési kísérleteinek valószínűsége ugyancsak Poisson-eloszlású, és keretidőnkénti várható értéke G keret. Egyértelmű, hogy . Kis terhelés (vagyis
) esetén csak kevés ütközés fordul elő, így az újraadások száma is kicsi, tehát
. Nagy terheléskor sok az ütközés, így G > N. Bármekkora is a terhelés, az S áteresztőképességet mindig a G aktuális terhelés, és a sikeres átvitel valószínűségének (P
0) szorzata adja meg. Tehát S = GP
0, ahol P
0 annak a valószínűsége, hogy egy keret nem szenved ütközést az átvitel során.
Egy keret akkor nem szenved ütközést, ha elküldésének első pillanatától kezdve egy keretideig nem próbálkozik más állomás keretküldéssel. Ezt szemlélteti a 4.2. ábra. Milyen körülmények között érkezhet meg sértetlenül az ábrán besötétített keret? Legyen t az egy keret elküldéséhez szükséges idő. Ha t
0 és t
0 + t időpontok között valamelyik felhasználó keretet küldött, akkor annak vége ütközni fog a sötétített keret elejével. Igazság szerint, a sötétített keret sorsa már azelőtt megpecsételődött, mielőtt az első bitjét elküldték volna, de mivel az egyszerű ALOHA-rendszerben az állomások nem figyelik a csatornát az adás megkezdése előtt, nem tudhatják, hogy egy keret már úton van. Továbbá, azok a keretek, amelyek küldését a és
intervallumban kezdik meg, a sötétített keret végével fognak ütközni.
Annak valószínűsége, hogy egy olyan keretidő alatt, amelyben G keretet várunk, k keret keletkezik a feltételezett Poisson-eloszlás szerint:
így annak valószínűsége, hogy nem keletkezik keret: . Két keret hosszúságú időintervallumban a keletkezett keretek várható száma 2G. Annak valószínűsége tehát, hogy a teljes kritikus szakasz során nem keletkeznek újabb keretek,
. Az
egyenlőséget felhasználva az áteresztőképesség:
Az áteresztőképesség és a forgalmi igény kapcsolatát a 4.3. ábra szemlélteti. Az áteresztőképesség G = 0,5-nél éri el a maximumát, az 1/(2e) értéket, amely megközelítőleg 0,184. Ez annyit jelent, hogy az elérhető legjobb csatornakihasználtság legfeljebb 18%-os lehet. Ez az eredmény nem túl biztató, de egy olyan módszerrel szemben, amelyben mindenki akkor adhat, amikor csak akar, aligha várható el 100%-os kihasználtság.
Nem sokkal az ALOHA megjelenése után Roberts [1972] olyan módszert publikált, amellyel egy ALOHA-rendszer kapacitása megduplázható. Javaslata szerint az időt diszkrét szeletekre (slot) kell osztani, amelyek hossza a keretidőkhöz igazodik. Az eljárás megköveteli viszont, hogy a felhasználók megegyezzenek az időintervallumok határainak pontos helyében. A szinkronizálás egyik lehetséges módja, hogy van egyetlen speciális állomás, amely akárcsak egy óra, ütemező jelet bocsát ki minden időintervallum kezdetén.
Roberts módszerében, amely időszeletelt (vagy réselt) ALOHA (slotted ALOHA) néven lett ismert, Abramson egyszerű ALOHA (pure ALOHA) rendszerével szemben, az állomások nem kezdhetnek el adni bármikor, amikor egy sor begépelése befejeződött, hanem meg kell várniuk a következő időszelet kezdetét. Ezáltal a folyamatos idejű ALOHA diszkrét idejűvé alakul. Ez megfelezi a keretek kritikus szakaszát. Ennek igazolásához, nézzünk a 4.2. ábrára, és képzeljük el a lehetséges ütközéseket. Annak a valószínűsége, hogy a tesztkeretünkkel azonos időszeletben ne legyen egyéb forgalom , ami az
összefüggéshez vezet. Ahogy a 4.3. ábrán láthatjuk, az időszeletelt ALOHA G = 1-nél éri el áteresztőképességének maximumát azaz megközelítőleg a 0,368 értéket, amely kétszer akkora, mint az egyszerű ALOHA esetén. Ha a rendszer
-gyel működik, akkor egy üres időszelet előfordulási valószínűsége (4.2)-ből következően 0,368. Az időszeletelt ALOHA-val elérhető legjobb kihasználtság mellett az időszeletek 37%-a üres, 37%-a sikeres és 26%-a ütközéses lesz. Magasabb G értékek mellett az üres időszeletek száma ugyan csökken, viszont exponenciálisan megnő az ütközéses időszeletek száma. A növekedés ütemének szemléltetése céljából végezzünk el egy egyszerű számítást egy tesztkeret elküldésével kapcsolatban. Annak valószínűsége, hogy elkerüli az ütközést, megegyezik annak valószínűségével, hogy más állomás nem ad az adott időszeletben, vagyis
Az ütközés valószínűsége tehát
Pontosan k kísérletet követelő átvitel valószínűsége (vagyis a sikeres átvitelt
ütközés előzte meg):
Ebből következik, hogy egy sor begépelése után az átviteli kísérletek várható száma, E:
E-nek G-től való exponenciális függése azt eredményezi, hogy a csatorna terhelésének kis növekedése is drasztikusan csökkentheti a csatorna teljesítményét.
Talán nem magától értetődő, hogy miért is annyira jelentős az időszeletelt ALOHA. Ezt a megoldást már az 1970-es években kidolgozták, aztán néhány korai, kísérleti rendszerben használták is, de később szinte teljesen feledésbe merült. Amikor aztán az internet kábelen keresztül történő elérését feltalálták, a mérnökök hirtelen azzal a problémával találták szembe magukat, hogyan osszanak meg egy közös csatornát több egymással versengő felhasználó között. Ekkor, mintegy a szemétből előbányászva, elővették az időszeletelt ALOHA-t, és a világ meg volt mentve. Később a probléma újra megjelent, amikor több RFID-címke küld adatot ugyanannak az RFID-olvasónak. Az időszeletelt ALOHA, egy csipetnyit hozzákeverve más módszerekből, megint megmentőként érkezett. Gyakran előfordult, hogy teljesen jó protokollokat mellőztek üzletpolitikai okok (például valamelyik nagy társaság azt akarta, hogy mindenki az ő útját járja) vagy az örökké változó műszaki trendek miatt. Aztán évekkel később egy értelmes ember mégis észrevette, hogy egy rég feledésbe merült protokoll megoldja az aktuális problémáját. Éppen ezért ebben a fejezetben mi is tanulmányozni fogunk számos olyan elegáns protokollt, amelyeket jelenleg nem használnak széles körben, de a jövő alkalmazásaiban még minden további nélkül népszerűek lehetnek, feltéve, hogy most elég sok hálózattervező megismeri azokat. Emellett természetesen sok olyan protokollal is foglalkozunk, mely ma is használatos.
Időszeletelt ALOHA használatával az elérhető legjobb csatornakihasználtság 1/e. Ez az alacsony hatékonyság nem meglepő, mivel az állomások tetszés szerint adhatnak anélkül, hogy a többi állomás tevékenységét figyelembe vennék. Ez elkerülhetetlenül sok ütközéssel jár. A lokális hálózatokban (LAN-okban) azonban az állomások általában érzékelhetik más állomások tevékenységét, így viselkedésüket azokhoz igazíthatják. Ennek köszönhetően ezek a hálózatok 1/e-nél sokkal jobb csatornakihasználtságot érhetnek el. Ebben a szakaszban néhány olyan protokollt mutatunk be, amelyek megnövelik a csatorna teljesítőképességét.
Azokat a protokollokat, amelyekben az állomások figyelik a csatornán folyó forgalmat, és ennek megfelelően cselekszenek, vivőjel-érzékeléses protokollnak (carrier sense protocols) vagy csatornafigyelő protokollnak nevezik. A kutatók számos ilyen protokollt javasoltak, melyeket már régen részletesen kielemeztek, például lásd Kleinrock és Tobagi [1975] munkáját. Az alábbiakban a vivőjel-érzékeléses protokollok több verzióját is bemutatjuk.
Az első vivőjel-érzékeléses protokoll az 1-perzisztens CSMA (Carrier Sense Multiple Access – vivőjel-érzékeléses többszörös hozzáférés). Ez egy kicsit körülményes név a legegyszerűbb CSMA-sémának. Amikor egy állomás adni készül, először belehallgat a csatornába, hogy eldönthesse, használja-e azt éppen egy másik állomás. Ha a csatorna szabad, az állomások elküldik a kereteiket. Különben, ha a csatorna foglalt, akkor addig vár, amíg az ismét szabad nem lesz. Ekkor az állomás elküld egy keretet. Ha ütközés következik be, akkor az állomás véletlen hosszúságú ideig vár, majd újból elölről kezdi az egészet. A protokollt 1-perzisztensnek nevezik, mivel a várakozó állomás 1 valószínűséggel adni kezd, amint szabadnak érzékeli a csatornát.
Azt várnánk, hogy ez a séma az egyszerre küldés ritka esetét kivéve elkerüli az ütközéseket, de valójában nem ez a helyzet. Ha két állomás lesz adásra kész, miközben egy harmadik a csatornát használja, mindketten udvariasan várnak az adás végéig, és akkor mindkettő pontosan egyszerre fogja elkezdeni az adását, ami ütközést okoz. Ha kevésbé lennének türelmetlenek, akkor kevesebb ütközés lenne.
Egy kicsit pontosabban fogalmazva, a terjedési késleltetésnek jelentős befolyása van az ütközésekre. Van esélye annak, hogy miután egy állomás adni kezd, egy másik állomás éppen adásra kész állapotba fog kerülni és érzékeli a csatorna állapotát. Ha az első állomás által küldött jel nem éri el a másodikat, akkor az utóbbi szabadnak érzékeli a csatornát, és szintén adni kezd, így ütközés következik be. Ennek az esélye függ attól, hogy hány keret fér el a csatornán, vagyis hogy mekkora a csatorna sávszélesség-késleltetés szorzata. Ha a keretnek csak egy kis töredéke fér el a csatornán – és ez a helyzet a legtöbb LAN esetén –, mivel kicsi a terjedési késleletetés, az ütközés bekövetkeztének az esélye kicsi. Minél nagyobb a sávszélesség-késleltetés szorzat, annál fontosabbá válik ez a hatás, és annál rosszabb lesz a protokoll teljesítőképessége.
Mindezek ellenére, ennek a protokollnak nagyobb a teljesítőképessége, mint az egyszerű ALOHA-nak, mert mindkét állomás van annyira illedelmes, hogy tartózkodik a harmadik állomás által küldött keret zavarásától. Pontosan ugyanez érvényes az időszeletelt ALOHA-ra is.
A második vivőjel-érzékeléses protokoll a nemperzisztens CSMA (nonpersistent CSMA). Ebben a protokollban tudatosan arra törekedtek, hogy az állomások ne legyenek annyira mohók, mint az előző protokollnál voltak. Mint ahogy az előbb, itt is az állomás figyeli a csatornát, amikor küldeni akar, és ha senki sem forgalmaz, akkor maga kezd el adni. Ha azonban a csatorna már foglalt, nem folytatja folyamatosan a csatorna figyelését, hogy a forgalom megszűntével azonnal megkezdje az adást, hanem véletlen hosszúságú ideig várakozik, és ekkor újrakezdi az algoritmust. Ebből következően, ez az algoritmus jobb kihasználtságot, de nagyobb késleltetéseket okoz, mint az 1-perzisztens CSMA.
Az utolsó protokoll a p-perzisztens CSMA (p-persistent CSMA). Időszeletelt csatornát alkalmaz, és a következőképpen működik. Amikor egy állomás adásra kész állapotba kerül, megvizsgálja a csatornát. Ha szabad, akkor p valószínűséggel forgalmazni kezd, azaz valószínűséggel visszalép szándékától a következő időszeletig. Ha a következő időszeletben a csatorna még mindig szabad, akkor ismét p, illetve q valószínűséggel ad vagy visszalép. Ez a folyamat addig folytatódik, amíg a keret elküldésre nem kerül vagy egy másik állomás forgalmazni nem kezd. Az utóbbi eset ugyanolyan hatású, mintha ütközés következett volna be (azaz véletlen hosszúságú ideig vár, majd elölről kezdi az algoritmust). Ha az állomás már kezdetben érzékeli a csatorna foglaltságát, akkor vár a következő időszeletig, és csak ott kezdi a fent leírt algoritmust. Az IEEE 802.11 szabvány a p-perzisztens CSMA egy finomított változatát használja, amit a 4.4. szakaszban fogunk tárgyalni.
A 4.4. ábra nem csak e három protokoll, hanem az egyszerű és időszeletelt ALOHA-protokollok áteresztőképességét is szemlélteti a forgalmi igények függvényében.
4.4. ábra - Véletlen hozzáférésű protokollok összehasonlítása a terhelés függvényében mért csatornakihasználtság alapján
A perzisztens és nemperzisztens CSMA-protokollok egyértelmű előrelépést jelentenek az ALOHA-rendszerhez képest, hiszen az állomások nem kezdenek el adni, ha a csatornát foglaltnak érzékelik. Ennek ellenére, ha két állomás szabadnak érzékeli a csatornát és mindketten egyszerre elkezdenek adni, akkor a küldött jeleik ütközni fognak. További fejlődés, hogy az állomások gyorsan érzékelik az ütközést és azonnal félbeszakítják adásukat (az adás végigvitele helyett), mert a keretek már visszavonhatatlanul megsérültek. Ez a stratégia időt és sávszélességet takarít meg.
Ezt a protokollt CSMA/CD-nek (Carrier Sense Multiple Access with Collision Detection – ütközésérzékeléses CSMA) nevezik, és ez képezi a klasszikus Ethernet LAN-ok alapját, tehát érdemes némi időt szánni a részletes megismerésére. Fontos tisztában lenni azzal, hogy az ütközés érzékelése egy analóg folyamat. Az állomás hardverének az adás folyamán figyelnie kell a csatornát. Ha a visszaolvasott jelé különbözik a kiadott jeltől, akkor tudja, hogy ütközés keletkezett. A feltétel az, hogy a vett jel ne legyen nagyon kicsi a küldött jelhez képest (ezt nehéz biztosítani vezeték nélküli környezetben, mivel a vett jelek 1 000 000-szor gyengébbek lehetnek a küldött jeleknél), és hogy olyan moduláció kell, amely lehetővé teszi az ütközések érzékelését (például két 0 volt feszültségű jel ütközését szinte lehetetlen érzékelni).
A CSMA/CD- és sok más LAN-protokoll a 4.5. ábrán látható fogalmi modellt használja. A t 0-val jelölt ponton egy állomás befejezi keretének küldését. Ezen a ponton minden olyan állomás, amelyik kész kerettel rendelkezik, megkísérelheti azt elküldeni. Ha kettő vagy több állomás egyszerre kezd el adni, akkor ütközés jön létre. Ha egy állomás ütközést érzékel, félbehagyja az adást, véletlen hosszúságú ideig vár, majd újrapróbálkozik (feltételezve, hogy egyetlen másik állomás sem kezdett bele az adásba ezalatt). Ennek következtében a CSMA/CD-modellünk váltakozó versengési és átviteli periódusokból áll, kiegészítve tétlen periódusokkal, amikor egyik állomás sem forgalmaz (például nincs továbbítandó adat).
4.5. ábra - A CSMA/CD mindig a következő állapotok közül az egyikben lehet: versengési, átviteli vagy tétlen
Most pedig ismerkedjünk meg a versengés algoritmusának részleteivel! Tegyük fel, hogy két állomás pontosan ugyanabban a időpillanatban kezd el adni. Mennyi idő telik el, amíg észlelik, hogy ütköztek? Ennek a kérdésnek a megválaszolása döntő jelentőségű a versengési periódus hosszának meghatározásához, és ebből következően a késleltetés és az áteresztőképesség kiszámításához.
Az ütközés érzékeléséhez szükséges minimális idő az, ami alatt a jel az egyik állomástól a másikig eljut. Ezen információ alapján azt hihetnénk, hogy egy állomás, amely a kábel teljes terjedési idejének megfelelő ideig nem észlel ütközést, biztos lehet abban, hogy megszerezte a kábel használati jogát. A „megszerezte” kifejezésen azt értjük, hogy az összes többi állomás tud a folyó átvitelről, és így nem zavarják meg azt. Ez a következtetés azonban hibás.
Tekintsük a következő, legrosszabb eshetőséget! Jelöljük a két legtávolabb levő állomás között a jel terjedési idejét -val! A
időpillanatban az egyik állomás elkezd adni.
időpontban, tehát egy pillanattal azelőtt, hogy a jel megérkezhetett volna a legtávolabbi állomáshoz, az is forgalmazni kezd. Természetesen szinte azonnal észreveszi az ütközést és leáll, de az ütközés által okozott kis zaj nem jut vissza az első állomáshoz
időn belül. Vagyis legrosszabb esetben egy állomás csak akkor lehet biztos abban, hogy megszerezte a csatornát, ha már
ideje forgalmaz ütközés nélkül.
Ennek tudatában úgy gondolhatunk a CSMA/CD versengésre, mintha egy réshosszúságú időszeletelt ALOHA-rendszer lenne. Egy 1 km hosszúságú koaxiális kábelen
s. A CSMA/CD abban különbözik az időszeletelt ALOHA-tól, hogy azokat az időszeleteket, amelyekben csak egyetlen állomás ad (amelyekben a csatorna foglalt), a keret további részei követik. Ha a keretidő jóval hosszabb a terjedési időnél, akkor ez a különbség nagyban javítja a teljesítőképességet.
Bár a CSMA/CD esetén nincs ütközés, ha egy állomás már egyértelműen megszerezte a csatornát; azt megelőzően, a versengési szakaszban azonban még mindig előfordulhatnak ütközések. Ezek az ütközések hátrányosan érintik a rendszer teljesítőképességét, különösen akkor, ha a sávszélesség-késleltetés szorzat nagy, úgy mint amikor a kábel hosszú (azaz nagy), a keretek pedig rövidek. Az ütközések miatt nemcsak a sávszélesség csökken, de a keretek küldési ideje is változó lesz, ami nem ideális valós idejű forgalom számára, mint amilyen az IP-hálózaton keresztül történő hangátvitel (VoIP). A CSMA/CD sem mindenhol alkalmazható.
Ebben a szakaszban olyan protokollokat mutatunk be, melyek ütközés nélkül teszik lehetővé a csatornáért folytatott verseny lebonyolítását, még a versengési periódus folyamán is. Legtöbbjüket nem használják a jelenlegi nagyobb rendszerekben, de ilyen gyorsan változó területen mégis hasznos lehet, ha van néhány kiváló tulajdonságokkal bíró protokollunk az esetleges jövőbeli rendszerek számára.
A protokollok bemutatásánál feltételezzük, hogy pontosan N állomás van, és hogy ezeket az állomásokat 0-tól N – 1-ig terjedő egyedi címmel látták el. Nem okoz problémát, ha néhány állomás az idő egy részében inaktív. Feltételezzük azt is, hogy a terjedési késleltetés elhanyagolható. Az alapvető kérdés az marad, melyik állomás használhatja a csatornát egy-egy sikeres átvitel befejeztével. Továbbra is a 4.5. ábrán bemutatott diszkrét versengési időszeletekkel dolgozó modellt fogjuk használni.
Az első bemutatandó ütközésmentes protokollban, az alapvető bittérkép-eljárásban (basic bit-map method) az ütköztetési periódus pontosan N időszeletből áll. Ha a 0-s állomás adni szeretne, akkor 1-es bitet küld a 0-s (első) versengési időszeletben. Ez alatt az időszelet alatt a többi állomás nem használhatja a csatornát. A 0-s állomástól függetlenül, az 1-es állomásnak szintén megvan a lehetősége, hogy az 1-es (második) időszelet jelzőbitjét 1-re állítsa, ha van kész kerete. Általánosan a j-edik állomás a j-edik időszeletben jelezheti egy 1-es bittel, ha van elküldésre váró kerete. Az N darab időszelet letelte után mindegyik állomás pontosan tudja, hogy mely állomások szeretnének forgalmazni. Ekkor számsorrendben megkezdhetik a keretek továbbítását, mint ahogy azt a 4.6. ábra is szemlélteti.
Mivel az állomások megegyeztek, hogy a sorban mikor melyikük következik, sohasem jöhet létre ütközés. Miután az utolsó adni kívánó állomás is elküldte a keretét – mely eseményt minden állomás könnyedén észlelhet –, egy újabb N időszeletes versengési periódus veszi kezdetét. Ha egy állomás szerencsétlenségére éppen akkor lesz adásra kész, amikor már éppen elmúlt a számára fenntartott versengési időszelet, akkor kénytelen az aktuális körben csendben maradni, és megvárni, amíg a versengési periódus számára fenntartott időszelete ismét körbeér.
Azokat a protokollokat, amelyekben – ehhez hasonlóan – a forgalmazási igényt a tényleges adatátvitel előtt kell adatszórással (broadcast) jelezni, helyfoglalásos protokollnak (reservation protocol) nevezik, mert előre lefoglalják maguknak a csatornát és megelőzik az ütközést. Röviden vizsgáljuk meg e protokoll teljesítményét. Az egyszerűség kedvéért az időt az 1 bit hosszú versengési időszeletekben mérjük, és egy-egy adatkeretet d hosszúságúnak tételezünk fel.
Ha a terhelés kicsi, akkor továbbítandó adatkeretek hiányában a versengési bittérkép fog újra meg újra ismétlődni a csatornán. Nézzük a helyzetet egy alacsony (például 0 vagy 1) azonosítójú állomás szemszögéből. Amikor küldésre kész állapotba kerül, az „aktuális” rés általában valahol a bittérkép közepén fog járni. Átlagosan tehát N/2 időszeletet kell egy ilyen állomásnak várnia az aktuális kör végéig, majd N időszeletet, amíg a következő versengési periódus befejeztével megkezdheti a forgalmazást.
A magasabb sorszámú állomások helyzete már kedvezőbb. Ezeknek általában a versengési periódus felét (N/2 időszeletet) kell csak várniuk az adás megkezdése előtt. Ezeknek az állomásoknak csak nagyon ritkán kell kivárniuk a következő versengési periódust. Mivel az alacsony sorszámú állomásoknak átlagosan 1,5N időszeletet, a magas sorszámúaknak pedig 0,5N időszeletet kell várniuk, az összes állomásra számított átlagos várakozási idő N időszelet lesz.
Alacsony terhelés mellett tehát egyszerűen számítható a csatorna hatékonysága. Keretenként a d adatbitre N többletbit (overhead) jut, így a hatékonyság d/(d + N).
Nagy terhelés esetén, amikor mindegyik állomásnak mindig van küldenivalója, az N hosszúságú versengési periódus N adatkeret között oszlik meg, így minden keretre csak 1 többletbit adódik. Ebből a csatorna hatékonyságára d/(d + 1) adódik. Egy keret átlagos késleltetése két részből tevődik össze: az adott állomáson belüli sorbanállási késleltetésből, valamint további (N – 1)d + N időszeletnyi késleltetésből, amelyet a belső sor elejére kerülve fog várni a tényleges elküldésig. Ez utóbbi intervallum abból áll, hogy mennyi időt kell várnia arra, hogy az összes többi állomás elküldhesse saját keretét és még egy bittérképből.
A bittérkép-protokoll lényege, hogy lehetővé teszi minden állomás számára azt, hogy egy előre meghatározott sorrend szerint elküldjön egy keretet. Egy másik módszer erre az, hogy egy rövid üzenetet, amit vezérjelnek (tokennek) hívnak, továbbadnak az egyik állomástól a másikig ugyanabban az előre meghatározott sorrendben. A vezérjel jelképezi az adásra való feljogosítást. Ha egy állomásnak van küldésre várakozó kerete, amikor a vezérjelet megkapja, akkor elküldheti a keretet, mielőtt továbbadná a vezérjelet a következő állomásnak. Ha az állomásnak nincs küldenivaló kerete, egyszerűen továbbadja a vezérjelet.
A vezérjeles gyűrűprotokoll (token ring protocol) esetén a hálózat topológiája határozza meg az állomások adásának a sorrendjét. Az állomások egymásután egy gyűrűbe vannak kapcsolva. A vezérjel továbbadása a következő állomáshoz egyszerűen abból áll, hogy egy állomás fogadja az egyik irányból a vezérjelet és továbbadja a másik irányba, ahogy ez a 4.7. ábrán látható. A keretek is a vezérjel haladásának irányában továbbítódnak. Ennek megfelelően a keretek körbehaladnak a gyűrű mentén, és elérik a címzett állomást. Hogy azonban egy adatkeret ne körözzön a hálózatban a végtelenségig (úgy, mint a vezérjel), valamelyik állomásnak el kell távolítania a gyűrűről. Ez lehet az az állomás, amelyik eredetileg küldte a keretet, vagy az, amelyik a keret szándékolt célállomása.
Érdemes megjegyezni, hogy nem szükséges, hogy a hálózat fizikailag gyűrűt alkosson ahhoz, hogy megvalósítható legyen a vezérjel továbbadása (token passing). Az állomásokat összekötő csatorna lehet egy sín is. Minden állomás ezt a sínt használja, hogy a vezérjelet a meghatározott sorrend szerinti következő állomásnak küldje. A vezérjel birtoklása ugyanúgy feljogosítja az állomást, hogy keretet küldjön a sínen, mint eddig. Ezt a protokollt vezérjeles sínnek (token bus) hívják.
A vezérjel-továbbadó protokoll teljesítőképesége hasonló, mint a bittérkép-protokollnak, bár az egy perióduson belül a versengési időszeletek és a keretek sorrendje itt összekeveredett. Miután egy állomás elküldte a keretét, meg kell várnia, hogy mind az N állomás (magát is beleértve) továbbadja a szomszédjának a vezérjelet, és hogy a többi állomás elküldje a keretét, amennyiben van egyáltalán elküldendő kerete. Egy apró különbség az, hogy mivel a gyűrűben minden pozíció azonos, nincs eltérés a kis és nagy sorszámú azonosítójú állomások között. A vezérjeles gyűrű esetén is minden állomás csak a szomszéd állomásig küldi a vezérjelet, mielőtt a protokoll szerinti következő lépésre sor kerül. Nem szükséges a vezérjelnek az összes állomást elérnie, mielőtt a protokoll szerinti következő lépés bekövetkezik.
A vezérjeles gyűrű protokollok, nagyjából változatlan formában MAC-protokollokként jelentek meg. Egy korai vezérjeles gyűrű protokoll (a „Token Ring”-nek nevezett és IEEE 802.5 szabványban specifikált protokoll) népszerű volt az 1980-as években, és a klasszikus Ethernet alternatívájaként szerepelt. Az 1990-es években egy sokkal gyorsabb vezérjeles gyűrű protokollt az FDDI-t (Fiber Distributed Data Interface – fényvezetőszálas osztott adatinterfész) a kapcsolt Ethernet ütötte ki. A 2000-es években az RPR-nek (Resilient Packet Ring – ellenálló csomagkapcsolt gyűrű) nevezett vezérjeles gyűrűt IEEE 802.17 néven szabványosították, hogy egységesítsék az internetszolgáltatók által használt különféle nagyvárosi gyűrűhálózatokat. Kíváncsian várjuk, mit hoznak a 2010-es évek.
A bittérkép-, valamint a vezérjel-továbbadó protokoll egyik hátránya az, hogy a versengési periódus hossza állomásonként 1 bittel nő, így rosszul skálázható már néhány ezer állomást tartalmazó hálózatokra is. Jobb eredményeket érhetünk el, ha bináris állomáscímeket és egy olyan csatornát használunk, amely kombinálja az átviteleket. Ez esetben a forgalmazni kívánó állomás adatszórással elkezdi mindenkinek szétküldeni a bináris címét, a legnagyobb helyi értékű bittel kezdve. Az összes állomás címének azonos hosszúságúnak kell lennie. Az elküldött címek ugyanabban a pillanatban elküldött azonos helyi értékű bitjeit a csatorna egymással logikai VAGY kapcsolatba hozza. Ezt a protokollt bináris visszaszámlálásnak (binary countdown) nevezzük. Ezt használják a Datakit-ben is, melyet Fraser [1987] tárgyal bővebben. A protokoll hallgatólagosan feltételezi, hogy az átviteli késleltetések elhanyagolhatók, azaz a leadott biteket minden állomás lényegében azonnal érzékeli.
A konfliktusok elkerülése érdekében szükség van egy kiegészítő szabályra is: amint egy állomás észleli, hogy 1-essel lett felülírva egy olyan, magasabb helyi értékű címbitpozíció, ahol a saját címében 0-s van, fel kell adnia a próbálkozást. Például ha a 0010, 0100, 1001 és 1010 című állomások szeretnék használni a csatornát, akkor az első bitidőben sorrendben 0-st, 0-st, 1-est és 1-est küldenek. Ezek logikai VAGY kapcsolata 1-est eredményez. A 0010 és a 0100 állomások látván az 1-est, és megtudván, hogy a versenyben magasabb című állomás is részt vesz, feladják a versenyt. Az 1001 és 1010 állomások tovább folytatják a versengést.
A következő bit 0-s, így mindkét állomás versenyben marad. Az ezt követő bit azonban 1-es, így az 1001 című állomás feladja a versengést. A győztes tehát az 1010 állomás lesz, mivel övé a legnagyobb cím. Miután megnyerte a „licitálást”, továbbíthat egy keretet, amely után újabb verseny kezdődik a forgalmazás jogáért. A protokoll működését a 4.8. ábra illusztrálja. Megfigyelhetjük azt a sajátosságot, hogy a magasabb című állomásoknak a prioritásuk is magasabb az alacsonyabb című állomásokénál, ami lehet jó is, rossz is, az adott környezettől függően.
A csatornakihasználtság ilyen protokoll mellett . Abban az esetben viszont, ha okosan választjuk meg a keretek felépítését, és az első mező éppen a küldő címét tartalmazza, még ez a
bit sem vész kárba, így a csatorna kihasználtsága 100% is lehet!
A bináris visszaszámlálás jó példája az olyan egyszerű, elegáns és hatékony protokolloknak, melyek újrafelfedezésre várnak. Remélhetőleg egy nap ez is megtalálja majd új helyét.
Eddig két alapvető csatorna-megszerzési stratégiát tárgyaltunk adatszóró hálózatok esetén: a versenyhelyzetes (mint amilyen a CSMA) és az ütközésmentes protokollokat. Mindkét stratégiát megítélhetjük két fontos teljesítménymérő szám, a kis terhelés mellett fellépő késleltetés, illetve a nagy terhelés mellett fennálló csatornakihasználtság alapján. Kis terhelés esetén a versenyhelyzetes módszerek (azaz az egyszerű és az időszeletelt ALOHA) a kedvezőbbek kis késleltetésük miatt (mert ritkán fordulnak elő ütközések). Ahogy nő a terhelés, a versenyhelyzetes protokollok egyre kevésbé vonzók, mivel egyre növekszik a csatorna megszerzésével eltöltött idő. Az ütközésmentes protokollokra ennek éppen az ellenkezője igaz. Kis terhelés mellett viszonylag nagy a késleltetésük, de ahogy a terhelés növekszik, a csatorna kihasználtsága egyre javul (mert a csatorna megszerzésével töltött idő rögzített hosszúságú).
Nyilvánvaló, hogy szerencsés lenne ötvözni a versenyhelyzetes és ütközésmentes protokollok legjobb tulajdonságait, és olyan új protokollt tervezni, amely kis terhelés esetén versenyhelyzetes technikát használna a kis késleltetés érdekében, illetve nagy terhelés mellett ütközésmentes technikát alkalmazna a csatorna jó kihasználása érdekében. Ilyen, korlátozott versenyes protokollok (limited contention protocol) már léteznek, és ezekkel zárjuk a vivőjel-érzékeléses protokollok tanulmányozását.
Az összes eddig tanulmányozott versenyhelyzetes protokoll szimmetrikus volt, vagyis az állomások p valószínűséggel próbálták megszerezni a csatornát, ahol a p minden állomásra azonos értékű volt. Érdekes, hogy a teljes rendszer teljesítményének növelése érdekében néha elég, ha olyan protokollt használunk, amely az állomásokhoz különböző valószínűségeket rendel.
Mielőtt áttérnénk az aszimmetrikus protokollok vizsgálatára, röviden tekintsük át a szimmetrikus protokollok teljesítményviszonyait. Tegyük fel, hogy a csatorna megszerzéséért minden résben k állomás verseng, és mindegyik p valószínűséggel adhat. Annak valószínűsége, hogy egy állomás sikeresen megszerzi a csatornát egy adott időszeletben az az, hogy csak egy állomás ad, p valószínűséggel, és a többi állomás közül egyik sem akar adni egyenként
valószínűséggel. Ez az érték
. Az optimális p megtalálása érdekében deriváljuk a kifejezést p szerint, az eredményt nullával egyenlővé tesszük, majd megoldjuk p-re az egyenlőséget. Ezt végrehajtva, p-re az 1/k értéket kapjuk, amelyet ha behelyettesítünk az eredeti kifejezésbe, a következő összefüggést kapjuk:
A valószínűség-függvény grafikonját a 4.9. ábrán láthatjuk. Kis állomásszám mellett a csatorna megszerzésének valószínűsége jó, de már öt állomás esetén is az esélyek az aszimptotikus 1/e érték közelébe zuhannak le.
A 4.9. ábra alapján nyilvánvaló, hogy egy állomás csatorna-megszerzési esélyeit növelni csak a versenyhelyzetek számának csökkentésével lehet. A korlátozott versenyes protokoll pontosan ezt teszi. Először is az állomásokat (nem feltétlenül diszjunkt) csoportokra osztják. A 0-s résért csak a 0-s csoport tagjai versenghetnek. Ha valamelyikük nyer, akkor megszerzi a csatornát, és elküldi a keretét. Ha viszont ütközés fordult elő, vagy a rés kihasználatlan maradt, akkor máris az 1-es csoport tagjai versengenek az 1-es résért, és így tovább. Az állomások megfelelő csoportokra osztásával a résekre jutó versenyhelyzetek száma csökkenthető, így a rések a 4.9. ábra bal oldalához hasonló karakterisztikával működhetnek.
A trükk abban van, ahogyan az állomásokat a résekhez rendeljük. Mielőtt az általános esetet megvizsgálnánk, nézzünk meg néhány speciális esetet! Az egyik szélső eset az, amikor mindegyik csoport csak egy állomást tartalmaz. Az ilyen eset biztosítja, hogy ne legyen ütközés, hiszen résenként legfeljebb egy állomás versenghet a csatornáért. Ilyen protokollt már láttunk korábban (például bináris visszaszámlálás). A következő speciális esetben csoportonként két állomás van. Annak esélye, hogy ezek egy résben egyszerre akarjanak adni , amely kis
-re elhanyagolható. Az azonos réshez tartozó állomások számának növelésével nő az ütközések valószínűsége, viszont a bittérkép mérete csökken anélkül, hogy állomások elvesztenék adási lehetőségüket. A határeset az, amikor az összes állomás egy csoportba kerül, ez az időszeletelt ALOHA. Olyan dinamikus állomás-hozzárendelésre lenne szükségünk, amely egy réshez kis terhelés esetén sok, míg nagy terhelés esetén csak néhány (esetleg csak egy) állomást rendelne.
A hozzárendelés egyik legegyszerűbb módja az, ahogy a II. világháború alatt az amerikai hadseregben a katonák szifiliszes fertőzöttségét vizsgálták [Dorfman, 1943]. Röviden ezt úgy végezték, hogy a hadsereg N katonájától vért vettek, amelyek mindegyikéből egy kis részt egyetlen kémcsőbe öntöttek, és ezt vizsgálták antitestek után kutatva. Ha nem találtak, akkor az összes abba a csoportba tartozó katona egészséges volt. Ha azonban találtak antitestet, akkor az N katonát két csoportba osztották, és a vérmintákból két újabb keveréket állítottak elő. Az egyik keverék az első N/2 katonától származik, a második a többitől. A folyamatot addig ismételték, amíg meg nem találták a fertőzött katonát.
Az algoritmus számítógépes változatához [Capetanakis, 1979] kényelmes, ha az állomásokat a 4.10. ábrának megfelelően egy bináris fa leveleinek képzeljük el. Egy sikeres keretátvitelt követően az első versengési résben, a 0-s résben, az összes állomás szabadon versenghet a csatorna megszerzéséért. Ha az egyik állomásnak sikerül, akkor minden rendben van. Ha ütközés következik be, akkor az 1-es résben már csak a 2. csomópont alatti részfa állomásai versenyezhetnek. Ha az egyikük megszerzi a csatornát, akkor a keretét követő rés a 3. csomópont alatti állomások számára lesz fenntartva. Ha viszont két vagy több 2. csomópont alatti állomás is forgalmazni szeretett volna az 1-es résben, akkor a bekövetkező újabb ütközés miatt a 2-es résben a 4. csomópont alatti részfa állomásai következhetnek.
Lényegében tehát, ha a 0-s időszelet alatt ütközés következik be, akkor a küldésre kész állomások felkutatása érdekében megkezdődik a fa mélységi bejárása. Az 1 bit hosszúságú időszeletek a fa egyes csomópontjaihoz vannak rendelve. Ha ütközés következik be, akkor a keresés rekurzívan az adott csomópont bal és jobb gyermekcsomópontjánál folytatódik. Ha egy bitrés kihasználatlan marad, vagy csak pontosan egy állomás küld benne, akkor annak a csomópontnak a keresése befejeződik, hiszen alatta nincs több küldésre kész állomás. (Ha ugyanis több is lett volna, akkor ütközésnek kellett volna bekövetkeznie.)
Amikor a rendszer terhelése nagy, aligha éri meg a 0-s rést az 1. csomóponthoz rendelni, hiszen csak abban a valószínűtlen esetben nem következne be ekkor ütközés, ha legfeljebb csak egyetlen állomás rendelkezne küldésre kész kerettel. Hasonló megfontolásból lehetne érvelni a 2. és 3. csomópont átugrására is. A kérdést általánosan fogalmazva: melyik szinten érdemes elkezdeni a keresést? Világos, hogy minél nagyobb a terhelés, annál mélyebben érdemes kezdeni a keresést a fában. Tegyük fel, hogy az állomásoknak q értékű jó becslése van arra, hogy hány kész állomás van éppen (például az addigi forgalom megfigyeléséből következtetve).
A fa gyökerétől számozzuk meg az egyes szinteket! A 4.10. ábrán az 1. csomópont a 0-s szint, a 2. és 3. csomópont az 1-es szint stb. Vegyük észre, hogy az i-edik szint minden csomópontjához az alattuk levő állomások része tartozik! Ha a q adásra kész állomás a fában egyenletesen elosztva helyezkedik el, akkor egy i-edik szinten levő csomópont alatt várhatóan
darab van. Mindenféle megfontolás nélkül azt várhatjuk, hogy a keresést azon a szinten optimális elkezdeni, ahol a résenként versengő állomások száma átlagosan 1, azaz azon a szinten, ahol
. Az egyenletet megoldva az
értéket kapjuk.
Bertsekas és Gallager [1992] az alapalgoritmus számos továbbfejlesztett változatát állította elő és vizsgálta meg. Például tekintsük azt az esetet, amikor csak a G és H állomás akar adni. Az 1-es csomópontnál ütközés következik be, így a 2-esre kerül a sor, amikor üres marad a csatorna. Teljesen felesleges lenne a 3-as csomópont vizsgálata, hiszen biztos, hogy ütközés fog bekövetkezni, mivel tudjuk, hogy az 1-es csomópont alatt kettő vagy több kész állomás is van, viszont a 2-es alatti részfában egy sincs, így ezeknek mind a 3-as alatt kell lenniük. A 3-as csomópont vizsgálata kimarad, és helyette a 6-os következik. Mikor kiderül, hogy ez alatt a csomópont alatt sincs adásra kész állomás, kihagyható a 7-es tesztelése, és azonnal a G állomásra kerülhet a sor.
Egy olyan rendszer, amelyben hordozható számítógépek rádión keresztül kommunikálnak, már vezeték nélküli LAN-nak nevezhető. Egy ilyen LAN az adatszóró hálózatok egy példája. Ezek a hálózatok bizonyos mértékben különböző tulajdonságokkal rendelkeznek a vezetékes LAN-okhoz képest, ami miatt különböző MAC-protokollokat használnak. Ebben a részben ezeket a protokollokat fogjuk megvizsgálni. A 4.4. szakaszban részletezzük a 802.11 (Wi-Fi) szabványt.
A vezeték nélküli LAN tipikus alkalmazása például, amikor a hálózat egy irodaházban előre meghatározott terv szerint elhelyezett hozzáférési pontokatból (access point, AP) áll. A hozzáférési pontokat rézvezetékes vagy üvegszálas hálózat köti össze egymással, és kapcsolatot létesítenek a velük kommunikáló állomásokkal. Ha a hozzáférési pontok és a hordozható eszközök (például laptopok) adóteljesítményét úgy állítják be, hogy 10 méteres nagyságrendű hatósugaruk legyen, akkor a közeli szobák olyanok lesznek, mint egy külön cella, a teljes épület pedig, mint egy celluláris telefonrendszer, amiről a 2. fejezetben már beszéltünk, azzal a különbséggel, hogy minden cellának csak egyetlen csatornája van. A cella összes állomása és a hozzáférési pont is közösen használja ezt a csatornát. Az ilyen csatornák sávszélessége tipikusan néhány Mb/s-től 600 Mb/s-ig terjed.
Már korábban megjegyeztük, hogy a vezeték nélküli rendszerek általában nem tudják az ütközéseket a történésük idejében érzékelni. Egy állomás vett jele lehet nagyon gyenge, akár milliószor gyengébb, mint az elküldött jel. Egy ilyet érzékelni olyan, mint tűt keresni egy szénakazalban. Ehelyett, nyugtákat használunk az ütközések és az egyéb hibák utólagos felderítésére.
Van egy még ennél is fontosabb különbség a vezetékes és vezeték nélküli LAN-ok között. A rádióadó korlátozott hatósugara miatt előfordulhat, hogy a vezeték nélküli LAN-on az állomások nem képesek kereteket küldeni az összes többi állomásnak, illetve kereteket venni az összes többi állomástól. Vezetékes LAN esetén, ha egy állomás egy keretet elküld, az összes többi állomás megkapja. Ennek a tulajdonságnak a hiánya a vezeték nélküli hálózatoknál különféle bajok forrása.
Azzal az egyszerűsítő feltételezéssel fogunk élni, hogy minden rádióadónak van valamilyen rögzített hatósugara, amit egy kör alakú lefedettségi területtel jelölünk, amelyen belül egy másik állomás érzékelni és venni tudja az állomás adását. Lényeges tisztában lenni azzal, hogy a lefedettségi területek közel sem olyan szabályosak, mert a rádiójelek terjedése a környezettől függ. Falak és egyéb akadályok, amelyek csillapítják és visszaverik a jeleket, megváltoztathatják a különböző irányokba eső hatótávolságot. Az egyszerű kör alakú modell azonban a céljainknak megfelel.
Vezeték nélküli LAN használatának naiv megközelítése lenne, ha megpróbálnánk a CSMA-t alkalmazni. Figyeljünk, és csak akkor kezdjünk el adni, ha nem észlelünk egyéb forgalmat. A probléma ezzel az, hogy ez a protokoll nem igazán jó megoldás a vezeték nélküli esetre, mivel a vételkor a vevőnél, és nem az adónál levő zavarás (interferencia) számít. Hogy megértsük a problémát, tekintsük a 4.11. ábrát, amelyen négy vezeték nélküli állomás látható. Számunkra most érdektelen, hogy melyek a hozzáférési pontok, és melyek a hordozható készülékek. A rádiós hatósugár akkora, hogy A és B egymás hatósugarán belül vannak, így egymást zavarhatják. C szintén zavarhatja B-t és D-t, de A-t már nem.
4.11. ábra - Egy vezeték nélküli LAN. (a) A és C rejtett állomások, amikor a B-nek adnak. (b) B és C megvilágított állomások, amikor A-nak és D-nek adnak
Először vizsgáljuk meg, mi történik akkor, amikor A és C forgalmaz B-nek, ahogyan azt a 4.11.(a) ábra szemlélteti! Ha A ad és C rögtön belehallgat a csatornába, akkor nem hallhatja A adását, hiszen A kívül van a hatósugarán. Emiatt C tévesen azt a következtetést vonhatja le, hogy elkezdhet B-nek adni. Ha C mégis elkezd adni, akkor interferencia lép fel B-nél, és tönkreteszi az A által küldött keretet. (Feltételezzük, hogy nem használunk CDMA-típusú sémát, ami több csatornát nyújtana, így az ütközések megváltoztatják a jelet és tönkreteszik mindkét keretet.) Egy olyan MAC-protokollra van szükségünk, amely megelőzi ezt a fajta ütközést, mert ez sávszélesség veszteséget okoz. Azt a problémát, amikor egy állomás nem képes érzékelni egy potenciális versenytársát, mivel az túl messze van tőle, a rejtett állomás problémájának (hidden terminal problem) nevezik.
Vizsgáljunk most meg egy másik szituációt, amikor B ad A-nak, ugyanakkor C akar D-nek adni, ahogy ez a 4.11.(b) ábrán látszik. Amikor C megvizsgálja a csatornát, hallva a folyamatban levő átvitelt, tévesen arra a következtetésre jut, hogy nem adhat D-nek (szaggatott vonallal jelölve). Valójában, ez az adás csak a B és C közötti szakaszon tenné lehetetlenné a keretek vételét, de egyik címzett vevő sem ott található. Egy olyan MAC-protokollra van szükségünk, amely megelőzi az ilyen típusú késlekedést, mert ez sávszélesség-vesztéssel jár. Ezt a problémát a megvilágított állomás problémájának (exposed terminal problem) nevezik.
A nehézség az, hogy az adás megkezdése előtt az állomás valójában arra lenne kíváncsi, hogy a vevő környezetében van-e rádiósugárzás. A CSMA csupán azt képes megmondani a vivő érzékelésével, hogy az adó környezetében van-e jelforgalom vagy sem. Vezeték esetén minden jel eljut minden állomáshoz, ezért ez a megkülönböztetés nem létezik. Az egész rendszerben azonban minden pillanatban csak egyetlen átvitel történhet. Viszont a kis hatósugarú rádióhullámokat használó hálózatok esetében egyszerre több átvitel is lebonyolítható, ha azok célállomásai különbözők, és kívül esnek egymás hatósugarán. Erre a párhuzamosságra szükség is van, ahogy a cella mérete egyre növekszik, pontosan úgy, mint ahogy egy társasági összejövetelen sem kell megvárni, hogy a teremben mindenki elhallgasson, mielőtt valaki beszélni kezd. Több beszélgetés is folyhat egy nagy teremben mindaddig, amíg azt nem ugyanahhoz a személyhez intézik.
A vezeték nélküli LAN-ok fent említett problémáit kezelő korai és meghatározó protokoll a MACA (Multiple Access with Collision Avoidance – többszörös hozzáférés ütközések elkerülésével) [Karn, 1990]. A protokoll mögött rejlő alapötlet az, hogy az adónak rá kell vennie a vevőt, hogy adjon ki egy rövid keretet, amelyet a hatósugarában tartózkodó állomások érzékelnek, és nem kezdenek adni a következő (hosszabb) adatkeret időtartama alatt. A vivőjel-érzékelés helyett ezt a módszert alkalmazzák.
A MACA-protokollt a 4.12. ábra szemlélteti. Vizsgáljuk meg, hogyan küld A egy keretet B-nek. A azzal kezdi, hogy a 4.12.(a) ábrának megfelelően küld egy RTS (Request To Send – adási engedély kérése) keretet B-nek. Ez a rövid üzenet (mindössze 30 bájt) tartalmazza a soron következő adatkeret hosszát. Ekkor B a 4.12.(b) ábrán jelzett módon egy CTS (Clear To Send – adásra kész) üzenettel válaszol. A CTS-keret szintén tartalmazza az adatkeret hosszát (az RTS-keretből másolja ki B). Amint A megkapja a CTS-keretet, azonnal adni kezd.
4.12. ábra - A MACA-protokoll. (a) A RTS-üzenetet küld B-nek. (b) B egy CTS-üzenettel válaszol A-nak
Most nézzük meg, hogyan reagálnak azok az állomások, amelyek akaratlanul is veszik ezek közül valamelyik keretet. Bármelyik állomás, amelyik veszi az RTS-keretet, nyilvánvalóan közel van A-hoz, így legalább annyi ideig csendben kell maradnia, amíg a CTS-keret konfliktus nélkül visszaérkezik az A állomáshoz. Bármely állomás, amelyhez eljut a CTS-keret, nyilvánvalóan közel van a B-hez, így csendben kell maradnia a CTS-t követő adatkeret átvitelének időtartama alatt, amelynek hosszát a CTS-keretből derítheti ki.
A 4.12. ábrán C belül van A hatósugarán, de kívül esik B hatósugarán, így foghatja az RTS-keretet A-tól, de nem hallhatja a B-től érkező CTS-keretet. Mivel nem jutott el hozzá a CTS-keret, szabadon forgalmazhat az adatkeret átvitelének időtartama alatt. Ezzel ellentétben a D állomás csak B hatósugarába esik bele, így nem foghatja az RTS-, csak a CTS-keretet. A CTS-keretet megkapva értesül arról, hogy közel van ahhoz az állomáshoz, amelyik nemsokára egy adatkeretet szeretne fogadni, így nem forgalmazhat addig, amíg az adatkeret küldése várhatóan be nem fejeződik. Az E állomás mindkét vezérlőüzenetet megkapja, így D-hez hasonlóan kénytelen csendben maradni az adatkeret továbbításának befejezéséig.
Az óvintézkedések ellenére is létrejöhet azonban ütközés. Például előfordulhat, hogy B és C egyszerre küld RTS-üzenetet A-nak. Ezek ütközni fognak és elvesznek. Ütközés esetén a sikertelen küldő állomás (amelyik a meghatározott időkorláton belül nem kapott válaszul egy CTS-keretet) véletlenszerű ideig várakozik, majd próbálkozik újra.