APP下载

基于OpenFlow的互联网视频组播转单播SDN研究

2019-08-15王丽娜侯健敏郑良立周天皓周浩然

实验室研究与探索 2019年7期
关键词:单播发送者流表

王丽娜,侯健敏,郑良立,刘 炎,周天皓,周浩然

(1.南京信息工程大学 a.电子与信息工程学院;b.自动化学院,南京 210044;2.东方明珠新媒体集团有限公司,上海 200233)

0 引 言

依托于信息技术的发展,高清网络电视等OTT网络视频业务越来越普及[1]。将视频流从视频源(视频头端)传送到客户端,有两种传输方式可以选择。一是通过组播传送,这种传送方式效率高[2-3],客户端数量的增加几乎不会增加视频头端服务器的压力,适合支持超大规模用户和实时视频直播的场景。二是通过单播传送,这种传送方式可以支持更丰富的视频业务,例如视频回看、视频点播等。但是随着客户端数量的增长,视频头端服务器的压力会直线上升,因此每台视频头端服务器只能支持有限数量的客户端。

实际情况中,目前Internet骨干网并不支持组播,而考虑到效率等因素,视频头端服务器多是以组播的方式输出视频流。因此将组播转换为单播的需求应运而生。当前广泛采用通用服务器将组播转换为单播。这种转换方式成本较高,而且对服务器性能要求很高,单台服务器一般仅能同时转换几十路视频流。此外,服务器CPU的处理延时不稳定极易造成转换后的视频丢帧、卡顿、花屏等。

软件定义网络(Software Defined Network,SDN)是一种新型的网络架构,将网络设备控制平面和转发平面分离[4-8]。控制平面专注于复杂的控制逻辑,转发平面根据从控制平面获取的信息,通过应用专用芯片(Application Specific Integrated Card,ASIC)高速转发。本文通过CLI命令行的方式,通过Openflow协议直接把相关配置下发到转发层面的SDN交换机中[9-11],将组播转换为单播,并验证了方案的可行性。

1 相关技术

1.1 SDN技术

SDN技术将网络控制平面和转发层面完全分离。控制层面根据业务逻辑下发指定的信令,而转发层面则仅需根据这些信令进行线速转发,提供了网络的灵活性和可扩展性。控制器可以事先将流表下发到SDN交换机,通过控制器控制SDN交换机实现将组播转换为单播,然后SDN交换机则使用ASIC直接修改接收到的IP数据包的包头相关部分,并把数据包从指定端口转发出去,极大地降低了网络延时和抖动。由于这种转发基本不依赖SDN交换机的CPU,因此可以同时对多路组播视频流进行转换,具有效率高、灵活性高、可扩展性好等优势。

1.2 Open vSwitch

Open vSwitch(OVS)是运行在虚拟化平台(例如KVM,Xen)上的虚拟交换机。在虚拟化平台上,OVS 可以为动态变化的端点提供2层交换功能,控制虚拟网络中的访问策略、网络隔离、流量监控等。OVS安装在主流的Linux操作系统中,用户可以选择直接安装编译好的软件包,或者下载源码进行编译安装。OVS开发的目的为了支持OpenFlow协议,也能给虚拟化平台上运行的虚拟机实例提供一套纯软件实现的路由交换协议栈[12-13]。

1.3 OpenFlow协议

OpenFlow是当前最为流行的控制器和SDN交换机之间的通信协议[14]。在SDN交换机的运行过程中,其数据转发的依据就是流表(Flow Table)。OpenFlow用于管理交换机流表。ovs-ofctl是OVS提供的命令行工具。在没有配置OpenFlow控制器的模式下,用户可以使用ovs-ofctl命令通过OpenFlow协议去连接OVS,创建、修改或删除OVS中的流表,并对OVS的运行状况进行动态监控。

1.4 流表

流表是OpenFlow对网络设备数据转发功能的一种抽象。OpenFlow交换机依赖流表进行数据转发。OpenFlow流表由许多流表项构成,在流表项中整合了网络中各个层次的网络配置信息[15]。

