天天都在谈的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三次握手
最后感谢您的阅读,如果本文对您有所帮助,可以收藏并转发给您的朋友,有任何问题欢迎在下方评论区与我讨论!