TCP连接为什么要三次握手
1、第三次握手是为了防止失效的连接请求到达服务器,让服务器错误打开连接。
2、换个易于理解的视角来看为什么要 3 次握手。
客户端和服务端通信前要进行连接,“3次握手”的作用就是双方都能明确自己和对方的收、发能力是正常的。
第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。从客户端的视角来看,我接到了服务端发送过来的响应数据包,说明服务端接收到了我在第一次握手时发送的网络包,并且成功发送了响应数据包,这就说明,服务端的接收、发送能力正常。而另一方面,我收到了服务端的响应数据包,说明我第一次发送的网络包成功到达服务端,这样,我自己的发送和接收能力也是正常的。
第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力,服务端的发送、接收能力是正常的。第一、二次握手后,服务端并不知道客户端的接收能力以及自己的发送能力是否正常。
而在第三次握手时,服务端收到了客户端对第二次握手作的回应。从服务端的角度,我在第二次握手时的响应数据发送出去了,客户端接收到了。所以,我的发送能力是正常的。而客户端的接收能力也是正常的。
经历了上面的三次握手过程,客户端和服务端都确认了自己的接收、发送能力是正常的。之后就可以正常通信了。
3 每次都是接收到数据包的一方可以得到一些结论,发送的一方其实没有任何头绪。我虽然有发包的动作,但是我怎么知道我有没有发出去,而对方有没有接收到呢?
而从上面的过程可以看到,最少是需要三次握手过程的。两次达不到让双方都得出自己、对方的接收、发送能力都正常的结论。
其实每次收到网络包的一方至少是可以得到:对方的发送、我方的接收是正常的。而每一步都是有关联的,下一次的“响应”是由于第一次的“请求”触发,因此每次握手其实是可以得到额外的结论的。
比如第三次握手时,服务端收到数据包,表明看服务端只能得到客户端的发送能力、服务端的接收能力是正常的,但是结合第二次,说明服务端在第二次发送的响应包,客户端接收到了,并且作出了响应,从而得到额外的结论:客户端的接收、服务端的发送是正常的。
TCP连接为什么要三次握手相关推荐
- TCP连接管理【三次握手-四次挥手】
https://www.bilibili.com/video/BV19E411D78Q?p=64 通俗易懂的TCP里面的三次握手以及四次挥手 TCP连接传输三个阶段: TCP连接的建立采用客户服务器方 ...
- 【Java 网络编程】TCP 连接 断开 机制 ( 三次握手 | 四次挥手 )
文章目录 I TCP 连接建立流程 ( 三次握手 ) II SYN 和 ACK 中的随机值 III TCP 连接建关闭流程 ( 四次挥手 ) IV TCP 连接断开的保证 V 四次挥手的必要性 I T ...
- TCP连接过程:三次握手与四次握手—Vecloud微云
上图由wireshark抓取,并显示了TCP状态图 根据上图可以看到建立一个TCP连接的过程为(三次握手的过程): 客户端向服务器端发送一个SYN请求,同时传送一个初始序列号(ISN): 服务器发回包 ...
- 建立TCP连接时的三次握手与四次挥手问题
1. 字段含义 1.1 状态字段 ACK 报文是用来应答的,SYN 报文是用来同步的 LISTEN:侦听来自远方TCP端口的连接请求 SYN-SENT:在发送连接请求后等待匹配的连接请求 SYN-RE ...
- go 监测tcp 连接断开_TCP三次握手和四次挥手以及11种状态
三次握手 置位概念:根据TCP的包头字段,存在3个重要的标识ACK.SYN.FIN ACK:表示验证字段 SYN:位数置1,表示建立TCP连接 FIN:位数置1,表示断开TCP连接 三次握手过程说明: ...
- 2022.9.07 TCP协议特点,TCP适用场合,TCP连接方式(三次握手,四次挥手)。
传输层协议: TCP <传输控制协议> transport control protocol TCP协议特点: 是一种面向连接的传输层协议,它能够提供高可靠性通信,无数据丢失,无 ...
- Python常见面试题:TCP 协议中的三次握手与四次挥手相关概念详解
今天来聊聊Python常见面试题中面试频率特别高的一个题目:TCP 协议中的三次握手与四次挥手. 涉及到的知识点有: 1.TCP.UDP 协议的区别 2.TCP 头部结构 3.三次握手与四次挥手过程详 ...
- 为什么tcp不采用停等协议_为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?...
看到了一道面试题:"为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?",想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章 ...
- tcp建立连接为什么需要三次握手
这是一个看似很"简单"的问题,但貌似并没有一个官方统一的答案.搜索了相关的资料,列举出一些答案. 以下部分转载自:tcp建立连接为什么需要三次握手 在<计算机网络>一书 ...
最新文章
- php运行cpu利用率低,PHP-如何减低php程序的cpu使用率?
- 我总有办法让你今晚回不了家...
- soapui oracle groovy,soapUI+groovy 接口测试之部分groovy使用记录
- 配置HDFS HttpFS和WebHDFS
- ajax获取网页新闻,基于Ajax的新闻网页动态数据的抓取方法及系统
- Linux中Tomcat 服务的搭建
- MRC与ARC混合编程的编译器标记
- [acmm week12]染色(容斥定理+组合数+逆元)
- 新浪推荐 二面 移动零
- 免费分享20套PHP源码
- 使用PowerDesigner创建JAVA类图
- cdLinux显示“没有发现无限网卡!”
- 管理培训决定企业生死的5个层面
- 【tensorrt】——error: #error The version of CUB in your include path is not compatible with this releas
- 怎樣制作线段动画_教程:如何制作一个绘制线条动画
- python 爬取淘宝第二弹(淘宝数据爬取)
- 【Aladdin-Unity3D-Shader编程】之六-模型实时阴影
- 中国地质大学计算机研究生考试目录,2017年中国地质大学(武汉)资源学院考研专业目录及考试科目...
- 用MATLAB求解拟合公式系数和拟合优度
- Revit获取平面视图参照标高及视图范围
热门文章
- oracle通过用户名查看表空间,Oracle 查询登陆用户名属于哪个表空间
- 交变磁场中特斯拉线圈感应电压
- QTranslate翻译工具
- 逐鹿工具显示服务器错误连接不上怎么解决,老司机演示win7系统安装逐鹿工具箱提示“error launching insta的图文技巧...
- 完整的项目管理流程什么样?一次读懂项目管理5步骤
- 对宝宝重要的头三年,你都做对了吗
- php基地论坛,中国原创歌词基地论坛 - 最大的原创歌词社区
- 纯前端实现下载xlsx.js实现下载
- 怎么使用下载的建站公司网站源码搭建自己的企业网站
- 雨晨QQ2012 (4924)绿色版|qq三显IP显隐身VIP完美自选版