Het optimaliseren van de apparaatconfiguratie voor betrouwbare IoT-connectiviteit

Als je je eigen IoT-hardware bouwt, is de verbindingslogica die je in de firmware programmeert belangrijker dan de simkaart die je erin plaatst. Met een roaming-simkaart heeft je apparaat toegang tot veel providers, maar het apparaat bepaalt zelf welke het gebruikt, wanneer het een nieuwe poging onderneemt en of het het opgeeft.

In deze handleiding worden de configuratieopties behandeld die bepalen of een vloot online blijft: netwerkprioritering, back-off bij herhalingspogingen, connectiviteitscontroles, sessiebeheer en firmwarebeleid.

Het apparaat kiest het netwerk, niet de simkaart

Dit is veruit het meest voorkomende misverstand, en het beïnvloedt de manier waarop je al het andere debugt.

Een Simbase-simkaart biedt toegang tot meerdere providers. Er wordt geen onderscheid tussen hen gemaakt. De modem beslist, op basis van zijn eigen logica: signaalsterkte, de lijst met providers die op het apparaat is opgeslagen, of het apparaat het netwerk eerder heeft gedetecteerd en hoe de firmware is geconfigureerd. Als een apparaat zich blijft verbinden met een zwak netwerk terwijl er een sterker netwerk beschikbaar is, is dat een probleem met de configuratie van het apparaat, en geen probleem met de simkaart.

Praktisch gezien: als je wilt dat een apparaat de voorkeur geeft aan een bepaalde provider, stel je dat in de firmware van de modem in, voor zover dat wordt ondersteund.

Stel een lijst met voorkeursnetwerken op, met een alternatief

De meeste wagenparken hebben niet voor niets een voorkeur voor bepaalde providers. Het kan zijn dat een apparaat bij de ene provider wel en bij de andere niet is gecertificeerd, of dat een commerciële overeenkomst de voorkeur geeft aan een bepaald netwerk. Een lijst met voorkeursnetwerken geeft dit weer, zonder dat u zich daarmee in een hoek laat drijven.

De volgorde waarin je de opdrachten moet doorlopen:

  1. Probeer het eerste voorkeursnetwerk

  2. Als dat niet lukt, probeer dan het volgende voorkeursnetwerk

  3. Ga door met de prioriteitenlijst totdat elk voorkeursnetwerk is geprobeerd

  4. Probeer elk beschikbaar netwerk dat niet in de lijst staat

  5. Als geen van deze opties is gelukt, begin dan opnieuw bij het eerste voorkeursnetwerk

Stap 4 is de stap die mensen vaak overslaan. Een apparaat dat zich uitsluitend met drie specifieke netwerken kan verbinden, heeft geen manier om weer online te komen als alle drie niet beschikbaar zijn – en dat is juist het moment waarop je het het hardst nodig hebt.


Spreid de herpogingen uit met een progressieve back-off

De timing van herhalingspogingen is waar goedbedoelde firmware daadwerkelijke schade aanricht. Een apparaat dat om de paar seconden een nieuwe poging doet, komt bij de roamingpartner over als een apparaat dat zich niet correct gedraagt, en roamingpartners reageren hierop door het apparaat tijdelijk of permanent te blokkeren. Het herstel hiervan verloopt traag en moet handmatig worden uitgevoerd.

Verleng de wachttijd tussen de pogingen elke keer:

  • Eerste nieuwe poging na 1 minuut

  • Tweede poging na 2 minuten

  • Derde poging na 4 minuten

  • Na een aantal volledige cycli moet je het gebruik terugschroeven tot een uur of meer, afhankelijk van hoe snel het apparaat moet herstellen

Het doel is om systematisch door de netwerken te schakelen, onmiddellijk weer verbinding te maken zodra er een netwerk beschikbaar komt, en nooit de indruk te wekken dat het apparaat het netwerk overbelast.

Door te vaak opnieuw te proberen kan een apparaat worden geblokkeerdRoamingpartners hanteren hun eigen limieten voor herhaalde mislukte verbindingspogingen. Een apparaat dat voortdurend nieuwe pogingen onderneemt, kan op netwerkniveau worden geblokkeerd, en die blokkering kan Simbase niet namens u opheffen. Back-off is een beveiligingsmaatregel, geen extraatje.

Wees voorzichtig met zwarte lijsten

Sommige apparaten bieden de mogelijkheid om netwerken rechtstreeks op een zwarte lijst te zetten. Dit kan handig zijn voor een netwerk dat voortdurend slecht presteert of waarmee je hardware echt niet compatibel is.

