Pixelflut: Een weekend lang pingen op SURFnet Infinity

Deze blogpost is een samenwerking van Max Mudde, Edwin Verheul en Joachim Opdenakker.


Netwerk stress-test 

Bij een nieuw netwerk, en in het bijzonder een prachtige samenwerking met Nikhef voor het huisvesten van een van de core locaties, hoort natuurlijk een feestelijke opening, lees hierover meer op: https://www.surf.nl/nieuws/surf-brengt-hart-van-netwerk-terug-in-eigen-cooperatie

Maar als techneut wil je natuurlijk ook de techniek voor zich laten spreken. In samenwerking met Nikhef en Studenten Net Twente kwamen we op het idee om “moeilijk” verkeer door het SURFnet Infinity netwerk te loodsen. Zo konden we mooie grafiekjes te tonen tijdens de ceremonie, en achteraf “voor de lol” dit als een leuk internet-event publiek open te stellen.

Maar wat is nu “moeilijk” verkeer? Gigabits? Terabits? Alhoewel we een netwerk doorgaans bemeten aan de hand van bits per seconde, werkt een router niet met bits. Een router werkt met pakketjes. Elk pakketje, groot of klein, kost ongeveer evenveel werk: de router moet het ontvangen, de bestemming opzoeken, controleren of het pakketje door mag, counters bijwerken en het pakketje dan via de juiste poort doorsturen. Of dat pakketje nu 64 bytes of 1500 bytes is, maakt nauwelijks een verschil.

Normaal internetverkeer is een mix tussen grote en kleine pakketjes. Daarvoor rekenen we doorgaans met het concept IMIX, oftewel Internet Mix. Dit is een standaardverdeling van het verkeer dat in de praktijk waar te nemen is op netwerken. Als je hier het gemiddelde van neemt, kom je uit op een gemiddelde pakketgrootte van 350 à 400 bytes. Een verbinding met een capaciteit van 400 Gigabit per seconde, vol met IMIX verkeer, betekent dat de router om en bij de 140 miljoen pakketjes per seconden moet verwerken. 

Maar IMIX is natuurlijk niet genoeg, we willen tonen wat het netwerk kan. Enter: de pixelflut!

Wat is een pixelflut? 

Stel je een enorm digitaal schilderij voor waar iedereen op internet tegelijk op mag tekenen. Er is geen kwast of muis. Je tekent door berichtjes via het internet te sturen. Elk berichtje kleurt één pixel op het scherm. Het resultaat is live te volgen via een livestream. Dat is een pixelflut. Het idee komt uit de hackerscene en is een vaste attractie op hackerevenementen. 

Het scherm is gedeeld, dus iedereen kan elkaars werk overschrijven. Wil je dat jouw tekening blijft staan, dan moet je je pixels steeds opnieuw sturen, en sneller dan alle andere “pingers”. Zo ontstaat een vrolijke, chaotische wedstrijd. Deelnemers schrijven slimme programma’s die zoveel mogelijk berichtjes per seconde versturen. Daarmee is een pixelflut ook een uitstekende stresstest voor een netwerk. 

Wat is een ping? 

Een ping-pakketje is zowat het kleinste pakketje dat er bestaat. Bij dit SNT Pingtest zit alle informatie verwerkt in het bestemmingsadres, dus de inhoud van het pakketje kan leeg blijven. Om diezelfde 400 Gigabit per seconde verbinding te vullen met dergelijke ping-pakketjes, zal de router zowat 600 miljoen pakketjes per seconden moeten verwerken. Voor hetzelfde volume, heeft de router dus 4.28 keer zoveel werk als bij een IMIX aan verkeer.

Op een “gewone” pixelflut stuur je tekstopdrachten naar een server. De editie van afgelopen weekend, SNTPings van Studenten Net Twente, werkt anders: daar teken je met pings. 

Een ping is het simpelste berichtje dat je op internet kunt sturen. Het werkt een beetje zoals roepen “Hallo, ben je daar?” in een donkere ruimte. Je computer stuurt een klein pakketje naar een adres. Bestaat dat adres en is het apparaat bereikbaar, dan komt er een antwoord terug. Netwerkbeheerders gebruiken ping al decennia om te testen of een computer of server bereikbaar is en hoe snel de verbinding is. Op vrijwel elke computer zit een ping-commando ingebouwd. 

