24小时故障咨询电话点击右边热线,客服在线解答故障号码:400-889-3660
carrier空调ec故障处理(carrier空调显示ec)-分类信息网

carrier空调ec故障处理(carrier空调显示ec)-分类信息网

更新: 生活服务•发布:2024-06-12•浏览次数:

本文目录一览

1.关于Linux性能调优中网络I/O的一些笔记

写在前面

  • 和小伙伴分享一些Linux网络优化的笔记,内容很浅,可以用作入门
  • 博文内容结合《Linux性能优化》读书笔记整理
  • 涉及内容包括 常用的优化工具(mii-tool,ethtool,ifconfig,ip,sar,iptraf,netstat)使用Demo及对应的输出解释具体的调优策略步骤
  • 食用方式: 需要了解Linux基础,网络分层相关知识没有完整的调优Demo,只是提供的一些方向。关于调优工具,你可以学习到确定系统内以太网设备的带宽和双工设置(mii-tool、ethtool)。确定流经每个以太网接口的网络流量(ifconfig、sar、iptraf、netstat)。确定流入和流出系统的IP流量的类型(iptraf、netstat)。确定流入和流出系统的每种类型的IP流量(iptraf)。确定是哪个应用程序产生了IP流量(netstat -p)。
  • 理解不足小伙伴帮忙指正

「 理性的人寻求的不是快乐,而是没有痛苦。--------叔本华」


学习网络调优工具之前,简单温习一下网络I/O相关的知识

涉及名词解释

带宽(传输速率):数据传输的过程中,两个设备之间数据流动的物理速度称为传输速率,单位为bps(Bits Per Second,每秒比特数),传输速率不是指单位数据流动的速度,而是指单位时间内传输的数据量有多少。传输速率有被称之为带宽(Bandwidth),带宽越大网络传输能力就越强。

吞吐量:主机之间的实际的传输速率被称为吞吐量,单位与带宽相同,吞吐量还衡量CPU处理能力,网络的拥堵程度,报文中数据字段的占有份额。

网卡:网络接口卡,也称网络适配器,网卡,LAN卡。联网时必须使用。

路由器:在OSI模型的第3层-网络层面上连接两个网络(路由寻址,类似送快递)、并对分组报文进行转发的设备。涉及路由控制表(静态路由,动态路由OSPF,默认路由)

交换机:在OSI模型的第2层-数据链路层上连接局域网的主要设备,交换机能够根据以太网帧中目标地址智能的转发数据,涉及地址转发表(通过MAC地址学习记录实际的MAC地址本身)

包,数据帧,数据报,段,消息:包为全能性术语,帧表示数据链路层中包的单位,而数据报是IP和UDP 等网络层以上的分层中包的单位,段则表示TCP数据中流的信息,消息是指应用协议中数据的单位。

网络I/O介绍

Linux和其他主流操作系统中的网络流量被抽象(协议分层与OSI参考模型)为一系列的硬件和软件层次。在每个分层上,发送端添加首部包装信息,经过路由器,接受端分离首部恢复数据。当然路由器的传递也涉及网络层和链路层的首部分离和添加。简单回顾下



在OSI分层中,链路层包含网络硬件,如以太网设备。在传送网路流量时,这一层并不区分流量类型,而仅仅以尽可能快的速度发送和接收数据包(或帧)。

链路层的上面是网络层。使用互联网协议(IP)和网际控制报文协议(ICMP)在机器间寻址并路由数据包。IP/ICMP尽其最大努力尝试在机器之间传递数据包,但是它们不能保证数据包是否能真正达到其目的地。

网络层的上面是传输层,它定义了传输控制协议(TCP)和用户数据报协议(UDP)。

  • TCP是一个可靠协议,它可以保证消息通过网络送达,如果消息无法送达它就会产生一个错误。
  • TCP的同级协议UDP,则是一个不可靠协议,它无法保证信息能够送达(为了获得最高的数据传输速率)。

UDP和TCP为IP增加了服务的概念。UDP和TCP接收有编号端口的消息。按照惯例,每个类型的网络服务都被分配了不同的编号即端口。

  • 超文本传输协议(HTTP)通常为端口80
  • 安全外壳(SSH)通常为端口22
  • 文件传输协议(FTP)通常为端口23。
┌──[root@vms81.liruilongs.github.io]-[~]
└─$cat  /etc/services | grep -E "^http\\s|^ssh\\s|^ftp\\s" | sort
ftp             21/sctp                 # FTP
ftp             21/tcp
ftp             21/udp          fsp fspd
http            80/sctp                         # HyperText Transfer Protocol
http            80/tcp          www www-http    # WorldWideWeb HTTP
http            80/udp          www www-http    # HyperText Transfer Protocol
ssh             22/sctp                 # SSH
ssh             22/tcp                          # The Secure Shell (SSH) Protocol
ssh             22/udp                          # The Secure Shell (SSH) Protocol
┌──[root@vms81.liruilongs.github.io]-[~]
└─$

在Linux系统中,文件/etc/services定义了全部的端口以及它们提供的服务类型。

传输层层上面为应用层。这一层包含了各种应用程序,它们使用下面各层在网络上传输数据包。

Linux内核实现或控制的是最低三层(链路层、网络层和传输层)。内核可以提供每层的性能统计信息,包括数据流经每一层时的带宽使用情况信息和错误计数信息。

链路层的网络流量

Linux可以侦测到流经链路层的数据流量的速率。

链路层,通常是以太网,以帧序列的形式将信息发送到网络上。不管应用层的交互方式是什么,链路层也会将它们分割为帧,再发送到网络上。数据帧的最大尺寸被称为最大传输单位(MTU)。可以使用网络配置工具,如ip或ifconfig来设置MTU。

k8s集群机器所有有好多Calico虚拟网卡

┌──[root@vms81.liruilongs.github.io]-[~]
└─$ifconfig | grep mtu
cali12cf25006b5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1480
cali13a4549bf1e: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1480
cali45e02b0b21e: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1480
cali5a282a7bbb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1480
cali86e7ca9e9c2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1480
calicb34164ec79: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1480
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
tunl0: flags=193<UP,RUNNING,NOARP>  mtu 1480
┌──[root@vms81.liruilongs.github.io]-[~]
└─$

就以太网而言,最大大小一般为1500字节,虽然有些硬件支持的巨型帧可以高达9000字节。MTU的大小对网络效率有直接影响。

链路层上的每一个帧都有一个小容量的头部,因此,使用大尺寸的MTU就提高了用户数据对开销(头部)的比例。但是,使用大尺寸的MTU,每个数据帧被损坏或丢弃的几率会更高。

对单一物理链路来说,大尺寸MTU通常会带来更好的性能,因为它需要的开销更小;反之,对嘈杂的链路(链路聚合)来说,更小的MTU则通常会提升性能,因为,当单个帧被损坏时,它要重传的数据更少。

在物理层,帧流经物理网络,Linux内核可以收集大量有关帧数量和类型的不同统计数据:

  • 发送/接收:如果一个帧成功地流出或流入机器,那么它就会被计为一个已发送或已接收的帧。
  • 错误:有错误的帧(可能是因为网络电缆坏了,或双工不匹配)。
  • 丢弃:被丢弃帧的(很可能是因为内存或缓冲区容量小)。
  • 溢出:由于内核或网卡有过多的帧,因此被网络丢弃的帧。通常这种情况不应该发生。
  • 帧:由于物理级问题导致被丢弃的帧。其原因可能是循环冗余校验(CRC)错误或其他低级别的问题(这个分类有些搞不懂?)。
  • 多播: 这些帧不直接寻址到当前系统,而是同时广播到一组节点。
  • 压缩:一些底层接口,如点对点协议(PPP)或串行线路网际协议(SLIP)设备在把帧发送到网络上之前,会对其进行压缩。该值表示的就是被压缩帧的数量。

有些Linux网络性能工具能够显示通过每一个网络设备的每一种类型的帧数。这些工具通常需要设备名,因此,熟悉Linux如何对网络设备命名以便搞清楚哪个名字代表了哪个设备是很重要的。