We raden aan voorzichtig te zijn, met name bij roamingtoepassingen. Elk netwerk op de zwarte lijst betekent één route minder naar connectiviteit, en zwarte lijsten hebben de neiging zich op te stapelen: ze worden tijdens een slechte week toegevoegd, nooit meer herzien en staan twee jaar later nog steeds in de firmware, terwijl dat netwerk juist het enige is dat een nieuwe locatie bestrijkt.

Geef de voorkeur aan een prioriteitenlijst waarop netwerken worden gerangschikt boven een zwarte lijst waarop ze worden verboden. Bij rangschikking verloopt de afbouw soepel. Bij blokkering is dat niet het geval.

Controleer de verbinding met ping-tests

Een apparaat kan op een netwerk zijn aangesloten, een vol signaal aangeven en toch geen werkende internetverbinding hebben.

Een periodieke ping naar een betrouwbaar doel, meestal de DNS-resolver van Google op 8.8.8.8, bevestigt dat het verkeer daadwerkelijk het internet bereikt en weer terugkomt. Een mislukte ping is een nuttige aanleiding om de verbinding te verbreken en de netwerkselectie opnieuw uit te voeren.

We raden aan om ten minste een ping-test uit te voeren eenmaal per uur, waarbij bij elke mislukking opnieuw verbinding wordt gemaakt. Stem de frequentie af op je databudget: elke test kost een kleine hoeveelheid data, en op een apparaat met een laag dataverbruik dat te vaak wordt getest, kunnen connectiviteitscontroles een merkbaar deel van de rekening gaan uitmaken. Zie Dataverbruik en overschrijdingen over de manier waarop sessies worden gemeten en afgerond.

Verbinding maken met een netwerk en een gegevenssessie openen zijn twee stappen

Voor volledige internettoegang zijn beide nodig, en als je ze door elkaar haalt, wordt het veel moeilijker om connectiviteitsproblemen op te sporen.

Verbinding maken met het netwerk

Het apparaat meldt zich aan bij een mobiel netwerk, net zoals een telefoon verbinding maakt met een nabijgelegen zendmast. Op dat moment heeft het apparaat bereik en is het bekend bij het netwerk, maar kan het nog geen gegevens verzenden.

AT+COPS=0

Hiermee wordt de modem gevraagd om automatisch een netwerk te selecteren.

Een PDP-sessie openen

Een Packet Data Protocol-sessie opent de gateway waarlangs de gegevens daadwerkelijk worden verzonden. Stel eerst de context in met je APN:

AT+CGDCONT=1,"IP","APN_NAME"

Activeer het vervolgens:

AT+CGACT=1,1

Vervangen APN_NAME met de APN voor je simkaartprofiel. De meeste profielen gebruiken simbase. Zie De APN instellen voor de APN die bij uw profiel en gebruikssituatie past.

Houd de sessie open

Door een PDP-sessie open te houden, wordt voorkomen dat er bij elke verzending opnieuw onderhandeld moet worden over een sessie. Dit heeft ook directe gevolgen voor de facturering: elke sessie wordt naar boven afgerond op 1 kB en de kosten worden berekend tot op vier decimalen, dus een apparaat dat voor elke kleine gegevensuitlezing een sessie opent en sluit, kost aanzienlijk meer dan op basis van de daadwerkelijke gegevenshoeveelheid zou worden verwacht. Voor toepassingen met weinig gegevens is één lange sessie doorgaans goedkoper dan veel korte sessies.

Maak elke 24 uur opnieuw verbinding met het netwerk

Het is de moeite waard om de datasessie open te houden. Maar het heeft geen zin om voor onbepaalde tijd verbonden te blijven met hetzelfde netwerk.

Netwerken dwingen regelmatig een herautorisatie af van apparaten die al lang zijn aangesloten, en zo’n gedwongen herautorisatie komt vaak op een ongelegen moment. Door het apparaat ongeveer elke 24 uur los te koppelen en opnieuw aan te sluiten – volgens jouw eigen schema in plaats van dat van hen – blijft de autorisatie van het apparaat geldig en maak je van een onvoorspelbare onderbreking een beheersbare onderbreking.

Houd de firmware up-to-date, maar ga niet voor de allernieuwste versie

Modemfabrikanten brengen firmware-updates uit die de netwerkcompatibiliteit, het roaminggedrag en de beveiliging verbeteren, en het is in alle regio’s echt nuttig om de firmware up-to-date te houden.

Als eerste een nieuwe release installeren is geen goed idee. Nieuwe modemfirmware kan juist op de punten waar je het meest om geeft terugval veroorzaken. Wacht even tot een release zich heeft bewezen voordat je deze op je hele netwerk implementeert, en voer de uitrol dan in fasen door.

