TCP的三次握手和四次挥手,及抓包分析工具推荐

一,三次握手
三次握手(three times handshake;three-way handshake)就是对每次发送的数据量跟踪方式 达成协议, 使数据包的发送和接收同步,根据所接收到的数据量 来确定 数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。
为了提供可靠的传送,TCP在发送新的数据之前,按特定顺序排列数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP总是用来发送大批量的数据。当进程在收到数据后要做出确认时也要用到TCP。
TCP报文 包含了(1) 源端口,目的端口 (2)序号 (3)确认号 (4)首部长度 ,保留,标志位 ,窗口
(5)检验和,紧急指针 (6)选项(可选),填充  (7) 数据(8)数据。。。。
每个小点都各是占32位长度;
详解:(1)序号seq 和确认序号ack,是用来标识从TCP源端向目的端 发送的字节流,用于检验数据包的真实性;
   (2)标志位包括了URGACKPSHRSTSYNFIN;
ACK用于确认序号有效,SYN用于发起新连接,FIN用于释放连接
整个流程如下:
TCP的三次握手和四次挥手,及抓包分析工具推荐
二,四次挥手
 既然TCP连接是全双工的,so每一方都必须单独进行关闭,就是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接,收到一个 FIN只意味着这一方向上没有数据发送,而一个TCP连接 在收到一个FIN后仍能发送数据。
首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。 
客户端主动关闭流程如下:
TCP的三次握手和四次挥手,及抓包分析工具推荐
拓展
实践才是检验真理的唯一标准,标志位等数据到底在哪里可以获取到呢?

可以通过大白鲨WireShark抓包工具来分析TCPUDP数据包。

TCP的三次握手和四次挥手,及抓包分析工具推荐