TCP连接建立与断开


重点关注标记:
  • SYN:建立连接时的同步信号
  • ACK:确认收到数据
  • FIN:需要关闭连接
三次握手确认建立双向连接:
  1. 男:我们谈朋友吧!->SYN
  2. 女:谈朋友,好的!->SYN+ACK
  3. 男:好的!->ACK
    ps:如男方后悔了另谋对象,没有第三次确认,那么女方就是单方面确认谈朋友,建立了脏连接。
四次挥手确认断开连接:
  1. 男:我们分手吧!->FIN
  2. 女:好的,等我收拾完东西发消息给你(此时男不能再拥抱女了,即男不能再发送新数据)。->ACK
  3. 女:我收拾好了,分手吧(此时女也不能再拥抱男了,即女也不能再发送新数据了)。->FIN+ACK
  4. 男:好的(此时双方约定两个月过渡期后才可以分别找新对象)!->ACK

以上女生在收拾东西期间男生有一个等待期(time_wait),即要对女方负责(好聚好散),还有个两个月过渡期(close_wait),如果经常这样干就会浪费双方很多时间,所以在高并发情况下需要有针对性的调优处理,如:

  1. 缩短等待期(time_wait)(把高并发服务器的超时时间调小,通过变更/etc/sysctl.conf文件来修改:net.ipv4.tcp_fin_timeout=30);
  2. 过渡期也缩短(修改2MSL,如从240改为5);
  3. sysctl.conf中其他连接参数也可以不断调整。

阅读《码出高效:java开发手册》中第一章 TCP/IP后暂时的心得总结。

posted @ 2021-12-29 23:21  ai狗子  阅读(32)  评论(0编辑  收藏  举报