TCP为什么是三次握手

简介: 前言:三次握手可以说在程序界可以说是非常高频的词汇了。很多人都知道TCP协议是很多协议的基础,这个协议的通信方式类似于三次握手。那么为什么是三次?而不是四次?也不是两次呢?图示image.png表格介绍首先A端B端两台计算机。

前言:

三次握手可以说在程序界可以说是非常高频的词汇了。很多人都知道TCP协议是很多协议的基础,这个协议的通信方式类似于三次握手。那么为什么是三次?而不是四次?也不是两次呢?

图示

image.png

表格介绍

首先A端B端两台计算机。我们用一张表格表现通信状态(我们使用Y代表可以通信,N代表不能通信)
初始状态两个计算机的表格都是N不可通信

计算机 A=>B B=>A
A N N
B N N

我们认为只有当A端和B端都认为A=>B,B=>A可以通信时,才是一个可以通信的状态。不然就无法保证通信交流能够成功
所以只有当表格变为下表才OK

计算机 A=>B B=>A
A Y Y
B Y Y

逐步分析

事件1:
A端发起对B端的通信
这时候,A端不知道B端能不能收到,B也不知道有没有人请求过来了。所以这个时候通信表格没有变化

事件2:
B端接收到了A端的通信,那么B端可以知道A=》B的通信是没有问题
那么表格就发生了变化

计算机 A=>B B=>A
A N N
B Y N

事件3:
随后B端发起通信回复A端,告知A端自己已经收到请求
由于B端不知道A能否接收成功,所有B端表格无变化
A端也不知道B端能否收到并回复,所以A端表格还是初始状态

事件4:
A端接收到了B端的回复,那么A端可以得知,A=>B成功,B=>A成功,所以A端表格变为

计算机 A=>B B=>A
A Y Y
B Y N

事件5:
A端再次发起通信告知B端自己已经收到了B端发起的通信
此时A虽然知道B可以接收到他的通信
但是B端不知道他发起对A的通信是否成功
所以表格还是没有变化

事件6:
B端成功接收到A端的回复
由此B端知道B=》A可以通信
表格修改为

计算机 A=>B B=>A
A Y Y
B Y Y

结语

由此可见,我们TCP协议的三次握手是在保证通信可行下的最少通信次数。如果是两次握手,便无法100%保证可以通信。如果使用四次握手,就浪费了通信的时间和次数。性能上不如三次握手来的高效

如果有写的不对的地方,希望大神指正。谢谢

以上

相关文章
|
缓存 网络协议 安全
TCP通信机制:三次握手、四次挥手、滑动窗口
TCP通信机制:三次握手、四次挥手、滑动窗口
742 1
TCP通信机制:三次握手、四次挥手、滑动窗口
|
网络协议 算法 网络性能优化
理解TCP协议三次握手、四次挥手、流量控制、拥塞控制 、重传机制
TCP概述 TCP是一种面向连接的协议,在发送数据前通信双方必须在彼此间建立一条连接 所谓的连接其实就是客户端和服务器的内存里保存一份关于对方的信息,如IP地址、端口 TCP是一种字节流,它会处理IP层的丢包、重复以及错误问题 在建立连接的过程中,双方交换的一些参数可以放到TCP的头部 总结 :TCP提供了一种可靠、面向连接、字节流、传输层的服务,采用三次握手建立一个连接,四次挥手关闭一个连接
265 2
理解TCP协议三次握手、四次挥手、流量控制、拥塞控制 、重传机制
|
缓存 网络协议 安全
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
|
网络协议 测试技术
软件测试|TCP三次握手四次挥手
软件测试|TCP三次握手四次挥手
152 0
软件测试|TCP三次握手四次挥手
|
网络协议 网络性能优化
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
|
缓存 网络协议 网络性能优化
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
|
网络协议 安全 Linux
《我要进大厂》- 计算机网络夺命连环23问,你能坚持到第几问?(TCP 三次握手、四次挥手
《我要进大厂》- 计算机网络夺命连环23问,你能坚持到第几问?(TCP 三次握手、四次挥手
《我要进大厂》- 计算机网络夺命连环23问,你能坚持到第几问?(TCP 三次握手、四次挥手
|
存储 网络协议 算法
《我要进大厂》- 计算机网络夺命连环20问,你能坚持到第几问?(应用层协议 | TCP三次握手、四次挥手 | TCP可靠传输 | Cookie&Session)(下)
《我要进大厂》- 计算机网络夺命连环20问,你能坚持到第几问?(应用层协议 | TCP三次握手、四次挥手 | TCP可靠传输 | Cookie&Session)
《我要进大厂》- 计算机网络夺命连环20问,你能坚持到第几问?(应用层协议 | TCP三次握手、四次挥手 | TCP可靠传输 | Cookie&Session)(下)
|
网络协议 安全 机器人
《我要进大厂》- 计算机网络夺命连环20问,你能坚持到第几问?(应用层协议 | TCP三次握手、四次挥手 | TCP可靠传输 | Cookie&Session)(上)
《我要进大厂》- 计算机网络夺命连环20问,你能坚持到第几问?(应用层协议 | TCP三次握手、四次挥手 | TCP可靠传输 | Cookie&Session)
《我要进大厂》- 计算机网络夺命连环20问,你能坚持到第几问?(应用层协议 | TCP三次握手、四次挥手 | TCP可靠传输 | Cookie&Session)(上)
|
网络协议 安全 Linux
Linux网络原理及编程(5)——第十五节 TCP的连接(三次握手、四次挥手)
本节我们来介绍TCP连接的建立和断开。我们主要介绍两个过程、两个状态。
196 0
Linux网络原理及编程(5)——第十五节 TCP的连接(三次握手、四次挥手)