最新资讯

  • TCP协议深度解析:格式、应答机制、序号管理、超时重传与报头标记位

TCP协议深度解析:格式、应答机制、序号管理、超时重传与报头标记位

2025-05-04 07:37:36 0 阅读

🍑个人主页:Jupiter.
🚀 所属专栏:Linux从入门到进阶
欢迎大家点赞收藏评论😊

目录

      • `理解分装与解包`
    • `TCP 协议`
      • `TCP 协议段格式`
    • `确认应答(ACK)机制`
      • `序号与确认序号`
        • `序号与确认序号的意义`
        • `确认序号的意义`
    • `捎带应答`
        • `捎带应答的基本原理`
          • `捎带应答的优势`
      • `超时重传机制`
    • `TCP报头标记位`


理解分装与解包

  • 操作系统内可能存在大量还没来得及处理的报文。那么,OS需要将这些没有被处理的报文进行管理,先描述,再组织。

所以,一个报文会有一个描述报文的结构体 struct sk_buff,并且还有一个内存空间,内存空间里面存储的就是报文的数据。所以对OS内报文的管理就变成了对链表的增删查改。

data就指向报文的数据存放的起始位置,head指针指向报头的起始位置,其中还包含有tail指针等等。

所谓的封装,实际上就是该类型的报头的结构体对象的拷贝,改变head指针的位置
所谓的解包,就是强转加改变head的位置

TCP 协议

TCP 全称为 “传输控制协议(Transmission Control Protocol”). 人如其名, 要对数据的传输进行一个详细的控制;

TCP 协议段格式

  • 源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去;
  • 32 位序号/32 位确认号: 后面会详细介绍;
  • 4 位 TCP 报头长度: 表示该 TCP 头部有多少个 32 位 bit(有多少个 4 字节); 所以TCP 头部最大长度是 15 * 4 = 60字节,报头(除了选项)只占用了20字节,即选项最大可以占用40字节,并且必须是4字节的整数倍。(为0101=4的时候,即标识没有选项)
  • 6 位标志位:位段,每一个标记位只有一个比特位)
    • SYN: 请求建立连接; 我们把携带 SYN 标识的称为同步报文段
    • ACK: 确认号是否有效
    • PSH: 提示接收端应用程序立刻从 TCP 缓冲区把数据读走
    • URG: 紧急指针是否有效
    • RST: 对方要求重新建立连接; 我们把携带 RST 标识的称为复位报文段
    • FIN: 通知对方, 本端要关闭了, 我们称携带 FIN 标识的为结束报文段
  • 16 位窗口大小: 后面会详细介绍
  • 16 位校验和: 发送端填充, CRC 校验. 接收端校验不通过, 则认为数据有问题. 此处的检验和不光包含 TCP 首部, 也包含 TCP 数据部分.
  • 16 位紧急指针: 标识哪部分数据是紧急数据; (后面也详细介绍)
  • 40 字节头部选项: 暂时忽略;

确认应答(ACK)机制

客户端和服务器怎么知道对方是否收到了自己发送的报文了呢?

  • 这就要引出确认应答机制了。

当发送端(如计算机A)发送一个TCP报文段给接收端(如计算机B)时,它会等待接收端的确认应答。这个确认应答是一个ACK报文段,其中包含了接收端期望收到的下一个报文段的第一个字节的序号(即确认序号)。

但是对于这种,每发一条消息都会应答一下效率太低了,TCP真实的发送消息的模式是:客户端可以同时向服务器发送多条报文,未来服务器会同时收到很多报文,这样服务器就可以同时发送多个应答。这样可以提高发送的效率。

序号与确认序号

一次发送多条信息,怎么保证发送的顺序与收到的顺序一致呢?

  • TCP 将发送缓冲区的数据的每个字节的数据都进行了编号. 即为序列号。

  • 客户端发送数据给服务端的时候,每条数据都带有一个特殊的序号,也就是TCP报头中的32位序号,服务端收到该信息后,给客服端进行发送确认应答的时候,也会带上相应的确认序号(也就是TCP报头中的32位确认序号)。确认序号一般是收到的报文的报头里序号的值+1比如:收到的报文的报头里序号为1000,则对应的应答的报文的确认序号就应该的是1000+1 = 1001;1001的确认序号表示的是,序号之前的内容我已经收到了,下次发送请从确认序号开始。

  • 每一个 ACK 都带有对应的确认序列号, 意思是告诉发送者, 我已经收到了哪些数据; 下一次你从哪里开始发。

  • 双方在互相发消息的时候,都是基于报文发的,都会携带相应的报头,这里谈的是传输层TCP协议,就是要携带TCP的报头的,可以是不携带数据的,但是至少带有一个完整的报头。

序号与确认序号的意义

序号,在TCP协议中,该序号表示该报文段中数据的第一个字节在整个数据流中的位置。这个序号用于确保数据的顺序性和完整性。TCP协议通过为每个数据包分配一个唯一的序号,来确保接收方能够按照正确的顺序重组数据,并且能够检测到是否有数据丢失。

  • 唯一性:每个数据包的序号都是唯一的,这有助于接收方区分不同的数据包。
  • 顺序性:序号保证了数据包的顺序,接收方可以根据序号将数据包重新排序,以恢复原始数据的顺序。
  • 完整性:通过序号,接收方可以检测到数据包的丢失或重复,从而请求发送方重传丢失的数据包。
确认序号的意义

