APP下载

SDN网络流量分类技术研究综述

2018-03-29蒋海军郭小帆邱宏琼

网络安全与数据管理 2018年2期
关键词:网络流量数据包端口

蒋海军,谢 钧,郭小帆,邱宏琼,强 振

(1.陆军工程大学 指挥控制工程学院,江苏 南京 210007; 2. 31103部队,江苏 南京 210016;3.73127部队,福建 福州 350003;4.31618部队,福建 福州 350003)

0 引言

当前,以互联网为代表的信息技术在全球范围得到了迅速发展和普及。据中国互联网络信息中心(CNNIC)第40次《中国互联网络发展状况统计报告》[1]数据显示:截至2017年6月,我国网民总数达到7.51亿,互联网普及率达到54.3%。其中移动互联网的主导地位进一步加强,手机网民7.24亿,占总网民数的96.3%。截止到2017年6月,我国国际出口带宽达到7 975 Gb/s,较2016年12月增长20.1%。网络用户增多,传输数据流量增大,网络应用业务不断丰富,使得网络资源使用紧张,存在资源分配不均衡、利用率低等问题。

传统的互联网体系架构在最初的设计理念、方法上存在“先天性的”不足,导致其在网络流量的管理控制、网络资源的高效使用和网络运行的安全性、稳定性等方面都遇到了很多问题和挑战。为了应对这些挑战,产业界和学术界很多学者都展开了对下一代网络的研究。在众多的研究方案中,美国斯坦福大学的MCKEOWN N教授等提出的基于OpenFlow的软件定义网络(Software Defined Network,SDN)[2]被认为是最具前途的技术之一。SDN作为一种新型的网络架构[3],很好地解决了传统网络把控制逻辑和数据转发耦合在网络设备上而导致网络控制平面管理的复杂性问题,也使得网络控制层面新技术的更新和发展具有更好的灵活性和扩展性。

在基于OpenFlow协议的SDN网络架构下,数据根据流表进行转发,虽然控制器可以通过匹配IP地址、通信端口、物理地址等流表项属性值实现对单个流的管理和控制,但是SDN并没有提供一种机制来分类数据流所对应的应用和协议类型。因此在SDN网络架构下,流量分类仍然是实施精细化、个性化网络管理的重要前提。此外由于SDN具有更强的对全局网络态势的感知能力和对全局网络流量的控制能力,流量分类发挥的作用更为明显。目前网络流量分类方法主要有4种:基于端口的流量分类技术、基于深度包检测(Deep Packet Inspection,DPI)的流量分类技术、基于流统计特征的机器学习(Machine Learning,ML)的流量分类和基于用户行为特征的流量分类技术。

1 传统网络架构流量分类主要技术

1.1 基于端口的流量分类技术

在传统的网络环境下,互联网数字分配机构(IANA)对一些常用的传输层服务端口进行了预定义,通常在0~1 023之间。例如HTTP协议使用80端口,DNS域名服务使用53端口,FTP文件传输协议使用21端口等。此外,注册协议主要使用1 024-49 151之间的端口,剩下的49 152-65 535端口不作特殊规定。早期,各种协议和网络应用都遵循该规则,使用的端口比较固定,因此通过端口映射的方法可以进行网络流量分类。这种方法只需要进行端口匹配,因此具有简单、快速、易于实现、准确率高等优点。但是随着网络应用的发展,出于不同的目的,一部分网络应用使用了端口变换和伪装技术,使得基于端口映射的流量分类技术无法有效应用。MADHUKAR A等[4]在实验中证实了有30%~70%的流量都无法利用端口来进行正确分类。

1.2 基于DPI的流量分类技术

数据包的载荷部分含有大量信息,DPI就是利用这些信息进行分类。基于DPI流量分类技术是依据特定协议或应用的特征码来实现的,通过对网络流量中的载荷数据进行特征码匹配,来获取流量的分类。

基于DPI的分类技术虽然具有较高的准确率,但也存在一些缺点:消耗较多的计算资源,对数据加密分类能力较弱,各类应用特征码提取和更新比较困难,对载荷数据的分析会带来对用户隐私权的侵犯。

