为了账号安全,请及时绑定邮箱和手机立即绑定

TCP 的三次握手和四次挥手

标签:
Html/CSS

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

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

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

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


webp

三次握手


webp

四次挥手

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

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

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

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

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

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

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

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



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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消