Ο τίτλος του άρθρου από το Knowledge Base της Microsoft είναι: “Network connectivity may fail when you try to use Windows Vista behind a firewall device“*.
Από την εξήγηση:
“When you try to use a Windows Vista-based computer behind a firewall device, network connectivity may fail. […] The firewall device has a problem with its implementation of the TCP Window Scale Option that is defined in Internet Engineering Task Force (IETF) Request For Comments (RFC) 1323.”
Το άρθρο στο Knowledge Base μιλάει για περιπτώσεις που το μηχάνημα του χρήστη είναι “πίσω” από firewall που δεν μπορεί να διαχειριστεί καλά το TCP Window scaling (π.χ. κάποιο ADSL modem). Το πρόβλημα όμως προκύπτει και όταν κάποιος server (www, mail κ.λπ.) βρίσκεται “πίσω” από κάποιο firewall που δεν τα πάει καλά με το TCP Window scaling. Βέβαια και σε αυτή την περίπτωση το σύστημα με τα Vista πάλι πίσω από το συγκεκριμένο firewall είναι. Είναι θέμα ορισμού του “πίσω”.
:)
Με λίγα λόγια: Start -> All Programs -> Accessories -> Command Prompt
netsh interface tcp set global autotuninglevel=disabled
Εάν δεν θέλετε να απενεργοποιήσετε εντελώς το TCP window scaling, μπορείτε να δώσετε εναλλακτικά την εντολή:
netsh interface tcp set global autotuninglevel=restricted
Οι δυνατές τιμές που μπορεί να πάρει η παράμετρος autotuninglevel είναι:
netsh interface set tcp global /?
:
autotuninglevel - One of the following values:
disabled: Fix the receive window at its default
value.
highlyrestricted: Allow the receive window to
grow beyond its default value, but do so
very conservatively.
restricted: Allow the receive window to grow
beyond its default value, but limit such
growth in some scenarios.
normal: Allow the receive window to grow to
accomodate almost all scenarios.
experimental: Allow the receive window to grow
to accomodate extreme scenarios.
WARNING: This can dramatically degrade
performance in common scenarios and should
only be used for research purposes.
:
Να ξέραμε και ποια είναι τα “some senarios” τα οποία εξαιρεί η επιλογή autotuning=restricted …
Δείτε και αυτό το post στο lifehacker.com.
Αντιμετώπιση του ίδιου προβλήματος σε συστήματα που τρέχουν Linux:
Στο Linux το workaround είναι πιο εύκολο: Στο /etc/sysctl.conf προσθέτετε τη γραμμή:
net.ipv4.tcp_rmem = 4096 87380 174760
και μετά τρέχετε ένα sysctl -p
Σε μερικά setup η παραπάνω γραμμή δεν φτάνει και στο /etc/sysctl.conf πρέπει να προστεθεί και η γραμμή:
net.ipv4.tcp_wmem = 4096 16384 131072
Υπάρχουν δε και εκείνες οι περιπτώσεις (π.χ. Dell server και κάρτα δικτύου που υποστηρίζεται από τον driver tg3) που χρειάζεται ακόμα μία προσθήκη (σύνολο τρεις):
net.ipv4.tcp_window_scaling = 0
Δηλαδή πλήρης απενεργοποίηση του TCP Window Scaling.
[*] – Article ID: 934430