De prestaties in de praktijk monitoren en bijsturen

Logica die op een testomgeving correct lijkt, gedraagt zich anders wanneer deze in een hele vloot wordt toegepast. Houd, zodra je logica is geïmplementeerd, het volgende bij:

  • Succespercentage bij herhalingspogingen, en welke poging in de reeks meestal slaagt

  • De duur van een sessie, en hoe vaak sessies onverwacht worden beëindigd

  • Op welke netwerken apparaten daadwerkelijk zijn aangesloten, per regio

  • Hoe vaak mislukken connectiviteitscontroles terwijl het apparaat nog is aangesloten?

Aan de hand van die cijfers kun je zien of je prioriteitsvolgorde overeenkomt met de werkelijkheid en of je back-off-intervallen te strak of juist te ruim zijn. Diagnostiek laat zien wat het netwerk waarneemt voor een individuele simkaart; dit is een goede manier om de gegevens te controleren wanneer de logbestanden van het apparaat zelf het ene aangeven en de verbindingsgegevens iets anders.

Praktijkvoorbeeld: een inzet in de VS

Een toestel met een roaming-simkaart in de Verenigde Staten, waarbij de drie grootste netwerken beschikbaar zijn.

Gewenste volgorde van netwerken

  1. Verizon

  2. T-Mobile

  3. AT&T

Registratieprocedure

  1. Probeer Verizon. Als dit lukt, open dan een datasessie en ga gewoon door. Als dit niet lukt, wacht dan 1 minuut

  2. Probeer T-Mobile. Als dit lukt, open dan een datasessie. Als dit niet lukt, wacht dan 2 minuten

  3. Probeer het via AT&T. Als dit lukt, open dan een datasessie. Als dit niet lukt, wacht dan 4 minuten en start een nieuwe cyclus via Verizon

Wanneer elk netwerk weigert

Als alle drie het apparaat afwijzen – wat kan gebeuren tijdens een storingsmelding of wanneer een simkaart is geblokkeerd – verleng dan de intervallen in plaats van door te gaan met de cyclus:

  • Wacht na de herhalingspoging van 4 minuten 1 uur voordat je de volledige voorkeursvolgorde opnieuw uitvoert

  • Als er daarna nog steeds geen verbinding is, ga dan over op intervallen van 4 uur

Connectiviteitscontrole

Zodra een datasessie is geopend, voer je 'ping' uit 8.8.8.8 met regelmatige tussenpozen. Als de ping mislukt, verbreek dan de verbinding met het huidige netwerk en begin de procedure opnieuw via Verizon.

Dagelijkse herautorisatie

Om de netwerkprestaties op peil te houden en eventuele herautorisatie mogelijk te maken, verbreekt het apparaat elke 24 uur de verbinding met het netwerk en maakt het vervolgens opnieuw verbinding.

  • Dagelijkse herverbinding: het apparaat verbreekt de verbinding met het huidige netwerk en volgt vervolgens de oorspronkelijke prioriteitsvolgorde (Verizon, T-Mobile, AT&T) om de verbinding opnieuw tot stand te brengen

  • Hierdoor blijft de autorisatie actueel en wordt het risico op een gedwongen herautorisatie door het netwerk verkleind

Sequence diagram of device retry logic: the device attempts Verizon, then T-Mobile after one minute, then AT&T after two minutes, opens a data session on success, pings 8.8.8.8 at least hourly, and reattaches every 24 hours

Veelgestelde vragen

Nee. De netwerkselectie vindt plaats op het apparaat. De simkaart biedt toegang tot de providers die onder je dekkingsplan vallen, en de modem kiest daaruit, dus de voorkeur moet in de firmware worden ingesteld.

Ten minste elk uur, waarbij een mislukte controle wordt gezien als een aanleiding om opnieuw verbinding te maken. Verleng het interval als de datakosten belangrijker zijn dan een snel herstel, aangezien elke controle factureerbare data verbruikt.

Houd de verbinding open. Elke sessie wordt naar boven afgerond op 1 kB, dus bij dezelfde gegevenshoeveelheid zijn veel korte sessies duurder dan één lange, en het opnieuw verbinden zorgt voor extra vertraging en extra storingspunten.

Meestal gaat het om herhaalde mislukte verbindingspogingen die snel achter elkaar plaatsvinden. Roamingpartners blokkeren apparaten die zich zo gedragen, dus door de herhalingspogingen geleidelijk uit te stellen, blijft een apparaat van die lijst af.

Gerelateerd