DPI作为一种成熟的流量分类技术,在商业场合有着广泛的应用。目前很多学者试图从硬件、架构、多技术融合、数据处理方式等多个方面提高DPI技术的分类效率和速度。BUJLOW T等[5]通过建立真实标签的可信数据集,对流行的商业和开源DPI软件进行测试。在提升DPI性能方面,DE SENSI D等[6]提出了一种基于FastFlow库的DPI框架,以更好地解决DPI对多核硬件平台的支持。付文亮等[7]基于FPGA硬件和DPI技术进行实时网络流分类,取得了很好的效果。Alcock等[7]利用开源软件库Libprotoident,提出一种轻量级的DPI分类方案,只通过数据包载荷的前4字节进行分类,在准确率和性能上相对于其他基于DPI的开源软件库都有很大的优势。GRIMAUDO L等[8]基于DPI技术,采用层次化分类结构,结合多种策略,对DPI进行优化。YEGANEH S H等[9]则采用一种加权“Term”的智能化表达式代替传统的正则表达式,类似Libprotoident的思想,并且只检测一个流的前几个字节,从而提高网络流分类的效率。

1.3 基于流统计特征的机器学习方法

近年来,随着人工智能技术的发展,越来越多的研究者开始利用机器学习算法来解决流量分类问题。利用机器学习解决流量分类问题,主要有两个部分:训练数据集和机器学习算法。训练数据集的生成首先需要利用DPI工具、系统进程监控或人工的方法标注训练样本,得到样本标签,然后从网络流量中提取数据流的特征,最后利用训练集和机器学习算法得到分类器,即可用训练好的分类器对网络流量进行分类。早在2005年,MOORE A W等人[10]提出的248维特征,就从四层协议端口号、流的包数目、包大小、包之间的时间间隔等流属性进行特征提取,并对这些流属性进行傅里叶变换等计算,从不同视角提取特征,从而提高特征的维度和层次。文献[11]对包级别和流级别两种不同粒度的特征进行融合,提出载荷和流统计信息相结合的流特征属性,从而提高流分类的精度。

基于流统计特征的机器学习的流量分类方法主要有监督学习和无监督学习两种。

(1)有监督机器学习算法

有监督机器学习算法在各个领域都有广泛应用,研究者们也将各种机器学习算法运用到流量分类中。ESTE A等[12]采用SVM对互联网TCP流量进行分类,共使用了3个数据集进行实验,获得了相当高的精度。近年来,为提高大规模网络流的分类效率,也有学者基于Hadoop、Spark分布式平台提高SVM的处理性能[13-14]。文献[15-16]使用C5.0决策树对流量进行分类,并且都是通过系统守护进程监视数据包与应用程序之间的联系,产生真实应用标签来产生数据集,取得了很好的分类效果。文献[17-18]将神经网络算法用与网络流分类,对各种神经网络进行了算法改进和架构改进,取得了很好的效果。

(2)无监督机器学习算法

无监督机器学习主要使用聚类分析方法,与有监督的机器学习算法不同,在无监督机器学习中,训练样本无需标注。文献[19]使用高斯混合模型(GMM)利用数据包大小和方向进行加密流量的分类。ZANDER S等[20]提出了基于AutoClass的无监督网络流量分类方法,是一种基于期望最大化(Expectation maximization,EM)算法的无监督贝叶斯分类器。文献[21-22]都将无监督的机器学习算法用与流量分类领域,此类算法为处理未知流量提供了很好的解决思路。

1.4 基于用户行为特征的流量分类技术

随着流特征加密技术的涌现,给基于流统计特征进行流量分类带来了一定的局限性。近年来,研究人员开始利用主机不同的通信行为模式进行网络流量分类。文献[23-24]提出了利用用户连接模式、连接图、网络连接直径等主机行为特征,对网络流量进行分析,开辟了分析网络流量分类的新方法。基于行为特征的流量分类技术主要通过分析网络协议和应用的连接特性和行为模式上的固有特性,达到对不同流量进行分类的目的。这种方法通常建模时间较长,时空复杂度高,应用有一定的局限性。

1.5 网络流量分类技术优缺点比较

表1对当前主流的网络流量分类技术的种类和各自特点和存在的缺点进行了比较,以便在实际工程应用中根据不同需求选择合适的技术方案。

表1 主要网络流量分类技术分类表

2 未来网络SDN架构下的流量分类

