为什么需要握三次手,两次或者四次可以吗??

简介: 为什么需要握三次手,两次或者四次可以吗??

为什么两次不可以?因为计算机和服务器只做两次握手的话只是单向通信,TCP是全双工通信的必须保证可靠性。


1.二次握手失败,C端会重复发送SYN报文,等待对端发送确认报文,S端会保存tcp连接的所有资源,

大量的这种情况会导致S资源耗尽。

2.二次握手成功,S收不到ACK会重复发送SYN+ACK报文。

3.二次握手完以后,双方以为连接建立成功,即可开始通信。假如此时连接并没有真的建立成功,

S端开始发送消息,会造成网络拥堵发生。


为什么四次不可以?四次其实原则上来说是可以的,就是把第二次的ACK和SYN分两次发送。在理论上是完全可以行得通的,但是TCP本着节约网络网络资源的前提。


       • 三次握手之后计算机如果继续发送SYN报文,服务端会怎么样???其时这是徒劳的。第三次完成以后链接已经建立,后面无论多少次都是徒劳。


       如果TCP同时建立连接会怎么样???


微信图片_20220112135430.png

此时只会建立一条全双工的TCP链接,不是两条。

       • 双方没有CS之分,两端都是同时承担两个角色,客户端和服务器。

相关文章
|
7月前
|
运维 监控 数据安全/隐私保护
绝地反击,不做背锅侠!
那么作为运维人员,如何摆脱以上背黑锅的尴尬局面呢?堡垒机当然是破解此局面的绝杀大招。
65 0
|
C语言
深夜手撕三角
深夜手撕三角
35 0
|
JavaScript 前端开发 中间件
扶我起来,前端还没倒下,我不能睡
扶我起来,前端还没倒下,我不能睡
|
存储 人工智能 JavaScript
【寒假每日一题】AcWing 4510. 寻宝!大冒险!
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
137 0
|
前端开发 算法
看了涡流大佬的面试文章的总结(手撕代码 & 算法)
看了涡流大佬的面试文章的总结(手撕代码&算法)
|
小程序 数据库
喜欢看球,那就手撸一个看球小程序系统
一,系统展示;二,小程序端代码;三,后端代码;四,数据库;五,手把手教你学习
118 0
喜欢看球,那就手撸一个看球小程序系统
|
前端开发 JavaScript 程序员
圣诞临近,小包送给大家一个雪人,一群麋鹿,一堆糖果,一句祝福,圣诞快乐!
圣诞临近,小包送给大家一个雪人,一群麋鹿,一堆糖果,一句祝福,圣诞快乐!
218 0
圣诞临近,小包送给大家一个雪人,一群麋鹿,一堆糖果,一句祝福,圣诞快乐!
|
人工智能 算法 IDE
与「看不见的手」掷骰子的人
500 亿管理规模已经暗示王阳所在的这家公司掌握了某种平衡之美——它兼顾了最为前沿的研究与结果导向。这其中的秘诀是什么?这台神秘而又充满精度的金融机器又是如何高效运转的?
152 0
与「看不见的手」掷骰子的人
左手握技术,右手握需求,但声纹识别依旧当不了“独行侠”
作为生物识别技术的一种,声纹识别是“低调”的,也是经受磨难较多的。
415 0