Homelab / InfraAI-generated

Hoe glasvezel thuis werkt: GPON uitgelegd

Een glasvezelaansluiting voelt als een eigen lijn: één vezel die je huis binnenkomt en eindigt in een kastje. Bij GPON klopt dat maar half. Een eind verderop komt jouw vezel samen met die van tientallen buren, in een splitter zonder stroom, en vanaf daar delen jullie één vezel naar de centrale. Iedereen ontvangt al het verkeer van iedereen, en toch hoort niemand wat de buren doen.

In dit artikel zie je wat een passieve splitter met het licht doet, hoe tientallen huizen om de beurt terugzenden zonder te botsen, en waarom de centrale daarvoor jouw afstand tot op een paar meter moet kennen. Alles komt uit de ITU-T-normen G.984.1, G.984.2 en G.984.3. De rekensommen heb ik zelf in Python gedaan.

Wat GPON is: één vezel voor een hele boom

GPON (Gigabit-capable Passive Optical Network) is een boom van vezels. Aan de wortel staat de OLT (optical line termination) in de centrale. Aan elk blad zit een ONU (optical network unit). Bedient zo'n ONU één abonnee, dan heet hij ONT: het kastje waar de vezel in huis eindigt. Daartussen ligt het ODN, het optische distributienetwerk: vezels plus passieve onderdelen zoals splitters en filters.

G.984.1 legt de grenzen vast. De vezel tussen OLT en ONU is maximaal 20 kilometer, met 10 kilometer als optie. Het verschil tussen de dichtstbijzijnde en de verste ONU mag ook 20 kilometer zijn. Splitverhoudingen tot 1:64 noemt de norm realistisch.

Beide richtingen gaan over dezelfde vezel, op verschillende golflengtes. Naar beneden zendt de OLT tussen 1480 en 1500 nanometer, naar boven zenden de ONU's tussen 1260 en 1360 nanometer (G.984.2). Waarom die infrarode golflengtes, staat in het artikel over hoe glasvezel licht geleidt.

De splitter: passief, en dat kost licht

Een optische splitter verdeelt het licht over zijn uitgangen, zonder elektronica en dus zonder te kiezen wie wat krijgt. Bij een ideale 1:32-splitter krijgt elke uitgang een tweeëndertigste van het licht. Dat is 15,05 dB verlies, en elke verdubbeling van het aantal uitgangen kost 3 dB extra.

Daarom heeft GPON een verliesbudget. De variant die G.984.2 aanbeveelt voor de gangbare snelheden, klasse B+, laat tussen OLT en ONU minimaal 13 en maximaal 28 dB verlies toe. Een rekenvoorbeeld: 20 kilometer vezel met 0,35 dB/km bij 1310 nanometer (het maximum uit de datasheet van Prysmian) kost 7 dB. Met een ideale 1:32-splitter erbij kom je op 22,05 dB, met 1:64 op 25,06 dB. Wat overblijft van de 28 dB is marge voor de rest van het pad, zoals verbindingen tussen vezels.

Ook de ondergrens van 13 dB heeft een reden. Volgens dezelfde B+-tabel zendt de OLT met maximaal +5 dBm, en hoeft een ONU niet meer dan −8 dBm te verdragen. Dat verschil is precies 13 dB: een ONT vlak naast de centrale zonder splitter zou overstuurd raken.

Downstream: iedereen krijgt alles

De OLT zendt continu 2,48832 Gbit/s, in frames van 125 microseconde en 38.880 bytes. De splitter stuurt dat licht naar alle huizen, dus elke ONT ontvangt elk frame en haalt er alleen uit wat voor hem bestemd is.

G.984.3 zegt het zelf: wie zijn ONU herprogrammeert, kan al het downstream-verkeer van de buren meelezen. Daarom wordt de inhoud versleuteld met AES in counter-mode, met een sleutel van 128 bits. Alleen de inhoud van elk pakketje (de payload van een GEM-frame) is versleuteld. De header niet. Daarin staat het Port-ID, en een ONT laat alleen pakketjes door met een Port-ID dat de OLT aan hem heeft toegewezen.

De sleutel zelf gaat in de omgekeerde richting, van ONT naar OLT. Volgens de norm kan dat zonder versleuteling. Licht dat een ONT naar boven stuurt, gaat via de splitter naar de centrale, niet naar de andere huizen. Iemand die de gedeelde vezel op straat aftapt, noemt G.984.3 geen realistische dreiging.

Upstream: om de beurt, op afspraak

Naar boven is het lastiger. Zenden twee ONT's tegelijk, dan komt hun licht door elkaar bij de OLT aan en is allebei onleesbaar.

Wifi lost zo'n gedeeld medium op met luisteren en wachten. GPON roostert in. Elk downstream-frame begint met een kop die alle ONT's lezen. Daarin staat de bandwidth map, een lijst met regels van 8 bytes. Elke regel zegt: dit Alloc-ID mag beginnen bij byte zoveel en stoppen bij byte zoveel. Zo zendt er volgens G.984.3 bij normaal gebruik steeds maar één ONU.

