网络协议四

一、云中网络

物理机的劣势:

1)一旦需要扩容 CPU、内存、硬盘,都需要去机房手动弄,非常麻烦
2)采购的机器往往动不动几百 G 的内存,而每个应用往往可能只需要 4 核 8G
3)一台机器,一旦一个用户不用了,给另外一个用户,那就需要重装操作系统

虚拟机的网路

  1. 网络共享和互通
    在数据中心里面,采取的也是类似的技术,只不过都是 Linux,在每台机器上都创建网桥 br0,虚拟机的网卡都连到 br0 上,物理网卡也连到 br0 上,所有的 br0 都通过物理网卡出来连接到物理交换机上。
    在这里插入图片描述

在这种方式下,不但解决了同一台机器的互通问题,也解决了跨物理机的互通问题,因为都在一个二层网络里面,彼此用相同的网段访问就可以了。但是当规模很大的时候,会存在问题。
你还记得吗?在一个二层网络里面,最大的问题是广播。一个数据中心的物理机已经很多了,广播已经非常严重,需要通过 VLAN 进行划分。如果使用了虚拟机,假设一台物理机里面创建 10 台虚拟机,全部在一个二层网络里面,那广播就会很严重,所以除非是你的桌面虚拟机或者数据中心规模非常小,才可以使用这种相对简单的方式。

  1. NAT
    在这里插入图片描述

虚拟机是你的电脑,路由器和 DHCP Server 相当于家用路由器或者寝室长的电脑,物理网卡相当于你们宿舍的外网网口,用于访问互联网。所有电脑都通过内网网口连接到一个网桥 br0 上,虚拟机要想访问互联网,需要通过 br0 连到路由器上,然后通过路由器将请求 NAT 成为物理网络的地址,转发到物理网络。

如果是你自己登录到物理机上做个简单配置,你可以简化一下。例如将虚拟机所在网络的网关的地址直接配置到 br0 上,不用 DHCP Server,手动配置每台虚拟机的 IP 地址,通过命令 iptables -t nat -A POSTROUTING -o ethX -j MASQUERADE,直接在物理网卡 ethX 上进行 NAT,所有从这个网卡出去的包都 NAT 成这个网卡的地址。通过设置 net.ipv4.ip_forward = 1,开启物理机的转发功能,直接做路由器,而不用单独的路由器,这样虚拟机就能直接上网了。
在这里插入图片描述

  1. 隔离问题
    如果一台机器上的两个虚拟机不属于同一个用户,怎么办呢?好在 brctl 创建的网桥也是支持 VLAN 功能的,可以设置两个虚拟机的 tag,这样在这个虚拟网桥上,两个虚拟机是不互通的。

但是如何跨物理机互通,并且实现 VLAN 的隔离呢?由于 brctl 创建的网桥上面的 tag 是没办法在网桥之外的范围内起作用的,于是我们需要寻找其他的方式。

有一个命令vconfig,可以基于物理网卡 eth0 创建带 VLAN 的虚拟网卡,所有从这个虚拟网卡出去的包,都带这个 VLAN,如果这样,跨物理机的互通和隔离就可以通过这个网卡来实现。

首先为每个用户分配不同的 VLAN,例如有一个用户 VLAN 10,一个用户 VLAN 20。在一台物理机上,基于物理网卡,为每个用户用 vconfig 创建一个带 VLAN 的网卡。不同的用户使用不同的虚拟网桥,带 VLAN 的虚拟网卡也连接到虚拟网桥上。

这样是否能保证两个用户的隔离性呢?不同的用户由于网桥不通,不能相互通信,一旦出了网桥,由于 VLAN 不同,也不会将包转发到另一个网桥上。另外,出了物理机,也是带着 VLAN ID 的。只要物理交换机也是支持 VLAN 的,到达另一台物理机的时候,VLAN ID 依然在,它只会将包转发给相同 VLAN 的网卡和网桥,所以跨物理机,不同的 VLAN 也不会相互通信。

在这里插入图片描述
在这里插入图片描述

二、软件定义网络(SDN)

