TCP三次握手

158 阅读2分钟

1.TCP的性质

TCP 提供一种面向连接的、可靠的字节流服务

在一个 TCP 连接中,仅有两方进行彼此通信。广播和多播不能用于 TCP.

TCP 使用校验和,确认和重传机制来保证可靠传输

TCP 给数据分节进行排序,并使用累积确认保证数据的顺序不变和非重复

TCP 使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制

2.TCP的三次握手

TCP在实现浏览器与服务器进行通信的过程中要进行三次握手和四次挥手。

如图所示是浏览器与服务器建立三次握手的过程,该过程是为了确保通信的两条路线(B-S,S-B)是通畅的。第一次浏览器向服务器发送一个1bit的SYN包,服务器收到了这个包同时知道了浏览器到自己的那条路是通畅的。接下来服务器回复SYN-ACK给浏览器,浏览器收到包之后明白了服务器与自己的通信路线是通畅的。但这个消息必须让服务器知道,因此浏览器发送ACK给服务器,服务器收到ack之后知道了自己与浏览器的通信路线(图中第三条路线)是通畅的,接下来便可以开始通信。同时服务器和客户端都进入established状态。

3.四次挥手

在通信结束之后,浏览器发送FIN给服务器,告诉服务器,我不再传送数据了,但此时浏览器仍然可以接收数据。浏览器收到以后回复ACK代表自己知道了。接下来服务器发送FIN给浏览器,代表我也不再发送数据了,等到客户端回复ACK,即可关闭连接,进入close状态。