双链路提升网络传输的可靠性扩展可用带宽

为了提升网络传输的可靠性或增加网络可用带宽, 通常使用双链路冗余备份或者双链路聚合的方式。 本文介绍几种双链路网络通信的案例。

5G+WiFi冗余传输

  • 双Socket绑定不同网络接口:通过Android的ConnectivityManager绑定5G蜂窝网络和WiFi的Socket连接,实现双链路并行传输。
  • 动态切换策略:根据信号强度(RSSI)和带宽实时切换主链路(如5G用于大流量传输,WiFi用于低延迟控制)
  • 使用场景 : 常用于手机: 可以提升带宽并增加用户上网体验 。

C/C++双Socket冗余传输库

  • 主备Socket热切换:客户端同时维护TCP和UDP Socket,TCP用于可靠传输,UDP用于快速重传。若TCP丢包率超过阈值,则通过UDP补发数据。
  • 心跳检测与自动重连:周期性发送心跳包,若主链路超时,自动切换到备用链路。

高可靠工业通信网关(C++)

  • 双链路心跳同步:通过双Socket绑定,周期性同步状态信息。
  • 数据分片与校验:将数据分片后通过双链路发送,接收端根据校验码重组数据。

开源项目推荐

OpenMPTCP(多路径TCP协议栈)

OpenMPTCProuter - Internet connection bonding - Home

  • 功能:支持多链路(如5G+WiFi)聚合传输,提升吞吐量和可靠性。
  • 适用场景:移动设备、车联网。

topo

                ----- LTE -----/               \
PC ---- apu3c4 ----- cable ----- apu3c4 ---- PC

QUIC协议实现(如Chromium QUIC)

  • 功能:基于UDP的高可靠传输协议,支持快速握手和多路复用。
  • 源码参考:结合网页2的UDP代码实现QUIC逻辑。

Linux kernel 原生方案bond

Linux bond 是将多个网络接口绑定成一个逻辑接口的技术。其基本功能包括提升网络带宽,通过聚合多个网卡增加传输速率;实现链路冗余,当某一链路故障时自动切换到其他链路,保障网络连接稳定;还能实现负载均衡,将数据流量合理分配到不同物理链路上。

换到其他链路,保障网络连接稳定;还能实现负载均衡,将数据流量合理分配到不同物理链路上。

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

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

相关文章

Spring(三)容器-注入

一 自动注入Autowire 代码实现: package org.example.spring01.service;import org.springframework.stereotype.Service;Service public class UserService {}package org.example.spring01.controller;import lombok.Data; import lombok.ToString; import org.…

MySQL零基础教程16—表连接进阶

复习表别名 之前已经学习过,查询的时候可以使用as来对检索的列进行重命名,这样可以让sql更加简介,增强易读性(as可以省略) 此外,使用表别名还可以支持在一条select语句中,一个表是被多次使用 …

【MySQL】MySQL 复制

MySQL复制介绍 MySQL复制允许将主实例(master)上的数据同步到一个或多个从实例(slave)上,默认情况下复制是异步进行的,从库也不需要一直连接到主库来同步数据。 MySQL复制的数据粒度可以是主实例上所有的数据库,也可以是指定的一个或多个数据…

Linux的缓存I/O和无缓存IO

一、I/O缓存的背景 I/O缓存是指在内存里开辟一块区域,存放用来接收用户输入和用于计算机输出的数据,以减小系统开销和提高外设效率。linux对IO文件的操作分为不带缓存的IO操作和带缓存的IO操作(标准IO操作)。为什么存在C标准I/O库…

YOLOv5 + SE注意力机制:提升目标检测性能的实践

一、引言 目标检测是计算机视觉领域的一个重要任务,广泛应用于自动驾驶、安防监控、工业检测等领域。YOLOv5作为YOLO系列的最新版本,以其高效性和准确性在实际应用中表现出色。然而,随着应用场景的复杂化,传统的卷积神经网络在处…

Webpack分包与合包深度解析

