一种测量网络性能的方法和物理机的制作方法
【技术领域】
[0001]本发明涉及互联网领域,尤其涉及一种测量网络性能的方法和物理机。
【背景技术】
[0002]随着手机等移动终端设备性能的不断增强,移动终端设备的使用在人们日常生活中所占的比重越来越大,其使用量的增加也导致了移动数据流量的加大,有调查显示:移动流量数据从2009年到2012年已增长80倍,并预计其数值在2016年将增加到2011年的19倍即每个月10.8艾字节。其逐渐庞大的数据意味着测量网络性能重要性的提升,同时海量的数据对于网络性能的分析有着及其重要的作用。
[0003]在现有网络性能的测量方法中,主要分为主动测量与被动测量两种。主动测量即利用测量工具将测量使用流量注入网络并根据测量流量的传送情况来测量分析网络的性能;被动测量即在链路上利用测量设备测量网络性能。当前常见的测量方式都是通过主动测量方法来实现的。
[0004]但是,通过测量工具在网络中引起响应,会加大网络的负荷,增加网络的负担;同时由于网络的运行情况得到了改变,测量得到的结果与真实的情况有一些偏差,尤其是对于边缘网络性能测试时,在网络吞吐量本来就不是很大的情况下,测量流量对网络性能的影响就显得十分巨大。同时当前的应用程序,在访问互联网时十分复杂,仅进行端对端网络性能的测量来实现对网络整体性能的测量就显得十分困难。
【发明内容】
[0005]本发明实施例提供了一种测量网络性能的方法和物理机,能够提高测量结果的准确性以及实现对网络整体性能的测量。
[0006]有鉴于此,本发明第一方面提供一种测量网络性能的方法,可包括:
[0007]当确定运行在虚拟机内的应用程序与服务器进行数据交互时,截获所述数据交互过程中传送的数据包;所述虚拟机运行在物理机预安装的虚拟机软件中,所述服务器位于所述物理机外部;
[0008]封装所述数据包;
[0009]对已封装的所述数据包进行深度包检测DPI,得到检测结果;
[0010]根据所述检测结果确定所述数据交互过程中的网络性能。
[0011]结合本发明第一方面,本发明第一方面的第一实施方式中,可包括:
[0012]确定运行在虚拟机内的应用程序通过无线网卡与服务器进行数据交互。
[0013]结合本发明第一方面,本发明第一方面的第二实施方式中,可包括:
[0014]通过预配置的抓包命令截获所述数据交互过程中传送的数据包。
[0015]结合本发明第一方面,本发明第一方面的第三实施方式中,可包括:
[0016]通过预配置的深度包检测技术读取已封装的所述数据包中的内容,并通过所述数据包中的内容对所述数据包对应的开放系统互联OSI七层协议中的信息进行重组,得到带宽、网络时延以及所述服务器的互联网协议IP地址的检测结果。
[0017]结合本发明第一方面,本发明第一方面的第一实施方式,本发明第一方面的第二实施方式,本发明第一方面的第三实施方式,本发明第一方面的第四实施方式中,可包括:
[0018]存储所述数据包。
[0019]有鉴于此,本发明第二方面提供一种物理机,可包括:
[0020]第一确定单元,用于确定运行在虚拟机内的应用程序与服务器进行数据交互;所述虚拟机运行在物理机预安装的虚拟机软件中,所述服务器位于所述物理机外部;
[0021]获取单元,用于截获所述数据交互过程中传送的数据包;
[0022]封装单元,用于封装所述数据包;
[0023]检测单元,用于对已封装的所述数据包进行深度包检测DPI,得到检测结果;
[0024]第二确定单元,用于根据所述检测结果确定所述数据交互过程中的网络性能。
[0025]结合本发明第二方面,本发明第二方面的第一实施方式中,可包括:
[0026]所述第一确定单元具体用于确定运行在虚拟机内的应用程序通过无线网卡与服务器进行数据交互。
[0027]结合本发明第二方面,本发明第二方面的第二实施方式中,可包括:
[0028]所述获取单元具体用于通过预配置的抓包命令截获所述数据交互过程中传送的数据包。
[0029]结合本发明第二方面,本发明第二方面的第三实施方式中,可包括:
[0030]所述检测单元具体用于通过预配置的深度包检测技术读取已封装的所述数据包中的内容,并通过所述数据包中的内容对所述数据包对应的开放系统互联OSI七层协议中的信息进行重组,得到带宽、网络时延以及所述服务器的互联网协议IP地址的检测结果。
[0031]结合本发明第二方面,本发明第二方面的第一实施方式,本发明第二方面的第二实施方式,本发明第二方面的第三实施方式,本发明第二方面的第四实施方式中,可包括:
[0032]存储单元,用于存储所述数据包。
[0033]从以上技术方案可以看出,本发明实施例具有以下优点:在对网络性能进行测量时,通过截获数据交互过程中传送的数据包的方法来测量网络性能,一方面由于测量过程中没有在网络中引起任何响应,使得测量得到的结果与真实的网络环境相同,提高了测量结果的准确性;另一方面通过对数据包的分析,实现了对网络整体性能的测量。
【附图说明】
[0034]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0035]图1为本发明实施例中测量网络性能的系统结构示意图;
[0036]图2为本发明实施例中测量网络性能的方法一个实施例示意图;
[0037]图3为本发明实施例中测量网络性能的方法另一实施例示意图;
[0038]图4为本发明实施例中物理机一个实施例示意图;
[0039]图5为本发明实施例中服务器一个实施例示意图;
[0040]图6为本发明实施例中服务器另一实施例示意图。
【具体实施方式】
[0041]本发明实施例提供了一种测量网络性能的方法和物理机,用于提高测量结果的准确性以及实现对网络整体性能的测量。
[0042]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0043]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三?第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0044]为了方便理解本发明实施例,下面介绍本发明实施例中测量网络性能的系统结构示意图。
[0045]如图1所示,物理机运行在Iinux操作系统下,在物理机中安装了虚拟操作系统模拟器(QEMU),安卓(Andr1d)虚拟机运行在该QEMU中,应用程序运行在安卓(Andr1d)虚拟机内。
[0046]当Andr1d虚拟机内的应用程序通过无线网卡与外界服务器进行数据交互时,物理机并行使用tcpdump命令来对数据交互过程中传送的数据包进行截获,同时将截获的数据包封装为dump文件,这样得到的dump文件就是Andr1d虚拟机中应用程序与外界服务器交互的数据包。
[0047]得到dump文件后,通过深度包检测(DPI)技术来对dump文件进行分析,通过读取数据包的内容来对开放系统互联(Open System Interconnect1n,0SI)七层协议中的信息进行重组,得到应用程序的内容。在应用层,得到域名系统(Domain Name System, DNS)服务器的互联网协议(Internet Protocol, IP)地址等信息,同时可以得到超文本传输协议(HyperText Transfer Protocol,HTTP)时延信息,从而得到各个服务器的性能,在传输层,可以得到数据交互过程中对网络的每一次请求的建立时延等信息。通过对数据包进行分析,也就能确定网络性能。
[004