传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的传输层通信协议。
面向连接:指使用TCP协议的程序在使用的时候,需要预先进行建立一个数据通信连接。
可靠:TCP协议在建立的时候需要先进行三次握手,保证对方的可连接性。
1、客户端访问FTP服务器进行下载文件,由于FTP是基于TCP协议进行工作的,所以客户端在访问FTP服务器时必然会进行建立TCP连接。
2、通过在交换机上对任意端口进行抓包,来分析TCP的三次握手建立连接过程
,以及TCP连接断开时的四次挥手过程
。
SYN置位的TCP报文
,意为请求建立TCP连接。SYN、ACK置位的TCP报文
,意为同意建立TCP连接。ACK置位的TCP报文
,意为同意建立TCP连接。
注释:因为主机刚开机,且是第刚进行报文交互,所以Seq报文序号从0开始。
Flags-SYN置位1、Seq报文序号0、ack确认序号0、窗口大小8192、源端口2051、目的端口21
的TCP报文Flags-SYN、ACK置位1、Seq序号0、ack确认序号1、窗口大小8192、源端口21、目的端口2051
的TCP报文Flags-ACK置位1、Seq序号1、ack确认序号1、窗口大小8192、源端口2051、目的端口21
的TCP报文
Goodbye信息
,表示请求与客户端进行断开TCP连接。Flags-ACK置位1的TCP报文
,表示收到断开信息,且FTP客户端也开始清除FTP进程。
Flags-FIN、ACK置位1的TCP报文
通知服务器,自己准备好断开连接了,就差你的ACK回复了!Flags-ACK置位1的TCP报文
,表示收到断开信息。