可以这样比喻,云计算就像大家一起住公寓,要共享小区里面的基础设施,其中网络就相当于小区里面的电梯、楼道、路、大门等,大家都走,往往会常出现问题,尤其在上班高峰期,出门的人太多,对小区的物业管理就带来了挑战。
物业可以派自己的物业管理人员,到每个单元的楼梯那里,将电梯的上下行速度调快一点,可以派人将隔离健身区、景色区的栅栏门暂时打开,让大家可以横穿小区,直接上地铁,还可以派人将多个小区出入口,改成出口多、入口少等等。等过了十点半,上班高峰过去,再派人都改回来。
如果物业管理人员有一套智能的控制系统,在物业监控室里就能看到小区里每个单元、每个电梯的人流情况,然后在监控室里面,只要通过远程控制的方式,拨弄一个手柄,电梯的速度就调整了,栅栏门就打开了,某个入口就改出口了。
这就是软件定义网络(SDN)
在这里插入图片描述

OpenFlow 和 OpenvSwitch(SDN的实现方式)

OpenFlow 是 SDN 控制器和网络设备之间互通的南向接口协议,OpenvSwitch 用于创建软件的虚拟交换机。OpenvSwitch 是支持 OpenFlow 协议的,当然也有一些硬件交换机也支持 OpenFlow 协议。它们都可以被统一的 SDN 控制器管理,从而实现物理机和虚拟机的网络连通。
在这里插入图片描述
对于 OpenvSwitch 来讲,网络包到了我手里,就是一个 Buffer,我想怎么改怎么改,想发到哪个端口就发送到哪个端口。

下面我们实验一下通过 OpenvSwitch 实现 VLAN 的功能

在 OpenvSwitch 中端口 port 分两种。
在网络中,VLAN(虚拟局域网)用于将一个物理网络划分为多个逻辑网络,提供更好的管理、隔离和安全性。Open vSwitch(OVS)是一种用于管理和控制虚拟网络交换机的软件,可以实现VLAN功能。理解access port和trunk port的工作原理对于配置和管理VLAN至关重要。下面是对它们的通俗解释和举例说明:

Access Port

定义

  • Access port配置一个特定的VLAN tag。
  • 从这个端口进来的网络包会被打上这个VLAN tag。
  • 如果一个网络包本身带有的VLAN ID等于配置的tag,则会从这个port发出。
  • 从access port发出的包不带VLAN ID。

举例
假设你有一个Open vSwitch的端口port1,它被配置为VLAN 10的access port。

  • 从port1进入的包

    1. 一个无VLAN标签的包进入port1。
    2. OVS会给这个包打上VLAN 10的标签。
    3. 这个包现在是一个VLAN 10的包。
  • 从port1发出的包

    1. 一个带有VLAN 10标签的包从port1发出。
    2. OVS会移除VLAN标签,使其变为一个无标签的包。
    3. 这个包现在没有VLAN标签,发送到下一个目的地。

Trunk Port

定义

  • Trunk port不配置固定的VLAN tag,而是配置允许通过的VLAN ID(trunks)。
  • 如果trunks为空,表示所有VLAN的包都可以通过,不限制。
  • 如果trunks不为空,则只有配置的VLAN ID的包可以通过。
  • Trunk port的包会保留其原有的VLAN ID。

举例
假设你有一个Open vSwitch的端口port2,它被配置为trunk port,允许VLAN 10和VLAN 20通过。

  • 从port2进入的包

    1. 一个带有VLAN 10标签的包进入port2。

    2. OVS检查这个包的VLAN ID,发现它在允许通过的范围内(VLAN 10和20)。

    3. 这个包继续保持其VLAN 10标签,传输到网络中的其他位置。

    4. 一个带有VLAN 30标签的包进入port2。

    5. OVS检查这个包的VLAN ID,发现它不在允许通过的范围内(VLAN 10和20)。

    6. 这个包被丢弃,不会通过port2。

  • 从port2发出的包

    1. 一个带有VLAN 10标签的包从port2发出。
    2. OVS保持其VLAN 10标签,直接发送。
    3. 这个包到达另一个trunk port或其他设备时,仍然带有VLAN 10标签。

综合示例

假设我们有一个简单的网络,包含两个端口port1和port2,配置如下:

  • port1:配置为VLAN 10的access port
  • port2:配置为允许VLAN 10和VLAN 20的trunk port
  1. 接入设备A通过port1发送数据

    • 设备A发送一个没有VLAN标签的数据包到port1。
    • OVS给这个包打上VLAN 10标签,并发送到网络中。
  2. 来自网络的VLAN 10包经过port2传输

    • 一个带有VLAN 10标签的数据包进入port2。
    • OVS检查包的VLAN标签,发现允许通过。
    • 包保持VLAN 10标签,继续传输到下一设备或端口。
  3. 来自网络的VLAN 30包经过port2传输

    • 一个带有VLAN 30标签的数据包进入port2。
    • OVS检查包的VLAN标签,发现不允许通过。
    • 包被丢弃,不会传输。

