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

掌握TCP连接管理与流量控制:从零开始

文章目录

    • 1. TCP连接管理
      • 1.1 三次握手(Three-way Handshake)
      • 1.2 四次挥手(Four-way Handshake)
      • 1.3 TCP连接管理的重要性
    • 2. TCP流量控制
      • 2.1 滑动窗口(Sliding Window)
      • 2.2 拥塞控制(Congestion Control)
      • 2.3 流量控制与拥塞控制的区别
      • 2.4 实际应用中的流量控制
    • 3. 实际应用
      • 3.1 浏览网页
      • 3.2 文件下载
      • 3.3 视频流播放
    • 4. 结论

TCP(Transmission Control Protocol) 是网络通信中的重要协议,负责在计算机之间可靠传输数据。本文将详细讲解TCP的连接管理和流量控制,帮助初学者掌握这些基础知识。

1. TCP连接管理

1.1 三次握手(Three-way Handshake)

TCP连接的建立通过三次握手完成。这个过程确保双方都准备好开始通信。

步骤如下:

  1. 第一次握手: 客户端发送一个SYN(同步序列编号)包,表示希望建立连接。
  2. 第二次握手: 服务器收到SYN包后,返回一个SYN-ACK(同步序列编号-确认)包,表示同意连接。
  3. 第三次握手: 客户端收到SYN-ACK包后,再发送一个ACK(确认)包,表示连接建立。

在这里插入图片描述

示例:
假设客户端A想与服务器B建立连接,过程如下:

  • A -> B: SYN
  • B -> A: SYN-ACK
  • A -> B: ACK

在三次握手的过程中,每一步都至关重要。第一次握手是为了通知服务器客户端希望建立连接;第二次握手服务器同意并确认客户端的请求;第三次握手则是客户端确认服务器的回应,至此连接正式建立。

1.2 四次挥手(Four-way Handshake)

TCP连接的断开通过四次挥手完成。这个过程确保双方都能正确关闭连接。

步骤如下:

  1. 第一次挥手: 客户端发送一个FIN(终止)包,表示希望断开连接。
  2. 第二次挥手: 服务器收到FIN包后,返回一个ACK包,表示已收到请求。
  3. 第三次挥手: 服务器发送一个FIN包,表示同意断开连接。
  4. 第四次挥手: 客户端收到FIN包后,返回一个ACK包,表示连接断开。

在这里插入图片描述

示例:
假设客户端A与服务器B断开连接,过程如下:

  • A -> B: FIN
  • B -> A: ACK
  • B -> A: FIN
  • A -> B: ACK

在四次挥手的过程中,每一步同样重要。第一次挥手表示客户端希望断开连接;第二次挥手确认客户端的请求;第三次挥手服务器同意断开连接;第四次挥手确认服务器的回应,至此连接正式断开。

1.3 TCP连接管理的重要性

TCP连接管理的重要性在于确保数据传输的可靠性和稳定性。通过三次握手和四次挥手,TCP协议能够确保在数据传输前双方都已准备好,并在数据传输后正确关闭连接,避免数据丢失和资源浪费。

2. TCP流量控制

2.1 滑动窗口(Sliding Window)

滑动窗口机制用于控制数据传输量,避免网络拥塞。它通过调整窗口大小,确保发送方不会发送过多数据。

主要概念:

  • 发送窗口: 发送方可以发送但未确认的数据范围。
  • 接收窗口: 接收方能够接收但未确认的数据范围。

示例:
假设窗口大小为5,发送方可以在收到确认前发送5个数据包。

滑动窗口不仅能够控制数据传输量,还能提高数据传输的效率。通过动态调整窗口大小,滑动窗口机制能够在网络状况良好时增加传输量,在网络状况不佳时减少传输量,确保数据传输的稳定性。

2.2 拥塞控制(Congestion Control)

拥塞控制机制防止网络过载,通过逐步增加或减少数据传输量来维持网络稳定。

