现有的视频传输网流量传输模型主要有2种[1-2]:①基于硬件的方式,包括NetFlow和NetStream等,但该方式需要对网络设备进行专业的定制,成本高,且需要采用采样的方式抽取视频流量,这样会造成分析结果不准确。②基于网络抓包嗅探的方式,包括Libpcap和Netmap等,但该方式往往只能够承载百兆级别的网络流量,对于大规模的视频监控网络流量无法进行有效的传输、采集和分析。现阶段,PF_RING技术在数据包抓取方面有其独特的优势,并且已存在较多的研究。例如,刘峰[3]提出CPU零参与方式,提高了千兆网卡数据包的抓取效率。赵志强等[4]通过零拷贝技术,将PF_RING抓取数据包的方式集成到Snort中,使IDS具备了IPv6检测的功能。同时,考虑到视频传输网中的视频流数据具有实时性高、数据吞吐量大、数据误码率低等特性,这就要求视频传输系统具有高性能视频流传输与分析的能力。
鉴于此,本文采用PF_RING多核视频流高性能传输模型进行视频监控系统前端视频流数据包的处理,以便减少视频流数据包的拷贝次数,进而提高对视频传输网中视频流量传输、转发的速度和效率。
1 相关技术 PF_RING的多核视频流高性能传输技术可以提升视频传输系统的传输性能[5-9]。以下将对本文涉及的PF_RING机理和视频传输系统进行概述。
1.1 PF_RING机理 PF_RING是Deri[10]研究出来的运行在Linux内核层的高效数据报文传输模型,其有助于对网络数据报文和网络流量进行深层次的分析研究。同时,用户级别的应用程序可以通过其提供的API来进行更为高效的网络数据传输。
在Linux传统的网络协议栈数据报文处理过程中,CPU大量的处理能力使用在把网卡接收到的数据报文拷贝到kernel中的数据结构队列中,再从kernel的数据结构队列发送到用户空间的应用程序数据接收区中,导致了CPU处理能力的严重耗损。网络传输过程中,在网络设备上需要对数据报文sk_buff结构进行多次拷贝,并且涉及内核态和用户态的频繁系统调用,限制了传输报文的效率,尤其对小报文的传输性能影响更大。本文引入的PF_RING技术,一方面减少了报文在网络设备上的拷贝次数,极大地释放出CPU的处理能力;另一方面与TNAPI技术的融合将网卡接收的数据报文分发到各个CPU核的RX队列中以充分利用多核的特性。通过这2种方式显著提高了网络设备的数据报文处理能力。
1.2 视频传输系统 视频传输系统是一种应用于不同视频传输网之间视频资源共享的通道[11-12],其采用全新硬件设备和全新软件架构,由视频设备认证服务器、视频用户认证服务器和网络安全隔离设备3部分组成,是运行在各视频传输网之间的核心视频数据传输部件。本文提出的视频传输系统采用软硬一体化设计,主要用于解决用户在2个视频传输网域之间相互访问视频资源时所面临的视频资源可信性、用户合法性、数据安全性、访问可控性等问题。视频传输系统部署架构如图 1所示。
![]() |
图 1 视频传输系统部署架构 Fig. 1 Deployment framework of video transmission system |
图选项 |
由于视频传输网的使用用户多,视频数据量大,在不同的视频传输网之间进行视频数据共享,就需要视频传输系统具有高性能的视频流传输机制。因此,视频传输系统要满足误码率低、延时小、吞吐量高的特性。本文研究使用基于PF_RING多核模型的高效数据包传输技术,进而提升视频传输系统接收视频流的能力,降低视频流的误码率,减少视频流在视频传输系统内部的延时,提高系统的网络数据吞吐量。
2 基于PF_RING多核模型的视频传输系统 本节详细分析了基于PF_RING多核模型的共享视频流传输过程。
2.1 PF_RING模型 PF_RING的工作机制比Linux传统的网络协议栈处理网络数据报文更高效[13-15],图 2为两者工作机制的比较。
![]() |
图 2 传统协议栈与PF_RING工作机制的比较 Fig. 2 Comparison of working mechanism between traditional protocol stack and PF_RING |
图选项 |
Linux系统传统的处理网络数据报文过程为:网卡驱动将数据放入网卡的缓冲区中;驱动程序发送中断请求给CPU,将网卡缓冲区中数据拷贝到Linux系统的内核网络协议栈缓冲区中;内核网络协议栈的Ethernet层、IP层、TCP/UDP层、Socket层依次对数据报文进行处理;通过Linux的系统调用将数据从内核拷贝到用户空间。
PF_RING是一种与Linux系统Socket不同的新的网络Socket,其可以极大地改进数据报文传输的速度,减少报文传输过程中在Linux系统内核态和用户态之间的拷贝次数。PF_RING对数据传输方式优化的不同又分为PF_RING+TNAPI和PF_RING零拷贝2种实现机制。本文分别采用上述2种模式来提升视频传输系统的传输效率,并进行了对比分析。
随着多核CPU在网络设备上的广泛使用,Deri[10]在NAPI (New Application Program Interface)基础上提出TNAPI (Threaded New Application Program Interface),将网卡接收的数据报文分发到各个CPU核的RX队列中以充分利用多核的特性。PF_RING+TNAPI的实现机制如图 3所示,具体步骤如下:
![]() |
图 3 PF_RING+TNAPI的实现机制 Fig. 3 Implementation mechanism of PF_RING+TNAPI |
图选项 |
步骤1??创建对应多核的环形缓冲区ring的新型套接字Virtual PF_RING。
步骤2??TNAPI将网卡上收到的数据分发到各核对应的RX队列中。
步骤3??将RX队列中的数据报文拷贝到环形缓冲区ring,若缓冲区ring已满,则将该报文丢弃。
步骤4??在各核上运行用户空间应用程序,通过内存映射文件MMAP或PF_RING轮询直接访问各个环形缓冲区ring中的数据。
PF_RING直接映射网卡内核和寄存器到用户空间的机制即PF_RING零拷贝模式,其实现机制如图 4所示,具体步骤如下:
![]() |
图 4 PF_RING零拷贝的实现机制 Fig. 4 Implementation mechanism of PF_RING zero-copy |
图选项 |
步骤1??PF_RING设置映射网卡内存ring到用户态的零拷贝方式。
步骤2??仅有一次数据拷贝操作由网卡的网络处理单元完成。
步骤3??应用程序使用PF_RING接口以DMA或应用轮询方式获取网卡环形缓冲区ring中的数据。
步骤4??CPU的处理能力能更多地分配到数据报文处理中,处理网络数据报文更高效。
PF_RING零拷贝模式的缺点在于一次只允许一个应用程序访问DMA缓冲,不利于利用CPU多核的特性。
2.2 视频传输模型 视频传输系统的安全隔离设备是由1个视频控制信令双向物理通道、2个正反向的视频流单向物理通道组成的专用设备[16-18]。视频设备认证服务器主要用于对相互进行数据共享的视频传输网视频服务器等设备的身份认证。视频用户认证服务器主要用于对相互进行数据共享的视频传输网中的使用用户进行身份认证。同时,视频设备认证服务器、视频用户认证服务器需要对视频传输网间的视频流进行高效的传输。
视频传输系统为了实现视频传输网间的视频流高效的传输,使用了PF_RING技术结合内存路由表、多通道多线程相关技术。
视频传输系统的内存路由表包含视频控制信令的内存路由表、由视频控制信令动态分配的视频流内存路由表。其中,视频传输系统的控制信令的内存路由表各字段如下:
1) 源地址、端口。指被调取视频源所在视频传输网服务器的IP和端口。
2) 目标地址、端口。指视频接收方所在视频传输网服务器的IP和端口。
3) 协议类型。UDP或TCP协议。
4) 信令类型。指视频信令所采用的协议,如SIP、RTSP等协议。
视频流内存路由表是由上文中的视频控制信令动态分配得到的内存路由表,且其是以视频传输系统在设备上开辟的端口为Key,以DataNetPortVsas结构体为Value的map内存表。视频传输系统每个通道对应一个视频流内存路由表,系统通道数不超过系统硬件CPU的总核数。NetPortVsas为视频设备认证服务器、视频用户认证服务器的端口。DataNetPortVsas的数据结构如表 1所示。
表 1 DataNetPortVsas的数据结构 Table 1 Data structure of DataNetPortVsas
属性名 | 数据类型 | 属性描述 |
timelast | time_t | 数据报文时间戳 |
proxyType | IPProxyType | 应用层协议类型 |
netSrcIPPort | NetIPPort | 码流的视频源IP地址和端口 |
setNetDstIPPort | std::set〈NetIPPort〉 | 码流的视频目标IP地址和端口集合 |
表选项
2.3 基于PF_RING多核技术的视频流传输 视频传输系统的高效视频流传输过程如图 5所示。
![]() |
图 5 视频传输系统的视频流传输 Fig. 5 Video stream transmission of video transmission system |
图选项 |
视频传输系统需要对2个专网间的视频资源进行数据共享。视频用户认证服务器和视频设备认证服务器都具备视频码流的接收和转发能力。如图 5所示,SnifferThread为视频传输系统的视频流接收服务。通过反复实验发现,在现有的8核CPU硬件设备下,使用多通道能满足视频传输系统高效视频流传输的要求。其中,瓶颈在视频传输系统的SnifferThread接收视频码流能力。另外,SnifferThread线程接收视频码流的过程如图 6所示。
![]() |
图 6 SnifferThread服务框架 Fig. 6 Service framework of SnifferThread |
图选项 |
鉴于此,本文分别使用PF_RING零拷贝机制和PF_RING+TNAPI机制对SnifferThread服务进行优化。PF_RING零拷贝机制基本没有任何额外的数据包复制工作,进而将CPU的处理能力更多地运用在视频流数据报文的处理和传输功能上。PF_RING+TNAPI机制,视频传输系统SnifferThread服务使用多线程多队列方式从网卡获取数据报文,效率较高,可以更好地发挥硬件多核的特性,显著降低了CPU的使用率。
3 实验 3.1 实验环境 为了将传统协议栈、PF_RING+TNAPI、PF_RING零拷贝技术对视频传输系统的传输性能进行对比分析,搭建了如图 7所示的测试环境。
![]() |
图 7 测试环境拓扑 Fig. 7 Topology of test environment |
图选项 |
测试环境中,硬件设备采用Intel的E5-2623 v3@3.00 GHz型号CPU,32 GB内存,英特尔82599双口光口10 GB网卡;操作系统采用CentOS 6.5。
本节实验的主要目的是验证PF_RING技术对视频传输性能的提高程度。鉴于此,实验中的每条测试用例将在Linux网络协议栈、PF_RING+TNAPI和PF_RING零拷贝3种模式下进行对比分析,着重比较在相同软硬件环境下系统的有效吞吐量、CPU使用率和平均误码率。
使用iperf工具发送10 Mbit/s的模拟视频流数据,测试用例如下:①第1条。400路,每路10 Mbit/s的视频流。②第2条。500路,每路10 Mbit/s的视频流。③第3条。600路,每路10 Mbit/s的视频流。④第4条。700路,每路10 Mbit/s的视频流。⑤第5条。800路,每路10 Mbit/s的视频流。
3.2 实验结果与分析 实验从视频传输系统的有效吞吐量、CPU使用率、平均误码率3个方面观察基于Linux网络协议栈、PF_RING+TNAPI和PF_RING零拷贝3种模式下的视频传输能力,对比结果如图 8~图 10所示,其中每项结果均为5次测试实验的平均值。
![]() |
图 8 有效吞吐量对比 Fig. 8 Comparision of effective throughput |
图选项 |
![]() |
图 9 CPU使用率对比 Fig. 9 Comparision of CPU utilization |
图选项 |
![]() |
图 10 平均误码率对比 Fig. 10 Comparision of average bit error rate |
图选项 |
在上述3种模式下,当模拟发送400×10 Mbit/s、500×10 Mbit/s数据时,系统的有效吞吐量几乎相同;当模拟发送700×10 Mbit/s、800×10 Mbit/s时,PF_RING+TNAPI、PF_RING零拷贝模式具有很大的优势。其中,PF_RING+TNAPI、PF_RING零拷贝模式下有效吞吐量数据相近。
在接收视频流设备的CPU使用率对比中(见图 9),不管模拟发送的数据包有多大,PF_RING+TNAPI、PF_RING零拷贝模式通常具有更低的CPU使用率。其中,PF_RING+TNAPI能更好地发挥硬件多核的特性,在CPU使用率方面具备优势。
图 10显示了平均误码率对比分析,在基于Linux网络协议栈模式下,当模拟数据达到600×10 Mbit/s时,平均误码率超过1%,将导致视频流失真较大。然而,PF_RING+TNAPI、PF_RING零拷贝模式通常具有更低的平均误码率,优势更大。其中,PF_RING+TNAPI、PF_RING零拷贝模式下平均误码率数据相近。
4 结论 考虑到视频流量传输的特点,本文提出一种基于PF_RING的视频流高性能传输模型,其通过使用PF_RING+TNAPI机制结合视频传输系统多通道技术,进而减少视频流数据包在网络设备上的拷贝次数,更好发挥硬件多核的特性,极大地释放出CPU的处理能力。本文得出如下结论:
1) 通过合理地调整CPU的调度能力,本文模型有效解决了由于视频流波动导致的不同进程间相互影响造成的丢包率升高的问题。
2) 为了保证不同网域间视频流数据的安全传输,本文提出了视频控制信令双向传输、视频流单向传输的设计模式。
3) 通过大量的对比实验,本文验证了基于PF_RING+TNAPI的模型相比于传统的基于协议栈的模型在视频流传输方面的网络有效吞吐量、CPU使用率、平均误码率指标上均有很强的优势,在CPU使用率上也优于PF_RING零拷贝模式。
参考文献
[1] | 令瑞林, 李峻峰, 李丹, 等. 基于多核平台的高速网络流量实时捕获方法[J]. 计算机研究与发展, 2017, 54(6): 1300-1313. LING R L, LI J F, LI D, et al. Realtime capture of high-speed traffic on multi-core platform[J]. Journal of Computer Research and Development, 2017, 54(6): 1300-1313. (in Chinese) |
[2] | 刘宝辰.高性能数据包捕获系统的研究与实现[D].上海: 上海交通大学, 2013: 5-37. LIU B C.Research and implementation of a high-performance packet capture system[D].Shanghai: Shanghai Jiao Tong University, 2013: 5-37(in Chinese). http://cdmd.cnki.com.cn/Article/CDMD-10248-1014008634.htm |
[3] | 刘峰.利用PF_Ring零拷贝优化Spark Streaming网络性能[D].南宁: 广西大学, 2017: 10-30. LIU F.The optimization of network performance of Spark Streaming by using the PF_Ring zero_copy technology[D].Nanning: Guangxi University, 2017: 10-30(in Chinese). http://d.wanfangdata.com.cn/thesis/Y3352416 |
[4] | 赵志强, 易秀双, 刘浩, 等. 基于IPv6的PF_RING ZC数据包捕获技术在IDS中的应用[J]. 通信学报, 2018, 39(1): 1-6. ZHAO Z Q, YI X S, LIU H, et al. Application of PF_RING ZC packet capture technology based on IPv6 in IDS[J]. Journal on Communications, 2018, 39(1): 1-6. (in Chinese) |
[5] | 吴克河, 王冬冬. 基于PF_RING的高速网络数据捕获方法[J]. 计算机与数字工程, 2019, 47(3): 598-604. WU K H, WANG D D. Data capture method of high speed network based on PF_RING[J]. Computer and Digital Engineering, 2019, 47(3): 598-604. (in Chinese) |
[6] | 刘小威, 陈蜀宇, 卢尧, 等. 零拷贝技术在网络分析工具中的应用[J]. 计算机系统应用, 2012, 21(4): 169-173. LIU X W, CHEN S Y, LU Y, et al. Application of zero-copy technology to network analysis system[J]. Computer Systems and Applications, 2012, 21(4): 169-173. (in Chinese) |
[7] | WANG H P, HE D Z, WANG H, et al.Comparison of high-performance packet processing frameworks on NUMA[C]//2016 7th IEEE International Conference on Software Engineering and Service Science(ICSESS).Piscataway: IEEE Press, 2016: 54-58. https://ieeexplore.ieee.org/document/7883014 |
[8] | USUI T, KITATSUJI Y, YOKOTA H. A study on traffic management cooperating with IMS in MPLS networks[J]. Telecommunication Systems, 2013, 52(2): 671-680. |
[9] | SAMOSIR J, INDRAWAN S M, HAGHIGHI P D. An evaluation of data stream processing systems for data driven applications[J]. Procedia Computer Science, 2016, 80(1): 439-449. |
[10] | DERI L. High-speed dynamic packet filtering[J]. Journal of Network and Systems Management, 2007, 15(3): 401-415. |
[11] | DENG R, LIU G Z. QoE driven cross-layer scheme for DASH-based scalable video transmission over LTE[J]. Multimedia Tools and Applications, 2018, 77(6): 6445-6469. DOI:10.1007/s11042-017-4551-y |
[12] | 刘文敏, 张冬梅, 李舒辰, 等. 基于Netmap的网络监听技术研究[J]. 信息网络安全, 2013(11): 45-48. LIU W M, ZHANG D M, LI S C, et al. The network monitoring technology based on Netmap[J]. Information Network Security, 2013(11): 45-48. (in Chinese) |
[13] | 尚珍. 基于NIDS系统下Snort源码分析与数据结构研究[J]. 网络安全技术与应用, 2017(8): 64-65. SHANG Z. Research on Snort source code analysis and data structure based on NIDS[J]. Network Security Technology and Application, 2017(8): 64-65. (in Chinese) |
[14] | TYLMAN W. Native support for Modbus RTU protocol in Snort intrusion detection system[J]. Advances in Intelligent Systems and Computing, 2013, 224: 479-487. |
[15] | 笱程成, 赵荣彩, 邰铭, 等. 高负载网络下线速包捕获接口的设计与实现[J]. 计算机工程与设计, 2010, 31(10): 2203-2205. GOU C C, ZHAO R C, TAI M, et al. Wire-speed packet capture interface design and implementation in high-load network[J]. Computer Engineering and Design, 2010, 31(10): 2203-2205. (in Chinese) |
[16] | CHEN S, YANG J, RAN Y, et al. Adaptive layer switching algorithm based on buffer under-flow probability for scalable video streaming over wireless networks[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2016, 26(6): 1146-1160. DOI:10.1109/TCSVT.2015.2437071 |
[17] | 谢文韬.基于无锁结构的大容量数据高性能检索系统研究[D].南京: 东南大学, 2017: 5-25. XIE W T.Large capacity data high-performance retrieval system based on lock free structure[D].Nanjing: Southeast University, 2017: 5-25(in Chinese). http://cdmd.cnki.com.cn/Article/CDMD-10286-1017116780.htm |
[18] | 尚彪.网络数据包捕获技术的比较研究与实现[D].武汉: 华中科技大学, 2014: 1-26. SHANG B.Comparative study and implementation of network packet capture technology[D].Wuhan: Huazhong University of Science and Technology, 2014: 1-26(in Chinese). http://d.wanfangdata.com.cn/thesis/D611004 |