Az adatáteresztő képesség mérése

A Wikipédiából, a szabad enciklopédiából
(Az adatáteresztőképesség mérése szócikkből átirányítva)

Gyakran felmerül egy adatátviteli kapcsolat esetén a maximális adatáteresztő képesség meghatározása. Egy tipikus áteresztőképesség-mérési módszer: "nagy" fájlok átviteli idejének mérése. Az áteresztőképesség a fájl hosszának az átviteléhez szükséges idővel való osztásával megabit- kilobit- vagy bit per másodpercben adódik (amennyiben a fájl hosszát bitben adjuk meg). A sebesség jelölése a fenti sorrendben: Mbps, kbps és bps.

Az előzőek alapján számított eredmény gyakran kisebb, mint a várt érték, ami azt az érzést kelti, hogy az adott kapcsolat nem működik megfelelően. Tény, hogy egy átvitel során számos "overhead" jelentkezik, ezért a számított áteresztőképesség nem jellemző a valós helyzetre.

Elnevezések[szerkesztés]

Az első dolog, amit ellenőrizni kell, a fájl hossza. Egy adatátviteli kapcsolat áteresztőképességét bit per szekundumban (bit/s), kilobit per szekundumban (kbit/s), megabit per szekundumban (Mbit/s) vagy Gigabit per szekundumban (Gbit/s) mérik. Ebben az értelemben a kilo, mega és giga a szokásos SI prefixumok, és 1000-rel (kilo), 1 000 000-val (mega) és 1 000 000 000-dal (giga) való szorzást jelentenek. A fájl hosszát azonban tipikusan byte-okban – kilobyteokban, megabyteokban, és gigabyteokban adják meg. Itt egy byte nyolc bitet jelent. Ezen kívül, további zavart jelent, hogy egy kilobyte nem 1000 byte, ahogyan várhatnánk. A számítástechnikai iparban a kilo prefixum 1024-gyel (2 a 10. hatványon) való szorzást jelent, az 1000 helyett. Hasonlóan, a mega 1024 × 1024-gyel való szorzást jelent, és a Giga 1024 × 1024 × 1024-gyel való szorzás. A fentiek szerint tehát a 64 kilobyte hosszúságú fájl valójában 64 × 1024 byte, vagy 64 × 1024 × 8 bit.

A fenti elv alól általában kivétel a merevlemezek kapacitásának adata: a gyártók és a marketing anyagok a tízes alapú mértékegységekben adják meg a merevlemez-kapacitásokat. Így például 60 gigabyte-os egység kapacitása 60 000 000 000 byte, a 64 424 509 440 byte helyett.

Kibi, mebi, gibi, tebi és pebi prefixumok[szerkesztés]

Az alap szócikk: Bináris prefixum

Kibi, mebi, gibi, tebi, pebi és exbi érvényes bináris prefixumok 1998-óta, ekkor fogadta el az International Electrotechnical Commission (IEC), hogy megszüntesse a ellentmondást és a zavart a tízes alapú (decimális, tíz hatványainak használata) és a kettes alapú (bináris, 2 hatványainak használata) között.

Jelenleg a prefixumok, illetve szorzók, a kilo- (k vagy K), mega- (M), giga- (G), tera- (T), peta- (P) és exa- (E) használata nem egyértelmű. A legtöbb fizikai vagy azzal kapcsolatos tudományterületen, a mértékegységeknél a 10 hatványait használják. Ha viszont bitekről, byte-okról van szó, akkor – többnyire – a 2 megfelelő hatványait használják. A következő tábla a gyakran használt prefixumokat és azok jelentéseit mutatja.

Prefixum Szimbólum(ok) 10 hatvány 2 hatvány
kilo- k vagy K (1) 10^3 2^10
mega- M 10^6 2^20
giga- G 10^9 2^30
tera- T 10^12 2^40
peta- P 10^15 2^50
exa- E 10^18 (2) 2^60
zetta- Z 10^21 2^70
yotta- Y 10^24 2^80

(1) k = 10^3 és K = 2^10

(2) Nem használatos áteresztőképesség mérésénél

A 10 hatványokon alapuló szorzók és a 2 hatványokon alapuló szorzók többnyire, de nem minden esetben azonos prefixumokat használnak. Például a 10-es hatvány alapú kilo- (k) 1000-ret jelent, míg a 2-es hatvány alapú (K) 1024-et. Ha ez önmagában nem lenne elég zavaró, akkor még figyelembe kell venni, hogy ha az áteresztőképesség egy kilobit per szekundum (1 kbit/s), az elemzők általában 1000 bit per szekundumot (10^3 bit/s) értenek, viszont egy kilobyte-os (1 KB) tárolt adat alatt általában 1024 byte-ot (2^10 byte) értenek. Ennek a meglévő kettősségnek a megszüntetését szolgálja (ahogyan néhány számítógép szakember hiszi) egy speciális prefixum rendszer bevezetése, amely minden esetben bináris mennyiségekre vonatkozik. A javasolt séma a következő:

