TCP连接端口的状态

我们知道面试中,最常问到的关于网络的TCP/IP协议方面的应该就是

1.TCP的3次握手和4次分手的过程?

2.TCP和UDP的区别?

等等。

而这里我要总结一下TCP在连接过程中的端口的状态的问题。在Linux下,可以用netstat  -ntal 查看tcp 的端口,如果要查看具体的某一个端口号,可以grep  xxx 过滤出

相应的哪一个端口,查看其状态。


1.LISTENING状态
FTP 服务启动后首先处于侦听状态State 显示是 LINSTENING 时表示处于侦听状态,

就是说该端口是开放的,等待连接,但还没有连接。

TCPView可以看出本机开放FTP 的情况。它的意思是程序开放了

FTP默认端口为21,可见在本季开放了FTP服务。目前处于侦听状态。


2.ESTABLISHED状态

现在从192.168.1.1这台计算机访问一下192.168.1.10FTP服务。

在本机的TCPView可以查看端口状态变为ESTABLISHED.

ESTABLISHED的意思是建立连接。表示两台机器正在通信。

3.TIME_WAIT状态

现在从102.168.1.1这台计算机结束访问192.168.1.10FTP 服务。

在本机TCPView可以查看出端口状态变为TIME_WAIT.

TIME_WAIT的意思是结束了这次连接。说明21端口曾经有访问,但访问结束了。



客户端端口状态的变化

1.SYN_SENT状态

SYN_SENT状态表示请求连接,当你要访问其他的计算机的服务时首先要发个同步信号给端口,此时状态为SYN_SENT,如果连接成功了就变为了ESTABLISHED,此时的 SYN_SENT 的状态非常短暂。但如果发现SYN_SENT 非常多且在向不同的机器发出,那你的机器可能中了病毒或震荡波之类的病毒。这类病毒为了感染别的计算机,他就要扫描别的计算机所, 在扫描的过程中对每个要扫描的计算机都要发出同步的请求,这也是出现了许多SYN_SENT的原因。

2.CLOSE_WAIT状态
对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT此时我方要调用 close()来使得连接正确关闭对方主动关闭连接或者网络异常导致连接中断, 这时我方的状态会变CLOSE_WAIT此时我方要调用 close()来使得连接正确关闭





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章