TCP Window Scale
kernel 2.6.17からTCPの実装が変わったのか。
Linuxのsquid経由で特定のWebサイトにアクセスするとデータが途中までしか受信できなくて、ページが正常に表示されなかったりする。squidのせいじゃなくてLinuxの問題らしい。
このproxyサーバ上で
# telnet www.hogehoge.jp 80
とかでページを受信しても途中で切れるのが確認できた。
RFC1323 http://www.ietf.org/rfc/rfc1323.txt
のTCP Window Scale Optionを無効にすると解消された。
現状を確認↓
# sysctl net.ipv4.tcp_window_scaling
net.ipv4.tcp_window_scaling = 1
無効に設定する↓
# sysctl -w net.ipv4.tcp_window_scaling=0
# sysctl net.ipv4.tcp_window_scaling
net.ipv4.tcp_window_scaling = 0
再起動しても設定されるようにする
↓
【/etc/sysctl.conf】
net.ipv4.tcp_window_scaling = 0 ← 追加
Linuxのsquid経由で特定のWebサイトにアクセスするとデータが途中までしか受信できなくて、ページが正常に表示されなかったりする。squidのせいじゃなくてLinuxの問題らしい。
このproxyサーバ上で
# telnet www.hogehoge.jp 80
とかでページを受信しても途中で切れるのが確認できた。
RFC1323 http://www.ietf.org/rfc/rfc1323.txt
のTCP Window Scale Optionを無効にすると解消された。
現状を確認↓
# sysctl net.ipv4.tcp_window_scaling
net.ipv4.tcp_window_scaling = 1
無効に設定する↓
# sysctl -w net.ipv4.tcp_window_scaling=0
# sysctl net.ipv4.tcp_window_scaling
net.ipv4.tcp_window_scaling = 0
再起動しても設定されるようにする
↓
【/etc/sysctl.conf】
net.ipv4.tcp_window_scaling = 0 ← 追加