/proc/sys/net/ipv4/ 下网络参数的理解

/proc/sys/net/ipv4/下文件详细解释:

/proc/sys/net/ipv4/下文件在这里插入图片描述

  1. /proc/sys/net/ipv4/ip_forward
    该文件表示是否打开IP转发。

0,禁止

1,转发

基本用途:如VPN、路由产品的利用;

出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。这通常就是路由器所要实现的功能。

配置Linux系统的ip转发功能,首先保证硬件连通,然后打开系统的转发功能

less /proc/sys/net/ipv4/ip_forward,该文件内容为0,表示禁止数据包转发,1表示允许,将其修改为1。

修改方法,任意一种均可:

使用命令echo “1” > /proc/sys/net/ipv4/ip_forward 修改文件内容,重启网络服务或主机后效果生效。
若要其自动执行,可将命令echo “1” > /proc/sys/net/ipv4/ip_forward 写入脚本/etc/rc.d/rc.local
在/etc/sysconfig/network脚本中添加 FORWARD_IPV4=“YES”
2) /proc/sys/net/ipv4/ip_default_ttl
该文件表示一个数据报的生存周期(Time To Live),即最多经过多少路由器。
缺省设置:64
增加该值会降低系统性能。
在参数在IP数据包中,即第三层的网络层
在这里插入图片描述

数据报的生存周期(Time To Live):
占8位,常用的英文缩写是TTL(Time To Live),表明数据报在网络中的寿命。
由发出数据报的源点设置这个字段。
其目的是为了防止无法交付的数据报无限制地在因特网中兜圈子,因而白白浪费网络资源。
随着技术的发展,TTL字段的功能改为“跳数限制”。路由器在转发数据报之前就把TTL值减1。若TTL值减少到零,就丢弃这个数据报,不再转发。
因此,现在TTL的单位不再是秒,而是跳数。
TTL的意义是指明数据报在因特网中至多可经过多少个路由器。显然,数据报能在因特网中经过的路由器的最大数是255。
若把TTL的初始值设置为1,就表示这个数据报只能在本局域网中传送。
3) /proc/sys/net/ipv4/ip_no_pmtu_disc
该文件表示在全局范围内关闭路径MTU探测功能。

如果开启功能,将不做路径MTU探测功能。由于网络防火墙可能丢包,路由器有故障,导致路径MTU探测失败。但是最好的办法还是解决路由故障,而不是关掉这个功能,不做路径MTU探测将导致网络消耗过大。

典型的瓶颈原理,一次成功的传输中,mtu是由网络上最"窄"的位置决定的.如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片(fragmentation),把数据报分成若干片,这样每一片都小于MTU。

几种常见网络的MTU值: 以太网 1500字节

缺省设置:0

  1. /proc/sys/net/ipv4/route/min_pmtu
    该文件表示最小路径MTU的大小。
    产品实践中,主要两个网卡MTU的设置;
    缺省设置:552
  2. /proc/sys/net/ipv4/route/mtu_expires
    该文件表示PMTU信息缓存多长时间(秒)。
    缺省设置:600(秒)
  3. /proc/sys/net/ipv4/route/min_adv_mss
    该文件表示最小的MSS(Maximum Segment Size)大小(网络层不需要进行分片重组),取决于第一跳的路由器MTU。
    缺省设置:256(bytes)
    IP Fragmentation
  4. /proc/sys/net/ipv4/ipfrag_low_thresh
    /proc/sys/net/ipv4/ipfrag_low_thresh

/proc/sys/net/ipv4/ipfrag_high_thresh

两个文件分别表示用于重组IP分段的内存分配最低值和最高值,一旦达到最高内存分配值,其它分段将被丢弃,直到达到最低内存分配值。

缺省设置:196608(ipfrag_low_thresh) 262144(ipfrag_high_thresh)

  1. /proc/sys/net/ipv4/ipfrag_time
    该文件表示一个IP分段在内存中保留多少秒。

缺省设置:30(秒)

INET Peer Storage

  1. /proc/sys/net/ipv4/inet_peer_threshold
    INET对端存储器某个合适值,当超过该阀值条目将被丢弃。该阀值同样决定生存时间以及废物收集通过的时间间隔。条目越多,存活期越低,GC 间隔越短。

