首页 理论教育 探针设备的高容量与高集成度是关键能力

探针设备的高容量与高集成度是关键能力

更新时间:2025-01-18 工作计划 版权反馈
【摘要】:一般来说,原有设备的机房空间有限,所以探针设备的高容量、高集成度是非常关键的能力。探针负责截取网络数据并解析出来,其中最重要的是转发能力,对网络的要求很高。比如,想分析YouTube的流量,只有通过解析L7协议才能知道用户访问的是YouTube,所以加密之后会影响探针的解析能力,很多业务就无法进行。

(一)大容量

探针设备需要和电信已有的设备部署在一起。一般来说,原有设备的机房空间有限,所以探针设备的高容量、高集成度是非常关键的能力。

探针负责截取网络数据并解析出来,其中最重要的是转发能力,对网络的要求很高。高性能网络是大容量的保证。

(二)协议智能识别

传统的协议识别方法采用SPI(Shallow Packet Inspection)检测技术。SPI对IP包头中的“5 Tuples”,即“五元组(源地址、目的地址、源端口、目的端口及协议类型)”信息进行分析,来确定当前流量的基本信息。传统的IP路由器正是通过这一系列信息来实现一定程度的流量识别和QoS保障的,但SPI仅仅分析IP包四层以下的内容,根据TCP/UDP的端口来识别应用。这种端口检测技术检测效率很高,但随着IP网络技术的发展,适用的范围越来越小,目前仍有一些传统网络应用协议使用固定的知名端口进行通信。因此,对于这一部分网络应用流量,可以采用端口检测技术进行识别。例如:

DNS协议采用53端口。

BGP协议采用179端口。

MSRPC远程过程调用采用135端口。

许多传统和新兴应用采用了各种端口隐藏技术来逃避检测,如在8000端口上进行HTTP通信、在80端口上进行Skype通信、在2121端口上开启FTP服务等。因此,仅通过第四层端口信息已经不能真正判断流量中的应用类型,更不能应对基于开放端口、随机端口甚至采用加密方式进行传输的应用类型。要识别这些协议,无法单纯依赖端口检测,而必须在应用层对这些协议的特征进行识别。

除了逃避检测的情况外,目前还出现了运营商和OTT合作的场景,如Facebook包月套餐,在这种情况下,运营商可以基于0TT厂商提供的IP、端口等配置信息进行计费。但是这种方式有很大的限制,如系统配置的IP和端口数量有限、0TT厂商经常改变或者增加服务器造成频繁修改配置等。协议智能识别技术能够深度分析数据包所携带的L3~L7/L7+的消息内容、连接的状态/交互信息(如连接协商的内容和结果状态、交互消息的顺序等)等信息,从而识别出详细的应用程序信息(如协议和应用的名称等)。

(三)安全的影响

探针的核心能力是获取通信的数据,但随着越来越多的网站使用HTTPS/QUIC加密L7协议,传统的探针能力就会受到极大的限制,因而无法解析L7协议的内容。

比如,想分析YouTube的流量,只有通过解析L7协议才能知道用户访问的是YouTube,所以加密之后会影响探针的解析能力,很多业务就无法进行。

现在业界尝试使用深度学习来识别协议,如奇虎360设计了一个5~7层的深度神经网络,能够自动学习特征并识别每天数据中的50~80种协议。

(四)IB(InfiniBand)技术

为了达到高效的转发能力,传统的TCP/IP网络无法满足需求,因此需要更高速度、更大带宽、更高效率的InfiniBand网络。

1.什么是IB技术

InfiniBand架构是一种支持多并发链接的“转换线缆”技术。在这种技术中,仅有一个链接的时候运行速度是500MB/S,在有4个链接的时候运行速度是2GB/S,在有12个链接的时候运行速度可以达到6GB/s。IBTA成立于1999年8月31日,由Compaq、惠普、IBM、戴尔、英特尔、微软和Sim七家公司牵头,共同研究高速发展的、先进的I/O标准。最初命名为SystemI/O,1999年10月正式更名为InfiniBand。InfiniBand是一种长缆线的连接方式,具有高速、低延迟的传输特性。

