当前位置:首页 > 学习资源 > 讲师博文 > Tcp两次握手为什么不行

Tcp两次握手为什么不行 时间:2023-09-09      来源:华清远见

TCP是Internet协议套件的主要协议之一,它位于应用层和网络层之间,用于提供可靠的连接服务,是一种面向连接的通信协议,有助于通过网络在不同设备之间交换消息。

提到TCP,那么一定就会提到TCP的三次握手,这个是TCP连接核心中的核心,那么TCP三次握手是怎么样的过程,有什么优秀的设计之处呢?

首先得知道什么是TCP?

英文全称:Transmission Control Protocol

中文名称:传输控制协议

TCP是一种面向连接的协议,可确保将数据完整地传送到其目的地,TCP首先通过使用TCP三向握手与每个主机上的TCP端口建立会话,然后它以数据包的形式传输数据,每个数据包都有一个序列号,当在目的地收到数据包时,TCP 会向发送主机生成确认,如果未收到序列中的数据包,则发送主机上的 TCP在一定时间间隔后重新传输数据包。

TCP三次握手:

TCP在建立和关闭两个设备之间的连接期间会发生3次握手过程,也就是建立和关闭连接需要经历三个步骤,下面我们来详细的了解一下这三个过程。

生活中的三次握手:

我们先以生活中的例子形象的说明一下三次握手过程:

小明想打电话给小美,但是不确定对方是不是小美,所以会经历以下过程:

● 小明:你好,请问是小美吗?【第一次握手】

● 小美:是的,我是小美。【第二次握手】

● 小明:好的,我知道你是小美了。【第三次握手】

经历三次握手后,小明可以可以很明确的确定对方就是小美,非常可靠!

假如只有一次握手,那么小明问完“你好,请问是小美吗?”,小明压根不确定对方有没有收到这个问候,更不要谈对方是否是小美了。

假如只有两次握手,那么小明收到小美的“是的,我是小美。”的回复后,小美是不知道小明是否收到她的回复,所以接下来她不确定是否要跟电话中询问她的人通信。

所以三次握手刚刚好。

专业角度的三次握手

下面我们来看下专业的三次握手。

 

三次握手涉及到的专业名词:

 

客户端:客户端是访问服务器提供的服务的计算机硬件设备或软件

SYN:同步序列号(Synchronize Sequence Number),这是从客户端到服务端的第一个数据包,可以描述为建立连接的请求,如果SYN为1,则表示设备要建立安全连接,否则不。

ACK:确认(Acknowledgement),可以说是SYN的响应,如果 ACK为1,则设备已收到SYN消息并确认,否则没有。

 

TCP为什么不能二次握手建立连接?

我们要知道Server 和Client想要建立连接,必须满足以下四个条件:

1.服务端需要确认服务端可以从客户端接收数据包
2.客户端需要确认客户端可以从服务端接收数据包
3.客户端需要确认服务端可以从客户端接收数据包
4.服务端需要确认客户端可以从服务端接收数据包

四个条件看起来很绕,其实说白了就是:

● 小明问:“你好,请问时小美吗?”︰发送成功后,小明确定可以他从小美接收信息,验证了第—个条件【服务端需要确认服务端可以从客户端接收数据包】

● 小美回:“是的,我是小美”:发送成功后,小美确定她可以从小明接收信息,也能确认小明可以从她这边接收信息,验证了第二、第三个条件【客户端需要确认客户端可以从服务端接收数据包】【客户端需要确认服务端可以从客户端接收数据包】

● 小明回:“好的,我知道你是小美了”︰发送成功后,小明确定可以小美可以从他这边接收信息,验证了四个条件【服务端需要确认客户端可以从服务端接收数据包】

TCP是一种双向通信协议,这意味着任何—端都应该能够可靠地发送数据,所以三次握手刚刚好。

 

上一篇:什么是xss和csrf攻击?怎么防范?

下一篇:常用的GDB调试指令

戳我查看嵌入式每月就业风云榜

点我了解华清远见高校学霸学习秘籍

猜你关心企业是如何评价华清学员的

干货分享
相关新闻
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2024 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部