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

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

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


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

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

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

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

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


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


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


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


微信图片_20220112135430.png

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

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

相关文章
|
12月前
|
C语言
深夜手撕三角
深夜手撕三角
29 0
|
小程序 数据库
喜欢看球,那就手撸一个看球小程序系统
一,系统展示;二,小程序端代码;三,后端代码;四,数据库;五,手把手教你学习
107 0
喜欢看球,那就手撸一个看球小程序系统
|
前端开发 JavaScript 程序员
圣诞临近,小包送给大家一个雪人,一群麋鹿,一堆糖果,一句祝福,圣诞快乐!
圣诞临近,小包送给大家一个雪人,一群麋鹿,一堆糖果,一句祝福,圣诞快乐!
209 0
圣诞临近,小包送给大家一个雪人,一群麋鹿,一堆糖果,一句祝福,圣诞快乐!
左手握技术,右手握需求,但声纹识别依旧当不了“独行侠”
作为生物识别技术的一种,声纹识别是“低调”的,也是经受磨难较多的。
405 0
|
Web App开发 测试技术 网络架构