在Linux的发行版本中,都存在一个/proc/目录,有的也称它为Proc文件系统。在 /proc 虚拟文件系统中存在一些可调节的内核参数。这个文件系统中的每个文件都表示一个或多个参数,它们可以通过 cat 工具进行读取,或使用 echo 命令进行修改。下面给出了几个可调节的参数是关于Linux TCP/IP 栈的参数,相关的帮助可以通过man tcp或info tcp获取。在这个目录中,包括了一些特殊的文件,不仅能用来反映内核的现行状态和查看硬件信息,而且,有些文件还允许用户来修改其中的内容,以调节内核的现行工作状态,例如/proc/sys/子目录下的文件。与/proc/目录中其它目录不相同的是,/proc/sys/目录下的文件不仅能提供系统的有关信息,而且还允许用户立即停止或开启内核的某些特性及功能。在/proc/sys/目录中的/proc/sys/net/子目录更是与网络息息相关,我们可以通过设置此目录下的某些文件来开启与网络应用相关的特殊功能,同时,也可以通过设置这个目录下的某些文件来保护我们 的网络安全。本文主要介绍 会影响tcp建立连接三次握手的一些因素:

1  /proc/sys/net/ipv4/tcp_max_syn_backlog    (1024)

该变量控制每个监听端口接收的客户端发送的SYN队列的长度,输入的SYN报文段连接请求需要排队,直到本地服务端接收,如果连接数多于默认值,则新来的连接请求会被丢弃,在服务端会维护一个未连接队列,该队列为每个客户端发送的SYN包开设一个条目,说明已经收到SYN包,并且向客户端发出SYN+ACK包,等待客户端的确认SYN包,这时服务端出于SYN_RECV状态,如果tcp_max_syn_backlog过小,一直收不到客户端最后发来的SYN确认包,服务端就会一直出于SYN_RECV状态,查看netstat -an的时候如果SYN_RECV过多有可能就是tcp_max_syn_backlog过小。www.169it.com

2  /proc/sys/net/ipv4/tcp_synack_retries    (5)

该变量控制内核向某个输入的SYN/ACK段重新发送响应的次数,降低取值可以更早的检测到客户端连接失败的尝试。

3  /proc/sys/net/ipv4/tcp_retries2   (15)

该变量控制内核向已经建立连接的远程主机重新发送数据的次数,降低取值可以更早的检测到与远程主机的连接失效,从而可以快速释放该链接的资源。

4  /proc/sys/net/ipv4/ip_local_port_range   (32768   61000)

该变量控制系统上可用的临时端口的范围。端口是ip协议对各个socket加以区分的地址的逻辑抽象。

5  /proc/sys/net/ipv4/tcp_retries1   (3)

该变量设置放弃回应一个tcp连接请求前,需要进行多少次重试。

6  /proc/sys/net/ipv4/tcp_syncookies  (0 关闭  1 打开)

该参数主要用来防止SYN FLOOD攻击。SYN Cookie是对TCP服务器端的三次握手协议作一些修改,专门用来防范SYN Flood攻击的一种手段。它的原理是,在TCP服务器收到TCP SYN包并返回TCP SYN+ACK包时,不分配一个专门的数据区,而是根据这个SYN包计算出一个cookie值。在收到TCP ACK包时,TCP服务器在根据那个cookie值检查这个TCP ACK包的合法性。如果合法,再分配专门的数据区进行处理未来的TCP连接。

