前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么“三次握手,四次挥手”?

为什么“三次握手,四次挥手”?

作者头像
云海谷天
发布2022-08-09 14:14:12
1560
发布2022-08-09 14:14:12
举报
文章被收录于专栏:技术一点点成长

前言:

  如果你说你懂IT,你懂计算机网络,那么你会怎么解释“三次握手,四次挥手”?

----------------

1.TCP报文段首部格式:

2.TCP建立连接图

--------------------------------------------

符号说明

seq:"sequance"序列号 ack:"acknowledge"确认号 SYN:"synchronize"请求同步标志 ACK:"acknowledge"确认标志" FIN:"Finally"结束标志

为什么收到Server端的确认之后,Client还需要进行第三次“握手”呢?   在只有两次“握手”的情形下,假设Client想跟Server建立连接,但是却因为中途连接请求的数据报丢失了,故Client端不得不重新发送一遍;这个时候Server端仅收到一个连接请求,因此可以正常的建立连接。但是,有时候Client端重新发送请求不是因为数据报丢失了,而是有可能数据传输过程因为网络并发量很大在某结点被阻塞了,这种情形下Server端将先后收到2次请求,并持续等待两个Client请求向他发送数据...问题就在这里,Cient端实际上只有一次请求,而Server端却有2个响应,极端的情况可能由于Client端多次重新发送请求数据而导致Server端最后建立了N多个响应在等待,因而造成极大的资源浪费!所以,“三次握手”很有必要!

3.TCP断开连接图

---------------------------------------------------------------

为什么需要“四次挥手”?   试想一下,假如现在你是客户端你想断开跟Server的所有连接该怎么做?第一步,你自己先停止向Server端发送数据,并等待Server的回复。但事情还没有完,虽然你自身不往Server发送数据了,但是因为你们之前已经建立好平等的连接了,所以此时他也有主动权向你发送数据;故Server端还得终止主动向你发送数据,并等待你的确认。其实,说白了就是保证双方的一个合约的完整执行!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.TCP报文段首部格式:
  • 2.TCP建立连接图
  • 3.TCP断开连接图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档