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

🍎个人博客:个人主页

🏆个人专栏:JAVA

⛳️  功不唐捐,玉汝于成


目录

前言

正文

三次握手(Connection Establishment)

四次挥手(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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/488019.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

协议的概念+本质+作用+最终表现形式,网络问题(技术+应用+解决的协议+存在原因),主机的对称性

目录 协议 概念 示例 -- 摩斯密码 本质 作用 网络问题 引入 技术问题 应用问题 主机的对称性 问题对应的协议 问题出现的原因 理解协议(代码层面) 举例 -- 快递单 协议的最终表现形式 协议被双方主机认知的基础 协议 概念 协议是在计算机通信和数据传输中规定通…

2024年 最新python调用ChatGPT实战教程

2024年 最新python调用ChatGPT实战教程 文章目录 2024年 最新python调用ChatGPT实战教程一、前言二、具体分析1、简版程序2、多轮对话3、流式输出4、返回消耗的token 一、前言 这个之前经常用到,简单记录一下,注意目前chatgpt 更新了,这个是最新版的&am…

一款好用的多线程碰撞工具

host_scan 介绍 多线程host碰撞,发现更多资产。 把域名放在host.txt 把ip放在ip.txt,跑出的结果存放在ok.txt里面。 一开始输出(ok.txt)的内容可能都是脏数据,需要更关注后面输出(ok.txt)的那些数据!&a…

openssl 生成nginx自签名的证书

1、命令介绍 openssl req命令主要的功能有,生成证书请求文件, 查看验证证书请求文件,还有就是生成自签名证书。 主要参数 主要命令选项: -new :说明生成证书请求文件 -x509 :说明生成自签名证书 -key :指定已…

18个惊艳的可视化大屏(第七辑):场馆与园区方向

本期分享智慧场馆和智慧园区方向的可视化大屏,各位老铁上车,坐稳了,上图啦。

172基于matlab的MPPT智能算法

基于matlab的MPPT智能算法,通过细菌觅食进行优化。算法引入了趋向性操作,用以进行局部范围内的最优寻找;引入了复制操作,用以避免种群更新盲目随机性,加快了算法的收敛速度;引入了迁徙操作用以避免算法陷入…

IO进程线程复习

标准IO&#xff1a; 1.打开文件 #include<myhead.h>int main(int argc, const char *argv[]) {//定义文件指针FILE *fpNULL;//以只读的形式打开文件//fpfopen("./text.txt","r");//以只写的形式打开文件fpfopen("./time.c","w"…

PyTorch:transforms.Normalize()函数详解

PyTorch&#xff1a;transforms.Normalize()函数详解 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 &#x1f448; 希望得到您的订阅和…

华清远见作业第四十二天——Qt(第四天)

思维导图&#xff1a; 编程&#xff1a; 代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTextToSpeech> //语音播报类 QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public Q…

How to implement multiple file uploads based on Swagger 3.x in Spring boot 3.x

How to implement multiple file uploads based on Swagger 3.x in Spring boot 3.x Projectpom.xmlOpenAPIConfigFileUploadControllerapplication.yaml Project pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://…

STM32物联网(封装AT指令进行TCP连接及数据的接收和发送)

文章目录 前言一、AT指令函数封装1.向ESP8266发送数据函数2.设置ESP8266工作模式3.连接WIFI函数4.查询IP地址5.连接TCP服务器6.发送数据到TCP服务器7.接收并解析来自TCP服务器的数据8.关闭TCP服务器 二、代码测试总结 前言 本篇文章将继续带大家学习STM32物联网&#xff0c;那…

音视频剪辑|Windows|抽帧和合帧

什么是抽帧&#xff1f; FFmpeg 抽帧&#xff08;Extracting frames&#xff09;的作用是从视频文件中按需提取单张或多张静止图像&#xff08;帧&#xff09;&#xff0c;并将它们保存为图片文件&#xff08;如 JPEG、PNG 等格式&#xff09;。这一功能在以下场合十分有用&am…