Teljes technikai név Javasolt prefixum Javasolt szimbólum Szorzó
kilobinary kibi- Ki 2^10
megabinary mebi- Mi 2^20
gigabinary gibi- Gi 2^30
terabinary tebi- Ti 2^40
petabinary pebi- Pi 2^50
exabinary exbi- Ei 2^60

A fenti prefixumrendszer használat esetében egyszerűen tudni lehet, hogy ha egy mérnök most decimális vagy bináris szorzókról beszél vagy ír. Pontosan tudni fogjuk, hogy egy kilobit per szekundum (1 kbit/s) az 1000 bit/s, és egy kibibyte (1 KiB) az 1024 byte-ot jelent, például.

Zavarok és többértelműségek a prefixumok használatában[szerkesztés]

Az emberek többnyire az általánosan használt rövidítéseket használják. A file hosszak esetében, általában mindenki az mondja, hogy van egy '64 kilós' file (ez 64 kilobyte-ot jelent), vagy egy '100 megás' file (ez 100 megabyte-ot jelent). Ha most sávszélességről beszélünk, akkor az emberek nagy többsége átváltás nélkül használja ezeket a kifejezéseket az áteresztőképességgel, a sávszélességgel és a sebességgel kapcsolatosan, és vonatkoztatja ezeket az eszközökre, hogy ez egy '64 kilós' áramkör, vagy egy '2 megás' áramkör – viszont a jelentésük 64 kbit/s vagy 2 Mbit/s. (lásd még eszközök sávszélessége alatt is.) Egy '64 kilós' eszköz ezért nem fog átvinni egy '64 kilós' file-t egy másodperc alatt. Sajnos, nem magától értetődő azok számára, akik nem járatosak a telekommunikációban és a számítástechnikában, hogy gyakran találkozni fognak ilyen érthetetlen dolgokkal. Tény viszont, hogy egy 64 kilós file legalább 64 × 1024 × 8 bit hosszú lesz, és egy 64 kilós áramkör 64 × 1000 bitet visz át másodpercenként (bit/s), így a 64 kilós file átviteli idejének hossza a 64 kilós eszközön legalább (64 × 1024 × 8)/(64 × 1000) másodperc lesz, azaz az átvitelhez az áramkörnek legalább 8,192 másodpercre lesz szüksége…

Adattömörítés[szerkesztés]

Néhány készülék adatátvitelkor adattömörítést végez. Ez a lehetőség főleg analóg modemekre és néhány népszerű operációs rendszerre jellemző. Ha egy 64 kB-os állományt valamilyen adattömörítő eljárással összenyomnak, akkor az átviteli ideje értelemszerűen lecsökken. Ez a tömörítés a felhasználó számára láthatatlanul történik, így egy jó tömörítő a vártnál lényegesen jobb átviteli időket produkálhat. A korrekt méréshez az átviteli időbe bele kell számítani a tömörítés idejét is, de még így is sokkal jobb átviteli idők nyerhetők. Mivel ezek a belső tömörítési eljárások nem, vagy csak nagyon nehezen kapcsolhatók ki, a korrekt méréseket célszerű vagy olyan fájllal végezni, ami nem tömöríthető, vagy már tömörített (pl. zip) fájlt kell küldeni. Így nagyjából korrekt eredmény érhető el.

Tételezzük fel, hogy az állomány nem lesz tömörítve, akkor a 64 kilobyte-os fájl egy 64 kilobit/s-os kommunikációs kapcsolaton való átviteléhez legalább 8,192 másodpercre lesz szükség, azonban ezt az értéket, ami legkisebb átviteli időnek is tekinthető, a gyakorlatban meg sem lehet közelíteni. Ennek az az oka, hogy az átvitel alatt járulékos adminisztrációs és egyéb tevékenységek is végrehajtódnak, amelyeket összefoglalóan overheadnek neveznek. Ezek a tevékenységek is többnyire láthatatlanok a felhasználó számára.

Overhead és adatformátumok[szerkesztés]

