1、第三次握手是为了防止失效的连接请求到达服务器,让服务器错误打开连接。

2、换个易于理解的视角来看为什么要 3 次握手。

客户端和服务端通信前要进行连接,“3次握手”的作用就是双方都能明确自己和对方的收、发能力是正常的。

第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。

第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。从客户端的视角来看,我接到了服务端发送过来的响应数据包,说明服务端接收到了我在第一次握手时发送的网络包,并且成功发送了响应数据包,这就说明,服务端的接收、发送能力正常。而另一方面,我收到了服务端的响应数据包,说明我第一次发送的网络包成功到达服务端,这样,我自己的发送和接收能力也是正常的。

第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力,服务端的发送、接收能力是正常的。第一、二次握手后,服务端并不知道客户端的接收能力以及自己的发送能力是否正常。

而在第三次握手时,服务端收到了客户端对第二次握手作的回应。从服务端的角度,我在第二次握手时的响应数据发送出去了,客户端接收到了。所以,我的发送能力是正常的。而客户端的接收能力也是正常的。

经历了上面的三次握手过程,客户端和服务端都确认了自己的接收、发送能力是正常的。之后就可以正常通信了。

3 每次都是接收到数据包的一方可以得到一些结论,发送的一方其实没有任何头绪。我虽然有发包的动作,但是我怎么知道我有没有发出去,而对方有没有接收到呢?

而从上面的过程可以看到,最少是需要三次握手过程的。两次达不到让双方都得出自己、对方的接收、发送能力都正常的结论。

其实每次收到网络包的一方至少是可以得到:对方的发送、我方的接收是正常的。而每一步都是有关联的,下一次的“响应”是由于第一次的“请求”触发,因此每次握手其实是可以得到额外的结论的。

比如第三次握手时,服务端收到数据包,表明看服务端只能得到客户端的发送能力、服务端的接收能力是正常的,但是结合第二次,说明服务端在第二次发送的响应包,客户端接收到了,并且作出了响应,从而得到额外的结论:客户端的接收、服务端的发送是正常的。

TCP连接为什么要三次握手相关推荐

  1. TCP连接管理【三次握手-四次挥手】

    https://www.bilibili.com/video/BV19E411D78Q?p=64 通俗易懂的TCP里面的三次握手以及四次挥手 TCP连接传输三个阶段: TCP连接的建立采用客户服务器方 ...

  2. 【Java 网络编程】TCP 连接 断开 机制 ( 三次握手 | 四次挥手 )

    文章目录 I TCP 连接建立流程 ( 三次握手 ) II SYN 和 ACK 中的随机值 III TCP 连接建关闭流程 ( 四次挥手 ) IV TCP 连接断开的保证 V 四次挥手的必要性 I T ...

  3. TCP连接过程:三次握手与四次握手—Vecloud微云

    上图由wireshark抓取,并显示了TCP状态图 根据上图可以看到建立一个TCP连接的过程为(三次握手的过程): 客户端向服务器端发送一个SYN请求,同时传送一个初始序列号(ISN): 服务器发回包 ...

  4. 建立TCP连接时的三次握手与四次挥手问题

    1. 字段含义 1.1 状态字段 ACK 报文是用来应答的,SYN 报文是用来同步的 LISTEN:侦听来自远方TCP端口的连接请求 SYN-SENT:在发送连接请求后等待匹配的连接请求 SYN-RE ...

  5. go 监测tcp 连接断开_TCP三次握手和四次挥手以及11种状态

    三次握手 置位概念:根据TCP的包头字段,存在3个重要的标识ACK.SYN.FIN ACK:表示验证字段 SYN:位数置1,表示建立TCP连接 FIN:位数置1,表示断开TCP连接 三次握手过程说明: ...

  6. 2022.9.07 TCP协议特点,TCP适用场合,TCP连接方式(三次握手,四次挥手)。

    传输层协议: TCP   <传输控制协议>    transport control protocol TCP协议特点: 是一种面向连接的传输层协议,它能够提供高可靠性通信,无数据丢失,无 ...

  7. Python常见面试题:TCP 协议中的三次握手与四次挥手相关概念详解

    今天来聊聊Python常见面试题中面试频率特别高的一个题目:TCP 协议中的三次握手与四次挥手. 涉及到的知识点有: 1.TCP.UDP 协议的区别 2.TCP 头部结构 3.三次握手与四次挥手过程详 ...

  8. 为什么tcp不采用停等协议_为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?...

    看到了一道面试题:"为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?",想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章 ...

  9. tcp建立连接为什么需要三次握手

    这是一个看似很"简单"的问题,但貌似并没有一个官方统一的答案.搜索了相关的资料,列举出一些答案. 以下部分转载自:tcp建立连接为什么需要三次握手 在<计算机网络>一书 ...

最新文章

  1. php运行cpu利用率低,PHP-如何减低php程序的cpu使用率?
  2. 我总有办法让你今晚回不了家...
  3. soapui oracle groovy,soapUI+groovy 接口测试之部分groovy使用记录
  4. 配置HDFS HttpFS和WebHDFS
  5. ajax获取网页新闻,基于Ajax的新闻网页动态数据的抓取方法及系统
  6. Linux中Tomcat 服务的搭建
  7. MRC与ARC混合编程的编译器标记
  8. [acmm week12]染色(容斥定理+组合数+逆元)
  9. 新浪推荐 二面 移动零
  10. 免费分享20套PHP源码
  11. 使用PowerDesigner创建JAVA类图
  12. cdLinux显示“没有发现无限网卡!”
  13. 管理培训决定企业生死的5个层面
  14. 【tensorrt】——error: #error The version of CUB in your include path is not compatible with this releas
  15. 怎樣制作线段动画_教程:如何制作一个绘制线条动画
  16. python 爬取淘宝第二弹(淘宝数据爬取)
  17. 【Aladdin-Unity3D-Shader编程】之六-模型实时阴影
  18. 中国地质大学计算机研究生考试目录,2017年中国地质大学(武汉)资源学院考研专业目录及考试科目...
  19. 用MATLAB求解拟合公式系数和拟合优度
  20. Revit获取平面视图参照标高及视图范围

热门文章

  1. oracle通过用户名查看表空间,Oracle 查询登陆用户名属于哪个表空间
  2. 交变磁场中特斯拉线圈感应电压
  3. QTranslate翻译工具
  4. 逐鹿工具显示服务器错误连接不上怎么解决,老司机演示win7系统安装逐鹿工具箱提示“error launching insta的图文技巧...
  5. 完整的项目管理流程什么样?一次读懂项目管理5步骤
  6. 对宝宝重要的头三年,你都做对了吗
  7. php基地论坛,中国原创歌词基地论坛 - 最大的原创歌词社区
  8. 纯前端实现下载xlsx.js实现下载
  9. 怎么使用下载的建站公司网站源码搭建自己的企业网站
  10. 雨晨QQ2012 (4924)绿色版|qq三显IP显隐身VIP完美自选版