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