10 Gigabyte per Second in Perspective: A Moving Story

A négyrészes blogbejegyzés első részében egy olyan hipotetikus robotot írtunk le, amely képes 10 GB/s sebességgel videókat nézni. Ahhoz, hogy teljes mértékben megértsük, mit jelent ez a 10 GB/s, további három résszel egészítettük ki a bejegyzést. A második részben definiáltuk a biteket és a bájtokat, amelyek az adatok alapegységei, valamint ezen egységek néhány többszörösét. A harmadik rész bemutatta a többszörös előtagok különböző definícióit, mint például a mega- és giga-. Ez a negyedik és egyben utolsó rész az átviteli sebességben használt mértékegységeket vizsgálja, és azt, hogy ezek hogyan alkalmazhatók különbözőképpen a hálózatokra és a tárolóeszközökre.

Az írás idején, 2017 elején az ausztráliai Adelaide egy 10 Gb/s sebességű szélessávú hálózat kiépítésének terveit követte. A megcélzott sebesség lenyűgöző, és bár ez hasonlóan hangzik, mint a Seagate SSD 10 GB/s-os átviteli sebessége a mi hipotetikus filmfüggő robotunkban, a kettő biztosan nem ugyanaz. Mindkét példa az adatátviteli sebességről beszél, tehát hasonlítanak egymásra – de nagyon is különböznek egymástól. A négyrészes blog utolsó részében nemcsak a kettő közötti hasonlóságokat és különbségeket mutatjuk be, hanem azt is, hogy miért használnak egyáltalán különböző mértékegységeket a mérésükhöz.

Minden, kivéve a konyhai mosogatót

Mielőtt belemerülnénk az adatátvitel apró részleteibe a tárolók és hálózatok vonatkozásában, nézzük meg, hogyan folyik a víz a konyhában. A vízcsapod lehet, hogy mondjuk 2 g/m-re van méretezve. Ez azt jelenti, hogy úgy tervezték, hogy a víz a fúvókán keresztül elméletileg maximum 2 gallon víz folyjon át percenként. Előfordulhat azonban, hogy nem ezt az arányt kapja, mivel a vízáramlást bármely adott pillanatban veszélyeztethetik olyan tényezők, mint a csaptelep fejében felhalmozódott ásványi anyagok, a lakásban uralkodó alacsony általános víznyomás vagy a csövek eltömődése. Egy vízvezeték-szerelő, aki diagnosztizálja a problémáját, talán azt mondaná, hogy a víz inkább 1 g/m sebességgel folyik ki a csapból.

Hogyan kapcsolódik ez az adatokhoz?

A folyási sebességet mindig valamilyen mennyiségben mérik egy bizonyos időtartam alatt. Az adatok esetében ezeket az áramlási sebességeket sávszélességként vagy áteresztőképességként fejezik ki, mindkettő az adott idő alatt mozgatható információ mennyiségét méri. Bár ezt a két kifejezést gyakran felváltva használják, valójában eléggé különböznek egymástól.

A sávszélesség azt az elméleti maximális adatátviteli sebességet írja le, amelyre egy kapcsolatot terveztek, hasonlóan a csaptelep vízátfolyási teljesítményéhez. De ahogyan külső tényezők, például a WC-öblítés vagy a csövek szivárgása megakadályozhatja, hogy a csap a maximális vízhozamot adja, úgy az adathálózatok és számítógépek világában olyan tényezők, mint a protokollköltség, a hálózati késleltetés és a megbízhatóság – többek között – gyakran összeesküsznek, hogy az adatkapcsolat soha ne tudja kihasználni a benne rejlő lehetőségeket. Egy másik kifejezést, az áteresztőképességet, a kapcsolaton átmenő tényleges adatmennyiség leírására használják, mint a vízvezeték-szerelője által a vizsgálat során mért vízhozamot.

A méret számít