Webpack分包与合包深度解析 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家!点我试试!! 引言:现代前端工程的模块化困境 在单页面应用(SPA&#…

永恒之塔鼠标卡顿移动鼠标卡屏的问题

原因是现在鼠标普遍轮询率偏高导致系统性能开销过大 解决办法90块钱到淘宝雷蛇官网店买个最便宜的鼠标 然后安装Razer控制台,在性能栏把轮询率设置到最低(125)

Selenium遇到Exception自动截图

# 随手小记 场景:测试百度: 点击新闻,跳转到新的窗口,找到输入框,输入“hello,world" 等到输入框的内容是hello,world, 这里有个错误,少了一个] 后来就实现了错误截图的功能,可以参考 …

飞机大战lua迷你世界脚本

-- 迷你世界飞机大战 v1.2 -- 星空露珠工作室制作 -- 最后更新:2024年1月 ----------------------------- -- 迷你世界API适配配置 ----------------------------- local UI { BASE_ID 7477478487091949474-22856, -- UI界面ID ELEMENTS { BG 1, -- 背景 BTN_LE…

我的ChatGPT怎么登不上?

近期,不少用户反馈在使用ChatGPT时遇到登录困难、连接超时等问题。本文将从技术角度分析常见原因,并提供合规、安全的解决方案,同时结合开发者实际需求推荐实用工具,助您高效应对登录障碍。 ChatGPT登录失败的常见原因 网络环境限…

【MySQL】用MySQL二进制包构建docker镜像

一、实验背景 【MySQL&docker】基于CentOS7.5 编译制作MySQL5.7.28镜像 https://www.jianshu.com/p/71fd79b69a6b 用MySQL源码编译的docker镜像,体积过大,直奔3G了,你也不清楚,这点编译参数打出的体积怎么就这么大&#xff01…

快速熟悉JavaScript

目录 1.js的基本认知 2.js的基本语法 2.1 变量的声明 三个关键字的区别 2.2数据类型 2.2.1 基本数据类型 2.2.2 复杂数据类型 2.3对象的属性和方法 2.3.1属性 2.3.2访问方式 2.4.3动态操作 2.4.4方法 2.4字符串的常用属性和方法 2.5运算符 2.6逻辑控制语句 2.7函…

在 Windows 上最快速安装 Qt 5

引言 Qt 是一个强大的跨平台 C 开发框架,广泛应用于 GUI 开发、嵌入式系统和工业软件等领域。然而,许多开发者习惯于在 Linux(如 Ubuntu)环境下使用 Qt,而在 Windows 上搭建 Qt 开发环境时可能会遇到许多问题&#xf…

二、QT和驱动模块实现智能家居-----5、通过QT控制LED

在QT界面,我们要实现点击“LED”按钮就可以控制板子上的LED。LED接线图如下: 在Linux 系统里,我们可以使用2种方法去操作上面的LED: ① 使用GPIO SYSFS系统:这需要一定的硬件知识,需要设置引脚的方向、数值…

threejs:用着色器给模型添加光带扫描效果

第一步:给模型添加光带 首先创建一个立方体,不进行任何缩放平移操作,也不要set position。 基础代码如下: 在顶点着色器代码里varying vec3 vPosition;vPosition position;获得threejs自动计算的顶点坐标插值(也就…

高频 SQL 50 题(基础版)_1141. 查询近30天活跃用户数

1141. 查询近30天活跃用户数 select activity_date day,count(distinct user_id) active_users from Activity where (activity_date<2019-07-27 and activity_date>DATE_sub(2019-07-27,INTERVAL 30 DAY)) group by(activity_date)

【Zinx】Day1:初识 Zinx 框架

目录 学习目标初识 Zinx 框架Zinx v0.2 代码实现准备工作创建 Zinx 框架创建 ziface 与 znet 模块 基础的 Server 实现在 ziface 下创建服务模块抽象层 iserver.go在 znet 下实现服务模块 server.go 封装 Connection在 ziface 创建 iconnection.go在 znet 创建 connection.go 回…

音频3A测试--AEC(回声消除)测试

一、测试前期准备 一台录制电脑:用于作为近段音源和收集远端处理后的数据; 一台测试设备B:用于测试AEC的设备; 一个高保真音响:用于播放设备B的讲话; 一台播放电脑:用于模拟设备A讲话,和模拟设备B讲话; 一台音频处理器(调音台):用于录制和播放数据; 测试使用转接线若…

项目准备(flask+pyhon+MachineLearning)- 2

目录 1. 注册页面的渲染 2.邮箱的注册验证 3.登录页面的渲染 1. 注册页面的渲染 使用render_template来渲染&#xff0c;注意这里的前端网页使用jinja2模板 详情大家可以参考jinja2介绍 注意每个网页上方都有导航条&#xff0c;大家可以使用jinja2的继承功能&#xff0c;写一…

unity调用本地部署deepseek全流程

unity调用本地部署deepseek全流程 deepseek本地部署 安装Ollama 搜索并打开Ollama官网[Ollama](https://ollama.com/download) 点击Download下载对应版本 下载后点击直接安装 安装deepseek大语言模型 官网选择Models 选择deepseek-r1&#xff0c;选择对应的模型&#xff0…