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

小阿轩yx-LVS负载均衡群集

小阿轩yx-LVS负载均衡群集

  • 构建群集服务器—通过整合多台服务器
  • 使用 LVS 达到服务器的高可用和负载均衡
  • 并以同一个 IP 地址对外提供相同的服务

LVS 群集应用基础

  • 群集称呼来自英文单词“Cluster”
  • 在服务器领域则表示大量服务器的集合体,区分单个服务器

Cluster

  • 表示一群、一串的意思

LVS 群集技术概述

  • 根据企业环境不同
  • 群集提供的功能也不同
  • 采用的技术细节也不同
群集的三种类型

每种群集都至少包含两台服务器,对外表现为一个整体,只提供一个访问入口

负载均衡群集(Load Balance Cluster)

  • 提高应用系统的响应能力
  • 尽可能处理更多的访问请求
  • 减少延迟为目标
  • 获得高并发、高负载的整体性能

高可用群集(High Availability Cluster)

  • 提高应用系统的可靠性
  • 尽可能地减少中断时间为目标
  • 确保服务的连续性
  • 达到高可用(HA)的容错效果

高性能运算群集(High Performance Computer Cluster)

  • 提高应用系统的 CPU运算速度、扩展硬件资源和分析能力为目标
  • 获得相当于大型、超级计算机的高性能运算(HPC)能力

不同类型的群集在必要时可以合并,如高可用的负载均衡群集

负载均衡的分层结构

典型的负载均衡群集中包括三个层次的组件

  • 前端至少有一个负载调度器(Load Balancer,或称为 Director)负责响应并分发来自客户机的访问请求
  • 后端由大量真实服务器(Real Server)构成服务器池(Server Poo1),提供实际的应用服务,整个群集的伸缩性通过增加、删除服务器节点来完成

第一层,负载调度器

  • 这是访问整个群集系统的唯一入口
  • 对外使用所有服务器共有的 VIP(Virtual IP,虚拟 IP)地址,也称为群集 IP 地址

第二层,服务器池

  • 群集所提供的应用服务(如HTTP、FTP)由服务器池承担,每个节点具有独立的RIP(Real IP,真实 IP)地址,只处理调度器分发过来的客户机请求
  • 当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池

第三层,共享存储

  • 为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。
  • Linux/UNIX 环境中,共享存储可以使用 NAS 设备,或者提供 NFS(Network File System,网络文件系统)共享服务的专用服务器
负载均衡的工作模式
  • 群集的负载调度技术,可以基于 IP、端口、内容等进行分发
  • 其中基于 IP 的负载调度是效率最高的

基于IP的负载均衡模式中,常见的三种工作模式有

  • 地址转换
  • IP 隧道
  • 直接路由

地址转换(Network Address Translation)

  • 简称 NAT 模式
  • 类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。
  • 服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式。

IP 隧道(IP Tunnel)

  • 简称 TUN 模式
  • 采用开放式的网络结构,
  • 负载调度器仅作为客户机的访问入口,各节点通过各自的 Internet 连接直接回应客户机,而不再经过负载调度器。
  • 服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用 IP隧道与负载调度器相互通信。

直接路由(Direct Routing)

  • 简称 DR 模式
  • 采用半开放式的网络结构,与 TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。
  • 负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。

NAT方式只需要一个公网 IP地址,从而成为最易用的一种负载均衡模式,许多硬件负载均衡设备就采用这种方式

优势

  • 安全性也比较好

相比较而言DR 模式和 TUN 模式

优势

  • 负载能力更加强大
  • 适用范围更广

缺点

  • 节点的安全性稍差一些

LVS 虚拟服务器

Linux Virtual Server

  • 是针对Linux 内核开发的一个负载均衡项目
  • 由我国的章文嵩博士在 1998年5月创建
  • 官方站点位于 http://www.linuxvirtualserver.org/
  • LVS 实际上相当于基于 IP地址的虚拟化应用
  • 为基于 IP地址和内容请求分发的负载均衡提出了一种高效的解决方法
  • LVS 现在已成为 Linux 内核的一部分
  • 默认编译为 ip_vs 模块
  • 必要时能够自动调用