流表项由头域、计数器和操作构成,如图1所示。

图1 流表项构成

图1中,头域可以匹配2到4层的寻址信息(MAC,IP,Port)等,计数器用来计数流表项的统计数据,方便流量监管。操作表明了与该流表项匹配的数据包应该执行的操作,主要包括转发数据包到端口;转发数据包到控制器;丢弃数据包;送到正常的处理流程。

1.5 组播和单播

组播指在发送者和多个接收者之间实现点对多点的网络连接[16]。一台发送者给多个接收者同时传输相同的数据,发送者只需发送一份数据,在传输的过程中由网络设备根据需要将数据复制,分发给多个接收者。因此无论有多少接收者都不会增加发送者的负载,传输效率大大提高。组播一般使用UDP协议传播,多个接收者接收到数据的时间基本相同,特别适合对实时性要求较高的业务场景。例如电子教室、视频直播、网络聊天室、远程视频会议系统等网络应用。由于Internet骨干网并不支持组播,当Internet骨干网络中的用户有特定业务需求时,传送组播一般需要通过专线,成本昂贵。

单播指在发送者和接收者之间实现点对点的网络连接。一台发送者对应一个接收者传输数据。单播的优点主要有服务器及时响应客户机的请求;服务器针对每个客户不同请求发送不同数据,提供了个性化服务,适用于接收者需要和发送者互动的业务场景。例如视频点播等。由于单播是点对点连接,因此当接收者很多时,即使这些接收者接收的数据完全相同,发送者也必须将一份数据复制成多份,一对一发送给接收者。可见发送者的负载会随着接收者数量的增加线性增长。

2 实验

2.1 网络结构

实验网络结构如图2所示。

图2 网络结构

实验中,核心交换机一端连接着组播网络,组播网络中的组播源(视频编码器)持续地向网络中发送组播视频流;核心交换机上还连接着单播网络,该网络中没有运行组播路由协议,只能转发单播报文。客户端通过接入交换机连接到单播网络中。

为简化实验网络结构,实验中的单播网络用一台接入交换机模拟,客户端用一台装有Wireshark抓包软件和VLC视频播放软件的个人电脑模拟。将核心交换机直接接入一个有组播源的组播网络,再配置核心交换机和SDN交换机直连的端口加入组播组233.27.204.89,使得该接口能收到组播地址为233.27.204.89和端口号为5000的视频流,并转发给SDN交换机20号端口(即eth-0-20)。SDN交换机上配置流表把接收到的组播转换为单播,将目的单播地址修改为10.61.2.12,并重新从SDN交换机20号端口转发回网络,之后经过单播网络逐跳路由至IP为10.61.2.12的个人电脑上,通过个人电脑上的VLC软件就可以观看到实时的视频画面了。

2.2 添加流表命令

流表配置命令如下:

ovs-ofctl add-flow br0 in_port=20,dl_type=0x0800,nw_proto=17,nw_dst=233.27.204.89,tp_dst=5000,actions=mod_dl_dst:94:d4:69:0e:82:c2,mod_nw_dst:10.61.2.12,mod_tp_dst:3000,output:20 -O openflow13 在SDN交换机的OVS虚拟网桥br0上增加一条支持OpenFlow1.3协议的流表。从SDN交换机20号端口进入,以太网类型为0x0800、目的地址为233.27.204.89和目的端口为5000的UDP数据包。一旦数据包匹配这些参数,SDN交换机将该数据包的目的MAC地址修改为94:d4:69:0e:82:c2,目的IP地址修改为10.61.2.12,目的端口修改为3000,之后该数据包从SDN交换机20号端口输出到网络中。

2.3 SecureCRT验证流表

应用软件SecureCRT远程登录到SDN交换机上,SDN交换机管理地址是124.108.10.2。对SDN交换机下发流表,如图3所示。红色框内为配置的流表命令,使用OpenFlow1.3协议。

