TCP三次握手的过程如下:
1)主动连接端发送一个SYN包给被动连接端;
2)被动连接端收到SYN包后,发送一个带ACK和SYN标志的包给主动连接端;
3)主动连接端发送一个带ACK标志的包给被动连接端,握手动作完成。
TCP四次挥手的过程如下:
1)主动关闭端发送一个FIN包给被动关闭端;
2)被动关闭端收到FIN包后,发送一个ACK包给主动关闭端;
3)被动关闭端发送了ACK包后,再发送一个FIN包给主动关闭端;
4)主动关闭端收到FIN包后,发送一个ACK包,当被动关闭端收到ACK包后,四次挥手动作完成,连接断开。
netstat中的各种状态:
CLOSED 初始(无连接)状态。
LISTEN侦听状态,等待远程机器的连接请求。
SYN_SEND在TCP三次握手期间,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包。
SYN_RECV在TCP三次握手期间,主动连接端收到SYN包后,进入SYN_RECV状态。
ESTABLISHED 完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。
FIN_WAIT_1 在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态。
FIN_WAIT_2 在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态。
TIME_WAIT 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。
CLOSING 在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的FIN包,此时,进入CLOSING状态。
CLOSE_WAIT 在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态。
LAST_ACK 在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。
主动连接端可能的状态有:
CLOSED SYN_SEND ESTABLISHED。
主动关闭端可能的状态有:
FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT。
被动连接端可能的状态有:
LISTEN SYN_RECV ESTABLISHED。
被动关闭端可能的状态有:
CLOSE_WAIT LAST_ACK CLOSED。
在Linux下,如果连接数比较大,可以使用效率更高的ss来替代netstat。
原文出处:http://blog.csdn.net/tommwq/article/details/8041031
相关推荐
netstat TCP状态栏排序并统计脚本
标题中的“使用 netstat 命令监视网络状态”指的是在操作系统中,通过执行 netstat 命令来查看和分析网络连接、监听端口、路由表等信息,以了解和诊断网络活动。netstat 是一个强大的网络诊断工具,尤其在系统管理员...
### CMD中Netstat命令详解 #### 一、引言 `Netstat` 是一个非常重要的命令行工具,用于查看和管理计算机上的网络连接状态。它能够帮助用户了解系统的网络活动情况,包括显示当前的TCP/IP连接、监听端口、路由表、...
1. **显示所有网络连接**:通过`-a`或`--all`参数,netstat能够呈现系统中所有正在运行的Socket连接状态,无论它们是否已经建立了连接,还是处于监听状态等待连接请求。 2. **查看网络统计数据**:`-s`或`--...
网络诊断是IT运维中的重要环节,而netstat(网络状态)命令作为Linux/Unix系统中不可或缺的工具,它提供了查看网络连接、路由表、接口统计等信息的功能,是排查网络问题的得力助手。本文将围绕netstat命令,探讨其...
Linux 网络状态工具 netstat 和 ss 使用详解 Netstat 是一个广泛使用的...在 Linux 系统中,Netstat 和 SS 命令都是非常有用的网络状态工具,帮助管理员和开发者快速了解系统的网络状态,解决网络问题和优化网络性能。
4. **分析协议统计**:用户可以通过`Netstat`获取各种协议(如IP、TCP、UDP等)的统计信息,这对于网络工程师来说是非常有价值的诊断工具。 5. **显示路由表**:除了连接信息之外,`Netstat`还能展示路由表的信息,...
Linux netstat命令是一种非常有用的网络命令,用于显示各种网络相关信息,如网络连接、路由表、接口状态、masquerade连接、多播成员等等。本文将详细介绍netstat命令的使用和输出结果的解释。 netstat命令的基本...
`netstat`是一个非常实用且强大的命令行工具,主要用于查看网络连接的状态以及系统网络端口的使用情况。通过使用`netstat`命令,我们可以更好地确保网络的稳定运行,监控网络连接的状态,排查网络故障等问题。 ####...
在VB.NET编程环境中,`netstat`命令是一个非常实用的工具,它用于显示网络连接、路由表、接口统计等信息,帮助开发者或系统管理员了解网络连接的状态。在VB.NET中,我们可以通过创建一个子进程来调用操作系统内置的`...
标题和描述中的“netstat -na 结果”指的是在命令行环境下使用netstat命令并附加-na参数后所显示的信息。netstat(network statistics)是一个在Unix、Linux以及Windows系统中常用的网络工具,用于报告网络连接、...
3. **错误处理**:在读取和解析网络状态时,可能会遇到各种错误,如无效的套接字句柄或系统调用失败。良好的错误处理机制至关重要。 4. **输出格式化**:为了让用户易于理解和分析,输出应与原`netstat`命令保持一致...
netstat -anp
Netstat的主要功能是检查本机各端口的网络连接情况,适用于各种网络环境下的诊断需求。 #### 二、Netstat功能特性 Netstat提供了丰富的参数选项,以满足不同的需求。下面详细介绍Netstat的部分重要参数及其作用: ...
NetStat(网络状态)是操作系统中一个用于显示网络连接、监听端口、路由表和网络接口统计的实用工具。在Delphi中实现NetStat功能,可以帮助开发者监控应用程序的网络活动,诊断网络问题或分析网络连接状态。 描述中...
`netstat`是Linux系统下用于打印网络状态信息的重要工具,可以帮助用户了解整个系统的网络情况,包括但不限于TCP和UDP连接状态、监听端口等关键信息。对于系统管理员而言,掌握`netstat`的使用方法是非常必要的。 ...
在计算机网络管理中,`netstat`(Network Statistics)是一个非常实用的命令行工具,它能够显示当前系统网络连接的状态、路由表、接口统计等信息,帮助用户了解网络运行的情况,诊断网络问题。这个命令在Windows、...
在实际应用中,Netstat 命令可以帮助网络管理员快速了解当前系统中的网络连接状态,从而帮助他们更好地管理和维护网络系统。此外,Netstat 命令也可以用于排查网络问题,例如网络连接超时、连接不上等问题。
**CMD**是Windows操作系统中的命令行解释器,用于执行各种命令行操作。通过CMD,用户可以管理文件系统、网络设置以及执行各种脚本和批处理文件等。下面将详细介绍CMD的一些高级用法及其参数。 ##### CMD 命令参数...