Egy általánosan használt kommunikációs kapcsolat az aszinkron start-stop, vagy ismertebb nevén az "aszinkron" soros vonal. Ha külső modemet használunk, csaknem biztosan az aszinkron soros vonalra csatlakozik, így a kapcsolat ezen az aszinkron vonalon keresztül fog lebonyolódni. A soros vonal nagy előnye az egyszerűsége – mindössze három vezeték szükséges hozzá: adás, vétel és egy közös föld vezeték. Az RS232 szerinti interfészen a semleges állapotot egy állandó negatív feszültség biztosítja. A 'nulla' bitet egy, a közös földhöz képest pozitív feszültség reprezentálja, az 'egy' bitet pedig egy negatív feszültség reprezentálja a közös földhöz képest, így tulajdonképpen megkülönböztethetetlen a semleges állapottól. Ez azt jelenti, hogy valamilyen módon meg kell tudni különböztetni, hol kezdődik az 'egy' bit, különbséget kell tenni az adatbit és a semleges állapot között. Erre az előzetes meghatározásra azért van szükség, hogy egyértelműen meghatározható legyen, mikor kezdődik egy byte, – a start bitnél, ami mindig 'nulla' értékű – és meghatározható legyen, mikor van vége a byte-nak -a stop bitnél, ami mindig 'egy' értékű (mivel negatív feszültség reprezentálja).

Még néhány dolgot azonban tisztázni kell – a bitátvitel sebességét, azaz az időegység alatt átvitt bitek számát, ami a 8 információs bit, a start és stopbitek, valamint a paritás bit. A dolgot némileg bonyolítja, hogy bizonyos rendszerek 1, más rendszerek (ezek a gyakoribbak) 2 stop bitet használnak. Így a következő jelölés 9600-8-E-2 azt jelenti, hogy 9600 bit per szekundumos sebesség, 8 bites karakterekkel, páros paritás (E az angol even, páros rövidítése), és 2 stop bit.

Egy tipikus aszinkron soros kapcsolat beállítása legyen 9600-8-N-1 (9600 bit/s, 8 bites karakter, nincs paritás, és 1 stop bit) – ez azt jelenti, hogy 10 bitet kell átvinni egy 8 bites karakter elküldése esetén (egy start bit, 8 információs bit, nincs paritás bit, és egy stop bit). Ez 25%-os overhead, így a 9600 bit/s-os soros átviteli vonal sebessége nem 9600/8 byte per szekundum (1200 byte/s) lesz, hanem csak 9600/10 bytes per szekundum (960 byte/s), ami jelentősen lassabb, mint amit vártunk.

De a dolgok még rosszabbak is lehetnek! Ha szükségesnek tartjuk a paritás ellenőrzést, és két stop bitet használ az átviteli eljárás, akkor az overhead-ek miatt a 8 információs bit átviteléhez még 4 újabb bit járul, (egy start bit, one paritás bit és két stop bit) – ez pedig már 50%-os overhead! Ebben az esetben a 9600 bit/s-os kapcsolat csak 9600/12 byte/s (800 byte/s)-es lesz. Az aszinkron soros interfészek általában a 230.4 kbit/s sebességhatárig használhatóak. Ha nem használunk paritás ellenőrzést, és egy stop bittel folyik az átvitel, akkor a tényleges átviteli ráta 23.04 kbyte/s.

Az aszinkron soros kapcsolat előnye az egyszerűsége. Egyik hátránya viszont az alacsony effektív átviteli sebesség. Ez a hátrány a szinkron interfész használatával megszüntethető. Ennél az interfész típusnál az órajeleket is átvisszük egy különálló vezetéken, és a bitek átvitele mindig szinkronban van az órajelekkel – az interfészen egy egyedülálló byte átviteléhez nem szükségesek start és stop bitek – a mechanizmus önmaga biztosítja a küldött és vett bitek szinkronitását, ezért az adatokat úgynevezett keretekbe tördelik, a kerethatárokat pedig ismert határolók jelölik, így több karakter egy csoportban vihető át, a szinkronitás (automatikus) fenntartása mellett. Három ilyen általánosan elfogadott kódolási sémát neveznek keretező eljárásnak – a HDLC-t, a PPP-t, és az Ethernet-et.

HDLC[szerkesztés]

A HDLC, használata esetén, nem minden egyes byte-ot lát el start, opcionálisan paritás és stop bitekkel, hanem a karaktereket összegyűjti egy-egy keretbe. A keret elejét és végét egy 'flag' (zászló) jelzi, és a hibaellenőrzésre a teljes keret rendelkezik egy ellenőrző összeggel. Ha minden keretnek van egy 32 bites címrésze, egy maximum 16 bites vezérlési része, és az ellenőrző összeg nem lehet nagyobb, mint 16 bit, akkor ez azt jelenti, hogy keretenként 64 bites overhead-del kell számolni. Ha egy egyedülálló byte-ot kell átvinni, akkor persze az overhead elfogadhatatlanul magas. Viszont, ha legalább 24 byte-ot összegyűjtünk egy keretbe, akkor már hatékonyabb, mint az aszinkron soros átvitel. A keretek hossza változó lehet, attól függően, mennyi a teljes átviendő byte mennyiség, viszont a változó méretek miatt a HDLC overhead-je nem állandó.

