六、 如何查看TCP的状态
1、命令方式
下面以Windows XP为例看看新安装的系统都开了那些端口,也就是说都预留了那些门,不借助任何工具来查看端口的命令是netstat,方法如下:
a、在"开始"的"运行"处键入cmd,回车
b、如图3在dos命令界面,键入netstat -na,图3显示的就是打开的***口,其中Proto代表协议,该图中可以看出有TCP和UDP两种协议。Local Address代表本机地址,该地址冒号后的数字就是开放的端口号。Foreign Address代表远程地址,如果和其它机器正在通信,显示的就是对方的地址,State代表状态,显示的LISTENING表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开了,但此时还没有人进来。以第一行为例看看它的意思。
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
这一行的意思是本机的135端口正在等待连接。注意:只有TCP协议的***口才能处于LISTENING状态。其它状态稍后讲。
图3
2、用TCPView工具
为了更好的分析端口,最好用TCPView这个软件,它是动态的。
图4是TCPView的运行界面。第一次显示时字体有些小,在"Options"->"Font"中将字号调大即可。TCPView显示的数据是动态的。图3中Local Address显示的就是本机开放的哪个端口(:号后面的数字),TCPView可以看出哪个端口是由哪个程序发起的。从图3可以看出445、139、1025、135、5000等端口是开放的,445、139等端口都是system发起的,135等都是SVCHOST发起的。
图4
七、 正常变迁过程
1、抓包
抓包过程请参见"学习"一文中的"三、测试过程",不同的是不用下载文件,在浏览器中输入FTP地址后关闭浏览器既是一个完整的数据传输过程。另为208号机改为207号。下图5中是截取的过程,其中10-28行省略了。
图5
2、分析
1)三次握手的状态
图5中3-5行是建立连接的三次握手过程,结合图2看其状态变化如下:
1))图5第3行和图6显示,207号机向1号机发出连接请求, 207号机标志位SYN置1,随即产生一个初始序号(SEQ)3748168237发送给1号机,此时207号机处于SYN_SEND状态。
2)) 图5第4行和图6中No.4显示, 1号机收到这个序号后,将此序号加1值为3748168238作为应答信号(ACK),同时随机产生一个初始序号(SEQ)4265983929,此时1号机将标志位SYN和ACK置1,发回到请求端207号机,此时1号机由LISTEN状态变为SYN_RCVD状态。
3))图5第5行和图6中No.5显示,207号机收到后将确认序号设置为1号机的初始序号(SEQ)4265983929加1为4265983930作为应答信号并且将标志为ACK置1发送给1号机。这样在完成了三次握手后207号机处于ESTABLISHED状态。
图6 是三次握手的标志位变化情况。
图6 三次握手的标志位变化
2)数据传输的状态
图5中6-30行是数据传送的过程,数据在传送的过程中一直处于ESTABLISHED状态。ESTABLISHED的意思是建立连接。表示两台机器正在通信。处于ESTABLISHED状态的连接一定要格外注意,因为它也许是正常传输数据,也许是木马之类在盗取你的数据。
图7 是数据传输时的标志位变化。
图7 数据传输时的标志位变化
3)终止连接的状态
图5中32-35行是终止连接的过程,结合图2看其状态变化如下:
1))32行数据和图8中No.32显示的是207号机关闭浏览器后,207号机将FIN置1连同序号(SEQ) 3748168337发给1号机请求终止连接。此时207号机处于FIN_WAIT_1状态。
2))33行数据和图8中No.33显示1号机收到FIN关闭请求后处于CLOSE_WAIT状态,1号机将标志位ACK置1,并将应答信号设置为收到序号加1(ACK=3748168338)发回给207号机,这样就终止了这个方向的传输。
3))34行数据和图8中No.34显示1号机将FIN置1连同序号(SEQ) 4265984517发给207号机请求终止连接。此时1号机处于LAST_ACK状态
4))35行数据和图8中No.35显示207号机收到FIN关闭请求后,发回一个确认,并将应答信号设置为收到序号加1(ACK=4265984518),至此TCP连接彻底关闭。此时207号机处于TIME_WAIT状态。1号机处于CLOSED状态,此次连接彻底结束。
图7是终止连接的标志位变化。
图8 终止连接的标志位变化
4)正常状态下的TCP状态显示
下图9、10、11是1号机在不同阶段用TCPview捕获的TCP状态,由于有些状态非常短暂,难以捕获,只要能理解其中的意思即可。在上网是注意用TCPview观察,图3中的状态基本都能看到,TCPview显示的状态既有客户端的也有服务器端的。图11就是在1号机显示的207号机的状态。
图9是1号机FTP服务没有被访问时处于LISTENING状态的情况。
图10是207号机正在访问1号机服务器的情况。此时1号机的21端口处于ESTABLISHED状态,这里需要注意的是1号机在和207号机建立连接时,还有一个21端口处于LISTENING状态,这是因为它允许多用户访问,就像一个网站,它的80端口可以同时与许许多多的用户建立连接。
图11是结束连接的情况。其中TIME_WAIT应该是207号机的状态。
图9
图10
图11
1、命令方式
下面以Windows XP为例看看新安装的系统都开了那些端口,也就是说都预留了那些门,不借助任何工具来查看端口的命令是netstat,方法如下:
a、在"开始"的"运行"处键入cmd,回车
b、如图3在dos命令界面,键入netstat -na,图3显示的就是打开的***口,其中Proto代表协议,该图中可以看出有TCP和UDP两种协议。Local Address代表本机地址,该地址冒号后的数字就是开放的端口号。Foreign Address代表远程地址,如果和其它机器正在通信,显示的就是对方的地址,State代表状态,显示的LISTENING表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开了,但此时还没有人进来。以第一行为例看看它的意思。
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
这一行的意思是本机的135端口正在等待连接。注意:只有TCP协议的***口才能处于LISTENING状态。其它状态稍后讲。
图3
2、用TCPView工具
为了更好的分析端口,最好用TCPView这个软件,它是动态的。
图4是TCPView的运行界面。第一次显示时字体有些小,在"Options"->"Font"中将字号调大即可。TCPView显示的数据是动态的。图3中Local Address显示的就是本机开放的哪个端口(:号后面的数字),TCPView可以看出哪个端口是由哪个程序发起的。从图3可以看出445、139、1025、135、5000等端口是开放的,445、139等端口都是system发起的,135等都是SVCHOST发起的。
图4
七、 正常变迁过程
1、抓包
抓包过程请参见"学习"一文中的"三、测试过程",不同的是不用下载文件,在浏览器中输入FTP地址后关闭浏览器既是一个完整的数据传输过程。另为208号机改为207号。下图5中是截取的过程,其中10-28行省略了。
图5
2、分析
1)三次握手的状态
图5中3-5行是建立连接的三次握手过程,结合图2看其状态变化如下:
1))图5第3行和图6显示,207号机向1号机发出连接请求, 207号机标志位SYN置1,随即产生一个初始序号(SEQ)3748168237发送给1号机,此时207号机处于SYN_SEND状态。
2)) 图5第4行和图6中No.4显示, 1号机收到这个序号后,将此序号加1值为3748168238作为应答信号(ACK),同时随机产生一个初始序号(SEQ)4265983929,此时1号机将标志位SYN和ACK置1,发回到请求端207号机,此时1号机由LISTEN状态变为SYN_RCVD状态。
3))图5第5行和图6中No.5显示,207号机收到后将确认序号设置为1号机的初始序号(SEQ)4265983929加1为4265983930作为应答信号并且将标志为ACK置1发送给1号机。这样在完成了三次握手后207号机处于ESTABLISHED状态。
图6 是三次握手的标志位变化情况。
图6 三次握手的标志位变化
2)数据传输的状态
图5中6-30行是数据传送的过程,数据在传送的过程中一直处于ESTABLISHED状态。ESTABLISHED的意思是建立连接。表示两台机器正在通信。处于ESTABLISHED状态的连接一定要格外注意,因为它也许是正常传输数据,也许是木马之类在盗取你的数据。
图7 是数据传输时的标志位变化。
图7 数据传输时的标志位变化
3)终止连接的状态
图5中32-35行是终止连接的过程,结合图2看其状态变化如下:
1))32行数据和图8中No.32显示的是207号机关闭浏览器后,207号机将FIN置1连同序号(SEQ) 3748168337发给1号机请求终止连接。此时207号机处于FIN_WAIT_1状态。
2))33行数据和图8中No.33显示1号机收到FIN关闭请求后处于CLOSE_WAIT状态,1号机将标志位ACK置1,并将应答信号设置为收到序号加1(ACK=3748168338)发回给207号机,这样就终止了这个方向的传输。
3))34行数据和图8中No.34显示1号机将FIN置1连同序号(SEQ) 4265984517发给207号机请求终止连接。此时1号机处于LAST_ACK状态
4))35行数据和图8中No.35显示207号机收到FIN关闭请求后,发回一个确认,并将应答信号设置为收到序号加1(ACK=4265984518),至此TCP连接彻底关闭。此时207号机处于TIME_WAIT状态。1号机处于CLOSED状态,此次连接彻底结束。
图7是终止连接的标志位变化。
图8 终止连接的标志位变化
4)正常状态下的TCP状态显示
下图9、10、11是1号机在不同阶段用TCPview捕获的TCP状态,由于有些状态非常短暂,难以捕获,只要能理解其中的意思即可。在上网是注意用TCPview观察,图3中的状态基本都能看到,TCPview显示的状态既有客户端的也有服务器端的。图11就是在1号机显示的207号机的状态。
图9是1号机FTP服务没有被访问时处于LISTENING状态的情况。
图10是207号机正在访问1号机服务器的情况。此时1号机的21端口处于ESTABLISHED状态,这里需要注意的是1号机在和207号机建立连接时,还有一个21端口处于LISTENING状态,这是因为它允许多用户访问,就像一个网站,它的80端口可以同时与许许多多的用户建立连接。
图11是结束连接的情况。其中TIME_WAIT应该是207号机的状态。
图9
图10
图11