通过上述例子,可以看到access port主要用于将单个设备连接到特定的VLAN,而trunk port则用于在不同的VLAN之间传输数据,确保VLAN隔离和管理。

实验二:用 OpenvSwitch 模拟网卡绑定,连接交换机

为了高可用,可以使用网卡绑定,连接到交换机,OpenvSwitch 也可以模拟这一点。

三、云中网络安全

对于公有云上的虚拟机,我的建议是仅仅开放需要的端口,而将其他的端口一概关闭。这个时候,你只要通过安全措施守护好这个唯一的入口就可以了。采用的方式常常是用ACL(Access Control List,访问控制列表)来控制 IP 和端口。

设置好了这些规则,只有指定的 IP 段能够访问指定的开放接口,就算有个有漏洞的后台进程在那里,也会被屏蔽,黑客进不来。在云平台上,这些规则的集合常称为安全组。

当一个网络包进入机器

在这里插入图片描述
有了这个 Netfilter 框架就太好了,你可以在 IP 转发的过程中,随时干预这个过程,只要你能实现这些 hook 函数。

一个著名的实现,就是内核模块 ip_tables。它在这五个节点上埋下函数,从而可以根据规则进行包的处理。按功能可分为四大类:连接跟踪(conntrack)、数据包的过滤(filter)、网络地址转换(nat)和数据包的修改(mangle)。其中连接跟踪是基础功能,被其他功能所依赖。其他三个可以实现包的过滤、修改和网络地址转换。

在用户态,还有一个你肯定知道的客户端程序 iptables,用命令行来干预内核的规则。内核的功能对应 iptables 的命令行来讲,就是表和链的概念。
在这里插入图片描述
在这里插入图片描述

iptables的作用

当使用iptables时,通常会针对不同的需求和场景设置不同的规则。以下是一些针对上述提到的iptables功能的例子:

  1. 防火墙功能

    • 允许特定IP地址的访问:

      iptables -A INPUT -s 192.168.1.100 -j ACCEPT
      
    • 阻止特定IP地址的访问:

      iptables -A INPUT -s 10.0.0.5 -j DROP
      
    • 允许某个端口的访问,拒绝其他所有访问:

      iptables -A INPUT -p tcp --dport 22 -j ACCEPT
      iptables -A INPUT -j DROP
      
  2. 网络地址转换(NAT)

    • 将内部IP地址转换为外部IP地址:

      iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
      
    • 设置端口转发规则,将外部访问的某个端口转发到内部主机:

      iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80
      
  3. 端口转发(Port Forwarding)

    • 将外部访问的某个端口转发到内部主机的特定端口:
      iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80
      
  4. 流量控制和限制

    • 限制某个IP地址的流量速率:

      iptables -A INPUT -s 192.168.2.50 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT
      
    • 限制某个端口的总流量:

      iptables -A INPUT -p tcp --dport 443 -m quota --quota 1000M -j ACCEPT
      
  5. 包过滤和监控

    • 监控特定端口的进出流量:

      iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH Traffic: "
      
    • 设置一个计数器来统计特定流量的包数量:

      iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 -j ACCEPT
      iptables -A INPUT -s 192.168.1.100 -p tcp --dport 80 -j ACCEPT
      iptables -nvL
      

这些例子展示了如何使用iptables来实现防火墙、NAT、端口转发、流量控制和监控等功能。通过这些例子,可以更好地理解iptables的实际应用场景。

安全组

这些规则都可以在虚拟机里,自己安装 iptables 自己配置。但是如果虚拟机数目非常多,都要配置,对于用户来讲就太麻烦了,能不能让云平台把这部分工作做掉呢?

当然可以了。在云平台上,一般允许一个或者多个虚拟机属于某个安全组,而属于不同安全组的虚拟机之间的访问以及外网访问虚拟机,都需要通过安全组进行过滤。

