怎样为树莓派安装Rust开发包和相关实用软件?

随着软件业的蓬勃发展,越来越多的新技术开始呈现在大家面前。比如Golang和Rust这两门计算机编程语言。

Golang可能大家接触的多一些,毕竟容器和区块链等大量开发者在用。稍晚一年出现的Rust,可能有些朋友不熟悉。

Rust是Mozilla主导开发的注重安全、速度和并发的系统级编程语言,随着Rust的成熟,Mozilla开始尝试用Rust开发Firefox的组件,其中包括核心引擎Servo/Project Quantum。

普通PC和Mac电脑咱们这里就不说了,这里讲讲如何在树莓派上安装Rust开发包和那些没有加入“系统软件库”的Rust软件。

这里还是拿出我的Raspberry Pi Zero W。

在确保网络状态良好的情况下,在命令行执行:

sudo curl https://sh.rustup.rs -sSf | sh

默认安装选1即可,它会自动安装稳定版的Rust for ARM。这里可以看到版本号是1.27.0。

安装成功后可以写个hello world试试是否可以正常编译。

cat > hello.rs << EOF

rustc hello.rs

这个命令可以生成二进制文件直接执行。

从图中我们能看到,树莓派已经可以编译rust程序了。然后我们用cargo这个rust包管理工具来安装一个文件搜索工具 —— fd-find。

执行:cargo install fd-find

下载和编译的过程比较漫长。当然,如果你是高性能PC可以很快。单核ARM的话你就慢慢等吧。

差不多一场世界杯足球赛的耗时,终于编译完成了这个fd-find(我这里用了84分 2.69秒)。

最后就是享受劳动成果了,试试这个由Rust语言开发,传说中可取代“find”命令的小工具吧。

速度快,更简洁,支持正则表达式。还可以和其他Shell命令融合。

欢迎大家和我探讨IoT物联网终端上的开发和应用。

版权声明:本文为“IoT前哨站”原创,转载请注明原文作者和出处。

用树莓派构建一个婴儿监视器

香港很湿热,即便是晚上,许多人为了更舒适,在家里也使用空调。当我的大儿子还是一个小婴儿的时候,他卧室的空调还是需要手动控制的,没有温度自动调节的功能。它的控制器只有开或者关,让空调整个晚上持续运行会导致房间过冷,并且也浪费能源和钱。

我决定使用一个基于树莓派的物联网解决方案去修复这个问题。后来我进一步为它添加了一个婴儿监视器插件。在这篇文章中,我将解释我是如何做的,它的代码在 我的 GitHub 页面上。

设计空调控制器

解决我的问题的第一个部分是使用了一个 Orvibo S20 可通过 WiFi 连接的智能插头和智能手机应用程序。虽然这样可以让我通过远程来控制空调,但是它还是手动处理的,而我希望尝试让它自动化。我在 Instructables 上找到了一个满足我的需求的项目:他使用树莓派从一个AM2302 传感器上测量附近的温度和湿度,并将它们记录到一个 MySQL 数据库中。

使用压接头将温度/湿度传感器连接到树莓派的相应 GPIO 针脚上。幸运的是,AM2302 传感器有一个用于读取的 开源软件,并且同时提供了 Python 示例。

与我的项目放在一起的用于 AM2302 传感器 接口的软件已经更新了,并且我使用的原始代码现在应该已经过时了,停止维护了。这个代码是由一个小的二进制组成,用于连接到传感器以及解释读取并返回正确值的 Python 脚本。

将传感器连接到树莓派,这些 Python 代码能够正确地返回温度和湿度读数。将 Python 连接到 MySQL 数据库很简单,并且也有大量的使用 python-mysql 绑定的代码示例。因为我需要持续地监视温度和湿度,所以我写软件来实现这些。

事实上,最终我用了两个解决方案,一是作为一个持续运行的进程,周期性(一般是间隔一分钟)地获取传感器数据,另一种是让 Python 脚本运行一次然后退出。我决定使用第二种方法,并使用 cron 去每分钟调用一次这个脚本。之所以选择这种方法的主要原因是,(通过循环实现的)持续的脚本偶尔会不返回读数,这将导致尝试读取传感器的进程出现堆积,最终可能会导致系统挂起而缺乏可用资源。

我也找到了可以用程序来控制我的智能插头的一个 Perl 脚本。它是解决这种问题所需的一部分,因此当某些温度/湿度达到触发条件,将触发这个 Perl 脚本。在做了一些测试之后,我决定去设计一个独立的 checking 脚本,从 MySQL 去拉取最新的数据,然后根据返回的值去设置智能开关为开或关。将插头控制逻辑与传感器读取脚本分开,意味着它们是各自独立运行的,就算是传感器读取脚本写的有问题也没事。

配置一个打开/关闭空调的温度值是很有意义的,因此,我将这些值转移到控制脚本读取的配置文件中。我也发现,虽然传感器的值一般都很准确,但是,偶尔也会出现返回不正确读数的情况。这个传感器脚本被修改为不向 MySQL 数据库中写入与前值差异非常大的值。同样也在配置文件中写入了连续读取的温度/湿度之间允许的最大差异值,如果读取的值处于这些限制值以外,这些值写不会提交到数据库中。