SDN对控制层面的集中,强化了对流量实施统一控制和管理的能力。基于SDN的流量分类对于进一步拓展网络的功能,实现网络流量的精细化管理和精准控制具有十分重要的意义,也得到了广大学者的关注。在基于OpenFlow的SDN环境下,文献[25]通过前N个数据包长度、源目的IP、端口信息作为流特征,将C5.0决策树算法运用到SDN上进行流量分类,但未能解决数据流随时间发生变化的问题。文献[26]通过采样技术,利用OpenFlow的本地计数器实现流统计特征采集,但此方法采集流特征的实时性不强,限制了在流早期分类场景下的应用。文献[27]则利用DPI的方法来分类YouTube视频流进行分类,并通过QoS预留带宽。文献[28]设计了一个基于DPI和机器学习算法的混合流量分类器,但未考虑数据流随时间发生变化的问题。

2.1 SDN环境下的流量分类和控制的特点

无论是在传统网络环境下还是在SDN网络环境下,流量分类的对象一直是网络流量本身,这一点始终没有发生变化,因此能够适用于传统网络下的流量分类技术、方法都可以用在SDN网络环境下,但是作为新一代网络的SDN,在体系结构,运行方式等方面都发生了很大的变化,因此基于SDN的流量分类在流量采集方式、流量特征提取、流量的控制管理等方面都发生了新的变化。

在SDN网络环境中,控制层面逻辑业务的集中,使控制器对流量的控制能力大大加强,通过流表项就可以实现数据报文的转发、丢弃和进入队列操作,其中进入队列操作就可以实现QoS功能。因此,如果能在流量建立的早期阶段就能通过流量分类来感知流量业务类型,并根据业务需求进行相应的控制,就能在控制器完成流量采集、特征提取、流量分类和流量控制整个闭合的流量控制过程,从而极大地提高流量分类在SDN网络环境下的应用价值。

2.1.1流量获取方式

在传统网络环境中,流量的获取方式通常有两个步骤:一是通过端口镜像或者分光器等手段引出所关注的流量;二是通过流量捕获设备获得流量数据并进行处理。流量捕获设备大多是基于Libpcap的包捕获机制,通过安装数据包捕获函数库(Library of Packet Capture,Libpcap)来实现。这种流量获取方式缺乏对数据进行有效的过滤,只能全盘接收镜像的所有流量,由于总带宽受端口速率的限制,在高带宽、大流量的场景下不可避免地存在丢包现象。

在基于OpenFlow的SDN网络环境下,数据以流为单位进行转发,当数据进入交换机时,会根据匹配的流表项中规定的动作对数据包进行操作,若未匹配到流表项,则会将数据包以Packet_in的消息形式转发到控制器,经过控制器决策后,决定该数据包的操作并下发该流的流表项,更新交换机流表。由此可知,数据流开始的第一个数据包会被转发到控制器中,后面的数据会根据控制器下发的流表项进行操作,如果控制器在下发的流表项的动作字段增加转发到控制器,那么该流的后续数据包都会发送到控制器中,从而实现了网络流量的采集。

但是,将所有数据转发到控制器并不是OpenFlow协议设计的初衷,因为这样会使控制器处理开销大大增加而不堪重负,特别是在网络流量大的网络节点上,很容易因为控制器的崩溃而导致网络瘫痪。如果只将网络流的前几个数据包转发到控制器,这样发送到控制器的流量将大大减少,在流量分类这个应用场景下,这就要求控制器在只分析流的开始前N个数据包情况下,能够完成流的分类工作,这也决定了SDN网络环境下更适合进行流量的早期分类。

2.1.2流统计特征提取

在传统网络环境中,数据流统计特征提取只有一种途径,那就是先获取流量,然后将流量按流进行重组、排序,再对流中的每一个数据包进行统计,从而得到流的统计信息。从上一节分析可知,在SDN控制器也可以通过这种方法得到流的统计信息,但是这种方法在流量大的场景下会极大地消耗控制器资源直至崩溃,因此用这种方法来提取数据流特征只适合转发数据包数量不多的场景,比如流量的早期分类。在OpenFlow交换机流表中针对每个流表、流表项和每个交换机端口都有一组计数器。其中基于流的计数器有接收的数据包数、接收的字节数、秒级持续时间和纳秒级持续时间。借助OpenFlow的Read-State消息,通过周期性地读取这些计数器信息,然后利用这些采样值,为提取数据流的统计信息提供了新的方法[26]。

