A TCP átviteli sebesség elméleti és gyakorlati korlátai
Egy hálózati kapcsolaton keresztüli adatátvitel sebességét a gyakorlatban ritkán határozza meg kizárólag a szolgáltató által ígért névleges sávszélesség. Amikor egyetlen TCP-folyamon keresztül mozgatunk adatokat, a tényleges teljesítményt három egymástól független fizikai és protokollszintű korlát legkisebbike fogja meghatározni. Ezek a kapcsolati kapacitás (a protokoll-többlet levonása után), a fogadó ablak mérete a hálózati késleltetéssel összefüggésben, valamint a csomagvesztés mértéke.
A hálózati kapcsolatok tervezése és hibaelhárítása során elengedhetetlen ezen tényezők számszerűsítése. A Network Latency Bandwidth Calculator segítségével pontosan azonosítható, hogy egy adott hálózati útvonalon mi képezi a szűk keresztmetszetet, mekkora a várható TCP átviteli sebesség, és mennyi időt vesz igénybe egy meghatározott méretű adathalmaz átvitele.
A kalkulátor bemeneti paraméterei
A pontos számítások elvégzéséhez a hálózati útvonal, az átvinni kívánt adatmennyiség és a TCP protokoll paramétereinek megadása szükséges:
- Kapcsolati sebesség: A hálózati útvonal legszűkebb keresztmetszete, azaz a leglassabb szakasz névleges sávszélessége. A megadható értéknek nagyobbnak kell lennie nullánál.
- Körülfordulási idő (RTT): A hálózati pingidő a távoli végpontig, a terhelés alatt várható legnagyobb értékkel számolva. Értékének nagyobbnak kell lennie nullánál.
- Adatméret: Az átvinni kívánt hasznos teher, például egy fájl vagy biztonsági mentés mérete. Értékének nagyobbnak kell lennie nullánál.
- Fogadó ablak: A fogadó fél által pufferelhető bájtok száma. Az értéknek nullánál nagyobbnak kell lennie, és nem haladhatja meg az 1,073,725,440 bájtot. Ha üresen marad, a kalkulátor nem számol ablakméret-korláttal.
- MSS (bájt): A maximális szegmensméret, azaz a csomagonkénti hasznos teher bájtban. Értékének 1 és 65,495 közötti egész számnak kell lennie. Üresen hagyása esetén a számítás figyelmen kívül hagyja a protokoll-többletet és a csomagvesztést.
- Csomagvesztés (%): Az átlagos csomagvesztési valószínűség százalékos értéke. 0 és 100 százalék között kell mozognia; üresen hagyva vagy 0 értéket megadva a kalkulátor nem számol vesztési korláttal.
- Megjelenített tizedesjegyek: A kimeneti értékek tizedes pontosságának beállítására szolgál.
A felületen található egy Példa betöltése gomb a mintaadatok gyors betöltéséhez, valamint egy Törlés gomb a mezők alaphelyzetbe állításához.
Számított eredmények és kimenetek
A kalkulátor a megadott adatok alapján három fő kategóriába csoportosítva jeleníti meg az eredményeket:
Átviteli sebesség és átviteli idő
- Várható TCP átviteli sebesség: A ténylegesen elérhető sebesség, amely mellett megjelenik az aktív szűk keresztmetszetet jelző „korlátozó tényező:
‹constraint›” felirat. A korlátozó tényező lehet a kapcsolati kapacitás, a fogadó ablak vagy a csomagvesztés. - Átviteli idő: A teljes folyamat becsült időtartama.
- Első bájtig eltelt idő (1 RTT): A hálózati késleltetésből adódó kezdeti várakozási idő.
- Tömeges átviteli idő: Az adatfolyam tényleges átviteli ideje a kezdeti késleltetés nélkül.
- Sávszélesség-késleltetés szorzat (BDP): Az úton lévő adatok maximális mennyisége.
- A hálózat kihasználásához szükséges ablak: Az az ablakméret, amely elegendő a csatorna teljes kitöltéséhez.
- Ablakméret által korlátozott sebesség: A fogadó ablak által megengedett maximális elméleti sebesség.
- Vesztés által korlátozott sebesség (Mathis): A csomagvesztés miatti elméleti sebességplafon.
- Kapcsolati határérték a protokoll-többlet után: A fizikai vonal maximális sebessége a fejléc-többletek levonása után.
- Protokollhatékonyság: A hasznos teher aránya a teljes átvitt adatmennyiséghez képest.
Az eredmények kimásolását az Eredmény másolása gomb segíti.
Alkalmazott képletek és matematikai modellek
A kalkulátor a következő matematikai összefüggéseket használja a hálózati teljesítmény modellezésére:
- Fő képlet: átviteli sebesség = min(sebesség × hatékonyság, ablakméret ÷ RTT, MSS ÷ RTT ÷ √p) · BDP = sebesség × RTT
- Protokollhatékonyság:
Protokollhatékonyság = MSS ÷ (MSS + 78 B) =
‹mss›÷‹frame›=‹eff›(40 B csomagfejléc + 38 B fizikai átviteli többlet) - Kapcsolati határérték:
Kapcsolati határérték = sebesség × hatékonyság =
‹rate›×‹eff›=‹value› - BDP kiszámítása:
BDP = sebesség × RTT =
‹rate›×‹rtt›=‹bdp›=‹bytes› - Szükséges ablakméret:
A hálózat kihasználásához szükséges ablakméret = BDP ÷ 8 =
‹bdp›→‹window› - Ablak határérték:
Ablak határérték = ablakméret ÷ RTT =
‹window›÷‹rtt›=‹value› - Vesztési határérték (Mathis-képlet):
Vesztési határérték (Mathis) = MSS ÷ RTT ÷ √p =
‹mss›÷‹rtt›÷ √‹p›=‹value› - Várható átviteli sebesség:
Várható átviteli sebesség = a legkisebb határérték =
‹value›→ korlátozó tényező:‹constraint› - Átviteli idő:
Átviteli idő = RTT + 8 × méret ÷ átviteli sebesség =
‹rtt›+ 8 ׋size›÷‹throughput›=‹time›
Rendszerüzenetek és figyelmeztetések
A megadott értékektől függően a rendszer az alábbi dinamikus figyelmeztetéseket jelenítheti meg:
- Ha a hálózat kihasználásához szükséges ablakméret meghaladja a 65 535 bájtos alapértelmezett TCP-limitet: „A hálózat kihasználásához
‹window›ablakméret szükséges — ez meghaladja a 65,535 bájtos skálázatlan maximumot, így mindkét oldalon egyeztetni kell a TCP ablakskálázást (RFC 7323).”. - Ha a szükséges ablakméret meghaladja a protokoll által támogatott abszolút maximumot: „A hálózat kihasználásához
‹window›szükséges — ez meghaladja a TCP által egyeztethető legnagyobb ablakméretet (1,073,725,440 bájt). Egyetlen folyam ezen a hálózaton soha nem lépheti túl a következőt:‹value›.”. - Ha a fogadó ablak korlátozza az átvitelt: „A fogadó ablak növelése
‹window›értékre lehetővé tenné, hogy az átvitel elérje a(z)‹value›értéket.”. - Ha a megadott csomagvesztés túl magas: „Az 1% feletti vesztés kívül esik a Mathis-modell megbízható tartományán — kezelje a vesztési határértéket optimista becslésként.”.
Hálózati szabályok és korlátok
A kalkulátor használata során érdemes figyelembe venni az alábbi technikai szabályokat és egyszerűsítéseket:
- Decimális mértékegységek: Minden számítás decimális alapon történik (pl. 1 kbit = 1 000 bit, 1 MB = 1 000 000 bájt). A fájlkezelők ezzel szemben általában 1024-es alapú bináris egységeket használnak (ahol egy 100 MB-os fájl valójában 100 MiB, azaz körülbelül 104,86 decimális MB).
- Protokoll-többlet: A modell szabványos Ethernet hálózattal számol, amely csomagonként 78 bájt többletet jelent (40 bájt a TCP/IP fejléceknek, 38 bájt pedig a fizikai átviteli rétegnek).
- A Mathis-modell korlátai: A képlet egyenletesen eloszló, független csomagvesztést feltételez, és csak 1% alatti vesztési arány esetén ad megbízható eredményt. A valóságban előforduló szakaszos vagy csoportos vesztés a jósoltnál nagyobb teljesítménycsökkenést okozhat.
- Kizárt tényezők: A számítások állandósult állapotú, egyetlen TCP-folyamot feltételeznek. A valós hálózati átvitelek során fellépő lassú indítás (slow start), a torlódáskezelési algoritmusok finomhangolása, a lassú fogadó oldali feldolgozás és a TLS-kézfogások ideje kívül esnek a modell hatókörén, így a tényleges átviteli sebesség elmaradhat a számított elméleti maximumtól.
Adatkezelési nyilatkozat
A kalkulátor használata során megadott összes adat feldolgozása helyben, közvetlenül a felhasználó böngészőjében történik. Semmilyen beírt érték vagy számítási eredmény nem kerül továbbításra külső szerverekre, így az adatok teljes mértékben a felhasználó eszközén maradnak.
Gyakran Ismételt Kérdések
Miért lassabb az átvitelem, mint a fizetett kapcsolati sebességem?
Egyetlen TCP-folyamnak három független felső korláttal kell szembenéznie, és a legkisebb határozza meg a végeredményt. A protokoll overhead körülbelül 5%-kal csökkenti magát a kapcsolatot — egy szabványos Ethernet-keret 1,460 bájt hasznos terhet hordoz a fizikai vonalon lévő 1,538 bájtból. A fogadó ablak az átviteli sebességet az ablakméret ÷ RTT értékre korlátozza, így a klasszikus 65,535 bájtos ablak egy 50 ms-os kapcsolatot körülbelül 10.5 Mbit/s-ra korlátoz, bármilyen gyors is legyen a kapcsolat. A csomagvesztés pedig az (MSS ÷ RTT) ÷ √vesztés képlet szerint korlátozza azt. A fenti eredmény megmutatja, hogy az Ön számai alapján melyik határérték a szűk keresztmetszet.
Mi az a sávszélesség-késleltetés szorzat (BDP), és miért ez határozza meg az ablakméretet?
A BDP — a kapcsolati sebesség × körülfordulási idő — az egy időben úton lévő adatok mennyiségét jelenti. A TCP legfeljebb egy nyugtázatlan ablaknyi adatot tarthat függőben, így a BDP-nél kisebb ablak kihasználatlanul hagyja a csatornát: 100 Mbit/s sebességnél 50 ms-os RTT mellett a csatorna 625 kB-ot bír el, egy 65,535 bájtos ablak pedig alig a tizedét tölti meg. Ezért van szükség a gyors, nagy késleltetésű kapcsolatoknál TCP ablakskálázásra (RFC 7323), amely a maximálisan egyeztethető értéket 65,535 bájtról körülbelül 1 GB-ra emeli.
Hogyan korlátozza a csomagvesztés a TCP átviteli sebességét?
A TCP a csomagvesztést torlódásként kezeli, és minden vesztési eseménynél felére csökkenti a küldési sebességét, ezért gyors útvonalakon még az apró vesztési arányok is számítanak. A Mathis-modell a felső korlátot (MSS ÷ RTT) ÷ √p alakban becsüli — 0.01%-os vesztés mellett egy 50 ms-os, 1,460 bájtos MSS-ű útvonalon ez körülbelül 23 Mbit/s, a kapcsolat sebességétől függetlenül. A modell egyenletesen eloszló, független vesztési eseményeket feltételez; nagyjából 1% alatt jól követi a valóságot, lökésszerű vesztés esetén pedig optimistán becsül.
Ugyanazok a megabájtok itt, mint a fájlkezelőmben?
Nem egészen. Ez az oldal a hálózattechnikában szokásos decimális egységeket használja: 1 kbit = 1,000 bit, 1 MB = 1,000,000 bájt. A legtöbb fájlkezelő 1024-es alapú egységekkel számol, amelyeket gyakran tévesen MB-ként jelöl — az ottani „100 MB-os” fájl általában 100 MiB ≈ 104.86 decimális MB, így az átvitele körülbelül 5%-kal tovább tart, mint amit a decimális érték sugall. A pontos egyezéshez itt adja meg a 104.86 MB értéket.