确认序号,是接收方向发送方发送的确认消息中包含的一个字段。它用于告知发送方接收方已经成功接收到的数据的序号。确认序号的存在,是TCP协议实现可靠传输的关键机制之一。

  • 可靠性:确认序号确保了数据的可靠传输。当接收方成功接收到数据包后,它会向发送方发送一个包含确认序号的确认消息,以告知发送方哪些数据已经被成功接收。
  • 流量控制:通过确认序号,接收方还可以控制发送方的发送速率,防止网络拥塞。如果接收方的缓冲区已满,它可以通过延迟发送确认消息或调整确认序号来减缓发送方的发送速率。
  • 有序性:确认序号还保证了数据包的有序性。接收方会按照序号的顺序接收数据包,并在确认消息中包含已接收到的最高序号的数据包。这样,发送方就可以知道哪些数据包已经被接收,哪些还需要重传。

捎带应答

TCP(传输控制协议)中的捎带应答是一种优化机制,旨在提高网络传输效率。捎带应答建立在延时应答的基础上,通过将原本需要单独发送的确认应答(ACK)报文与其他数据报文合并发送,从而减少了网络中的报文数量,降低了网络拥塞的可能性,并提高了整体传输效率。

捎带应答的基本原理

在TCP协议中,当接收端收到发送端发送的数据后,需要返回一个确认应答(ACK)报文给发送端,以告知发送端数据已被成功接收。通常情况下,这个ACK报文是单独发送的,即每收到一定数量的数据就返回一个ACK。然而,在捎带应答机制中,接收端会等待一段时间(这个时间通常是根据网络状况和应用需求来设定的),看是否有其他数据需要发送给发送端。如果有,接收端就会将ACK报文与这些数据合并,形成一个包含数据和确认信息的复合报文发送给发送端。

捎带应答的优势
  • 减少报文数量:通过合并ACK报文和其他数据报文,减少了网络中的报文数量,降低了网络拥塞的可能性。
  • 提高传输效率:由于减少了报文数量,网络的带宽利用率得到了提高,从而加快了数据传输的速度。
  • 降低延迟:在某些情况下,捎带应答可以减少发送ACK报文所需的等待时间,从而降低了传输延迟。

既是应答,又携带了数据。可以提高效率。其中在捎带应答里面会同时使用序号和确认序号

超时重传机制

  • 主机 A 发送数据给 B 之后, 可能因为网络拥堵等原因, 数据无法到达主机 B;
  • 如果主机 A 在一个特定时间间隔内没有收到 B 发来的确认应答, 就会进行重发;

但是, 主机 A 未收到 B 发来的确认应答, 也可能是因为 ACK 丢失了;

因此主机 B 会收到很多重复数据. 那么 TCP 协议需要能够识别出那些包是重复的包, 并且把重复的丢弃掉.

  • 这时候我们可以利用前面提到的序列号, 就可以很容易做到去重的效果.

那么, 如果超时的时间如何确定?

  • 最理想的情况下, 找到一个最小的时间, 保证 “确认应答一定能在这个时间内返
    回”.
  • 但是这个时间的长短, 随着网络环境的不同, 是有差异的.
  • 如果超时时间设的太长, 会影响整体的重传效率;
  • 如果超时时间设的太短, 有可能会频繁发送重复的包;

TCP 为了保证无论在任何环境下都能比较高性能的通信, 因此会动态计算这个最大超时时间.

  • Linux 中(BSD Unix 和 Windows 也是如此), 超时以 500ms 为一个单位进行控制, 每次判定超时重发的超时时间都是 500ms 的整数倍.
  • 如果重发一次之后, 仍然得不到应答, 等待 2*500ms 后再进行重传.
  • 如果仍然得不到应答, 等待 4*500ms 进行重传. 依次类推, 以指数形式递增.
  • 累计到一定的重传次数, TCP 认为网络或者对端主机出现异常, 强制关闭连接.

TCP报头标记位

在通信的时候,会存在很多不同类型的报文,设置标记位,是为了通信双方可以根据不同的报文类型去实施下一步操作。

TCP报头中包含标记位(也称为标志位或控制位),它们用于控制和管理TCP连接的各种状态和操作,确保数据的可靠传输和连接的正确管理。以下是TCP报头中标记位的作用:

  1. SYN(Synchronize)
    作用:用于建立连接。当一个TCP客户端希望与服务器建立连接时,会将SYN标志位置为1,并发送一个带有SYN标志位的数据包。这是TCP三次握手过程中的第一步,用于同步双方的初始序列号
  2. ACK(Acknowledgment)
    作用:用于确认收到数据。当一个TCP数据包携带ACK标志位时,表示接收方已经成功收到之前的数据包,并发送了一个确认应答。
    意义:ACK机制保证了TCP传输的可靠性,通过确认机制,发送方可以确保数据已被接收方正确接收,从而避免数据丢失或重复传输。
    3. FIN(Finish)
    作用:用于关闭连接。当一个TCP连接的一方希望关闭连接时,会将FIN标志位置为1,并发送一个带有FIN标志位的数据包。
    意义:FIN的存在使得TCP连接可以优雅地关闭,通过发送FIN数据包,双方可以确认连接的终止,并释放相关资源。
  3. RST(Reset)
    作用:用于重置连接。当一个TCP连接发生错误或异常时,可以发送一个带有RST标志位的数据包来重置连接,中断通信。
    意义:RST机制提供了一种快速恢复机制,当连接出现严重问题时,可以立即中断连接,避免错误状态的持续和资源的浪费。
  4. PSH(Push)
    作用:用于立即传输数据。当一个TCP数据包携带PSH标志位时,表示发送方希望立即将数据传输给接收方,而不缓存或等待其他数据。如果接收端缓冲区的大小一直没有改变,也就是一直 没有被读走,那么发送端可以催促接收端主机尽快将数据读走。
    意义:PSH机制提高了数据传输的实时性,使得重要或紧急的数据可以优先传输,减少了数据的等待时间。
  5. URG(Urgent)
    作用:用于指示紧急数据。当一个TCP数据包携带URG标志位时,表示其中包含了紧急数据,需要优先处理。(比如需要让服务端将之前的报文放弃处理等),常常与16位紧急指针一起使用,代表的是紧急数据在报文数据中的偏移量。在TCP中,紧急数据只有一个字节。也就是这16位紧急指针指向的是一个字节,常常是约定好的状态码,错误码等,这一个字节可以被上层优先读取,根据这个字节的内容,上层从而知道下一步的动作。
    意义:URG机制确保了紧急数据能够得到及时处理,提高了数据传输的灵活性和效率。

