MQTT协议 局域网和广域网 云服务器和虚拟主机、VPS SSH和FTP、SFTP

时间:2024-08-07 09:03:32

 MQTT协议

MQTT协议就很好的解决了coap存在的问题。MQTT协议是由IBM开发的即时通讯协议,相比来说比较适合物联网场景的通讯协议。MQTT协议采用发布/订阅模式,所有的物联网终端都通过TCP连接到云端,云端通过主题的方式管理各个设备关注的通讯内容,负责将设备与设备之间消息的转发。

  1. 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。

  2. 对负载内容屏蔽的消息传输。

  3. 使用 TCP/IP 提供网络连接。

  4. 有三种消息发布服务质量:

    "至多一次",消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。

    "至少一次",确保消息到达,但消息重复可能会发生。

    "只有一次",确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。

  1. 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。

  2. 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。

MQTT在协议设计时就考虑到不同设备的计算性能的差异,所以所有的协议都是采用二进制格式编解码,并且编解码格式都非常易于开发和实现。最小的数据包只有2个字节,对于低功耗低速网络也有很好的适应性。有非常完善的QOS机制,根据业务场景可以选择最多一次、至少一次、刚好一次三种消息送达模式。运行在TCP协议之上,同时支持TLS(TCP+SSL)协议,并且由于所有数据通信都经过云端,安全性得到了较好地保障。

当前的物联网通信协议真的是百花齐放,没有任何协议能够在市场上占有统治地位。但要实现物联网设备互联互通(不同厂商、不同平台、不同架构),关键点并不在上述接入协议或通讯协议的统一,而在于上层业务应用层协议的统一。无论是wifi、蓝牙、亦或是mqtt、http都是设备进行数据通讯和交换的通道,规定的是通讯的格式;而通讯的内容的统一才是实现互联互通的关键。

局域网和广域网

计算机网络的分布式包交换技术 是一种技术,一种标准 这个叫以太网
局域网,广域网 城域网 无非就是网络的大小
整个世界的网络就是一个广域网,
一个地区,一个城市的网络就是一个城域网
一个公司,一个家庭里的几台电脑就是一个局域网
局域网,广域网,因特网 统称 互联网。

局域网

局域网,LAN(Local Area Network)是指在某一区域内(如一个学校、工厂和机关内)由多台计算机互联成的计算机组。一般是方圆几千米以内。将各种计算机,外部设备和数据库等互相联接起来组成的计算机通信网。它可以通过数据通信网或专用数据电路,与远方的局域网、数据库或处理中心相连接,构成一个较大范围的信息处理系统。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网严格意义上是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。

城域网

城域网,MAN(Metropolitan Area Network)是在一个城市范围内所建立的计算机通信网。属宽带局域网。由于采用具有有源交换元件的局域网技术,网中传输时延较小,它的传输媒介主要采用光缆,传输速率在100兆比特/秒以上。

局域网或广域网通常是为了一个单位或系统服务的,而城域网则是为整个城市而不是为某个特定的部门服务的。

建设局域网或广域网包括资源子网和通信子网两个方面,而城域网的建设主要集中在通信子网上,其中也包含两个方面:

一是城市骨干网,它与中国的骨干网相连。

二是城市接入网,通过它将位于同一城市内不同地点的主机、数据库,以及LAN等互相联接起来,这与WAN的作用有相似之处,但两者在实现方法与性能上有很大差别。

广域网

广域网,WAN(Wide Area Network)也称远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。

覆盖的范围比局域网(LAN)和城域网(MAN)都广。广域网的通信子网主要使用分组交换技术。广域网的通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网,它将分布在不同地区的局域网或计算机系统互连起来,达到资源共享的目的。如因特网(Internet)是世界范围内最大的广域网。

广域网是由许多交换机组成的,交换机之间采用点到点线路连接,几乎所有的点到点通信方式都可以用来建立广域网,包括租用线路、光纤、微波、卫星信道。而广域网交换机实际上就是一台计算机,有处理器和输入/输出设备进行数据包的收发处理。

