Duplikaty pakietów na łączach WLAN
Wprowadzenie
Często w sieciach WLAN zdarza się widzieć taki efekt na łączach radiowych:
PING 192.168.0.251 (192.168.0.251) from 192.168.0.3 : 56(84) bytes of
data.
64 bytes from 192.168.0.251: icmp_seq=0 ttl=30 time=2.24 ms
64 bytes from 192.168.0.251: icmp_seq=1 ttl=30 time=2.97 ms
64 bytes from 192.168.0.251: icmp_seq=1 ttl=30 time=3.74 ms (DUP!)
64 bytes from 192.168.0.251: icmp_seq=1 ttl=30 time=4.89 ms (DUP!)
64 bytes from 192.168.0.251: icmp_seq=1 ttl=30 time=5.95 ms (DUP!)
64 bytes from 192.168.0.251: icmp_seq=1 ttl=30 time=6.98 ms (DUP!)
64 bytes from 192.168.0.251: icmp_seq=1 ttl=30 time=9.44 ms (DUP!)
64 bytes from 192.168.0.251: icmp_seq=2 ttl=30 time=3.08 ms
--- 192.168.0.251 ping statistics ---
3 packets transmitted, 3 received, +5 duplicates, 0% loss
round-trip min/avg/max/stddev = 2.976/5.962/9.440/2.296 ms
Dlaczego występuje
ten efekt?
Problem
tkwi w obsłudze potwierdzeń ACK transmitowanych pakietów przez urządzenia
radiowe 802.11.
Wysyłające
radio czeka 1 ramkę czasową, czyli ok. 20 mikrosekund na potwierdzenie
ACK z radia odbierającego transmisję. Ten czas zwany jest "ACK window".
Jeśli nie nadejdzie potwierdzenie ACK w czasie określonym przez "ACK
window", wysyłające radio będzie powtarzać transmisję tyle razy,
ile wyznacza parametr określający ilość maksymalnych powtórek dla pakietu.
Radio odbierające zachowuje się identycznie, oczekując na ACK z radia
nadającego. Może to powodować ilość duplikatów sięgającą przykładowo:
TXMAX_R = 5 (ilość maksymalna powtórek dla radia nadającego)
RXMAX_R = 8 (ilość maksymalna powtórek dla radia odbierającego)
MAXDUP (maksymalna ilość duplikatów dla danego pakietu)
MAXDUP
= TXMAX_R * RXMAX_R = 5*8 = 40
Czas 20
mikrosekund jest wystarczający dla łączy do 2km.
Dłuższe łącza, aby uniknąć występowania duplikatów, wymagają dłuższego
czasu oczekiwania na ACK.
Producenci
tanich punktów dostępowych nie umożliwiają parametryzowania czasu oczekiwania
na potwierdzenia transmisji.
Wyższej
klasy sprzęt ma ten parametr konfigurowalny, bądź w opcjach typu "Link
Distance" z mozliwością wpisania wartości lub wybrania parametru
"short - medium - long"
|