LVS 的负载调度算法
  • 针对不同网络服务和配置,LVS 调度器提供多种不同的负载调度算法

最常用的四种算法

  • 轮询
  • 加权轮询
  • 最少连接
  • 加权最少连接

轮询(RoundRobin)

  • 将收到的访问请求按照顺序轮流分配给群集中的各节点,均等地对待每台服务器,而不管服务器实际的连接数和系统负载。

加权轮询(Weighted Round Robin)

  • 根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务并且分配的请求越多,这样可以保证性能高的节点承担更多请求。

最少连接(Least Connections)

  • 根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。如果所有的服务器节点性能相近,采用这种方式可以更好地均衡负载。

加权最少连接(Weighted Least Connections)

  • 在服务器节点的性能差异较大的情况下,调度器可以根据节点服务器负载自动调整权重,权重较高的节点将承担更大比例的活动连接负载。
使用 ipvsadm 管理工具

ipvsadm 是在负载调度器上使用的 LVS 群集管理工具,通过调用 ip_vs 模块来添加、删除服务器节点,以及查看群集的运行状态。

构建 LVS 负载均衡群集
地址转换模式(LVS-NAT)

实验环境

各web节点需要设置网关,NFS不需要

CentOS 系统,手动加载 ip_vs 模块并查看信息