虽然,做这个自动调节器似乎花费了很多努力,但是,这意味着,记录到 MySQL 数据库的数据是有效的、可用于进一步去分析识别用户使用模式的有用数据。可以用多种图形方式去展示来自 MySQL 数据库中的数据,而我决定使用 Google Chart 在一个 Web 页面上显示数据。

添加一个婴儿监视摄像头

树莓派开放的性能意味着我可以不断地为它增加功能 —— 并且我有大量的未使用的可用 GPIO 针脚。我的下一个创意是去添加一个摄像头模块,将它放在孩子的卧室中,配置它去监视婴儿。

我需要一个能够在黑暗环境中工作的摄像头,而 Pi Noir 摄像头模块是非常适合这种条件的。Pi Noir 除了没有红外过滤之外,同样也是树莓派常用的摄像头模块。这意味着它在白天时的图像可能有点偏紫色,但是它可以在黑暗中借助红外灯来显示图像。

现在我需要一个红外光源。由于树莓派非常流行,并且进入门槛很低,因此它有大量的外围配件和插件。也有适合它的各种红外光源,我注意到的其中一个是 Bright Pi。它可以从树莓派上供电,并且它很适合为树莓派的摄像头模块提供红外光和普通光。它唯一的缺点是太考验我的焊接技能了。

我的焊接技能还是不错的,但是可能花费的时间比其他人更长。我成功地连接了外壳上所有的红外 LEDs,并将它们连接到树莓派的 GPIO 针脚上。这意味着树莓派能够编程控制红外 LED 是否点亮,以及它的亮度。

通过一个 Web 流去公开捕获的视频也很有意义,因为这样我就可以从 Web 页面上查看温度和湿度的读数图表。进一步研究之后,我选择了一个使用 M-JPEG 捕获器的 流软件。通过 Web 页面公开 JPG 源,我可以在我的智能手机上去连接摄像头查看程序,去查看摄像头的输出。

做最后的修饰

没有哪个树莓派项目都已经完成了还没有为它选择一个合适的外壳,并且它有各种零件。在大量搜索和比较之后,有了一个显然的 赢家:SmartPi 的乐高积木式外壳。乐高的兼容性可以让我去安装温度/湿度传感器和摄像头。下面是最终的成果图:

在这以后,我对我的这个作品作了一些改变和更新:

    • 我将它从树莓派 2 Model B 升级到了树莓派 3,这意味着我可以使用 USB WiFi 模块。
    • 我用一个 TP-Link HS110 智能插头替换了 Orvibo S20。
    • 我也将树莓派插到了一个智能插头上,这样我就可以远程重启/重置它了。
    • 我从树莓派上将 MySQL 数据库移走了,它现在运行在一个 NAS 设备上的容器中。
    • 我增加了一个非常 灵活的三角夹,这样我就可以调整到最佳角度。
    • 我重新编译了 USB WiFi 模块,禁用了板载 LED 指示灯,这就是升级到树莓派 3 的其中一个好处。
    • 我因此为我的第二个孩子设计了另外一个监视器。
    • 因为没有时间去折腾,我为我的第三个孩子购买了夜用摄像头。

想学习更多的东西吗?所有的代码都在 我的 GitHub 页面上。