常见算法:

  • 慢启动(Slow Start): 刚开始传输时,逐步增加发送窗口大小。
  • 拥塞避免(Congestion Avoidance): 达到阈值后,缓慢增加窗口大小。
  • 快速重传(Fast Retransmit): 发现丢包时,立即重传数据包。
  • 快速恢复(Fast Recovery): 丢包后,快速恢复数据传输速率。

示例:
假设初始窗口大小为1,每次确认增加窗口大小,直至达到网络容量。

2.3 流量控制与拥塞控制的区别

流量控制拥塞控制虽然都用于数据传输的控制,但它们的侧重点不同。流量控制侧重于控制发送方的数据传输速度,确保接收方能处理所有接收的数据;拥塞控制则侧重于调整数据传输量,避免网络过载。

2.4 实际应用中的流量控制

在实际应用中,流量控制机制能够显著提高数据传输的效率和可靠性。例如,在文件下载过程中,滑动窗口和拥塞控制机制确保数据传输的稳定性和高效性。

示例:
当你在下载一个大文件时,TCP协议会根据网络状况动态调整数据传输量,确保下载过程不受干扰。

3. 实际应用

3.1 浏览网页

当你在浏览器中输入网址并回车时,浏览器与服务器之间会通过TCP协议建立连接,进行数据传输。

步骤:

  1. 浏览器发送SYN包,服务器返回SYN-ACK包。
  2. 浏览器发送ACK包,连接建立。
  3. 数据传输完成后,浏览器发送FIN包,服务器返回ACK包。
  4. 服务器发送FIN包,浏览器返回ACK包,连接断开。

在这个过程中,每一步都至关重要。浏览器通过三次握手建立连接,确保数据传输的可靠性;通过四次挥手断开连接,确保资源的正确释放。

3.2 文件下载

下载文件时,客户端与服务器之间通过TCP连接传输文件数据。滑动窗口和拥塞控制机制能确保下载过程稳定、高效。

步骤:

  1. 客户端发送SYN包,服务器返回SYN-ACK包。
  2. 客户端发送ACK包,连接建立。
  3. 文件数据通过滑动窗口机制传输,确保不丢包。
  4. 数据传输完成后,客户端发送FIN包,服务器返回ACK包。
  5. 服务器发送FIN包,客户端返回ACK包,连接断开。

在文件下载过程中,滑动窗口和拥塞控制机制能够动态调整数据传输量,确保下载过程的稳定性和高效性。

3.3 视频流播放

在视频流播放过程中,TCP协议确保视频数据的可靠传输。通过滑动窗口和拥塞控制机制,TCP协议能够动态调整数据传输量,确保视频播放的流畅性。

步骤:

  1. 播放器发送SYN包,服务器返回SYN-ACK包。
  2. 播放器发送ACK包,连接建立。
  3. 视频数据通过滑动窗口机制传输,确保不丢包。
  4. 数据传输完成后,播放器发送FIN包,服务器返回ACK包。
  5. 服务器发送FIN包,播放器返回ACK包,连接断开。

在视频流播放过程中,滑动窗口和拥塞控制机制能够动态调整数据传输量,确保视频播放的流畅性和高效性。

4. 结论

通过本文,你已经了解了TCP连接管理流量控制的基本概念和实际应用。这些知识是网络通信的基础,有助于你更好地理解和应用TCP协议。

总结要点:

  1. 三次握手和四次挥手确保TCP连接的可靠建立和断开。
  2. 滑动窗口机制动态调整数据传输量,确保传输效率和稳定性。
  3. 拥塞控制机制防止网络过载,维持网络稳定。
  4. 这些机制在实际应用中,如浏览网页、文件下载和视频流播放,都起到了关键作用。

希望这篇文章对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言。

图文来源:《计算机网络教程》第六版微课版

相关文章:

掌握TCP连接管理与流量控制:从零开始