我们会创建一系列的网站,都是前端在 Tomcat 里面,对外开放 8080 端口。数据库使用 MySQL,开放 3306 端口。
为了方便运维,我们创建两个安全组,将 Tomcat 所在的虚拟机放在安全组 A 里面。在安全组 A 里面,允许任意 IP 地址 0.0.0.0/0 访问 8080 端口,但是对于 ssh 的 22 端口,仅仅允许管理员网段 203.0.113.0/24 访问。
我们将 MySQL 所在的虚拟机在安全组 B 里面。在安全组 B 里面,仅仅允许来自安全组 A 的机器访问 3306 端口,但是对于 ssh 的 22 端口,同样允许管理员网段 203.0.113.0/24 访问。
这些安全组规则都可以自动下发到每个在安全组里面的虚拟机上,从而控制一大批虚拟机的安全策略。

所有从外网网口出去的,都转换成为这个 IP 地址。那又一个问题来了,都变成一个公网 IP 了,当 163 网站返回结果的时候,给谁呢,再 nat 成为哪个私网的 IP 呢?

这就是 Netfilter 的连接跟踪(conntrack)功能了。对于 TCP 协议来讲,肯定是上来先建立一个连接,可以用“源 / 目的 IP+ 源 / 目的端口”唯一标识一条连接,这个连接会放在 conntrack 表里面。当时是这台机器去请求 163 网站的,虽然源地址已经 Snat 成公网 IP 地址了,但是 conntrack 表里面还是有这个连接的记录的。当 163 网站返回数据的时候,会找到记录,从而找到正确的私网 IP 地址。

这是虚拟机做客户端的情况,如果虚拟机做服务器呢?也就是说,如果虚拟机里面部署的就是 163 网站呢?
这个时候就需要给这个网站配置固定的物理网的 IP 地址和公网 IP 地址了。这时候就需要显示的配置 Snat 规则和 Dnat 规则了。
当外部访问进来的时候,外网网口会通过 Dnat 规则将公网 IP 地址转换为私网 IP 地址,到达虚拟机,虚拟机里面是 163 网站,返回结果,外网网口会通过 Snat 规则,将私网 IP 地址转换为那个分配给它的固定的公网 IP 地址。

四、 云中的网络QoS 这一节细节没有研究

本来合租共享 WIFI,一个人狂下小电影,从而你网都上不去,是不是很懊恼?

在云平台上,也有这种现象,好在有一种流量控制的技术,可以实现QoS(Quality of Service),从而保障大多数用户的服务质量。

QoS的关键指标

带宽(Bandwidth):指网络能够提供的最大数据传输速率。
延迟(Latency):指数据包从源端到达目的端所需的时间。
抖动(Jitter):指数据包到达目的端的时间间隔的变动。
丢包率(Packet Loss):指数据包在传输过程中丢失的比例。

云中的流量控制主要通过队列进行的,队列分为两大类:无类别队列规则和基于类别的队列规则。
在云中网络 Openvswitch 中,主要使用的是分层令牌桶规则(HTB),将总的带宽在一棵树上按照配置的比例进行分配,并且在一个分支不用的时候,可以借给另外的分支,从而增强带宽利用率。

五、云中网络的隔离GRE、VXLAN 【没仔细看】

好的,让我尝试用一个简单的比喻来解释GRE和VXLAN这两种网络Overlay技术。

想象一下,你有一家大型公司,公司里有多个部门,比如销售部、市场部和研发部。每个部门都有自己的办公区域,员工们在各自的办公区域内可以互相交流。但是,有时候销售部的员工需要和市场部的员工交流,或者研发部的员工需要和市场部的员工交流。由于他们不在同一个办公区域,直接交流就不太方便。

这时候,你可以想象成每个部门是一个独立的网络(VLAN),但是由于物理空间(网络设备和端口数量)的限制,不能无限制地划分更多的独立网络。这时就需要一种方法来让不同部门的员工能够方便地交流,这就是Overlay网络技术发挥作用的地方。

GRE(Generic Routing Encapsulation Protocol)

GRE可以被看作是一种“点对点”的快递服务。就像你从一个部门给另一个部门发送一个包裹,你需要把这个包裹交给快递公司,快递公司会在包裹外面加一个外包装(封装),写上收件人和发件人的地址,然后通过他们的运输网络送到目的地。在这个例子中:

  • 包裹 = 原始数据包
  • 外包装 = GRE封装
  • 快递公司 = 隧道(Tunnel)
  • 运输网络 = 底层物理网络

