• 未整理的笔记


    上面的三种方法  只是用了  调节队列的大小解决 和回复RST方式解决  但是未完全的解决大量sys报文的攻击    

    1 正常流程  不解释  自己理解

    2 应用程序过慢  当accept过慢时候  ACCEPT队列 容易满    那么recv ACK就会不成功 (所以将socket 在accept时候设置为  noblocking的原因也是有的吧在这里 )

    3 当SYN队列满了之后  新的syn不再进入队列  启用cookie    在发送SYN+ACK时候加上cookie的方法      解决ACCEPT队列爆掉  (理解为 新来的syn不处理了  只处理服务器第二次握手 回复的syn+ack包中带有cookie这样的  ACK报文了 )  这样性能会下降

     

    Fast_open功能开启和未开启过程对比的图片  自己看图不解释了

     

     

     

     

     

    1吞吐量优先  那么就要开启Nagle算法减少小包 小包合并一起发送  tcp_nodelay  off

    2低时延续优先  即发一个很小的包立刻需要回复例如Xshell终点类型的小包交互型应用就需要客户端快速响应提高用户体验     tcp_nodelay  on即不准时延

     

     

     

     

    Tcp keeplive  区别于http中的keeplive   (注意两者是完全不同的意义)

     

    Tcp keeplive在tcp中的作用是检测连接是否有效的一种机制  这样可以剔除无效的连接

     

     

     

     

     

     

     

     

    上面的话需要理解整理下  从新叙述一遍     延迟关闭就是 Nginx实现优雅的关闭

     

     

     

     

     

     

     

    为什么需要RST代替正常的四次握手来关闭呢

    因为当 读或者写 超时时  通过发送RST立刻释放端口和内存资源

  • 相关阅读:
    (笔试题)机器人的运动范围
    (排序)快速排序QuickSort
    (笔试题)风口的猪-中国牛市
    (笔试题)小米Git
    同一片蓝天下,有些人以你想象不到的方式活着
    为什么那么多人工作都不开心?
    比你优秀的人都在努力
    海马体记忆训练:让你拥有超常记忆力
    致青春:不虚度,是对青春最好的交代
    你的袜子还是干的吗?
  • 原文地址:https://www.cnblogs.com/zhangkele/p/10328617.html
Copyright © 2020-2023  润新知