Néhány éve még csak a nagyobb cégek számára volt elérhető a világháló, de ez - szerencsére mára már megváltozott. Mint az előző részben leírtuk, a telefonvezeték felhasználása a legkézenfekvőbb megoldása a magánfelhasználók számára az internet eléréséhez. Ahhoz, hogy alkalmazásba vegyük ezt az adatátviteli közeget, kapcsolatot kell létesíteni a számítógép és a telefonvonal között. Erre a célra speciális hardvereszköz, a modem szolgál. A modem megnevezés a modulátor-demodulátor szavakból képzett szó, amely az eszköz működését is nagyon jól meghatározhatja. A modem segítségével kialakított hálózat elvi felépítése a 40. ábrán láthatjuk.

40. ábra. Modemmel kialakított hálózat felépítése

A modem feladata kettős. Egyrészt a számítógép felől érkező digitális információnak megfelelő analóg jelet kell előállítania, másrészt a túloldalon ezt a műveletet fordítva is el kell végeznie. Felhívjuk a figyelmet, hogy a modem nem analóg-digitális és digitális-analóg átalakítást végez, hanem a bemeneti digitális jel alapján modulálja az analóg jelet, a túloldalon pedig demodulálja. Az átvitelre a már megismert modulációs eljárásokat (amplitúdó, frekvencia és fázis) használják.

A modemek szabványos eszközök, amelyek vezérlése szabványos parancsok segítségével történik. Ezeket a parancsokat AT parancsoknak is nevezik, mivel mindegyik ezzel a két karakterrel kezdődik. Minden funkció elérhető ezek segítségével. Ide kattintva az AT parancsok listáját olvashatjuk el.

Mivel a modemeket használat előtt a megfelelő módon programozni kell, ezért a működéshez szükséges tulajdonságokat (paramétereket) regiszterekben tárolják. Ezek jelölésére az Sxx formátum jellemző, ahol az xx a regiszter sorszáma. A különböző modemek eltérő számú regisztereket tartalmaznak. Általában azonban igaz, hogy 28 ilyen regiszterrel találkozhatunk, ezek programozása is AT paranccsal (ATSnn=xx) történik. Az S regiszterek leírásához kérjük kattintson ide.

A modemek megjelenési formájukat tekintve két csoportba sorolhatók. A modemek megjelenésekor az egy külső periféria volt, amely valamilyen módon a digitális eszközökhöz csatlakoztak. Később a digitális eszközökből túlnyomó részben számítógép lett, de hasonló modemet találhatunk a faxokban is. A számítógéphez kapcsolás megoldható valamelyik soros port felhasználásával, annak minden paramétere lehetővé teszi ezt, ráadásul minden számítógépben megtalálható. Az adatátvitel az RS-232C (CCITT V.24) protokoll szerint zajlik a modem és a számítógép között.

41. ábra. A modem és a számítógép kapcsolata.

A külső modem és a számítógép kapcsolatát a 41. ábra mutatja. A külső modemek a hordozhatóságot is jelentik, hiszen a szoftvereknek csak a megfelelő AT parancsokat kell továbbítani egy szabványos soros felületen keresztül. A modem sorosan veszi a parancsokat, a saját mikrovezérlője pedig ezeknek megfelelően látja el az összes funkciót. A külső modem és a számítógép kapcsolatát a 41. ábra mutatja.

Mivel a soros portra kapcsolódnak a modemek, ezért a soros portokhoz tartozó erőforrások felhasználásával lehet őket elérni. Soros portból 1-8 lehet egy számítógépen belül, de a BIOS (Basic Input/Output System, alapvető be/kimeneti rendszer) maximálisan csak négyet képes lekezelni. Az azonosításra a COMx jelzést használják, ahol az x a port sorszámát határozza meg (COM1-COM8). Ezek más-más IO címet, de páronként azonos megszakításkérő-vonalat használnak. A szabványos erőforrásokat mutatja az alábbi táblázat. Minden program, amely modemfunkciókat használ, ezeket a szabványos erőforrásokat képes kezelni. Ennek nagy a jelentősége, mint ahogy mindjárt meglátjuk.
 

Soros port
IO cím
Megszakításkérő vezeték
COM1
3F8
IRQ4
COM2
2F8
IRQ3
COM3
3E8
IRQ4
COM4
2E8
IRQ3

A különböző operációs rendszerekben megtalálhatók szabványos modemmeghajtó programok, amelyekkel a vezérlést el lehet végezni. Természetesen a modem extra szolgáltatásait nem tudjuk igénybe venni a saját kezelőprogramja nélkül.

A külső modemnek vannak hátrányai is. A tápellátást nekünk kell biztosítani külső áramforrásból, a csatlakoztatás elvesz egy soros portot és a modemnek helyre van szüksége.

