日志报错:
[73209813.699199] TCP: tcp_parse_options: Illegal window scaling value 123 >14 received
[73209826.320965] TCP: tcp_parse_options: Illegal window scaling value 123 >14 received
[73209981.597164] TCP: tcp_parse_options: Illegal window scaling value 123 >14 received
原因分析
在TCP协议中,窗口缩放选项(Window Scaling Option)用于允许TCP连接的双方使用大于65535字节的窗口大小。这是因为原始的TCP头部中的窗口大小字段只有16位,限制了最大窗口大小为65535字节,这在高速网络或高延迟网络中可能会成为性能瓶颈。窗口缩放选项通过一个缩放因子来扩展这个窗口大小,实际窗口大小是窗口字段的值乘以2的缩放因子次方。
然而,根据TCP规范,窗口缩放因子的有效值范围是从0到14(包含0和14),这意味着最大的缩放因子可以允许窗口大小达到65535 * 2^14 = 1073741824字节(约1GB)。在你的日志中,接收到的缩放因子值为123,这远远超出了允许的最大值14,因此被内核标记为非法。
解决办法:
临时禁用窗口缩放:
sysctl -w net.ipv4.tcp_window_scaling=0
注:永久生效,追加到/etc/sysctl.conf中:
echo 'net.ipv4.tcp_window_scaling = 0' >> /etc/sysctl.conf
sysctl -p