Oto jak zmierzyć to, ze netcata:
Na moim hosta Unix (Mac OS X Darwin), bez zapory (lub na komputerze z systemem Windows, gdzie zapora systemu Windows umożliwia netcata "NC" wykonywalny nasłuchiwać na portach UDP), uruchomić serwer UDP ze zmiennym opóźnieniem dostarczonych przez klientów zdalnych:
WINHOST=10.116.140.69
mkfifo f
nc -u -p 2222 $WINHOST 6666 < f | \
(while read secs; do for sec in $secs; do echo sleep $sec 1>&2; sleep $sec; echo SLEPT $sec; echo SLEPT $sec 1>&2; done; done) > f
na moim hosta systemu Windows (Windows 7 Professional SP1 64-bit), Windows Firewall z zainstalowanym cygwin dostarczyć skorupę i netcat, interaktywnie uruchamiam klienta UDP:
UNIXHOST=192.168.181.1
nc -u -p 6666 $UNIXHOST 2222
Nie musisz używać cygwin; Netcat powinien działać poprawnie, ale wiersze poleceń mogą się różnić.
Następnie do tego klienta wpisuję serię interwałów testowych, obserwuję, jak serwer śpi, a następnie reaguje, obserwuję, czy klient otrzymuje odpowiedź. Te pracował: 1, 2, 10, 60, 120, 180. Następnie ta powiodła się: 240 Postępować z binarnym wyszukiwania między 180 a 240.
Przykład 1: Na stronie klienta, typu I:
10
60
120
180
240
i zauważ, że opóźnienie żądanie-odpowiedź do 180 prac, 240 nie.
Przykład 2: Po stronie klienta, wpisuję:
180
181
182
182
i zauważyć, że opóźnienie żądanie-odpowiedź w wysokości do 181 prac, 182 nie.
Przykład 3: Po stronie klienta, typu I (w tej samej linii)
180 180 180 181 181 181 182 182 182 183 183 183
która generuje jedno żądanie UDP z klientem, a następnie serii reakcji oddziela się przez 180, 181, 182, lub 183 sekundowe interwały. Zaobserwowano, że czas reakcji na żądanie wynoszący do 181 zadziałał, a ponadto kontynuowano reakcje (bez nowych wniosków) w odstępach czasu aż do 181 sekund.
W związku z tym otwór w zaporze ma licznik czasu bezczynności, bez względu na to, czy brak aktywności jest opóźnieniem w początkowej odpowiedzi, czy w kolejnym dodatkowym ruchu.
Wyniki na wielu maszynach:
- W tym Windows 7 Professional SP1 64-bit pulpit, otwór odpowiedź UDP jest otwarty na 181 sekund. Możliwe, że mierzę także zaporę sieciową między dwoma systemami, ponieważ są one w oddzielnych sieciach - ale myślę, że są one routowane, a nie zaporą ogniową. W każdym razie otwór w zaporze systemu Windows trwa co najmniej 181 sekund w tym systemie.
- Kolejny Windows 7 Professional SP1 64-bitowy laptop, ten sam segment sieciowy (więc zdecydowanie nie ma interwencji firewall), otwór odpowiedzi UDP jest otwarty przez 64 sekundy.
Chciałbym zobaczyć podobne pomiary na innych komputerach z systemem Windows na różnych poziomach systemu operacyjnego i konfiguracji zapory.
"Nie trzeba wysyłać do portu UDP, który ma być nadawcą" - zależy od typu NAT. Dotyczy to ograniczonego stożka NAT, ale nie dotyczy ograniczonego portu NAT. –