TCP为什么是三次握手,不是两次握手?

自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

https://www.cnblogs.com/bclshuai/p/11380657.html

1.三次握手的作用有两个

(1)让Client和Server双方都知道双方可以发送和接收到对方的消息;

(2)避免网络堵塞时,Client以为没有连接上,发送多次请求,而Server会为前面多次无效请求创建连接,造成资源浪费;

2.具体说明

2.1 三次握手确认双方都能接收和发送消息

(1)第一次握手,Client发送给Server:你好,能听到我的声音吗?;    》server如果收到,Server知道了能接收到client发送的消息

(2)第二次握手,Server发送给Client :你好,我能听到你的声音(确认ACK),你能听到我的声音吗?     》Client如果能收到,说明Client知道Server能发送和接收消息;现在还有一点没有确认就是Server不知道Client能否接收Server发送消息?Client的可能电话设置静音了,听不到Server的声音。这样沟通就无效了。所以需要第三次握手。

(3)第三次握手,Client发送给Server:我能听到你的声音,我告诉你一个重大的密码……     》Server收到,Server知道client具体接收能力;

2.2避免Server 为无效的连接创建资源

Client发送给Server请求连接,如果因为网络堵塞,这个请求阻塞在传输过程中,Client以为没有发过去,又发了一个请求。第一个请求又发送到了服务器,Server又会创建两个连接,第一个连接是无效的,客户端不会通过这个连接去发送消息,这样就造成了服务器资源的浪费。所以需要三次握手,确定连接是否是有效连接。

原文地址:https://www.cnblogs.com/bclshuai/p/13903693.html