缺省设置:65664

  1. /proc/sys/net/ipv4/inet_peer_minttl
    条目的最低存活期。在重组端必须要有足够的碎片(fragment)存活期。这个最低存活期必须保证缓冲池容积是否少于 inet_peer_threshold。该值以 jiffies为单位测量。

缺省设置:120

  1. /proc/sys/net/ipv4/inet_peer_maxttl
    条目的最大存活期。在此期限到达之后,如果缓冲池没有耗尽压力的话(例如:缓冲池中的条目数目非常少),不使用的条目将会超时。该值以 jiffies为单位测量。

缺省设置:600

  1. /proc/sys/net/ipv4/inet_peer_gc_mintime
    废物收集(GC)通过的最短间隔。这个间隔会影响到缓冲池中内存的高压力。该值以 jiffies为单位测量。

缺省设置:10

  1. /proc/sys/net/ipv4/inet_peer_gc_maxtime

废物收集(GC)通过的最大间隔,这个间隔会影响到缓冲池中内存的低压力。该值以 jiffies为单位测量。

缺省设置:120

TCP Variables

  1. /proc/sys/net/ipv4/tcp_syn_retries
    该文件表示本机向外发起TCP SYN连接超时重传的次数,不应该高于255;该值仅仅针对外出的连接,对于进来的连接由tcp_retries1控制。

缺省设置:5

2)/proc/sys/net/ipv4/tcp_keepalive_probes
该文件表示丢弃TCP连接前,进行最大TCP保持连接侦测的次数。保持连接仅在SO_KEEPALIVE套接字选项被打开时才被发送。

缺省设置:9(次)

3)/proc/sys/net/ipv4/tcp_keepalive_time
该文件表示从不再传送数据到向连接上发送保持连接信号之间所需的秒数。

缺省设置:7200(2小时)

  1. /proc/sys/net/ipv4/tcp_keepalive_intvl
    该文件表示发送TCP探测的频率,乘以tcp_keepalive_probes表示断开没有响应的TCP连接的时间。

缺省设置:75(秒)

  1. /proc/sys/net/ipv4/tcp_retries1
    该文件表示放弃回应一个TCP连接请求前进行重传的次数。

缺省设置:3

  1. /proc/sys/net/ipv4/tcp_retries2
    该文件表示放弃在已经建立通讯状态下的一个TCP数据包前进行重传的次数。

缺省设置:15

7)/proc/sys/net/ipv4/tcp_orphan_retries
在近端丢弃TCP连接之前,要进行多少次重试。默认值是 7 个,相当于 50秒–16分钟,视 RTO 而定。如果您的系统是负载很大的web服务器,那么也许需要降低该值,这类 sockets 可能会耗费大量的资源。另外参考tcp_max_orphans。

  1. /proc/sys/net/ipv4/tcp_fin_timeout

对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能会断开连接或一直不结束连接或不可预料的进程死亡。默认值为 60 秒。过去在2.2版本的内核中是 180 秒。您可以设置该值,但需要注意,如果您的机器为负载很重的web服务器,您可能要冒内存被大量无效数据报填满的风险,FIN-WAIT-2 sockets 的危险性低于 FIN-WAIT-1,因为它们最多只吃 1.5K的内存,但是它们存在时间更长。另外参考 tcp_max_orphans。

缺省设置:60(秒)

  1. /proc/sys/net/ipv4/tcp_max_tw_buckets

系统在同时所处理的最大timewait sockets 数目。如果超过此数的话,time-wait socket 会被立即砍除并且显示警告信息。之所以要设定这个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要人为的降低这个限制,不过,如果网络条件需要比默认值更多,则可以提高它(或许还要增加内存)。

缺省设置:180000

  1. /proc/sys/net/ipv4/tcp_tw_recyle

打开快速 TIME-WAIT sockets 回收。除非得到技术专家的建议或要求,请不要随意修改这个值。

缺省设置:0

  1. /proc/sys/net/ipv4/tcp_tw_reuse

该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。

缺省设置:0

  1. /proc/sys/net/ipv4/tcp_max_orphans

系统所能处理不属于任何进程的TCP sockets最大数量。假如超过这个数量,那么不属于任何进程的连接会被立即reset,并同时显示警告信息。之所以要设定这个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要依赖这个或是人为的降低这个限制。

缺省设置:8192

  1. /proc/sys/net/ipv4/tcp_abort_on_overflow

