tcp是传输层协议,基于网络层协议ip。如果连接对象是url,要先通过dns获取到ip地址才能进行连接。
建立连接(三次握手)
- 客户端发送SYN包
syn=j
到服务器,并进入SYN_SEND
状态,等待服务器确认。 - 服务器收到SYN包,向客户端返回ACK
ack=j+1
,同事也发送一个自己的SYN包syn=k
,即ACK包+SYN包。 - 客户端收到服务器的确认
ACK
以及服务器的等待包SYN
,发送确认包给服务器ACK(ack=k+1)
- 服务器接收到
ACK
包后就完成了三次握手,进入ESTABLISHED
状态,双方可以开始传输数据了。
断开连接(四次挥手)
- 客户端发送
FIN
包,用于关闭客户端到服务器的数据传送 - 服务器收到
FIN
后返回ACK
包 - 服务器关闭连接,发送一个
FIN
给客户端 - 客户端返回
ACK
给服务端
网友评论