(https://github.com/jervine/rpi-temp-humid-monitor)

想分享你的树莓派项目吗?将你的故事和创意发送给我们。

via: https://opensource.com/article/18/3/build-baby-monitor-raspberry-pi
作者:Jonathan Ervine 译者:qhwdw 校对:wxy 来自:Linux中国

忘记网络设备或应用的默认密码怎么办?

做物联网的,少不了要跟路由器等各种网络设备、PaaS应用打交道。可是要不小心在工作中忘记设备或应用的默认密码怎么办?那可就耽误事情了。今天就给大家介绍一个小工具 —— Passhunt。

这是一款用于寻找路由器、交换机等网络设备、Web 应用等默认身份凭证的工具。大约能搜索世界各地523个供应商和他们的2084个默认密码。各位可保存好,以备不时之需。

安装:

git clone https://github.com/Viralmaniar/Passhunt.git
cd Passhunt
pip3 install -r requirements.txt
python3 Passhunt.py

使用:

1: 输出支持的设备厂商/Web应用列表。
2: 输入厂商名称并搜索默认的登陆凭据。
3: 退出程序

好了,不用谢。欢迎关注“IoT前哨站”微信和微博。

超五百万次下载的17个暗藏挖矿程序镜像被Docker移除

Docker Hub 是一个分享预配置 Docker 镜像的仓库,预配置的镜像可以节省管理员的设置时间。Docker 公司近日从 Docker Hub 移除了 17 个含有挖扩程序或 Reverse Shell 后门的恶意 Docker 镜像,这些镜像在 Docker Hub 上已存在接近一年,估计已被下载超过 500 万次。

网络安全机构Kromtech Security Center 指出,去年 7 月,用户名为 docker123321 的人上传了 3 个公开访问的镜像,它们包含了挖矿代码,有用户后来报告其中一个有后门。然而相关账号和镜像并没有在接到举报后从 Docker Hub 移除。在之后的几个月里,该账号又上传了 14 个恶意镜像。Docker Hub 直到上个月才对这些恶意镜像采取行动。与挖矿代码相关联的钱包地址显示,这些恶意镜像挖出了价值约 9 万美元的门罗币。

本次事件的时间轴记录

Docker 用户不妨检查自己的系统是否下载了相关的恶意 Docker 镜像,以采取相对应的行动,这些镜像分别是:

docker123321/tomcat

docker123321/tomcat11

docker123321/tomcat22

docker123321/kk

docker123321/mysql

docker123321/data

docker123321/mysql0

docker123321/cron

docker123321/cronm

docker123321/cronnn

docker123321/t1

docker123321/t2

docker123321/mysql2

docker123321/mysql3

docker123321/mysql4

docker123321/mysql5

docker123321/mysql6

转载自:开源中国社区

入侵 50 多国的 VPNFilter 恶意软件是何来头?

据外媒报道,美国联邦调查局(FBI)称,俄罗斯电脑黑客用 VPNFilter 恶意软件入侵了全球50多个国家数以十万计的家用和办公室路由器,可能借此收集用户资料或阻断网络流量。

美国司法部称,据信黑客来自一个名为“Sofacy”的组织,该组织受俄罗斯政府“指挥”,据信其主要目标是乌克兰。

因为“VPNFilter”恶意软件的代码与 BlackEnergy 恶意软件的代码相同,而BlackEnergy 曾多次对乌克兰发起大规模攻击。思科发布的分析报告也表明,VPNFilter 利用各国的命令和控制(C2)基础设施,以惊人的速度主动感染乌克兰境内及多个国家主机。

西方专家指出,俄罗斯对乌克兰企业展开的网络袭击已持续一年多,造成数以亿计美元的损失,以及至少一次停电事故。

不过,对于乌克兰政府指责莫斯科计划在26日的欧冠赛决赛前,对乌克兰国家机构和私营公司发动网络袭击的说法,克里姆林宫予以否认。

较早前,思科公司Talos安全团队曾透露,此次被黑客袭击的目标包括Linksys、MikroTik、NETGEAR 和 TP-Link 的路由器,以及 QNAP 网络附加存储(NAS)设备。

该团队研究分析结果显示, VPNFilter 破坏性较强,可通过烧坏用户的设备来掩盖踪迹,比简单地删除恶意软件痕迹更深入。
利用 VPNFilter 恶意软件,攻击者还可以达到多种其他目的,如监视网络流量并拦截敏感网络的凭证;窥探到 SCADA 设备的网络流量,并部署针对 ICS 基础设施的专用恶意软件;利用被感染设备组成的僵尸网络来隐藏其他恶意攻击的来源;导致路由器瘫痪并使受攻击的大部分互联网基础设施无法使用。

据悉,VPNFilter 属于高度模块化的框架,允许快速更改操作目标设备,同时能为情报收集和寻找攻击平台提供支撑。

其实施攻击的路径主要分为三个阶段:

第1阶段恶意软件会通过重新启动植入,该阶段主要目的是获得一个持久化存在的立足点,并使第2阶段的恶意软件得以部署。

第2阶段恶意软件拥有智能收集平台中所期望的功能,比如文件收集、命令执行、数据过滤和设备管理,某些版本也具有自毁功能,覆盖了设备固件的关键部分,并可重新引导设备,使其无法使用。

此外,还有多个阶段3的模块作为第2阶段恶意软件的插件,提供附加功能,当前思科Talos团队已发现了两个插件模块:一个数据包嗅探器来收集通过该设备的流量,包括盗窃网站凭证和监控 Modbus SCADA 协议,以及允许第2阶段与Tor通信的模块,据称仍然有其他几个插件模块但当前还没有发现。

目前Talos开发并部署了100多个Snort签名,用于与此威胁相关的设备的漏洞。这些规则已经部署在公共Snort集合中,大家可以使用这些规则来保护设备。也可对VPNFilter 涉及的域名/ip地址做黑名单,并将其与该威胁关联起来,进行检测拦截防御。

如果路由器和NAS设备已被感染,建议用户恢复出厂默认值,升级最新版本打上最新补丁并重新启动。

FBI的一名官员称,在黑客袭击中受影响的路由器是用户在电子展或网上购买的。但不排除互联网公司提供给客户的路由器也受影响。

与树莓派谈共享 —— Windows有现成的NFS客户端?

很多树莓玩家都在用 Winscp 等软件在 Windows 和树莓派之间来回传文件。虽然也能用,但感觉总不像Windows网上邻居的共享那么方便。

如果只跟Windows共享,用Samba倒也可以。如果要让Windows和Linux都能挂载树莓派上的共享区域呢?

其实很多朋友不知道,为了方便跟 Unix/Linux 交互,微软早就在Windows系统里准备了NFS客户端,找到“打开或关闭Windows功能”,将相关工具开启即可使用。

Windows 7及后续版本都支持,不管是服务器版还是桌面版。

步骤如下:首先在远程树莓派上设置好NFS,我的设置和共享目录如图所示。

然后在本地Windows进控制面板,打开“Windows 功能”选项卡,选择相关组件。

功能开启成功后可以对 NFS 客户端进行设置,比如选择TCP协议还是UDP协议。一般我共享视频播放的时候,会选择UDP协议。具体怎么设置请自己考虑。

软挂载和硬挂载的区别:

对硬挂载文件系统来说,如果因为某种原因远程系统的响应失败,比如NFS服务端挂掉等,则NFS客户端将会持续地尝试建立连接,这样可能导致执行df等命令出现挂死的现象。

而对软挂载文件系统来说,同样情况下,在指定的时间间隔后NFS客户端将会放弃尝试建立连接而发送一个错误消息。

默认采用硬挂载文件系统,系统硬挂载尝试失败时,对用户输入的响应也会停止。正是因为这样,有的用户更喜欢采用软挂载,它会使系统在尝试挂载失败后停止尝试。

设置完成后,可以用以下命令进行挂载树莓派上的目录,映射到本地的X盘。

挂载成功后,你会看到Windows系统中多了一个X盘符,点进去会发现树莓派共享出来的目录。

下命从X盘拷贝一个视频到桌面看看,内网速度1.16MB/秒。还凑合。当然,你也可以往里面粘贴文件,读写均可,跟网上邻居一样好用。

本文来自“IoT前哨站”,转载请注明出处。

微软在苏格兰水域部署节能数据中心

微软近日透露,作为代号Project Natick的实验计划的一部分,微软已经在苏格兰水域部署、或者更准确地说是沉浸了一个独立的数据中心。

这个40英尺长如胶囊般的数据中心拥有864台服务器和27.6PB的存储空间。据微软称,数据中心内的硬件由专门的散热器冷却,这些散热器使用最初为潜艇开发的技术,从外部泵入冷海水。

微软将利用这个胶囊来评估在海底运营数据中心的经济可行性。理论上说,利用海底的低水温可以降低计算设备的冷却成本,而这部分成本这是传统陆地设施的最大开支之一。此外这种方法也可以减轻过程中电网的负担。

对用户来说,潜在的好处是可以更快地访问在线服务。将水下数据中心置于沿海地区附近,将有助于减少居住在海岸线120英里以内、全球一半以上人口的等待时间。

当然,实现这一愿景说起来容易但做起来难。部署一批这样的海底胶囊将是非常复杂的任务,至少从目前微软部署实施所需的工作量判断是这样的。

把这个数据中心沉入海底的旅程,是从法国一家组装工厂开始的。微软工程师在完成测试将其关闭,并利用一辆18轮卡车把它运往苏格兰。从那里,一艘装有起重机的驳船将其拖到海面进行部署。

微软在一篇博客文章中详细介绍说:“团队在这个过程中使用了10台绞车、1台起重机、1台龙门驳船、和1台伴随着数据中心的遥控车辆。一辆遥控车辆从海底取回一条包含光纤和电源线的电缆,并将其连接到经过检查并连接到数据中心的表面,然后数据中心通电运行。”

Project Natick项目的工程师将在未来12个月内监控该数据中心的性能和物理状态。微软人工智能和研究部门副总裁Peter Lee认为,微软在这个过程中学到的经验不仅可以帮助推动项目本身,还可以帮助基于陆地的数据中心。

“当你向月球发射的时候,你可能永远不会登上月球。如果你这么做了,很棒。但是除此之外,你会学到很多东西,沿途都会有意想不到的收获。我们正在研究磁盘故障、机架设计、冷却系统的机械工程,这些将反馈到我们正常的数据中心。”

用 Adafruit 和 树莓派 读取 DHT11 温湿度传感器

DHT11 温湿度传感器尽管不是使用效率最高的温湿度传感器,但价格便宜被广泛应用。之前我们介绍了用树莓派从 DHT11 温度湿度传感器读取数据的教程,其原理理解起来较为复杂,下面我们介绍另一种基于Adafruit DHT 库读取 DHT11 数据的方法。

DHT11 规格

DHT11 有四个引脚,但是其中一个没有被使用到。所有有的模块会简化成3个引脚。

湿度检测范围 : 20-80% (5% 精度)
温度检测范围 : 0-50°C (±2°C 精度)

该厂商不建议读取频率小于2秒,如果这么做数据可能会有误。

硬件连接

需要在电源和数据脚之间串联一个上拉电阻(4.7K-10K),通常情况下,购买DHT11模块的话都自带了这个电阻。不同的模块型号引脚位置略有不同,下面以图上模块为说明:

数据引脚可以根据你的需要自行修改。

Python 库

DHT11 的读取需要遵循特定的信号协议完成,为了方便我们使用Adafruit DHT 库。

软件安装

开始之前需要更新软件包:

sudo apt-get update
sudo apt-get install build-essential python-dev

从 GitHub 获取 Adafruit 库:

sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT

给 Python 2 和 Python 3 安装该库:

sudo python setup.py install
sudo python3 setup.py install

示例程序
Adafruit 提供了示例程序,运行下面的命令测试。

cd ~
cd Adafruit_Python_DHT
cd examples
python AdafruitDHT.py 11 17

这两个参数分别表示 DHT11 和数据引脚所接的树莓派 GPIO 编号。成功的话会输出:

Temp=22.0* Humidity=68.0%

如何在其他 Python 程序中使用这个库
参照下面的方法引入 Adafruit 库,然后就可以使用 “read_retry” 方法来读取 DHT11 的数据了:

import Adafruit_DHT

# Set sensor type : Options are DHT11,DHT22 or AM2302
sensor=Adafruit_DHT.DHT11

# Set GPIO sensor is connected to
gpio=17

# Use read_retry method. This will retry up to 15 times to
# get a sensor reading (waiting 2 seconds between each retry).
humidity, temperature = Adafruit_DHT.read_retry(sensor, gpio)

# Reading the DHT11 is very sensitive to timings and occasionally
# the Pi might fail to get a valid reading. So check if readings are valid.
if humidity is not None and temperature is not None:
    print(‘Temp={0:0.1f}*C Humidity={1:0.1f}%’.format(temperature, humidity))
else:
    print(‘Failed to get reading. Try again!’)

另外,温度传感器还有 DS18B20,这个传感器虽然没有湿度数据,但是其易用且稳定,有兴趣的朋友可以进一步了解。

来自:树莓派实验室

OpenCat:他用树莓派做了个猫

OpenCat是由中国机器人专家李荣仲创建的机器猫项目。他从头开始创造机器人猫,包括现实的动作和Alexa整合。

Evolution in this video:

李荣仲的起步来自于一些模型板材和Raspberry Pi初学者工具包,他说目前这些“仍然集成在猫身上”。你可以在这个视频中看到OpenCat的发展:

创客用Raspberry Pi来为OpenCat提供动力,并不是因为Pi是“小而便宜的计算机”。 而是因为“在Linux环境下易于访问硬件接口”。

OpenCat的一个早期迭代,使用建模棒来创建主体

OpenCat:用Raspberry Pi构建机器猫

荣仲研究了许多哺乳动物的步态,并相信“通过简单的幅度调整,改变相位持续时间和其他微小参数可以产生不同的步态”。OpenCat“不受(作为)猫的限制”。

他用一块Arduino的Slave扩展板来直接操作机器人,让Raspberry Pi负责更高级的功能,如Alexa整合。

目前,OpenCat使用Alexa“触发某些行为”,也会依靠自身视觉来行动。正如荣忠所说,语音助手“现在可以在机器宠物上运行,并以传统宠物般的方式与人交流。 [这]可能会鼓励更多的人在家里接受机器人技术。”

荣仲目前正在努力使OpenCat项目在财务上收支平衡 —— 无论这意味着卖OpenCat套件还是别的什么。

让我们保持关注。

5G的基本特点与关键技术

从1G到4G,移动通信的核心是人与人之间的通信,个人的通信是移动通信的核心业务。但是5G的通信不仅仅是人的通信,而是物联网、工业自动化、无人驾驶被引入,通信从人与人之间通信开始转向人与物的通信,直至机器与机器的通信。

第五代移动通信技术(5G)是目前移动通信技术发展的最高峰,也是人类希望不仅改变生活,更要改变社会的重要力量。

5G是在4G基础上,对于移动通信提出更高的要求,它不仅在速度而且还在功耗、时延等多个方面有了全新的提升。由此业务也会有巨大提升,互联网的发展也将从移动互联网进入智能互联网时代。

5G的三大场景

国际标准化组织3GPP定义了5G的三大场景。其中,eMBB指3D/超高清视频等大流量移动宽带业务,mMTC指大规模物联网业务,URLLC指如无人驾驶、工业自动化等需要低时延、高可靠连接的业务。

通过3GPP的三大场景定义我们可以看出,对于5G,世界通信业的普遍看法是它不仅应具备高速度,还应满足低时延这样更高的要求,尽管高速度依然是它的一个组成部分。从1G到4G,移动通信的核心是人与人之间的通信,个人的通信是移动通信的核心业务。但是5G的通信不仅仅是人的通信,而且是物联网、工业自动化、无人驾驶等业务被引入,通信从人与人之间通信,开始转向人与物的通信,直至机器与机器之间的通信。

5G的三大场景显然对通信提出了更高的要求,不仅要解决一直需要解决的速度问题,把更高的速率提供给用户;而且对功耗、时延等提出了更高的要求,一些方面已经完全超出了我们对传统通信的理解,把更多的应用能力整合到5G中。这就对通信技术提出了更高要求。在这三大场景下,5G具有6大基本特点。

5G的六大基本特点

高速度

相对于4G,5G要解决的第一个问题就是高速度。网络速度提升,用户体验与感受才会有较大提高,网络才能面对VR/超高清业务时不受限制,对网络速度要求很高的业务才能被广泛推广和使用。因此,5G第一个特点就定义了速度的提升。

其实和每一代通信技术一样,确切说5G的速度到底是多少是很难的,一方面峰值速度和用户的实际体验速度不一样,不同的技术不同的时期速率也会不同。对于5G的基站峰值要求不低于20Gb/s,当然这个速度是峰值速度,不是每一个用户的体验。随着新技术使用,这个速度还有提升的空间。

这样一个速度,意味着用户可以每秒钟下载一部高清电影,也可能支持VR视频。这样的高速度给未来对速度有很高要求的业务提供了机会和可能。

泛在网

随着业务的发展,网络业务需要无所不包,广泛存在。只有这样才能支持更加丰富的业务,才能在复杂的场景上使用。泛在网有两个层面的含义。一是广泛覆盖,一是纵深覆盖。

广泛是指我们社会生活的各个地方,需要广覆盖,以前高山峡谷就不一定需要网络覆盖,因为生活的人很少,但是如果能覆盖5G,可以大量部署传感器,进行环境、空气质量甚至地貌变化、地震的监测,这就非常有价值。5G可以为更多这类应用提供网络。

纵深是指我们生活中,虽然已经有网络部署,但是需要进入更高品质的深度覆盖。我们今天家中已经有了4G网络,但是家中的卫生间可能网络质量不是太好,地下停车库基本没信号,现在是可以接受的状态。5G的到来,可把以前网络品质不好的卫生间、地下停车库等都用很好的5G网络广泛覆盖。

一定程度上,泛在网比高速度还重要,只是建一个少数地方覆盖、速度很高的网络,并不能保证5G的服务与体验,而泛在网才是5G体验的一个根本保证。在3GPP的三大场景没有讲泛在网,但是泛在的要求是隐含在所有场景中的。

低功耗

5G要支持大规模物联网应用,就必须要有功耗的要求。这些年,可穿戴产品有一定发展,但是遇到很多瓶颈,最大的瓶颈是体验较差。以智能手表为例,每天充电,甚至不到一天就需要充电。所有物联网产品都需要通信与能源,虽然今天通信可以通过多种手段实现,但是能源的供应只能靠电池。通信过程若消耗大量的能量,就很难让物联网产品被用户广泛接受。

如果能把功耗降下来,让大部分物联网产品一周充一次电,甚或一个月充一次电,就能大大改善用户体验,促进物联网产品的快速普及。eMTC基于LTE协议演进而来,为了更加适合物与物之间的通信,也为了更低的成本,对LTE协议进行了裁剪和优化。eMTC基于蜂窝网络进行部署,其用户设备通过支持1.4MHz的射频和基带带宽,可以直接接入现有的LTE网络。eMTC支持上下行最大1Mbps的峰值速率。而NB-IoT构建于蜂窝网络,只消耗大约180kHz的带宽,可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。

NB-IoT其实基于GSM网络和UMTS网络就可以进行部署,它不需要和5G的核心技术那样需重新建设网络,但是,虽然它部署在GSM和UMTS的网络上,还是一个重新建设的网络,而它的能力是大大降低功耗,也是为了满足5G对于低功耗物联网应用场景的需要,和eMTC一样,是5G网络体系的一个组成部分。

低时延

5G的一个新场景是无人驾驶、工业自动化的高可靠连接。人与人之间进行信息交流,140毫秒的时延是可以接受的,但是如果这个时延用于无人驾驶、工业自动化就无法接受。5G对于时延的最低要求是1毫秒,甚至更低。这就对网络提出严酷的要求。而5G是这些新领域应用的必然要求。

无人驾驶汽车,需要中央控制中心和汽车进行互联,车与车之间也应进行互联,在高速度行动中,一个制动,需要瞬间把信息送到车上做出反应,100毫秒左右的时间,车就会冲出几十米,这就需要在最短的时延中,把信息送到车上,进行制动与车控反应。

无人驾驶飞机更是如此。如数百架无人驾驶编队飞行,极小的偏差就会导致碰撞和事故,这就需要在极小的时延中,把信息传递给飞行中的无人驾驶飞机。工业自动化过程中,一个机械臂的操作,如果要做到极精细化,保证工作的高品质与精准性,也是需要极小的时延,最及时地做出反应。这些特征,在传统的人与人通信,甚至人与机器通信时,要求都不那么高,因为人的反应是较慢的,也不需要机器那么高的效率与精细化。而无论是无人驾驶飞机、无人驾驶汽车还是工业自动化,都是高速度运行,还需要在高速中保证及时信息传递和及时反应,这就对时延提出了极高要求。

要满足低时延的要求,需要在5G网络建构中找到各种办法,减少时延。边缘计算这样的技术也会被采用到5G的网络架构中。

万物互联

传统通信中,终端是非常有限的,固定电话时代,电话是以人群为定义的。而手机时代,终端数量有了巨大爆发,手机是按个人应用来定义的。到了5G时代,终端不是按人来定义,因为每人可能拥有数个,每个家庭可能拥有数个终端。

2018年,中国移动终端用户已经达到14亿,这其中以手机为主。而通信业对5G的愿景是每一平方公里,可以支撑100万个移动终端。未来接入到网络中的终端,不仅是我们今天的手机,还会有更多千奇百怪的产品。可以说,我们生活中每一个产品都有可能通过5G接入网络。我们的眼镜、手机、衣服、腰带、鞋子都有可能接入网络,成为智能产品。家中的门窗、门锁、空气净化器、新风机、加湿器、空调、冰箱、洗衣机都可能进入智能时代,也通过5G接入网络,我们的家庭成为智慧家庭。

而社会生活中大量以前不可能联网的设备也会进行联网工作,更加智能。汽车、井盖、电线杆、垃圾桶这些公共设施,以前管理起来非常难,也很难做到智能化。而5G可以让这些设备都成为智能设备。

重构安全

安全问题似乎并不是3GPP讨论的基本问题,但是它也应该成为5G的一个基本特点。

传统的互联网要解决的是信息速度、无障碍的传输,自由、开放、共享是互联网的基本精神,但是在5G基础上建立的是智能互联网。智能互联网不仅是要实现信息传输,还要建立起一个社会和生活的新机制与新体系。智能互联网的基本精神是安全、管理、高效、方便。安全是5G之后的智能互联网第一位的要求。假设5G建设起来却无法重新构建安全体系,那么会产生巨大的破坏力。

如果我们的无人驾驶系统很容易攻破,就会像电影上展现的那样,道路上汽车被黑客控制,智能健康系统被攻破,大量用户的健康信息被泄露,智慧家庭被攻破,家中安全根本无保障。这种情况不应该出现,出了问题也不是修修补补可以解决的。

在5G的网络构建中,在底层就应该解决安全问题,从网络建设之初,就应该加入安全机制,信息应该加密,网络并不应该是开放的,对于特殊的服务需要建立起专门的安全机制。网络不是完全中立、公平的。举一个简单的例子:网络保证上,普通用户上网,可能只有一套系统保证其网络畅通,用户可能会面临拥堵。但是智能交通体系,需要多套系统保证其安全运行,保证其网络品质,在网络出现拥堵时,必须保证智能交通体系的网络畅通。而这个体系也不是一般终端可以接入实现管理与控制的。

5G的关键技术

5G作为新一代的移动通信技术,它的网络结构、网络能力和要求都与过去有很大不同,有大量技术被整合在其中。其核心技术简述如下:

基于OFDM优化的波形和多址接入

5G采用基于OFDM化的波形和多址接入技术,因为OFDM技术被当今的 4G LTE 和 Wi-Fi 系统广泛采用,因其可扩展至大带宽应用,而具有高频谱效率和较低的数据复杂性,能够很好地满足 5G 要求。OFDM 技术家族可实现多种增强功能,例如通过加窗或滤波增强频率本地化、在不同用户与服务间提高多路传输效率,以及创建单载波OFDM波形,实现高能效上行链路传输。

实现可扩展的OFDM间隔参数配置

通过OFDM子载波之间的15kHz间隔(固定的OFDM参数配置),LTE最高可支持20 MHz的载波带宽。为了支持更丰富的频谱类型/带(为了连接尽可能丰富的设备,5G将利用所有能利用的频谱,如毫米微波、非授权频段)和部署方式。5G NR将引入可扩展的OFDM间隔参数配置。这一点至关重要,因为当FFT(Fast Fourier Transform,快速傅里叶变换)为更大带宽扩展尺寸时,必须保证不会增加处理的复杂性。而为了支持多种部署模式的不同信道宽度,5G NR必须适应同一部署下不同的参数配置,在统一的框架下提高多路传输效率。另外,5G NR也能跨参数实现载波聚合,比如聚合毫米波和6GHz以下频段的载波。

OFDM加窗提高多路传输效率

5G将被应用于大规模物联网,这意味着会有数十亿设备在相互连接,5G势必要提高多路传输的效率,以应对大规模物联网的挑战。为了相邻频带不相互干扰,频带内和频带外信号辐射必须尽可能小。OFDM能实现波形后处理(post-processing),如时域加窗或频域滤波,来提升频率局域化。

灵活的框架设计

设计5G NR的同时,采用灵活的5G网络架构,进一步提高5G服务多路传输的效率。这种灵活性既体现在频域,更体现在时域上,5G NR的框架能充分满足5G的不同服务和应用场景。这包括可扩展的时间间隔(STTI,Scalable Transmission Time Interval ),自包含集成子帧(Self-contained integrated subframe)。

先进的新型无线技术

5G演进的同时,LTE本身也还在不断进化(比如最近实现的千兆级4G+),5G不可避免地要利用目前用在4G LTE上的先进技术,如载波聚合、MIMO、非共享频谱等。这包括众多成熟的通信技术:

大规模MIMO:从2×2提高到了目前4×4 MIMO。更多的天线也意味着占用更多的空间,要在空间有限的设备中容纳进更多天线显然不现实,只能在基站端叠加更多MIMO。从目前的理论来看,5G NR 可以在基站端使用最多256根天线,而通过天线的二维排布,可以实现3D波束成型,从而提高信道容量和覆盖。

毫米波:全新5G技术正首次将频率大于24GHz以上频段(通常称为毫米波)应用于移动宽带通信。大量可用的高频段频谱可提供极致数据传输速度和容量,这将重塑移动体验。但毫米波的利用并非易事,使用毫米波频段传输更容易造成路径受阻与损耗(信号衍射能力有限)。通常情况下,毫米波频段传输的信号甚至无法穿透墙体,此外,它还面临着波形和能量消耗等问题。

频谱共享:用共享频谱和非授权频谱,可将5G扩展到多个维度,实现更大容量、使用更多频谱、支持新的部署场景。这不仅将使拥有授权频谱的移动运营商受益,而且会为没有授权频谱的厂商创造机会,如有线运营商、企业和物联网垂直行业,使他们能够充分利用5G NR技术。5G NR原生地支持所有频谱类型,并通过前向兼容灵活地利用全新的频谱共享模式。

先进的信道编码设计:目前LTE网络的编码还不足以应对未来的数据传输需求,因此迫切需要一种更高效的信道编码设计,以提高数据传输速率,并利用更大的编码信息块契合移动宽带流量配置,同时,还要继续提高现有信道编码技术(如LTE Turbo)的性能极限。 LDPC的传输效率远超LTE Turbo,且易平行化的解码设计,能以低复杂度和低时延,扩展达到更高的传输速率。

超密集异构网络

5G网络是一个超复杂的网络,在2G时代,几万个基站就可以做全国的网络覆盖,但是到了4G中国的网络超过500万个。而5G需要做到每平方公里支持100万个设备,这个网络必须非常密集,需要大量的小基站来进行支撑。同样一个网络中,不同的终端需要不同的速率、功耗,也会使用不同的频率,对于QoS的要求也不同。这样的情况下,网络很容易造成相互之间的干扰。5G网络需要采用一系列措施来保障系统性能:不同业务在网络中的实现、各种节点间的协调方案、网络的选择以及节能配置方法等。

在超密集网络中,密集地部署使得小区边界数量剧增,小区形状也不规则,用户可能会频繁复杂地切换。为了满足移动性需求,这就需要新的切换算法。

总之,一个复杂的、密集的、异构的、大容量的、多用户的网络,需要平衡、保持稳定、减少干扰,这需要不断完善算法来解决这些问题。

网络的自组织

自组织的网络是5G的重要技术,这就是网络部署阶段的自规划和自配置;网络维护阶段的自优化和自愈合。自配置即新增网络节点的配置可实现即插即用,具有低成本、安装简易等优点。自规划的目的是动态进行网络规划并执行,同时满足系统的容量扩展、业务监测或优化结果等方面的需求。自愈合指系统能自动检测问题、定位问题和排除故障,大大减少维护成本并避免对网络质量和用户体验的影响。

SON技术应用于移动通信网络时,其优势体现在网络效率和维护方面,同时减少了运营商的支出和运营成本投入。由于现有的 SON 技术都是从各自网络的角度出发, 自部署、自配置、自优化和自愈合等操作具有独立性和封闭性,在多网络之间缺乏协作。

网络切片

就是把运营商的物理网络切分成多个虚拟网络,每个网络适应不同的服务需求,这可以通过时延、带宽、安全性、可靠性来划分不同的网络,以适应不同的场景。通过网络切片技术在一个独立的物理网络上切分出多个逻辑网络,从而避免了为每一个服务建设一个专用的物理网络,这样可以大大节省部署的成本。

在同一个5G网络上,通过技术电信运营商会把网络切片为智能交通、无人机、智慧医疗、智能家居以及工业控制等多个不同的网络,将其开放给不同的运营者,这样一个切片的网络在带宽、可靠性能力上也有不同的保证,计费体系、管理体系也不同。在切片的网络中,各个业务提供商,不是如4G一样,都使用一样的网络、一样的服务。很多能力变得不可控。5G切片网络,可以向用户提供不一样的网络、不同的管理、不同的服务、不同的计费,让业务提供者更好地使用5G网络。

内容分发网络

在5G网络中,会存在大量复杂业务,尤其是一些音频、视频业务大量出现,某些业务会出现瞬时爆炸性的增长,这会影响用户的体验与感受。这就需要对网络进行改造,让网络适应内容爆发性增长的需要。

内容分发网络是在传统网络中添加新的层次,即智能虚拟网络。CDN 系统综合考虑各节点连接状态、负载情况以及用户距离等信息,通过将相关内容分发至靠近用户的CDN代理服务器上、实现用户就近获取所需的信息,使得网络拥塞状况得以缓解,缩短响应时间,提高响应速度。

源服务器只需要将内容发给各个代理服务器,便于用户从就近的带宽充足的代理服务器上获取内容,降低网络时延并提高用户体验。CDN技术的优势正是为用户快速地提供信息服务,同时有助于解决网络拥塞问题。CDN技术成为5G必备的关键技术之一 。

设备到设备通信

这是一种基于蜂窝系统的近距离数据直接传输技术。设备到设备通信(D2D)会话的数据直接在终端之间进行传输,不需要通过基站转发,而相关的控制信令,如会话的建立、维持、无线资源分配以及计费、 鉴权、识别、移动性管理等仍由蜂窝网络负责。蜂窝网络引入D2D通信,可以减轻基站负担,降低端到端的传输时延,提升频谱效率,降低终端发射功率。当无线通信基础设施损坏,或者在无线网络的覆盖盲区,终端可借助D2D实现端到端通信甚至接入蜂窝网络。在 5G 网络中,既可以在授权频段部署D2D通信,也可在非授权频段部署。

边缘计算

在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。5G要实现低时延,如果数据都是要到云端和服务器中进行计算机和存储,再把指令发给终端,就无法实现低时延。边缘计算是要在基站上即建立计算和存储能力,在最短时间完成计算,发出指令。

软件定义网络和网络虚拟化

SDN架构的核心特点是开放性、灵活性和可编程性。它主要分为三层:基础设施层位于网络最底层,包括大量基础网络设备,该层根据控制层下发的规则处理和转发数据;中间层为控制层,该层主要负责对数据转发面的资源进行编排,控制网络拓扑、收集全局状态信息等;最上层为应用层,该层包括大量的应用服务,通过开放的北向API对网络资源进行调用。NFV作为一种新型的网络架构与构建技术, 其倡导的控制与数据分离、软件化、虚拟化思想,为突破现有网络的困境带来了希望。

5G是一个复杂的体系,在5G基础上建立的网络,不仅要提升网络速度,同时还提出了更多的要求。未来5G网络中的终端也不仅是手机,而是有汽车、无人驾驶飞机、家电、公共服务设备等多种设备。4G改变生活,5G改变社会。5G将会是社会进步、产业推动、经济发展的重要推进器。

(来源:工信头条 作者:项立刚)