TCP/UDP的连接机制
TCP/UDP的连接机制
TCP的连接机制
TCP(Transmission Control Protocol)是一种面向连接的协议,提供可靠的、按顺序的数据传输服务。TCP的连接机制包括连接建立、数据传输和连接终止。
1. 连接建立(三次握手)
TCP通过“三次握手”建立一个可靠的连接:
-
SYN(同步序列编号):
- 客户端向服务器发送一个SYN报文段,指示客户端打算建立连接,并同步序列号。该报文段包括一个初始序列号(ISN)。
- 报文段格式:
SYN=1, seq=x
-
SYN-ACK(同步-确认):
- 服务器收到SYN报文段后,向客户端发送一个SYN-ACK报文段,确认收到客户端的SYN,并回复一个自己的SYN报文段。服务器也生成一个初始序列号。
- 报文段格式:
SYN=1, ACK=1, seq=y, ack=x+1
-
ACK(确认):
- 客户端收到服务器的SYN-ACK报文段后,向服务器发送一个确认报文段(ACK),表示连接建立完成。
- 报文段格式:
ACK=1, seq=x+1, ack=y+1
2. 数据传输
连接建立后,双方可以开始传输数据。数据传输过程中,TCP通过以下机制保证数据的可靠性和顺序:
- 序列号(Sequence Number):每个字节的数据都有一个序列号,用于确保数据按顺序到达。
- 确认号(Acknowledgment Number):接收方使用确认号通知发送方已成功接收到的数据。
- 窗口控制(Window Control):用于流量控制,防止发送方发送过多的数据使接收方来不及处理。
- 重传机制(Retransmission):发送方在超时未收到确认时会重传数据。
3. 连接终止(四次挥手)
TCP通过“四次挥手”终止一个连接:
-
FIN(结束):
- 主动关闭的一方发送一个FIN报文段,表示不再发送数据。
- 报文段格式:
FIN=1, seq=u
-
ACK(确认):
- 被动关闭的一方收到FIN报文段后,发送一个确认报文段(ACK),表示收到请求,但仍有未完成的数据需要发送。
- 报文段格式:
ACK=1, seq=v, ack=u+1
-
FIN(结束):
- 被动关闭的一方完成数据传输后,发送一个FIN报文段,表示可以关闭连接。
- 报文段格式:
FIN=1, seq=w
-
ACK(确认):
- 主动关闭的一方收到FIN报文段后,发送一个确认报文段(ACK),表示连接关闭完成。
- 报文段格式:
ACK=1, seq=u+1, ack=w+1
UDP的连接机制
UDP(User Datagram Protocol)是一种无连接的协议,不提供可靠的、按顺序的数据传输服务。UDP的连接机制简单且高效,适用于对实时性要求高的应用。
1. 无连接性
- 数据报(Datagram):UDP将数据封装成数据报进行传输,每个数据报独立传输,不需要建立和终止连接。
- 无连接:UDP不建立连接,发送方和接收方之间不进行握手过程,直接发送数据。
2. 数据传输
- 不可靠传输:UDP不保证数据到达目的地,也不保证数据顺序。数据可能会丢失、重复或乱序。
- 低延迟:由于没有握手和连接管理机制,UDP的传输延迟较低,适用于视频流、在线游戏等实时应用。
3. 头部格式
- 头部字段:
- 源端口(Source Port):发送方端口号。
- 目的端口(Destination Port):接收方端口号。
- 长度(Length):整个UDP报文的长度,包括头部和数据部分。
- 校验和(Checksum):用于检测数据在传输过程中是否发生错误。
总结
TCP
- 面向连接:需要通过三次握手建立连接,四次挥手终止连接。
- 可靠传输:提供数据重传、流量控制和错误校验。
- 适用场景:文件传输、邮件、网页浏览等需要可靠传输的应用。
UDP
- 无连接:不建立连接,直接发送数据。
- 不可靠传输:不保证数据到达和顺序,低延迟。
- 适用场景:视频流、在线游戏、实时通信等对实时性要求高的应用。
理解TCP和UDP的连接机制及其应用场景,有助于根据具体需求选择合适的传输协议。
相关文章:
TCP/UDP的连接机制
TCP/UDP的连接机制 TCP的连接机制 TCP(Transmission Control Protocol)是一种面向连接的协议,提供可靠的、按顺序的数据传输服务。TCP的连接机制包括连接建立、数据传输和连接终止。 1. 连接建立(三次握手) TCP通过…...
供应链金融模式学习资料
目录 产生背景 供应链金融的诞生 供应链金额的六大特征...
代码随想录-算法训练营day50【动态规划12:最佳买卖股票时机含冷冻期、买卖股票的最佳时机含手续费、股票问题总结】
代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part12● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 ●总结309.最佳买卖股票时机含冷冻期 本题加了一个冷冻期,状态就多了,有点难度,大家要把各个状态分清,思路才能清晰…...