以太网设备被命名为ethN,正常,eth0指的是第一个设备,ethl指的是第二个设备,以此类推。与以太网设备命名方式相同,PPP设备被命名为pppN。环回设备,用于与本机联网,被命名为lo。

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$ifconfig lo
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 10250705  bytes 2227288333 (2.0 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10250705  bytes 2227288333 (2.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

协议层(传输层)网络流量

对TCP或UDP流量而言,Linux使用套接字/端口来抽象两台机器的连接。当与远程机器连接时,本地应用程序用一个网络套接字来打开远程机器上的一个端口。

Linux网络性能工具可以跟踪流经特定网络端口的数据量。由于每个服务的端口号具有唯一性,因此有可能确定流向特定服务的物理流量。

网络性能工具

mii-tool(媒体无关接口工具)

mii-tool是以太网专用硬件工具,主要用于设置以太网设备,但它也可以提供有关当前设置的信息。诸如链接速度和双工设置,对于追踪性能不佳设备的成因是非常有用。

mii-tool已经过时了,推荐使用ethtool,一般也不会怎么使用,书里有讲,我们简单看下

┌──[root@vms81.liruilongs.github.io]-[~]
└─$man mii-tool  | grep obsolete
       This program is obsolete. For replacement check ethtool.
┌──[root@vms81.liruilongs.github.io]-[~]
└─$

我这里是CentOS 7虚机,所以网卡为eth32 系统上eth32的配置信息。

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$mii-tool -v ens32
ens32: negotiated 1000baseT-FD flow-control, link ok
  product info: Yukon 88E1011 rev 3
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

mi-tool提供了关于如何配置以太网设备物理层的底层信息。

ethtool

在配置和显示以太网设备统计数据方面,ethtool提供了与mii-tool相似的功能。不过,ethtool更加强大,包含了更多配置选项和设备统计信息。

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$ethtool  ens32
Settings for ens32:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: off (auto)
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

通过上面的配置我们可以看大,带宽为 Speed: 1000Mb/s 千兆,双工模式为 Duplex: Full 全双工 ,网卡是否连接网线:Link detected: yes

ifconfig(接口配置)

ifconfig的主要工作就是在Linux机器上安装和配置网络接口。它还提供了系统中所有网络设备的基本性能统计信息。ifconfig几乎在所有联网的Linux机器上都是可用的。

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$ifconfig  ens32
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.26.81  netmask 255.255.255.0  broadcast 192.168.26.255
        inet6 fe80::20c:29ff:fead:e393  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ad:e3:93  txqueuelen 1000  (Ethernet)
        RX packets 507331  bytes 69923393 (66.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 556567  bytes 308574743 (294.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

关于部分参数的说明

列 说明 RX packets 设备已接收的数据包数 TX packets 设备已发送的数据包数 errors 发送或接收时的错误数 dropped 发送或接收时丢弃的数据包数 overruns 网络设备没有足够的缓冲区来发送或接收一个数据包的次数 frame 底层以太网帧错误的数量 carrier 由于链路介质故障(如故障电缆)而丢弃的数据包数量

ifconfig提供的统计数据显示的是自系统启动开始的累计数值。如果你将一个网络设备下线,之后又让其上线,其统计数据也不会重置。如果你按规律的间隔来运行ifconfig,就可以发现各种统计数据的变化率。这一点可以通过watch命令或shell脚本来自动实现,

┌──[root@vms81.liruilongs.github.io]-[~]
└─$watch -d -n 1 ifconfig ens32

ip

一些网络工具,如ifconfig,正在被淘汰,取而代之的是新的命令:ip,ip不仅可以让你对Linux联网的多个不同方面进行配置,还可以显示每个网络设备的性能统计信息。

┌──[root@vms81.liruilongs.github.io]-[~]
└─$ip -s -s link ls ens32
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:ad:e3:93 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    127977457  756138   0       0       0       0
    RX errors: length   crc     frame   fifo    missed
               0        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    438259866  814226   0       0       0       0
    TX errors: aborted  fifo   window heartbeat transns
               0        0       0       0       8
┌──[root@vms81.liruilongs.github.io]-[~]
└─$

部分字段说明,RX代表接收,TX代表发送。

列 说明 bytes 发送或接收的字节数 packets 发送或接收的数据包数 errors 发送或接收时发生的错误数 dropped 由于网卡缺少资源,导致未发送或接收的数据包数 overruns 网络没有足够的缓冲区空间来发送或接收更多数据包的次数 mcast 已接收的多播数据包的数量 carrier 由于链路介质故障(如故障电缆)而丢弃的数据包数量 collsns 传送时设备发生的冲突次数。当多个设备试图同时使用网络时就会发生冲突

sar

sar提供了链路级的网络性能数据。但是,它同时还提供了一些关于传输层打开的套接字数量的基本信息。sar使用如下命令行来收集网络统计信息:

sar[-n DEV | EDEV | SOCK | FULL ] [DEVICE] [linterval][count]

选项 说明 -n DEV 显示每个设备发送和接收的数据包数和字节数信息 -n EDEV 显示每个设备的发送和接收错误信息 -n SoCK 显示使用套接字(TCP、UDP和RAW)的总数信息 -n FULL 显示所有的网络统计信息 interval 采样间隔时长 count 采样总数

「显示每个设备发送和接收的数据包数和字节数信息」

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$sar -n DEV 1 1
Linux 3.10.0-693.el7.x86_64 (vms81.liruilongs.github.io)        2022年05月14日  _x86_64_        (2 CPU)

22时46分16秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
22时46分17秒     ens32      1.00      1.00      0.11      0.09      0.00      0.00      0.00
22时46分17秒 cali86e7ca9e9c2      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时46分17秒 cali13a4549bf1e      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时46分17秒 cali5a282a7bbb0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时46分17秒 cali12cf25006b5      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时46分17秒 cali45e02b0b21e      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时46分17秒        lo    224.00    224.00     27.57     27.57      0.00      0.00      0.00
22时46分17秒 calicb34164ec79      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时46分17秒     tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时46分17秒   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:     ens32      1.00      1.00      0.11      0.09      0.00      0.00      0.00
平均时间: cali86e7ca9e9c2      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: cali13a4549bf1e      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: cali5a282a7bbb0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: cali12cf25006b5      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: cali45e02b0b21e      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:        lo    224.00    224.00     27.57     27.57      0.00      0.00      0.00
平均时间: calicb34164ec79      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$

列 说明 rxpck/s 数据包接收速率 txpck/s 数据包发送速率 rxkB/s kb接收速率 txkB/s kb发送速率 rxcmp/s 压缩包接收速率 txcmp/s 压缩包发送速率 rxmcst/s 多播包接收速率

「显示每个设备的发送和接收错误信息」

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$sar -n EDEV 1 1
Linux 3.10.0-693.el7.x86_64 (vms81.liruilongs.github.io)        2022年05月14日  _x86_64_        (2 CPU)

22时53分07秒     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
22时53分08秒     ens32      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时53分08秒 cali86e7ca9e9c2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时53分08秒 cali13a4549bf1e      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时53分08秒 cali5a282a7bbb0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时53分08秒 cali12cf25006b5      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时53分08秒 cali45e02b0b21e      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时53分08秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时53分08秒 calicb34164ec79      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时53分08秒     tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时53分08秒   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均时间:     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
平均时间:     ens32      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: cali86e7ca9e9c2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: cali13a4549bf1e      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: cali5a282a7bbb0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: cali12cf25006b5      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: cali45e02b0b21e      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间: calicb34164ec79      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     tunl0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$

列 说明 rxerr/s 接收错误率 txerr/s 发送错误率 co11/s 发送时的以太网冲突率 rxdrop/s 由于Linux内核缓冲区不足而导致的接收帧丢弃率 txdrop/s 由于Linux内核缓冲区不足而导致的发送帧丢弃率 txcarr/s 由于载波错误而导致的发送帧丢弃率 rxfram/s 由于帧对齐错误而导致的接收帧丢弃率 rxfifo/s 由于FIFO错误而导致的接收帧丢弃率 txfifo/s 由于FIFO错误而导致的发送帧丢弃率

「显示使用套接字(TCP、UDP和RAW)的总数信息」

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$sar -n SOCK 1 3
Linux 3.10.0-693.el7.x86_64 (vms81.liruilongs.github.io)        2022年05月14日  _x86_64_        (2 CPU)

22时56分23秒    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
22时56分24秒      3487       245         9         0         0       163
22时56分25秒      3487       245         9         0         0       165
22时56分26秒      3487       245         9         0         0       167
平均时间:      3487       245         9         0         0       165
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$

列 说明 totsck 当前正在被使用的套接字总数 tcpsck 当前正在被使用的TCP套接字总数 udpsck 当前正在被使用的UDP套接字总数 rawsck 当前正在被使用的RAW套接字总数 ip-frag IP分片的总数

iptraf

iptraf是一个实时网络监控工具。它提供了相当多的模式来监控网络接口和流量。iptraf是一种控制台应用程序,但其用户界面则是基于光标的一组菜单和窗口。

iptraf可以提供有关每个网络设备发送帧速率的信息。同时,它还能够显示TCP/IP数据包的类型和大小信息,以及·。

需要装包

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$yum -y install iptraf
................
Running transaction
  正在安装    : iptraf-ng-1.1.4-7.el7.x86_64                                                               1/1
  验证中      : iptraf-ng-1.1.4-7.el7.x86_64                                                               1/1

已安装:
  iptraf-ng.x86_64 0:1.1.4-7.el7

完毕!

iptraf用如下命令行调用:

iptraf[-d interface][-s interface][-t <minutes>]

如果调用iptraf时不带参数,就会显示一个菜单,让你选择监控界面以及想要监控的信息类型。这些选项用于观察特定接口或网络服务上的网络流量。

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$iptraf-ng

观察所有接口的网络流量信息

选项 说明 -d interface 接口的详细统计信息,包括:接收信息、发送信息以及错误率信息 -s interface 关于接口上哪些IP端口正在被使用,以及有多少字节流经它们的统计信息 -t iptraf退出前运行的分钟数

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$iptraf-ng -d ens32 -t 1

这条命令指定iptraf显示以太网设备ets32 的详细信息并在运行1分钟后退出。我们可以看到,当前网络设备接收速率为6.13kbps,发送速率为42.81kbps

iptraf显示每个UDP和TCP端口上的网络流量信息。通过端口我们可以看到每个端口对应的服务处理了多少流量,下图我们可以看到,有278kb的流量被22端口接收,有362kb的ssh数据从当前网卡发送出去

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$iptraf-ng -s ens32 -t 10

netstat

netstat是一种基本的网络性能工具,它几乎出现在每一个联网的Linux机器上(当然我们也可以使用ss命令),可以用它抽取的信息包括:

  • 当前正在使用的网络套接字的数量和类型,
  • 有关流入和流出当前系统的UDP和TCP数据包数量的特定接口统计数据。
  • 能将一个套接字回溯到其特定进程或PID,这在试图确定哪个应用程序要对网络流量负责时是很有用的。

netstat [-p][-c] [-interfaces=cname>][-s][-t][-u] I-w]

如果netstat 调用时不带任何参数,它将显示系统范围内的套接字使用情况以及Internet域和UNIX域套接字的信息。(UNIX域套接字用于本机的进程通信。)为了能检索所有其可以显示的统计信息,需要从根目录运行netstat。

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$netstat  | sed -n  '20,30p'
tcp        0      0 localhost:2379          localhost:51396         ESTABLISHED
tcp        0      0 localhost:2379          localhost:33432         ESTABLISHED
tcp        0      0 localhost:2379          localhost:33392         ESTABLISHED
tcp        0      0 localhost:35008         localhost:9099          TIME_WAIT
tcp        0      0 localhost:51154         localhost:2379          ESTABLISHED
tcp        0      0 localhost:51390         localhost:2379          ESTABLISHED
tcp        0      0 vms81.liruilongs.:53982 10.96.0.1:https         ESTABLISHED
tcp        0      0 localhost:51266         localhost:2379          ESTABLISHED
tcp        0      0 localhost:51482         localhost:2379          ESTABLISHED
tcp        0      0 localhost:2379          localhost:52920         ESTABLISHED
tcp        0      0 localhost:2379          localhost:traceroute    ESTABLISHED

选项 说明 -p 给出打开每个被显示套接字的PID/程序名 -c 每秒持续更新显示信息 --interfaces= 显示指定接口的网络统计信息 -statistics/ -s IP/UDP/ICMP/TCP统计信息 --tcp / -t 仅显示TCP套接字相关信息 --udp / -u 仅显示UDP套接字相关信息 -raw / -w 仅显示RAW套接字相关信息(IP和ICMP)

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$netstat -p  | sed -n  '20,30p'
tcp        0      0 localhost:2379          localhost:51396         ESTABLISHED 2025/etcd
tcp        0      0 localhost:2379          localhost:33432         ESTABLISHED 2025/etcd
tcp        0      0 localhost:2379          localhost:33392         ESTABLISHED 2025/etcd
tcp        0      0 localhost:35008         localhost:9099          TIME_WAIT   -
tcp        0      0 localhost:51154         localhost:2379          ESTABLISHED 14196/kube-apiserve
tcp        0      0 localhost:51390         localhost:2379          ESTABLISHED 14196/kube-apiserve
tcp        0      0 vms81.liruilongs.:53982 10.96.0.1:https         ESTABLISHED 108260/calico-node
tcp        0      0 localhost:51266         localhost:2379          ESTABLISHED 14196/kube-apiserve
tcp        0      0 localhost:51482         localhost:2379          ESTABLISHED 14196/kube-apiserve
tcp        0      0 localhost:2379          localhost:52920         ESTABLISHED 2025/etcd
tcp        0      0 localhost:2379          localhost:traceroute    ESTABLISHED 2025/etcd

然后我们看一个日常的运维脚本

function network() {
    #获取网卡流量信息,接收|发送的数据流量,单位为字节(bytes)
    net_monitor=$(cat /proc/net/dev | tail -n +3 | awk 'BEGIN{ print "网卡名称 入站数据流量(bytes) 出站数据流量(bytes)"} {print $1,$2,$10}' | column -t)
    #获取暴露端口信息
    ip_port=$(ss -ntulpa)

     #本地IP地址列表
    localip=$(ip a s | awk '/inet /{print $2}' )


    echo -e "\n\033[32m################## 网络 相关 ############\033[0m\n"
    echo -e "|本地IP地址列表:"
    echo -e "\033[31m$localip    \033[0m"
    echo -e "\033[32m------------------------------------\033[0m"
    echo -e "|获取网卡流量信息:"
    echo -e "\033[31m$net_monitor           \033[0m"
    echo -e "\033[32m------------------------------------\033[0m"
    echo -e "|获取暴露端口信息:"
    echo -e "\033[31m$ip_port           \033[0m"
    echo -e "\033[32m------------------------------------\033[0m"

}

输出截图

优化网络IO使用情况

当知道网络发生了问题时,Linux提供了一组工具来确定哪些应用程序涉及其中。但是,在与外部机器连接时,对网络问题的修复就不完全由你控制了。

网络设备发送/接收量接近理论极限了吗?

要做的第一件事就是用ethtool来确定每个Ethernet设备设置的硬件速度是多少。通过下面的配置文件我们可以看到,设置当前网卡带宽为1000Mb/s

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$ethtool ens32
Settings for ens32:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: off (auto)
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

如果有这些信息的记录,就可以调查是否有网络设备处于饱和状态。Ethernet设备和/或交换机容易被误配置,ethtool显示每个设备认为其应运行的速度。在确定了每个Ethernet设备的理论极限后,使用iptraf(甚至是ifconfig)来明确流经每个接口的流量。

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$ifconfig ens32
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.26.81  netmask 255.255.255.0  broadcast 192.168.26.255
        inet6 fe80::20c:29ff:fead:e393  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ad:e3:93  txqueuelen 1000  (Ethernet)
        RX packets 628172  bytes 109448643 (104.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 674109  bytes 362438519 (345.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

如果有任何网络设备表现出饱和,转到下面两个节点。我们可以看到当前网卡接收的数据量为104M,发送的数据量为345M。这里我们可以通过watch监听的方式看计算每秒的流量数据。

也可以使用iptraf来实现,下面的命令统计流量的进出速率

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$iptraf-ng -d ens32 -t 1

网络设备产生了大量错误吗?

网络流量减缓的原因也可能是大量的网络错误。用ifconfig来确定是否有接口产生了大量的错误。大量错误可能是不匹配的Ethernet卡/Ethernet交换机设置的结果。

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$ifconfig ens32 | grep err
        RX errors 0  dropped 0  overruns 0  frame 0
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$

设备上流量的类型是什么?

如果特定设备正在服务大量的数据,使用iptraf可以跟踪该设备发送和接收的流量类型。当知道了设备处理的流量类型后,转到下面的节点

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$iptraf-ng -s ens32 -t 10

特定进程要为流量负责吗?

接下来,我们想要确定是否有特定进程要为这个流量负责。使用netstat的 -p 选项来查看是否有进程在处理流经网络端口的类型流量。

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$netstat -p | grep 2379
tcp        0      0 localhost:33354         localhost:2379          ESTABLISHED 14196/kube-apiserve
tcp        0      0 localhost:33416         localhost:2379          ESTABLISHED 14196/kube-apiserve
tcp        0      0 localhost:51498         localhost:2379          ESTABLISHED 14196/kube-apiserve
tcp        0      0 localhost:53062         localhost:2379          ESTABLISHED 14196/kube-apiserve
tcp        0      0 localhost:2379          localhost:52520         ESTABLISHED 2025/etcd

如果有应用程序要对此负责,转到[流量是哪个远程系统发送的]节点。如果没有这样的程序,则转到[哪个应用程序套接字要为流量负责]。

流量是哪个远程系统发送的?

如果没有应用程序应对这个流量负责,那么就可能是网络上的某些系统用无用的流量攻击了你的系统。要确定是哪些系统发送了这些流量,要使用iptraf或etherape。

如果可能的话,请与系统所有者联系,并尝试找出发生这种情况的原因。如果所有者无法联系上,可以在Linux内核中设置ipfilters,永久丢弃这个特定的流量,或者是在远程机与本地机之间建立防火墙来拦截该流量。

哪个应用程序套接字要为流量负责?

确定使用了哪个套接字要分两步。这部分完全看不懂,先记录下,

  • 第一步,用strace -e trace=file跟踪应用程序所有的I/0系统调用。这能显示进程是从哪些文件描述符进行读写的。
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$yum -y install strace

跟踪执行kubectl get nodes涉及到的文件读写

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$kubectl get nodes
NAME                         STATUS     ROLES                  AGE    VERSION
vms81.liruilongs.github.io   Ready      control-plane,master   153d   v1.22.2
vms82.liruilongs.github.io   Ready      <none>                 153d   v1.22.2
vms83.liruilongs.github.io   NotReady   <none>                 153d   v1.22.2
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$strace -e trace=file  kubectl get nodes
execve("/usr/bin/kubectl", ["kubectl", "get", "nodes"], 0x7ffc888b4e40 /* 22 vars */) = 0
openat(AT_FDCWD, "/sys/kernel/mm/transparent_hugepage/hpage_pmd_size", O_RDONLY) = -1 ENOENT (没有那个文件或目 录)
readlinkat(AT_FDCWD, "/proc/self/exe", "/usr/bin/kubectl", 128) = 16
openat(AT_FDCWD, "/usr/bin/kubectl", O_RDONLY|O_CLOEXEC) = 6
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
--- SIGURG {si_signo=SIGURG, si_code=SI_TKILL, si_pid=22013, si_uid=0} ---
openat(AT_FDCWD, "/root/.kube/cache/discovery/192.168.26.81_6443/policy/v1beta1/serverresources.json", O_RDONLY|O_CLOEXEC) = 6
..........
  • 第二步,通过查看proc文件系统,将这些文件描述符映射回套接字。/proc/<pid>/fd/中的文件是从文件描述符到实际文件或套接字的符号链接。该目录下的1s-1a会显示特定进程全部的文件描述符。名字中带有socket的是网络套接字。之后就可以利用这些信息来确定程序中的哪个套接字产生了这些通信。
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$ps -elF | grep etcd
4 S root       2025   2004  2  80   0 - 2803899 futex_ 96656 1 5月14 ?       00:33:14 etcd --advertise-client-urls=https://192.168.26.81:2379 --cert-file=/etc/kubernetes/pki/etcd/server.crt --client-cert-auth=true --data-dir=/var/lib/etcd --initial-advertise-peer-urls=https://192.168.26.81:2380 --initial-cluster=vms81.liruilongs.github.io=https://192.168.26.81:2380 --key-file=/etc/kubernetes/pki/etcd/server.key --listen-client-urls=https://127.0.0.1:2379,https://192.168.26.81:2379 --listen-metrics-urls=http://127.0.0.1:2381 --listen-peer-urls=https://192.168.26.81:2380 --name=vms81.liruilongs.github.io --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt --peer-client-cert-auth=true --peer-key-file=/etc/kubernetes/pki/etcd/peer.key --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt --snapshot-count=10000 --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
4 S root      14196  14020 10  80   0 - 311578 futex_ 445044 0 5月14 ?       01:54:30 kube-apiserver --advertise-address=192.168.26.81 --allow-privileged=true --token-auth-file=/etc/kubernetes/pki/liruilong.csv --authorization-mode=Node,RBAC --client-ca-file=/etc/kubernetes/pki/ca.crt --enable-admission-plugins=NodeRestriction --enable-bootstrap-token-auth=true --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key --etcd-servers=https://127.0.0.1:2379 --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key --requestheader-allowed-names=front-proxy-client --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-group-headers=X-Remote-Group --requestheader-username-headers=X-Remote-User --secure-port=6443 --service-account-issuer=https://kubernetes.default.svc.cluster.local --service-account-key-file=/etc/kubernetes/pki/sa.pub --service-account-signing-key-file=/etc/kubernetes/pki/sa.key --service-cluster-ip-range=10.96.0.0/12 --tls-cert-file=/etc/kubernetes/pki/apiserver.crt --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
0 S root      24735  24319  0  80   0 - 28170 pipe_w   980   0 02:08 pts/1    00:00:00 grep --color=auto etcd
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$cd  /proc/2025/fd/
┌──[root@vms81.liruilongs.github.io]-[/proc/2025/fd]
└─$ls
0    102  109  116  121  126  131  136  18  22  27  31  36  40  45  5   54  59  64  71  78  83  9   95
1    103  11   117  122  127  132  14   19  23  28  32  37  41  46  50  55  6   65  73  79  84  90  97
.......

最后的手段

当你看到这里的时候,你的问题可能得到也可能没有得到解决,但是,你会获取大量描述它的信息。在搜索引擎上看看他们是如何解决问题的。尝试一个解决方案,并观察系统或应用程序的行为是否发生了变化。每次尝试新方案时,请转到流程最开始重新开始系统诊断,因为,每一个修复都可能会让应用程序的行为发生变化。


如果涉及到网络配置,也可用个通过NetworkManager服务来配置网络相关的管理,网卡方面,可以通过nmcli dev status命令用来查看所有网络设备的当前状态。这部分感兴趣小伙伴可以看看我之前的博文

┌──[root@liruilongs.github.io]-[~]
└─$nmcli dev status
DEVICE      TYPE      STATE      CONNECTION
privbr0     bridge    connected  privbr0
virbr0      bridge    connected  virbr0
eth0        ethernet  connected  eth0
vnet0       tun       connected  vnet0
vnet1       tun       connected  vnet1
lo          loopback  unmanaged  --
virbr0-nic  tun       unmanaged  --

通过show命令 nmcli device show eth0可以查看网卡详细信息

┌──[root@servera.lab.example.com]-[~]
└─$nmcli device show eth0
GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         52:54:00:00:FA:0A
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     Wired connection 1
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         172.25.250.10/24
IP4.GATEWAY:                            172.25.250.254
IP4.ROUTE[1]:                           dst = 172.25.250.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 172.25.250.254, mt = 100
IP4.DNS[1]:                             172.25.250.254
IP6.ADDRESS[1]:                         fe80::984:87d2:dba7:1007/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
┌──[root@servera.lab.example.com]-[~]
└─$

相关的命令

┌──[root@servera.lab.example.com]-[~]
└─$nmcli device
connect     disconnect  lldp        monitor     set         status
delete      help        modify      reapply     show        wifi

man 帮助文档

DEVICE MANAGEMENT COMMANDS
       nmcli device {status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi
                    | lldp} [ARGUMENTS...]

       Show and manage network interfaces.

       status
           Print status of devices.

           This is the default action if no command is specified to nmcli device.

       show [ifname]
           Show detailed information about devices. Without an argument, all devices are examined. To get
           information for a specific device, the interface name has to be provided.

       set [ifname] ifname [autoconnect {yes | no}] [managed {yes | no}]
           Set device properties.

       connect ifname
           Connect the device. NetworkManager will try to find a suitable connection that will be activated.
           It will also consider connections that are not set to auto connect.

           If no compatible connection exists, a new profile with default settings will be created and
           activated. This differentiates nmcli connection up ifname "$DEVICE" from nmcli device connect
           "$DEVICE"

           If --wait option is not specified, the default timeout will be 90 seconds.

       reapply ifname
           Attempt to update device with changes to the currently active connection made since it was last
           applied.

       modify ifname {option value | [+|-]setting.property value}...
           Modify the settings currently active on the device.

           This command lets you do temporary changes to a configuration active on a particular device. The
           changes are not preserved in the connection profile.

           See nm-settings(5) for the list of available properties. Please note that some properties can t
           be changed on an already connected device.

           You can also use the aliases described in PROPERTY ALIASES section. The syntax is the same as of
           the nmcli connection modify command.

       disconnect ifname...
           Disconnect a device and prevent the device from automatically activating further connections
           without user/manual intervention. Note that disconnecting software devices may mean that the
           devices will disappear.

           If --wait option is not specified, the default timeout will be 10 seconds.

       delete ifname...
           Delete a device. The command removes the interface from the system. Note that this only works for
           software devices like bonds, bridges, teams, etc. Hardware devices (like Ethernet) cannot be

2.氢能—未来储能的新方式

#01

为什么发展氢能储能?

10月31日,《联合国气候变化框架公约》第26次缔约方大会(COP26)在英国道格拉斯举行。这次会议的目标是在COP21上通过的《巴黎协定》要求的“将全球气温升幅控制在较工业革命前升高2摄氏度以内,最好不超过1.5摄氏度”的目标基础上,要求各国为碳中和达成具体而深入的协定。未来煤炭是否尽快退出使用是这次气候大会的争论焦点之一。煤炭作为全球用量最大的化石能源之一,已经深入人类生产和生活的各个领域。煤炭不仅在发电领域应用广泛,在工业领域也起到了关键作用(如图1所示)。但电力部门的脱碳可通过风能、光能等可再生能源实现,工业部门的深度脱碳却存在困难。

图1.中国煤炭行业下游需求占比,2018 年

数据来源:中国煤炭协会

从工业部门的深度减碳角度来讲,氢能作为可替代能源之一,受到国际社会和科学界的广泛关注。氢的热值高(120.0MJ/kg),是同质量焦炭、汽油等化石燃料热值的2–4倍。氢气还具有很强的还原性,既可以和氧气通过燃烧产生热能,也可以通过燃料电池转化成电能。最重要的是,氢能在上述转化中并不产生温室气体。因此,氢能除用于发电外,还能够在炼钢、化工、水泥等工业部门中起到广泛应用,并且能够作为燃料实现交通部门的深度减排(如图2所示)。

图2.未来氢能应用前景

除了氢能之外,其他可再生能源,例如太阳能、风能、水能和地热能等是实现能源结构低碳转型的必然选择。但目前这些可再生能源除水能外,仍然存在很多问题,例如时空分布不均,并网能力差等,造成很大的能源浪费。为了提高可再生能源的并网能力,减少弃风弃光现象,同时为了调节电网输配,合适的储能技术的发展显得尤为重要。传统的储能方式难以便捷地实现能量长时间的储存,而氢能作为一种新能源,其储能方式能量密度高,储能规模大,能量容量成本较小,可作为长时间储能或季节性储能的最优方案,从而有效提高能量利用率。

图3. 我国氢能资源分布

#02

氢能储运技术比较

2.1

氢能储能技术

“用氢地区不产氢,氢气储运成本居高不下,氢气储运正是当前制约我国氢能发展卡脖子的地方。”中科院大连化学物理研究所张家港产业技术研究院院长韩涤非告诉《中国能源报》记者。在氢能生产利用的产业链的上游,制氢、加氢端相对成熟,而储存、运输环节(简称“储运”)已成为氢能价格居高不下的主要制约因素。

氢能储存(氢气储能)本质是储氢,即将易燃、易爆的氢气以稳定形式储存。在确保安全前提下,提高储氢容量(效率)、降低成本、提高易取用性是储氢技术的发展重点。储氢技术可分为物理储氢和化学储氢两大类。物理储氢主要有高压气态储氢、低温液态储氢、活性炭吸附储氢、碳纤维和碳纳米管储氢以及地下储氢等;化学储氢主要有金属氢化物储氢、液态有机氢载体储氢、无机物储氢、液氨储氢等。

2.1.1 物理储氢


2.1.1.1高压气态储氢


氢气在生产及应用环节都离不开压缩技术。高压氢气压缩机是将氢气加压注入储氢系统的核心装置,输出压力和气体封闭性是其重要的性能指标。

图4. 氢气压缩机

高压气体储氢的质量储氢密度范围是4.0~5.7wt%,当前高压气态储氢技术比较成熟,是目前最常用的储氢技术。该技术是采用高压将氢气压缩到一个耐高压的容器里。金属高压储氢容器由对氢气有一定抗氢脆能力的金属或者通过复合材料构成,最常用的材质是奥式不锈钢。铜和铝由于在常温附近对氢免疫,不会造成氢脆,也常被选作高压储氢罐的材料。

图5. 全复合材料高压储氢容器

高压气体储氢的成本相对较低,压缩过程耗能低,释放简单快速,是目前技术最为成熟的储氢技术,但是存在体积储氢密度极低的重大缺陷。此外高压气态储氢存在泄漏、爆炸的安全隐患,因此安全性能有待提升。未来,高压气态储氢还需向轻量化、高压化、低成本、质量稳定的方向发展。

高压气态储氢的主要应用领域包括了运输用大型高压储氢容器、加氢站用大型高压储氢容器、燃料电池车用高压储氢罐、通信基站不间断电源用储氢罐、无人机燃料电池用储氢罐等。例如国内某储氢企业为上海世博会加氢站,提供了国内第一台45MPa的氢气储能器,第一台35MPa的移动加氢车,累计为国内加氢站提供储能器50套以上,为国外加氢站提供储能器达240套以上。该企业后又研制出的87.5MPa钢质碳纤维缠绕大容积储氢容器,已示范应用于大连加氢站;研发的35MPa橇装加氢站,将应用于2022年冬奥会;首创35MPa全集成橇装式移动加氢站,推动加氢站商业化运营。

2.1.1.2 低温液态储氢


低温液态储氢是先将氢气液化,然后储存在低温绝热真空容器中。低温绝热技术是低温工程中的一项重要技术,也是实现低温液体储存的核心技术手段,按照是否有外界主动提供能量可分为被动绝热和主动绝热两大方式。被动绝热技术已广泛运用于各种低温设备中; 而主动绝热技术由于需外界的能量输入,虽能达到更好的绝热效果,甚至做到零蒸发存储( Zero boil-off,ZBO) ,但也势必带来一些问题,如需要其他的附加设备而使整套装置的体积与重量增加,制冷机效率低、能耗大、成本高、经济性差。

图6. 液氢储罐和储存系统结构图示

液态氢具有很高的密度,体积比容量大,体积占比小,能够使得储运简单。但把气态的氢变成液态的氢较难,要液化1kg的氢气就要消耗4-10千瓦时的电量。并且,为了能够稳定的储存液态氢,需要耐超低温和保持超低温的特殊容器。该容器需要抗冻、抗压,且必须严格绝热。因此,这种容器除了制造难度大,成本高昂之外,还存在易挥发、运行过程中安全隐患多等问题。

当全球来看,低温液态储氢技术已应用于车载系统中,在全球的加氢站中有较大范围的应用。液氢加氢站在日本、美国及法国市场比较多。目前全球大约有三分之一以上的加氢站是液氢加氢站,氢液化设备主要由美国AP、普莱克斯、德国林德等厂商提供。而我国的液氢工厂仅为航天火箭发射服务,受法规及技术成本所限,还无法应用于民用领域,但相关企业已着手研发相应的液氢储罐、液氢槽车,如航天101所、国富氢能、鸿达兴业、中集圣达因等公司均在研发国产液氢储运产品。相关部门正在研究制订液氢民用标准,未来液氢运输将成为我国氢能发展的大动脉。

图7. NASA航天发射场加氢站

由财政部支持的国家重大科研装备研制项目“液氦到超流氦温区大型低温制冷系统研制”近日通过验收及成果鉴定,这也是大型低温制冷装备技术的重大突破。

2.1.2 化学储氢


与物理储氢不同,化学储氢方案一般通过利用储存介质与氢气结合为稳定化合物的方式实现氢储存。用氢时,通过加热或其他方式使化合物分解放氢,同时回收储存介质。

根据储存介质种类不同,化学储氢技术主要包括金属氢化物储氢、液态有机氢载体储氢、无机物储氢、液氨储氢等。与高压气态储氢和低温液态储氢相比,化学储氢技术成熟度相对较低,目前多在实验室、示范项目环节。

2.1.2.1 金属氢化物储氢


该技术将氢以金属氢化物形式储存于储氢合金材料中。在一定温度压力下,储氢合金与氢接触首先形成含氢固溶体(α相),随后固溶体继续与氢反应产生相变,形成金属氢化物(β相)。在加热条件下,金属氢化物放氢。早期发现的合金有LaNi5、Mg2Ni、TiFe等,随后研究者发现这类合金由一种吸氢元素A与另一种非吸氢元素B组成,两种元素分别控制储氢量与吸放氢可逆性。目前世界上已研发的储氢合金可大致分为稀土镧镍系、钛铁系、钛锆系、钒基固溶体、镁系等。

这类基于固体的储氢技术往往具有储氢密度高、储氢压力低、安全性好、放氢纯度高等优势,其体积储氢密度高于液氢。目前,国内外对储氢金属材料的研究成果不断,在部分领域已得到应用。国外固体储氢技术已在电池舰艇中得到商业应用,在分布式发电和风电制氢规模储氢中得到示范应用;国内固态储氢已在分布式发电中得到示范应用。

然而,成熟体系的金属储氢材料重量储氢率偏低,最高的TiV材料可逆储氢量为2.6 wt%。为提高重量储氢率,目前开发了配位氢化物、金属氨硼烷等新材料,但这些材料存在如吸放氢速度慢、可逆循环性能差等应用问题,仍处于实验室技术研发中。此外,储氢金属材料的成本受有色金属原料价格波动影响,成本偏高是制约发展的另一因素。

2.1.2.2 液态有机氢载体储氢


液态有机氢载体(LOHC)储氢技术基于不饱和液体有机物在催化剂作用下进行的加氢反应。常用的不饱和液体有机物有甲醇、环烷烃、N-乙基咔唑、甲苯、1,2-二氢-1,2-氮杂硼烷等。

这类技术具有较高储氢密度,在环境条件下即可储氢,安全性较高,运输方便。缺点是氢的取放不如物理储氢容易,需要配备额外的反应设备,且放氢过程往往需要加热耗能,导致成本增高。

LOHC技术在日本和欧洲发展迅速,在我国尚属于示范阶段。总部位于德国Erlangen的Hydrogenious LOHC公司一直在开发有机氢载体(LOHC)储运技术。目前,Hydrogenious公司正在德国Dormagen化学园区建造世界上最大的LOHC储氢工厂,计划2023年投产。该工厂使用二苄基甲苯为载体介质,据称该介质具有不易燃不易爆性。

图8. Hydrogenious LOHC工厂的存储箱(上)与释放箱(下)系统

今年10月,御氢科技与中车西安有限公司签署战略合作协议,双方将在现有铁路运输装备基础上,开发适应于大规模有机液态储氢介质运输的新型铁路罐体开发。

2.1.2.3 液氨储氢

氢与氮气在催化剂作用下合成液氨,以液氨形式储运。液氨在常压、约400 ℃下分解放氢。

相比于低温液态储氢技术要求的极低氢液化温度-253℃,氨在一个大气压下的液化温度-33℃高得多,“氢-氨-氢”方式耗能、实现难度及运输难度相对更低。同时,液氨储氢中体积储氢密度比液氢高1.7倍,更远高于长管拖车式气态储氢技术。该技术在长距离氢能储运中有一定优势。然而,液氨储氢的也具有较多劣势。液氨具有较强腐蚀性与毒性,储运过程中对设备、人体、环境均有潜在危害风险;合成氨工艺在我国较为成熟,但过程转换中存在一定比例损耗;合成氨与氨分解的设备与终端产业设备仍有待集成。

2.1.3 地下储氢


氢气的长时间储存需要依赖一定的储存空间,利用地下空间进行储氢成为了氢气储存的重要方式。诸多不同的地下储氢方案中,最有潜力的一种方式:在地下盐层中挖出一个“容器”来储氢。这个“容器”的制造需要首先钻到目标盐层,安装好套管(如石油钻井一样);其次注入溶液把盐层溶化,溶化后的盐水抽出来;再用这种溶解的方式在盐层中造出所需要的形状和大小的“容器”;最后充入气体把盐洞穴中的所有盐水排空。根据不同盐层结构,这上述溶解方法造出来的不同“容器”的形状。

图9. 地下储氢工艺流程示意图

氢气地下存储能可以充分利用地下空间、节约土地资源、有效降低氢气的储集成本、提高氢气的经济效益,应用于风光储一体化项目,可以解决新能源发电波动性,保障能源供应和能源安全等。但氢气地下储库建设面临诸多挑战,主要包括:储层和盖层的地质完整性、氢气地下化学反应、井筒完整性、氢气采出纯度以及材料耐久性问题。

图10. 风光氢储一体化项目

在地下储氢的应用上,2021年8月23日,中国石化重庆首座加氢站——半山环道综合加能站于近日正式建成。该站是国内首座应用储氢井技术的加氢站,日供氢能力1000公斤,将为重庆首批氢能示范公交车和市内物流车提供加氢服务,是氢能产业技术创新发展的良好实践和示范。

2.2

氢能运输技术

氢和氧能形成爆炸混合物,在运输和使用过程中需要十分小心。目前氢能的运输通常根据储氢状态的不同和运输量的不同有所调整,主要有气氢输送、液氢输送和固氢输送3种方式。

2.2.1 气氢输送


氢能的气态输运分为长管拖车和管道输运2种。长管拖车灵活便捷,但在长距离大容量输送时,成本则会更高。与此相比,管道运输的输氢量大、能耗低,但是建造管道一次性投资也更大。在管道输运发展初期,可以积极探索掺氢天然气方式——将氢气逐步引入天然气网络,这也是大规模推广氢气的现实解决方案。

2.2.2 液氢输送


液氢一般采用车辆或船舶运输,液氢生产厂至用户较远时,可以把液氢装在专用低温绝热槽罐内,放在卡车、机车、船舶或者飞机上运输。这是一种既能满足较大输氢量,又比较快速、经济的运氢方法。在特别的场合,液氢也可用专门的液氢管道输送。由于液氢是一种低温(-253℃)液体,其存储的容器及输送液氢管道都需要高度的绝热性能,所以管道容器的绝热结构就比较复杂,且液氢管道一般只适用于短距离输送。

2.2.3 固氢输送


采用固体储氢材料对氢气进行物理吸附,或与氢气发生化学反应等方式,储存、释放氢能的方法被称为“固氢”储运技术。其中,储氢材料是实现固氢运输的核心部分,它能够对氢气进行有效的吸附与释放,或者能够与氢气发生高效、可逆的化学反应,从而实现氢能的储存与释放。常用的固体储氢材料包括金属储氢合金、碳质储氢材料等。

表1:不同输送方式的技术比较

总体来看,气氢储运由于工艺及设备相对简单而被应用地最为广泛,但它储能密度低、不经济,适用于短距离运输。因此,采用输氢管道输送氢气对于分布集中的用户非常合适。液氢储运由于其储能密度较气氢高得多,因此适用于对储能量要求很高的航空火箭等场合,但其对设备的绝热、密封性等要求高。固氢储运兼具能量密度高、运输安全、经济等优点,适用于工业、交通工具等多种场合,但其对固体储氢材料性能要求较高,对新型储氢材料的开发提出了新要求。

#03

氢能的发展瓶颈与展望

尽管氢能存在多方面的优势,有多种储存、运输方式,但其生产过程存在着重要瓶颈,制约着当前氢能的大规模应用和发展。

3.1

电力系统仍未完成脱碳

氢能本身是清洁的可再生能源,在使用的过程中没有碳排放,但目前生产氢能的过程却并非完全零碳。如果用目前电网中的电,发电过程会产生碳排放,再电解水制氢,氢能也间接产生碳排放。氢能按照其制取方式,可分为灰氢、蓝氢、绿氢三种,其中只有绿氢是零碳的。

图11. 氢气制备过程示意图

3.1.1 灰氢


灰氢是通过化石燃料,经过化学反应制造的氢气。如通过煤气化,用C + H2O ⇌ H2 + CO2的原理制氢,显然会产生大量碳排放。目前,市面上绝大多数氢气是灰氢,约占当今全球氢气产量的95%左右。

灰氢的生产成本较低,制氢技术较为简单,而且所需设备、占用场地都较少,看似具有优势,但是从本质上看并不是清洁能源。

3.1.2 蓝氢


蓝氢是将化石燃料通过蒸汽甲烷重整或自热蒸汽重整等制造的氢气。虽然仍采用化石燃料,也会产生温室气体,但其使用了碳捕捉、利用与储存(CCUS)等先进技术。温室气体被捕获,减轻了对地球环境的影响,实现了低排放生产。

蓝氢相对生产成本低、技术成熟,适合作为一种“过渡清洁能源”,用于现阶段的减碳行动。

3.1.3 绿氢


绿氢,是通过使用再生能源(如太阳能、风能、核能等)制造的氢气。一般通过可再生能源发电,再通过电解水制氢,生产绿氢的全过程中没有碳排放,又称为新能源制氢。

国际氢能协会副主席、清华大学教授毛宗强说:“2020年,中国氢气主要来源于灰氢,在2030年之后,绿氢应该成为主体。”但绿氢受到目前技术及制造成本的限制,实现大规模应用还需要时间。

要充分应用绿氢,首先要构建以新能源为主体的新型电力系统。而新能源发电具有高度波动性和不确定性等特点,目前的电力系统尚不能完全适应。未来需要构建“电-氢”耦合体系,才能建立低碳电氢网络,实现全过程的低碳。从这个角度看,氢能的一大瓶颈不在氢气本身,而在于电力系统。

3.2

产氢成本过高

中国石油和化学工业规划院新能源发展研究中心主任刘思明曾表示:“降低氢能使用成本是产业发展的关键所在,成本的下降趋势和速度将决定这个产业发展的速度。”

表2:产氢成本估算

(假设:电$0.095/kWh,天然气$9/MMBtu,煤价$20/t)

整体来看,蓝氢的成本略高于灰氢,但碳排放显著减少。如果不考虑发电本身的碳排放,电解水制氢是最为环保的,但其成本仍然偏高。单位制氢成本主要取决于煤、天然气及电价,但是目前看来,这些价格均存在上涨的可能,绿氢的成本短期难以大幅下降。


一般认为,当电解水制氢的综合成本降低到约1元/Nm,也即11.2元/kg时,用氢能才是经济的。电解水过程中,通常电费占制备成本的80%左右。尽管近年在制氢的工艺、设备、催化剂上有一定突破,成本有所下降,但未能解决根本问题。有人预计,2025年,我国60%地区的光伏上网电价将在度电0.13元左右,风电度电成本将控制在0.15元左右,可再生能源制氢成本将很快降至1元/Nm,届时氢能的成本将比汽油更有优势。


3.3

产氢效率偏低

产氢效率因方法而不同,但整体上偏低,或存在效率、方法、安全性等不可兼得的问题。就电解水制氢而言,通过碱性电制氢,技术较为成熟,但效率偏低,能量利用效率仅为21.42%~26.04%。通过质子交换膜(PEM)制氢,可实现高电流密度和较高效率(31.08%~33.18%),但膜与催化剂相对昂贵。通过高温电制氢,效率高(38.22%~48.98%),但技术不够成熟,相对昂贵。


即便是较为先进的方法,其制氢的能量利用效率也不超过50%。制得的氢气常用于燃料电池,而燃料电池理论效率85%~90%,实际工作时效率约为40%~60%,远达不到理论效率。如果用氢气作为储能媒介,在“电能→氢能→电能/其他”的过程中,能量浪费是巨大的,这也是制约氢气大规模应用的一大瓶颈。未来在制氢效率及燃料电池效率上还需进一步突破。

#04

氢能的展望

目前,虽然氢能由于效率低、成本高等缺点,仍未得到大规模的应用,但由于其在各个重要领域中脱碳的关键作用,在未来,氢能具有广阔的发展前景。

4.1

政策支持

首先,世界各国在政策层面为氢能的推广制定了发展路线。国际氢能理事会(Hydrogen Council)发布的 《氢能观察2021》 (Hydrogen Insights 2021)统计显示,截至2021年2月,已有30多个国家发布了氢能路线图[31]。美国的氢能战略的目标是在未来十年,使清洁氢能的价格降低至1美元/千克,到2030年,预计美国氢能经济每年可产生约1400亿美元的收入,并在整个氢价值链中提供70万个工作岗位。欧盟委员会于2020年3月10日宣布成立“清洁氢能联盟”,并在2020年7月公布的欧盟的氢战略中提出,将在2024年生产100万吨清洁氢能,并在2030年扩大至1000万吨;日本在《2050碳中和绿色增长战略》中也提出,到2030年将氢能年度供应量增加到300万吨,到2050年氢能供应量达到2000万吨/年,力争在发电和交通运输等领域将氢能成本降低到30日元/立方米,到2050年降至20日元/立方米。在未来越来越多政策的支持下,氢能将会得到更加广泛的应用。

4.2

技术展望

在氢能的生产方面,未来的氢能,将以可再生能源电解水制氢为主。在可再生能源成本下降之前,站内天然气制氢能大幅降低全产业链成本,是加氢站未来发展的趋势之一。

在氢能的运输方面,储运是限制氢能产业发展的瓶颈,氢气专输管道投资大、审批难,短期内仍然以高压气氢储运为主。低温液态储氢密度高但成本高,主要应用于航空领域。固氢及有机液氢储运容量大、安全经济,因此发展潜力巨大。以商用车带动加氢站建设,有望形成正反馈降低氢能源成本。


在氢能的应用方面,氢能应用模式丰富,能够帮助工业、建筑、交通等主要终端应用领域实现低碳化。目前氢能以工业原料消费为主,未来氢能在交通部门应用潜力巨大,尤其是远程重货运、航空等,其形式则包括燃料电池、氢能热机等。通过氢能作为主要能源,将会为目前难以减排的行业部门(如图10所示)提供可行的深度减排路径。

图12. 2015年按行业划分的全球能源相关CO2排放量

作者简介

张乾志,清华大学核能与新能源技术研究院2021级博士研究生,研究方向为能源系统分析。

滕明睿,清华大学土木工程系2020级博士研究生,研究方向为智能建造。

杨清,清华大学公共管理学院2020级硕士研究生,研究方向为气候变化与可持续发展。

杨乾坤,清华大学电机工程与应用电子技术系2020级硕士研究生,研究方向为能源环境。

杨盟,清华大学能源与动力工程系2018级博士研究生,研究方向为空气碳捕集。

李司令,清华大学环境学院2018级博士研究生,研究方向为地下水污染。

徐骁翰,清华大学航天航空学院2018级博士研究生,研究方向为压气机智能设计。

文稿|张乾志 滕明睿 杨 清 杨乾坤 杨 盟 李司令 徐骁翰

排版|温 柔

编辑|李 润 宋盛禹 李 杨 危 琨

审核|张可人 牛家赫

参考文献

[1] COP26达成的新协议:弃用煤炭 [EB/OL] [2021-11-04]

https://cpu.baidu.com/pc/1022/275122716/detail/57361652215015563/news?chk=1

[2] US Energy Department. Energy department hydrogen program plan. [2020-11-12].https://www.energy.gov/articles/energy-department-releases-its-hydrogen-program-plan.

[3] 中国氢能联盟. 中国氢能及燃料电池产业手册[R],2021

[4] 朱国辉,郑津洋.新型绕带式压力容器 [M].北京:机械工业出版社,1995:1-12.

[5] Zuttel A,Brogschulte A , Schlapbach L . Hydrogen as a future energy carrier [J]. Weinheim : Wiley-VCH Verlag GmbH&Go kGaA,2008:167-170.

[6] 李星国.氢于氢能[M]. 北京:机械工业出版社,2012:153-160.

[7] 郑传祥.复合材料压力容器[M].北京:化学工业出版社,2006:238-243.

[8] US Department of Transportation.DOT CFFC Standard,Basic requirements for fully wrapped carbon fiber reinforced aluminum lined cylinder[S].Fifth revision,2007.

[9] 郑津洋,开方明,刘仲强,等.高压氢气储运设备及风险评估[J] .太阳能学报,2006,27(11):1168-1174.

[10] 李丽旻. 氢能“缺氢”[J]中国能源报, 2020年11月4日.

[11] 郭春兰(中国能源经济研究院). 锐读|一周氢能汇 [J]中国能源报,2021年10月18日.

[12] 许炜,陶占良,陈军.储氢研究进展[J].化学进展,2006(Z1):200-210.

[13] 郭志钒, 巨永林. 低温液氢储存的现状及存在问题[J]. 低温与超导, 2019, 47(6):9.

[14] 柏明星, 宋考平, 徐宝成,等. 氢气地下存储的可行性,局限性及发展前景[J]. 地质论评, 2014, 60(4):7.

[15] 付盼、罗淼、夏焱、李国韬、班凡生. 氢气地下存储技术现状及难点研究[J]. 中国井矿盐, 2020, 51(6):5.

[16] 巩聪聪. 《中国氢能源及燃料电池产业白皮书》发布[J]. 山东国资, 2019.

[17] 李苑. 储运技术重大突破!氢能产业发展有望步入快车道[J]上海证券报, 2021年4月18日.

[18] 欧洲海上氢能. 一般人儿我不告诉他,氢气还可以这样储存[EB/OL].(2021-01-14)[2021-11-15] . https://mp.weixin.qq.com/s/U7oY1TtaFlto3uwoy5CNPw.

[19] Hydrogenious LOHC technologies. [2021-11-15]. https://www.hydrogenious.net/

[20] 新能荟.“氢”元年:一文读懂蓝色新能源产业链[EB/OL].(2021-11-11)[2021-11-15] . https://mp.weixin.qq.com/s/z8iku70BkhJIb6D_4iW03g.

[21] 生白不白(雪球).四种氢气储运技术现状[EB/OL].(2021-08-15)[2021-11-15] .https://xueqiu.com/4806771948/194252730 .

[22] 氢能俱乐部. 深度解析:氢气的高压储存[EB/OL].(2021-06-24)[2021-11-15] .https://mp.weixin.qq.com/s/qEXP5F10rRA-2mnkUHa2Wg .

[23] 香橙会研究院(雪球). 微研报|氢能大规模应用的难点:储运加[EB/OL].(2020-04-29)[2021-11-15] .https://xueqiu.com/3327529419/148192416 .

[24] 邵志刚,衣宝廉.氢能与燃料电池发展现状及展望[J].中国科学院院刊,2019,34(04):469-477.

[25] 瞿国华.我国氢能产业发展和氢资源探讨[J].当代石油石化,2020,28(04):4-9.

[26] 殷卓成,马青,郝军,杨高,雷宇奇.氢能储运关键技术及前景分析[J].辽宁化工,2021,50(10):1480-1482+1487.

[27] 中国氢能联盟,中国氢能源及燃料电池产业白皮书[R],2019

[28] 赵雪莹,李根蒂,孙晓彤,宋洁,梁丹曦,徐桂芝,邓占锋.“双碳”目标下电解制氢关键技术及其应用进展[J].全球能源互联网,2021,4(05):436-446.

[29] 孙瑜. 氢能实现规模化落地,还需突破三大难关[N]. 科技日报,2021-08-31(006).

[30] 张玉魁,陈换军,孙振新,杜昊易,李尧,曲宗凯.高温固体氧化物电解水制氢效率与经济性[J].广东化工,2021,48(18):3-6+24.

[31] Hydrogen Council. Hydrogen Insights 2021[R]. 2021-12-17

[32] US Energy Department. Energy department hydrogen program plan. [2020-11-12].https://www.energy.gov/articles/energy-department-releases-its-hydrogen-program-plan.

[33] European Commission. A hydrogen strategy for a climate-neutral Europe [2020-7-8]. https://ec.europa.eu/energy/sites/ener/files/hydrogen_strategy.pdf

[34] M E T I . G r e e n G r o w t h S t r a t e g y towards 2050 Carbon Neutrality[EB/OL]. HYPERLINK "https://www.meti.go.jp/ english/press/2020/1225_001.html.2020- 12-25" https://www.meti.go.jp/english/ press/2020/1225_001.html.2020-12-25.

[35] 单彤文,宋鹏飞,李又武,侯建国,王秀林,张丹.制氢、储运和加注全产业链氢气成本分析[J].天然气化工(C1化学与化工),2020,45(01):85-90+96.

[36] 殷卓成,杨高,刘怀,马青,郝军.氢能储运关键技术研究现状及前景分析[J/OL].现代化工:1-7[2021-11-15].

http://kns.cnki.net/kcms/detail/11.2172.TQ.20210927.2053.015.html.

[37] 刘坚,钟财富.我国氢能发展现状与前景展望[J].中国能源,2019,41(02):32-36.

[38] IRENA.Accelerating the Energy Transition through Innovation [R],2017.

[39] 池涵. 蒋利军:发展中的固态储氢材料[N].中国科学报,2020.


转载内容仅代表作者观点

不代表中科院物理所立场


来源:探臻科技评论

编辑:云开叶落


3.我国冷链物流业发展态势、问题与对策

摘 要:发达的冷链物流业是现代农业的重要特征。随着城乡居民生活水平和技术经济水平的提高,我国农产品冷链物流业正蓬勃兴起,主要表现在市场前景广阔、第三方冷链物流崛起、基础设施升级、新技术应用和标准的完善等方面。但仍存在着冷链物流成本高、重冷藏轻冷输、设施不配套、布局不合理、农产品标准化程度低、技术创新不足、社会认知不足等诸多制约因素需要消除。从加强冷链物流宏观管理、建立并推广农产品追溯信息系统、推进冷链物流技术创新、加强冷链物流知识宣传、促进农业规模化标准化生产等方面提出了政策建议。

我国幅员广阔,农业生产专业化分工的发展使得农产品的产销地相距较远,存在着“七区二十三带”的空间结构布局。由于受到地区和季节的限制,大量农产品需经过专业化物流处理后才能抵达消费者手中。近年来,随着我国社会经济发展和人民生活水平的提高,生鲜农产品的产量和流通量逐年增加,消费者对品质优良、品种多样的农产品需求越来越高,不但要求产品新鲜、生产无污染,还要配送及时准确,这为冷链物流迎来了最佳发展契机。

冷链物流( cold chain logistics) 作为公认的园艺产品品质保障手段,从20世纪中叶开始在全世界推广开来,是农产品供应链的重要组成元素。特别是生鲜农产品需要通过低温流通才能最大限度地保持其新鲜度、色泽、风味和营养。农产品冷链物流是指农产品从供应地向接收地的流动过程中,将冷冻/冷藏运输、储存、装卸、搬运、包装、流通加工、配送、信息处理等功能有机结合,并保持农产品始终处于维持其品质所必需的适宜温度环境下,最大程度地保证产品品质和质量安全、减少产品损耗,从而满足用户要求,是提高性价比的极具商业价值的专业物流。通过冷链物流可以将大量生鲜农产品高质量地从生产地运往消费地,满足人民的生活需要,提高人民的生活水平和健康水平。可以预见,农产品大迁徙的过程中一些鲜活农产品通过冷链运输将成为未来农产品运输的常态。

从发达国家农业发展经验来看,冷链物流业的发展与农业现代化进程是一致的,发达的冷链物流已经成为现代农业的重要特征。冷链物流业是基于提高农产品质量和品质而兴起的,其发展对于改善食品质量安全和城乡居民的营养与健康具有重要的现实意义。近年来,随着我国经济技术水平和居民消费水平的提高,冷链物流业正在蓬勃发展,引起了产业资本和各级政府的高度关注。另一方面,我国冷链物流业的发展仍存着一些制约因素,需要通过制度创新和技术创新加以消除。本文在阐述我国冷链物流业发展态势的基础上指出我国生鲜农产品冷链物流存在的制约因素,并提出了相应的问题解决对策。

1 我国冷链物流业发展态势

我国冷链物流最早起步于20世纪50年代,当时的冷链设备主要是一些改装后的保温车。在其后相当长的时间里,我国冷链物流产业发展缓慢,直到1982年《食品卫生法》的颁布在一定程度上推动了我国冷链物流产业的发展。随后的20年时间里,由于我国冷链物流始终处于供小于求的现状,其发展速度一直缓慢,水平也始终处于初级阶段。近年来,我国经济快速发展,随着生活水平的提高,老百姓越来越关注农产品的品质和新鲜程度,从而对冷链物流产生了强大的需求。同时,政府有关部门也出台了一些政策措施,推动了冷链物流业的发展。在新形势下,随着市场产生的巨大需求,加上国家政策扶持力度的不断加大,社会资本对物流及冷链物流的投入逐年增加,第三方冷链物流迅速崛起,农产品冷链物流服务基础设施快速升级,新工艺新技术不断应用,冷链物流标准逐步完善,我国冷链物流产业进入了快速发展时期。加快发展我国农产品冷链物流将有助于满足生鲜农产品区域规模化产出和反季节销售对跨地区大规模保鲜运输流通的迫切需要; 满足居民对农产品多样化、新鲜度、营养性和安全性的更高要求; 减少农产品采后物流过程中的腐烂损失,带动农产品跨季节、跨区域的均衡销售,促进农民持续增收; 以及提高出口农产品质量,突破贸易壁垒,增强我国农产品国际竞争力。

1. 1 冷链物流业市场前景广阔

2012年,中国农产 品冷链物 流需求量 为8 200多万t,比2011年增长18. 6% 。其中,蔬菜冷链物流需求量占50% 以上,约4 400万t; 肉类和水果需求第二,冷链需求超过2 400万t; 水产品冷链第三,需求为600万t[1]。这些农产品,尤其是以水产品和反季节果蔬为代表的高附加值农产品在冷链物流领域具有广阔的市场需求。目前,我国果蔬、肉类、水产品冷链流通率分别只有5% 、15% 和23% ,冷藏运输率分别为15% 、30%和40% ,远低于发达国家水平( 欧州、美国、加拿大、日本等发达国家和地区) 。这些国家的肉禽冷链流通率已经达到100% ,果蔬冷链流通率也达到95% 以上[2]。据中国物流与采购联合会估计,目前中国已有冷藏容量仅占货物需求的20%~ 30% ,中国冷链物流产业蕴藏着巨大商机。

1. 2 第三方冷链物流正在崛起

第三方物流模式是生产、加工、销售等企业为了集中精力搞好自身业务,把原来需要自己来处理的物流活动,以合同方式委托给专业物流服务企业,同时通过信息系统与物流服务企业保持密切联系,以达到对物流全程管理和控制的一种物流运作与管理方式。第三方冷链物流是专门针对冷链物流产业需要而产生的专业物流模式。第三方冷链物流企业提供高效、专业、全程的冷链物流服务和解决方案。发展第三方冷链物流可以使生产、加工、销售等企业能够专注于自身运作,不需要动用大量固定资产、人力和物力,增强企业的柔性管理,使企业可以集中精力提高在自身领域的市场竞争力。特别是针对于规模较小、经济实力较弱或刚成立的企业,由于其物流资产有限、物流人员不足,因此需要将物流业务外包给专业机构来执行。据中国电子商务研究中心( 100EC. CN)监测数据显示,虽然我国第三方物流占物流市场的比重不到25% ,但第三方冷链物流发展势头迅猛,越来越多的生产商选择将自身冷藏物流业务外包给第三方冷链物流企业。

国内,中国外运股份有限公司作为国内知名第三方物流企业早在2006年就在上海投资兴建了国内规模最大、设施最先进的单体多温度分区冷库,总占地面积7万m2。中粮我买网则在2014年8月获得了1亿美金B轮融资后打算斥巨资完善全国60城市冷链物流建设。双汇、光明乳业等食品企业加快了物流业务资产重组,设立了独立的冷链物流公司。双汇物流成立于2003年,是国内顶尖专业化公路冷藏物流公司之一。公司利用GPS、ERP、WMS等现代信息技术多方位、多层次地建立了物流配送管理系统,实现了信息资源共享,提升了企业管理水平。光明乳业每天都有1 200 t乳制品需要送到上海、江苏、浙江的两万多个销售网点。为此,企业成立了全资子公司———上海领鲜物流有限公司,为光明乳业提供冷藏车共计500余辆,冷链物流车辆机组等日常维护方面每年投入约1 000 ~ 1 200万元,并制订了很多规范。山东荣庆和安徽安得物流有限公司则是目前主要的民营冷链物流企业。荣庆一直致力于打造中国冷链物流第一品牌,目前拥有冷链车辆450余辆,仓储面积20万m2,年营业额10多亿元。安得物流先后投资1亿多元,购入400多台高端冷藏车辆,并在全国建立了五大冷链配送中心,可以辐射各自800km以内业务。

另一方面,外资也加大了进入中国冷链物流市场的步伐。美国冷链物流装备巨头英格索兰和开利( Carrier) 公司已进入中国多年。2010年,英格索兰在中国的各项投资总额达到4. 12亿美元。其旗下的战略品牌冷王已经成为运输温控解决方案在全球的行业领导者,在北美和欧洲市场的占有率分别达到了超过95% 和50% 。而开利则是世界顶尖的食品冷链全系列冷藏设备开发公司,早在1995年在上海就成立了开利运输空调冷冻( 中国) 公司( Carrier Transicold China) ,在国内市场专业从事货车冷藏设备,半挂车冷藏设备等的生产和销售。目前,两者占据了国内车载冷机市场70% 以上的份额。普菲斯公司作为北美第一大、全球第三大冷库仓储运营商于2009年进入中国冷库市场以来,已经在上海、天津两地相继建造了三座高规格冷库,分别于2011年( 4万t) 、2012年( 3万t) 和2013年( 4万t) 投入使用。澳大利亚最大的冷 链物流提 供商太古 ( Swire ColdChain) 早在2008年就已进入广东市场,并计划于2020年底前,在中国内地共建成13个大型现代化冷藏设施,形成一个全国性的冷链网络,辐射范围达全国的2 /3; 美冷( Americold Realty Trust) 作为全球领先的温控仓储和物流提供商于2010年与招商局合资方式成立了招商美冷物流有限公司( CMAC) ,共同拓展中国市场的冷链物流业务。CMAC现已快速发展成为我国领先的第三方冷链物流服务商。日本的第三方宅配商雅玛多、伊藤忠等于2010年底也紧跟美冷的步伐进入中国冷链市场。雅玛多在上海松江拥有7 000 m2的分拣基地,其中包括5 000 m2的普货仓库、1 500 m2的冷藏仓库和500 m2的冷冻仓库。进入中国市场两年多,雅玛多已建成32个营业点并配备了300多辆配送车。雅玛多还通过移动冷柜实现了“混载运输”,即30% 的冷冻冷藏品和70% 的普货混载运输,从而既契合了客户的需求,又做到了资源集约,可以缓解了成本压力。伊藤忠物流目前整体仓储面积达40万m2,员工3 000人,配送范围涵盖全国主要区域三线以上城市。上述国际巨头的加入推动了中国第三方冷链物流业的发展。

1. 3 冷链物流基础设施建设不断升级

生鲜农产品的预冷、加工、储运、装卸、查验及销售等各个物流环节都需要在低温环境下开展。冷链基础设施建设是实现该要求的基础。和常规工业化物流( 可以在常温下开展) 相比,农产品冷链物流需要有专业的低温冷链物流系统,各个环节的冷链过程都需要复杂、综合的系统管理。因此冷链物流基础设施建设存在要求高、投入大的特点。冷链基础设施主要包括各种类型和规模的冷库、冷链运输工具和制冷装置等,其建设的不足一直是制约我国冷链物流发展和规模的重要因素之一。国内20世纪建设的冷库设备陈旧、老化严重、缺少维修、运转低效。“十一五”结束时,我国冷藏能力大概可以满足食品总产量的20% ~25% ,距离发达国家70% ~ 80% 的比例还有很大差距。进入“十二五”,国家加大了对冷链物流基础设施的升级改造。特别是2010年国家发改委出台的《农产品冷链物流发展规划》计划再增加1 000万t冷藏能力。2014年,中冷联盟对全国680家规模以上( 营业收入1 000万以上) 的冷链物流企业调研 数据显示,我国冷库 容量共计20 469 713 t( 57 546 093 m3) ,冷藏车29 444辆。与2010年冷库总容量880万t、冷藏汽车20 000辆相比,分别增长了133% 和47% 。由于中国农产品冷链物流发展前景良好,不少批发市场、大型农业企业和零售企业开始投资建设低温供应链配送系统。目前在北京有顺鑫农业、首农集团、快行线冷链等; 在上海有中外运上海冷链物流、交荣冷链、领鲜物流; 山东有荣庆集团等企业。冷链物流基础设施的不断完善,为农产品冷链流通创造了条件。

1. 4 冷链物流新技术不断涌现

和美国、欧洲、日本等发达国家和地区先进的冷链物流技术相比,我国仍有较大差距,但在很多环节上已开展了一定的技术创新工作。在管理方面,以往以手动管理为主,信息化、系统化程度不高,管理效率较低。近年来,农产品物流企业引进了国际先进的HACCP( 危害分析和临界控制点)认证、GMP( 良好操作规范) 、WMS( 仓储管理系统) 、虚拟仓储等技术[3,4],提升了我国的物流管理水平。HACCP通过对物流各个环节及相应影响产品品质的因素进行分析,确定物流过程中的关键环节,并建立物流监控程序和标准,当问题出现时找到来源点并采取纠正措施。GMP认证是指由政府机构组织GMP评审专家对物流过程所涉及的所有环节进行检查,评定是否达标的过程。WMS系统配有温湿度等物流环境追溯系统功能,可以确保物流过程中产品质量的全程监控。虚拟仓储则基于计算机和网络通讯技术将在地理上分散的货物进行整合管理,实现不同时空物资的有效调度,可降低仓储成本,避免不合理运输,便于监管,是一种高效的物流管理方法。

在货物标识方面,传统以手工书写为主,工作量大且效率低。近年来,我国农产品物流过程应用了二维码IC卡电子标 签、无线射频 识别( RFID)[5]、数字加密、水印等技术,提高了工作效率,减少了差错率,识别过程快速、准确、可靠。二维码技术是以某种特定的几何图形按照一定的规律在二维平面上用黑白相间的图形记录数据,巧妙地代表计算机逻辑运行基础0和1,最终实现自动读取。二维码可以实现物流过程中商品信息的快速共享、防伪识别等功能。RFID技术无需有形的几何图形而是通过芯片来储存信息,具有自动识别、无需光源、无磨损、可穿透、可远距离读取、支持反复读写等优点,是未来物流货物标识的主要技术。而数字加密、水印等技术则为货物识别提供了安全保障。

在保鲜方面,化学杀菌剂是常用的保鲜方法,但对人体健康和环境都会造成危害。近年来,我国陆续研发了一批基于生物或者物理手段的安全保鲜技术,如微生物保鲜技术、超高压保鲜技术以及复合生物保鲜技术等。其中,微生物保鲜技术主要是利用菌体或其代谢产物将农产品表面和空气隔离开来,以延缓氧化,或者通过诱导寄主抗性及重寄生作用抑制病原菌来实现保鲜[6]; 超高压保鲜技术则通过超高压破坏微生物的细胞壁、细胞膜及细胞间隙的结构,使蛋白质等成分发生变性,使酶活性降低来实现杀菌[7]; 而复合生物保鲜技术则采用两种或两种以上生物保鲜剂或者生物保鲜与其他保鲜技术相结合来实现保鲜的目的[8]。

在车辆调度管理方面,传统模式下缺少对车辆进行有效追踪和调度的方法。GIS( 地理信息系统) 、GPS( 全球卫星定位系统) 、EDI( 电子数据交换) 等技术的应用可对物流车辆进行定位、轨迹回放、运行监测、车辆人员管理,从而有效地控制车队、提高运行效率和服务水平、降低成本,而指纹、声纹、视网膜等识别技术则可以确保车辆调度过程的安全[9,10]。

1. 5 冷链物流标准逐步完善

国家高度重视冷链物流发展,在近几年下发的中央1号文件中均强调要加快农产品冷链物流系统建设,促进农产品流通。国家发改委发布了《农产品冷链物流发展规划》,推动了冷链物流的国家标准、行业标准和地方标准的出台和完善。目前,我国已经发布了9项冷链物流相关的国家标准( 表1) 。另有冷链运输车辆应用选型技术规范,冷链物流企业服务条件评估等6项国家新标准正在申报中。

2 冷链物流业发展存在的问题

我国冷链物流业已经获得较大发展,但仍有很大的发展空间。同时也存在一系列问题制约了我国冷链物流业健康发展。

表 1 冷链物流相关国家标准



2. 1 冷链物流成本高

据调查,我国冷链物流成本比普通物流高出40% ~ 60% ,而日本的冷链运输成本只有世界平均水平的2 /3。近年来,随着能源价格的上涨,冷链物流成本也在大幅度上涨。由于农产品价格低、产业链条整合度不够、上下游厂商之间竞争激烈而合作不足等使得降低物流成本成为农产品经销商的重要目标。然而由于冷链设施和装备水平低,整个物流费用占到易腐物品成本的70% ,而按照国际标准,易腐物品物流成本最高不超过其总成本的50% 。据估计,全程冷链物流体系的成本大概占到产品销售价格的50% ~ 70% ,而常温运输或者土方法保温,该比例则只有20% 。由于农产品市场上普遍存在质量信息不对称的情况[11],有些农产品经销商不愿选择冷链物流。对于必须选择冷链物流以保证品质的农产品,部分物流商会通过降低冷链标准来降低成本以迎合经销商。由于更重视商品价格,很多消费者宁愿选择非冷链农产品。冷链物流市场上的“劣币驱逐良币”现象制约了冷链物流业的健康发展。

2. 2 重冷藏、轻冷运

在国家政策的引导下,各地都十分重视发展仓储物流产业。地方政府GDP政绩导向和资本圈地运动,导致了对冷库的过渡投资。在东部一些省份( 例如江苏省) ,农产品物流园建设过多,冷藏库容量过大,已经超出了实际需求。同时,冷藏车的增长却相对缓慢,冷藏、冷运不能同步增长也带来了冷藏资源的浪费。目前我国冷藏车只有4万辆左右,而美国和日本分别为30万辆和17万辆,考虑到人口基数,我国人均冷藏车的比重还很低。美国最大 的冷链运 输物流服 务商CREngland目前4万冷藏车厢,而我国最大的冷链运输服务商为双汇物流,其拥有1 500辆左右冷藏车。同时,我国冷藏车的制冷技术也没有根本性的提高,而是大多采用国外的制冷设备,成为冷链物流发展的制约因素之一。

2. 3 全程冷链难以实现

由于过程操作不规范造成我国冷链物流无法做到全程冷链。一方面由于观念习惯的问题,没有对生鲜农产品进行田间预冷的意识,致使产品品质会从内到外出现问题。例如荔枝如果不进行田间预冷,即使用冷库储存、冷藏车运输也很容易造成荔枝外观还很好看,但内部品质已经劣变,造成产品货架期很短。另一方面,我国生鲜农产品冷链物流过程中,部分物流企业为了节省运输成本,中途关掉制冷设备,造成物流过程中的冷链断链。第三、冷链设施不配套也造成了无法实现全程冷链。国外很多冷库是允许冷藏车开进去的,因此其整个装卸货过程是在冷库内完成的。而在我国,冷藏车不能开进冷库装卸是非常普遍的现象,造成车辆停靠和仓储的环节间有一段冷链缺失的时间,严重破坏了全程的低温供应链。这不仅体现在终端销售商( 例如超市) 冷藏冷冻设施与冷链物流之间,也体现在冷链物流企业自身。第四,农产品产地预冷库缺乏也使得物流过程无法做到全供应链供冷。许多冷冻食品在常温下卸货后再运到零售商的冷藏、冷冻设施中,出现冷链的断裂,造成食品品质下降,甚至腐败。上述问题不仅动摇了人们对冷链物流的信心,也给我国食品质量安全造成消极影响。

2. 4 基础设施布局不合理

虽然在我国东部冷库发展迅速,但在我国的中西部经济相对落后地区,发展较为滞后。

资料显示[12],全国冷库总量的63% 在东部11个省市,18% 在中部地区,而西部12个省市只有19% ,也就是说全国2 /3的冷库容量在东部地区,我国东西部冷库容量差距较大。另据数据显示近5年全国建 成的冷库 中,东部地区 占24. 89% ,西部地区占17. 42% ; 在建的冷库中,东部占74. 76% ,中西部地区25. 24% ,东西部冷库建设速度差距也十分明显。在冷库的类型与功能方面也发展不平衡,大型冷库建设项目比较多,而中小型冷库建设少; 肉类建设冷库较多,果蔬类冷库建设较少; 大中城市销地保鲜库比产地发展更快。从人均冷库容量来看,超过0. 1 m3的有七个省市,其中天津是全国平均水平的4. 48倍,达到0. 251 m3,达到日本人均冷库容量。2012年我国人均冷库量仅为0. 056 m3,和国外发达国家比差距明显( 美国人均库容量0. 365 m3,日本人均库容量0. 233 m3) 。

2. 5 农产品标准化程度低

虽然近年来工商资本进入农业领域的步伐加快,但我国农业生产组织化总体程度低,家庭经营仍然是主流,从而制约了我国农产品标准化生产。尽管农业部于2012年颁布了《农产品等级规格标准编写通则》,但是离农产品分级标准的市场化应用还有较大距离。目前,我国农产品标准化推进程度进展不一。像玉米、面粉、棉花等大宗农产品经过多年发展已经建立了一套相对完善的生产标准体系,而果蔬、鲜肉、海鲜等生鲜农产品则在生产上还难以做到标准化。成熟的电子商务市场需要对销售的产品进行标准化认证后才能销售。而国内农业生产,特别是生鲜农产品的生产形成规模化的还很少,一般都是小农生产,这些人没有意识,也没有资金进行产品认证。由于我国生鲜农产品生产不能做到标准化,因此买方不能知道产品优劣,造成难以在电商平台上形成规模流通。相反发达国家农业生产规模化、品牌化、标准化程度高,产品具有良好的品质和安全信誉,使得市场会优先考虑这些产品。国外标准化的农产品即使到了国内也很受欢迎,国内电商也会优先选择国外的农产品来增加用户粘性。例如天猫销售的车厘子13 d销售额达到1 500万元。可以看到,农产品标准化的不足,阻碍了农产品运销模式创新,电商模式、远程拍卖、现货电子交易在鲜活农产品领域受到了挫折。没有农产品标准化很难实现线上交易,从而抑制了因运销模式创新带来的冷链物流需求。

2. 6 技术创新不足

冷链物流技术创新上,发达国家提升冷链化水平主要从以下五个方面开展物流技术变革: 采用冷链友好型的农产品栽培管理技术和产品安全检测方法; 在产地应用预冷技术消除田间热,降低农产品呼吸强度,延长保鲜期; 应用自动化冷库和气调储藏技术进一步延长冷藏保鲜期; 冷链运输工具朝着标准化、小型化、多功能化和节能化方向发展; 运用信息技术建立农产品冷链物流管理系统,对物流全程进行追踪和监控,并将产品需求信息共享到连锁经营平台。而我国冷链物流技术创新严重不足,缺乏低温加工、包装和检测技术,存在制冷技术短板,冷链物流管理和操作人员匮乏,导致生鲜农产品粗放式物流。新型冷链物流装备和技术被外企垄断。原因在于: 一是国家投入少,政府关注不足; 二是物流企业规模小,农产品冷链物流投资门槛高、回收期长,制约了企业是技术创新投入; 三是专业人才缺乏,物流专业人才已被列为我国十二类人才之一。在近两三年的时间内,我国物流专业人才的缺口将会达到60余万,特别是对于新兴的冷链物流业来说,人才的缺口将会更大[13]。然而,我国没有专门的学校与机构培养冷链物流人才,人才培养模式都是师傅带徒弟边学边干,而没有专业系统的培训。一些理论知识都是20世纪90年代的内容,并没有包含最新的知识。

2. 7 冷链物流社会认知不足

过去数十年,冷链物流在我国发展缓慢的原因之一是消费者缺少低温物流的意识。即使在大城市,很多居民对冷链物流也不了解,人们在购买农产品时很少考虑流通方式。这主要是因为当时我国经济发展还没有发展到让消费者开始关注食品新鲜度和品质。随着我国居民恩格尔系数降低到富裕线的40% 以下,消费者会增强对农产品安全和品质的重视程度。此外,还有三个原因造成了居民对冷链物流关注度不足: 一是饮食习惯,我国食物制作多采用煮、干煎、蒸、油炸等方式,与鲜食相比对农产品的品质要求不高,而国外的肉品食用大多五分熟、七分熟,日本则更喜欢食用生鲜鱼类,造成西方国家对于冷链物流需求强烈; 二是在我国传统观念里只有冷饮食品才需要低温贮存,而冷链是一种资源浪费的运输方式; 三是农产品质量安全问题的困扰,相对于品质而言,农产品质量安全更加受到消费者的关注,人们为能否买到放心的食品而烦恼,冲淡对食品品质的追求。

3 对策与思考

基于现阶段农产品冷链物流发展中存在的问题从以下几方面提出对策建议,以期促进我国农产品冷链物流的进一步发展。

3. 1 加强冷链物流宏观管理

国外冷链物流成功的发展经验表明,在冷链物流发展的起步阶段,政府的资金投入和政策扶持具有重要作用。任何一个产业的发展都离不开政府的引导和支持,冷链物流也是如此。政府应从国家层面提高对农产品冷链物流的重视程度,综合考虑我国城镇居民消费趋势、消费方式、农业产业发展形势、商业模式的创新等因素,制定行业发展规划、产业政策,优化冷链物流地区布局; 研究制定相关技术标准和操作规范,引导发展配套兼容化冷链设置和装备; 出台扶持措施,鼓励第三方冷链物流企业的发展壮大; 扩大鲜活农产品绿色通道政策适用范围,降低冷链运输成本; 建立企业诚信制度,通过信贷、财税等手段引导冷链物流企业依法、诚信经营。

3. 2 建立并推广农产品追溯信息系统

为了解决农产品质量安全问题,政府和商界对农产品质量追溯系统寄予了厚望。同时,信息技术的进步提供了更加低廉的解决方案。对于高品质农产品来讲,产品追溯系统更加经济。在现有农产品追溯系统中增加农产品流通方式的信息,有利于让消费者了解冷链物流的价值,从而防止冷链物流断链,实现高品质农产品优质优价。目前,第三方冷链物流企业都有与GPS相结合的信息化调度系统。这一系统与销售商的产品追溯系统相结合,也是一种可行的选择。从提高农产品追溯系统的效率来看,应当鼓励商业机构构建公共信息服务平台。

3. 3 推进冷链物流技术创新

一是鼓励科研机构、企业等进行冷链技术的研发,开发具有我国自主知识产权的创新冷链物流技术; 二是加大财政资金投入力度,积极引导社会资金,形成多元化的投入机制,解决因冷链物流全程技术、基础设施建设等资金缺乏而导致的创新条件不足问题; 三是落实好税前加计扣除等国家支持企业创新的有关政策,鼓励“产、学、研”协同创新,增强企业创新主体的意识和作用; 四是要加强冷链物流人才培养模式创新,引导和推动高等学校设置冷链物流相关学科专业、开设相关课程,发展农产品冷链物流职业教育,形成多层次的冷链物流业创新人才的教育、培训体系。

3. 4 促进农业规模化、标准化生产

农业规模化、标准化生产是提高我国农产品质量和生产效率的根本途径,也是农产品物流冷链业发展的基础。农业规模化、标准化生产,可以通过工商资本的大规模土地集中实现,也可以通过合作社方式实现。在我国家庭联产承包责任制的前提下,实现农业生产经营的组织化,需要更多的组织模式创新和商业模式创新。一是要扶持一批辐射带动能力强的农产品加工龙头企业; 二是要鼓励龙头企业与农民建立紧密地利益共享机制,大力发展订单农业; 三是要鼓励发展农民专业合作社、农业产业协会、家庭农场等新型经营模式; 四要加强农产品市场体系建设,开展标准农产品拍卖、期货、现货交易,鼓励“农超对接”和直销配送。

3. 5 加强冷链物流知识宣传

政府、行业协会、农业企业要加强对冷链物流的宣传和科普,让消费者了解冷链物流的基本知识、对于提高农产品品质的作用、以及“断链”带来的危害等,使消费者能够体会到冷链物流所带来的生活品质的提高。同时,要把冷链物流知识与食物营养科普结合起来,特别是在饮食习惯的改进、保鲜技术的运用等方面进行科普。

4 结语

随着生活水平的不断提高以及近年来对农产品品质安全的关注,人们对农产品新鲜的要求越来越高,冷冻冷藏农产品的需求比例也在迅速增加。而冷链物流是满足上述需求的关键环节之一。目前生鲜农产品冷链物流产业在中国的发展还是处于起步阶段,并且市场发展潜力巨大,已经引起了政府和市场资本的高度关注,第三方冷链物流企业正在崛起,国外资本和企业也在加紧进入中国冷链物流市场,冷链物流基础设施建设力度很大,冷链物流新技术不断涌现,相关标准也在完善和制定中。然而可以看到,目前我国冷链物流产业发展仍然存在的诸多问题需要解决,包括物流成本过高、重冷藏轻冷运、全程冷链难以实现、冷链设施布局不合理、产品标准化程度低、技术创新有待进一步加强、以及社会对冷链物流的认识不足等。为此本文针对性地提出了一系列的对策建议,以促进我国农产品冷链物流产业的发展,包括加强宏观管理、建立产品追溯系统、推进技术创新、促进农业规模化标准化生产、并加强冷链物流知识的普及。“十二五”期间,国家提出的科技创新驱动发展战略为农产品冷链物流产业的发展提供了宏观政策基础,政府、高校和科研机构以及企业产业协会应该抓住这个重要契机,为冷链物流这一绿色朝阳产业的发展提供政策扶持和急需的科技创新成果,加快我国农产品冷链物流产业发展。

作者:袁学国 邹平 朱军 吴迪 中国农村技术开发中心 新疆农业科学院农业机械化研究所 安徽农业大学信息与计算机学院 浙江大学农业与生物技术学院

作者简介: 袁学国,副研究员,博士,主要从事农业科技管理研究。E-mail:ecspirit@163.com;

基金: “十二五”国家科技支撑计划项目(2013BAD15B05)资助;

来源:中国农业科技导报2015年01期

4.LTE测量与切换

1 测量过程

测量过程主要包括以下三个步骤:

测量配置:由eNB通过RRCConnectionReconfigurtion消息携带的measConfig信元将测量配置消息通知给UE,即下发测量控制。

测量执行:UE会对当前服务小区进行测量,并根据RRCConnectionReconfigurtion消息中的s-Measure信元来判断是否需要执行对相邻小区的测量。

测量报告:测量报告触发方式分为周期性和事件触发。当满足测量报告条件时,UE将测量结果填入MeasurementReport消息,发送给eNB。

1.1 测量配置

测量配置主要由eNB通过RRCConnectionReconfigurtion消息携带的measConfig信元将测量配置消息通知给UE,包含UE需要测量的对象、小区列表、报告方式、测量标识、事件参数等。

当测量条件改变时,eNB通知UE新的测量条件。

图1-1 测量配置消息

1.1.1 RRCConnectionReconfigurtion消息

●触发条件:eNB向UE发起/修改/删除测量。

●发送网元:(eNB)处理:将测量配置填项填入RRCConnectionReconfigurtion消息中的measConfig信元。

●接收网元(UE)处理:UE侧维护一个测量配置数据库VarMeasConfig,在VarMeasConfig中,每个measId对应一个measObjectId和一个reportConfigId。其中,measId是数据库测量配置条目索引;measObjectId是测量对象标识,对应一个测量对象配置项;reportConfigId是测量报告标识,对应一个测量报告配置项。此外还包含了与measId无关的公共配置项quantityConfig、测量量配置、s-Measure和服务小区质量门限控制等。

图1-2 测量配置内容

Measurement objects(测量对象):

UE测量的对象如下

●对于频率内和频率间的测量,测量对象是一个单一的E-UTRA承载频率。与该承载频率相关的,E-UTRAN可以配置一系列的特定频偏的小区和黑名单小区。黑名单小区在事件评估或者测量报告中不被考虑。

●对于不同RAT间的UTRA测量,测量对象为在一个单一UTRA承载频率上的小区集。

●对于不同RAT间的GERAN测量,测量对象为一个GERAN承载频率集。

Reporting configurtions(报告配置):

●报告标准:该标准触发UE发送一条测量报告。这可以是周期性的或者是单一事件的描述。

●报告格式:在测量报告中UE包含的量以及相关的信息(例如报告小区的数量)。

Measurement identities(测量标识):每一个测量ID对应着一个测量对象和一个报告配置。对多个测量ID来说可能是对应着多个测量对象和同一个报告配置,也可能是对应这一个测量对象和多个报告配置。

Quantity configurations(测量量配置):定义了测量量和用于所有事件评估和相关测量报告类型。每个测量量可以配置一个滤波器。

Measurement gaps(测量间隔):UE可以用于在异频实施测量的时间(针对异频测量)。定义了MGRP(Measurement Gap Repetition Period)和MGL(Measurement Gap Length)。

s-Measure:服务小区质量门限控制。如果没有配置s-Measure或者配置了s-Measure但是服务小区的RSRP低于这个值,那么UE会执行相关测量 。

关键IE:

carrierFreq:E-UTRAN承载频率

allowedMeasBandwidth:允许测量带宽。在同频小区选择参数或异频列表上配置

presenceAntennaPort1:当前天线端口

neighCellConfig:相邻小区配置。与MBSFN有关

offsetFreq:承载频率的偏移值(同频在代码里写死,异频可以在异频列表上配置)。

cellsToRemoveList:相邻小区删除列表

cellsToAddModList:相邻小区添加/修改列表。配置相邻小区。

blackCellsToRemoveList:黑名单小区删除列表

blackCellsToAddModList:黑名单小区添加/修改列表

cellForWhichToReportCGI:需要报告CGI的小区物理ID

trigerType:报告触发类型。分为事件型和周期型。周期型测量按照测量目的可分为:报告最强小区和小报小区CGI。

reportOnLeave:表示当cellsTriggeredList中的小区处于离开状态时,UE是否应该再执行一次测量报告过程。

Hysteresis:滞后参数(0-30)表示事件触发报告条件下进入和离开条件的参数。

timeToTrigger:满足条件是触发测量报告的时间

triggerQuantity:用来确定评估事件型触发报告的标准,取“RSRP”代表用RSRP作为评估标准,取“RSRQ”代表用RSRQ作为评估标准。

maxReportCells:包括服务小区在内的测量上报小区最大数

reportInterval:报告间隔,在切换过程中未收到RRC Connection Reconfiguration时UE发送测量报告的间隔。

reportAmount:满足上报条件的测量报告数目。(对切换未成功的限制,与切换时的回切次数无关)

1.2 测量执行

UE测量可分为RRC_IDLE状态下和RRC_CONNECTED状态下的测量。

●RRC_IDLE状态下的测量:用于小区重选;

●RRC_CONNECTED状态下的测量:用于切换。

UE可以进行以下类型的测量:

1. 同频测量:在服务小区的下行载频上进行测量,包括:RSRP、RSRQ、Pthloss等。

2.异频测量:在不同于服务小区的下行载频上进行测量,包括RSRP、RSRQ、Pthloss等。

3.Inter-RAT测量:PCCPCH RSCP、CPICH RSCP、CPICH Ec/No、GSM Carrier RSSI、BSIC Identification、BSIC Reconfirmation等

按照UE的测量量不同可分为RSRP和RSRQ。

1.2.1 RSRP

1.2.2 RSRQ

1.3 测量报告

满足测量报告条件时,通过事件报告eUTRAN。内容包括:测量ID、服务小区的测量结果(RSRP和RSRQ的测量值)、邻小区的测量结果(可选)。

图1 – 3:测量报告消息

测量报告方式:按时触发类型,分为周期性和事件触发。

●周期性触发:按照eNB设定的报告间隔与总次数周期性发送

—reportStrongestCells :报告最强小区

—reportCGI :上报全球小区标识

●事件触发:满足报告条件时,发送测量报告

1.3.1 系统内测量事件

系统内测量事件采用Ax来标识,系统内事件的报告各类:

eventA1

服务小区质量高于一个绝对门限(serving > threshold)。用于关闭正在进行的频间测量,在RRC控制下去掉激活测量间隙(gap)

事件进入条件:Ms - Hys > Thresh

事件离开条件:Ms + Hys < Thresh

其中:

Ms:为服务小区的测量结果,没有计算任何小区各自的偏置如果测量的是RSRP则单位为dBm,如果是RSRQ则单位为dB。

Hys:为此事件的滞后参数。单位为dB。取值范围(0-30),实际值=取值*0.5dB

Thresh:为此事件的门限参数。单位同Ms一样

eventA2

服务小区质量低于一个绝对门限(serving < threshold)。用于打开频间测量,在RRC控制下激活测量间隙(gap)。

事件进入条件:Ms + Hys < Thresh

事件离开条件:Ms - Hys > Thresh

eventA3

邻小区比服务小区质量高于一个门限,用于频内/频间的基于覆盖的切换。

事件进入条件:Mn - Offset - Hys > Ms

事件离开条件:Mn - Offset + Hys < Ms

其中:

Offset = a3-offset + Ofs + Ocs - Ofn - Ocn

其中:

Mn:邻小区的测量结果,不考虑计算任何偏置。

Ofn:该邻区频率特定的偏置(即offsetFreq在measObjectEUTRA中被定义为对应于邻区的频率)

Ocn:为该邻区的小区特定偏置(即cellInpidualOffset在measObjectEUTRA中被定义为对应于邻区的频率),同时如果没有为邻区配置,则设置为零。

Ms:为没有计算任何偏置下的服务小区的测量结果。

Ofs:为服务频率上频率特定的偏置(即offsetFreq在measObjectEUTRA中被定义为对应于服务频率)

Ocs:为服务小区的小区特定偏置(即cellInpidualOffset在measObjectEUTRA中被定义为对应于服务频率),并设置为0,如果没有为服务小区配置的话;

Hys:为该事件的滞后参数(即hysteres为reportConfigEUTRA内为该事件定义的参数)。

a3-Offset :为该事件的偏移参数(即a3-Offset为reportConfigEUTRA内为该事件定义的参数)。

Ofn, Ocn, Ofs, Ocs, Hys, Off 单位为dB

eventA4

邻小区质量高于一个绝对门限。用于基于负荷的切换。可用于负载平衡,与移动到高优先级的小区重选相似。

事件进入条件:Mn + Offset - Hys > Thresh

事件离开条件:Mn + Offset + Hys < Thresh

其中,

Offset = Ofn + Ocn

eventA5

服务小区质量低于一个绝对门限门限1(Serving<threshold1)并且邻小区质量高于一个绝对门限2(Serving>threshold2)。用于频内/频间的基于覆盖的切换。可用于负载平衡,与移动到低优先级的小区重选相似。

事件进入条件:Ms + Hys < Thresh1 & Mn + Offset - Hys >Threah2

事件离开条件:Ms - Hys > Thresh1 or Mn + Offset + Hys < Thresh2

其中,

Offset = Ofn + Ocn

1.3.2 系统间测量事件

异系统测量事件采用Bx来标识,事件报告种类:

EventB1

邻小区比绝对门限好。用于测量高优先级的的RAT小区。

事件进入条件:Mn + Ofn - Hys > Thresh

事件离开条件:Mn + Ofn + Hys < Thresh

EventB2

服务小区质量低于一个绝对门限门限1(Serving<threshold1)并且邻小区质量高于一个绝对门限2(Serving>threshold2)。用于相同或低优先级的RAT小区的测量。

事件进入条件:Mn + Hys < Thresh1 & Mn + Ofn - Hys >Thresh2

事件离开条件:Mn - Hys > Thresh1 or Mn + Ofn + Hys <Thresh2

1.3.3 MeasurementReport消息

●触发条件:当UE完成测量后,会依照测量报告配置对报告条件进行评估,当设定条件满足时,UE会将测量结果填入MeasurementReport消息,发送给eNB。

●发送网元(UE)处理:测量后将measResultServCell 包含最好的相邻小区,直至数目达maxReportCells。 如果triggerType为“event”,或者purpose为“reportStrongestCells”,设置measResult包含reportConfig中reportQuantity指示的测量量,按triggerQuantity降序排列,也就是说最好的小区被包含在最前面。 如果purpose为“reportCGI”,包含含有所有已经成功获取的域的cgi-Info

●接收网元(eNB)处理:获取测量结果。

测量报告消息内容如图1 – 4所示:

图1 – 4:测量报告消息内容

关键IE:

physCellId:所报告小区的物理小区ID

cellGlobalId:所报告小区的CGI OPTIONAL

trackingAreaCode:跟踪区域码 OPTIONAL

plmn-IdentityList:PLMN标识列表 OPTIONAL

rsrpResult:RSRP测量结果

rsrqResult:RSRQ测量结果

2 切换过程

作为TD-SCDMA演进技术的TD-LTE系统,可以采用快速硬切换方法实现不同频段之间以及各系统间的切换,从而更好地实现地域覆盖和无缝切换,并且实现与现有3GPP和非3GPP的兼容。软切换由于设备复杂度高、定时难度大,会带来较高处理能力的需求,因而未被采用。核心网的设计也发生了相应的改变,增加了系统架构演进(SAE)和3GPP模块,实现了LTE系统与3GPP和非3GPP系统切换的兼容。

2.1 切换技术

切换过程都会被分为4个步骤:测量、上报、判决和执行。接收功率、误比特率和链路距离都能够作为测量标准从而进行理论上的估计和相应的处理。TD-LTE系统的切换是UE辅助的硬切换,他和FDD-LTE硬切换的最大区别在于:在TD-LTE中导频信号是在一个特殊的时隙上进行传输,而FDD-LTE系统中导频信道则占用一整个帧长度,所以基于导频信道的测量标准对于TD-LTE来说并不是那么精确。所以对于TD-LTE的测量,还需要结合信道质量、UE的位置和导频信号强度来进行。

在连接模式下的E-UTRAN内切换是终端辅助网络控制的切换。切换主要分成切换准备、切换执行和切换完成3个部分,这3个部分在文章的信令交互部分有详细的说明。其中eNB包括以下几种切换:

基于无线质量的切换:

通常进行此类切换的原因是:UE的测量报告显示出存在比当前服务小区信道质量更好的邻小区。

基于无线接入技术覆盖的切换:

此类切换是在UE丢失当前无线接入技术(RAT)覆盖从而连接到其他RAT的情况下产生的。例如,一个UE远离了城市区域从而丢失TD-LTE覆盖,网络就会切换到UE检测到的质量次好的RAT,如通用移动通信系统(UMTS)或者全球移动通信系统(GSM)。

基于负载情况的切换:

此类切换用于当一个给定小区过载时,尽量平衡属于同一操作者的不同RAT间的负载状况。例如,如果当一个TD-LTE小区非常拥挤,一些用户就需要转移到相邻TD-LTE小区或是相邻UMTS小区中。

2.2 切换

2.2.1 切换类型

LTE切换可分为以下几种类型:

●系统内切换

—eNB内切换(intra-eNB):同一个eNB下2个小区之间的切换;

—eNB间切换(inter-eNB):X2切换、S1切换。不同eNB下的2个小区之间的切换;

●系统间切换:

E-UTRAN与其他系统之间的切换(inter-RAT)

2.2.2 切换原则

1. eNB选择信号最强(RSRP/RSRQ值最大)的小区作为目标小区;

2. 如果目标小区同是存在S1和X2接口,则进行X2切换;

2.2.3 切换方法

采用了UE辅助网络控制的方法,分为测量→上报→判决→执行4个步骤。

2.3 切换流程

RRCConnectionReconfiguration这条消息是用来修改RRC连接配置的,主要内容包含测量配置(measConfig)、移动性控制(mobilityControlInfo)、无线资源管理(RBs、MAC层主要配置、物理信道配置)、NAS消息和鉴权配置。

切换命令为携带IE mobilityControlInfo 的RRCConnectionReconfiguration消息。

2.3.1 eNB内切换

图2 – 1:eNB内切换流程

1. eNodeB根据区域限制信息配置UE的测量过程,并通过RRC重配置消息发送测量控制信息给UE。UE按照eNodeB下发的测量控制在UE的RRC协议端进行测量配置, 并向eNodeB发送RRC Connection Reconfiguration Complete消息表示测量配置完成。

2. UE按照测量配置向eNodeB上报测量报告,包含服务小区和邻小区信息,如RSRP、RSRQ测量信息。

3. eNodeB基于测量报告和无线资源管理信息作出UE切换的判决。当eNodeB认为切换有必要,就确定一个合适的目标小区,请求接入控制目标小区。

4. 目标小区进行资源准入,为UE的接入分配空口资源和业务的SAE(System Architecture Evolution)承载资源。

5. 源小区将切换执行时UE接入目标小区所需的参数生成RRC Connection Reconfiguration信息发送给UE执行切换。主要包括小区ID、载波频率、目标功率等无线资源和物理资源配置等。

6. 与目标小区完成上行同步。

7. UE接收到包含MobilityControlInfo的RRC重配置消息后,中断与源小区的无线连接,并开始同目标小区建立新的无线连接,在这段时间内,数据传输被中断。这其中包括下行同步建立、定时提前、数据发送等步骤。当UE成功接入到目标小区,UE发送RRC连接重配置完成信息到目标小区去指示切换进程对于UE已完成。

图2-2:eNB内切换信令

RRC Connection Reconfiguration:该消息携带有IE mobilityControlInfo,表示切换命令。消息内容如图所示:

图2 – 3:RRC Connection Reconfiguration消息内容

关键IE:

targetPhysCellId:目标小区的物理小区ID

carrierFreq:载频(如果没包含此IE,则认为目标小区处在当前的频率上)

t304:T304定时器 。当UE收到携带IE mobilityControlInfo 的RRC Connection Reconfiguration消息时启动此定时器,成功切换到目标小区时停止此定时器,超时则表示切换失败。

newUE-Identity:新的UE标识

2.3.2 基于X2的切换

图2 – 4:基于X2的切换流程

1. Source eNodeB根据区域限制信息配置UE的测量过程,并通过RRC重配置消息发送测量控制信息给UE。UE按照eNodeB下发的测量控制在UE的RRC协议端进行测量配置, 并向eNodeB发送RRC ConnectionReconfiguration Complete消息表示测量配置完成。

2. UE按照测量配置向eNodeB上报测量报告。Source eNodeB基于测量报告和无线资源管理信息作出UE切换的判决。当Source eNodeB认为切换有必要,就确定一个合适的目标小区,请求接入控制目标小区的Source eNodeB。

3. 为了在目标侧为切换预留资源,Source eNodeB向TargeteNodeB发送Handover Request信息,并传送必要的信息,包括:切换原因、目标小区ID、UE上下文信息、SAE承载ID、SAE承载QOS参数、RRC上下文信息等。目标小区进行资源准入,为UE的接入分配空口资源和业务的SAE承载资源。

4. 目标小区资源准入成功后,向Source eNodeB发送Handover Request Acknowledge消息,通知源eNB已在目标eNB中准备好资源。包括:SAE承载信息。

5. Source eNodeB将切换执行时UE接入目标小区所需的参数生成RRC Connection Reconfiguration消息发送到UE。主要包括小区ID、载波频率、目标功率等无线资源和物理资源配置等。

6. 该消息由源eNB发送给目标eNB,用于在切换过程中发送上行/下行E-RAB的PDCP SN和HFN状态。

7. 与目标小区完成上行同步。

8. UE接收到包含MobilityControlInfo的RRC重配置消息后,中断与Source eNodeB的无线连接,并开始同Target eNodeB建立新的无线连接,在这段时间内,数据传输被中断。这其中包括下行同步建立、定时提前、数据发送等步骤。当UE成功接入到目标小区,UE发送RRC连接重配置完成信息到Target eNodeB去指示切换进程对于UE已完成。

下图是在eNB侧跟踪到的信令流程图:

图2 – 5:基于X2切换的信令

Handover Request:

关键IE:

UE-X2AP-ID \ ECGI \ GUMMEI

Cause:原因

UE-contextInformation:UE上下文信息

UE-HistoryInformation:UE历史信息

TraceActivation:

图2 – 6:handover request消息内容

其中UE上下文信息中包含上行GTP隧道信息,如下图:

图2 – 7:UE上下文信息

Handover Request Acknowledge:

Handover Request Acknowledge消息内容包含新的UE-X2AP-ID(UE-X2AP-ID-NEW)、承载信息和切换命令,如下图所示:

图2 – 8:Handover Request Acknowledge消息内容

SN Status Transfer:

对于PDCP SN 和HFN状态被保存的每一个SAE承载,在X2接口切换时,从源eNB到目标eNB传送上行PDCP-SN和HFN 的接收状态,下行PDCP-SN和HFN的发送状态 。

内容如下图所示:

图2 – 9:SN Status Transfer消息内容

Path Switch Request:

路径转换请求的目的是请求将下行GTP隧道转换到新的GTP隧道终结点。 消息内容如下图所示:

图2 – 10:Path Switch Request消息内容

UE CONTEXT RELEASE:

切换成功后请求源eNB释放相关资源。消息内容如下:

图2 – 11:UE CONTEXT RELEASE消息内容

2.3.3 基于S1的切换

1 测量过程

测量过程主要包括以下三个步骤:

测量配置:由eNB通过RRCConnectionReconfigurtion消息携带的measConfig信元将测量配置消息通知给UE,即下发测量控制。

测量执行:UE会对当前服务小区进行测量,并根据RRCConnectionReconfigurtion消息中的s-Measure信元来判断是否需要执行对相邻小区的测量。

测量报告:测量报告触发方式分为周期性和事件触发。当满足测量报告条件时,UE将测量结果填入MeasurementReport消息,发送给eNB。

1.1 测量配置

测量配置主要由eNB通过RRCConnectionReconfigurtion消息携带的measConfig信元将测量配置消息通知给UE,包含UE需要测量的对象、小区列表、报告方式、测量标识、事件参数等。

当测量条件改变时,eNB通知UE新的测量条件。

图1-1 测量配置消息

1.1.1 RRCConnectionReconfigurtion消息

●触发条件:eNB向UE发起/修改/删除测量。

●发送网元:(eNB)处理:将测量配置填项填入RRCConnectionReconfigurtion消息中的measConfig信元。

●接收网元(UE)处理:UE侧维护一个测量配置数据库VarMeasConfig,在VarMeasConfig中,每个measId对应一个measObjectId和一个reportConfigId。其中,measId是数据库测量配置条目索引;measObjectId是测量对象标识,对应一个测量对象配置项;reportConfigId是测量报告标识,对应一个测量报告配置项。此外还包含了与measId无关的公共配置项quantityConfig、测量量配置、s-Measure和服务小区质量门限控制等。

图1-2 测量配置内容

Measurement objects(测量对象):

UE测量的对象如下

●对于频率内和频率间的测量,测量对象是一个单一的E-UTRA承载频率。与该承载频率相关的,E-UTRAN可以配置一系列的特定频偏的小区和黑名单小区。黑名单小区在事件评估或者测量报告中不被考虑。

●对于不同RAT间的UTRA测量,测量对象为在一个单一UTRA承载频率上的小区集。

●对于不同RAT间的GERAN测量,测量对象为一个GERAN承载频率集。

Reporting configurtions(报告配置):

●报告标准:该标准触发UE发送一条测量报告。这可以是周期性的或者是单一事件的描述。

●报告格式:在测量报告中UE包含的量以及相关的信息(例如报告小区的数量)。

Measurement identities(测量标识):每一个测量ID对应着一个测量对象和一个报告配置。对多个测量ID来说可能是对应着多个测量对象和同一个报告配置,也可能是对应这一个测量对象和多个报告配置。

Quantity configurations(测量量配置):定义了测量量和用于所有事件评估和相关测量报告类型。每个测量量可以配置一个滤波器。

Measurement gaps(测量间隔):UE可以用于在异频实施测量的时间(针对异频测量)。定义了MGRP(Measurement Gap Repetition Period)和MGL(Measurement Gap Length)。

s-Measure:服务小区质量门限控制。如果没有配置s-Measure或者配置了s-Measure但是服务小区的RSRP低于这个值,那么UE会执行相关测量 。

关键IE:

carrierFreq:E-UTRAN承载频率

allowedMeasBandwidth:允许测量带宽。在同频小区选择参数或异频列表上配置

presenceAntennaPort1:当前天线端口

neighCellConfig:相邻小区配置。与MBSFN有关

offsetFreq:承载频率的偏移值(同频在代码里写死,异频可以在异频列表上配置)。

cellsToRemoveList:相邻小区删除列表

cellsToAddModList:相邻小区添加/修改列表。配置相邻小区。

blackCellsToRemoveList:黑名单小区删除列表

blackCellsToAddModList:黑名单小区添加/修改列表

cellForWhichToReportCGI:需要报告CGI的小区物理ID

trigerType:报告触发类型。分为事件型和周期型。周期型测量按照测量目的可分为:报告最强小区和小报小区CGI。

reportOnLeave:表示当cellsTriggeredList中的小区处于离开状态时,UE是否应该再执行一次测量报告过程。

Hysteresis:滞后参数(0-30)表示事件触发报告条件下进入和离开条件的参数。

timeToTrigger:满足条件是触发测量报告的时间

triggerQuantity:用来确定评估事件型触发报告的标准,取“RSRP”代表用RSRP作为评估标准,取“RSRQ”代表用RSRQ作为评估标准。

maxReportCells:包括服务小区在内的测量上报小区最大数

reportInterval:报告间隔,在切换过程中未收到RRC Connection Reconfiguration时UE发送测量报告的间隔。

reportAmount:满足上报条件的测量报告数目。(对切换未成功的限制,与切换时的回切次数无关)

1.2 测量执行

UE测量可分为RRC_IDLE状态下和RRC_CONNECTED状态下的测量。

●RRC_IDLE状态下的测量:用于小区重选;

●RRC_CONNECTED状态下的测量:用于切换。

UE可以进行以下类型的测量:

1. 同频测量:在服务小区的下行载频上进行测量,包括:RSRP、RSRQ、Pthloss等。

2.异频测量:在不同于服务小区的下行载频上进行测量,包括RSRP、RSRQ、Pthloss等。

3.Inter-RAT测量:PCCPCH RSCP、CPICH RSCP、CPICH Ec/No、GSM Carrier RSSI、BSIC Identification、BSIC Reconfirmation等

按照UE的测量量不同可分为RSRP和RSRQ。

1.2.1 RSRP

1.2.2 RSRQ

1.3 测量报告

满足测量报告条件时,通过事件报告eUTRAN。内容包括:测量ID、服务小区的测量结果(RSRP和RSRQ的测量值)、邻小区的测量结果(可选)。

图1 – 3:测量报告消息

测量报告方式:按时触发类型,分为周期性和事件触发。

●周期性触发:按照eNB设定的报告间隔与总次数周期性发送

—reportStrongestCells :报告最强小区

—reportCGI :上报全球小区标识

●事件触发:满足报告条件时,发送测量报告

1.3.1 系统内测量事件

系统内测量事件采用Ax来标识,系统内事件的报告各类:

eventA1

服务小区质量高于一个绝对门限(serving > threshold)。用于关闭正在进行的频间测量,在RRC控制下去掉激活测量间隙(gap)

事件进入条件:Ms - Hys > Thresh

事件离开条件:Ms + Hys < Thresh

其中:

Ms:为服务小区的测量结果,没有计算任何小区各自的偏置如果测量的是RSRP则单位为dBm,如果是RSRQ则单位为dB。

Hys:为此事件的滞后参数。单位为dB。取值范围(0-30),实际值=取值*0.5dB

Thresh:为此事件的门限参数。单位同Ms一样

eventA2

服务小区质量低于一个绝对门限(serving < threshold)。用于打开频间测量,在RRC控制下激活测量间隙(gap)。

事件进入条件:Ms + Hys < Thresh

事件离开条件:Ms - Hys > Thresh

eventA3

邻小区比服务小区质量高于一个门限,用于频内/频间的基于覆盖的切换。

事件进入条件:Mn - Offset - Hys > Ms

事件离开条件:Mn - Offset + Hys < Ms

其中:

Offset = a3-offset + Ofs + Ocs - Ofn - Ocn

其中:

Mn:邻小区的测量结果,不考虑计算任何偏置。

Ofn:该邻区频率特定的偏置(即offsetFreq在measObjectEUTRA中被定义为对应于邻区的频率)

Ocn:为该邻区的小区特定偏置(即cellInpidualOffset在measObjectEUTRA中被定义为对应于邻区的频率),同时如果没有为邻区配置,则设置为零。

Ms:为没有计算任何偏置下的服务小区的测量结果。

Ofs:为服务频率上频率特定的偏置(即offsetFreq在measObjectEUTRA中被定义为对应于服务频率)

Ocs:为服务小区的小区特定偏置(即cellInpidualOffset在measObjectEUTRA中被定义为对应于服务频率),并设置为0,如果没有为服务小区配置的话;

Hys:为该事件的滞后参数(即hysteres为reportConfigEUTRA内为该事件定义的参数)。

a3-Offset :为该事件的偏移参数(即a3-Offset为reportConfigEUTRA内为该事件定义的参数)。

Ofn, Ocn, Ofs, Ocs, Hys, Off 单位为dB

eventA4

邻小区质量高于一个绝对门限。用于基于负荷的切换。可用于负载平衡,与移动到高优先级的小区重选相似。

事件进入条件:Mn + Offset - Hys > Thresh

事件离开条件:Mn + Offset + Hys < Thresh

其中,

Offset = Ofn + Ocn

eventA5

服务小区质量低于一个绝对门限门限1(Serving<threshold1)并且邻小区质量高于一个绝对门限2(Serving>threshold2)。用于频内/频间的基于覆盖的切换。可用于负载平衡,与移动到低优先级的小区重选相似。

事件进入条件:Ms + Hys < Thresh1 & Mn + Offset - Hys >Threah2

事件离开条件:Ms - Hys > Thresh1 or Mn + Offset + Hys < Thresh2

其中,

Offset = Ofn + Ocn

1.3.2 系统间测量事件

异系统测量事件采用Bx来标识,事件报告种类:

EventB1

邻小区比绝对门限好。用于测量高优先级的的RAT小区。

事件进入条件:Mn + Ofn - Hys > Thresh

事件离开条件:Mn + Ofn + Hys < Thresh

EventB2

服务小区质量低于一个绝对门限门限1(Serving<threshold1)并且邻小区质量高于一个绝对门限2(Serving>threshold2)。用于相同或低优先级的RAT小区的测量。

事件进入条件:Mn + Hys < Thresh1 & Mn + Ofn - Hys >Thresh2

事件离开条件:Mn - Hys > Thresh1 or Mn + Ofn + Hys <Thresh2

1.3.3 MeasurementReport消息

●触发条件:当UE完成测量后,会依照测量报告配置对报告条件进行评估,当设定条件满足时,UE会将测量结果填入MeasurementReport消息,发送给eNB。

●发送网元(UE)处理:测量后将measResultServCell 包含最好的相邻小区,直至数目达maxReportCells。 如果triggerType为“event”,或者purpose为“reportStrongestCells”,设置measResult包含reportConfig中reportQuantity指示的测量量,按triggerQuantity降序排列,也就是说最好的小区被包含在最前面。 如果purpose为“reportCGI”,包含含有所有已经成功获取的域的cgi-Info

●接收网元(eNB)处理:获取测量结果。

测量报告消息内容如图1 – 4所示:

图1 – 4:测量报告消息内容

关键IE:

physCellId:所报告小区的物理小区ID

cellGlobalId:所报告小区的CGI OPTIONAL

trackingAreaCode:跟踪区域码 OPTIONAL

plmn-IdentityList:PLMN标识列表 OPTIONAL

rsrpResult:RSRP测量结果

rsrqResult:RSRQ测量结果

2 切换过程

作为TD-SCDMA演进技术的TD-LTE系统,可以采用快速硬切换方法实现不同频段之间以及各系统间的切换,从而更好地实现地域覆盖和无缝切换,并且实现与现有3GPP和非3GPP的兼容。软切换由于设备复杂度高、定时难度大,会带来较高处理能力的需求,因而未被采用。核心网的设计也发生了相应的改变,增加了系统架构演进(SAE)和3GPP模块,实现了LTE系统与3GPP和非3GPP系统切换的兼容。

2.1 切换技术

切换过程都会被分为4个步骤:测量、上报、判决和执行。接收功率、误比特率和链路距离都能够作为测量标准从而进行理论上的估计和相应的处理。TD-LTE系统的切换是UE辅助的硬切换,他和FDD-LTE硬切换的最大区别在于:在TD-LTE中导频信号是在一个特殊的时隙上进行传输,而FDD-LTE系统中导频信道则占用一整个帧长度,所以基于导频信道的测量标准对于TD-LTE来说并不是那么精确。所以对于TD-LTE的测量,还需要结合信道质量、UE的位置和导频信号强度来进行。

在连接模式下的E-UTRAN内切换是终端辅助网络控制的切换。切换主要分成切换准备、切换执行和切换完成3个部分,这3个部分在文章的信令交互部分有详细的说明。其中eNB包括以下几种切换:

基于无线质量的切换:

通常进行此类切换的原因是:UE的测量报告显示出存在比当前服务小区信道质量更好的邻小区。

基于无线接入技术覆盖的切换:

此类切换是在UE丢失当前无线接入技术(RAT)覆盖从而连接到其他RAT的情况下产生的。例如,一个UE远离了城市区域从而丢失TD-LTE覆盖,网络就会切换到UE检测到的质量次好的RAT,如通用移动通信系统(UMTS)或者全球移动通信系统(GSM)。

基于负载情况的切换:

此类切换用于当一个给定小区过载时,尽量平衡属于同一操作者的不同RAT间的负载状况。例如,如果当一个TD-LTE小区非常拥挤,一些用户就需要转移到相邻TD-LTE小区或是相邻UMTS小区中。

2.2 切换

2.2.1 切换类型

LTE切换可分为以下几种类型:

●系统内切换

—eNB内切换(intra-eNB):同一个eNB下2个小区之间的切换;

—eNB间切换(inter-eNB):X2切换、S1切换。不同eNB下的2个小区之间的切换;

●系统间切换:

E-UTRAN与其他系统之间的切换(inter-RAT)

2.2.2 切换原则

1. eNB选择信号最强(RSRP/RSRQ值最大)的小区作为目标小区;

2. 如果目标小区同是存在S1和X2接口,则进行X2切换;

2.2.3 切换方法

采用了UE辅助网络控制的方法,分为测量→上报→判决→执行4个步骤。

2.3 切换流程

RRCConnectionReconfiguration这条消息是用来修改RRC连接配置的,主要内容包含测量配置(measConfig)、移动性控制(mobilityControlInfo)、无线资源管理(RBs、MAC层主要配置、物理信道配置)、NAS消息和鉴权配置。

切换命令为携带IE mobilityControlInfo 的RRCConnectionReconfiguration消息。

2.3.1 eNB内切换

图2 – 1:eNB内切换流程

1. eNodeB根据区域限制信息配置UE的测量过程,并通过RRC重配置消息发送测量控制信息给UE。UE按照eNodeB下发的测量控制在UE的RRC协议端进行测量配置, 并向eNodeB发送RRC Connection Reconfiguration Complete消息表示测量配置完成。

2. UE按照测量配置向eNodeB上报测量报告,包含服务小区和邻小区信息,如RSRP、RSRQ测量信息。

3. eNodeB基于测量报告和无线资源管理信息作出UE切换的判决。当eNodeB认为切换有必要,就确定一个合适的目标小区,请求接入控制目标小区。

4. 目标小区进行资源准入,为UE的接入分配空口资源和业务的SAE(System Architecture Evolution)承载资源。

5. 源小区将切换执行时UE接入目标小区所需的参数生成RRC Connection Reconfiguration信息发送给UE执行切换。主要包括小区ID、载波频率、目标功率等无线资源和物理资源配置等。

6. 与目标小区完成上行同步。

7. UE接收到包含MobilityControlInfo的RRC重配置消息后,中断与源小区的无线连接,并开始同目标小区建立新的无线连接,在这段时间内,数据传输被中断。这其中包括下行同步建立、定时提前、数据发送等步骤。当UE成功接入到目标小区,UE发送RRC连接重配置完成信息到目标小区去指示切换进程对于UE已完成。

图2-2:eNB内切换信令

RRC Connection Reconfiguration:该消息携带有IE mobilityControlInfo,表示切换命令。消息内容如图所示:

图2 – 3:RRC Connection Reconfiguration消息内容

关键IE:

targetPhysCellId:目标小区的物理小区ID

carrierFreq:载频(如果没包含此IE,则认为目标小区处在当前的频率上)

t304:T304定时器 。当UE收到携带IE mobilityControlInfo 的RRC Connection Reconfiguration消息时启动此定时器,成功切换到目标小区时停止此定时器,超时则表示切换失败。

newUE-Identity:新的UE标识

2.3.2 基于X2的切换

图2 – 4:基于X2的切换流程

1. Source eNodeB根据区域限制信息配置UE的测量过程,并通过RRC重配置消息发送测量控制信息给UE。UE按照eNodeB下发的测量控制在UE的RRC协议端进行测量配置, 并向eNodeB发送RRC ConnectionReconfiguration Complete消息表示测量配置完成。

2. UE按照测量配置向eNodeB上报测量报告。Source eNodeB基于测量报告和无线资源管理信息作出UE切换的判决。当Source eNodeB认为切换有必要,就确定一个合适的目标小区,请求接入控制目标小区的Source eNodeB。

3. 为了在目标侧为切换预留资源,Source eNodeB向TargeteNodeB发送Handover Request信息,并传送必要的信息,包括:切换原因、目标小区ID、UE上下文信息、SAE承载ID、SAE承载QOS参数、RRC上下文信息等。目标小区进行资源准入,为UE的接入分配空口资源和业务的SAE承载资源。

4. 目标小区资源准入成功后,向Source eNodeB发送Handover Request Acknowledge消息,通知源eNB已在目标eNB中准备好资源。包括:SAE承载信息。

5. Source eNodeB将切换执行时UE接入目标小区所需的参数生成RRC Connection Reconfiguration消息发送到UE。主要包括小区ID、载波频率、目标功率等无线资源和物理资源配置等。

6. 该消息由源eNB发送给目标eNB,用于在切换过程中发送上行/下行E-RAB的PDCP SN和HFN状态。

7. 与目标小区完成上行同步。

8. UE接收到包含MobilityControlInfo的RRC重配置消息后,中断与Source eNodeB的无线连接,并开始同Target eNodeB建立新的无线连接,在这段时间内,数据传输被中断。这其中包括下行同步建立、定时提前、数据发送等步骤。当UE成功接入到目标小区,UE发送RRC连接重配置完成信息到Target eNodeB去指示切换进程对于UE已完成。

下图是在eNB侧跟踪到的信令流程图:

Handover Request Acknowledge消息内容包含新的UE-X2AP-ID(UE-X2AP-ID-NEW)、承载信息和切换命令,如下图所示:

图2 – 8:Handover Request Acknowledge消息内容

SN Status Transfer:

对于PDCP SN 和HFN状态被保存的每一个SAE承载,在X2接口切换时,从源eNB到目标eNB传送上行PDCP-SN和HFN 的接收状态,下行PDCP-SN和HFN的发送状态 。

内容如下图所示:

图2 – 9:SN Status Transfer消息内容

Path Switch Request:

路径转换请求的目的是请求将下行GTP隧道转换到新的GTP隧道终结点。 消息内容如下图所示:

图2 – 10:Path Switch Request消息内容

UE CONTEXT RELEASE:

切换成功后请求源eNB释放相关资源。消息内容如下:

图2 – 11:UE CONTEXT RELEASE消息内容

图2 – 12:基于S1的切换流程

1. Source eNodeB根据区域限制信息配置UE的测量过程,并通过RRC重配置消息发送测量控制信息给UE。UE按照eNodeB下发的测量控制在UE的RRC协议端进行测量配置, 并向eNodeB发送RRC Connection Reconfiguration Complete消息表示测量配置完成。

2. UE按照测量配置向eNodeB上报测量报告。Source eNodeB基于测量报告和无线资源管理信息作出UE切换的判决。当Source eNodeB认为切换有必要,就确定一个合适的目标小区,请求接入控制目标小区的Source eNodeB。

3. Source eNodeB向MME(Mobility Management Entity) 发送Handover Required信息,用于请求目标端准备资源,并传送必要的信息,包括:切换原因、目标小区ID、TAI信息、UE RAN上下文信息等。

4. 为了在目标侧为切换预留资源,MME向Target eNB发送Handover Request信息,并传送必要的信息,包括:切换原因、目标小区ID、UE上下文信息、SAE承载ID、SAE承载QOS参数、RRC上下文信息等。目标小区进行资源准入,为UE的接入分配空口资源和业务的SAE承载资源。

5. 目标小区资源准入成功后,向MME发送Handover Request Acknowledge消息,通知已在目标eNB中准备好资源。包括:SAE承载信息。

6. MME向Source eNodeB发送Handover Command消息,通知源eNodeB,目标端已经准备好切换的资源。包含:SAE承载ID、下行传输层地址等。

7. Source eNodeB将切换执行时UE接入目标小区所需的参数生成RRC Connection Reconfiguration消息发送到UE。主要包括小区ID、载波频率、目标功率等无线资源和物理资源配置等。

8. 该消息由源eNB发送给MME,用来传输PDCP接收和发送状态序列号。

9. 该消息由MME发送给目标eNB,用来传输PDCP接收和发送状态序列号。

10. 与目标小区完成上行同步。

11. UE接收到包含MobilityControlInfo的RRC重配置消息后,中断与Source eNodeB的无线连接,并开始同Target eNodeB建立新的无线连接,在这段时间内,数据传输被中断。这其中包括下行同步建立、定时提前、数据发送等步骤。当UE成功接入到目标小区,UE发送RRC连接重配置完成信息到Target eNodeB去指示切换进程对于UE已完成。

在eNB侧跟踪信令流程图如下:

图2 – 12:基于S1的切换信令流程

源eNB侧的信令 :

目标eNB侧的信令 :

本文源自网络,如有版权问题请联系我删除

相关文章推荐阅读:
拨打服务热线后的评价
超帅先生2023-07-08

维修师傅服务态度很好,快速的解决了燃气灶火不稳定的问题,维修速度很快很专业

猫~2023-07-08

不知道是因为什么原因,师傅上门来给我检查了,告诉我了是什么原因,什么问题,然后我就让他修了,修理的很好,价格收费什么的也很合理

Maio2023-07-04

师傅服务态度很好,按约定好的时间很准时到了,维修很专业,一会儿功夫就给修好了,油烟机终于可以正常运作了

唐伍君2023-06-30

冰箱的制冷修理好了,之前冻不起来东西,现在好了师父上门维修特别快,很仔细很认真,工作态度端正,而且其他问题也能帮忙处理没有收其他费用很满意

碧水铃2023-06-30

热水器管子漏水了,自己用胶带缠了一下发现还是有点漏,就预约了师傅来上门更换了下,费用还是可以接受的,师傅态度做事不错

硪的醉暧2023-06-28

有专业的技术的人员,都拥有专业的培训,服务质量好,态度满意,价格合理

发***火(匿名2023-06-10

收费合理,师傅上门准时。态度挺好

2023-06-01

油烟机突然不转了,没办法就找了师傅上门,检查后说是电机烧了,换了一个,半个小时就修好了,很专业

是阿雯吖2023-05-08

热水器滴滴滴异响,在这家店下单后师傅很快就联系我了,跟师傅电话聊好价格就上门了,换了显示面板、目前没有再继续乱响。

回忆童年2023-04-01

空调已修好,师傅服务周到,态度很好

查看更多评价 ∨
电话
预约报修
维修电话