Tre samtidiga anslutningar är ett antagningsbeslut, och för att svara på det måste man veta vilka platser som är upptagna just nu, inte vad som hände i förra månaden. En tjänst kan avvisa en fjärde session från en liten tabell med aktiva poster och aldrig bygga en tidslinje. Det är ett påstående om mekanismen, inte om operatören, och skillnaden spelar roll när man läser en integritetspolicy. Modellen nedan visar vad beslutet behöver och vad det kan kasta.

Mekanismen: en plattabell, inte en logg

Den enklaste implementeringen kopplar en prenumeration till högst tre aktiva sessionsposter. Varje antagen session tar en plats, och platsen frigörs när tjänsten avgör att sessionen har avslutats. Posten behöver en identitet som är tillräckligt specifik för att frigörandet av en anslutning inte ska frigöra en annan anslutnings plats; därför är sessionsidentifieraren viktigare än kontonamnet.

Beläggning och historik är olika datastrukturer. Beläggningen svarar på en ja-eller-nej-fråga om nuet, och den kan kastas i samma ögonblick som sessionen avslutas. En historik är en ström av händelser som bara läggs till, och den överlever därför att någon valde att behålla den. En tjänst kan ha en, båda eller ingen.

Skillnaden är osynlig utifrån. En synlig anslutningsgräns är förenlig med en pytteliten räknare i minnet, en delad databastabell och ett fullständigt händelsearkiv med instrumentpanel. Ingenting i gränsen säger vilken av dem som körs.

What is storedWhy it exists
Active session slotsTo admit or refuse the next connection
Session event logTo investigate or bill later
Monitoring seriesTo watch capacity and error rates
Backup copiesTo restore any of the above

Varför den direkta modellen ändå behöver samordning

En förlorad anslutning kanske inte känns igen som avslutad direkt. Gatewayen väntar på en timeout, ett keepalive-fel eller ett redovisningsstopp, och tills något av dem anländer förblir platsen upptagen. En användare som återansluter under det fönstret ser ett avslag som inte har något med en fjärde enhet att göra.

En omstartad server måste stämma av sitt tillstånd, och flera gateways som betjänar samma konto behöver ett gemensamt beslut. Annars kan ett konto överskrida sin kvot genom att ansluta till olika platser. Delat eller återställbart tillstånd löser det, och delat tillstånd är ett designkrav, inte ett bevis på övervakning.

Ingenting i den samordningen kräver webbläsarhistorik. En gateway som vidarebefordrar paket behöver inte veta vilka webbplatser en session besökte för att räkna sessioner, och de två dataflödena hanteras vanligtvis av helt olika komponenter.

Att hålla en räknare i minnet gör inte heller de associerade fakta anonyma. Medan tjänsten körs avslöjar en prenumerationskopplad post att ett konto har aktiva anslutningar, och både åtkomsten till det tillståndet och dess livslängd är värda att fråga om.

Vart tillståndet tar vägen sedan

Integritetsfrågan är inte om servern kan räkna. Fråga vad som händer med en avslutad session: tas posten bort, eller blir den en händelse i en övervakningsserie? Fråga sedan vilka andra komponenter som såg samma händelse, eftersom autentiseringsloggar, redovisningsposter och säkerhetskopior var och en kan behålla en kopia som verkställighetsvägen kastade.

RADIUS-redovisning är det tydligaste exemplet. Ett Start- och Stop-par finns för att stödja fakturering och sessionskontroll, och det skapar en post om anslutningen oavsett om någon någonsin frågar efter den som historik. En tjänst som verkställer gränser genom redovisning behåller därför genom sin konstruktion mer än en plattabell.

Radering har också en form. En post som tagits bort från den direkta tabellen kan bestå i en säkerhetskopia tagen en timme tidigare, och bevarandetiden för den kopian är ett eget policyuttalande. Att läsa bara primärlagret ger ett ofullständigt svar.

Ställ frågan i termer av fält

RFC 6973:s vägledning om dataminimering kopplar de data som samlas in och lagras till det syfte som betjänas. Tillämpat här är den användbara frågan vilka fält uppgiften med samtidig antagning faktiskt behöver, och vilket syfte som motiverar att behålla vart och ett efter att uppgiften är avslutad.

Ett exakt tjänstepåstående skiljer det direkta anslutningstillståndet som används för att verkställa kvoten från alla poster som behålls efter avslut, och det namnger de andra systemen inom löftets räckvidd. En mening som bara säger att tre anslutningar verkställs fastställer varken att ett arkiv finns eller att det inte finns.

När livscykeln är oklar, registrera det som en obesvarad bevarandefråga i stället för en dom. Att en gräns finns är inte bevis på en dold historik, och en rimlig förklaring av direkt tillstånd är inte en granskning av leverantören.

Relaterade artiklar