GRE隧道的两端(Tunnel Endpoints)就像两个快递公司的分拣中心,负责把包裹加上外包装发送出去,或者接收包裹后去掉外包装,把原始的包裹交给正确的收件人。

VXLAN(Virtual Extensible Local Area Network)

VXLAN则可以被看作是一种更高级的快递服务,它支持“组播”的快递方式。这就像是你有一个包裹需要同时发送给多个部门的联系人。在VXLAN中:

  • 包裹 = 原始数据包
  • 外包装 = VXLAN封装
  • 快递公司 = 隧道(Tunnel)
  • 运输网络 = 底层物理网络

VXLAN的特点是可以在一个包裹上写多个收件人的地址,然后通过快递公司的网络(这里可以想象成支持组播的网络),一次性地将包裹的副本发送给所有指定的收件人。这样,即使这些收件人不在同一个物理位置,他们也能同时收到包裹。

在实际的网络环境中,GRE和VXLAN都是用来在不同网络之间创建逻辑上的连接,使得原本不能直接通信的设备能够互相通信,就像不同部门的员工能够互相交流一样。VXLAN相比于GRE,提供了更好的扩展性,可以支持更多的终端设备,并且更适合大规模的云计算环境。

六、容器网络

cgroup,也即明明整台机器有很多的 CPU、内存,而一个应用只能用其中的一部分。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FreeRTOS-任务通知

概述 不同于队列、信号量、互斥量,有一个额外的空间(结构体)作为通信的纽带,任务通知只需借助任务TCB中的相关变量,无需另外创建; 下面是TCB中有关任务通知的变量: typedef struct tskTaskCo…

告别繁琐!Xinstall助力,二维码推广监测从此高效无忧

在数字化营销时代,二维码推广已成为App获取新用户的重要途径之一。然而,如何精准监测二维码推广效果,成为了许多企业面临的难题。今天,我们为大家介绍一款强大的二维码推广监测工具——Xinstall,它将助您轻松解决推广监…

SonarQube安全扫描常见问题

目录 一、SonarQube质量报告 二、SonarQube扫描常见问题和修复方法 三、SonarQube质量配置 最近小编在使用SonarQube工具进行代码扫描,检查代码异味,系统漏洞等,实际过程中也遇到了不少问题,这篇文章主要列举我遇到的常见问题和…

账号密码无错误,xshell可以连接,但是WindTerm连接失败

xshell可以连接,但是WindTerm却连接失败 报错提示内容: 连接WindTerm是,账号密码是正确的,但是一输入账号,就报The remote host closed the connection错误,或者是Unknown error错误 解决方法 在新建…

Perfectly Clear Workbench: 智能图像清晰修复软件

Perfectly Clear Workbench 是由 EyeQ 公司开发的一款先进的智能图像清晰修复软件,适用于 Mac 和 Windows 平台。该软件旨在通过自动化和高效的图像处理工具,帮助摄影师、设计师以及影像爱好者轻松实现图像优化和修复。无论是专业摄影工作室还是个人用户…

揭秘ASA归因统计的奥秘,Xinstall带您轻松上手!

