【计网】TCP的三次握手四次挥手

🍎个人博客:个人主页

🏆个人专栏:JAVA

⛳️ 功不唐捐,玉汝于成


目录

前言

正文

[三次握手(Connection Establishment)](#三次握手(Connection Establishment))

[四次挥手(Connection Termination)](#四次挥手(Connection Termination))

结语

我的其他博客


前言

TCP的三次握手和四次挥手是保障网络通信可靠性的关键步骤。通过三次握手,建立了双方的连接,确保双方能够准备好发送和接收数据;通过四次挥手,优雅地关闭了连接,避免数据丢失和不必要的资源浪费。理解这些握手和挥手过程对于网络通信的正确性和可靠性至关重要。

正文

TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层协议。在TCP连接的建立和断开过程中,使用了三次握手和四次挥手的机制。

三次握手(Connection Establishment)
  1. 第一次握手(SYN):

    • 客户端发送一个TCP报文,其中设置SYN标志位为1,表示请求建立连接。
    • 客户端选择一个初始序列号(ISN),用来标识报文段的顺序。
  2. 第二次握手(SYN + ACK):

    • 服务器收到客户端的SYN后,发送一个带有SYN和ACK标志位的报文作为响应。
    • 服务器也选择一个初始序列号(ISN),并将其加1,然后将客户端的ISN作为ACK的确认号。
  3. 第三次握手(ACK):

    • 客户端收到服务器的SYN + ACK后,发送一个带有ACK标志位的报文。
    • 客户端的序列号加1,而确认号为服务器的序列号加1,表示连接建立。

此时,TCP连接已经建立,双方可以开始进行数据传输。

四次挥手(Connection Termination)
  1. 第一次挥手(FIN):

    • 当客户端或服务器决定要断开连接时,发送一个带有FIN标志位的报文,表示不再发送数据。
  2. 第二次挥手(ACK):

    • 接收到FIN的一方发送一个带有ACK标志位的报文,确认收到断开请求。
  3. 第三次挥手(FIN):

    • 如果接收到FIN的一方也希望断开连接,它也发送一个带有FIN标志位的报文。
  4. 第四次挥手(ACK):

    • 接收到第三次挥手的一方发送一个带有ACK标志位的报文,表示确认收到对方的断开请求。

经过这四个步骤,双方的连接就被断开了。三次握手和四次挥手的过程是为了确保数据的可靠传输和连接的正常断开。在挥手过程中,每个方向的关闭都需要经过两个阶段,即发送方发送FIN和接收方发送ACK。

结语

在网络通信中,TCP的三次握手和四次挥手是保证数据传输可靠性和网络连接资源的合理利用的基础。通过深入理解这些过程,我们能更好地设计和管理网络通信,确保数据安全、稳定和高效传输。

我的其他博客

【MySQL】数据库规范化的三大法则 --- 一探范式设计原则-CSDN博客

【JAVA】线程的run()和start()有什么区别?-CSDN博客

【日常聊聊】程序员必备的面试技巧:如何在面试战场上脱颖而出-CSDN博客

【JAVA】Java8开始ConcurrentHashMap,为什么舍弃分段锁-CSDN博客

【JAVA】怎么确保一个集合不能被修改-CSDN博客

【Web开发】会话管理与无 Cookie 环境下的实现策略-CSDN博客

【Mybatis】Mybatis如何防止sql注入-CSDN博客

【软件工程】航行敏捷之路:深度解析Scrum框架的精髓-CSDN博客

【Spring】理解IoC与AOP:构建灵活而模块化的软件架构-CSDN博客

相关推荐
游戏开发爱好者85 小时前
iOS重构期调试实战:架构升级中的性能与数据保障策略
websocket·网络协议·tcp/ip·http·网络安全·https·udp
(:满天星:)8 小时前
第31篇:块设备与字符设备管理深度解析(基于OpenEuler 24.03)
linux·运维·服务器·网络·centos
野蛮人6号10 小时前
虚拟机网络编译器还原默认设置后VMnet8和VMnet1消失了
网络·vmware·虚拟机网络编译器·vmnet8消失
scuter_yu10 小时前
主流零信任安全产品深度介绍
运维·网络·安全
江苏思维驱动智能研究院有限公司11 小时前
Sophos 网络安全:全球领先的自适应安全解决方案提供商
网络·安全·web安全
面朝大海,春不暖,花不开11 小时前
Java网络编程:TCP/UDP套接字通信详解
java·网络·tcp/ip
byxdaz11 小时前
PJSIP 中的 TCP 传输配置指南
tcp/ip
ChicagoTypewriter11 小时前
计算机网络中的常用表项梳理
网络·计算机网络·智能路由器
DemonAvenger12 小时前
高性能 TCP 服务器的 Go 语言实现技巧:从原理到实践
网络协议·架构·go
Bruce_Liuxiaowei14 小时前
常见高危端口风险分析与防护指南
网络·网络安全·端口·信息搜集