Hoe wordt een ping een gekleurde pixel? 

De truc zit in het adres waar je de ping naartoe stuurt, niet in de inhoud van het pakketje. 

Elk apparaat op internet heeft een IP-adres, te vergelijken met een postadres. De nieuwste versie, IPv6, heeft extreem lange adressen. Er zijn zoveel van dat er ruim genoeg is om informatie in het adres zelf te verstoppen. SNTPings maakt daar slim gebruik van. Een adres ziet er zo uit: 

2001:610:5ea:221e:<X>:<Y>:<B><G>:<R><A> 

De getallen zijn hexadecimaal geschreven, een telwijze die computers graag gebruiken (met 0–9 en a–f). Een voorbeeld: met 

ping6 2001:610:5ea:221e:0019:0019:00d1:ffff 

kleur je de pixel op positie (25, 25) knalgeel, in de huisstijlkleur van SNT. 

De ontvanger stuurt bij SNTPings géén antwoord terug. Hij leest alleen het adres waar de ping naartoe ging, haalt daar de positie en de kleur uit en kleurt de bijhhordende pixel op het canvas in. Eén ping is dus één pixel. Het scherm is 4K (3840 × 2160 pixels, ruim 8 miljoen pixels in totaal). Voor één complete afbeelding zijn dus miljoenen pings nodig, en die moet je blijven herhalen zolang anderen eroverheen tekenen. 

Een weekend lang pingen op SURFnet Infinity 

SNTPings werd georganiseerd ter ere van de lancering van SURFnet Infinity. Van vrijdag 9 oktober 18:00 uur tot en met zondag 11 oktober kon iedereen meedoen. Het was de grootste editie ooit. De ontvangende servers stonden bij Nikhef in Amsterdam. SURF en Nikhef leverden samen 10 × 400 Gbit/s aan verbindingen, en de ontvanger zelf kon tot 1,6 Tbit/s aan pings verwerken. Ter vergelijking: dat is duizenden keren meer dan een snelle glasvezelaansluiting thuis. 

Achter de schermen gebeurde er veel: 

  • SURFnet infinity router: Al het verkeer kwam eerst binnen op de SURFnet infinity peering router een HPE/Juniper PTX10002-36QDD. 
  • Nikhef router: Dat verkeer werd doorgestuurd naar de Nokia 7750 bij Nikhef. 
  • Bewaking: een deel van het verkeer ging naar een bewakingssysteem. Daarmee kon SNT zien wie wat tekende en waar nodig ongepaste inhoud blokkeren. 
  • Eerlijk spel: wie extreem hard pingde, kreeg kunstmatig meer pakketverlies. Hoe harder je pingt, hoe groter het deel dat onderweg “verdwijnt”. Zo maakten ook deelnemers met een gewone thuisverbinding een eerlijke kans. 
  • Tekenen: de pings die wel doorkwamen, gingen naar de “schilder-server”, die ze op het canvas zette. 
  • Uitzenden: een aparte server zond het canvas live uit naar de rest van de wereld. 

Statistieken 

Zoals je op de schermafbeelding hieronder kan zien, bereikte de maximale pakketsnelheid in de vroege uren van zondag 11 oktober 2026 zijn hoogtepunt: maar liefst 2.14 miljard pakketjes per seconde. Deze grafiek geeft de 8x400G poorten weer die SURF samen met Nikhef aanlegde.

Packet rate naar de Nikhef/SNT canvas servers.

Resulteerde in de volgende bit-rate:

Bit rate naar de Nikhef/SNT canvas servers.

Voor het inkomende verkeer waren er verschillende paden ter beschikking gesteld, waaronder een aantal internet exchanges, transit providers, en natuurlijk ook het SURFnet Ininfity productie netwerk:

Resultaat

Het resultaat was een weekend vol pixelkunst, logo’s en vooral veel chaos. Het mooiste is terug te zien in de timelapse, die het weekend 200 keer versneld laat zien. Ondertussen bewees het nieuwe netwerk dat het zulke enorme hoeveelheden verkeer zonder problemen aankan.