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

五种方案实现双链路可靠数据传输

本文介绍五种双链路数据传输方案,目标是利用设备的多个传输通道,(如双有线网口,网口+wifi, 网口+5G等场景 , 网口+ 自组网, 自组网 + 5G等),将数据复制后分流、分路同时传输,以期提高数据传输可靠性,满足高可靠性传输的应用场景需求。部分方案给出了实际验证结果 。

使用iptables TEE实现双链路可靠数传

安装 配置

通过内核级数据包复制,将流量镜像到另一网口.验证方法如下:

  1. 安装TEE内核模块(需确认OpenWrt内核支持):

    opkg install kmod-ipt-tee
    
  2. 添加iptables规则复制数据包到目标网口

    root@test:~# iptables -t mangle -D PREROUTING -p udp --dport 8899 -j TEE --gateway 192.168.2.1
    root@test:~# iptables -t mangle -D PREROUTING -p udp --dport 8899 -j TEE --gateway 192.168.100.1
    

    其中192.168.2.1为网关地址, 即将所有udp 8899的包抄送 192.168.2.1和192.168.100.1。

测试环境

测试设备一台路由器,有三个网口,分别是lan, wan1, wan2。

lan地址: 192.17.5.235

wan1 网关地址: 192.168.2.1

wan2 网关地址: 192.168.100.1

验证方法

在路由器lan口下挂一台pc, 向lan口发包:

iperf -u -p 8899 -c  192.17.5.235 -i 1 -t 1000 -b 1M

根据 上一节中,增加两台防火墙规则 , 执行结果如下:

root@test:~# iptables -t mangle -D PREROUTING -p udp --dport 8899 -j TEE --gateway 192.168.2.1
root@test:~# iptables -t mangle -D PREROUTING -p udp --dport 8899 -j TEE --gateway 192.168.100.1
root@test:~# iptables -t mangle -L
# Warning: iptables-legacy tables present, use iptables-legacy to see them
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
TEE        udp  --  anywhere             anywhere             udp dpt:8899 TEE gw:192.168.2.1
TEE        udp  --  anywhere             anywhere             udp dpt:8899 TEE gw:192.168.100.1

在分别在路由器的wan1, wan2上抓包:

tcpdump -i wan1 udp port 8899 -vvv
tcpdump -i wan2 udp port 8899 -vvv

预期结果 是在 wan1,wan2上均能看到被复制 的udp包。

d:\AppGallery\iperf-2.0.9-win64>iperf -u -p 8899 -c 172.17.5.235 -i 1 -t 1000 -b 1k

iptables -t mangle -D PREROUTING -p udp --dport 8899 -j TEE --gateway 192.168.2.1
iptables -t mangle -D PREROUTING -p udp --dport 8899 -j TEE --gateway 192.168.100.1

Socat多路转发

介绍

socat 是一个功能强大的网络工具,常被用于创建两个数据流之间的双向通信通道,也被称为 “套接字导管(Socket CAT)”,类似于 cat 命令处理文件的方式来处理套接字。以下是关于它的详细介绍:

主要特点

  • 多协议支持socat 支持众多网络协议,包括 TCP、UDP、UNIX 域套接字、SSL/TLS、IPv4、IPv6 等。这使得它能够在不同类型的网络端点之间建立连接,比如在 TCP 客户端和服务器、UDP 广播和多播环境、UNIX 域套接字通信等场景中使用。<

相关文章:

  • IntelliJ IDEA 调试技巧指南
  • LLM系列笔记之微调数据集格式
  • 网络编程---创建客户端和服务端以及协议包
  • 开源免费一句话生成儿童故事视频核心思想解析
  • Java基础语法练习42(基本绘图-基本的事件处理机制-小坦克的绘制-键盘控制坦克移动)
  • leetcode-47.全排列II
  • 深度学习之防止过拟合
  • 【华三】路由器交换机忘记登入密码或super密码的重启操作
  • 打乱一维数组中的元素,并按照4个一组的方式添加到二维数组中
  • Python基础入门掌握(十五)
  • 删除 Git 历史提交记录中的大文件
  • 大数据学习(71)-三范式构成
  • pycharm-python國際象棋遊戲代碼
  • 【程序人生】成功人生架构图(分层模型)
  • 前端面试:ajax 和 xhr 是什么关系?
  • 内网攻防——红日靶场(一)
  • 织梦dedecms管理员密码重置工具下载
  • 深度学习框架PyTorch——从入门到精通(4)数据转换
  • 深入探讨TK矩阵系统:创新的TikTok运营工具
  • Redis 三主三从集群部署的完整方案
  • 200枚篆刻聚焦北京中轴线,“印记”申遗往事
  • 奈雪的茶叫停“能喝奶茶就不要喝水”宣传,当地市监称不要误导消费者
  • 外交部:中美双方并未就关税问题进行磋商或谈判
  • 《求是》杂志发表习近平总书记重要文章《激励新时代青年在中国式现代化建设中挺膺担当》
  • 体坛联播|欧冠半决赛阿森纳主场不敌巴黎,北京男篮险胜山西
  • 中国人寿一季度净利润288亿增39.5%,营收降8.9%