InfiniBand用于服务器系统内部并没有发展起来,原因在于英特尔和微软在2002年就退出了IBTA。在此之前,英特尔早已另行倡议Arapahoe,也称为3GIO(3rd Generation I/O,第二代I/O),即今日鼎鼎大名的PCI-Express(PCI-E)。InfiniBand、3GI0经过一年的并行,英特尔最终选择了PCI-E。因此,现在应用InfiniBand,主要用于服务器集群、系统之间的互联。

2.IB速度快的原因

随着CPU性能的飞速发展,I/O系统的性能成为制约服务器性能的瓶颈,于是人们开始重新审视使用了十几年的PCI总线架构。虽然PCI总线架构把数据的传输从8位/16位一举提升到32位,甚至当前的64位,但是它的一些先天劣势限制了其继续发展的势头。PCI总线有如下缺陷:

(1)由于采用了基于总线的共享传输模式,所以在PCI总线上不可能同时传送两组以上的数据,当一个PCI设备占用总线时,其他设备只能等待。

(2)随着总线频率从33MHz提高到66MHz,甚至133MHz(PCI-X),信号线之间的相互干扰变得越来越严重,在一块主板上布设多条总线的难度也就越来越大。

(3)由于PCI设备采用了内存映射I/O地址的方式建立与内存的联系,热添加PCI设备变成了一件非常困难的工作。目前的做法是在内存中为每个PCI设备划出一块50~100MB的区域,这段空间用户是不能使用的。因此,如果一块主板上支持的热插拔PCI接口越多,用户损失的内存就越多。

(4)PCI总线上虽然有Buffer作为数据的缓冲区,但是它不具备纠错的功能。如果在传输过程中发生了数据丢失或损坏的情况,则控制器只能触发一个NMI中断通知操作系统在PCI总线上发生了错误。

3.IB介绍

(1)InfiniBand架构

InfiniBand架构如图2-6所示。

图2-6 InfiniBand架构图

InfiniBand采用双队列程序提取技术,使应用程序直接将数据从适配器送入应用内存(远程直接存储器存取,RDMA),反之亦然。在TCP/IP协议中,来自网卡的数据先复制到核心内存,然后再复制到应用存储空间,或从应用存储空间将数据复制到核心内存,再经由网卡发送到Internet。这种I/O操作方式始终需要经过核心内存的转换,不仅增加了数据流传输路径的长度,而且大大降低了I/O的访问速度,增加了CPU的负担。而SDP则是将来自网卡的数据直接复制到用户的应用存储空间,从而避免了核心内存的参与。这种方式被称为零拷贝,它可以在进行大量数据处理时,达到该协议所能达到的最大吞吐量。

InfiniBand的协议采用分层结构,各个层次之间相互独立,下层为上层提供服务。其中,物理层定义了在线路上如何将比特信号组成符号,然后再组成帧、数据符号及包之间的数据填充等,详细说明了构建有效包的信令协议等;链路层定义了数据包的格式及数据包操作的协议,如流控、路由选择、编码、解码等;网络层通过在数据包上添加一个40字节的全局的路由报头(Global Route Header,GRH)来进行路由的选择,对数据进行转发,在转发过程中,路由器仅仅进行可变的CRC校验,这样就保证了端到端数据传输的完整性;传输层再将数据包传送到某个指定的队列偶(Queue Pair,QP),并指示QP如何处理该数据包,以及当信息的数据净核部分大于通道的最大传输单元(MTU)时,对数据进行分段和重组。

(2)InfiniBand基本组件

InfiniBand的网络拓扑结构如图2-7所示,其组成单元主要分为4类。

图2-7 InfiniBand的网络拓扑结构(www.xing528.com)

1)HCA(Host Channel Adapter)

它是连接内存控制器和TCA的桥梁。

2)TCA(TargetChannel Adapter)

它将I/O设备(如网卡、SCSI控制器)的数字信号打包发送给HCA。

3)InfmiBandlink

它是连接HCA和TCA的光纤。InfiniBand架构允许硬件厂家以1条、4条、12条光纤3种方式连接TCA和HCA。

4)交换机和路由器

无论是HCA还是TCA,其实质都是一个主机适配器,它是一个具备一定保护功能的可编程DMA(Direct Memory Access,直接内存存取)引擎。

(3)InfiniBand应用

