网络编程(26)—— TIME_WAIT、FIN_WAIT1、FIN_WAIT2和CLOSE_WAIT状态的区别
下面接着《详解TCPIP断开连接后的Time-wait状态》一文的内容,我们讨论下socket在断开连接中的另外三种状态FIN_WAIT1、FIN_WAIT2状态和CLOSE_WAIT状态。
首先启动socket服务端,然后用客户端进行连接,用netstat –ant命令查看目前套接字的状态:
发现客户端和服务器的套接字都进入了established状态,说明客户端和服务端都正常工作,此时我们在服务端输入Ctrl+C终端服务端程序,再次输入netstat–ant命令,这是就看到了服务端进入了FIN_WAIT2状态,而客户端进入了CLOSE_WAIT状态。
关于断开套接字断开连接时的四次握手在这里不再赘述,而这个FIN_WAIT2状态就是服务端在主动发起断开的连接请求时,发送FIN并收到客户端的ACK进入的等待客户端FIN的状态;而与FIN_WAIT2相对的FIN_WAIT1就是服务端发送完成FIN后还未接收到客户端返回的ACK时进入的状态,这个状态时长很短,在我本机上无法捕捉;这个CLOSE_WAIT状态是客户端接受到服务端的FIN并发送ACK后,等待用户手动关闭套接字的状态。
此时如果关闭客户端的套接字,直接在客户端输入Ctrl+C,服务端就会进入我们熟悉的TIME_WAIT状态:
网络编程(26)—— TIME_WAIT、FIN_WAIT1、FIN_WAIT2和CLOSE_WAIT状态的区别相关推荐
- 解决Linux服务器中TCP的FIN_WAIT2,CLOSE_WAIT状态连接过多的问题
问题现象 Linux系统服务器中FIN_WAIT2,CLOSE_WAIT状态的TCP链接过多,服务不能及时响应. 通过命令 netstat –ant|grep FIN_WAIT2|wc –l 查看连接 ...
- Java基础学习总结:网络编程之(四)TCP与UDP的区别及常见的网络协议(转)
TCP和UDP的区别 原文:https://blog.csdn.net/li_ning_/article/details/52117463 1.TCP与UDP基本区别 基于连接与无连接 TCP要求系统 ...
- 【网络编程】time_wait状态产生的原因,危害,如何避免
转自:https://blog.csdn.net/u013616945/article/details/77510925 做略微修改 仅供个人学习 1. time_wait状态如何产生? 在tcp ...
- Java学习记录五(多线程、网络编程、Lambda表达式和接口组成更新)
Java学习记录五(多线程.网络编程.Lambda表达式和接口组成更新) Java 25.多线程 25.1实现多线程 25.1.1进程 25.1.2线程 25.1.3多线程的实现 25.1.4设置和获 ...
- Socket网络编程面试题
Socket网络编程面试题 1.TCP和UDP的区别: 2.流量控制和拥塞控制的实现机制: 3.重传机制: 4.滑动窗口机制: 5.多线程如何同步: 6.进程和线程的区别: 7.进程间通讯的方式有哪些 ...
- 网络编程释疑之:TCP的TIME_WAIT状态在服务器开发中的影响?
在进行TCP高并发服务器开发时,有些规则仿佛是约定俗成的,很多朋友会依据这些规则去做,比如高并发TCP服务器中进行主动关闭的一方最好是客户端.服务器端程序最好启用SO_REUSEADDR选项,但是很多 ...
- 网络编程-线程,守护线程,线程互斥锁-26
网络编程-线程,守护线程,线程互斥锁-26 内容: 进程部分: 进程间通信=>IPC 生产者消费者模型() 线程部分: 1. 线程理论() 2.开启线程的两种方式() 3. 线程对象其他相关的属 ...
- close_wait状态和time_wait状态
不久前,我的Socket Client程序遇到了一个非常尴尬的错误.它本来应该在一个socket长连接上持续不断地向服务器发送数据,如果socket连接断开,那么程序会自动不断地重试建立连接. 有一天 ...
- 常见网络编程面试题答案征集与面试题(收集) ZZ 【网络编程】
http://www.cnblogs.com/wickedboy237/archive/2013/05/12/3074362.html 1:tcp和udp的区别 2:流量控制和拥塞控制的实现机制 3: ...
最新文章
- ORA-12919: Can not drop the default permanent tablespace
- Javascript对象的查询字符串编码
- 操作系统(三十二)内存的基础常识
- Android复习15【动画:创建资源文件夹、创建动画资源文件、组合动画、属性动画、材料设计新特性】
- oracle join 嵌套,誰能真正理解hash join/nested loop/merge join
- 企业级IM应该帮助员工提高绩效,避免无关的信息干扰
- 关于tensorflow2.0的弊端
- 《南溪的目标检测学习笔记》——后处理方法的学习笔记
- 多线程矩阵乘法运算 c++
- java中方法的_Java中的常用方法
- Mysql中将查询出来的多列的值用逗号拼接
- Blender快捷键大全
- css代码实现3D动画翻转 - 鱿鱼游戏卡片制作
- EXCEL如何实现两个表的相应数据关联
- 【免费内网穿透】Windows远程桌面连接树莓派
- 低度酒的诸神之战,能分出胜负吗?
- 志强处理器结尾的ES、QS、正式版的区别
- 长安二中计算机学院,最新!第一波中考录取分数线出炉!长安区12所高中录取分数线正式公布!...
- 【Vegas原创】word图片隐藏在文字里了的终极解决办法
- 程序员实用工作技能之Docker