linux内核中会维护两个队列:
  1)未完成队列:接收到一个SYN建立连接请求,处于SYN_RCVD状态
  2)已完成队列:已完成TCP三次握手过程,处于ESTABLISHED状态
  3)当有一个SYN到来请求建立连接时,就在未完成队列中新建一项。当三次握手过程完成后,就将套接口从未完成队列移动到已完成队列。
  4)backlog曾被定义为两个队列的总和的最大值,Berkely实现中的backlog值为上面两队列之和再乘以1.5。
  5)如果当客户端SYN到达的时候队列已满,TCP将会忽略后续到达的SYN,但是不会给客户端发送RST信息,因为此时允许客户端重传SYN分节。如果启用syncookies (net.ipv4.tcp_syncookies = 1),新的连接不进入未完成队列,不受影响
6)backlog 即上述已完成队列的大小, 这个设置是个参考值,不是精确值. 内核会做些调整

SYN 洪水攻击(syn flood attack)

通过伪造IP向服务器发送SYN包,塞满服务器的未完成队列,服务器发送SYN+ACK包 没回复,反复SYN+ACK包,使服务器不可用.
启用syncookies 是简单有效的抵御措施.
启用syncookies,仅未完成队列满后才生效.

转载于:https://www.cnblogs.com/taoshihan/p/11217212.html

[TCP/IP] TCP在listen时的参数backlog的意义相关推荐

  1. DIY TCP/IP TCP模块的实现9

    上一篇:DIY TCP/IP TCP模块的实现8 9.11 TCP滑动窗口的实现3 9.10节的DIY TCP/IP已经可以正确接收TCP数据帧了.9.10节只是解析一下收到的TCP数据帧携带的数据长 ...

  2. LwIP tcp/ip socket编程listen函数分析

    函数原型为: [cpp] view plain copy int listen(int  sockfd, int  backlog); <span style="font-family ...

  3. 深入浅析TCP/IP——TCP/IP五层模型

    TCP/IP五层模型 一.TCP/IP五层模型 1.实体层 2.链路层 3.网络层 4.传输层 5.应用层 一.TCP/IP五层模型 层与协议的关系         每一层为了完成一种功能,定义了一种 ...

  4. #TCP/IP# TCP头部选项功能详解

    简单回顾下TCP报文格式 1)TCP报文:由 TCP首部 和 TCP数据 组成. 2)TCP首部:由 20字节的固定长度 和 可变长字段(选项和填充)组成. 3)TCP首部总长度:由TCP头中的&qu ...

  5. [TCP/IP] TCP建立与终止

    TCP的建立与终止 三次握手与四次挥手 TCP提供一种可靠.面向连接.字节流.传输层的服务.TCP是一种面向连接的单播协议. 一个TCP连接由一个4元组构成,它们分别是源IP地址和源端口号,目的IP地 ...

  6. [TCP/IP] TCP流和UDP数据报之间的区别

    TCP流和UDP数据报之间的区别 1.TCP本身是面向连接的协议,S和C之间要使用TCP,必须先建立连接,数据就在该连接上流动,可以是双向的,没有边界.所以叫数据流 ,占系统资源多 2.UDP不是面向 ...

  7. [TCP/IP] TCP如何实现流量控制和拥塞控制

    流量控制:数据的传送与接收过程当中很可能出现收方来不及接收的情况,这时就需要对发方进行控制,以免数据丢失.流量控制用于防止在端口阻塞的情况下丢帧,这种方法是当发送或接收缓冲区开始溢出时通过将阻塞信号发 ...

  8. [TCP/IP]TCP服务端accept发生在三次握手的哪一个阶段

    TCP服务端accept发生在三次握手之后 客户端 socket()==>connect()==>write()==>read() 服务端 socket()==>bind()= ...

  9. TCP/IP / TCP 头

    seq:一次 TCP 通信(从 TCP 连接建立到断开)过程中某一个传输方向上的字节流的每一个报文段的编号. ack:A 对 B 发送来的 TCP 报文段的响应,其值是从 B 收到的 TCP 报文段的 ...

最新文章

  1. imagepreview使用案例_微信小程序wx.previewImage预览图片实例详解
  2. vue修饰符和条件指令
  3. [湖南师大集训2018 7 26] hunger 解题报告 (SPFA)
  4. android studio日历小程序,android studio无法加载日历界面
  5. vertica--an hp company
  6. sql between的用法的意思_SQL 语法手册来啦,你想要的这里都有!
  7. 中巴地球资源(CBERS)卫星系列介绍
  8. 大疆2018网申之机器学习算法工程师笔试题B卷
  9. Android SQlite基本用法
  10. 2015年智能家居大事记 合纵连横成主旋律
  11. 基于JAVA+SpringMVC+Mybatis+MYSQL的学生签到管理系统
  12. 自定义菜单 微信公众平台开发教程(2)
  13. Python:将Word转成HTML
  14. Konga面板接入LDAP踩坑实战
  15. 委外采购申请或委外订单收货完成后,造成的MRP异常处理
  16. Unity3D学习:飞碟游戏进化版
  17. 三万块钱6天的区块链培训,我学会了搭建区块链系统框架?
  18. 边缘计算:电信运营商5G时代战略转型的关键一步
  19. 一文搞懂从浏览器输入一个URL到页面出现都经历了哪些过程
  20. 批处理启动或停止打印机服务

热门文章

  1. dhcp怎么开启 linux,怎么开启DHCP服务器啊
  2. java.rmi.server_java.rmi.ServerException:服务器线程中发生Remo...
  3. mysql iops_MySQL实例IOPS使用率高的原因和解决方法
  4. crontab快速上手
  5. u盘无法复制文件进去_U盘无法复制超过4GB的大文件怎么办?
  6. c语言在win8系统不兼容,Win8系统中存在不兼容软件怎么办?
  7. mysql增删改查的命令_MySql增删改查命令
  8. 计算机在线采集数据注意,全站仪数据采集和传输中的常见问题解决方案
  9. ai如何旋转画布_「AI教程」使用AI制作3D立体文字效果
  10. java的static块执行时机