TCP连接过程

来源:互联网 发布:知乎怎么关注话题 编辑:程序博客网 时间:2024/06/09 22:05

TCP连接的三次握手和四次挥手

建立连接协议(三次握手)

1、SYN_SEND 客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1;

2、SYN_RECV 服务器端回应客户端,这是三次握手中的第2个报文,这个报文同时带ACK标志(表示服务器准备好了数据通信)和SYN标志。因为它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好数据通讯;内核在收到最后一个ACK后,accept会返回。

3、ESTABLISH 客户端必须再次回应服务器端一个ACK报文(表示客户端也准备好了数据通信),这是报文段3;

HTTP请求的过程与TCP连接的过程 - 无影 - 激情、专注、坚持、思考

 

 

连接中止协议(四次挥手)

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭

当一方完成它的数据发送任务后,就能发送一个FIN来中止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,

一个TCP连接在收到一个FIN后仍能发送数据。

 

首先进行关闭的一方讲执行主动关闭,而另一方执行被动关闭;FIN报文和ACK报文一般都是分开发送的

1、TCP客户端发送一个FIN,用户关闭客户端到服务器的数据传送,即报文段4;

2、服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1,即报文段5,和SYN一样,一个FIN将占用一个序号

3、服务器关闭客户端的连接,发送一个FIN给客户端,即报文段6;

4、客户端发回ACK报文确认,并将确认序号设置为收到序号加1,即报文段7;

(1和2关闭客户端到服务器的数据通信,3和4关闭服务器端到客户端的数据通信)

HTTP请求的过程与TCP连接的过程 - 无影 - 激情、专注、坚持、思考

0 0
原创粉丝点击