继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

TCP 的三次握手和四次挥手

慕姐8265434
关注TA
已关注
手记 1147
粉丝 221
获赞 1064

面向连接?
这里的连接可以理解为:传输的双方(客户端和服务端)是否已经在线,就像我给你打电话,你接到了,这就算连接上了。

TCP 为什么要握手和挥手呢?
为了网络数据传输的安全性,不然数据传给谁都不知道,那不是很危险??

为什么是三次握手四次挥手呢?
因为多了会浪费资源啊,三次就够确认连接上了,四次也就够确认关闭连接了。

网上找了两张图(侵权立删):


webp

三次握手


webp

四次挥手

哪三次握手?
第一次握手:客户端向服务端发送 SYN 报文,服务端确认接收了 SYN 报文。

第二次握手:服务端在确认接收了 SYN 报文之后,会返回向客户端发送 SYN 报文和 ACK 确认报文。

第三次握手:客户端接收到 SYN 报文了 ACK 报文 之后双方就建立起了连接,可以好好玩耍了。

哪四次挥手?
第一次挥手:客户端向服务端发送数据,发送完成之后会发送一个 FIN 报文,告诉服务端数据发送完毕。

第二次挥手:服务端接收到 FIN 报文之后,将 ACK 报文返回给客户端,告诉客户端(服务端)已经接收到数据。

第三次挥手:服务端处理完数据之后再发送一个 FIN 报文给客户端,告诉客户端(服务端)已经处理完毕。

第四次挥手:客户端接收到服务端发来的 FIN 报文之后就能确认这次的数据传输完成。可以关闭本次数据传输连接了。

频繁三次握手四次挥手也是耗费资源啊。
所以 HTTP 还有一种  KeepAlive connections 机制。本质就是连接复用,减少连接的重复创建和关闭。



作者:_龙衣
链接:https://www.jianshu.com/p/4d11bbeccbec


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP