- 377 名前:login:Penguin mailto:sage [2010/05/07(金) 11:34:15 ID:KK47QJqX]
- >>365
なんかしっくりこないのでもう一回調べてみたら間違いに気づいた。そして新たな謎が。 winsizeはほとんど関係なく、TCP確立時のオプションが問題みたい。 こちらはWindow scale: 7 (multiply by 128)でSYNして、 相手はWindow scale: 0 (multiply by 1)でSYN+ACKしてくる。 なんで0?。lwn.net/Articles/92727/によると、たぶんあっちのルーターが悪い。 悪いルーターは値だけ0に上書きしちゃうようで、相手もこちらのscaleが0に見えてるんじゃないか? でもそれならそれで1倍のwindowで転送されるはずなのだが、そうなってもいない謎。 よく見てみると、2バイト転送と46バイト転送を交互に繰り返してる。1倍でも5888バイトまでOKなのに。 46バイトって何の数字?と思って計算すると、5888>>7=46だった。もしかして掛け算が割り算になってる? だとしたら相手のOSのバグ。だけど、そんな事例はなさそうなのでたぶんありえない。識者ヘルプ。 あとUbuntu的には2年前 brainstorm.ubuntu.com/idea/1587/ で net.ipv4.tcp_window_scaling=0が提案されてるが却下されたのかな。 net.ipv4.tcp_window_scaling=1はデフォルト値なので、他のLinuxも共通のはず。 WindowsもデフォルトONみたいだけどなぜ問題ないのか謎。パケットキャプチャして調べるか・・・
|

|