TCP连接的建立和终止

一、TCP连接建立——三路握手

1)服务器必现准备好接受外来的连接,即被动打开。


2)客户通过调用connect发起主动打开,这导致客户TCP发送一个SYN分节,它告诉服务器客户将在连接中发送的数据的初始***。


3)服务器必须确认(ACK)客户的SYN,同时自己也得发送一个SYN分节,它含有服务器将在同一连接中发送的数据的初始***。


4)客户必须确认服务器的SYN。


TCP连接的建立和终止


二、TCP连接终止——四次握手

1)某个应用进程首先调用close,即执行主动关闭。该端的TCP发送一个FIN分节,表示数据发送完毕。


2)接收到这个FIN的对端执行被动关闭。这个FIN由TCP确认。FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。


3)一段时间后,接收到这个FIN的对端的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。


4)接收这个最终FIN的原发送端TCP确认这个FIN。


TCP连接的建立和终止