Ezeket a hátrányokat a belső modemek szüntetik meg. Ezek ISA vagy PCI csatolófelülettel rendelkező kártyák, amelyek az alkalmazások felől nézve ugyanúgy működnek, mint külső társaik. A fizikai működés azonban jelentősen eltér a már megismerttől. Az ilyen modemek jelentősen bonyolultabb hardverrel és belső szoftverrel rendelkeznek.

Mivel PC kártyáról van szó, szükség van az ISA/PCI csatolófelület kialakítására. Ezt is a mikrovezérlőre bízták a modemfunkciók ellátása mellett. A kártya kialakítás felvet egy, nem is kicsi problémát. A perifériakártyák eléréséhez szükség van egy perifériacímre és egy megszakításkérő vonalra. A szabad perifériacímek a 300h-31Fh címtartományban (a "h" betű a 16 számrendszerbeli, vagyis hexadecimális számokat jelölik) találhatók. A szabad megszakításvonalakból nincs nagy választék, rendszerint az IRQ5, IRQ9, IRG10 és az IRQ15 a szabad. Ezek közül kell választanunk.

Most feltűnhet némi ellentmondás az előbb leírtakkal. Hogyan képesek az alkalmazói programok a modemfunkciókat elérni, ha azok teljesen más erőforrásokkal érhetők el? A megoldást a kezelőszoftver biztosítja. A belső modemek valamelyik soros port erőforrásaihoz vannak logikailag hozzárendelve. A periféria- és a soros port erőforrásai között a kapcsolatot szoftveresen valósítják meg. A logikai soros portra érkező kéréseket a meghajtó program a megfelelő perifériacímre továbbítja és fordítva. A kommunikáció a megszakításkérő vonalakkal történik, így a programnak mindkét vonalat figyelnie kell. Természetesen ilyen perifériáknál két portcím és két megszakításkérő vonal kerül lefoglalásra. Ez akkor lehet probléma, ha sok perifériát szeretnénk a számítógépünkben telepíteni, ilyenkor az erőforrások elfogyhatnak. Csak elvétve találkozhatunk olyan modemmel, amely ilyen felépítésű, mivel ezek kezelőprogramja meglehetősen bonyolult, az áruk pedig közel azonos, mint a külső modemeké.

A gyártók hatalmas versenyben vannak a modemek területén is. Piaci részesedésüket úgy tudják leginkább növelni, hogy a konkurens gyártók árainál olcsóbban adják saját termékeiket. Van azonban egy küszöb, amelynél lejjebb már nem lehet menni, mivel akkor nincs meg a gyártó megfelelő profitja. A modemek esetében a költség jelentős része a speciális és bonyolult mikrovezérlő teszi ki. Ez a modem lelke, tehát elhagyni lehetetlen.

A költségeket úgy lehet csökkenteni, hogy a mikrovezérlő feladati közül minél többet megpróbálnak szoftveres úton megoldani. Így egyszerűsödik a hardver, a költségek pedig jelentősen mérséklődnek. Így alakultak ki a szoftveres modemek, amelyek hasonló teljesítményt képesek nyújtani, mint a hardvermodemek, de jelentősen olcsóbban. A hardver funkciója szinte csak a szintillesztésre és a leválasztásra korlátozódik. Ezeknek a modemeknek a legnagyobb hibája, hogy a saját kezelőprogramjuk nélkül használhatatlanok, mivel ezek biztosítják a modemfunkciókat. A szoftveres modemeket winmodemeknek is nevezik, mivel elsősorban a Windows alá készítették el ezek kezelőprogramját, tehát csak Windows alatt használhatók.

Ha a modemet mint hálózati eszközt vizsgáljuk, akkor felmerülhet a kérdés, hogy melyek a modemben az OSI-modell egyes rétegei. Ezt mutatja a 42 ábra.

42. ábra. A modem rétegrendszere és az OSI modell

Két modem csak abban az esetben képes a kapcsolat kialakítására, ha van közös modulációs protokolljuk. Abban az esetben, ha több ilyen is van, akkor a közülük a leggyorsabbat használják.

A modemen keresztüli adatátvitelhez új protokollokat fejlesztettek ki. Ezek előnye, hogy több szolgáltatást képesek nyújtani az adatátvitel során.
 