Linux内核中影响tcp三次握手的一些协议配置相关推荐

  1. 【Linux网络编程】TCP三次握手和四次挥手

    00. 目录 文章目录 00. 目录 01. 三次握手 02. 四次挥手 03. 三次握手和四次挥手原因 04. 2MSL 05. 附录 01. 三次握手 在 TCP/IP 协议中,TCP 协议提供可 ...

  2. linux网络编程之TCP三次握手和四次挥手

    1.在TCP连接的过程中,有三个阶段,分别是建立连接,传递数据和断开连接,通讯时序图如下所示: 2.结合TCP数据报格式分析建立连接的三次握手 1)首先客户端发送一个带有SYN标志的TCP报文给服务器 ...

  3. 【Linux 内核】进程管理 ( 进程特殊形式 | 内核线程 | 用户线程 | C 标准库与 Linux 内核中进程相关概念 | Linux 查看进程命令及输出字段解析 )

    文章目录 一.进程特殊形式 ( 内核线程 | 用户线程 ) 二.C 标准库与 Linux 内核中进程相关概念 三.Linux 查看进程命令及输出字段解析 一.进程特殊形式 ( 内核线程 | 用户线程 ...

  4. 【抓包工具】Wireshark(详细介绍与TCP三次握手数据分析)

    wireshark(官方下载网站: http://www.wireshark.org/),是用来获取网络数据封包,可以截取各种网络封包,显示网络封包的详细信息,包括http,TCP,UDP,等网络协议 ...

  5. 抓包工具 - Wireshark(详细介绍与TCP三次握手数据分析)

    功能使用的详细介绍 wireshark(官方下载网站: http://www.wireshark.org/),是用来获取网络数据封包,可以截取各种网络封包,显示网络封包的详细信息,包括http,TCP ...

  6. TCP三次握手在linux内核中的实现

    TCP三次握手在linux内核中的实现 以下基于linux内核2.4.0源码(转自www.yuanma.org/) 以前一直使用的网络通讯的函数都是工作在阻塞模式.在看connect实现源码时,突然想 ...

  7. 【Linux云计算架构:第三阶段-Linux高级运维架构】第26章——tcp三次握手四次挥手及在局域网中使用 awl伪装MAC地址进行多线程SYN攻击

    25.1 tcp三次握手及tcp连接状态(含tcpdum抓包分析) 25.2 tcp四次挥手及tcp连接状态 25.3 实战:在局域网中使用 awl伪装MAC地址进行多线程SYN攻击 ssh 客户端: ...

  8. 从TCP三次握手说起——浅析TCP协议中的疑难杂症(转载)

    [转载] 原博文来自:https://blog.csdn.net/qiansg123/article/details/80126677 作者:黄日成,手Q游戏中心后台开发,腾讯高级工程师. 因为写得太 ...

  9. 从TCP三次握手说起——浅析TCP协议中的疑难杂症

    PeterWang_bupt 贡献值:2 等級:L1 0 发布 0 评论 1 顶 发布链接发布图文   全部主题 我关注的主题 GEEKNEWS Rust Swift 全栈工程师 /home Pres ...

最新文章

  1. 用Python在Windows或Linux下批量删除文件夹中指定的文件
  2. 【R语言】迫松分布估计--判断是否符合迫松分布
  3. 搭建分布式环境:Dubbo+Zookeeper
  4. c语言中123 234 345 456,如何在C中将数字从1123456789格式化为1,123,456,789?
  5. mysql tomcat列表增删改查_Tomcat-Database
  6. Request中的方法调用
  7. IFrame中 Forms验证超时页面跳转跳出框架 简单解决方法
  8. 首尔2017年公共区域全覆盖免费WiFi
  9. linux创建分区_在Linux中创建分区-分步指南
  10. WPS个人版安装VBA教程
  11. Dev-C++下载与安装教程
  12. 矩阵按键之行列式扫描
  13. pdf介绍及pdf相关软件(内容来自百度百科)
  14. JSON在线对比差异工具
  15. 软考中级哪一门比较好过?我建议你考这个。
  16. 推荐一款点阵字库生成工具/点阵生成器
  17. html输入框素材,html文本框代码
  18. PLC控制系统如何抵抗干扰
  19. 基于php的心理测试,据说是韩国最受欢迎的心理测试~~
  20. 【浪漫程序员系列】情人节给女友写代码表达爱意,让她感动到哭

热门文章

  1. java 面试题 简书_java面试题
  2. python 如果你的年龄大于18_python基础
  3. 斐波那契的数列的计算python-python斐波那契数列的计算方法
  4. Programming Computer Vision with Python (学习笔记一)
  5. 如何评价rcnn、fast-rcnn和faster-rcnn这一系列方法?
  6. Vue.js 计算属性和侦听器
  7. 敏捷开发的45个好习惯
  8. Spring五个事务隔离级别和七个事务传播行为
  9. [译]解密 Uber 数据科学团队路径选择算法的优化之路
  10. Vim 实用技术,第 2 部分: 常用插件