A sávszélességet és az áteresztőképességet is általában valamilyen bit/másodperc (b/s) vagy bájt/másodperc (B/s)-Mb/s, MB/s, Gb/s, GB/s stb. formában mérik. Figyeljük meg a különbséget: a kis b a biteket, a nagy B a bájtokat jelöli. Gyakran találkozhatunk mindkét mértékegységben kifejezett adatátviteli sebességgel.

Az Adelaide hálózat és a Seagate SSD példájában használt mérőszámok egyaránt adatátviteli sebességet írnak le, de az egyik a gigabitet, a másik pedig a gigabájtot használja mértékegységként. Amint a 2. részből emlékezhet, manapság a bájtot leggyakrabban 8 bitként határozzák meg. Tehát általában a bitekről bájtokra való átváltáshoz a bitek számát el kell osztani 8-cal, a bájtokról bitekre való átváltáshoz pedig a bájtok számát meg kell szorozni 8-cal. Ne feledje, ez egy nagyon általános szabály, és később megnézünk egy figyelemre méltó kivételt, amikor az adatátviteli sebességről van szó.

Most, hogy már tudja, hogyan kell ezeket a mértékegységeket átváltani, nézzük meg, miért mérik őket egyáltalán különbözőképpen.

Az általános ökölszabály:

A memória és a tárolás esetében az adatátviteli sebességet általában másodpercenkénti bájtban fejezik ki; a hálózatok és interfészek esetében az adatátviteli sebességet általában másodpercenkénti bitben fejezik ki.

Egy gyakori tévhit, hogy a hálózati vagy internethez kapcsolódó területeken működő vállalatok másodpercenkénti biteket használnak, hogy elhitessék az ügyfelekkel, hogy a hálózati sebességek valójában sokkal gyorsabbak, mint amilyenek valójában. Az indoklás szerint mivel a 8 Gb/s sokkal jobban hangzik, mint az 1 GB/s, az ügyfelek azt fogják hinni, hogy a kapcsolat sebessége gyorsabb, mint amit valójában kapnak. Ez azonban nem marketingfogás. Ha ez így lenne, akkor ugyanezeknek az embereknek, akik így gondolják, akkor meg kellene kérdezniük, hogy a memória- és tárolócégek marketingcsoportjai miért nem alakítanak át mindent bitekre is. A különbségek oka elemi, mint alább látni fogjuk.

Bájtok a számítógépek számára

Amikor a számítógép és a memória vagy a tároló közötti adatátvitelről beszélünk, az átvitelt többnyire másodpercenkénti bájtokban fejezik ki. A 2. részben láttuk, hogy a bájt a számítógépes memória és tárolóeszközök legalapvetőbb címezhető adategysége, ezért a számítógépeket elsősorban a bájtok érdeklik. És ahogy a 3. részben láttuk, amikor a számítógépek a memóriában lévő adatokhoz hozzáférnek, ezt bájtszinten teszik. Ha tehát arra utasítjuk a számítógépet, hogy azonosítson vagy manipuláljon egy egyedi bitet, akkor először hozzá kell férnie ahhoz a bájthoz, amelyhez tartozik, majd egy további műveletet kell végrehajtania az adott bit elkülönítéséhez. Továbbá, mivel a fájlokat is azzal mérik, hogy hány bájtot tartalmaznak, a másodpercenkénti bájtban kifejezett átviteli sebesség hasznos annak kiszámításához, hogy mennyi időbe telik egy fájl másolása a számítógépes rendszer egyik részéből a másikba. Ezt leggyakrabban átviteli sebességként fejezik ki.

A szabvány jól működik egyetlen rendszeren belüli fájlátvitelre, mivel a számítógép általában ugyanazt a nyelvet beszéli, mint az összes perifériás eszköz. De más szempontok merülnek fel, amikor azt vizsgáljuk, hogyan történik az adatátvitel teljesen különböző számítógépes rendszerek között vagy egy hálózaton keresztül.

Bits a hálózatokhoz