MQTT协议 局域网和广域网  云服务器和虚拟主机、VPS   SSH和FTP、SFTP

局域网:

局域网也是一个区域概念,比如家庭网络就是一个小型的局域网,一般包含一个电信免费送的光猫,由于光猫无线信号不好,用户会光猫的LAN口接上一个无线路由器,于是就有了小型的家庭局域网

PC --- 无线路由器----(LAN)光猫(WAN)---ISP---Internet GW---Internet

MQTT协议 局域网和广域网  云服务器和虚拟主机、VPS   SSH和FTP、SFTP

所以按照以上的定义来说,一般而言就需要将外界的宽带网络,也就是牵到家里网线口或者是光猫上转换出来的信号,使用网线连接到WAN接口,然后通过设置,最好是使用路由器拨号上网,然后再通过LAN接口连接到局域网中使用宽带网络的设备。

光猫是一个边界,国家与国家之间有边界,网络之间也有边界,光猫就是局域网LAN与广域网WAN的边界。局域网LAN_IP可以在局域网LAN里遨游,但是到了边界处,即这里的光猫,就没有那么*了,LAN_IP是光猫分配的IP,跨越边界就进入WAN了,WAN可是运营商的地盘,WAN 有自己IP,WAN_IP,组成一个WAN路由域。

MQTT协议 局域网和广域网  云服务器和虚拟主机、VPS   SSH和FTP、SFTP

我们的熟悉的教室网络,也是典型的局域网。

几十台学生电脑和老师的电脑连在一起,电脑之间可以互相通信,老师可以通过屏幕广播来上课,学生机也可以将作业提交到教师机。

局域网的通信设备主要是交换机。交换机可以把多个本地的终端连接在一起,帮他们进行数据转发。

局域网部署的时候,自己买几台交换机就可以,不需要运营商(电信联通等)提供服务。

因特网(互联网是基于因特网,但是互联网发展更快)

这是个很好的东西,咱们天天刷抖音啊,刷知乎啊,玩游戏啊,都是通过因特网。

因特网本质上就是把世界各地的局域网连通,咱们刷知乎的时候,知乎那边有个局域网,我们家有个局域网,这两个局域网就是通过因特网连起来的。

因特网是Internet的直译,雏形是美国军方的一个网络,后来开放给各个大学、科研机构,再后来开放给各个普通组织和单位,再后来一发不可收拾,全世界都连了进来。

就是一张巨大无比的网,世界人民都在。那么大家就可以一起玩游戏了,一起看电影刷弹幕了,一起做任何想得到想不到的事情了。

想要接入因特网,需要向运营商购买1条宽带,电信联通鹏博士都可以,然后通过这条宽带接入运营商,运营商再接入因特网。

互联网:

由无数个广域网组成。

如果局域网是小溪,很多条小溪就汇聚成大的干流,比如长江、黄河,干流就是广域网,然后再流入大海,大海就是互联网。

互联网就是由无数个局域网,通过WAN线路汇聚到运营商,然后运营商之间互联起来,就形成了互联网。

互联网开放、互联,如果一个公司、机构的局域网没有连接到互联网,那这个局域网就不属于互联网。

以太网:

以太网是全球使用最广泛的局域网技术,以至于好多人都以为以太网就是我们所说的网络。我们平时所说的交换机,其实专业说法叫以太网交换机。而一般的光纤交换机其实也是采用以太网技术,只是传输介质由网线改成光纤。

广域网:

广域网是相对局域网来讲的,局域网的传输距离比较近,只能是一个小范围的。

如果需要长距离的传输,比如某大型企业,总部在北京,分公司在长沙,局域网是无法架设的。

这时需要通信有三个解决方案。

第一,通过因特网,只需要办一根宽带,就实现了通信,非常方便,现在的宽带价格也比较便宜。