Dilworth 定理
这是一个关于偏序集的定理,事实上它也可以扩展到图论,dp等中,是一个很有意思的东西 偏序集 偏序集是由集合 S S S以及其上的一个偏序关系 R R R定义的,记为 ( S , R ) (S,R) (S,R) 偏序关系: 对于一个二元关系 R ⊂…...

BUUCTF---web---[BJDCTF2020]ZJCTF,不过如此
1、点开连接,页面出现了提示 传入一个参数text,里面的内容要包括I have a dream。 构造:?/textI have a dream。发现页面没有显示。这里推测可能得使用伪协议 在文件包含那一行,我们看到了next.php的提示,我们尝试读取…...

力扣刷题---2206. 将数组划分成相等数对【简单】
题目描述🍗 给你一个整数数组 nums ,它包含 2 * n 个整数。 你需要将 nums 划分成 n 个数对,满足: 每个元素 只属于一个 数对。 同一数对中的元素 相等 。 如果可以将 nums 划分成 n 个数对,请你返回 true …...

2461. 长度为 K 子数组中的最大和(c++)
给你一个整数数组 nums 和一个整数 k 。请你从 nums 中满足下述条件的全部子数组中找出最大子数组和: 子数组的长度是 k,且子数组中的所有元素 各不相同 。 返回满足题面要求的最大子数组和。如果不存在子数组满足这些条件,返回 0 。 子数…...
range for
1. 基于范围的for循环语法 C11标准引入了基于范围的for循环特性,该特性隐藏了迭代器 的初始化和更新过程,让程序员只需要关心遍历对象本身,其语法也 比传统for循环简洁很多: for ( range_declaration : range_expression ) {loo…...

leetcode230 二叉搜索树中第K小的元素
题目 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例 输入:root [5,3,6,2,4,null,null,1], k 3 输出:3 解析 这道题应该是能做出…...
.Net Core学习笔记 框架特性(注入、配置)
注:直接学习的.Net Core 6,此版本有没有startup.cs相关的内容 项目Program.cs文件中 是定义项目加载 启动的地方 //通过builder对项目进行配置、服务的加载 var builder WebApplication.CreateBuilder(args); builder.Services.AddControllers();//将…...

利用AI技术做电商网赚,这些百万级赛道流量,你还不知道?!
大家好,我是向阳 AI技术的飞速扩展已经势不可挡,不管你承不承认,AI 已经毫无争议的在互联网中占有一席之地了 无论你是做内容产业的,还是做电商的,你现在都躲不开 AI。 现在互联网行业的竞争就是这么残酷 互联网行业…...
leetcode-560 和为k的数组
一、题目描述 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 注意:nums中的元素可为负数 输入:nums [1,1,1], k 2 输出:2输入:num…...
Spring Boot实战指南:从入门到企业级应用构建
目录 一、引言 二、快速入门 1. 使用Spring Initializr创建项目 三、Spring Boot基础概念与自动配置 1. 理解SpringBootApplication注解 2. 自动配置原理 3. 查看自动配置报告 四、Spring Boot核心特性及实战 1. 外部化配置 2. Actuator端点 3. 集成第三方库 五、Sp…...

OneAPI接入本地大模型+FastGPT调用本地大模型
将Ollama下载的本地大模型配置到OneAPI中,并通过FastGPT调用本地大模型完成对话。 OneAPI配置 新建令牌 新建渠道 FastGPT配置 配置docker-compose 配置令牌和OneAPI部署地址 配置config.json 配置调用的渠道名称和大模型名称 {"systemEnv": {&qu…...

Training-Free Consistent Text-to-Image Generation # 论文阅读
URL https://arxiv.org/pdf/2402.03286 TL;DR 2024 年 2 月 nvidia 的文章。提出了一种不需要任何额外训练的主体保持方法,可以一次生成的 batch 中,通过多个 prompt 生成对应的多张图片,这些图片都可以拥有一个主体。 本文提出的方法通过…...
Spring 中常用的手动装载 bean 方法
在 Spring 的 bean 装载条件中,虽然 Spring 给我们提供了非常好用便捷的 Condition 相关注解,但是很多时候 Condition 相关注解并不满足我们的需求,我需要更复杂的条件手动控制是否装置 bean。这个时候我们就可以实现 Spring 为我们提供的几个…...
如何合理设置Java线程池大小
如何合理设置Java线程池大小:依据任务类型定制策略 Java线程池的合理配置直接关系到系统性能和资源利用率。根据任务性质的不同,合理的线程池大小设置策略也有所区别,主要包括CPU密集型、IO密集型及混合型任务。 1. CPU密集型任务 特点&am…...
python3 pandas
pandas - Python Data Analysis Library...

【B站 heima】小兔鲜Vue3 项目学习笔记Day02
文章目录 Pinia1.使用2. pinia-计数器案例3. getters实现4. 异步action5. storeToRefsx 数据解构保持响应式6. pinia 调试 项目起步1.项目初始化和git管理2. 使用ElementPlus3. ElementPlus 主题色定制4. axios 基础配置5. 路由设计6. 静态资源初始化和 Error lens安装7.scss自…...
RedisTemplate 实现基于 Value 操作的简易锁机制
在高并发场景下,确保操作的原子性和避免竞态条件至关重要。Redis 提供了丰富的数据结构和操作,是实现分布式锁的一个高效选择。本文将介绍如何使用 RedisTemplate 的 opsForValue().setIfAbsent() 方法来实现一种简单的锁机制,并提供一个示例…...
SQL进阶之旅 Day 17:大数据量查询优化策略
文章标题 【SQL进阶之旅 Day 17】大数据量查询优化策略 文章内容 开篇 欢迎来到"SQL进阶之旅"系列的第17天!在前面的16天中,我们从基础的表设计、索引应用到复杂的窗口函数和高级索引策略,逐步深入探讨了SQL的核心技术。今天我们…...
【信息系统项目管理师-选择真题】2025上半年(第二批)综合知识答案和详解(回忆版)
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第…...
Java Lambda 表达式的缺点和替代方案
Java 8 引入的 Lambda 表达式曾被誉为编写简洁、函数式代码的革命性工具。但说实话,它们并不是万能钥匙。它有不少问题,比如它没有宣传的那么易读,在某些场景下还带来性能开销。 作为一名多年与 Java 冗长语法搏斗的开发者,我找到了更注重清晰、可维护性和性能的替代方案。…...

物联网通信技术全景指南(2025)之如何挑选合适的物联网模块
物联网通信技术全景指南(2025)之 如何挑选合适的物联网模块 物联网通信技术全景指南(2025)一、技术代际演进与退网背景二、5G 物联网技术体系(Sub-6 GHz 核心)1. 技术分层架构2. 蜂窝技术性能矩阵3. Sub-6 …...

Double/Debiased Machine Learning
独立同步分布的观测数据 { W i ( Y i , D i , X i ) ∣ i ∈ { 1 , . . . , n } } \{W_i(Y_i,D_i,X_i)| i\in \{1,...,n\}\} {Wi(Yi,Di,Xi)∣i∈{1,...,n}},其中 Y i Y_i Yi表示结果变量, D i D_i Di表示因变量, X i X_i Xi表…...

用go从零构建写一个RPC(4)--gonet网络框架重构+聚集发包
在追求高性能的分布式系统中,RPC 框架的底层网络能力和数据传输效率起着决定性作用。经过几轮迭代优化,我完成了第四版本的 RPC 框架。相比以往版本,这一版本的最大亮点在于 重写了底层网络框架 和 实现了发送端的数据聚集机制,这…...

0x-1 记一次SGA PGA设置失败,重新开库
0、生产侧定时平台上传数据库11g hang,修改无法startup 厂商统一发放的虚拟机作为前置机导入平台后,直接开机使用。主机在虚拟化平台中,实例卡死后,按照虚拟机系统64G,原SGA2g,不知哪个大聪明给默认设置的。保守计划修…...

衡量嵌入向量的相似性的方法
衡量嵌入向量的相似性的方法 一、常见相似性计算方法对比 方法核心原理公式优点缺点适用场景余弦相似度计算向量夹角的余弦值,衡量方向相似性,与向量长度无关。$\text{cos}\theta = \frac{\mathbf{a} \cdot \mathbf{b}}{\mathbf{a}\mathbf{b}欧氏距离计算向量空间中的直线距离…...

Java高级 | 【实验五】Spring boot+mybatis操作数据库
隶书文章:Java高级 | (二十二)Java常用类库-CSDN博客 系列文章:Java高级 | 【实验一】Springboot安装及测试 |最新-CSDN博客 Java高级 | 【实验二】Springboot 控制器类相关注解知识-CSDN博客 Java高级 | 【实验三】Springboot 静…...

第R9周:阿尔茨海默病诊断(优化特征选择版)
文章目录 1. 导入数据2. 数据处理2.1 患病占比2.2 相关性分析2.3 年龄与患病探究 3. 特征选择4. 构建数据集4.1 数据集划分与标准化4.2 构建加载 5. 构建模型6. 模型训练6.1 构建训练函数6.2 构建测试函数6.3 设置超参数 7. 模型训练8. 模型评估8.1 结果图 8.2 混淆矩阵9. 总结…...