HTTP三次握手四次挥手

简单的理解,可以把客户机当作A,服务器当作B

A要给B建立连接的三次握手:

A说:B啊,我想跟你建立连接♂
B说:好嘞,那你发吧
A说:那我开始发了啊
A:哒哒哒开始发数据

为什么是三次?两次可以不?四次可以不?
如果是两次:
A:B啊,我想跟你建立连接~
却因为网络延迟没有及时发送到B那里。
过了一会儿,A又发起连接请求,这次成功建立连接并传输了数据。
随后,A第一次发的请求在延迟了N年之后到达了B那里,B在回复A之后就完成了两次握手开始等A发数据,但A已经拿到了数据所以不会再理B,于是B一直处于等待状态,这样就浪费了主机资源。

如果是四次呢?
三次就够了,再增加握手次数并不能显著提高可靠性,没有必要。

A跟B取消连接的四次挥手:

A说:B啊,我的数据请求发完了
B说:好的,我看看我这里还有没有没发完的,有的话发给你
B说:我这里的数据也发完了,可以关闭连接了
A说:好,我一会就关
B收到回复关闭连接
2*MSL(最长报文段寿命)之后A关闭连接

为什么A要等2MSL再关闭连接?
:如果第四次请求丢失了,B迟迟没有收到第四次请求,那么B就会再发一次第三次请求,如果刚才A没有等待2MSL而是直接关闭了连接,那么A就收不到再次发送的第三次请求,而B就会一直发请求。
如果A等待了2MSL,就会收到B再次发送的请求从而回复。
:在2MSL时间内,消除本次连接产生的所有报文段,这样新的连接中就不会出现旧请求,防止了“已失效的连接请求”的出现。

图解:

握手:
在这里插入图片描述挥手
在这里插入图片描述

参考:https://mp.weixin.qq.com/s?__biz=MzAxODcyNjEzNQ==&mid=2247485620&idx=2&sn=f0f3eafcfff2cdaa210c2f63d968c0fa&chksm=9bd0a52caca72c3aabdc1cd0c9ee47ba5b342808b19f7994b5ff5b68fe9903e712a52c99ab8d&mpshare=1&scene=24&srcid=0730FeZFV3cR3dTp4Tc2KPBL#rd

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值