假设以周期性C对SDN交换机的流本地计数器信息进行n次采样,得到n个流接收的字节数计数器数据记为B={b(1),b(2),…,b(n)},则第t个周期内流接收到的字节数为:

B(t)=b(t)-b(t-1)

(1)

得到n个流接收的数据包数计数器记为P={p(1),p(2),…,p(n)},则第t个周期内接收到的数据包数为:

P(t)=p(t)-p(t-1)

(2)

则第t个周期内平均数据包大小为:

(3)

该第t个周期内平均包到达时间间隔为:

(4)

以S(t)、T(t)作为基本量,进一步计算它们的均值和方差,可以得到S(t)的均值和方差为:

(5)

(6)

可以得到T(t)的均值和方差为:

(7)

(8)

根据MOORE AW等人[10]的研究,对包时间间隔进行离散傅里叶变换(Discrete Fourier Transform,DFT)可以得到在频域上的一系列分量,这些分量作为流特征从一定程度上刻画数据流在频域内的变化情况。式(9)是对包时间间隔进行DFT的计算公式。

(9)

通过以上采样数据计算,可以得到一系列关于流的统计特征。由于这些统计特征是依据采样数据计算的,因此采样周期C影响着统计数据与真实值之间的差异,同时,控制器发送Read-State消息对计数器进行采样的频率也极大地影响控制器的性能。因此周期C的选择要综合考虑统计数据的准确性和控制器性能之间的平衡,在取得可接受的数据准确性的同时尽量减少对控制器的影响。

3 网络流量分类领域主要面临的挑战

3.1 数据集的可信标注

无论是用于训练机器学习算法分类器的训练数据集,还是作为评价各种分类器性能的测试数据集,对数据集进行可信标注都是不可或缺的,但仍然是一个尚未解决的问题。目前对网络数据集的标注一般采用两种方法,即生成法和经验法。经验法是通过捕获网络数据包,并利用已有经验,对数据进行标注。很多研究者通过DPI工具L7-filter或nDPI等对数据包进行标注,就是运用了经验法。生成法是在一个受控环境或实验环境中部署目标应用,模拟各种运行模式,运行生成的日志即标注为目标运用。如可信标注工具GT(Ground Truth),文献[16]中提到的VBS系统和文献[29]中运行在移动设备端的守护进程,都是通过监测网络套接字的变化状态来收集数据流对应的应用,进行可信标注。相比于经验法,生成法难以真实反映真实的网络环境,但是其环境可控,标注可信,工作量也相对较少,已经越来越得到研究者的认可。

3.2 大规模实时分类的挑战

在线流量分类不同于离线流量分类,特别是高速网络环境下的在线流量分类,对特征提取速度和分类器效率提出了很高的要求,在线流量分类从工程实际角度出发,在数据流建立初期就进行分类,为后续的服务质量管理和流量安全管理提供了先决条件,在线流量分类的重要性不言而喻,从而吸引了大量学者进行研究。

在流量的早期分类方面,ACETO G等[30]利用网络流的第一个报文的载荷数据来进行在线流量分类。BERNAILLE L等[31]利用网络流建立初始阶段的前n个数据包的大小和方向作为流特征,取得了较好的分类效果。彭建芬等[32]发现在网络流建立初始阶段的前几个报文在大小、方向等特征上能够提取流特征,用于在线流量分类。这些研究说明了通过流的早期部分数据包进行流分类是可行的,提供了理论依据。在具体实现方面,文献[33-34]从提升网络流量处理性能角度对网络流量的在线分类工作进行改进,以提高在线分类速度和效能。

实时性的要求包含两个方面:快速的线上检测、快速的模型更新。但由于网络规模的日益增大,用户规模的不断增长,传统的机器学习方法在处理大规模网络流量分类问题时,其分类准确率与模型训练速率等通常难以取得平衡。仅靠使用更多的计算资源,无法满足现实的发展,需要从算法方面进行革新。

3.3 网络流量快速演化的挑战