PPP[szerkesztés]

A "pont-pont protokoll" (PPP) nagyon hasonló a HDLC protokollhoz. A PPP-t az RFC 1570, RFC 1661 és RFC 1662 dokumentumok határozzák meg.

Ethernet[szerkesztés]

Ethernet a "helyi hálózatok" (LAN) technológiája, amelyik szintén keretező. Két rendszer között a keretek útja elektronikusan meghatározott, ami lehet a HDLC-n vagy a PPP-n is megvalósított, amit nagykiterjedésű hálózatoknál használnak. A megvalósítás módja nem befolyásolja az áteresztőképesség számítási módját. Az Ethernet egy megosztottan használt medium, így nem garantálható, hogy egyszerre csak két rendszer közötti kapcsolat bonyolódik le rajta, azaz nincs kizárólagos használati joguk a csatornára. Ha számos rendszer kísérel meg egyidejű átvitelt, akkor a párok közötti áteresztőképesség lényesen alacsonyabb lesz, mint az elérhető nominális sávszélesség.

Egyéb alacsony szintű protokollok[szerkesztés]

Nem csak a dedikált pont-pont kapcsolatok lehetnek a rendszerek között. A Frame Relay, az ATM, és az MPLS alapú szolgáltatások szintén használhatók. Hogy számítani vagy becsülni tudjuk az adat áteresztő képességüket, ismerni kell a keret/cella/csomag formátumok és technológiák megvalósításának részleteit.

Frame Relay[szerkesztés]

A Frame Relay egy módosított HDLC formátumú keretekben továbbítja az adatokat.

ATM[szerkesztés]

Az "asszinkron továbbítási mód" (ATM) teljesen eltérő módszert használ az adatok továbbításához. Változó hosszúságú keretek vagy csomagok helyett állandó méretű cellák szállítják az adatokat. Minden cella 53 byte hosszú, az első 5 byte a fejrész, a következő 48 byte hasznosítható adatok átvitelére. Általában egy adathálózatban a cellákban átvinni kívánt adatok hosszabbak, mint 48 byte, így a forrásadatot valahogyan szét kell tördelni ilyen méretre. Ez a folyamat az átvitt adatok szerint változik, így az ATM saját ATM Adaptation Layers használ. A folyamatot a legtöbb adatra az ATM Adaptation Layer No. 5-nek nevezett réteg vagy AAL5 definiálja.

Egy ATM kapcsolat áteresztőképességének becsléséhez ismerni kell, melyik ATM adaptációs (adaptation) réteg van használatban az adatátvitel folyamán.

MPLS[szerkesztés]

A Multiprotocol Label Switching (MPLS) hozzátesz egy szabványos fejlécet, amit 'címke' néven ismert egy létező adatcsomaghoz. Az MPLS-t használó rendszerek között lehet 'natív' kapcsolat, ekkor nincsen átviteli (transzport) protokoll, vagy az MPLS címkézett csomagjait a frame relay vagy HDLC csomagok továbbítják. A pontos áteresztőképesség számításhoz ismerni kell, melyik konfigurációban dolgozik a rendszer, mert a címkék hozzáadása csak növeli a overhead-et, ha pedig kihasználják az MPLS egy másik tulajdonságát, ami megengedi több címke használatát, az overhead csak tovább növekszik, míg a 'natív' használatnál nincs overhead növelő tényező.

Magas szintű protokollok[szerkesztés]

Néhány rendszer a fájl- és adatátvitelt úgy oldja meg, hogy az adatokat bemásolja a HDLC vagy PPP keretek 'adat' mezőibe – másik protokoll rétegek a HDLC és PPP keretek adatmezőin belül is különböző formátumokat használnak. A legismertebb ilyen protokoll az Internet Protocol (IP), amit az RFC 791 definiál. A protokoll overhead-je "rárakódik" az egyéb overhead-ekre.

Néhány rendszer egyszerűen bemásolja az adatokat az IP csomagokba, de használnak egy másik protokollt a két rendszer közötti kapcsolat menedzselésére – ez a TCP (Transmission Control Protocol), amit az RFC 1812 határoz meg. Járulékos overhead-del jár ez a megoldás is.

Végül, az utolsó protokoll réteg menedzseli a futó adat átviteli folyamatot. A legismertebb protokoll ezen a szinten a "File Transfer Protocol" (FTP), amit az RFC 959 határoz meg.