在移动互联网时代,App推广已成为企业获取用户、提升品牌知名度的重要手段。然而,如何准确衡量推广效果,如何精准定位目标用户,一直是困扰着众多App运营者的难题。今天,我们就来谈谈ASA(Apple Search Ads&am…

【Ardiuno】使用ESP32单片机创建web服务通过网页控制小灯开关的实验(图文)

经过实验测试ESP32单片机的网络连接还是很方便的,这里小飞鱼按照程序实例的代码亲自实验一下使用Esp32生成的网页服务来实现远程无线控制小灯开关功能,这样真的是离物联网开发越来越近了,哈哈! 连接好开发板和电路,将…

采用PHP语言(医院安全不良事件上报系统源码)医院不良事件 各类事件分析、分类、处理流程

医疗安全不容忽视! 医疗安全(不良)事件是指在临床诊疗活动中以及医院运行过程中,任何可能影响患者的诊疗结果、增加患者的痛苦和负担并可能引发医疗纠纷或医疗事故,以及影响医疗工作的正常运行和医务人员人身安全的因…

CVE-2024-4577:PHP CGI Windows平台远程代码执行漏洞

文章目录 0x01 前言0x02 漏洞描述0x03 影响范围0x04 资产测绘0x05 漏洞复现0x06 漏洞修复0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后…

如何在Visual Studio Code中禁用Less文件保存时自动编译为CSS的功能

第一步:点击扩展,搜索Easy Less,并找到对应的扩展设置 第二步:点击在setting.json中编辑 第三步:将此段代码复制粘贴 "compress": false, // 是否压缩"sourceMap": false, // 是否生成map文件&am…

洗地机是智商税吗?家用洗地机哪个牌子好?2024年多功能洗地机推荐

洗地机是智商税吗?肯定不是!!!洗地机因为其功能集成了扫地、吸尘、拖地、烘干和消毒的功能,仅需一步操作即可完成所有清洁任务,大大的提升了人们的清洁效率,节省了人们清洁的时间和精力。那么&a…

RocketMQ查询出重复数据,两条MessageID一样的解决办法如下

问题描述 在使用RocketMQ的可视化工具dashboard-1.0.0时,首先生产了10条数据,但是查询时却查出来了14条,有四条数据重复,重复数据MessageID和key相同,但是通过key单独查询却只能查出一条 测试代码 package com.fdw.rocketmq.producer;import org.apache.rocketmq.client…

设计模式学习(二)工厂模式——工厂方法模式

设计模式学习(二)工厂模式——工厂方法模式 前言工厂方法模式简介示例优点缺点使用场景 前言 前一篇文章介绍了简单工厂模式,提到了简单工厂模式的缺点(违反开闭原则,扩展困难),本文要介绍的工…

WordPress 站点 Wp-Login.Php 登录页面,防止被机器扫描爆破终极方法

最近好像不少的 WordPress 站点又迎来了一波疯狂的 wp-login.php 登录页面暴力破解,明月使用的 Dragon 主题也迅速的做出了安全防范响应,第一时间就增强了代码上的安全防御能力。明月代运维的几个站点也在这方面加强了防范措施,基本上实现了永久解决这一顽疾的目标,今天明月…

CAN总线协议教程

系列文章目录 文章目录 系列文章目录前言1.简介:CAN总线什么是CAN?我们将涵盖的内容 2.CAN报文数据框架远程框架错误帧重载框架标准与扩展 CAN基本CAN与全CAN总线仲裁和消息优先级邮件寻址和识别有关标识符值的说明 3.CAN物理层CAN总线不同的物理层最大总…

报错 Import declaration conflicts with local declaration of Policy

今天我新建了个页面 ,并将其进入到主页面是报了错 报错原因是:我在代码中有一个命名冲突。具体来说,我再在同一作用域内同时定义和导入了名为 Policy 的东西,导致冲突。 import React from react; import Policy from /pages/Pol…

Parallels Desktop 19虚拟机助你一机多用

Parallels Desktop 19 mac虚拟机是一款功能强大且易于使用的虚拟化软件,它允许用户在Mac电脑上同时运行Windows、Linux和其他多种操作系统,为用户提供了极大的灵活性和兼容性。 Parallels Desktop 19获取 这款虚拟机软件具有直观易用的界面,…

物联网TCP、UDP、CoAP、LwM2M、MQTT协议简单对比

一、前言 目前物联网行业有TCP、UDP、CoAP、LwM2M、MQTT、Modbus系列、JT808、HTTP、TLINK、ISAPI等协议,本文先对其中的几款协议进行介绍。具体关系见下图: 传输层协议:TCP、UDP;应用层协议:CoAP、LwM2M、MQTT、Modbu…

AI产品经理的转行之路,如何迈向年薪80w的职业高峰?

前言 在当今科技日新月异的时代,AI产品经理作为一个炙手可热的职业,吸引了众多向往高薪与前沿领域结合的求职者的目光。年薪80万的诱惑力无疑是巨大的,但不少自学中的朋友发现,即便涉猎广泛的产品知识,想要顺利转型成…

基于FreeRTOS+STM32CubeMX+LCD1602+MCP6S26(SPI接口)的6通道模拟可编程增益放大器Proteus仿真

一、简介: MCP6S26是模拟可 编程增益放大器(Programmable Gain Amplifiers, PGA)。它们可配置为输出 +1 V/V 到 +32 V/V 之间的增 益,输入复用器可通过 SPI 端口选择最多 6 个通道中的 一个。串行接口也可以将 PGA 置为关断模式,以降低 功耗。这些 PGA 针对高速度、低失调…