但是会存在数据泄露的风险,前面讲到了,因特网是一个全球人民都连进来的网,虽说大部分都是好人,但总会有些坏人,特别是商业竞争的情况下,会有黑客坏人连在因特网里盗取各种数据卖钱。所以大型企业、金融单位、各级*单位,是不放心使用因特网来传输数据的。

第二,通过广域网专线。

所以为了数据安全,不能连接因特网,需要用一条自己的专用线路来传输数据,这条线路上只有自己人,不会有其他人接入,且距离很远,这个网络就叫 “广域网”

广域网的缩写是WAN,Wide Area Network,支持很长距离的传输。这条专线当然不是企业自己搭电线杆架设,而是租用电信联通等运营商架设好的线路,使用费用会比因特网贵很多,带宽也比较小,但是为了安全,就要承担一些必要的成本。

第三,通过VPN

VPN是虚拟专用网,是在普通的便宜的因特网上,通过数据加密,完整性验证,身份验证等多种技术手段构建的安全传输网络,实现类似专线的安全功能。本答案暂不展开来写。

想用更通俗的方式来尝试解释一下

1.想象你住在一个小区里,这个小区有很多栋楼,每栋楼有很多单元,每个单元有很多层,你和你的邻居之间谁也不认识谁,不知道该怎么找到对方,你们想要互相联系,只能靠写信的方式,你把信写好后交给小区的门房大爷,并且告诉他,这封信要送到1号楼1单元101,然后门房大爷负责把信送到,这个时候,整个小区可以看成一个局域网,因为大家在这个小区里使用的都是私有地址(私有IP),这个地址只有你们小区的门房大爷知道该怎么走,换个人就找不到了。
2.如果你想要给另外一个小区的某个住户写信,因为每个小区的私有地址命名方式都不一样,假设他们小区的地址是A号楼东座302,这个时候你把信交给门房大爷,他就傻眼了,因为他不认识,所以拒绝为你送信。当然还是有解决方式的,那就是把附近小区的门房大爷全都叫到一块大家开个会,给所有门房大爷统一按照一种方式来命名,比如叫天通苑张大爷、回龙观王大爷等等,这个名字就是公有地址(公有IP),这个名字在所有门房大爷中是唯一的,一人一个不能重名,这个时候门房大爷之间就互相认识了,以后你再想给另外一个小区的住户写信,就需要告诉你们小区的门房大爷,“麻烦您把这封信交给天通苑的张大爷,再让他转交给A号楼东座302”。这个时候,附近这些小区就形成了一个广域网,广域网内包含很多个小区(局域网),小区(局域网)和小区(局域网)之间想要互相通信,就必须靠各自的门房大爷。
3.过了段时间大家觉得这样还是很不爽,干脆把全世界的门房大爷都交到一块开个会吧,以后全世界的门房大爷们都统一起一个唯一的名字,这样全世界的人就可以*通信了,这就叫Internet/互联网。可以说Internet/互联网是最大的广域网,但并不是每个广域网都叫Internet/互联网。
4.
一些特殊需求:你就是想要和天通苑那个A号楼东座302直接通信,不想通过门房大爷,所以你在你家和他家之间拉了条钢丝(专线),你把信写好以后吊在篮子里直接给他送了过去,这种方式效率很快,也很安全,但是成本也很高。或者你可以雇一个专职通信员(VPN),他只负责给你送信,信一直放在他身上不需要倒手,由他去向门房大爷问路,并且亲自送过去,这样安全了很多,当然成本同样很高。
5.再来说一下“广域网由交换机连接”和“广域网需要路由交换和分组转发”这两句话。交换机的功能可以看成是小区和小区之间的路,有些小区之间只有一条路通着,有些小区之间可能有好几条路,这些路有的远有的近。而门房大爷的功能其实就是路由器(严谨的说其实不一定,因为现在具备路由功能的设备很多,不一定是路由器),也就是负责找路,只有他知道小区和小区之间的路怎么走,哪条路最近。所以说广域网(附近多个小区)有交换机(路)连接,并且广域网(附近多个小区)需要路由(门房大爷)选择(走哪条路)和分组转发(把不同的信交个不同的人)
你可以理解成局域网就是几台电脑加个交换机然后可以通信了。
广域网可以理解成多个局域网加些路由设备然后就可以通信了。
因特网可以理解成很多个广域网和局域网加了很多路由设备就可以通信了。
 

