当前位置: 首页 > news >正文

2025年2月2日(tcp3次握手4次挥手)

TCP(三次握手和四次挥手)是建立和关闭网络连接的标准过程,确保数据在传输过程中可靠无误。下面是详细解释:

1. 三次握手(TCP连接建立过程)

三次握手是为了在客户端和服务器之间建立一个可靠的连接,确保双方都能接收对方的数据并同步序列号。具体过程如下:

第一步:客户端发送SYN(同步)请求
  • 客户端 → 服务器:客户端向服务器发送一个SYN(同步)包,表示请求建立连接。
  • 包含的内容:
    • SYN标志位被设置为1,表示这是一个连接请求。
    • 初始序列号(ISN),客户端生成的一个随机数字,后续数据传输会用到。
第二步:服务器响应SYN-ACK
  • 服务器 → 客户端:服务器接收到客户端的SYN请求后,回复一个SYN-ACK包。
  • 包含的内容:
    • SYN标志位仍然设置为1,表示同意建立连接。
    • ACK标志位设置为1,表示确认收到客户端的请求。
    • 确认号:确认号设置为客户端的序列号 + 1,表示已成功收到客户端的SYN请求。
    • 初始序列号:服务器生成自己的序列号(ISN)。
第三步:客户端确认ACK
  • 客户端 → 服务器:客户端收到服务器的SYN-ACK响应后,发送一个ACK确认包。
  • 包含的内容:
    • ACK标志位设置为1,表示确认连接。
    • 确认号:确认号设置为服务器的序列号 + 1,表示客户端确认了服务器的响应。
    • 客户端序列号继续增加,后续数据发送将基于此序列号。

结果:三次握手完成,连接成功建立。此时客户端和服务器之间已经建立了一个可靠的全双工连接,可以开始数据传输了。

2. 四次挥手(TCP连接终止过程)

四次挥手是用来断开TCP连接的过程,确保数据已经成功传输并且双方都同意关闭连接。

第一步:客户端发送FIN请求
  • 客户端 → 服务器:客户端向服务器发送一个FIN(终止)包,表示客户端不再发送数据,准备关闭连接。
  • 包含的内容:
    • FIN标志位设置为1,表示客户端请求关闭连接。
    • 客户端序列号:保持当前序列号。
第二步:服务器确认FIN
  • 服务器 → 客户端:服务器收到客户端的FIN请求后,回复一个ACK确认包。
  • 包含的内容:
    • ACK标志位设置为1,表示确认收到客户端的FIN包。
    • 确认号:确认号设置为客户端的序列号 + 1,表示已成功收到客户端的请求。
    • 服务器此时仍然可以继续发送数据,连接并未完全断开。
第三步:服务器发送FIN请求
  • 服务器 → 客户端:当服务器完成数据发送后,服务器也向客户端发送一个FIN包,表示服务器准备关闭连接。
  • 包含的内容:
    • FIN标志位设置为1,表示服务器请求关闭连接。
    • 服务器序列号:保持当前序列号。
第四步:客户端确认FIN
  • 客户端 → 服务器:客户端收到服务器的FIN请求后,发送一个ACK确认包。
  • 包含的内容:
    • ACK标志位设置为1,表示确认收到服务器的FIN包。
    • 确认号:确认号设置为服务器的序列号 + 1,表示客户端确认了服务器的关闭请求。

结果:四次挥手完成,连接正式关闭。此时,客户端和服务器之间的连接完全断开,所有的资源都被释放。

总结:

  • 三次握手用于建立连接,确保双方都可以接收对方的数据。
  • 四次挥手用于关闭连接,确保双方都确认数据已传输完毕并且都同意关闭连接。

相关文章:

2025年2月2日(tcp3次握手4次挥手)

TCP(三次握手和四次挥手)是建立和关闭网络连接的标准过程,确保数据在传输过程中可靠无误。下面是详细解释: 1. 三次握手(TCP连接建立过程) 三次握手是为了在客户端和服务器之间建立一个可靠的连接&#x…...

一文了解制造业中的QC是什么

制造业中的QC QC :Quality Control,品质控制,产品的质量检验,发现质量问题后的分析、改善和不合格品控制相关人员的总称。中文意思是品质控制、质量检验。为达到品质要求所采取的作业技术和活动。有些推行ISO9000的组织会设置这样…...

【NEXT】网络编程——上传文件(不限于jpg/png/pdf/txt/doc等),或请求参数值是file类型时,调用在线服务接口

最近在使用华为AI平台ModelArts训练自己的图像识别模型,并部署了在线服务接口。供给客户端(如:鸿蒙APP/元服务)调用。 import核心能力: import { http } from kit.NetworkKit; import { fileIo } from kit.CoreFileK…...

在CentOS服务器上部署DeepSeek R1

