【网络小知识】TCP协议介绍/三次握手,四次挥手的作用

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据同步 1个月
简介: TCP协议介绍/三次握手,四次挥手的作用

前端开发人员需要了解三次握手和四次挥手的原因是,这些概念是在客户端和服务器端之间进行网络通信时所涉及到的 TCP 协议的基本知识。而对于前端来讲,如果页面中请求服务端数据时出现连接失败、延迟等问题,就需要对TCP协议中三次握手、四次挥手所对应的状态码有一定的理解。

⭐一、TCP协议初认识

TCP(Transmission Control Protocol)是一种面向连接的传输层协议,主要用于互联网中的无差别网络。它提供了全双工、可靠、有序、面向连接和基于字节流的数据传输服务,可以确保数据以正确的方式从一个应用程序传输到另一个应用程序。

TCP 协议具体包括以下特点:

面向连接:在 TCP 传输数据之前,必须经过建立连接阶段,即三次握手。数据传输完毕后,还需要进行四次挥手来关闭连接。这个过程保证了每个数据包都能够通过可靠的方式被发现,传递到其目录地。

全双工:TCP 连接支持全双工模式,即两端可以同时发送和接收数据,而不用等待对方或交替进行发送和接收。

基于字节流:在 TCP 协议中,数据被分割成多个 IP 分组,并且不同的 IP 分组可以通过不同路径按照任意顺序到达目的地。因此,TCP 数据流被视为一个无限长的字节流,TCP 把这个流切分成若干块(segment),并负责将这些块重新组装成原始的数据。

可靠性:TCP 会利用确认、重传和超时机制等方法来确保数据的可靠性,保证每个数据包能够正确地到达它们的目标,且没有重复。

有序性:TCP 协议可以确保数据报按照发送顺序逐一传递,并在目的地重新组装回来。这就保证了接收方可以准确地重建原始消息。

流量控制和阻塞控制:TCP 协议会根据网络从源头到目的地的延迟情况和连接的带宽大小进行流量控制和拥塞控制。通过使用滑动窗口协议和其他方法,防止发送方发送过多数据,导致网络不能承受负载而发生阻塞。

综上所述,TCP 协议是一个可靠的、通用的传输协议,在互联网中广泛使用,能够在不稳定或高负荷的网络环境下实现稳定的数据传输,并通过对传输过程的状态监控、反馈机制以及流量控制等保护手段来确保数据传输的可靠性。

⭐二、三次握手四次挥手

三次握手和四次挥手是 TCP 协议中的重要概念,下面分别进行详解及其用途:

三次握手

三次握手指建立 TCP 连接时,客户端和服务端之间进行的互相确认过程。它具体包括以下步骤:

第一步(Client -> Server):客户端请求连接,发送 SYN 数据包给服务端。

第二步(Server -> Client):服务端收到 SYN 数据包后,确认收到请求,并发回 ACK 数据包,并根据自己的当前状态返回 SYN+ACK 数据包。

第三步(Client -> Server):客户端接收到服务器的 SYN+ACK 数据包后,返回 ACK 确认数据包,通知服务端连接已建立。

三次握手主要用途是确保双方能够建立可靠的 TCP 连接,验证连接正常并准备好接受和发送数据,同时防止因网络或其他原因导致连接中断或数据丢失。

四次挥手

四次挥手指关闭 TCP 连接时,客户端和服务端之间进行的互相确认过程。它具体包括以下步骤:

第一步(Client -> Server):客户端发起关闭请求,发送 FIN 数据包给服务端。

第二步(Server -> Client):服务端收到 FIN 数据包后,发送 ACK 数据包给客户端,确认已经接收到关闭请求。

第三步(Server -> Client):如果服务端还有未发送的数据,那么它将在 ACK 包中包含它的 FIN 包以通知客户端还需要等待数据传输完成。否则,服务端直接发送 FIN 数据包给客户端,标识服务端已经准备好关闭连接。

第四步(Client -> Server):客户端收到服务器的 FIN 数据包后,发回 ACK 数据包,确认接受关闭请求并通知服务端可以断开连接。

四次挥手主要用途是确保 TCP 连接能够正常地终止,防止客户端和服务端在正常关闭之前断开连接而导致数据丢失,同时释放掉资源以便其他连接使用。


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
数据采集 算法 数据挖掘
模块化控制协议(MCP)在网络中增强智能体执行效率的研究
随着Web3技术的迅速发展,去中心化应用和智能体在各种领域的应用逐渐增多。MCP(Modularized Control Protocol,模块化控制协议)作为一种增强智能体执行能力的关键技术,为Web3场景中的智能体提供了更强的灵活性和可扩展性。本文将探讨如何利用MCP技术提升智能体在Web3场景中的执行能力,并通过实例代码展示其实现路径。
223 22
|
26天前
|
运维 架构师 安全
二层协议透明传输:让跨域二层协议“无感穿越”多服务商网络
简介:本文详解二层协议透明传输技术,适用于企业网工、运营商及架构师,解决LLDP/LACP/BPDU跨运营商传输难题,实现端到端协议透传,提升网络韧性与运维效率。
|
5月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
146 18
|
6月前
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
186 22
|
6月前
|
网络协议 数据安全/隐私保护 网络架构
|
7月前
|
网络协议 物联网
VB6网络通信软件上位机开发,TCP网络通信,读写数据并处理,完整源码下载
本文介绍使用VB6开发网络通信上位机客户端程序,涵盖Winsock控件的引入与使用,包括连接服务端、发送数据(如通过`Winsock1.SendData`方法)及接收数据(利用`Winsock1_DataArrival`事件)。代码实现TCP网络通信,可读写并处理16进制数据,适用于自动化和工业控制领域。提供完整源码下载,适合学习VB6网络程序开发。 下载链接:[完整源码](http://xzios.cn:86/WJGL/DownLoadDetial?Id=20)
244 12
|
7月前
|
缓存 网络协议 API
掌握网络通信协议和技术:开发者指南
本文探讨了常见的网络通信协议和技术,如HTTP、SSE、GraphQL、TCP、WebSocket和Socket.IO,分析了它们的功能、优劣势及适用场景。开发者需根据应用需求选择合适的协议,以构建高效、可扩展的应用程序。同时,测试与调试工具(如Apipost)能助力开发者在不同网络环境下优化性能,提升用户体验。掌握这些协议是现代软件开发者的必备技能,对项目成功至关重要。
|
8月前
|
人工智能 自然语言处理 决策智能
智能体竟能自行组建通信网络,还能自创协议提升通信效率
《一种适用于大型语言模型网络的可扩展通信协议》提出创新协议Agora,解决多智能体系统中的“通信三难困境”,即异构性、通用性和成本问题。Agora通过标准协议、结构化数据和自然语言三种通信格式,实现高效协作,支持复杂任务自动化。演示场景显示其在预订服务和天气预报等应用中的优越性能。论文地址:https://arxiv.org/pdf/2410.11905。
226 6
|
8月前
|
网络协议 测试技术 Linux
Golang 实现轻量、快速的基于 Reactor 模式的非阻塞 TCP 网络库
gev 是一个基于 epoll 和 kqueue 实现的高性能事件循环库,适用于 Linux 和 macOS(Windows 暂不支持)。它支持多核多线程、动态扩容的 Ring Buffer 读写缓冲区、异步读写和 SO_REUSEPORT 端口重用。gev 使用少量 goroutine,监听连接并处理读写事件。性能测试显示其在不同配置下表现优异。安装命令:`go get -u github.com/Allenxuxu/gev`。
146 0
|
10月前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法

热门文章

最新文章