云服务器和虚拟主机、VPS

虚拟机如下:

虚拟主机也称之为共享主机,虚拟主机的关键技术在于,即使在同一台硬件、同一个操作系统上,运行着为多个用户打开的不同的服务器程式,也互不干扰。而各个用户拥有自己的一部分系统资源(IP地址、文档存储空间、内存、CPU等)。各个虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台单独的主机的表现完全相同。所以这种被虚拟化的逻辑主机被形象地称为“虚拟主机”。

有单独的控制面板管理,通过ftp软件更新网站,一般只能放一个站点。多个用户共同使用这台服务器的硬件资源。

个人理解为:我在同一台设备同一系统中用程序包虚拟出服务器。例如:电脑里安装的各种软件,虚拟主机就是采用软件的方式去虚拟出服务器。优点就是跟软件一样了,即开即用。但是缺点也很明显,并不能更换这个软件,但是你可以在许可的范围内有自己的小改动,但是并不会影响到软件本身。

云服务器如下:

云服务器又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品。云服务器是一种类似VPS服务器的虚拟化技术。也可以理解是VPS的升级版。他与VPS还有所不同是,它是在一组集群服务器上划分出来的多个类似独立主机的部分。集群中的每台服务器上面会有云主机的一个镜像。当其中一台机器出故障时。可以自动跳转到其他机器上面去访问。所以理论上来讲。只要不是所有的机器都出故障。就不会影响到云主机的访问。所以云主机在安全与稳定性方面比VPS更强大一些。

云主机给用户完全的服务器操作系统控制权限,可以搭建多个网站,并可以自己配置开发环境,一般需要远程管理,自己配置环境,站点个数和流量不限制。

VPS如下:

VPS主机是一项服务器虚拟化和自动化技术,它采用的是操作系统虚拟化技术。操作系统虚拟化的概念是基于共用操作系统内核,这样虚拟服务器就无需额外的虚拟化内核的过程,因而虚拟过程资源损耗就更低,从而可以在一台物理服务器上实现更多的虚拟化服务器。这些VPS主机以最大化的效率共享硬件、软件许可证以及管理资源。每一个VPS主机均可独立进行重启,并拥有自己的root访问权限、用户、IP地址、内存、过程、文件、应用程序、系统函数库以及配置文件。

个人理解:云服务器采用的技术原理其实就是,将一台服务器的内核划分出来,用来配置建立服务器。这样做的优点就是,云服务器不是个软件,它拥有真实的设备。缺点也很明显,卖的只是一个硬件(比喻),需要的软件需要自己去安装去配置。

云服务器与vps服务器都具有独立操作系统、独立ip等相同特点
1、使用的虚拟化技术不同
  云服务器都是通过虚拟化技术实现的,而vps服务器利用传统虚拟化技术,将一*立服务器进行分割成多个虚拟专享服务器;而云服务器则是通过云计算虚拟化技术实现的,大规模统调度服务器硬件设备,并当成“台”机器的虚拟化产品。
  2、扩展性能不同
  选择vps服务器搭建网站时,当选择好不同的带宽、CPU、内存、硬盘等配置之后,后期想要改变不够弹性,比如建站初期我们购买了1核2G的VPS,后期扩容只能升级为2核2G,而不是2核4G。而云服务器则不同其具有较大的弹性调整,当带宽、内存、硬盘不够用的时候,可以进行增加来实现满足各种变化的需求,同时还能控制成本。
  3、安全级别
  对于vps服务器来说当母服务器出现问题,这也就意味着其所有的vps服务器都出问题了,可以说是一损俱损。而云服务器是一种集成服务器中的一部分,当一台服务器出现问题,还存在镜像文件,不会影响到网站的正常运行。
  4、抗攻击能力
  在抗攻击上云服务器要比vps服务器好的多,云服务器还可以通过配置DDOS高防,将恶意攻击流量进行清洗过滤,确保主机的稳定可靠。