Xmodem:  128 bájt hosszú csomagok átvitelére alkalmas. A hibavédelme két karakteres CRC-16 ellenőrzésen alapszik. Ezzel a megoldással lehetőség van egy-, illetve két bit hibájának a detektálására
Xmodem-1K:  1982-es fejlesztés, ami az előző továbbfejlesztése úgy, hogy nagyobb méretű (1024 bájt) csomagok kezelését teszi lehetővé. Kompatibilis az eredeti protokollal, de a két csomagméretet a küldő nem váltogathatja egy üzenetküldésen belül. 
Ymodem:  Az Xmodem-1K módosítása, lehetőség van használatával a kötegelt fájlátvitelre.
Ymodem-g:  Az előző hibavédelemmel ellátott továbbfejlesztése. A funkció kihasználásához szükséges a modem alkalmassága erre a funkcióra. 
Zmodem:  Az Ymodem továbbfejlesztése, a kapcsolatot megszakadás esetén újra képes felépíteni. 
Kermit:  1981-óta használatos adatátviteli szabvány, amelynek a feladata szöveg és bináris állományok hiba nélküli átvitele két számítógép között.
Hibajavítás és tömörítés

A modemes kapcsolat során nagyon fontos az adatok hibátlan adatátvitele. A telefonvonal rendszerint meglehetősen zajos, ami tovább nehezíti a helyzetet. Kidolgoztak hibajavító eljárásokat, amelyek közül az MNP (Microcom Networking Protocoll) és a CCITT V.42 (LAP-M, Link Access Procedure for Modems) protokollokat használják. Az ilyen modemek alkalmasak a hibamentes átvitelre, a csomagok újraküldésével képesek kiszűrni a hibásakat és azokat eldobják.

Az adatátvitel gyorsítására tömörítik az adatokat, majd ezekből képzik a csomagokat, amelyek átvitelre kerülnek. A tömörítésnek az előfeltétele a hibajavítás megléte, így a hibajavító protokollokat látták el tömörítési lehetőséggel. A tömörítés aránya 2:1 vagy 4:1 lehet, de ez csak elméleti határérték. A gyakorlatban az arány a küldendő adatoktól függ.

MNP protokollokat a Microcom Inc. fejlesztette ki az amerikai hadsereg számára. A protokoll az OSI modell hálózati rétegének a része, így képes szabályos adatkapcsolatot létesíteni két eszköz között. Megvalósítását tekintve lehet szoftveres és hardveres egyaránt.
 

MNP1 A legegyszerűbb változat, amely aszinkron átvitelt tesz lehetővé bájtonként fél-duplex kapcsolattal (váltakozva kétirányú). Az adatátviteli sebességet lelassítja.
MNP2 Aszinkron duplex protokoll, az adatátvitelt nem lassítja. 
MNP3 Ez a változat már szinkron működésű, duplex átvitelt tesz lehetővé. 10 bites csomagokat használ, a keretformátuma 1 START, 8 ADAT és 1 STOP bit. Szinkron átvitel esetében nincs szükség a START és a STOP bitre, tehát ezeket is fel lehet használni adatátvitelre, ami a sebességet megnöveli. Itt már bevezették a tömörítés lehetőségét is. Mindezekből következik, hogy a névleges sebességnél nagyobb látszólagos sebességű adatátvitelt tesz lehetővé. 
MNP4 Az MNP3 továbbfejlesztése, két új optimalizálási eljárást vezettek be. Az átvitel keretekben történik, a keret tartalmazza a szükséges ellenőrző biteket is. A szinkronizálás szinkronkeretekkel történik. Az átvitel biztonsága érdekében a vett csomagokat nyugtázni kell. Ezek és az adattömörítés felhasználása körülbelül 20-25 %-nyi látszólagos sebességnövekedést jelent.
MNP5 Ennél az adattömörítés tökéletesítésére helyezték a hangsúlyt. Valós idejű tömörítést használ, amivel akár 2:1 tömörítési arány is elérhető, ez pedig 100 %-os látszólagos sebességnövekedést eredményez. A megoldás hátránya, hogy nem ismeri fel a tömörített információt, ilyenkor a különböző tömörítési eljárások próbálgatása rengeteg időt vesz igénybe.
MNP6 Valójában félduplex protokoll, amely látszólag duplex módon működik. Ezt úgy képes elérni, hogy az ellentétes irányú átvitelt az adásszünetekben hajtja végre. Sok MNP modemmel nem kompatibilis. 
MNP7 Az EDC (Enhanced Data Compression, kiterjesztett adattömörítés) felhasználásával akár 3:1, 4:1 tömörítési arány is elérhető. 
MNP8 Az MNP7 továbbfejlesztése a pszeudo-duplex modemek számára. 
MNP9 A V.32 protokoll alapján működő modemeket egészítette ki az MNP7-tel.
MNP10 A legújabb változata a protokollnak, kifejlesztésénél felhasználták az összes elődjét. Dinamikusan képes a moduláció sebességét növelni és csökkenteni a kapcsolat minőségének megfelelően. 