在高并发和高性能计算应用场景中,当客户对带宽和时延都有较高的要求时,前端和后端均可采用IB组网,或前端网络采用I 0Gbit/s以太网,后端网络采用。由于IB具有高带宽、低时延、高可靠及满足集群无限扩展能力的特点,并采用RDMA技术和专用协议卸载引擎,所以能为存储客户提供足够的带宽和更低的响应时延。

IB目前可以实现及未来规划的更高带宽工作模式如下(以4X模式为例)。

SRD(Single Data Rate):单倍数据率,即8Gbit/s。

DDR(Double Data Rate):双倍数据率,即16Gbit/s。

QDR(Quad Data Rate):4倍数据率,即32Gbit/s。

FDR(Fourteen Data Rate):14倍数据率,即56Gbit/s。

EDR(Enhanced Data Rate):100Gbit/s。

HDR(High Data Rate):200Gbit/s。

NDR(Next Data Rate):1000Gbit/s+。

4.IB常见的运行协议

IPoIB协议:Internet Protocol over InfiniBand,简称IPoIB。传统的TCP/IP栈的影响实在太大了,几乎所有的网络应用都是基于此开发的,IPoIB实际是InfiniBand为了兼容以太网不得不做的一种折中,毕竟谁也不愿意使用不兼容大规模已有设备的产品。IPoIB基于TCP/IP协议,对于用户应用程序是透明的,并且可以提供更大的带宽,也就是原先使用TCP/IP协议栈的应用不需要任何修改就能使用IPoIB协议。例如,如果使用InfiniBand做RAC的私网,默认使用的就是IPoIB协议。图2-8左侧是传统以太网TCP/IP协议栈的拓扑结构,右侧是InfiniBand使用IPoIB协议的拓扑结构。

RDS协议:Reliable Datagram Sockets(RDS)实际是由Oracle公司研发的运行在InfiniBand之上的、直接基于IPC的协议。之所以出现这样一种协议,根本原因在于传统的TCP/IP栈本身过于低效,对于高速互联开销太大,导致传输的效率太低。RDS相比IPoIB,CPU的消耗量减少了50%;相比传统的UDP协议,网络延迟减少了一半。图2-9左侧是使用IPoIB协议的InfiniBand设备的拓扑结构,右侧是使用RDS协议的InfiniBand设备的拓扑结构。在默认情况下,RDS协议不会被使用,需要进行额外的relink(重新链接)。另外,即使relink RDS库以后,RAC节点间的CSS通信也无法使用RDS协议,节点间的心跳维持及监控都采用IPoIB协议。

除了上面介绍的IPoIB、RDS协议外,还有SDP、ZDP、IDB等协议。Orade Exadata—体机为达到较高的性能,也使用了IB技术。

图2-8 InfiniBand使用IPoIB协议的拓扑结构与传统以太网TCP/IP协议栈的拓扑结构对比

图2-9 使用IPoIB协议和使用RDS协议的InfiniBand设备的拓扑结构对比

5.IB在Linux上的配置

下面介绍在Limix上配置和使用IB协议。

RedHat产品是从RedHat Enterprise Linux5.3开始正式在内核中集成对InfiniBand网卡的支持的,并且将InfiniBand所需的驱动程序及库文件打包到发行CD里,所以对于有InfiniBand应用需求的RedHat用户来说,建议采用RedHat Enterprise Linux5.3及以后的系统版本。

(1)安装InfiniBand驱动程序

在安装InfiniBand驱动程序之前,前先确认InfiniBand网卡已经被正确地连接或分配到主机,然后从RedHat Enterprise Linux5.3的发行CD中获得Tablel中给出的RPM文件,并根据上层应用程序的需要,选择安装相应的32位或64位软件包。

另外,对于不同类型的InfiniBand网卡,还需要安装一些特殊的驱动程序。例如,对于Galaxyl/Galaxy2类型的InfiniBand网卡,就需要安装ehca相关的驱动。

(2)启动openibd服务

在RedHat Enterprise Linux5.3系统中,openibd服务在默认情况下是不打开的,所以在安装完驱动程序后,在配置IPoIB网络接口之前,需要先使能openibd服务以保证相应的驱动被加载到系统内核。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