当守护进程太忙而不能接受新的连接,就向对方发送reset消息,默认值是false。这意味着当溢出的原因是因为一个偶然的猝发,那么连接将恢复状态。只有在你确信守护进程真的不能完成连接请求时才打开该选项,该选项会影响客户的使用。

缺省设置:0

半链接队列和全链接队列问题。

  1. /proc/sys/net/ipv4/tcp_syncookies

该文件表示是否打开TCP同步标签(syncookie),内核必须打开了 CONFIG_SYN_COOKIES项进行编译。同步标签(syncookie)可以防止一个套接字在有过多试图连接到达时引起过载。

缺省设置:0

  1. /proc/sys/net/ipv4/tcp_stdurg

使用 TCP urg pointer 字段中的主机请求解释功能。大部份的主机都使用老旧的BSD解释,因此如果您在 Linux 打开它,或会导致不能和它们正确沟通。

缺省设置:0

  1. /proc/sys/net/ipv4/tcp_max_syn_backlog

对于那些依然还未获得客户端确认的连接请求,需要保存在队列中最大数目。对于超过 128Mb 内存的系统,默认值是 1024,低于 128Mb 的则为 128。如果服务器经常出现过载,可以尝试增加这个数字。警告!假如您将此值设为大于1024,最好修改 include/net/tcp.h 里面的 TCP_SYNQ_HSIZE,以保持TCP_SYNQ_HSIZE*16 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale 128Mb 32768-610000)则系统将忽略所有发送给自己的ICMP ECHO请求或那些广播地址的请求。

缺省设置:1024

  1. /proc/sys/net/ipv4/tcp_window_scaling

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

缺省设置:1

  1. /proc/sys/net/ipv4/tcp_sack

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

缺省设置:1

  1. /proc/sys/net/ipv4/tcp_timestamps

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

缺省设置:1

  1. /proc/sys/net/ipv4/tcp_fack

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

缺省设置:1

  1. /proc/sys/net/ipv4/tcp_dsack

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

缺省设置:1

  1. /proc/sys/net/ipv4/tcp_ecn

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

缺省设置:0

  1. /proc/sys/net/ipv4/tcp_reordering

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

缺省设置:3

  1. /proc/sys/net/ipv4/tcp_retrans_collapse

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

缺省设置:1

  1. /proc/sys/net/ipv4/tcp_wmem

该文件包含3个整数值,分别是:min,default,max

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

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

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

缺省设置:4096 16384 131072

  1. /proc/sys/net/ipv4/tcp_rmem

该文件包含3个整数值,分别是:min,default,max

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

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

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

缺省设置:4096 87380 174760

  1. /proc/sys/net/ipv4/tcp_mem

该文件包含3个整数值,分别是:low,pressure,high

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

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

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

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

缺省设置:24576 32768 49152

  1. /proc/sys/net/ipv4/tcp_app_win

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

缺省设置:31

  1. /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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/206295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.Java程序设计-基于springboot得在线考试系统

编程技术交流、源码分享、模板分享、网课分享 企鹅🐧裙:772162324 摘要: 本文设计并实现了一款基于Spring Boot框架的在线考试系统小程序。随着远程学习和在线教育的普及,对于灵活、便捷的在线考试系统的需求逐渐增加。该小程序…

QT 重定向qdebug输出到自绘界面

因为在嵌入式中调试qt需要查看输出信息,特意写了一个类用户便捷查看qdebug信息 界面如下: 提供了开始,停止,保存,清空,退出功能,具体代码下文给出 文件如下 #ifndef QDEBUGREDIRECT_H #define QDEBUGREDIRECT_H /**qdebug 重定向类 定向到界面控件*李吉磊 2023.12.7* */#in…

指针(四)

因为前期在学驱动,所以花了一天时间借鉴了别的资料,把本科学的C语言捡起来。 指针的基本概念 堆栈有栈顶指针,队列有头指针和尾指针,这些概念中的"指针"本质上是一个整数,是数组的索引,通过指针…

CnetSDK .NET OCR Library SDK Crack

CnetSDK .NET OCR Library SDK Crack CnetSDK .NET OCR Library SDK 是一款高精度 .NET OCR 扫描仪软件,用于从图像中识别字符,如文本、手写和符号。该.NET OCR库软件采用Tesseract OCR引擎技术,将字符识别准确率提高高达99%。通过将 .NET OC…

C++【智能指针】

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻为什么需要智能指针&#x…