Természetesen nem csak a Microcom által kifejlesztett szabványokat használják. Talán a leggyakoribb a V.42 protokoll. Ez tartalmazza mindazokat az előnyöket, amelyeket az MNP1-4 protokollok nyújtanak. Ehhez kapcsolódik a V.42bis protokoll, amely a V.42-re épülve elméletileg 4:1 tömörítést tesz lehetővé. A gyakorlatban legtöbbször ez az érték csupán 2:1 vagy esetleg 5:2.

Az AT&T és a Hayes által gyártott modemek saját hibajavítási metódust használnak, amely a LAPM (Link Access Protocol for Modems, kapcsoltat hozzáférési protokoll a modemek számára) elnevezést viseli. Ennek is része a V.42 hibajavítási szabályrendszer.

Modem kommunikációs szabványok

A modemekhez a fejlődésük során újabb és újabb protokollokat kellett kifejleszteni, amelyeket általában az egyre nagyobb sebesség jellemzett. A kialakult szabványok közül a legfontosabbakat az alábbi táblázatban láthatjuk a rövid magyarázatukkal együtt.
 

CCITT V.1 Meghatározza a digitális és az analóg információ egymáshoz rendelését (a logikai 0/1 információt a SPACE/MARK jelekhez rendeli). 
CCITT V.2 Meghatározza a jelszinteket a kapcsolt vonali adatátvitelhez.
CCITT V.21 300 bit/s sebességű, teljes duplex (kétirányú) kapcsolt vonali modem szabvány. Amerikában ennek megfelelő a BELL103 szabvány.
CCITT V.22  1200 bit/s sebességű, teljes duplex kapcsolt vonali modem szabvány. Amerikában megfelel a BELL212 szabványnak. 
CCITT V.22bis A CCITT V.22 továbbfejlesztése, 2400 bit/s sebességű, teljes duplex kapcsolt vonali szabvány.
CCITT V.23 600/1200 bit/s sebességű modem szabvány teljesen duplex működéssel. Rendelkezik egy, az adatátvitellel ellentétes irányú felügyeleti csatornával. A V.23-at Európában használták néhány videotext rendszerhez. Az Intel modemei nem támogatják ezt az üzemmódot. 
CCITT V.24 A DTE és a DCE (ebben az esetben a számítógép és a külső modem) közötti kapcsolódást határozza meg. Gyakorlatilag megfelel az RS-232C szabványnak. 
CCITT V.25 Automatikus hívás és/vagy válaszolás a hívásra a kapcsolt telefonvonalon.
CCITT V.28 A CCITT V.24 elektromos jellemzőinek a meghatározása. Ezt a két szabványt együttesen kell használni. 
CCITT V.32 9600/4800 sebességű, teljes duplex 2 vezetékes modem szabvány. 
CCITT V.32bis A V.32 továbbfejlesztése. 4800, 7200, 9600, 12000 és 14400 bit/s sebességű, teljesen duplex kapcsolatot határoz meg a kapcsolat vonalon keresztül. 
CCITT V.33 14400 bit/s sebességű teljes duplex kapcsolat 4-vezetékes vonalon keresztül.
V34 28800 bit/s sebességű modem szabvány. A kapcsolat megbízhatósága érdekében képes a vonal minőségét leellenőrizni. Fax-ok számára rendelkezik félduplex üzemmóddal is. Fenntart egy 200 bit/s sebességű csatornát a modemvezérlő jelek számára. Képes a telefonvonal zajossága esetén is a hibátlan adatátvitelre. Kapcsolt vonalon kialakított hálózat esetén alkalmas a kézfogásos üzemmódra.
CCITT V.42 Hibajavító eljárás a modemek számára. Lehetővé teszi a hibamentes átvitelt minimum 19200 bit/s sebességgel. Támogatja mind az LAMP, mind az MNP4 eljárást a kompatibilitás kiterjesztése érdekében. A hibavédelem ismétlődő kódokkal történik, hiba esetén ismételt adással. 
CCITT V.42bis Adattömörítő szabvány, amely elméletileg 4.1 tömörítésre képes, ami a gyakorlatban ennek kb. a fele. Használata megköveteli a V.42 szabvány alkalmazását is. Más program által elvégzett tömörítéstől függetlenül működik. 
CCITT V.57 Teljes körű teszt a nagy sebességű modemek számára. 
CCITT V.100 Kapcsolat a PDN (Public Data Network, nyilvános adathálózat) és a PSTN (Public Switched Telephone Network, nyilvános kapcsolat telefonhálózatok között).
CCITT V.110 ISDN terminál átdolgozás.
CCITT V.120 ISDN terminál átdolgozás statisztikai multiplexeléssel. 
CCITT V.230 Általános adatkommunikációs interfész 1. rétegének leírása.

A következő részben megvizsgáljuk, hogy hogyan képesek a mai analóg modemek az elméleti 56 kbit/s-os sebesség elérésére.