//加载 ip_vs模块
[root@localhost ~]# modprobe ip_vs
//查看 ip_vs 版本信息
[root@localhost ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1(size=4096)
Prot LocalAddress:Port Scheduler Flags->RemoteAddress:Port Forward Weight ActiveConn InActConn

配置负载调度器

[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld

安装 ipvsadm

[root@localhost ~]# yum -y install ipvsadm

查看 ipvsadm 版本

[root@localhost ~]# ipvsadm -v
ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)

添加配置文件

[root@localhost ~]# vim /etc/sysctl.conf 
## 添加下面代码
net.ipv4.ip_forward = 1

语句生效

[root@localhost ~]# sysctl -p

配置新策略

[root@localhost ~]# ipvsadm -C

创建虚拟服务器

[root@localhost ~]# ipvsadm -A -t 172.16.16.172:80 -s rr

添加服务器节点

[root@localhost ~]# ipvsadm -a -t 172.16.16.172:80 -r 192.168.10.102:80 -m -w 1
[root@localhost ~]# ipvsadm -a -t 172.16.16.172:80 -r 192.168.10.103:80 -m -w 1

查看当前策略信息

[root@localhost ~]# ipvsadm-save
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 192.168.10.102:http -m -w 1
-a -t localhost.localdomain:http -r 192.168.10.103:http -m -w 1

-s:指定调度算法

  • rr:轮询

  • wrr:加权轮询

  • lc:最小链接数

  • wlc:加权最小连接数

  • -A    添加一个新的集群服务;

  • -E    修改一个己有的集群服务;

  • -D    删除指定的集群服务;

  • -a    向指定的集群服务中添加RS及属性;

  • -e    修改RS属性;

  • -t    指定为tcp协议;

  • -u    指定为udp协议;

  • -s    调度方法,默认为wlc;

  • -w    指定权重,默认为1;

  • -g    Gateway, DR模型;

  • -i    ipip, TUN模型;

  • -m    masquerade, NAT模型;

  • -S    保存ipvsadm设定的规则策略,默认保存在/etc/sysconfig/ipvsadm中;

  • -R    载入己保存的规则策略,默认加载/etc/sysconfig/ipvsadm;

  • -C    清除所有集群服务;

  • -Z    清除所有记数器;

  • -L    显示当前己有集群服务,能通过相应的options查看不同状态信息;

  • -r          指定真实服务器的地址

启动 ipvsadm

[root@localhost ~]# systemctl enable ipvsadm

配置 web 节点服务器

在两个 web 节点上安装 httpd

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# systemctl stop firewalld 
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install nfs-utils

 创建测试页

[root@localhost ~]# vim /var/www/html/index.html
LVS test1

启动 httpd 服务

[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd

客户端测试 LVS 群集

[root@localhost ~]# curl 172.16.16.172

在 LVS 上产看调度信息

[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.16.172:80 rr-> 192.168.10.102:80              Masq    1      0          0         -> 192.168.10.103:80              Masq    1      0          0 
  • ActiveConn是活动连接数,也就是tcp连接状态的ESTABLISHED

  • InActConn是指除了ESTABLISHED以外的,所有的其它状态的tcp连接

linux 做客户端时可以用以下代码进行测试

[root@localhost ~]# for i in $(seq 10);do curl 172.16.16.172;done

 NFS 共享存储服务

NFS

  • 是一种基于 TCP/IP 传输的网络文件系统协议
  • 最初由 Sun 公司开发
  • 通过使用 NFS协议,客户机可以访问远程服务器中的共享资源
  • 对于大多数负载均衡群集来说,使用 NFS协议来共享数据存储是比较常见的做法
  • NFS也是NAS存储设备必然支持的一种协议
使用 NFS 发布共享资源
  • NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制
  • 以完成远程到本地的映射过程

CentOS7系统中,需要安装软件包提供 NFS共享服务

  • nfs-utils
  • rpcbind

前者用于 NFS 共享发布和访问

后者用于RPC支持

安装 nfs-utils、rpcbind 软件包

[root@localhost ~]# systemctl stop firewalld 
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y install nfs-utils rpcbind
[root@localhost ~]# systemctl enable nfs
[root@localhost ~]# systemctl enable rpcbind

设置共享目录

[root@localhost ~]# mkdir -p /opt/wwwroot
[root@localhost ~]# vi /etc/exports
/opt/wwwroot   192.168.10.0/24(rw,sync,no_root_squash)

可以同时发布多个目录,并且可以为不同的客户端设置不同的访问权限

  • rw 可读写的权限 
  • ro 只读的权限 
  • no_root_squash 登入NFS主机,使用该共享目录时相当于该目录的拥有者,如果是root的话,那么对于这个共享的目录来说,他就具有root的权限,这个参数极不安全,不建议使用
  • root_squash 登入NFS主机,使用该共享目录时相当于该目录的拥有者。但是如果是以root身份使用这个共享目录的时候,那么这个使用者(root)的权限将被压缩成为匿名使用者,即通常他的UID与GID都会变成nobody那个身份
  • all_squash 不论登入NFS的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是nobody
  • sync 资料同步写入到内存与硬盘当中 
  • async 资料会先暂存于内存当中,而非直接写入硬盘 
  • insecure 允许从这台机器过来的非授权访问

启动 NFS 服务程序

[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# netstat -anpt | grep rpc
tcp        0      0 0.0.0.0:20048     0.0.0.0:*               LISTEN      44153/rpc.mountd    
tcp        0      0 0.0.0.0:50661     0.0.0.0:*               LISTEN      7511/rpc.statd      
tcp6       0      0 :::20048          :::*                    LISTEN      44153/rpc.mountd    
tcp6       0      0 :::54742          :::*                    LISTEN      7511/rpc.statd

查看本机发布的 NFS 共享目录

[root@localhost ~]# showmount -e
Export list for localhost.localdomain:
/opt/wwwroot 192.168.7.0/24
/var/ftp/pub 192.168.10.173,192.168.7.172

在客户机中访问 NFS 共享资源

  • NFS 协议的目标是提供一种网络文件系统
  • 对 NFS 共享的访问使用 mount 命令来进行挂载,对应的文件系统类型为nfs
  • 既可以手动挂载,也可以加入/etc/fstab 配置文件来实现开机自动挂载
  • 考虑到群集系统中的网络稳定性,NFS服务器与客户机之间最好使用专有网络进行连接

安装 rpcbind 软件包,并启动 rpcbind 服务

[root@localhost ~]# yum -y install rpcbind nfs-utils
[root@localhost ~]# systemctl enable rpcbind
[root@localhost ~]# systemctl start rpcbind

手动在 web 节点挂载 nfs

[root@localhost ~]# mount -t nfs 192.168.10.105:/opt/wwwroot /var/www/html

在 nfs 上创建测试网页

[root@localhost ~]# vim /var/www/html/index.html
LVS test

linux做客户端时可以用一下代码进行测试

[root@localhost ~]# for i in $(seq 10);do curl 172.16.16.172;done

小阿轩yx-LVS负载均衡群集

相关文章:

小阿轩yx-LVS负载均衡群集

小阿轩yx-LVS负载均衡群集 构建群集服务器—通过整合多台服务器使用 LVS 达到服务器的高可用和负载均衡并以同一个 IP 地址对外提供相同的服务 LVS 群集应用基础 群集称呼来自英文单词“Cluster”在服务器领域则表示大量服务器的集合体,区分单个服务器 Cluster …...

CPP知识点记录总结

1、类的const成员函数 const成员函数的const 实际修饰的是该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。 class A {void fun() const {// 常成员函数,在函数名后用const修饰} } 一文带你入门C类和对象【十万字详解&#…...

Spring源码(一) 如何阅读 Spring 源码

学习 Spring 的源码,也可以通过 SpringBoot 搭环境。 不管是什么源码,最好写个 demo,跑起来,然后从常用的类和方法入手,跟踪调试。 配置对象 新建一个 SpringBoot 的项目, 详情见: https://b…...

【代码随想录训练营】【Day 63】【单调栈-2】| Leetcode 42, 84

【代码随想录训练营】【Day 63】【单调栈-2】| Leetcode 42, 84 需强化知识点 单调栈强化 题目 42. 接雨水 注意 python 数组反序用法 result [::-1] class Solution:def trap(self, height: List[int]) -> int:# n len(height)# leftMax, rightMax [0] * n, [0] * …...

CTF常用sql注入(一)联合注入和宽字节

0x01 前言 给自己总结一下sql注入的常用姿势吧,记录一下学习 0x02 联合 联合注入的关键词是union SQL的union联合注入原理是联合两个表进行注入攻击,使用union select关键词来进行联合查询。 那么为什么我们在题目中一般是只写一个呢 因为 $sql &quo…...

薄冰英语语法学习--冠词1

冠词有2个,the 和 a /an the 叫定冠词 常用形容一类事务、特指(加强)、放在转有名词前面。 就这3个 定冠词 1. 定冠词特指某个(某些)人或某个(某些)事物 Many people came here to visit the old cast…...

基于Java中的SSM框架实现野生动物公益保护系统项目【项目源码+论文说明】计算机毕业设计

基于Java中的SSM框架实现野生动物公益保护系统演示 摘要 本系统按照网站系统设计的基本流程,遵循系统开发生命周期法和结构化方法,基于Java语言设计并实现了野生动物公益保护系统。该系统基于浏览器/服务器模式,采用JSP技术,后台…...

c->c++(二):class

本文主要探讨C类的相关知识。 构造和析构函数 构造函数(可多个):对象产生时调用初始化class属性、分配class内部需要的动态内存 析构函数(一个):对对象消亡时调用回收分配动态内存 C提供默认构造和析构,…...

11 UDP的可靠传输协议QUIC

1.如何做到可靠性传输 2.UDP与TCP,我们如何选择 3.UDP如何可靠,KCP协议在哪些方面有优势 4.KCP协议精讲(重点讲解 5.OUIC时代是否已经到来 UDP如何做到可靠传输 ACK机制重传机制 重传策略序号机制(后发的包可能先到) 3 2 1-> 2 3 1重排机制 2 3 1-> 3 2 1窗口机制 流…...

14-20 Vision Transformer用AI的画笔描绘新世界

概述 毫无疑问,目前最受关注且不断发展的最重要的主题之一是使用人工智能生成图像、视频和文本。大型语言模型 (LLM) 已展示出其在文本生成方面的卓越能力。它们在文本生成方面的许多问题已得到解决。然而,LLM 面临的一个主要挑战是它们有时会产生幻觉反应。 最近推出的新模…...

LVS FILTER UNUSED OPTION

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 过滤一些版图与spice网表对不上的器件。 一般后端遇不到这个问题,因为通常是需要写到网表中的decap没有写出来造成的,如下图。...

Python后端面试题

1. 文件操作w和r的区别 在Python中,文件操作模式中的w和r都表示对文件的读写操作,但它们在打开文件时的行为有所不同: r模式: 读写:这种模式允许你同时读取和写入文件。文件必须已经存在,否则会抛出一个Fi…...

docker打包 arm32v7/debian 问题总结

1.架构不同 我的宿主是x86 ,但是打包的是arm架构 安装qemu sudo apt-get install binfmt-support qemu qemu-user-static 然后使用buildx打包 docker buildx build --no-cache --platform linux/arm/v7 -t tdc_post:1.0.1 . --load 保存tar docker save -o tdc_post.tar tdc_p…...

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(二十)

课程地址: 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程,一套精通鸿蒙应用开发 (本篇笔记对应课程第 30 节) P30《29.数据持久化-用户首选项》 实现数据持久化在harmonyOS中有很多种方式,比较常见的是以下两…...

Vuetify3:监听当前手机还是电脑

我们在开发的时候&#xff0c;实现根据移动设备或PC设备来改编一些交互样式&#xff0c;这个时候我们需要监听宽度&#xff0c;在Vuetify3中可我们可以参考 ​​​​显示 & 平台配合监听即可在窗口缩小的时候判断出手机还是电脑 <template><v-app><div v-if…...

Zabbix 配置钉钉告警

Zabbix 配置钉钉告警 随着企业IT运维需求的不断增加&#xff0c;及时、准确地获取系统告警信息显得尤为重要。在众多告警工具中&#xff0c;Zabbix 因其强大的监控功能和灵活的告警机制&#xff0c;成为了很多企业的首选。同时&#xff0c;随着企业内部沟通工具的多样化&#…...

TTL转RS232与USB转TTL

USB转TTL是一种常用的通信接口转换器&#xff0c;它将USB&#xff08;通用串行总线&#xff09;接口转换为TTL&#xff08;晶体管-晶体管逻辑&#xff09;电平的串行接口。这种转换器在许多场景下非常有用&#xff1a; USB转TTL&#xff1a; 功能&#xff1a; 将计算机的USB接…...

【力扣 896】单调数列 C++题解(循环)

如果数组是单调递增或单调递减的&#xff0c;那么它是 单调 的。 如果对于所有 i < j&#xff0c;nums[i] < nums[j]&#xff0c;那么数组 nums 是单调递增的。 如果对于所有 i < j&#xff0c;nums[i]> nums[j]&#xff0c;那么数组 nums 是单调递减的。 当给定…...

代码随想录Day71(图论Part07)

53.寻宝 题目&#xff1a;53. 寻宝&#xff08;第七期模拟笔试&#xff09; (kamacoder.com) 思路&#xff1a;首先&#xff0c;我不知道怎么存这样的东西&#xff0c;用三维数组吗&#xff0c;没搞懂&#xff0c;果断放弃 prim算法实现 import java.util.*;class Main {publi…...

[Mdp] lc 494. 目标和(01背包变种+dp+dfs)

文章目录 1. 题目来源2. 题目解析1. 题目来源 链接:494. 目标和 2. 题目解析 方法一:dfs 数据量比较小,长度只有 20,那么针对每一个数都有两种选择,正、负,即 2 20 = 100 w 2^{20} = 100w 220=100w 差不多的时间复杂度,dfs 解决即可。时间复杂度: O ( 2 n ) O(2^{n…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

【Zephyr 系列 16】构建 BLE + LoRa 协同通信系统:网关转发与混合调度实战

🧠关键词:Zephyr、BLE、LoRa、混合通信、事件驱动、网关中继、低功耗调度 📌面向读者:希望将 BLE 和 LoRa 结合应用于资产追踪、环境监测、远程数据采集等场景的开发者 📊篇幅预计:5300+ 字 🧭 背景与需求 在许多 IoT 项目中,单一通信方式往往难以兼顾近场数据采集…...

如何让非 TCP/IP 协议驱动屏蔽 IPv4/IPv6 和 ARP 报文?

——从硬件过滤到协议栈隔离的完整指南 引言 在现代网络开发中,许多场景需要定制化网络协议(如工业控制、高性能计算),此时需确保驱动仅处理特定协议,避免被标准协议(如 IPv4/IPv6/ARP)干扰。本文基于 Linux 内核驱动的实现,探讨如何通过硬件过滤、驱动层拦截和协议栈…...