TCP的三次握手和四次挥手时——应届生的面试

        在前几次的面试经历中,小猿多次被问到TCP的三次握手和四次挥手,所以来这里记录一下这个知识点。

一、建立连接---->TCP三次握手:

        这里首先以一个例子,理清楚三次握手的思路:将客户端和服务端看成正在进行对话的两个人A,B。

第一次握手:C to S

我申请建立连接。

第二次握手:S to C我已经收到请求,可以连接。
第三次握手:C to S我收到你的批准通知了。

        这三次已经确保了双方信息没有丢失,已经满足建立连接的条件了。

        下面以较专业性的语言来阐述三次握手:

第一次握手:C to S主机A发送syn到主机B,要求建立a到b的连接。此时主机为syn sent
第二次握手:S to C主机B回复ack+syn,要求建立b到a的连接,主机B的状态为syn rcvd
第三次握手:C to S

主机A回复第二步syn的ack。主机A的状态

二、断开连接----->四次挥手

        这里同样举一个例子,方便去理解四次挥手。

        我和我女朋友打视频,打了很久,我想挂掉视频了。

        我说:我没啥想说的了。

        她说:我知道了。

        但是,她又开始巴拉巴拉的讲,我不敢直接挂点,结束视频,因为她还有话在讲。直到她不想讲了,

        最后,她说:我说完了。

        我说:我知道了。这样才算通话结束。

        这样简单的例子对我理解四次挥手很有帮助,下面通过稍微专业性的语言来阐述四次挥手。

        1.主机A发送fin到主机B,请求关闭a到b的连接

        2.主机B回复ack,主机B的状态置为close_wait

        3.主机B发送fin到主机A,请求关闭b到a的连接

        4.值即A回复ack(第三步的fin),状态置为time_wait

        主机B接收到第四步的数据报,状态置为closed

        主机A经过2MSL(超时等待时间)之后,状态置为closed

       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值