在CentOS服务器上部署DeepSeek R1,并通过公网IP与其进行对话,可以按照以下步骤操作: 一、环境准备 系统要求: CentOS 8+(需支持AVX512指令集)。 硬件配置: GPU版本:NVIDIA驱动520+,CUDA 11.8+。 CPU版本:至少16核处理器,64GB内存。 存储空间:原始模型需要30GB,量…...

算法随笔_36: 复写零

上一篇:算法随笔_35: 每日温度-CSDN博客 题目描述如下: 给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 注意:请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改…...

MoonBit 编译器(留档学习)

MoonBit 编译器 MoonBit 是一个用户友好,构建快,产出质量高的编程语言。 MoonBit | Documentation | Tour | Core This is the source code repository for MoonBit, a programming language that is user-friendly, builds fast, and produces high q…...

使用 DeepSeek-R1 与 AnythingLLM 搭建本地知识库

一、下载地址Download Ollama on macOS 官方网站:Ollama 官方模型库:library 二、模型库搜索 deepseek r1 deepseek-r1:1.5b 私有化部署deepseek,模型库搜索 deepseek r1 运行cmd复制命令:ollama run deepseek-r1:1.5b 私有化…...

网络工程师 (13)时间管理

一、定义与重要性 项目时间管理是指为确保项目按时完成而采取的一系列规划、安排和控制活动。它始于项目启动阶段,贯穿整个项目生命周期,直至项目结束。时间管理对于项目的成功至关重要,它有助于项目团队明确工作目标和时间节点,增…...

【xdoj-离散线上练习】T251(C++)

解题反思: 开始敲代码前想清楚整个思路比什么都重要嘤嘤嘤!看到输入m, n和矩阵,注意不能想当然地认为就是高m,宽n的矩阵,细看含义 比如本题给出了树的邻接矩阵,就是n*n的,代码实现中没有用到m这…...

定时器按键tim_key模版

低优先级放在高优先级内势必是程序卡死 把高优先级放到低优先级内,会使程序卡死 可修改 Debuger调试方法 Pwm rcc #include "my_main.h" uint8_t led_sta0x10; char text[30]; void LED_Disp(uint8_t dsLED) {HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPI…...

Kanass快速安装配置教程(入门级)

Kanass是一款国产开源免费的项目管理工具,工具简洁易用、开源免费,本文将介绍如何快速安装配置kanass,以快速上手。 1、快速安装 1.1 Linux 安装 点击官网 -> 演示与下载 ->下载,下载Linux安装包,…...

无用知识之:std::initializer_list的秘密

先说结论,用std::initializer_list初始化vector,内部逻辑是先生成了一个临时数组,进行了拷贝构造,然后用这个数组的起终指针初始化initializer_list。然后再用initializer_list对vector进行初始化,这个动作又触发了拷贝…...

论文阅读笔记 —— 英文论文常见缩写及含义

