• Linux网络编程系列TCP状态分析


    TCP三路握手(SYN、ACK):


    TCP终止连接(四次握手,2个FIN、2个ACK):


    TCP的TIME_WAIT状态:

    Who-主动关闭方,When-接收到被动端的FIN,Why-实现终止TCP全双工连接的可靠性(可能需要重发ACK)/允许老的重复分节在网络中消失,How Long-2MSL(1m-4m)

    避免TIME_WAIT过多的办法:修改/etc/sysctl.conf后,执行/sbin/sysctl -p生效

    net.ipv4.tcp_tw_reuse = 1   //允许将TIME_WAIT sockets重新用于新的tcp连接;默认为0,表示关闭
    net.ipv4.tcp_tw_recycle = 1 //开启TCP连接中TIME_WAIT sockets的快速回收;默认为0,表示关闭
    net.ipv4.tcp_syncookies = 1 //表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭
    net.ipv4.tcp_max_tw_buckets = 5000 //系统同时保持TIME_WAIT sockets的最大数,默认为18w
    net.ipv4.tcp_fin_timeout = 30 //主动关闭方处于FIN_WAIT_2的时间
    

    TCP的CLOSE_WAIT状态:

    who-被动关闭方,when-被动端收到FIN1到发送FIN2之间(被动关闭端调用close()发送FIN2)

    TCP状态切换图:


    可以参考:tcp的那些事儿(上)http://coolshell.cn/articles/11564.html

  • 相关阅读:
    Collection<E>接口
    Iterable<T>接口
    Iterator<E>接口
    js图片压缩
    js计算最大公约数和最小公倍数
    canvas原生js写的贪吃蛇
    左右两栏div布局,高度自适应
    vue的图片路径,和背景图片路径打包后错误解决
    职责链模式
    js多个异步请求,按顺序执行next
  • 原文地址:https://www.cnblogs.com/whuqin/p/4982013.html
Copyright © 2020-2023  润新知