图3 流表配置命令

流表命令配置完成后,执行查看流表命令ovs-ofctl dump-flows br0 -O openflow13。图3中可以看到n_ packets=635,该值不为0,且不断增长,表明有持续的数据包匹配这条流表。

查看SDN交换机20号端口信息的命令如图4红色框区域所示。图4中,显示SDN交换机eth-0-20端口收到59501141个包,输出182129338个包。图4中的端口计数进一步说明SDN交换机在开始进行把组播转换为单播的业务。

图4 查看交换机20端口配置

3 实验分析

VLC Media player是一款自由、开源的跨平台多媒体播放器及框架,它能够高效地将IP视频流解码还原成视频图像。本实验在地址为10.61.2.12的主机上通过VLC软件播放单播数据流。同时应用Wireshark软件进行抓包分析,进一步验证已经将IP组播视频流转换为IP单播视频流。

3.1 VLC Media player播放视频数据流

应用VLC Media player解码IP单播视频流。运行VLC Media player,在媒体选项卡上选择“打开网络串流”。选择网络选项卡,输入网络URL:udp://@10.61.2.12:3000,如图5所示。

图5 VLC Media player软件界面

点击播放按钮后,主窗口播放转换后的单播视频流,如图6所示。

图6 VLC Media player播放转换后的单播视频流

图6中,VLC 中接收到的视频流目的地址是10.61.2.12,而组播网络是以组播的方式传送视频流,目的地址是233.27.204.89。单播视频流的播放说明SDN交换机已经将组播视频流转换为了单播视频流。实例可以连续播放中国国际电视台(China Global Television Network,CGTN)的视频节目,表示组播数据正常转换为单播数据播放,说明实现组播转单播的实验成功。

3.2 Wireshark抓包分析

转换后的单播数据,可以使用Wireshark工具进行抓包分析。设置过滤器只捕获主机10.61.2.12的数据包,捕获的数据包如图7所示。

图7 Wireshark捕获的数据包

图7中,可见数据包的地址已经被修改为10.61.2.12这样的单播地址。并且发现向网络发送该视频流的编码器(组播源)的地址是61.8.171.24。取样分析黄色柜区域所对应的一个数据包,数据包详细分析见图8。

图8 单播数据包分析

从图8分析出数据包总共有1358字节数据量,使用UDP协议作为传输层协议。结合图3和图8可以看出,编码器通过组播发送视频流,使用的组播地址为233.27.204.89,目标端口为5000。经过SDN交换机之后,匹配了SDN交换机上配置的流表(图3中流表的n_ packets字段不为0且持续增长),IP组播视频流的目标地址被替换为10.61.2.12,目标端口被修改为3000,源地址和源端口保持不变。转换后的单播视频流经过单播IP网络的路由转发,最后到达测试主机10.61.2.12,并被Wireshark工具捕获。

4 结 语

随着互联网技术的发展,当前基于互联网的视频业务已经成为人们获取多媒体信息的重要平台。为提高传输效率,高清视频业务采用组播传输更合理,但Internet骨干网不提供组播服务,必须建设单独的专线来传输组播。投资成本高且建设周期较长。组播和单播的转换需求应运而生。运用SDN交换机将组播转换成单播,不仅性能稳定,可靠性高,而且成本相对较低,具有重要的实际意义和广阔的应用前景。

猜你喜欢

单播发送者流表
高空通信平台非正交广播与单播复用容量研究
基于匹配动作表模型的可编程数据平面流表归并
信息披露的经济学分析:预防性动机视角
网络表情符号的作用
表情符号的使用角度对亲密度感知的影响
晋西南褐土上小麦苜蓿套作对土壤氮素及植物吸氮的影响
论《聊斋志异》梦境叙事
基于时序与集合的SDN流表更新策略
软件定义网络中一种两步式多级流表构建算法
一种高效的OpenFlow流表拆分压缩算法