Skrytý uzel: když se dva neslyší
CSMA/CA stojí na jediném předpokladu: než začnu vysílat, uslyším toho, kdo už vysílá. V hale s regály a kovovými stěnami ten předpoklad neplatí. Dva roboti po obou stranách přístupového bodu ho oba slyší dobře — ale navzájem se neslyší vůbec.
Výsledek: ani jeden nikdy nezastaví kvůli druhému. Kdykoli se jejich vysílání překryjí, oba rámce jsou ztracené — a protože je odpočítávání náhodné, děje se to často. Na zatíženém kanálu se takhle ztratí i třetina rámců.
RTS/CTS: nechat mluvit přístupový bod
Řešení je nechat rozhodovat toho, kdo slyší oba. Stanice A nejprve pošle krátký RTS („chci vysílat 1500 bajtů“). Přístupový bod odpoví CTS („můžeš, ostatní mlčte 400 µs“). To CTS slyší i stanice B, i když RTS neslyšela — a mlčí.
Cena je 60–90 µs navíc na každý rámec. Vyplatí se to tehdy, když je pravděpodobnost kolize vyšší než ta cena — tedy na zatíženém kanálu s velkými rámci ano, na prázdném nebo s krátkými rámci ne. Proto má většina zařízení práh (RTS threshold) a pod ním RTS nepoužívá.
Jak to poznat v provozu
- Vysoká chybovost rámců jen u některých stanic, zatímco jejich signál je silný. Skrytý uzel se pozná tím, že síla signálu je dobrá a rámce se přesto ztrácejí.
- Ztráty rostou se zatížením mnohem rychleji, než by odpovídalo kolizím u viditelných stanic.
- Zapnutí RTS/CTS problém zjevně zlepší — což je zároveň diagnostika i léčba.
Lepší než RTS/CTS je uspořádání. Skrytý uzel je geometrický problém a nejlépe se řeší geometricky: přístupový bod výš (víc stanic se navzájem uvidí), menší buňky, nebo směrové antény tak, aby se dosahy stanic překrývaly. RTS/CTS je náplast, která stojí vysílací čas na každém rámci — a vysílací čas je v téhle labce to jediné, čeho je málo.