A hálózati kapcsolatoknál – vagy bármely olyan helyzetben, amikor két vagy több számítógépet vezetéken vagy levegőn keresztül összekapcsolnak az adatok megosztása céljából – az átviteli sebességet hagyományosan másodpercenkénti bitben fejezik ki. Ennek az az oka, hogy ellentétben magukkal a számítógépes rendszerekkel, a hálózaton keresztül mozgó adatok átvitele sorozatosan, azaz bitenként történik, nem pedig bitdarabokban, azaz egyszerre egy vagy több bájtban.

Amint azt a 2. részben is láttuk, a bájt mérete történelmileg hardverplatform-függő volt. Egyes számítógépeknek 4 bitre volt szükségük a bájtjukhoz, másoknak 6 bitre, megint másoknak pedig 8 bitre. Így amikor az adatokat egyik számítógépről a másikra továbbították, nem volt célszerű az átvitelt a bájtok számában mérni, mert a küldő számítógép bájtja ésszerűen más méretű lehetett, mint a fogadó számítógép bájtja!

Még azután is, hogy a 8 bit lett a bájt de facto szabványdefiníciója, még mindig kevés értelme volt az adatátvitelt bájtokban kifejezni. A hálózati mérnökök az átviteli sebességet bit/másodpercben mérik, mert ez tükrözi legpontosabban a hálózati kapcsolat tényleges képességét az összes szükséges adat átvitelére, nem csak a fájl(ok) adatainak átvitelére. A legtöbb hálózati kommunikáció során a kapcsolaton keresztül küldött bitek nem mindegyike része az átvitt fájloknak. A hálózat gyakran alkalmaz kódolási sémákat, amelyek minden egyes küldött bájthoz további biteket csatolnak. Ezek a plusz bitek olyan információkat tartalmaznak, amelyekre a hálózatnak többek között azért van szüksége, hogy biztosítsa, hogy az adatokat a megfelelő címzettnek küldték el, és hogy megerősítse, hogy az adatokat hibátlanul küldték el és rendben fogadták.

Egy gyakori kódolási séma az úgynevezett 8b/10b, amely azért kapta a nevét, mert a kapcsolaton keresztül küldött minden 8 bithez 2 bitet csatolnak metaadatként – más szóval minden 8 bites bájthoz 10 bit adatot küldenek. Ezzel a kódolási sémával csak az adatok megbízható átvitele a hálózaton 20 százalékos többletköltséggel jár. Bár elméletileg Adelaide szélessávú, 10 Gb/s sebességű hálózatra irányuló törekvései bájtokban mérve körülbelül 1,25 GB/s-os sebességet jelentenének (10 Gb osztva 8-cal), a 20 százalékos többletköltséget figyelembe véve ez inkább 1 GB/s-nak felelne meg. Más sémák is egyre inkább előtérbe kerülnek, leginkább a PCIe 3.0 szabvány által elfogadott séma, amely 128b/130b-t használ. Kitalálta; ez azt jelenti, hogy minden 128 bit adathoz 2 bit overheadet csatolnak. Az újabb séma hatékonyabb, mint a 8b/10b szabvány, mivel a frissítés a korábbi 20 százalékkal szemben csak körülbelül 1,5 százalékos rezsicsökkentést eredményez.

End of the Line

A technológiák és az azokat leíró terminológiák megértése nagyon zavaros lehet, ha nem figyelünk oda. Ez különösen igaz akkor, amikor az adatátvitelről van szó. Sajnos, bár a gigabájt és a gigabit nagyon különböző egységek hasonló, de különböző dolgok mérésére, a való világban az emberek gyakran ugyanúgy rövidítik a 10 GB/s és a 10 Gb/s kifejezést: “10 gigaként.”

Most azonban remélhetőleg nagyon világos fogalma lesz arról, hogy a robot, aki azt hirdeti, hogy 10 gigás átviteli sebességgel nézte a Netflix-filmjeit, teljesen mást mond, mint az ausztrálok, akik hamarosan azzal hencegnek, hogy 10 gigás hálózaton vannak, haver.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.