前端面经 TCP三次握手、四次挥手,2024年最新阿里大厂面试指南

本文提供了一份2024年最新Web前端学习资料,涵盖基础知识至进阶课程,帮助自学者高效成长。同时介绍了TCP三次握手和四次挥手过程,强调了系统学习的重要性。作者还分享了面试准备资源和IT学习社群的邀请。
摘要由CSDN通过智能技术生成

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文


了解TCP三次握手的过程之前,需要先了解TCP的关键标志位

  1. SYN,简写为S,同步标志位,用于建立会话请求,同步序列号;

  2. ACK,简写为.,确认标志位,确认已接受的数据包;

  3. FIN,简写为F,完成标志位,表示传输完毕,将要关闭连接

若SYN=1,ACK=0,表示是来自发送方的一个“连接请求”;

若SYN=1,ACK=1,表示接收方“同意接受连接请求”。

TCP三次握手图解


在这里插入图片描述

TCP三次握手说明


第一次握手:客户端主动打开连接,将TCP报文标志位SYN置为1,并随机产生一个序号值seq=x(SYN=1,ACK=0,seq=x,请求连接),发送数据包给服务端。发送完毕进入SYN-SENT状态;

第二次握手:服务端接收到标志位为SYN=1,ACK=0的数据包,得知客户端请求建立连接。服务端将标志位置作:SYN=1,ACK=1,ack=x+1,并随机产生序号值seq=y;发送数据包给客户端,同意建立连接。进入SYN-RCVD状态。

第三次握手:客户端得到了服务端的确认。检查ACK是否为1,ack是否为x+1。若是的话,则ACK=1,ack=y+1。服务端再检查,ACK是否为1,ack是否为y+1。若正确则建立好连接通道。

为什么要三次握手


如果不要第三次握手:只要A发出请求,B接受请求,就建立连接。

为什么要第三次握手?

举个例子:

客户端A发出的第一次连接请求报文,由于某种原因,长时间滞留。一直到客户端A发出第二个连接请求后到达,那么服务端B则会认为A又发出了一次连接请求,于是接受A的第一次连接请求并确认连接。因为只通过前两次握手就可以建立连接。然而,B一直在等待A发送数据,A实际上并不发送数据了,这就造成了B的资源浪费。

如果有第三次握手:

A向B发送连接请求,B确认连接,还需要A的再次确认,才可以建立连接。上面的例子中,如果有第三次握手,那么B得不到A建立本次连接的再次确认,就不会建立连接。这次连接请求就失效了。

TCP四次挥手

======================================================================

TCP四次挥手图解:


在这里插入图片描述

TCP四次挥手说明


TCP连接的释放需要四次挥手,上图例子是客户端主动要求释放连接,服务器端被动接受释放连接。

第一次挥手: 客户端想释放连接。使FIN=1,表示请求释放连接,随机产生seq=x;发送给客户端,并进入FIN-WAIT-1阶段(半关闭状态,停止客户端向服务器端上发送数据)。但实际上,客户端还能向服务器端发送ACK确认报文。

第二次挥手: 服务器端接收到客户端想释放连接的请求。使ACK=1,ack=x+1,并随机产生seq=y。发送给客户端,表示“接收到了客户端的想释放连接的请求”。服务器端进入CLOSE-WAIT阶段。

客户端接收到报文,进入FIN-WAIT-2阶段。

前两次握手:客户端让服务器端知道:我想释放连接;服务器端让客户端知道:我知道了你想释放连接。于是可以确认关闭客户端到服务器端的连接,完成了一个方向上连接的释放!

第三次挥手: 在第二次挥手发送报文给客户端时,服务器端进入了CLOSE-WAIT阶段。当CLOSE-WAIT结束后, 服务器端做好了释放“服务器端到客户端方向”连接的准备。于是发送报文,使FIN=1,ACK=1,表示准备好释放连接。ack=x+1,seq=z;随后,服务器端进入LAST-ACK阶段。停止服务器端到客户端发送数据,但能接受来自客户端的数据。

第四次挥手: 客户端发送报文:ACK=1表示接收到了“服务器准备好释放连接".ack=z+1,seq=w;。

为什么要四次挥手


因为TCP是全双工模式,两个方向都可以进行通信,所以需要四次挥手来关闭两个方向上的连接。

最后

除了简历做到位,面试题也必不可少,整理了些题目,前面有117道汇总的面试到的题目,后面包括了HTML、CSS、JS、ES6、vue、微信小程序、项目类问题、笔试编程类题等专题。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
4c (备注前端)**
[外链图片转存中…(img-6yl69HvN-1713067824530)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值