【TCP连接的状态】

linux查看tcp的状态命令:

1)、netstat -nat  查看TCP各个状态的数量

2)、lsof  -i:port  可以检测到打开套接字的状况

3)、  sar -n SOCK 查看tcp创建的连接数

4)、tcpdump -iany tcp port 9000 对tcp端口为9000的进行抓包

查看占用端口的进程PID

> netstat -aon|findstr 5037
TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       15448

通过PID查看所有进程

> tasklist /fi "PID eq 15448"
映像名称                       PID 会话名              会话#       内存使用
========================= ======== ================ =========== ============
adb.exe                      15448 Console                    1      5,728 K

杀死占用端口的进程

> taskkill /pid 15448 /f
成功: 已终止 PID 为 15448 的进程。

LISTENING:侦听来自远方的TCP端口的连接请求. 

首先服务端需要打开一个socket进行监听,状态为LISTEN。

SYN-SENT:客户端SYN_SENT状态:

当请求连接时客户端首先要发送同步信号给要访问的机器,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED,正常情况下SYN_SENT状态非常短暂。

SYN-RECEIVED:服务器端状态SYN_RCVD

当服务器收到客户端发送的同步信号时,将标志位ACK和SYN置1发送给客户端,此时服务器端处于SYN_RCVD状态,如果连接成功了就变为ESTABLISHED,正常情况下SYN_RCVD状态非常短暂。

如果发现有很多SYN_RCVD状态,那你的机器有可能被SYN Flood的DoS(拒绝服务攻击)攻击了。

ESTABLISHED:代表一个打开的连接。

ESTABLISHED状态是表示两台机器正在传输数据,观察这个状态最主要的就是看哪个程序正在处于ESTABLISHED状态。

FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认

FIN-WAIT-2:从远程TCP等待连接中断请求

CLOSE-WAIT:等待从本地用户发来的连接中断请求

CLOSING:等待远程TCP对连接中断的确认

LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认

TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认

CLOSED:没有任何连接状态

netstat命令可以查看socket状态,可搭配的参数:
1、-a:显示所有的socket连接;

2、-l:显示listening的socket,即服务器正在等待客户端的连接;可查看自己写的服务器是否正常运行

3、-t:显示tcp的socket;

4、-u:显示udp的socket;

5、-n:不将IP地址和主机名解析成域名;

6、-p:显示建立socket连接的程序名。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值