网络流量数据最突出的特点就是其随时间快速演化,存在概念漂移的现象,并且不同地域、不同网络环境的协议类型的分布也不一致。现有方法缺乏对数据流中概念漂移的深入研究。一方面,网络数据流的演化特性,使其不能按照静态数据的传统方式多次反复读取,并且需要对于增量数据能够快速有效地更新模型。另一方面,还需要将不同地域、不同环境的网络流量统一处理,以获得良好的泛化能力。

4 结语

在移动互联网、大数据、云计算等新事物新技术不断发展的今天,流量分类出现了很多新情况,面临众多新的挑战。

一是面对海量数据,传统的单机处理模式已经很难满足计算要求,在这种情况下,利用Hadoop、Spark等并行处理技术和集群计算模式来处理实时网络流已经成为一种趋势,得到很多学者的关注。

二是在线学习是近年来广泛使用的一种解决大规模机器学习问题的方法。将在线学习算法用于实时流量分类也是当前研究的一个方向。但是一般意义上的在线学习算法在使用中并不区分训练阶段与测试阶段,模型在对样本进行预测后,通过接收正确的样本类别来决定是否更新模型。而网络流量分类问题中,模型在对样本进行预测后无法接收真实的样本类别。这就导致了在网络流量分类应用中,在线学习算法仅能运用于模型的离线训练阶段,无法实现模型的实时更新,使用在线算法的优点是能大大缩短模型离线训练所需要的时间,以实现模型的快速更新。

三是未来网络SDN控制层面的集中,对大型网络的集中管控和统一策略具有很大的实用价值,特别是对于大规模网络环境,其运行机制的复杂度会大大增加,因此大规模复杂的SDN环境的流量分类问题值得进一步研究。

[1] 中国互联网络信息中心(CNNIC). 第40次《中国互联网络发展状况统计报告》.(2017-08-04) http://cnnic.cn/gywm/xwzx/rdxw/201708/t20170804_69449.htm.

[2] MCKEOWN N. Software-defined networking[J]. INFOCOM Keynote Talk, 2009.

[3] FEAMSTER N, REXFORD J, ZEGURD E. The road to SDN: an intellectual history of programmable networks[J]. ACM SIGCOMM Computer Communication Review, 2014, 44(2): 87-98.

[4] MADHUKAR A, WILLIAMSON C. A longitudinal study of P2P traffic classification[C]//14th IEEE International Symposium on Modeling, Analysis, and Simulation. IEEE, 2006: 179-188.

[6] DE SENSI D, DANELUTTO M, DERI L. DPI over commodity hardware: implementation of a scalable framework using fastflow[D]. University of Pisa, 2013.

[7] 付文亮, 嵩天, 周舟. RocketTC: 一个基于 FPGA 的高性能网络流量分类架构[J]. 计算机学报, 2014, 37(2): 414-422.

[8] GRIMAUDO L, MELLIA M, BARALIS E. Hierarchical Learning for Fine Grained Internet Traffic Classification[C]//2012 8th International Wireless Communications and Mobile Computing Conference (IWCMC). IEEE, 2012: 463-468.

[9] YEGANEH S H, EFTEKHAR M, GANJALI Y,et al. CUTE: Traffic Classification Using Terms[C]//2012 21st International Conference on Computer Communications and Networks (ICCCN). IEEE, 2012: 1-9.

[10] MOOREA W, ZUEV D. Internet Traffic Classification Using Bayesian Analysis Techniques[C]//ACM SIGMETRICS Performance Evaluation Review. ACM, 2005, 33(1): 50-60.

[11] HJELMVIK E, JOHN W. Breaking and improving protocol obfuscation[R]. Chalmers University of Technology, 2010.

[12] ESTE A,GRINGOLI F, SALGARELLI L. Support vector machines for TCP traffic classification[J]. Computer Networks, 2009, 53(14): 2476-2490.

[13] D′ALESSANDRO V, PARK B, ROMANO L, et al. Scalable network traffic classification using distributed support vector machines[C]//2015 IEEE 8th International Conference on Cloud Computing. IEEE, 2015: 1008-1012.

[14] 刘泽燊, 潘志松. 基于 Spark 的大规模网络流量分类研究[J]. 计算机时代, 2016 (4): 1-5.

[15] BUJLOW T, RIAZ T, PEDERSEN J M. Classification of HTTP Traffic Based on C5.0 Machine Learning Algorithm[C]// Computers and Communications (ISCC). IEEE, 2012: 882-887.