文章目录 1. TCP连接管理1.1 三次握手(Three-way Handshake)1.2 四次挥手(Four-way Handshake)1.3 TCP连接管理的重要性 2. TCP流量控制2.1 滑动窗口(Sliding Window)2.2 拥塞控制(Congestion C…...

python提取b站视频的音频(提供源码

如果我想开一家咖啡厅,那么咖啡厅的音乐可得精挑细选!又假设我非常喜欢o叔,而o叔只在b站弹钢琴,那这时候我就得想方设法把b站的视频转为音频咯! 一、首先打开网页版bilibili,按F12: 二、刷新页面…...

嵌入式Linux ,QT5 鼠标键盘设备参数指定环境变量的方法

根文件系统中,一般用mdev来管理设备,不像udev方便,有时候在执行rcS脚本的时候因为,太快,有些设备比如鼠标还没在/dev/input中生成设备文件,最好使用前用mdev -s扫描并等待几秒钟,然后就可以在in…...

C语言钥匙迷宫2.0

目录 开头程序程序的流程图程序游玩的效果结尾 开头 大家好&#xff0c;我叫这是我58。废话不多说&#xff0c;咱们直接开始。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> #include <Windows.h> enum color {Y,B,R …...

【多线程】初步认识Thread类及其应用

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;多线程 / javaEE初阶 上篇文章我们简单介绍了什么是进程与线程&#xff0c;以及他们之间的区别与联系&#xff0c;实际应用中还是以多线程编程为主的&#xff0c;所以这篇文章就让我们更加深入地去剖…...

algorithm算法库学习之——划分操作和排序操作

algorithm此头文件是算法库的一部分。本篇介绍划分操作和排序操作。 划分操作 is_partitioned (C11) 判断范围是否已按给定的谓词划分 (函数模板) partition 将范围中的元素分为两组 (函数模板) partition_copy (C11) 复制一个范围&#xff0c;将各元素分为两组 (函数模板) st…...

XSS实验记录

目录 XXS地址 实验过程 Ma Spaghet Jeff Ugandan Knuckles Ricardo Milos Ah Thats Hawt Ligma Mafia Ok, Boomer XXS地址 XSS Game - Learning XSS Made Simple! | Created by PwnFunction 实验过程 Ma Spaghet 要求我们弹出一个alert(1337)sandbox.pwnfuncti…...

Cortex-A7的GIC(全局中断控制器)使用方法(7):基于stm32MP135的GIC配置中断效果测试

0 参考资料 STM32MP13xx参考手册.pdf&#xff08;RM0475&#xff09; ARM Generic Interrupt Controller Architecture version 2.0 - Architecture Specification.pdf 1 GIC配置中断效果测试 前面我们已经实现了GIC的配置&#xff0c;为了验证GIC是否配置有效&#xff0c;本例…...

c++动态数组new和delete

文章目录 动态数组的使用大全1. **基本创建和初始化**2. **动态调整大小**3. **动态数组的使用与标准库 std::vector**4. **动态数组作为函数参数**输出 5. **使用动态数组存储用户输入** 动态数组的使用大全 1. 基本创建和初始化 示例&#xff1a; #include <iostream&g…...

Redis热点知识速览(redis的数据结构、高性能、持久化、主从复制、集群、缓存淘汰策略、事务、Pub/Sub、锁机制、常见问题等)

Redis是一个开源的、使用内存作为存储的、支持数据结构丰富的NoSQL数据库。它的高性能、灵活性和简单易用使其在许多场景下成为首选的缓存解决方案。以下是Redis的常见和热点知识总结。 数据结构 Redis支持五种基本数据结构&#xff1a; String&#xff1a;字符串是Redis中最…...

【C++浅析】lambda表达式:基本结构 使用示例

基本结构 [捕获列表](参数列表) -> 返回类型 { // 函数体 } 捕获列表 ([ ]): 用于指定外部变量的捕获方式。可以&#xff1a; 通过值捕获&#xff1a;[x]通过引用捕获&#xff1a;[&x]捕获所有变量通过值&#xff1a;[]捕获所有变量通过引用&#xff1a;[&]自…...

利用Redis获取权限的多种方式

更多实战内容&#xff0c;可前往无问社区查看http://www.wwlib.cn/index.php/artread/artid/10333.html Redis是我们在实战中经常接触到的一款数据库&#xff0c;因其在前期打点中被利用后可直接影响服务器安全所以在攻防过程中也备受红队关注&#xff0c;在本文中会重点分享一…...

LeetCode - LCR 146- 螺旋遍历二维数组

LCR 146题 题目描述&#xff1a; 给定一个二维数组 array&#xff0c;请返回「螺旋遍历」该数组的结果。 螺旋遍历&#xff1a;从左上角开始&#xff0c;按照 向右、向下、向左、向上 的顺序 依次 提取元素&#xff0c;然后再进入内部一层重复相同的步骤&#xff0c;直到提取完…...

如何获取Bing站长工具API密钥

Bing站长工具近期悄然上线了网站URL推送功能&#xff0c;似乎有意跟随百度的步伐。这个新功能允许站长通过API向Bing提交链接数据&#xff0c;当然也可以通过Bing站长工具手动提交。 本文将详细介绍如何通过Bing站长工具生成用于网站链接推送的API密钥。 首先&#xff0c;访问…...

NC 调整数组顺序使奇数位于偶数前面(一)

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 输入一个长度…...

Unity异步把图片数据从显存下载到内存(GPU->CPU)

Unity异步把图片数据从显存下载到内存&#xff08;GPU->CPU&#xff09; 1.c#核心代码 using System.Collections; using System.Collections.Generic; using Unity.Collections; using UnityEditor.PackageManager.Requests; using UnityEngine; using UnityEngine.Rende…...

【MySQL】C/C++连接MySQL客户端,MySQL函数接口认知,图形化界面进行连接

【MySQL】C/C引入MySQL客户端 安装mysqlclient库mysql接口介绍初始化mysql_init链接数据库mysql_real_connect下发mysql命令mysql_query获取出错信息mysql_error获取执行结果mysql_store_result获取结果行数mysql_num_rows获取结果列数mysql_num_fields判断结果列数mysql_field…...

Wireshark分析工具

简单用例 首先打开软件&#xff0c;左上角点文件&#xff0c;选中要分析的文件列表。 导入用tcpdump抓的包后进行分析&#xff0c;这里要输入过滤条件&#xff0c;对网络包进行一定的过滤处理。&#xff08;这里172网段是阿里云的地址&#xff0c;用自己写的python2脚本对阿里…...

linux网络配置脚本

通过脚本&#xff0c;设置静态ip以及主机名 因为企业9的网络配置文件和企业7的不一样所以&#xff0c;我们以rhel9和rhel7为例 rhel7/centos7/openeuler #!/bin/bash cat > /etc/sysconfig/network-scripts/ifcfg-$1 << EOF DEVICE$1 ONBOOTyes BOOTPROTOnone IPAD…...

IT管理:我与IT的故事4

首先&#xff0c;宣布一个“坏消息”。最近Herry童鞋的办公邮箱似乎有些“抽抽”了&#xff0c;所以邮件出现了延迟、拒收、被拒收、甚至是石沉大海的现象。为了能够更好的和大家进行沟通&#xff0c;大家如果发邮件到我办公邮箱的时候&#xff0c;若不嫌麻烦&#xff0c;可以抄…...

短链接系统设计方案

背景 需要设计一个短链接系统&#xff0c;主要功能主要有如下几点&#xff1a; ToB&#xff1a; 输入一个长链接&#xff0c;转换成短链接。这个短链接有时效性&#xff0c;可以设定指定过期时间。这个系统的每天会生成千万级别的短链接。数据具备可分析功能。 ToC&#xf…...

Cisco交换机SSH使用RSA公钥免密登录(IOS与Nexus,服务器以RHEL8为例)

目录 需求实验步骤0. 实验环境1. Linux2. CiscoIOS基础设置保存密钥登陆测试 3. CiscoNexus基础配置保存密钥登陆测试 需求 在实际工作中&#xff0c;常会遇到自动化的需求&#xff0c;那么在自动采集、配置等对网络设备的自动化需求中&#xff0c;不可避免的会遇到需要登录-&…...

QT判断操作系统类型和CPU架构

一、判断操作系统类型 1.在.pro文件中判断 macx { # mac only } unix:!macx{ # linux only } win32 { # windows only }2.在代码中判断 可以包含QGlobal头文件&#xff0c;判断预定义宏 #include <QtGlobal> ... #ifdef Q_OS_MAC // mac #endif#ifdef Q_OS_LINUX // …...

input[type=checkbox]勾选框自定义样式

效果图&#xff1a; <template> <input class"rule-checkbox" type"checkbox" checked v-model"isChecked" /> </template><script setup lang"ts"> import { ref } from vue; const isChecked ref(); </…...

鼠害监测系统:科技守护农业安全

在农业生产中&#xff0c;鼠害一直是威胁作物安全、影响产量的重要因素。然而&#xff0c;随着科技的飞速发展&#xff0c;鼠害监测系统正逐步成为现代农业防治鼠害的重要利器。 鼠害监测系统巧妙融合了现代光电、数控及物联网技术&#xff0c;实现了诱鼠、投喂鼠药、鼠情监测及…...

Ubuntu20.04如何安装配置JDK

资源准备 官方下载地址&#xff08;根据自己的系统版本选择不同版本进行下载即可&#xff09;&#xff1a;Java Downloads | Oracle 如无特殊需要可直接移步至下方JDK1.8安装包 https://download.csdn.net/download/qq_43439214/89646731 安装步骤 创建Java目录 sudo mkdir …...

Python3网络爬虫开发实战(9)代理的使用 (需补充代理池的构建)

文章目录 一、代理的设置1.1 urllib 的代理设置1.2 requests 的代理设置1.3 httpx 的代理设置1.4 aiohttp 的代理设置1.4 Selenium 的代理设置1.6 Playwright 的代理设置 二、代理池的构建和维护2.1 代理池的模块构成2.2 代理池的实现 网站为了避免爬虫采集数据可能会采取一些反…...

人际关系中的价值交换原理,在人类社会的复杂网络中,人际关系犹如一根根交织的丝线,将我们彼此紧密相连

人际关系中的价值交换原理,在人类社会的复杂网络中,人际关系犹如一根根交织的丝线,将我们彼此紧密相连。无论是亲情、友情还是爱情,这些关系在表面的情感纽带之下,实则都涉及到价值交换的原理。这种价值交换并非仅仅局限于物质层面,而是涵盖了情感、心理等人类所需的一切…...

西安电子科技大学萌新智慧指南(校区篇)

本次是西安电子科技大学南校区【本部南校区】 刚刚进入校园 相信大家对校园环境还很陌生 接下来就用一张地图 带大家迅速了解一下南校区的构造 宿舍 学生宿舍主要分为三部分 竹园公寓 1-4 海棠公寓 5-10 丁香公寓 11-15 研究生们主要居住在 海棠续建5、丁香14、丁香1…...

JavaScript基础(33)_鼠标滚轮滚动事件、键盘事件

鼠标滚轮滚动事件&#xff1a;onwheel 获取鼠标滚轮滚动的方向&#xff1a;wheelDelta 比如&#xff1a;向上滚动&#xff1a;109 &#xff08;所有正值都是向上&#xff09; 向下滚动&#xff1a;-109&#xff08;所有负值都是向下&#xff09; 注意&#xff1a;当…...

怎样做网站推广

拥有一个精致而富有吸引力的网站是成功商业运营的关键。然而&#xff0c;仅仅拥有一个网站是不够的&#xff0c;您还需要通过有效的推广策略吸引更多的访问者。以下是一些成功的网站推广策略&#xff0c;帮助您提升流量并增加知名度。 1. 优化SEO&#xff1a; 搜索引擎优化&am…...

Unity引擎加密方案解析

据悉&#xff0c;Unity引擎的全球市场占有率已经超过50%&#xff0c;而在全球排名前1000的手游当中&#xff0c;这一数据更是高达73%。不止如此&#xff0c;Unity在中国拥有高达350万的注册用户&#xff0c;《崩坏星穹铁道》、《王者荣耀》等爆款游戏均为Unity引擎开发。 庞大…...

遇到的几个iOS问题

1 unable to boot the simulator 跑模拟器的时候遇到这个报错&#xff0c; 解决方法 处理办法&#xff1a; 删除升级之前的模拟器缓存&#xff0c;重启模拟器。删除路径&#xff1a;~/Library/Developer/CoreSimulator/Cache 注意&#xff1a;后面可能还会复现这个报错&#x…...

掌握ChatGPT写作艺术:从入门到精通的四个层次

这些周末我仔细研究了如何通过优化提示词提升ChatGPT输出内容的质量。 关于如何使用ChatGPT辅助我们的写作&#xff0c;我归纳了以下规律&#xff0c;希望能为你带来启发。 一、写作步骤 撰写一篇文章&#xff0c;思路上必须是从抽象到具体逐步深入。 首先我们需要明确写什么…...

虚幻UE5安装报错误代码:SU-PQR5

找到图标的快捷方式 “Epic Games Launcher”右键属性&#xff0c;在目标最后添加-SkipBuildPatchPrereq&#xff0c;如下图&#xff1a; 最后&#xff0c;见证奇迹成功打开软件&#xff0c;可以继续安装啦。 参考资料&#xff1a; 【图片】求教各位大佬--错误代码SU-PQR5【ep…...

谷歌开源Gemma-2 百亿参数大模型,性能超越Llama-3模型,免费使用

Gemma 模型 Gemma模型是谷歌发布的一个开源模型&#xff0c;任何人都可以免费下载预训练模型&#xff0c;进行使用。而谷歌最近也发布了Gemma 2 模型&#xff0c;模型参数超过了 200 亿大官&#xff0c;果真大模型最后都是拼参数的时候吗。 Gemma 2 模型发布 Gemma 2 模型可以…...

人工智能与机器学习原理精解【12】

文章目录 分级聚类理论分级聚类的详细说明1. 定义2. 算法3. 计算4. 例子5. 例题 皮尔逊相关系数 julia实现 参考文献 分级聚类 理论 分级聚类的详细说明 1. 定义 分级聚类&#xff08;Hierarchical Clustering&#xff09;&#xff0c;又称为层次聚类&#xff0c;是一种通过…...

openEuler系统安装Visual Studio Code

openEuler系统安装Visual Studio Code 背景安装密钥和存储库更新包缓存并使用dnf安装包Fedora 22及以上版本旧版本使用yum 安装过程截图安装成功看桌面效果 背景 openEuler(openEuler-24.03-LTS)安装了麒麟UKUI桌面但是没有麒麟软件商店想安装Visual Studio Code 安装密钥和…...

Qt 系统相关 - 事件

目录 1. 事件介绍 2. 事件的处理 示例1&#xff1a;处理鼠标进入和离开 示例2&#xff1a;当鼠标点击时&#xff0c;获取对应的坐标值&#xff1b; 3. 按键事件 3.1 单个按键 3.2 组合按键 4. 鼠标事件 4.1 鼠标单击事件 4.2 鼠标释放事件 4.3 鼠标双击事件 4.4 鼠标…...

Ubuntu最小化命令行系统 安装GUI 远程桌面

Ubuntu 服务器 安装GUI 更新、升级 sudo apt update && sudo apt upgrade安装桌面环境 sudo apt install taskselsudo apt install ubuntu-desktop安装显示登录管理器 sudo apt install lightdm安装 lightdm 时系统会让选择默认的显示管理器&#xff0c;选择lightd…...

Web前端:CSS篇(二)背景,文本,链接

CSS 背景 背景颜色 background-color 属性定义了元素的背景颜色. 页面的背景颜色使用在body的选择器中: body {background-color:#b0c4de;} CSS中&#xff0c;颜色值通常以以下方式定义: 十六进制 - 如&#xff1a;"#ff0000"RGB - 如&#xff1a;"rgb(255,0…...

ubuntu 24.04 软件源配置,替换为国内源

ubuntu 默认的官网源下载速度非常慢&#xff0c;新装 ubuntu 系统首先把 apt 软件源替换成国内源。 1、使用软件和更新设置国内源 打开软件和更新&#xff0c;选择位于中国的服务器&#xff1a; 外链图片转存失败&#xff0c;源站可能有防盗链机制&#xff0c;建议将图片保存…...

【Java 并发编程】(三) 从CPU缓存开始聊 volatile 底层原理

并发编程 三大问题 在并发编程中&#xff0c;原子性、有序性和可见性是三个重要的问题&#xff0c;解决这三个问题是保证多线程程序正确性的基础。原子性: 指的是一个操作不可分割, 要么全部执行完成, 要么不执行, 不存在执行一部分的情况.有序性: 有序性是指程序的执行顺序与…...

YOLOV8网络结构|搞懂Backbone-Conv

参数量计算: (输入通道*w)*(输出通道*w)*k^2+(输出通道*w)*2 w是模型缩放里面的width - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2 输出通道c2=64,k=3,s=2 P1/2 特征图变小一半 先定义算子层 再搭一个forward前向传播 class Conv(nn.Module):"""Standard convo…...

Elasticsearch Nested类型详解与实战

Elasticsearch&#xff08;简称ES&#xff09;是一个基于Lucene的全文搜索引擎&#xff0c;它提供了强大的搜索能力以及对数据的高效索引和查询。在ES中&#xff0c;数据通常以JSON格式存储&#xff0c;并且可以采用多种数据类型。其中&#xff0c;nested类型是一种特殊的对象数…...

网络编程,网络协议,UDP协议

网络&#xff1a; 1.协议&#xff1a;通信双方约定的一套标准 2.国际网络通信协议标准&#xff1a; 1.OSI协议&#xff1a; 应用层 发送的数据内容 表示层 数据是否加密 会话层 是否建立会话连接 传输层 …...

每日一题——第六十三题

题目&#xff1a;判断一个数是否为合数 #include <stdio.h> #include <stdbool.h> // 为了使用bool类型 // 函数声明&#xff0c;用于判断是否为合数 bool isComposite(int x); int main() { int x; printf("请输入一个正整数: "); scanf(&quo…...

人工智能算法,图像识别技术;基于大语言模型的跨境商品识别与问答系统;图像识别

目录 一 .研究背景 二,大语言模型介绍 三,数据采集与预处理 商品识别算法 四. 跨境商品问答系统设计 五.需要源码联系 一 .研究背景 在当今全球化的背景下&#xff0c;跨境电商行业迅速发展&#xff0c;为消费者提供了更广泛的购物选择和更便利的购物方式。然而&#xf…...

数据库系统 第18节 数据库安全

数据库安全是确保数据库管理系统&#xff08;DBMS&#xff09;中存储的数据的保密性、完整性和可用性的过程。以下是一些关键的数据库安全措施&#xff1a; 用户身份验证&#xff08;Authentication&#xff09;&#xff1a; 这是确定用户或系统是否有权访问数据库的第一步。通…...

Golang | Leetcode Golang题解之第338题比特位计数

题目&#xff1a; 题解&#xff1a; func countBits(n int) []int {bits : make([]int, n1)for i : 1; i < n; i {bits[i] bits[i&(i-1)] 1}return bits }...