文章字数:256,阅读全文大约需要1分钟
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给服务端