17) /proc/sys/net/ipv4/tcp_window_scaling

该文件表示设置tcp/ip会话的滑动窗口大小是否可变。参数值为布尔值,为1时表示可变,为0时表示不可变。tcp/ip通常使用的窗口最大可达到65535 字节,对于高速网络,该值可能太小,这时候如果启用了该功能,可以使tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力。         

缺省设置:1

18) /proc/sys/net/ipv4/tcp_sack

           该文件表示是否启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能(这样可以让发送者只发送丢失的报文段);(对于广域网通信来说)这个选项应该启用,但是这会增加对 CPU 的占用。

           缺省设置:1

19) /proc/sys/net/ipv4/tcp_timestamps

           该文件表示是否启用以一种比超时重发更精确的方法(请参阅 RFC 1323)来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项。

           缺省设置:1

20) /proc/sys/net/ipv4/tcp_fack

           该文件表示是否打开FACK拥塞避免和快速重传功能。

           缺省设置:1

21) /proc/sys/net/ipv4/tcp_dsack

           该文件表示是否允许TCP发送两个完全相同SACK

           缺省设置:1

22) /proc/sys/net/ipv4/tcp_ecn

           该文件表示是否打开TCP的直接拥塞通告功能。

           缺省设置:0

23) /proc/sys/net/ipv4/tcp_reordering

           该文件表示TCP流中重排序的数据报最大数量。

           缺省设置:3

24) /proc/sys/net/ipv4/tcp_retrans_collapse

           该文件表示对于某些有bug的打印机是否提供针对其bug的兼容性。

           缺省设置:1

25) /proc/sys/net/ipv4/tcp_wmem

           该文件包含3个整数值,分别是:mindefaultmax

Min:为TCP socket预留用于发送缓冲的内存最小值。每个TCP socket都可以使用它。

Default:为TCP socket预留用于发送缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.wmemdefault的 值,一般要低于net.core.wmemdefault的值。

Max:为TCP socket预留用于发送缓冲的内存最大值。该值不会影响net.core.wmem_max,今天选择参数SO_SNDBUF则不受该值影响。默认值为128K

           缺省设置:4096 16384 131072

26) /proc/sys/net/ipv4/tcp_rmem

           该文件包含3个整数值,分别是:mindefaultmax

Min:为TCP socket预留用于接收缓冲的内存数量,即使在内存出现紧张情况下TCP socket都至少会有这么多数量的内存用于接收缓冲。

Default:为TCP socket预留用于接收缓冲的内存数量,默认情况下该值影响其它协议使用的 net.core.wmemdefault的 值。该值决定了在tcp_adv_win_scaletcp_app_wintcp_app_win的默认值情况下,TCP 窗口大小为65535

Max:为TCP socket预留用于接收缓冲的内存最大值。该值不会影响 net.core.wmemmax的值,今天选择参数 SO_SNDBUF则不受该值影响。

         缺省设置:4096 87380 174760

27) /proc/sys/net/ipv4/tcp_mem

         该文件包含3个整数值,分别是:lowpressurehigh

Low:当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。

Pressure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出pressure状态。

High:允许所有tcp sockets用于排队缓冲数据报的页面量。

一般情况下这些值是在系统启动时根据系统内存数量计算得到的。

        缺省设置:24576 32768 49152

28) /proc/sys/net/ipv4/tcp_app_win

        该文件表示保留max(window/2^tcp_app_win, mss)数量的窗口由于应用缓冲。当为0时表示不需要缓冲。

        缺省设置:31

29) /proc/sys/net/ipv4/tcp_adv_win_scale

        该文件表示计算缓冲开销bytes/2^tcp_adv_win_scale(如果tcp_adv_win_scale >; 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale )。

        缺省设置:2

6.4 IP Variables

1)      /proc/sys/net/ipv4/ip_local_port_range

        该文件表示TCPUDP协议打开的本地端口号。

        缺省设置:1024 4999

        建议设置:32768 61000

2)      /proc/sys/net/ipv4/ip_nonlocal_bind

        该文件表示是否允许进程邦定到非本地地址。

        缺省设置:0

3)      /proc/sys/net/ipv4/ip_dynaddr

        该参数通常用于使用拨号连接的情况,可以使系统动能够立即改变ip包的源地址为该ip地址,同时中断原有的tcp对话而用新地址重新发出一个syn请求包,开始新的tcp对话。在使用ip欺骗时,该参数可以立即改变伪装地址为新的ip地址。该文件表示是否允许动态地址,如果该值非0,表示允许;如果该值大于1,内核将通过log记录动态地址重写信息。

         缺省设置:0

4)      /proc/sys/net/ipv4/icmp_echo_ignore_all

         /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

         该文件表示内核是否忽略所有的ICMP ECHO请求,或忽略广播和多播请求。

0,响应请求

1,忽略请求

         缺省设置:0

         建议设置:1

5)      /proc/sys/net/ipv4/icmp_ratelimit

6)      /proc/sys/net/ipv4/icmp_ratemask

7)      /proc/sys/net/ipv4/icmp_ignore_bogus_error_reponses

        某些路由器违背RFC1122标准,其对广播帧发送伪造的响应来应答。这种违背行为通常会被以告警的方式记录在系统日志中。如果该选项设置为True,内核不会记录这种警告信息。

         缺省设置:0

8)      /proc/sys/net/ipv4/igmp_max_memberships

         该文件表示多播组中的最大成员数量。

         缺省设置:20

6.5 Other Configuration

1)      /proc/sys/net/ipv4/conf/*/accept_redirects

     如果主机所在的网段中有两个路由器,你将其中一个设置成了缺省网关,但是该网关在收到你的ip包时发现该ip包必须经过另外一个路由器,这时这个路由器就会给你发一个所谓的重定向”icmp包,告诉将ip包转发到另外一个路由器。参数值为布尔值,1表示接收这类重定向icmp 信息,0表示忽略。在充当路由器的linux主机上缺省值为0,在一般的linux主机上缺省值为1。建议将其改为0以消除安全性隐患。

2)      /proc/sys/net/ipv4/*/accept_source_route

       是否接受含有源路由信息的ip包。参数值为布尔值,1表示接受,0表示不接受。在充当网关的linux主机上缺省值为1,在一般的linux主机上缺省值为0。从安全性角度出发,建议关闭该功能。

3)      /proc/sys/net/ipv4/*/secure_redirects

       其实所谓的安全重定向就是只接受来自网关的重定向”icmp包。该参数就是用来设置安全重定向功能的。参数值为布尔值,1表示启用,0表示禁止,缺省值为启用。

4)      /proc/sys/net/ipv4/*/proxy_arp

设置是否对网络上的arp包进行中继。参数值为布尔值,1表示中继,0表示忽略,

缺省值为0。该参数通常只对充当路由器的linux主机有用。