TCP即传输控制协议,提供一种面向连接,可靠的字节流服务。
TCP有6个标志位:
- URG:紧急指针
- ACK:确认序号有效
- PSH:接收方应该尽快将这个报文段交给应用层
- RST:重建连接
- SYN:同步序号用来发起一个连接,
- FIN:发端完成任务。
1.TCP 三次握手
第一次握手:客户端将标志位SYN置1,随机产生一个客户端初始序列值J,并将包含J值的SYN数据包发送给服务端,指明客户打算连接服务端的端口。客户端进入SYN_SENT状态,等待服务端确认
第二次握手:服务端收到SYN包之后,必须确认客户的SYN,即生成一个值为J+1的ACK应答包,同时产生一个包含服务端初始化序列K的SYN包,将SYN+ACK数据包发送给客户端,服务端进入SYN_RCVD状态。
第三次握手:客户端收到服务端的SYN+ACK数据包之后,向服务器发送确认包,其数据为K+1,发送完毕后,客户端和服务端进入ESTABLISHED状态。
2.TCP 四次挥手
第一次挥手:客户端发送一个FIN,用来关闭客户端到服务端的数据传送。
第二次挥手:服务端收到FIN之后,发送一个ACK应答给客户端,确认序号为收到序号加1。
第三次挥手:服务端发送一个FIN,用来关闭服务端到客户端的数据传送。
客户端收到FIN后,将确认序号设置为收到序号加1,发送ACK确认信号。