本文地址:https://www.vps345.com/7890.html

搜索文章

Tags

PV计算 带宽计算 流量带宽 服务器带宽 上行带宽 上行速率 什么是上行带宽? CC攻击 攻击怎么办 流量攻击 DDOS攻击 服务器被攻击怎么办 源IP 服务器 linux 运维 游戏 云计算 javascript 前端 chrome edge 阿里云 网络 网络安全 网络协议 llama 算法 opencv 自然语言处理 神经网络 语言模型 ubuntu ssh php 人工智能 python MCP asm Ubuntu 开发环境 macos Dify vscode deepseek Ollama 模型联网 API CherryStudio centos openvpn server openvpn配置教程 centos安装openvpn 经验分享 进程 操作系统 进程控制 RTSP xop RTP RTSPServer 推流 视频 科技 ai java 个人开发 json debian PVE docker tomcat 容器 mysql adb android harmonyos 华为 开发语言 typescript 计算机网络 英语 nginx 负载均衡 windows C# MQTTS 双向认证 emqx 数据库 oracle 关系型 安全 分布式 tcp/ip 机器学习 ue5 vr c++ 嵌入式 linux驱动开发 arm开发 嵌入式硬件 ip命令 新增网卡 新增IP 启动网卡 学习 numpy rust http HarmonyOS Next DevEco Studio Docker Hub docker pull 镜像源 daemon.json Linux k8s kubernetes Qwen2.5-coder 离线部署 YOLO efficientVIT YOLOv8替换主干网络 TOLOv8 pip conda 并查集 leetcode vue3 HTML audio 控件组件 vue3 audio音乐播放器 Audio标签自定义样式默认 vue3播放音频文件音效音乐 自定义audio播放器样式 播放暂停调整声音大小下载文件 笔记 鸿蒙 网络药理学 生信 生物信息学 gromacs 分子动力学模拟 MD 动力学模拟 运维开发 云原生 c# ui 华为云 华为od github 创意 社区 jellyfin nas Flask FastAPI Waitress Gunicorn uWSGI Uvicorn jenkins 互信 面试 性能优化 jdk intellij-idea 架构 llm transformer git elasticsearch MacOS录屏软件 Dell R750XS gitee spring boot GaN HEMT 氮化镓 单粒子烧毁 辐射损伤 辐照效应 powerpoint 自动化 pycharm 虚拟机 VMware dify protobuf 序列化和反序列化 安装 mac 游戏程序 ios 宝塔面板访问不了 宝塔面板网站访问不了 宝塔面板怎么配置网站能访问 宝塔面板配置ip访问 宝塔面板配置域名访问教程 宝塔面板配置教程 java-ee xcode ide vue.js audio vue音乐播放器 vue播放音频文件 Audio音频播放器自定义样式 播放暂停进度条音量调节快进快退 自定义audio覆盖默认样式 etcd 数据安全 RBAC 产品经理 agi microsoft vim ssl 前端框架 高级IO epoll 深度学习 目标检测 计算机视觉 EtherCAT转Modbus ECT转Modbus协议 EtherCAT转485网关 ECT转Modbus串口网关 EtherCAT转485协议 ECT转Modbus网关 思科 fastapi mcp mcp-proxy mcp-inspector fastapi-mcp agent sse 物联网 mcu iot 信息与通信 数据结构 c语言 学习方法 filezilla 无法连接服务器 连接被服务器拒绝 vsftpd 331/530 进程信号 开源 实时音视频 实时互动 智能路由器 外网访问 内网穿透 端口映射 word图片自动上传 word一键转存 复制word图片 复制word图文 复制word公式 粘贴word图文 粘贴word公式 unix ux 多线程 chatgpt DeepSeek node.js 迁移指南 程序人生 golang 后端 WSL2 上安装 Ubuntu spring apache ffmpeg 音视频 C 环境变量 进程地址空间 rpc 单片机 温湿度数据上传到服务器 Arduino HTTP qt QT 5.12.12 QT开发环境 Ubuntu18.04 指令 mq rabbitmq rocketmq kafka web安全 中间件 iis 多线程服务器 Linux网络编程 ESXi FTP 服务器 数据分析 DeepSeek-R1 API接口 alias unalias 别名 redis NFS yum docker-compose docker compose udp 客户端 博客 list 模拟实现 僵尸进程 设置代理 实用教程 live555 rtsp rtp vnc 工业4.0 VMware安装Ubuntu Ubuntu安装k8s 集成学习 集成测试 hive Hive环境搭建 hive3环境 Hive远程模式 AI 爬虫 数据集 硬件工程 Hyper-V WinRM TrustedHosts ollama 大模型 websocket threejs 3D WebUI DeepSeek V3 AI大模型 pytorch Kali Linux 黑客 渗透测试 信息收集 监控 自动化运维 log4j DigitalOcean GPU服务器购买 GPU服务器哪里有 GPU服务器 flash-attention 报错 minicom 串口调试工具 测试工具 CPU 内存 主板 电源 网卡 mount挂载磁盘 wrong fs type LVM挂载磁盘 Centos7.9 压测 ECS stm32 bash windows 服务器安装 Ubuntu Server Ubuntu 22.04.5 selenium fstab 远程工作 .netcore RAGFLOW Cline 自动化编程 AI编程 gcc centos 7 源码剖析 rtsp实现步骤 流媒体开发 prometheus 监控k8s 监控kubernetes cpu 实时 使用 大数据 ros2 moveit 机器人运动 远程控制 远程看看 远程协助 eureka C语言 ipython flutter wireshark 显示过滤器 ICMP Wireshark安装 linux环境变量 安装教程 GPU环境配置 Ubuntu22 CUDA PyTorch Anaconda安装 react.js 前端面试题 持续部署 YOLOv8 NPU Atlas800 A300I pro asi_bench rime iperf3 带宽测试 bug 统信UOS 麒麟 bonding 链路聚合 低代码 文件系统 路径解析 mybatis 5G 3GPP 卫星通信 stm32项目 编辑器 gpu算力 大模型技术 本地部署大模型 WSL2 llama3 Chatglm 开源大模型 监控k8s集群 集群内prometheus 课程设计 无人机 unity ddos 安防软件 聚类 zotero WebDAV 同步失败 代理模式 openwrt 虚拟局域网 ai小智 语音助手 ai小智配网 ai小智教程 智能硬件 esp32语音助手 diy语音助手 sqlserver selete postgresql ip dell服务器 政务 分布式系统 监控运维 Prometheus Grafana go bcompare Beyond Compare 深度求索 私域 知识库 ansible playbook 剧本 系统架构 微服务 设计模式 软件工程 环境配置 云桌面 微软 AD域控 证书服务器 AIGC linux安装配置 sql KingBase kali 共享文件夹 数据挖掘 网络用户购物行为分析可视化平台 大数据毕业设计 1024程序员节 webstorm 基础环境 uni-app 缓存 强制清理 强制删除 mac废纸篓 中兴光猫 换光猫 网络桥接 自己换光猫 docker搭建pg docker搭建pgsql pg授权 postgresql使用 postgresql搭建 UOS 统信操作系统 oceanbase rc.local 开机自启 systemd JAVA Java spring cloud fpga开发 linux上传下载 鸿蒙系统 docker搭建nacos详解 docker部署nacos docker安装nacos 腾讯云搭建nacos centos7搭建nacos gitlab 代码调试 ipdb ping++ dubbo kylin 智能手机 NAS Termux Samba xml MQTT协议 消息服务器 代码 机器人 视觉检测 VMware创建虚拟机 postman mock mock server 模拟服务器 mock服务器 Postman内置变量 Postman随机数据 ssh漏洞 ssh9.9p2 CVE-2025-23419 YOLOv12 flask vmware 卡死 计算机外设 电脑 软件需求 .net VMware安装mocOS macOS系统安装 Windsurf tcpdump Ubuntu共享文件夹 共享目录 Linux共享文件夹 串口服务器 visual studio code 微信 微信分享 Image wxopensdk 系统开发 binder 车载系统 framework 源码环境 gnu Agent jar gradle 目标跟踪 OpenVINO 推理应用 ESP32 camera Arduino 电子信息 rag ragflow ragflow 源码启动 Linux PID Portainer搭建 Portainer使用 Portainer使用详解 Portainer详解 Portainer portainer KylinV10 麒麟操作系统 Vmware ue4 着色器 虚幻 maven iBMC UltraISO 豆瓣 追剧助手 迅雷 express p2p 开发 银河麒麟 kylin v10 麒麟 v10 cuda cudnn anaconda Reactor C++ vSphere vCenter 软件定义数据中心 sddc OpenManus LDAP 域名服务 DHCP 符号链接 配置 aws googlecloud CLion 远程连接 IDE jmeter 软件测试 腾讯云 HCIE 数通 intellij idea 隐藏文件 隐藏目录 管理器 通配符 AI写作 程序员创富 firewalld gateway Clion Nova ResharperC++引擎 Centos7 远程开发 命名管道 客户端与服务端通信 ollama下载加速 sublime text svn 远程 命令 执行 sshpass 操作 pillow html5 firefox kamailio sip VoIP 大数据平台 权限 WSL win11 无法解析服务器的名称或地址 向日葵 virtualenv https rust腐蚀 mongodb matplotlib springcloud 小程序 微信小程序域名配置 微信小程序服务器域名 微信小程序合法域名 小程序配置业务域名 微信小程序需要域名吗 微信小程序添加域名 fd 文件描述符 飞牛nas fnos HarmonyOS OpenHarmony 真机调试 safari Mac 系统 DeepSeek r1 Open WebUI RTMP 应用层 jupyter 系统安全 硬件架构 计算机 历史版本 下载 big data etl opensearch helm 大语言模型 飞书 vpn 孤岛惊魂4 Dell HPE 联想 浪潮 WebRTC gpt uniapp vue DNS 恒源云 安全架构 安全威胁分析 MQTT 消息队列 adobe 传统数据库升级 银行 LLMs ArkTs ArkUI pygame 小游戏 五子棋 微信小程序 miniapp 调试 debug 断点 网络API请求调试方法 Python 网络编程 聊天服务器 套接字 TCP Socket 远程桌面 webrtc sdkman AI-native Docker Desktop minio nvidia 免费域名 域名解析 IPMITOOL BMC 硬件管理 opcua opcda KEPServer安装 pdf 虚拟化 oneapi open webui ci/cd asp.net大文件上传 asp.net大文件上传源码 ASP.NET断点续传 asp.net上传文件夹 asp.net上传大文件 .net core断点续传 .net mvc断点续传 游戏服务器 TrinityCore 魔兽世界 图形渲染 策略模式 单例模式 c/c++ 串口 bat 服务器繁忙 群晖 飞牛 asp.net大文件上传下载 文件分享 devops VSCode 进程优先级 调度队列 进程切换 移动云 相机 跨域 云服务 可信计算技术 密码学 矩阵 springsecurity6 oauth2 授权服务器 token sas 服务器管理 宝塔面板 配置教程 服务器安装 网站管理 边缘计算 Linux的权限 Doris搭建 docker搭建Doris Doris搭建过程 linux搭建Doris Doris搭建详细步骤 Doris部署 办公自动化 自动化生成 pdf教程 Mac内存不够用怎么办 nfs 源码 毕业设计 服务器部署ai模型 部署 SSL 域名 rsyslog Anolis nginx安装 环境安装 linux插件下载 混合开发 JDK springboot 用户缓冲区 统信 UOS1070e elk arcgis 支付 微信支付 开放平台 fonts-noto-cjk 服务器数据恢复 数据恢复 存储数据恢复 raid5数据恢复 磁盘阵列数据恢复 Ubuntu DeepSeek DeepSeek Ubuntu DeepSeek 本地部署 DeepSeek 知识库 DeepSeek 私有化知识库 本地部署 DeepSeek DeepSeek 私有化部署 shell visualstudio 银河麒麟操作系统 国产化 mysql离线安装 ubuntu22.04 mysql8.0 网站搭建 serv00 驱动开发 嵌入式实习 微信开放平台 微信公众平台 微信公众号配置 npm 远程登录 telnet pyautogui 职场和发展 centos-root /dev/mapper yum clean all df -h / du -sh 三级等保 服务器审计日志备份 考研 zip unzip cocoapods 软链接 硬链接 京东云 okhttp 命令行 基础入门 编程 Trae AI 原生集成开发环境 Trae AI SenseVoice SSH 服务 SSH Server OpenSSH Server 3d wsl 版本 EasyConnect Linux无人智慧超市 LInux多线程服务器 QT项目 LInux项目 单片机项目 chrome 浏览器下载 chrome 下载安装 谷歌浏览器下载 html zabbix su sudo ecmascript nextjs react reactjs LLM CrewAI edge浏览器 yolov8 黑客技术 kvm qemu libvirt 流式接口 URL Kali 渗透 本地部署 api prompt banner QQ bot Docker Kylin-Server 国产操作系统 推荐算法 MySql Xinference RAGFlow Deepseek hadoop 大文件分片上传断点续传及进度条 如何批量上传超大文件并显示进度 axios大文件切片上传详细教 node服务器合并切片 vue3大文件上传报错提示错误 大文件秒传跨域报错cors cd 目录切换 网工 文心一言 搜索引擎 毕昇JDK ssrf 失效的访问控制 MI300x 上传视频至服务器代码 vue3批量上传多个视频并预览 如何实现将本地视频上传到网页 element plu视频上传 ant design vue vue3本地上传视频及预览移除 信号处理 trea idea ubuntu24 vivado24 交互 飞牛NAS 飞牛OS MacBook Pro Cookie cnn 邮件APP 免费软件 apt 国内源 xrdp virtualbox tensorflow string模拟实现 深拷贝 浅拷贝 经典的string类问题 三个swap 图像处理 Ubuntu22.04 开发人员主页 半虚拟化 硬件虚拟化 Hypervisor SSL证书 Ubuntu 24.04.1 轻量级服务器 redhat 企业微信 Linux24.04 deepin 输入法 端口测试 田俊楠 xpath定位元素 k8s集群资源管理 云原生开发 odoo 服务器动作 Server action NPS 雨云服务器 雨云 database 能力提升 面试宝典 技术 IT信息化 环境迁移 崖山数据库 YashanDB pgpool 直播推流 嵌入式系统开发 区块链 lsb_release /etc/issue /proc/version uname -r 查看ubuntu版本 RoboVLM 通用机器人策略 VLA设计哲学 vlm fot robot 视觉语言动作模型 具身智能 通信工程 毕业 毕设 技能大赛 键盘 相差8小时 UTC 时间 链表 WLAN netty 代码托管服务 outlook rancher 媒体 Jellyfin 实习 tcp django make命令 makefile文件 c 大模型面经 大模型学习 n8n dity make W5500 OLED u8g2 TCP服务器 perf linux内核 状态管理的 UDP 服务器 Arduino RTOS gitea risc-v iftop 网络流量监控 Linux awk awk函数 awk结构 awk内置变量 awk参数 awk脚本 awk详解 bootstrap web searxng 安卓 软考 镜像 css WebVM rustdesk 联想开天P90Z装win10 流水线 脚本式流水线 Invalid Host allowedHosts 安卓模拟器 matlab ip协议 conda配置 conda镜像源 像素流送api 像素流送UE4 像素流送卡顿 像素流送并发支持 本地环回 bind 压力测试 firewall 鲲鹏 昇腾 npu 服务器时间 金仓数据库 2025 征文 数据库平替用金仓 Docker Compose ROS 自动驾驶 OD机试真题 华为OD机试真题 服务器能耗统计 宕机切换 服务器宕机 nftables 防火墙 Typore nac 802.1 portal x64 SIGSEGV SSE xmm0 r语言 数据可视化 稳定性 看门狗 MCP server C/S windows日志 TRAE 程序员 Minecraft 智能音箱 智能家居 DOIT 四博智联 docker命令大全 mamba Vmamba RAG 检索增强生成 文档解析 大模型垂直应用 dba iDRAC R720xd freebsd CH340 串口驱动 CH341 uart 485 docker run 数据卷挂载 交互模式 XCC Lenovo 繁忙 解决办法 替代网站 汇总推荐 AI推理 thingsboard 交叉编译 XFS xfs文件系统损坏 I_O error ceph embedding 测试用例 功能测试 磁盘监控 网络攻击模型 医疗APP开发 app开发 服务器配置 lb 协议 强化学习 ROS2 skynet 模拟器 教程 IM即时通讯 剪切板对通 HTML FORMAT IIS .net core Hosting Bundle .NET Framework vs2022 FunASR ASR LORA NLP gpt-3 file server http server web server muduo X11 Xming eNSP 网络规划 VLAN 企业网络 显卡驱动 AnythingLLM AnythingLLM安装 openEuler 交换机 王者荣耀 k8s资源监控 annotations自动化 自动化监控 监控service 监控jvm Wi-Fi 实战案例 序列化反序列化 主从复制 export import save load 迁移镜像 腾讯云大模型知识引擎 rdp 实验 图形化界面 arm 华为认证 网络工程师 拓扑图 软件构建 Google pay Apple pay 服务器主板 AI芯片 can 线程池 硬件 设备 GPU PCI-Express android studio jetty undertow less ruby 游戏引擎 线程 cfssl 云电竞 云电脑 todesk P2P HDLC 单元测试 Erlang OTP gen_server 热代码交换 事务语义 Ark-TS语言 MNN Qwen 健康医疗 互联网医院 双系统 GRUB引导 Linux技巧 灵办AI springboot远程调试 java项目远程debug docker远程debug java项目远程调试 springboot远程 Playwright 自动化测试 深度优先 图论 并集查找 换根法 树上倍增 SSH 虚拟现实 ssh远程登录 RAID RAID技术 磁盘 存储 DeepSeek行业应用 Heroku 网站部署 uv ocr 计算生物学 生物信息 基因组 游戏机 hugo 私有化 虚拟显示器 Netty 即时通信 NIO 换源 Debian cmos SWAT 配置文件 服务管理 网络共享 程序 性能分析 gaussdb ruoyi ros trae saltstack 多进程 重启 排查 系统重启 日志 原因 GCC crosstool-ng AI代码编辑器 Alexnet AI作画 IIS服务器 IIS性能 日志监控 next.js 部署next.js 聊天室 wps sqlite3 micropython esp32 mqtt 网络结构图 yaml Ultralytics 可视化 wsl2 思科模拟器 Cisco nuxt3 excel OpenSSH 算力 多层架构 解耦 HarmonyOS NEXT 原生鸿蒙 ubuntu20.04 ros1 Noetic 20.04 apt 安装 rnn 其他 银河麒麟服务器操作系统 系统激活 KVM 分析解读 社交电子 数据库系统 jina 高效远程协作 TrustViewer体验 跨设备操作便利 智能远程控制 hibernate Docker引擎已经停止 Docker无法使用 WSL进度一直是0 镜像加速地址 金融 seatunnel windwos防火墙 defender防火墙 win防火墙白名单 防火墙白名单效果 防火墙只允许指定应用上网 防火墙允许指定上网其它禁止 小番茄C盘清理 便捷易用C盘清理工具 小番茄C盘清理的优势尽显何处? 教你深度体验小番茄C盘清理 C盘变红?!不知所措? C盘瘦身后电脑会发生什么变化? 漏洞 kind spark DBeaver DIFY composer 同步 备份 建站 产测工具框架 IMX6ULL 管理框架 vscode 1.86 grafana k8s二次开发 集群管理 直流充电桩 充电桩 IPMI 信号 Linux的基础指令 本地部署AI大模型 SEO chfs ubuntu 16.04 上传视频文件到服务器 uniApp本地上传视频并预览 uniapp移动端h5网页 uniapp微信小程序上传视频 uniapp app端视频上传 uniapp uview组件库 宠物 免费学习 宠物领养 宠物平台 弹性计算 云服务器 裸金属服务器 弹性裸金属服务器 小艺 Pura X unity3d 网络穿透 火绒安全 数据库架构 数据管理 数据治理 数据编织 数据虚拟化 Nuxt.js Xterminal idm MacMini 迷你主机 mini Apple lio-sam SLAM CentOS Stream CentOS 致远OA OA服务器 服务器磁盘扩容 树莓派 VNC CORS dns 宝塔 大模型入门 nlp yolov5 powerbi 信息可视化 蓝桥杯 HiCar CarLife+ CarPlay QT RK3588 VR手套 数据手套 动捕手套 动捕数据手套 Node-Red 编程工具 流编程 AutoDL 大模型微调 ubuntu24.04.1 NLP模型 自学笔记 小米 澎湃OS Android curl wget 工作流 workflow 数学建模 sqlite MS Materials openssl 读写锁 业界资讯 模拟退火算法 code-server mosquitto fast av1 电视盒子 机顶盒ROM 魔百盒刷机 echarts 网页设计 keepalived sonoma 自动更新 neo4j 数据仓库 数据库开发 mariadb AISphereButler IPv4 子网掩码 公网IP 私有IP SSH 密钥生成 SSH 公钥 私钥 生成 linux 命令 sed 命令 AP配网 AK配网 小程序AP配网和AK配网教程 WIFI设备配网小程序UDP开 Redis Desktop 虚拟机安装 SysBench 基准测试 ArcTS 登录 ArcUI GridItem 框架搭建 rclone AList webdav fnOS arkUI ShenTong 自动化任务管理 开机自启动 easyui langchain Java Applet URL操作 服务器建立 Socket编程 网络文件读取 大模型教程 remote-ssh chrome devtools chromedriver ukui 麒麟kylinos openeuler RustDesk自建服务器 rustdesk服务器 docker rustdesk yum源切换 更换国内yum源 web3.py VPS pyqt Cursor 蓝耘科技 元生代平台工作流 ComfyUI 代理 vscode1.86 1.86版本 ssh远程连接 open Euler dde 语法 视频编解码 LLM Web APP Streamlit IO模型 鸿蒙开发 移动开发 AI员工 llama.cpp UEFI Legacy MBR GPT U盘安装操作系统 抓包工具 web3 win服务器架设 windows server sysctl.conf vm.nr_hugepages 黑苹果 单一职责原则 服务器扩容没有扩容成功 sequoiaDB MacOS 捆绑 链接 谷歌浏览器 youtube google gmail eclipse 热榜 IMM qt5 客户端开发 ELF加载 perl 卷积神经网络 prometheus数据采集 prometheus数据模型 prometheus特点 李心怡 视频平台 录像 视频转发 性能测试 视频流 状态模式 授时服务 北斗授时 HistoryServer Spark YARN jobhistory Headless Linux g++ g++13 docker部署Python regedit 开机启动 MDK 嵌入式开发工具 论文笔记 VS Code PX4 僵尸世界大战 游戏服务器搭建 影刀 #影刀RPA# burpsuite 安全工具 mac安全工具 burp安装教程 渗透工具 zookeeper GameFramework HybridCLR Unity编辑器扩展 自动化工具 maxkb ARG nosql webgl 企业网络规划 华为eNSP 大大通 第三代半导体 碳化硅 本地化部署 hexo Windows ai工具 java-rocketmq onlyoffice 在线office v10 软件 ldap 小智AI服务端 xiaozhi TTS 运维监控 CosyVoice AD 域管理 GIS 遥感 WebGIS fork wait waitpid exit 内网环境 DenseNet h.264 figma 玩机技巧 软件分享 软件图标 MAVROS 四旋翼无人机 架构与原理 网络爬虫 visual studio 多个客户端访问 IO多路复用 回显服务器 TCP相关API Linux 维护模式 kernel 我的世界服务器搭建 minecraft GoogLeNet 网卡的名称修改 eth0 ens33 浪潮信息 AI服务器 opengl cpp-httplib 电视剧收视率分析与可视化平台 Web服务器 多线程下载工具 PYTHON 增强现实 沉浸式体验 应用场景 技术实现 案例分析 AR Deepseek-R1 私有化部署 推理模型 移动魔百盒 USB转串口 harmonyOS面试题 python2 ubuntu24.04 java-rabbitmq kotlin iphone vue-i18n 国际化多语言 vue2中英文切换详细教程 如何动态加载i18n语言包 把语言json放到服务器调用 前端调用api获取语言配置文件 虚幻引擎 SRS 流媒体 直播 DocFlow Unity Dedicated Server Host Client 无头主机 dash 正则表达式 内核 Sealos 论文阅读 常用命令 文本命令 目录命令 python3.11 怎么卸载MySQL MySQL怎么卸载干净 MySQL卸载重新安装教程 MySQL5.7卸载 Linux卸载MySQL8.0 如何卸载MySQL教程 MySQL卸载与安装 安装MySQL vllm es jvm Helm k8s集群 高效日志打印 串口通信日志 服务器日志 系统状态监控日志 异常记录日志 midjourney burp suite 抓包 axure 富文本编辑器 deepseek r1 deep learning 远程过程调用 Windows环境 Ubuntu 24 常用命令 Ubuntu 24 Ubuntu vi 异常处理 极限编程 sentinel 烟花代码 烟花 元旦 Carla 智能驾驶 代理服务器 佛山戴尔服务器维修 佛山三水服务器维修 Reactor反应堆 TrueLicense Mermaid 可视化图表 swoole FTP服务器 网络建设与运维 网络搭建 神州数码 神州数码云平台 云平台 copilot ebpf uprobe 无桌面 反向代理 超融合 干货分享 黑客工具 密码爆破 PPI String Cytoscape CytoHubba 我的世界 我的世界联机 数码 加解密 Yakit yaklang 执法记录仪 智能安全帽 smarteye 知识图谱 tailscale derp derper 中转 triton 模型分析 线性代数 电商平台 samba navicat deekseek ecm bpm C++软件实战问题排查经验分享 0xfeeefeee 0xcdcdcdcd 动态库加载失败 程序启动失败 程序运行权限 标准用户权限与管理员权限 远程服务 ranger MySQL8.0 抗锯齿 问题解决 语音识别 Attention cursor 音乐服务器 Navidrome 音流 nvm whistle 大模型部署 北亚数据恢复 oracle数据恢复 MVS 海康威视相机 浏览器开发 AI浏览器 查看显卡进程 fuser ArtTS H3C mcp服务器 client close ubuntu 18.04 CDN 性能调优 安全代理 本地知识库部署 DeepSeek R1 模型 前后端分离 dock 加速 Python基础 Python教程 Python技巧 proxy模式 服务器无法访问 ip地址无法访问 无法访问宝塔面板 宝塔面板打不开 磁盘清理 Linux环境 阿里云ECS 7z 个人博客 Claude uni-file-picker 拍摄从相册选择 uni.uploadFile H5上传图片 微信小程序上传图片 浏览器自动化 网页服务器 web服务器 Nginx 容器技术 宝塔面板无法访问 开机黑屏 Spring Security 匿名管道 人工智能生成内容 rtsp服务器 rtsp server android rtsp服务 安卓rtsp服务器 移动端rtsp服务 大牛直播SDK 嵌入式Linux IPC EMUI 回退 降级 升级 word 多路转接 阻塞队列 生产者消费者模型 服务器崩坏原因 grub 版本升级 扩容 openstack Xen 多端开发 智慧分发 应用生态 鸿蒙OS ISO镜像作为本地源 游戏开发 沙盒 磁盘镜像 服务器镜像 服务器实时复制 实时文件备份 服务器安全 网络安全策略 防御服务器攻击 安全威胁和解决方案 程序员博客保护 数据保护 安全最佳实践 备份SQL Server数据库 数据库备份 傲梅企业备份网络版 hosts USB网络共享 vu大文件秒传跨域报错cors 银河麒麟桌面操作系统 Kylin OS xss 在线预览 xlsx xls文件 在浏览器直接打开解析xls表格 前端实现vue3打开excel 文件地址url或接口文档流二进 db 项目部署 元服务 应用上架 pppoe radius tidb GLIBC dns是什么 如何设置电脑dns dns应该如何设置 vasp安装 分布式训练 信创 信创终端 中科方德 milvus 搭建个人相关服务器 AI agent 机柜 1U 2U top Linux top top命令详解 top命令重点 top常用参数 wordpress 无法访问wordpess后台 打开网站页面错乱 linux宝塔面板 wordpress更换服务器 Radius deployment daemonset statefulset cronjob qt项目 qt项目实战 qt教程 国标28181 视频监控 监控接入 语音广播 流程 SIP SDP 根服务器 clickhouse React Next.js 开源框架 EMQX 通信协议 云耀服务器 frp 计算虚拟化 弹性裸金属 kerberos 物联网开发 glibc 显示管理器 lightdm gdm TCP协议 cron crontab日志 K8S k8s管理系统 IDEA junit 国产数据库 瀚高数据库 数据迁移 下载安装 seleium LInux IMX317 MIPI H265 VCU 对比 工具 meld DiffMerge lua react native 端口聚合 windows11 达梦 DM8 aarch64 编译安装 HPC 内网服务器 内网代理 内网通信 欧标 OCPP Logstash 日志采集 需求分析 规格说明书 音乐库 备选 网站 调用 示例 AD域 IO System V共享内存 进程通信 notepad HTTP 服务器控制 ESP32 DeepSeek 软负载 查询数据库服务IP地址 SQL Server tar docker desktop image 开源软件 话题通信 服务通信 生活 大模型应用 端口 查看 ss wpf 智能电视 EtherNet/IP串口网关 EIP转RS485 EIP转Modbus EtherNet/IP网关协议 EIP转RS485网关 EIP串口服务器 华为机试 xshell termius iterm2 Qwen2.5-VL 自定义客户端 SAS docker部署翻译组件 docker部署deepl docker搭建deepl java对接deepl 翻译组件使用 离线部署dify 硅基流动 ChatBox 技术共享 智慧农业 开源鸿蒙 团队开发 银河麒麟高级服务器 外接硬盘 Kylin flink 服务网格 istio UDP的API使用 做raid 装系统 armbian u-boot rpa WebServer Linux权限 权限命令 特殊权限 MAC SecureCRT 合成模型 扩散模型 图像生成 软件卸载 系统清理 项目部署到linux服务器 项目部署过程 ftp CVE-2024-7347 Linux find grep 钉钉 VM搭建win2012 win2012应急响应靶机搭建 攻击者获取服务器权限 上传wakaung病毒 应急响应并溯源 挖矿病毒处置 应急响应综合性靶场 autodl 网易邮箱大师 AzureDataStudio 解决方案 服务器正确解析请求体 高效I/O cmake 服务器部署 本地拉取打包 华为证书 HarmonyOS认证 华为证书考试 yum换源 CNNs 图像分类 MobaXterm Web应用服务器 NAT转发 NAT Server ABAP css3 存储维护 NetApp存储 EMC存储 粘包问题 多产物 UDP 网络文件系统 scapy 流量运营 Zoertier 内网组网 lvm 磁盘挂载 磁盘分区 西门子PLC 通讯 桌面环境 scikit-learn compose Unity插件 iventoy VmWare OpenEuler macOS Mac软件 网络管理 2024 2024年上半年 下午真题 答案 大屏端 shell脚本免交互 expect linux免交互 带外管理 输入系统 mm-wiki搭建 linux搭建mm-wiki mm-wiki搭建与使用 mm-wiki使用 mm-wiki详解 大模型推理 Qualcomm WoS QNN AppBuilder 搜狗输入法 中文输入法 SVN Server tortoise svn HAProxy 风扇控制软件 laravel 联机 僵尸毁灭工程 游戏联机 开服 HP Anyware 数字证书 签署证书 图片增强 增强数据 AI Agent 字节智能运维 接口优化 跨平台 镜像下载 oracle fusion oracle中间件 mysql安装报错 windows拒绝安装 wsgiref Web 服务器网关接口 CPU 使用率 系统监控工具 linux 命令 ardunio BLE DevOps 软件交付 数据驱动 Isaac Sim 虚拟仿真 错误代码2603 无网络连接 2603 ShapeFile GeoJSON lighttpd安装 Ubuntu配置 Windows安装 服务器优化 deepseak 豆包 KIMI 腾讯元宝 小智 弹性服务器 显示器 sudo原理 su切换 csrutil mac恢复模式进入方法 恢复模式 蓝牙 联网 easyconnect WINCC VMware Tools vmware tools安装 vmwaretools安装步骤 vmwaretools安装失败 vmware tool安装步骤 vm tools安装步骤 vm tools安装后不能拖 vmware tools安装步骤 零售 免密 公钥 私钥 iNode Macos Chatbox Pyppeteer xfce 动态规划 ArkTS 移动端开发 代码规范 Apache Beam 批流统一 案例展示 数据分区 容错机制 netlink libnl3 充电桩平台 充电桩开源平台 底层实现 zerotier stable diffusion vite NFC 近场通讯 智能门锁 用户管理 Tabs组件 TabContent TabBar TabsController 导航页签栏 滚动导航栏 es6 qt6.3 g726 deepseek-r1 大模型本地部署 笔灵AI AI工具 ECT转485串口服务器 ECT转Modbus485协议 ECT转Modbus串口服务器 内网渗透 靶机渗透 VPN wireguard 蓝桥杯C++组 k8s部署 MySQL8.0 高可用集群(1主2从) js 负载测试 Docker快速入门 qps 高并发 环境搭建 Maven nacos nohup后台启动 文件传输 iTerm2 终端 进程间通信 服务器ssl异常解决 配置原理 VGG网络 卷积层 池化层 diskgenius yashandb archlinux kde plasma Linux Vim EVE-NG gunicorn 工具分享 ubuntu安装 linux入门小白 锁屏不生效 ftp服务 文件上传 glm4 跨域请求 录音麦克风权限判断检测 录音功能 录音文件mp3播放 小程序实现录音及播放功能 RecorderManager 解决录音报错播放没声音问题 信息安全 桌面快捷方式 WireGuard 异地组网 pyicu GeneCards OMIM TTD