Du sitter på driftsdesken til en betalingssvitsj som ligger mellom forhandlere og kortutstedere. Hvert minutt kommer omtrent 400 transaksjoner per sekund; hver blir scoret for svindel, venter på en ledig forbindelsesplass og sendes videre til utstederen for svar. Modellen regner ut køer, tidsavbrudd, klientenes gjenforsøk, avveiningen i svindelsilen og stand-in-eksponering fra lærebokformler. Beløp er i generiske valutaenheter (u). Kun en pedagogisk simulering — ikke økonomisk, juridisk eller investeringsrådgivning.
Dette lærer du
Hvorfor gjenforsøk kan låse en overbelastet svitsj i en gjenforsøksstorm selv etter at kapasitet er lagt til — og hvordan lastavlasting bryter sløyfen.
Hvordan en terskel for svindelscore veier svindeltap mot gode kunder som avslås, og hvorfor riktig terskel avhenger av grunnraten for svindel.
Hvordan én treg utsteder fyller hver forbindelsesplass (Littles lov), og hva tidsavbrudd og stand-in-behandling koster.
Simulator
Tid 0 min
▶Server i drift
⚙Server starter
·Ledig serverplass i racket
✓Utsteder svarer normalt
⌛Utsteder treg eller nede
⇄Stand-in-behandling på
•Innkommende transaksjoner
Kontroller
Hver server har 32 forbindelsesplasser. Nye servere bruker 5 minutter på å starte; hver server faktureres, enten den starter eller ikke.
Slipper inn høyst 90 % av kapasiteten og svarer overskuddet med en gang med «prøv igjen senere», i stedet for å la det stå i kø og gå ut på tid.
Hvordan forhandlere prøver på nytt etter en teknisk feil (opptil 3 gjenforsøk). Umiddelbart = innen neste minutt; backoff = tilfeldig eksponentiell backoff med gjennomsnittlige ventetider på 1, 2 og 4 minutter.
Transaksjoner med score på eller over dette avslås. Score er i standardavvik av ekte trafikk: lavere betyr at mer svindel stoppes og flere gode kunder avslås.
Score så langt under terskelen får en ekstra kundeutfordring i stedet for en avgjørelse: 85 % av ekte kunder fullfører den, 5 % av svindlerne består. 0 = av.
Hvor lenge en forbindelsesplass venter på svar fra utstederen. Etter det sender svitsjen en reversering og bruker stand-in, eller avslår med «utsteder utilgjengelig».
Når utstederen ikke svarer i tide, godkjenner svitsjen på dens vegne opp til dette beløpet. Hver stand-in-godkjenning er eksponering utstederen aldri har sjekket. 0 = av.
Indikatorer
Godkjenningsrate for gode kunder
99,9%
normal
Autorisasjonstid
330ms
normal
Svindelrate (andel av godkjent beløp)
10,4bp
normal
Opptatte forbindelsesplasser
69%
normal
Godkjenningsrate, friske utstedere
99,9 %
Gode kunder avslått av svindelregelen
1,3 ‰
Transaksjoner sendt til step-up
0,0 %
Svindel stoppet
31 %
Nye transaksjoner
400 tx/s
Tilbudt last (nye + gjenforsøk)
400 tx/s
Gjenforsøk
0 tx/s
Avlastet (svart «prøv senere»)
0 tx/s
Forkastet i køen
0,0 %
Tidsavbrudd hos utsteder
0,0 %
Stand-in-godkjenninger
0 tx/s
Servere i drift
6
Servere under oppstart
0
Løpende serverkostnad
36 u/h
Serverkostnad så langt
0 u
Stand-in-eksponering
0,00 M u
Svindel godkjent så langt
0,00 M u
Gode transaksjoner tapt så langt
0,0 k tx
Transaksjoner som venter på gjenforsøk
0 tx
Ventetid for utstedergruppe B (gjennomsnitt)
250 ms
Trend
Krisescenarioer
Nivå 1 · Salgstopp med trafikkstigning
Et stort nettsalg åpner i minutt 5 og dobler trafikken til omtrent 800 transaksjoner per sekund i 45 minutter. Svitsjen kjører 6 servere, dimensjonert for en vanlig dag med omtrent 70 % belegg. Forhandlerne prøver på nytt etter hver tekniske feil med en gang. Hold gode kunder godkjent og svartidene raske uten å kjøpe kapasitet du ikke trenger.
Gjennomsnittlig godkjenningsrate for gode kunder ≥ 95 % fra salget starter
Gjennomsnittlig autorisasjonstid ≤ 500 ms
Serverkostnad ≤ 75 u
Nivå 2 · Svindelbølge
I minutt 5 begynner en bunke stjålne kortopplysninger å bli brukt: svindelandelen av trafikken hopper fra 0,1 % til 1 %. Avslagsterskelen er satt for vanlige dager (3σ), og step-up er av. Få svindelraten ned uten å avvise gode kunder.
Gjennomsnittlig svindelrate ≤ 25 bp
Gjennomsnittlig godkjenningsrate for gode kunder ≥ 98 %
Gode kunder avslått av regelen ≤ 5 ‰
Nivå 3 · Utstederavbrudd
I minutt 5 blir utstederne i gruppe B — en fjerdedel av all trafikk — trege, med en gjennomsnittlig svartid på 12 sekunder. Svitsjen venter opptil 8 s på svar, har ingen stand-in og kjører 6 servere. Hold kundene hos de friske utstederne i gang, betjen gruppe B så langt du trygt kan, og hold stand-in-eksponering og kostnad under kontroll.
Gjennomsnittlig godkjenningsrate for kunder hos friske utstedere ≥ 90 %
Gjennomsnittlig godkjenningsrate for gode kunder ≥ 86 %
Stand-in-eksponering ≤ 9 M u
Serverkostnad ≤ 65 u
Grunnlag — modellen bak tallene
Hver sammenheng simulatoren bruker, med kilde. Konstanter merket som antakelser er illustrative kalibreringer.
Nye transaksjoner kommer med en grunnrate ganger salgsstigningen; antallet per minutt er tilfeldig (Poisson, normaltilnærming) med litt støtvis trafikk.
λ(t) = base × surge(t) (2-min lag); count/min ≈ N(60λ, √(60λ)) × (1 + N(0, 0.03))[2]Antakelse: antall plasser, tjeneste- og utstedertider, skillet mellom score, andeler som består step-up, andel bortkastet arbeid, beløp og priser er illustrative verdier for en middels stor svitsj, ikke tall fra noe virkelig nettverk.
Binormal svindelscore: scorene for ekte kunder og svindlere er to normalkurver med avstand d′; terskelen velger et punkt på ROC-kurven.
genuine score ~ N(0,1), fraud ~ N(d′,1), d′ = 2.5; FPR(t) = 1 − Φ(t), TPR(t) = 1 − Φ(t − d′); AUC = Φ(d′/√2) ≈ 0.96[6][7]Antakelse: antall plasser, tjeneste- og utstedertider, skillet mellom score, andeler som består step-up, andel bortkastet arbeid, beløp og priser er illustrative verdier for en middels stor svitsj, ikke tall fra noe virkelig nettverk.
Kostnadsoptimal terskel: avslå når sannsynlighetsforholdet overstiger kostnadsforholdet vektet med grunnraten — ti ganger mer svindel flytter den ln 10 / d′ ≈ 0,9σ lavere.
Step-up: score i båndet under terskelen utfordres i stedet for å avgjøres.
scores in [t − b, t) are challenged: genuine pass 85 %, fraud pass 5 %; scores ≥ t declined[10]Antakelse: antall plasser, tjeneste- og utstedertider, skillet mellom score, andeler som består step-up, andel bortkastet arbeid, beløp og priser er illustrative verdier for en middels stor svitsj, ikke tall fra noe virkelig nettverk.
Utstederens ventetid er eksponentialfordelt; en plass holdes i ventetiden eller tidsavbruddet, det som kommer først.
L ~ Exp(mean m); E[min(L, T)] = m(1 − e^(−T/m)), P(L > T) = e^(−T/m); S = 80 ms + forwarded × Σ share·E[min(L,T)][2][9]
Erlang C: sjansen for at en transaksjon må vente på en ledig plass, og sjansen for at den venter lenger enn køens tidsavbrudd på 2 s.
P(W > 2 s) = C(a, N)·e^(−(N/S − λ)·2 s), a = λS; mean wait = C / (N/S − λ)[1][2]
Over kapasitet bruker svitsjen også arbeid på forespørsler den senere forkaster, så nyttig gjennomstrømning faller når lasten stiger; lastavlasting avviser overskuddet billig.
λ ≥ N/S: goodput = (N/S − ω·λ)/(1 − ω), ω = 0.3; load shedding admits ≤ 0.9·N/S and answers the rest at once[4][5]Antakelse: antall plasser, tjeneste- og utstedertider, skillet mellom score, andeler som består step-up, andel bortkastet arbeid, beløp og priser er illustrative verdier for en middels stor svitsj, ikke tall fra noe virkelig nettverk.
Klientenes gjenforsøk: hver tekniske feil prøves på nytt opptil tre ganger, umiddelbart eller med tilfeldig eksponentiell backoff.
failed attempt → retry with p = 0.95, ≤ 3 retries; immediate: next minute; backoff: delay ~ Exp(mean 1, 2, 4 min)[4][5]Antakelse: antall plasser, tjeneste- og utstedertider, skillet mellom score, andeler som består step-up, andel bortkastet arbeid, beløp og priser er illustrative verdier for en middels stor svitsj, ikke tall fra noe virkelig nettverk.
Tidsavbrudd hos utsteder, reversering og stand-in: beløpene er lognormalfordelt, så andelen under grensen og det godkjente volumet følger av normalfordelingens CDF.
issuer timeout → reversal; stand-in approves if amount ≤ limit: P = Φ((ln L − μ)/σ), volume = e^(μ+σ²/2)·Φ((ln L − μ − σ²)/σ)[9][11]
Svindelrate i basispunkter av godkjent beløp; 13 bp brukes som referanseskala for små kortbetalinger på nett.
32 slots per server, 2–24 servers, +5 min boot, 6 u per server-hour · switch time 80 ms · queue timeout 2 s · issuer latency 250 ms (group B = 25 % of traffic, ±15 % per minute) · amounts lognormal, median 40 u, σ = 1, fraud ×1.5 · ω = 0.3 · shedding at 90 % · reversal = 80 ms of switch timeAntakelse: antall plasser, tjeneste- og utstedertider, skillet mellom score, andeler som består step-up, andel bortkastet arbeid, beløp og priser er illustrative verdier for en middels stor svitsj, ikke tall fra noe virkelig nettverk.
Tilfeldighet: en seedet mulberry32-generator; fordelinger som brukes — uniform, eksponentiell (invers CDF), normal (Box–Muller), Poisson (Knuth). Seeden vises og kan deles.
M. Harchol-Balter — Performance Modeling and Design of Computer Systems: Queueing Theory in Action (M/M/k, capacity provisioning) — Cambridge University Press, 2013