Eén byte per frame van 125 microseconde is 64 kbit/s: de fijnste stap waarmee de OLT capaciteit kan toewijzen. Wie hoeveel krijgt, bepaalt de OLT met dynamic bandwidth assignment (DBA), op basis van wie verkeer heeft en welk contract daarbij hoort. Het algoritme laat de norm aan de fabrikanten over.

Elke uitzending van een ONT is een korte burst met een vaste aanloop. G.984.2 beveelt bij 1,24416 Gbit/s upstream 96 bits aan: 32 bits guard time waarin de ONT niets uitzendt, 44 bits preamble waarop de ontvanger zijn niveau en klok afstelt, en 20 bits delimiter die het begin van de data markeert.

Ranging: waarom de centrale je afstand moet weten

Licht doet in deze vezel ongeveer 4,9 microseconde over een kilometer (groepsindex 1,467 bij 1310 nanometer, uit de datasheet). Een ONT op 20 kilometer heeft heen en terug dus 196 microseconde aan looptijd. Dat is langer dan een heel frame. Een ONT op 1 kilometer zit op 10 microseconde. Zenden beide op het moment dat de kaart zegt, dan komen ze op totaal verschillende tijden aan.

Daarom meet de OLT bij elke nieuwe ONT eerst de round-trip delay. Eerst luistert de nieuwe ONT naar de parameters die de OLT steeds uitzendt. Dan vraagt de OLT met een broadcast welke onbekende ONT's er zijn, en de nieuwe meldt zich met zijn serienummer. Omdat de OLT nog niet weet wanneer dat antwoord binnenkomt, laat hij alle andere ONT's even zwijgen: een quiet window. Daarna stuurt de OLT een gerichte vraag, meet precies hoe lang het antwoord duurt, en stuurt de ONT een equalization delay.

Daardoor gedragen alle ONT's zich alsof ze op dezelfde afstand liggen: de dichtbije wacht lang, de verre kort.

Hoe nauwkeurig moet dat? 32 bits guard time bij 1,24416 Gbit/s is 25,7 nanoseconde. Omdat het om heen en terug gaat, komt dat overeen met zo'n 2,6 meter vezel. Ligt een ONT zonder correctie 2,6 meter verder dan gedacht, dan is de hele guard time al opgebruikt.

Hoeveel snelheid blijft er per huis over

De gangbare GPON-snelheid volgens G.984.1 is 2,4 Gbit/s naar beneden en 1,2 Gbit/s naar boven, precies 2,48832 en 1,24416 Gbit/s. Delen 32 huizen die capaciteit en trekken ze allemaal tegelijk vol, dan heeft elk 77,76 Mbit/s downstream en 38,88 Mbit/s upstream, bruto. Bij 1:64 is het de helft. Maar upstream gaat de tijd via DBA naar wie verkeer heeft, dus dit geldt alleen als iedereen tegelijk alles wil.

Naast GPON: XGS-PON op dezelfde vezel

De opvolger XGS-PON (G.9807.1) haalt 10 Gbit/s in beide richtingen, over dezelfde vezels en splitters maar op andere golflengtes: 1575 tot 1580 nanometer naar beneden en 1260 tot 1280 nanometer naar boven. GPON-ONT's met een gewone DFB-laser blijven volgens G.984.5 tussen 1290 en 1330 nanometer, zodat er ruimte tussen zit. Volgens G.9807.1 kan een operator zo huis voor huis overstappen, terwijl de buren gewoon op GPON blijven.

Zelf proberen

Het verlies van een ideale splitter:

python3 -c "
import math
for n in (2, 8, 32, 64):
    print(f'1:{n:<3} {10*math.log10(n):5.2f} dB, {100/n:5.2f}% licht per uitgang')
"
1:2    3.01 dB, 50.00% licht per uitgang
1:8    9.03 dB, 12.50% licht per uitgang
1:32  15.05 dB,  3.12% licht per uitgang
1:64  18.06 dB,  1.56% licht per uitgang

De looptijd heen en terug, en de guard time omgerekend naar vezel:

python3 -c "
us_km = 1e6 / (299792.458 / 1.467)
for km in (1, 10, 20):
    print(f'{km:>2} km: {2*km*us_km:6.1f} us heen en terug')
guard_ns = 32 / 1.24416e9 * 1e9
print(f'guard time: {guard_ns:.1f} ns = {guard_ns / us_km / 2:.1f} m vezel')
"
 1 km:    9.8 us heen en terug
10 km:   97.9 us heen en terug
20 km:  195.7 us heen en terug
guard time: 25.7 ns = 2.6 m vezel

Tot slot

Wat me verraste, is hoe weinig er in het veld gebeurt. De splitter is glas zonder stroom. Alle intelligentie zit in de centrale: die roostert elke 125 microseconde in wie mag zenden, en kent van elk huis de afstand tot op een paar meter. En de beveiliging rust op natuurkunde. De sleutel mag onversleuteld naar boven, omdat een splitter licht van een huis wel naar de centrale stuurt, maar niet terug naar de buren.