还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。
No. | 内容链接 |
---|---|
1 | Openlayers 【入门教程】 - 【源代码+示例300+】 |
2 | Leaflet 【入门教程】 - 【源代码+图文示例 150+】 |
3 | Cesium 【入门教程】 - 【源代码+图文示例200+】 |
4 | MapboxGL【入门教程】 - 【源代码+图文示例150+】 |
5 | 前端就业宝典 【面试题+详细答案 1000+】 |
TCP三次握手过程
-
第一次握手:
客户端(通常是Web浏览器)想要与服务器(通常是Web服务器)建立TCP连接时,会随机生成一个初始序列号(Sequence Number,简称seq),然后向服务器发送一个SYN(同步序列编号)报文段。报文段中包含客户端的初始序列号(ISN)。此时,客户端进入SYN_SENT状态。客户端 -> 服务器: SYN(seq=x)
-
第二次握手:
服务器接收到客户端的SYN报文段后,如果同意建立连接,则回复一个SYN+ACK(同步确认)报文段。这个报文段包含服务器的初始序列号(ISN),以及确认号(Acknowledgment Number,ack),确认号是客户端的初始序列号加1,表示服务器已经接收到了客户端的SYN报文段。服务器进入SYN_RECEIVED状态。服务器 -> 客户端: SYN(seq=y), ACK(ack=x+1)
-
第三次握手:
客户端收到服务器的SYN+ACK报文段后,会再次发送一个ACK报文段,确认号设置为服务器的初始序列号加1,表示客户端已经收到了服务器的SYN报文段。此时,客户端进入ESTABLISHED状态。当服务器接收到客户端的ACK报文段后,也进入ESTABLISHED状态,至此,TCP连接成功建立。客户端 -> 服务器: ACK(ack=y+1)
在HTTP通信过程中,浏览器发起HTTP请求前,首先就是通过TCP三次握手与服务器建立可靠的连接,然后在这个连接上传输HTTP消息。而在HTML文档加载的过程中,浏览器会基于已经建立好的TCP连接去获取HTML文件及相关的CSS、JavaScript、图片等资源。
四次握手断开连接
TCP四次挥手断开连接的过程如下:
-
第一次挥手(FIN):
- 客户端(或其他一端)决定关闭连接时,它会发送一个FIN(Finish)报文段给服务器端。FIN报文段表明这一端已经没有更多的数据要发送了,但仍然能够接收从服务器端发来的数据。
- 发送FIN报文后,客户端进入
FIN_WAIT_1
状态。
-
第二次挥手(ACK):
- 服务器端收到客户端的FIN报文后,会回应一个ACK(Acknowledgment)报文段,确认号(ACKnowledgment Number)设置为收到的FIN报文段的序列号加1,表示已经收到客户端关闭连接的请求。
- 服务器端进入
CLOSE_WAIT
状态,等待应用程序关闭相应连接上的数据传输,并准备向客户端发送自己的FIN报文。
-
第三次挥手(FIN):
- 服务器端完成所有数据发送任务并准备好关闭连接时,也会发出一个FIN报文段给客户端,通知客户端自己也要关闭连接了。
- 发送FIN报文后,服务器端进入
LAST_ACK
状态,等待客户端确认收到它的FIN报文。
-
第四次挥手(ACK):文章来源:https://www.toymoban.com/news/detail-844048.html
- 客户端收到服务器端的FIN报文后,同样回应一个ACK报文段,确认号设置为服务器端FIN报文段的序列号加1。
- 客户端在发送这个ACK报文后,进入
TIME_WAIT
状态,等待足够长的时间以确保服务器端能收到这个确认报文,并且在此期间内,若服务器端未收到ACK,可能会重发FIN报文,客户端可以再次确认。 - 服务器端一旦收到客户端对FIN报文的确认,即ACK报文,便知道双方都同意关闭连接,因此可以安全地关闭连接,进入
CLOSED
状态。 - 客户端在
TIME_WAIT
状态等待一段时间后(通常为MSL,即Maximum Segment Lifetime,报文段最大生存时间),如果没有收到任何异常报文,则认为连接已经完全关闭,最终也会进入CLOSED
状态。
总结来说,四次挥手是为了确保双方都能有序且无歧义地结束连接,并且确保在连接彻底关闭之前,网络中滞留的报文段都能够得到妥善处理。这个过程保证了TCP连接的可靠性和完整性。
文章来源地址https://www.toymoban.com/news/detail-844048.html
到了这里,关于TCP:三次握手 、四次挥手断开的过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!