正文 缩写全称含义Reference发音w.r.twith reference to关于, 根据WRT - Wikiet al.拉丁语et alia的缩写等等Et Al. | Meaning & Use in APA, MLA & Chicago–etc拉丁语et cetera的缩写等等ETC - Cambridge DictionaryWhat’s ‘etc.’ an abbreviation of (and what …...

实验9 JSP访问数据库(二)

实验9 JSP访问数据库(二) 目的: 1、熟悉JDBC的数据库访问模式。 2、掌握预处理语句的使用 实验要求: 1、使用Tomcat作为Web服务器 2、通过JDBC访问数据库,实现增删改查功能的实现 3、要求提交实验报告,将代…...

[c语言日寄]C语言类型转换规则详解

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…...

Airflow:选择合适执行器扩展任务执行

Apache Airflow是面向开发人员使用的,以编程方式编写、调度和监控的数据流程平台。可伸缩性是其关键特性之一,Airflow支持使用不同的执行器来执行任务。在本文中,我们将深入探讨如何利用这些执行器在Airflow中有效地扩展任务执行。 理解Airfl…...

使用冒泡排序模拟实现qsort函数

1.冒泡排序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>int main() {int arr[] { 0,2,5,3,4,8,9,7,6,1 };int sz sizeof(arr) / sizeof(arr[0]);//冒泡排序一共排序 sz-1 趟for (int i 0; i < sz - 1; i){//标志位&#xff0c;如果有序&#xff0c;直接…...

AI大模型开发原理篇-4:神经概率语言模型NPLM

神经概率语言模型&#xff08;NPLM&#xff09;概述 神经概率语言模型&#xff08;Neural Probabilistic Language Model, NPLM&#xff09; 是一种基于神经网络的语言建模方法&#xff0c;它将传统的语言模型和神经网络结合在一起&#xff0c;能够更好地捕捉语言中的复杂规律…...

Eigen::Tensor使用帮助

0 引言 用python实现了某些算法之后&#xff0c;想转成C来获取更高的性能。但是python数组的操作太灵活了&#xff0c;尤其是3维、4维、5维等高维数组&#xff0c;以及它们的广播、数组坐标、切片等机制。还有numpy的pad、where等操作更是给C转换带来了更多的麻烦。 查阅了相…...

git基础使用--3---git安装和基本使用

文章目录 git基础使用--3--git-安装和基本使用1. git工具安装1.1 git1.2 TortoiseGit1.3 远程仓2. git本地仓库版本管理2.1 git常用命令2.2 git基本操作2.2.1 设置用户名和邮箱 2.2 git基本操作2.2.1 初始化本地仓 git init2.2.2 查看本地库状态 git status2.2.3 添加暂缓区2.2…...

用STM32F103和AD9833制作一个简易信号源:从电路搭建、驱动编写到波形测试全记录

用STM32F103和AD9833打造高精度信号发生器&#xff1a;硬件设计、固件开发与波形优化全解析 在电子工程和嵌入式开发领域&#xff0c;信号发生器是不可或缺的基础工具。无论是测试滤波器响应、校准传感器&#xff0c;还是验证通信协议&#xff0c;一个稳定可靠的信号源都能显著…...

ComfyUI-Manager插件不显示问题终极指南:从原理到实战的完整解决方案

ComfyUI-Manager插件不显示问题终极指南&#xff1a;从原理到实战的完整解决方案 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable…...

Kaggle竞赛技能加速器:从特征工程到模型集成的系统化实战指南

1. 项目概述&#xff1a;一个为Kaggle竞赛量身定制的技能加速器如果你在数据科学竞赛的圈子里待过一阵子&#xff0c;大概率听说过Kaggle。这个平台就像一个全球数据科学家的“奥林匹克竞技场”&#xff0c;从预测房价到识别癌细胞&#xff0c;各种现实世界的问题被包装成竞赛&…...

Kubernetes二进制文件管理工具:自动化安装与多版本切换实践

1. 项目概述与核心价值在云原生和容器化技术成为主流的今天&#xff0c;Kubernetes 无疑是这个领域的基石。无论是开发、测试还是生产环境&#xff0c;我们都需要一套稳定、可靠的 Kubernetes 集群。然而&#xff0c;对于很多开发者、运维工程师&#xff0c;甚至是刚开始接触云…...

吃透护网面试!HVV 行动全套面试题目及答案,网安新人入门进阶必备

本文全面整理网络安全面试题&#xff0c;涵盖HVV、OWASP Top 10漏洞原理与修复方法。详细讲解内网渗透技术、权限维持方法、Windows/Linux系统提权技巧&#xff0c;以及渗透测试流程和应急响应策略。还包含红蓝对抗概念、漏洞挖掘经验、常见中间件漏洞和安全基础知识&#xff0…...

从系统光标到个性化指针:动漫主题鼠标指针的完整实现指南

1. 项目概述&#xff1a;从“二次元”到“生产力”的鼠标指针革命如果你和我一样&#xff0c;每天有超过8小时的时间与电脑为伴&#xff0c;那么鼠标指针就是你最亲密的“数字伙伴”。它可能是一个单调的白色箭头&#xff0c;也可能是一个乏味的沙漏。但你想过吗&#xff1f;这…...

TypeScript代码质量扫描利器tscanner:超越tsc的类型安全检查实践

1. 项目概述&#xff1a;一个被低估的TypeScript代码质量扫描利器最近在重构一个遗留的TypeScript项目&#xff0c;代码库已经膨胀到几十万行&#xff0c;各种any满天飞&#xff0c;类型定义混乱不堪&#xff0c;手动审查根本无从下手。就在我头疼的时候&#xff0c;同事推荐了…...

AI Agent交互设计新范式:基于Leader Key的可编程对话流实践

1. 项目概述与核心价值最近在折腾AI智能体&#xff08;AI Agent&#xff09;的开发&#xff0c;发现一个挺有意思的现象&#xff1a;很多开发者&#xff0c;包括我自己在内&#xff0c;在初期都会把大量精力花在模型调用、工具链集成这些“硬核”功能上&#xff0c;却常常忽略了…...

Vercel反向代理实战:基于Serverless Functions构建安全API网关

1. 项目概述&#xff1a;一个反向代理的轻量级解决方案最近在折腾个人项目部署时&#xff0c;遇到了一个挺典型的问题&#xff1a;前端应用托管在 Vercel 上&#xff0c;但需要安全地调用一些部署在其他地方&#xff08;比如家里的 NAS&#xff0c;或者某个有严格 IP 白名单限制…...

别再只盯着波形了!用IC617的gmid曲线,帮你快速评估工艺角下的MOS管性能

用gmid曲线簇破解工艺角难题&#xff1a;IC617高效评估MOS性能实战 在模拟电路设计的江湖里&#xff0c;工艺角&#xff08;PVT&#xff09;分析就像一场永无止境的攻防战。每次流片前&#xff0c;工程师们都要面对那个灵魂拷问&#xff1a;"这个偏置点在FF/SS角落下会不会…...