Chyby a opakování: kde se bere ocas zpoždění
ModLab dal chybovost v bitech. Wi-Fi ale nepracuje s bity, pracuje s rámci — a rámec je vadný, když je vadný jediný jeho bit. Ten převod je nemilosrdný.
| chybovost bitů | rámec 100 B | rámec 1500 B |
|---|---|---|
| 10⁻⁶ | 0,1 % | 1,2 % |
| 10⁻⁵ | 0,8 % | 11 % |
| 10⁻⁴ | 7,7 % | 70 % |
Chybovost 10⁻⁴ zní jako „jedna chyba z deseti tisíc“ a znamená, že sedm rámců z deseti je k zahození. To je ten okamžik, kdy uživatel řekne „Wi-Fi nefunguje“, i když signál vypadá dobře.
Opakování a exponenciální ustupování
Ztracený rámec se pošle znovu — až sedmkrát. A po každém pokusu se soutěžní okno zdvojnásobí: 15 → 31 → 63 → 127 → 255 → 511 → 1023. Průměrný odpočet u posledního pokusu je tedy 4,6 milisekundy jen čekáním, a to je předtím, než se vůbec začne vysílat.
Tady vzniká ocas rozdělení zpoždění, který je pro regulaci podstatnější než průměr:
- Průměr se skoro nezmění — devět rámců z deseti projde napoprvé.
- p99 vyskočí na dvojnásobek až trojnásobek.
- Nejhorší případ je desítky milisekund, a nastane několikrát za minutu.
Proč se to kombinuje s anomálií
Chybující stanice neubližuje jen sobě. Každý neúspěšný pokus obsadil kanál na celou dobu rámce a nikdo jiný nemohl vysílat. Robot na kraji haly, který ztrácí polovinu rámců a posílá je dvakrát, tedy zabírá dvojnásobek vysílacího času — a to všechno navrch k tomu, že už tak vysílá pomalu.
Praktický důsledek: krátit rámce, ne prodlužovat. Když je kanál špatný, je lepší poslat dva krátké rámce než jeden dlouhý — pravděpodobnost, že projdou oba, je vyšší než že projde ten dlouhý. Je to jediné místo v téhle labce, kde jde krátký rámec za odměnu, a platí to jen tam, kde je chybovost vysoká. Wi-Fi to umí sama (fragmentace), ale skoro nikde se to nepoužívá; v aplikaci se to udělá líp.