[16] QAZI Z A, LEE J, JIN T, et al. Application-awareness in SDN[J]. ACM SIGCOMM Computer Communication Review, 2013, 43(4): 487-488.

[17] AKILANDESWARI V, SHALINIE S M. Probabilistic neural network based attack traffic classification[C]//2012 Fourth International Conference on Advanced Computing (ICoAC). IEEE, 2012: 1-8.

[18] SINGH K,AGRAWAL S. Internet traffic classification using RBF neural network[C]//International Conference on Communication and Computing Technologies (ICCCT-2011), Jalandhar, India, 2011: 39-43.

[19] BERNAILLE L, TEIXEIRA R. Early recognition of encrypted applications[C]//International Conference on Passive and Active Network Measurement. Springer Berlin Heidelberg, 2007: 165-175.

[20] ZANDER S, NGUYEN T,ARMITAGE G. Automated traffic classification and application identification using machine learning[C]//The IEEE Conference on Local Computer Networks 30th Anniversary (LCN'05) l. IEEE, 2005: 250-257.

[21] YANG C, WANG F, HUANG B. Internet traffic classification usingdbscan[C]// Information Engineering, 2009. ICIE'09. IEEE, 2009, 2: 163-166.

[22] FINAMORE A, MELLIA M, MEO M. Mining Unclassified Traffic Using Automatic Clustering Techniques[C]// International Conference on Traffic Monitoring and Analysis. Springer-Verlag, 2011:150-163.

[23] CONSTANTINOU F, MAVROMMATIS P. Identifying known and unknown peer-to-peer traffic[C]//Fifth IEEE International Symposium on Network Computing and Applications (NCA'06). IEEE, 2006: 93-102.

[24] 张震, 汪斌强, 陈鸿昶, 等. 互联网中基于用户连接图的流量分类机制[J]. 电子与信息学报, 2013, 35(4): 958-964.

[25] QAZI Z A, LEE J, JIN T, et al. Application-awareness in SDN[J]. ACM SIGCOMM Computer Communication Review, 2013, 43(4): 487-488.

[26] DA SILVA A S, MACHADO CC, BISOL R V, et al. Identification and selection of flow features for accurate traffic classification in SDN[C]// Network Computing and Applications (NCA). IEEE, 2015: 134-141.

[27] JARSCHEL M, WAMSER F, HOHN T, et al. SDN-based application-aware networking on the example of youtube video streaming[C]//2013 Second European Workshop on Software Defined Networks. IEEE, 2013: 87-92.

[28] LI Y, LI J.MultiClassifier: A combination of DPI and ML for application-layer classification in SDN[C]// Systems and Informatics (ICSAI). IEEE, 2014: 682-686.

[29] Volunteer-Based System for Research on the Internet, 2012. [Online]. Available:http://vbsi.sourceforge.net/.

[30] ACETO G, DAINOTTI A, DE DONATO W, et al. PortLoad: taking the best of two worlds in traffic classification[C]//INFOCOM IEEE Conference on Computer Communications Workshops, 2010. IEEE, 2010: 1-5.

[31] BERNAILLE L, TEIXEIRA R, SALAMATIAN K. Early application identification[C]//Proceedings of the 2006 ACM CoNEXT conference. ACM, 2006(6): 1-12.

[32] 彭建芬, 周亚建, 王枞, 等. TCP 流量早期分类方法[J]. 应用科学学报, 2011, 29(1): 73-77.

[33] ALSABAH M, BAUER K, GOLDBERG I. Enhancing Tor's Performance Using Real-time Traffic Classification[C]//Proceedings of The 2012 ACM Conference on Computer and Communications Security. ACM, 2012: 73-84.

[34] SZAB? G, G?DOR I, VERES A, et al. Traffic classification over Gbit speed with commodity hardware[J]. IEEE Journal of Communications Software and Systems, 2010, 5(3): 93-100.

猜你喜欢

网络流量数据包端口
基于多元高斯分布的网络流量异常识别方法
大数据驱动和分析的舰船通信网络流量智能估计
二维隐蔽时间信道构建的研究*
一种端口故障的解决方案
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
硬件解耦三端口变换器的软开关分析与仿真
SmartSniff
交换机生成树安全
AVB网络流量整形帧模型端到端延迟计算
卫星三端口DC-DC变换器技术综述