TCP三次握手原理容易忘记?3分钟看完本文,这辈子忘不了!
你好,这里是网络技术联盟站。
天天都在谈的TCP三次握手,大家还知道它的原理吗?今天瑞哥就带着大家了解一下,对这块不熟悉的童鞋,可以花费你宝贵的三分钟看一下本文留个印象。
让我们直接开始!
一、什么是TCP?
- 英文全称:
Transmission Control Protocol
- 中文名称:传输控制协议
- 是 IP 网络中用于错误控制的协议
- 运行在OSI参考模型第4层:传输层
二、TCP 特点
2.1 面向连接
上面提到TCP是英文“Transmission Control Protocol”的缩写,“Transmission”翻译为传输或传送,所以TCP意为控制传输的协议,这里的传输是连接,与通信的对方建立虚拟的通信路径,这里称为“面向连接”,TCP具有面向连接的特性,通过控制连接来实现安全、高可靠的通信。
2.2 可靠
TCP通过控制连接来实现高可靠的通信,数据通信的可靠性意味着数据不会丢失或乱序,TCP在通信前进行了充分的准备,保证了可靠的通信,因此,在使用TCP时,应用端不需要有保证可靠性的机制。
2.3 全双工通信
传输数据时,如果有两条路由,则可以同时向不同方向发送和接收数据,但如果只有一条路由,则不能同时发送数据,存在两条路径的状态称为全双工通信,只有一条路径的状态称为半双工通信。
由于TCP能够进行全双工通信,两个信号可以同时顺利传输,不会像半双工通信那样在中间发生碰撞。
2.4 同步序列号SYN和ACK号
在 TCP 中,数据以小块的形式发送,出于这个原因,我们有一个“序列号”和一个“ACK 号”作为管理细碎数据恢复顺序的机制,在通信的时候,SYN位是发送给连接请求目的地的,接收方也返回SYN来同步这两个数,然后返回ACK。
三、TCP三次握手
在正式讲三次握手前,我们用生活的例子预热一下“三次握手”的概念。
比如小刘是个刚毕业的应届生,每周要定时向他的上级汇报工作。
在一个夜黑风高的夜晚,小刘潜入他领导办公室准备汇报工作。
小刘:领导,我要向你汇报最近的工作情况,你能听到我说的话吗?
领导:可以听到,小刘,我说话你听见吗?
小刘:听见!听见!那我开始了。
小刘:xxxxxx。
上面就是生活中三次确认的过程,那么在TCP中,三次握手也很类似。
在实际传输数据之前,TCP会在开始通信之前确认“是否与对方正常连接?”。
TCP 头信息有 SYN 和 ACK 等标志,通过打开/关闭这些标志,它们被用作相互确认信息。
上面的图就是TCP三次握手的简易过程,可以解释为:
- SYN:是否开始通信的确认;
- SYN+ACK:同意开始通信的信号;
- ACK:开始通信的信号;
- ESTABLISHED:建立TCP连接。
这就是TCP三次握手,总体来说还是很简单的,主要是要记住上面这张图,那么对于三次握手的原理,你就很容易掌握。这里推荐大家关注公众号:网络技术联盟站,每天推送高质量网络技术文章。
四、总结
本文主要给大家介绍了:
- 什么是TCP?
- TCP 特点
- 面向连接
- 可靠
- 全双工通信
- 同步序列号SYN和ACK号
- TCP三次握手
最后感谢您的阅读,如果本文对您有所帮助,可以收藏并转发给您的朋友,有任何问题欢迎在下方评论区与我讨论!
相关文章
- 简述osi参考模型的七层协议与tcp/ip四层的对应关系_系统动力学9种模型
- TCP/IP之Traceroute程序
- 28 张图,一次性说清楚 TCP
- 22. 网络编程(2)——TCP 协议
- GB28181基于TCP协议的视音频媒体传输探究及实现
- tcp rst报文_TCP报文格式
- C++ 使用Socket实现主机间的UDP/TCP通信
- tcp心跳包 - python TCP服务器v1.3 - 服务器抗压测试及关闭套接字处理
- TCP聊天文件服务器v2.2 - 服务端客户端套接字解决分包/粘包问题 - SocketQueue继承以及减少冗余
- GB28181-2022相对2016版"基于TCP协议的视音频媒体传输要求"调整
- Linux 测试 TCP: 探索极限可靠性(linux测试tcp)
- Linux下的TCP网络模拟实验(linux模拟tcp)
- 协议Linux内核探索:TCP协议的历程(linux内核tcp)
- Linux TCP协议实现指南(linuxtcp实现)
- 端口Linux下监控TCP端口实战指南(linux监听tcp)
- 超时Linux下设置TCP超时时间的方法(linux设置tcp)
- 基础原理系列:服务端 TCP 连接的 TIME_WAIT 问题
- Linux TCP详解:深入理解网络传输过程(linuxtcp详解)
- 探究Linux TCP协议实现的发包机制(linux tcp发包)
- Linux如何关闭TCP连接(linux关闭tcp连接)
- Linux TCP编程实践与探索(linux tcp实例)
- TCP与Redis两种不同技术的比较(tcp和redis区别)
- TCP结合Redis构建高性能应用的实践(tcp redis)
- 使用TCP连接Redis体验快速便捷(redis连接是tcp)