SSH和SSL

SFTP为SSH的其中一部分 FTP是TCP传输 SSH也是TCP传输 SFTP就是SSH连接过去的

SSH是一种网络协议,我们常说的 ssh 一般指其实现,即 OpenSSH,在 shell 中,也就是 ssh 命令。当我们需要远程登录到服务器上进行操作的时候,一般就会用ssh

总结起来主要包括以下步骤:

TCP 三次握手

SSH 协议版本协商

客户端与服务端的公钥交换

加密算法协商

客户端使用对称加密的密钥认证

客户端与服务端安全通信

SSH和FTP

(1)SSH为建立在应用层和传输层基础上的安全协议,SSH采用面向连接的TCP协议传输 应用22号端口,安全系数较高。

(2)FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。TCP/IP协议中,FTP占用两个端口,FTP标准命令TCP端口号为21,Port方式数据端口一般为20。虽然FTP在控制连接方面可以通过SSL加密,但是FTP在通过数据端口传输数据时是不加密的。可以使用SSH为FTP数据传输进行加密,即:SFTP。

SSH除了作为安全协议以外,有时还被作为一种应用,对于开启SSH服务的设备或系统,可能在终端通过SSH客户端软件进行连接,类似于TELNET,甚至还有传输文件的功能。我常用这个连接LINUX服务器和路由。可以用户赤连接SSH服务的软件,我知道的有:SecureCRT、ssh secure shell client、PuTTY

SSH 主要由三部分组成:

(1)传输层协议 [SSH-TRANS]

提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

(2)用户认证协议 [SSH-USERAUTH]

用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

(3)连接协议 [SSH-CONNECT]

将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

SFTP和FTP

一,适用场景

  我们平时习惯了使用FTP来上传下载文件,尤其是很多Linux的环境下,我们一般都会通过第三方的SSH工具连接到Linux的,但是当我们需要传输文件到Linux的服务器当中,很多人习惯用FTP来传输,其实Linux的默认是不提供FTP的,需要你额外安装FTP服务器。而且FTP服务器端会占用一定的VPS服务器资源。其实笔者更建议使用SFTP代替FTP。

  主要因为:一,可以不用额外安装任何服务器端程序(我比较中意这个,哈哈~~,很多公司为了安全性的Linux没有外网环境,只有SSH的时候,想传输文件是很悲催的问题)二,会更省系统资源。三,SFTP使用加密传输认证信息和传输数据,相对来说会更安全。四,也不需要单独配置,对新手来说比较简单(开启SSH默认就开启了SFTP)。

二,主要区别
  FTP是一种文件传输协议,一般是为了方便数据共享的。包括一个FTP服务器和多个FTP客户端.FTP客户端通过FTP协议在服务器上下载资源。而SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。但是这种安全是以牺牲效率为代价的,也就是说SFTP的传输效率比FTP要低(不过现实使用当中,没有发现多大差别)。个人肤浅的认为就是:一; FTP要安装,SFTP不要安装二; SFTP更安全,但更安全带来副作用就是的效率比FTP要低些。

三,开启SFTP

一,SFTP讲解

  SFTP是安全文件传输协议的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法
  .SFTP与FTP有着几乎一样的语法和功能。

  SFTP为SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(安全文件传输协议的安全文件传输子系统,SFTP本身没

有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。

  SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。

但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。