实验3.5 路由器的单臂路由配置

实验3.5 路由器的单臂路由配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.SWA的基本配置2.RA的基本配置3.在RA上查看接口状态 六、任务验收七、任务小结 一、任务描述 某公司对部门划分了需VLAN之后,发现两个部门之间无法通信,但…

机器学习——logistic回归

目录 一、线性模型与回归 二、基于logistic回归和Sigmoid函数的分类 三、最优化算法 1. 最大似然估计 2. 梯度上升法 3. 训练算法:梯度上升 4. 绘制决策边界 5. 训练算法:随机梯度上升 6. 改进的随机梯度算法 四、从疝气病症预测病马的死亡率 …

在jupyter notebook中修改其他文件的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

力扣题:数字与字符串间转换-12.8

力扣题-12.8 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:299. 猜数字游戏 解题思想:进行遍历,统计完全相同的数字和不相同的数字即可,然后统计不相同的数字在秘密数字和猜测数字中共同出现的次数 class Sol…

Kubernetes(K8s 1.27.x) 快速上手+实践,无废话纯享版(视频笔记)

视频源:1.03-k8s是什么?_哔哩哔哩_bilibili 1 基础知识 1.1 K8s 有用么? K8s有没有用 K8s要不要学? 参考资料: https://www.infoq.com/articles/devops-and-cloud-trends-2022/?itm_sourcearticles_about_InfoQ-trends-report…

SSL证书代理

众所周知,SSL证书已经成为当下网络安全中不可或缺的一个环节,对于很多开发公司来说,给自己的客户提供SSL证书安全服务也是最为基础的。 但是目前市面上像阿里云之类的证书服务商对于开发公司需要的证书并没有太大的一个优惠政策,给…

MySQL老是卸载不干净,不会删除注册表,安装总是报错

给大家推荐一款非常使用的工具 geek点击官网下载。 安装完成主页就长这样: 右键点击你要删除的MySQL卸载即可。自动帮你清空注册表等信息。 谁用谁知道!!! 用了感觉不错的话记得回来给我点赞加评论哦!!&…

JVM 运行时参数

面试题 JVM的参数,你知道的说一下 (百度) 说说你知道的几种主要的JVM参数(京东) JVM调优调的哪些参数?在哪里写这些参数? (亚信) 内存调优参数都有什么?&am…

MTU TCP-MSS(转载)

MTU MTU 最大传输单元(Maximum Transmission Unit,MTU)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。 是包或帧的最大长度,一般以字节记。如果MTU过大,在碰到路由器时…

介绍java spring 提供的默认数据库持久化技术 JdbcTemplate基本演示

之前 我们说过spring贴心的内嵌了三种数据源形式 其中默认为HikariCP 其实 spring 也提供了持久化数据库连接技术 这个技术其实大部分都接触过 那就是 JDBC 随着时代的发展 用他的人也越来越少了 那么 我们要演示 JdbcTemplate 导入 mybatis 或 mybatis-plus 的片段 就要注掉了…

【从零开始学习JVM | 第五篇】快速了解运行时数据区

前言: 当谈论 Java 程序的运行机制时,JVM(Java 虚拟机)的运行时数据区是一个必不可少的话题。JVM 运行时数据区是 Java 程序在运行过程中分配内存和管理数据的重要区域,它包括了方法区、堆、虚拟机栈、程序计数器和本地…

Linux---日志管理

本章主要介绍Linux中的日志管理 了解rsyslog是如何管理日志的查看日志的方法 日志管理简介 工作当中的日志,特指硬件和软件的日志,管理员可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。日志管理包括管理系统日志、应…

智能外呼常见场景有哪些?

智能外呼常见场景是什么? 智能外呼在各种场景下都有应用,以下是一些常见的场景: 营销推广 通过智能外呼向潜在客户进行产品或服务的宣传和推广,收集客户对产品或服务的反馈。根据客户的反馈自动调整宣传策略,从而提…

mac本地部署stable-diffusion

下载Homebrew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" ①输入“1”选择中科大版本,然后输入Y(YES),直接输入开机密码(不显示)然后回车确认,开始下载 ②…

小航助学2023年6月GESP_Scratch二级真题(含题库答题软件账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统(含题库答题软件账号 单选题3.00分 删除编辑附件图文 答案:D 第1题高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。 A、编辑B、…