发明内容
本发明的目的在于提供一种网速测试方法及系统,能够对一切宽带网络进行网络速度的直观及客观的检测。
为解决上述问题,本发明提供一种网速测试方法,包括:
客户端发送网速测试请求至服务端的等待队列里排队,所述网速测试请求包括测试状态、测试方式和测速类型,所述测试状态包括开始测试和结束测试,所述测试方式包括多个客户端同时进行的压力测试和多个客户端依次进行的顺序测试,所述测速类型包括TCP网速测试、HTTP网速测试和网页测速;
服务端判断收到的网速测试请求中的测试状态的种类,
若为结束测试,则服务端判断该网速测试请求是否正在执行,若未执行,则将该网速测试请求从等待队列里删除;若正在执行,则停止该网速测试请求的执行后,读取执行所述等待队列里的下一个网速测试请求;
若为开始测试,则服务端判断测试方式的种类,
若为压力测试,则服务端向客户端发送测速命令,并与客户端配合进行TCP网速测试和/或HTTP网速测试;
若为顺序测试,则判断当前服务端是否有TCP网速测试和/或HTTP网速测试正在执行,若有,则向客户端发送等待命令,客户端接收到所述等待命令后执行需要进行的所述网页测速的网速测试请求,服务端在执行完当前TCP网速测试和/或HTTP网速测试后,从所述等待队列里读取并执行下一个TCP网速测试和/或HTTP网速测试的网速测试请求,并向相应的客户端发送测速命令,客户端在收到服务端的测速命令后暂停所述网页测速的网速测试请求,并与服务端配合进行TCP网速测试和/或HTTP网速测试;若无,则服务端向客户端发送测速命令,并与客户端配合进行TCP网速测试和/或HTTP网速测试。
进一步的,在上述方法中,所述网速测试请求以哈希表的形式发送。
进一步的,在上述方法中,所述网速测试请求还包括客户端IP地址、客户端生成结果前缀、客户端MAC地址、监听端口和访问时间。
进一步的,在上述方法中,所述TCP网速测试的执行步骤包括:
利用套接字在服务端与客户端之间以预设测试时间间隔传送不同的数据包,在预设固定时间内分若干个线程以占满带宽的形式传送每个数据包,获取在所有数据包传送过程中服务端与客户端之间的TCP网速数据。
进一步的,在上述方法中,所述TCP网速数据包括:
在所述预设固定时间内的往返时延、每秒上传速率、每秒下载速率、上传平均数据传输速率、下载平均数据传输速率、上传带宽、下载带宽、下载UPD丢包率和上传UDP丢包率。
进一步的,在上述方法中,获取上传UDP丢包率时,以上传带宽的80%的速度传输小于1KB的数据报来测试网络带宽的丢包率,并保证数据报以均匀的速度发出;获取所述下载UPD丢包率时,以所述下载带宽的80%的速度传输小于1KB的数据报来测试网络带宽的丢包率,并保证数据报以均匀的速度发出。
进一步的,在上述方法中,所述HTTP网速测试的执行步骤包括:
分若干个线程从所述服务端下载一个预设大小的文件至所述客户端,获取所述下载过程中的HTTP网速数据。
进一步的,在上述方法中,所述预设大小的文件为大于500MB的文件。
进一步的,在上述方法中,所述若干个线程为4至6个线程。
进一步的,在上述方法中,所述HTTP网速数据包括每秒下载速度、平均下载速度和峰值下载速度。
进一步的,在上述方法中,所述网页测速的执行步骤包括:
客户端布置网页测速站点,自动使用IE浏览器打开所述网页测速站点,利用插件记录下访问所述网页测速站点的网页速度数据。
进一步的,在上述方法中,所述网页速度数据包括网页面完全加载时间、网页面完全加载所收到的数据量、链接DNS服务器所用时间、链接DNS服务器所收到的数据量、收取首字节数据所用时间、客户端与网站第一次链接成功所用的时间和客户端与网站第一次链接成功所收到的数据量。
进一步的,在上述方法中,所述测速类型还包括视频观看测速。
进一步的,在上述方法中,所述视频观看测速的执行步骤包括:
停止所述客户端的所述TCP网速测试、HTTP网速测试和网页测速,并通过Java媒体框架从所述服务端获取一固定时间长度的视频在客户端进行播放,获取所述视频在播放过程中的播放速度数据。
进一步的,在上述方法中,所述播放速度数据包括打开视频并播放所需时间、缓冲时间和播放中每秒的下载速度。
根据本发明的另一面,提供一种网速测试系统,包括客户端和服务端,
所述客户端,用于发送网速测试请求至服务端的等待队列里排队,所述网速测试请求包括测试状态、测试方式和测速类型,所述测试状态包括开始测试和结束测试,所述测试方式包括多个客户端同时进行的压力测试和多个客户端依次进行的顺序测试,所述测速类型包括TCP网速测试、HTTP网速测试和网页测速,当接收到服务端发送的等待命令后执行需要进行的所述网页测速的网速测试请求,客户端在收到服务端的测速命令后暂停所述网页测速的网速测试请求,并与服务端配合进行TCP网速测试和/或HTTP网速测试;
所述服务端,用于判断收到的网速测试请求中的测试状态的种类,若为结束测试,则服务端判断该网速测试请求是否正在执行,若未执行,则将该网速测试请求从等待队列里删除;若正在执行,则停止该网速测试请求的执行后,读取执行所述等待队列里的下一个网速测试请求;若为开始测试,则服务端判断测试方式的种类,若为压力测试,则服务端向客户端发送测速命令,并与客户端配合进行TCP网速测试和/或HTTP网速测试;若为顺序测试,则判断当前服务端是否有TCP网速测试和/或HTTP网速测试正在执行,若有,则向客户端发送等待命令,在执行完当前TCP网速测试和/或HTTP网速测试后,从所述等待队列里读取并执行下一个TCP网速测试和/或HTTP网速测试的网速测试请求,并向相应的客户端发送测速命令;若无,则服务端与客户端配合进行TCP网速测试和/或HTTP网速测试。
进一步的,在上述系统中,所述服务端与客户端用于在所述TCP网速测试中,利用套接字在服务端与客户端之间以预设测试时间间隔传送不同的数据包,在预设固定时间内分若干个线程以占满带宽的形式传送每个数据包,获取在所有数据包传送过程中服务端与客户端之间的TCP网速数据。
进一步的,在上述系统中,所述服务端与客户端用于在所述TCP网速测试中,利用套接字在服务端与客户端之间以预设测试时间间隔传送不同的数据包,在预设固定时间内分若干个线程以占满带宽的形式传送每个数据包,获取在所有数据包传送过程中服务端与客户端之间的TCP网速数据。
进一步的,在上述系统中,所述客户端用于在所述网页测速中,布置的网页测速站点,自动使用IE浏览器打开所述网页测速站点,利用插件记录下访问所述网页测速站点的网页速度数据。
进一步的,在上述系统中,所述测速类型还包括视频观看测速,所述客户端用于在视频观看测速中,停止所述TCP网速测试、HTTP网速测试和网页测速,并通过Java媒体框架从所述服务端获取一固定时间长度的视频进行播放,获取所述视频在播放过程中的播放速度数据。
与现有技术相比,本发明通过客户端发送网速测试请求至服务端的等待队列里排队,所述网速测试请求包括测试状态、测试方式和测速类型,所述测试状态包括开始测试和结束测试,所述测试方式包括多个客户端同时进行的压力测试和多个客户端依次进行的顺序测试,所述测速类型包括TCP网速测试、HTTP网速测试和网页测速;服务端判断收到的网速测试请求中的测试状态的种类,若为结束测试,则服务端判断该网速测试请求是否正在执行,若未执行,则将该网速测试请求从等待队列里删除;若正在执行,则停止该网速测试请求的执行后,读取执行所述等待队列里的下一个网速测试请求;若为开始测试,则服务端判断测试方式的种类,若为压力测试,则服务端向客户端发送测速命令,并与客户端配合进行TCP网速测试和/或HTTP网速测试;若为顺序测试,则判断当前服务端是否有TCP网速测试和/或HTTP网速测试正在执行,若有,则向客户端发送等待命令,客户端接收到所述等待命令后执行需要进行的所述网页测速的网速测试请求,服务端在执行完当前TCP网速测试和/或HTTP网速测试后,从所述等待队列里读取并执行下一个TCP网速测试和/或HTTP网速测试的网速测试请求,并向相应的客户端发送测速命令,客户端在收到服务端的测速命令后暂停所述网页测速的网速测试请求,并与服务端配合进行TCP网速测试和/或HTTP网速测试;若无,则服务端向客户端发送测速命令,并与客户端配合进行TCP网速测试和/或HTTP网速测试,能够对一切宽带网络进行网络速度的直观及客观的检测,为用户获得准确的运营商带宽数据提供技术上的可靠支持。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
如图1~3所示,本发明提供一种网速测试方法,包括:
步骤S1,客户端发送网速测试请求至服务端的等待队列里排队,所述网速测试请求包括测试状态、测试方式和测速类型,所述测试状态包括开始测试和结束测试,所述测试方式包括多个客户端同时进行的压力测试和多个客户端依次进行的顺序测试,所述测速类型包括TCP网速测试、HTTP网速测试和网页测速;
步骤S2,服务端判断收到的网速测试请求中的测试状态的种类,若为结束测试,则执行步骤S3,若为开始测试,则执行步骤S4;
步骤S3,服务端判断该网速测试请求是否正在执行,若未执行,则执行步骤S31,若正在执行,则执行步骤S32;
步骤S31,服务端将该网速测试请求从等待队列里删除;
步骤S32,服务端停止该网速测试请求的执行后,读取执行所述等待队列里的下一个网速测试请求;
步骤S4,服务端判断测试方式的种类,若为压力测试,则执行步骤S41,若为顺序测试,则执行步骤S42;
步骤S41,服务端向客户端发送测速命令,并与客户端配合进行TCP网速测试和/或HTTP网速测试;
步骤S42,判断当前服务端是否有TCP网速测试和/或HTTP网速测试正在执行,若有,则执行步骤S421,若无,则执行步骤S422;
步骤S421,服务端向客户端发送等待命令,客户端接收到所述等待命令后执行需要进行的所述网页测速的网速测试请求,服务端在执行完当前TCP网速测试和/或HTTP网速测试进入空闲后,从所述等待队列里读取并执行下一个TCP网速测试和/或HTTP网速测试的网速测试请求,并向相应的客户端发送测速命令,客户端在收到服务端的测速命令后暂停所述网页测速的网速测试请求,并与服务端配合进行TCP网速测试和/或HTTP网速测试;
步骤S422,服务端向客户端发送测速命令,并与客户端配合进行TCP网速测试和/或HTTP网速测试。
优选的,所述网速测试请求以哈希表(hashmap)的形式发送。具体的,客户端在开始测试后,将以hashmap的形式,发送一组网速测试请求。Hash表中包括,测试类型(压力测试、顺序测试)、测速类型(TCP测速、HTTP测速)、客户端IP地址、客户端生成结果前缀、客户端MAC地址、测试状态(开始测试、结束测试)、监听端口和访问时间。
较佳的,所述网速测试请求还包括客户端IP地址、客户端生成结果前缀、客户端MAC地址、监听端口和访问时间。具体的,服务端可以根据所述客户端生成结果前缀和客户端IP地址找到正在排队的网速测试请求。
优选的,所述TCP网速测试的执行步骤包括:
利用套接字(socket)在服务端与客户端之间以预设测试时间间隔传送不同的数据包,在预设固定时间内分若干个线程以占满带宽的形式传送每个数据包,获取在所有数据包传送过程中服务端与客户端之间的TCP网速数据。具体的,本实施例采用C/S(Client/Server)架构,分为服务器端和客户端两部分,TCP网络测速是利用套接字传送数据包,在固定时间内分四个线程以占满带宽的形式传送数据,从而测得网络宽带的实际数据,由于网络存在波动性,所以,测试数据不能以一组为准,一般会持续测试一段时间,并设置固定测试间隔,统计最终获得的数据才能得到网络带宽的准确值,可以excel文件格式输出最终的TCP网速数据。
优选的,所述TCP网速数据包括:
宽带线路在所述预设固定时间内的往返时延、每秒上传速率、每秒下载速率、上传平均数据传输速率、下载平均数据传输速率、上传带宽(上传峰值速率)、下载带宽(下载峰值速率)、下载UPD(User Datagram Protocol用户数据报协议)丢包率和上传UDP丢包率。具体的,TCP网络测速分为上传测试与下载测试两部分,分别测试一条宽带的上传与下载能力。
较佳的,获取上传UDP丢包率时,以上传带宽的80%的速度传输小于1KB的数据报来测试网络带宽的丢包率,并保证数据报以均匀的速度发出;
获取所述下载UPD丢包率时,以所述下载带宽的80%的速度传输小于1KB的数据报来测试网络带宽的丢包率,并保证数据报以均匀的速度发出。具体的,UDP丢包率是利用UDP以带宽的80%的速度传输小于1KB的数据报来测试网络带宽的丢包率。为了防止数据阻塞导致的丢包率上升,在发送数据报的同时,可做数据报的流量控制,基本保证数据报以均匀的速度发出。TCP网络测速最终生成的测试结果具体如图4所示。
优选的,所述HTTP网速测试的执行步骤包括:
分若干个线程从所述服务端下载一个预设大小的文件至所述客户端,获取所述下载过程中的HTTP网速数据。具体的,可以如图5所示的excel文件格式输出最终的HTTP网速数据。
优选的,所述预设大小的文件为大于500MB的文件。
较佳的,所述若干个线程为4至6个线程。
优选的,所述HTTP网速数据包括每秒下载速度、平均下载速度和峰值下载速度。具体的,以常用的HTTP下载的形式,客户端分四线程从服务端下载一个大于500MB的文件,模拟用户下载文件的过程以获取用户下载感知速度,具体可测试一条宽带在固定时间内的每秒下载速度、平均下载速度和峰值下载速度。
优选的,所述网页测速的执行步骤包括:
客户端布置的网页测速站点,自动使用IE浏览器打开在客户端的所述网页测速站点,利用插件记录下访问所述网页测速站点的网页速度数据。具体的,通过使用客户端内自行布置的网页测速站点,自动使用IE浏览器打开相关网页测速站点,在网页测速站点打开的同时,利用插件记录下访问网页测速站点各阶段所需的时间,同时检测浏览器使用的端口,来获得浏览器在当打开网页测速站点页面的各个阶段收取的数据量,从而获得客户访问指定网页测速站点的网页速度数据。例如,可以在如图6所示的界面设置需要测试速度的网页测速站点的地址,然后点击开始测试按钮,弹出如图7所述的网页测速站点的主页,接着,在如图8所示的界面会对网页测速站点会自动进行网速测试,测速期间会弹出如图9所示的受测试网页的界面,该界面后来会自动关闭,最后会得到如图10所示的网页速度数据。较佳的,所述网页速度数据可包括网页面完全加载时间、网页面完全加载所收到的数据量、链接DNS服务器所用时间、链接DNS服务器所收到的数据量、收取首字节数据所用时间、客户端与网站第一次链接成功所用的时间和客户端与网站第一次链接成功所收到的数据量。
较佳的,所述测速类型还包括视频观看测速。
优选的,所述视频观看测速的执行步骤包括:
停止所述客户端的所述TCP网速测试和HTTP网速测试,并通过Java媒体框架(JMF)从所述服务端获取一固定时间长度的视频在客户端进行播放,获取所述视频在播放过程中的播放速度数据。具体的,可以excel文件格式输出最终的播放速度数据。具体的,在客户端,为保证测试数据的准确性,需要停止所有其他测速才能进行视频观看测速,可通过流媒体传输从服务端获取一段5~30分钟的视频播放给客户端的用户观看,并在用户观看的过程中记录下客户端打开视频并播放所需的时间和播放中每秒的下载速度等参数,并独立生成如图11所示的播放速度数据的结果文件。而在服务端,视频观看测速和其他测速可并行实施,由于服务端的带宽远大于客户端,所以并不会造成带宽压力导致影响其他测试数据的准确性。
优选的,所述播放速度数据包括打开视频并播放所需时间、缓冲时间的参数和播放中每秒的下载速度。具体的,视频观看测速采用JMF播放存储在服务器端的视频的方法模拟用户在最佳状态下观看视频的过程,测试用户在观看视频时的网络速度和视频的缓冲时间的参数,获取用户观看视频感知速度。视频观看测速流程可以是用户手动流程,独立于TCP网速测试、HTTP网速测试之外,用户主动触发时实现测速。
更详细的,本方法可采用Windows XP操作系统,8.0及以上IE(InternetExplorer),微软库采用VC2005库环境(vcredist_x86.exe),服务端可布设在运营商核心网络端,在核心交换出口处运行,客户端可布设在接入网的用户端,以模拟普通家庭或企业用户的网络环境进行网络速度的测试,具体的网络部署结构如图12所示,其中,服务端可采用打包式安装,客户端的系统软件安装步骤具体可如下:
1、在如图13所示的界面中点击setup.exe程序,选择安装语言为中文。
2、进入如图14所示的安装程序开始界面,点击“下一步”。
3、可单击“更改”按钮选择安装路径,考虑到测试时期产生的文件容量,可将程序安装在较大的硬盘内,尽量不要安装在系统盘,文件夹路径尽量不要出现中文字符,否则会出现乱码或无法启动的情况
4、点击“安装”按钮开始安装。
5、安装结束后,进入安装路径,点击testpage\xampp\setup_xampp.bat快捷方式进入DOS界面后按“1”并回车,安装XAMPP1.7.7服务器。
安装完毕后,需要对系统进行一定的配置,才能正常使用方法,具体配置步骤如下:
1、在如图15所示的界面中选中“我的电脑->控制面板->网络连接->本地连接”鼠标右键,点击“属性”。
2、在如图16所示的界面中选中“Microsoft网络客户端”选项,点击“安装”按钮。
3、在如图17所示的界面中选中“服务”选项,点击“添加”按钮,在“选择设备”弹出框里点击“确定”按钮。
4、在如图18所示的界面中的“从磁盘安装”弹出框里点击“浏览”按钮,进入安装路径,如图19所示的界面选中testpage\webpagetest\dummynet\netipfw.inf文件,点击“确定”按钮,在如图20所示的界面的菜单中点击“确定”按钮。
5、在如图21所示的界面中当“ipfw+dummynet”项目出现在“此连接使用下列项目”框内,表示服务安装完成。
6、服务配置完成后重启电脑。
7、电脑重启后,会自动运行xampp_start和urlBlast两个服务,等服务成功启动后,表示测速方法正常运行。如图22所示为xampp_start启动成功的界面,图23为urlBlast启动成功的界面。
8、右键Internet Explorer,点击“属性”,选中“高级”,点击“重置”按钮,重置IE浏览器,从而完成客户端系统软件的安装。
综上所述,本实施例通过TCP网速测试、HTTP网速测试、网页测速和视频观看测速,能够对一切宽带网络进行网络速度的直观及客观的检测,为用户获得准确的运营商带宽数据提供技术上的可靠支持。
实施例二
根据本发明的另一面,本发明还提供一种网速测试系统,包括客户端和服务端。
所述客户端,用于发送网速测试请求至服务端的等待队列里排队,所述网速测试请求包括测试状态、测试方式和测速类型,所述测试状态包括开始测试和结束测试,所述测试方式包括多个客户端同时进行的压力测试和多个客户端依次进行的顺序测试,所述测速类型包括TCP网速测试、HTTP网速测试和网页测速,当接收到服务端发送的等待命令后执行需要进行的所述网页测速的网速测试请求,客户端在收到服务端的测速命令后暂停所述网页测速的网速测试请求,并与服务端配合进行TCP网速测试和/或HTTP网速测试。
优选的,所述网速测试请求以哈希表(hashmap)的形式发送。具体的,客户端在开始测试后,将以hashmap的形式,发送一组网速测试请求。Hash表中包括,测试类型(压力测试、顺序测试)、测速类型(TCP测速、HTTP测速)、客户端IP地址、客户端生成结果前缀、客户端MAC地址、测试状态(开始测试、结束测试)、监听端口和访问时间。
较佳的,所述网速测试请求还包括客户端IP地址、客户端生成结果前缀、客户端MAC地址、监听端口和访问时间。具体的,服务端可以根据所述客户端生成结果前缀和客户端IP地址找到正在排队的网速测试请求。
所述服务端,用于判断收到的网速测试请求中的测试状态的种类,若为结束测试,则服务端判断该网速测试请求是否正在执行,若未执行,则将该网速测试请求从等待队列里删除;若正在执行,则停止该网速测试请求的执行后,读取执行所述等待队列里的下一个网速测试请求;若为开始测试,则服务端判断测试方式的种类,若为压力测试,则服务端向客户端发送测速命令,并与客户端配合进行TCP网速测试和/或HTTP网速测试;若为顺序测试,则判断当前服务端是否有TCP网速测试和/或HTTP网速测试正在执行,若有,则向客户端发送等待命令,在执行完当前TCP网速测试和/或HTTP网速测试后,从所述等待队列里读取并执行下一个TCP网速测试和/或HTTP网速测试的网速测试请求,并向相应的客户端发送测速命令;若无,则服务端与客户端配合进行TCP网速测试和/或HTTP网速测试。
优选的,所述服务端与客户端用于在所述TCP网速测试中,利用套接字(socket)在服务端与客户端之间以预设测试时间间隔传送不同的数据包,在预设固定时间内分若干个线程以占满带宽的形式传送每个数据包,获取在所有数据包传送过程中服务端与客户端之间的TCP网速数据。具体的,本实施例采用C/S(Client/Server)架构,分为服务器端和客户端两部分,TCP网络测速是利用套接字传送数据包,在固定时间内分四个线程以占满带宽的形式传送数据,从而测得网络宽带的实际数据,由于网络存在波动性,所以,测试数据不能以一组为准,一般会持续测试一段时间,并设置固定测试间隔,统计最终获得的数据才能得到网络带宽的准确值,可以excel文件格式输出最终的TCP网速数据。
优选的,所述TCP网速数据包括:
宽带线路在所述预设固定时间内的往返时延、每秒上传速率、每秒下载速率、上传平均数据传输速率、下载平均数据传输速率、上传带宽(上传峰值速率)、下载带宽(下载峰值速率)、下载UPD(User Datagram Protocol用户数据报协议)丢包率和上传UDP丢包率。具体的,TCP网络测速分为上传测试与下载测试两部分,分别测试一条宽带的上传与下载能力。
较佳的,获取上传UDP丢包率时,以上传带宽的80%的速度传输小于1KB的数据报来测试网络带宽的丢包率,并保证数据报以均匀的速度发出;
获取所述下载UPD丢包率时,以所述下载带宽的80%的速度传输小于1KB的数据报来测试网络带宽的丢包率,并保证数据报以均匀的速度发出。具体的,UDP丢包率是利用UDP以带宽的80%的速度传输小于1KB的数据报来测试网络带宽的丢包率。为了防止数据阻塞导致的丢包率上升,在发送数据报的同时,可做数据报的流量控制,基本保证数据报以均匀的速度发出。TCP网络测速最终生成的测试结果具体如图4所示。
较佳的,所述客户端用于在所述HTTP网速测试中,分若干个线程从所述服务端下载一个预设大小的文件至所述客户端,获取所述下载过程中的HTTP网速数据。具体的,可以如图5所示的excel文件格式输出最终的HTTP网速数据。
优选的,所述预设大小的文件为大于500MB的文件。
较佳的,所述若干个线程为4至6个线程。
优选的,所述HTTP网速数据包括每秒下载速度、平均下载速度和峰值下载速度。具体的,以常用的HTTP下载的形式,客户端分四线程从服务端下载一个大于500MB的文件,模拟用户下载文件的过程以获取用户下载感知速度,具体可测试一条宽带在固定时间内的每秒下载速度、平均下载速度和峰值下载速度。
较佳的,所述客户端用于在所述网页测速中,布置的网页测速站点,自动使用IE浏览器打开所述网页测速站点,利用插件记录下访问所述网页测速站点的网页速度数据。具体的,通过使用客户端内自行布置的网页测速站点,自动使用IE浏览器打开相关网页测速站点,在网页测速站点打开的同时,利用插件记录下访问网页测速站点各阶段所需的时间,同时检测浏览器使用的端口,来获得浏览器在当打开网页测速站点页面的各个阶段收取的数据量,从而获得客户访问指定网页测速站点的网页速度数据。例如,可以在如图6所示的界面设置需要测试速度的网页测速站点的地址,然后点击开始测试按钮,弹出如图7所述的网页测速站点的主页,接着,在如图8所示的界面会对网页测速站点会自动进行网速测试,测速期间会弹出如图9所示的受测试网页的界面,该界面后来会自动关闭,最后会得到如图10所示的网页速度数据。较佳的,所述网页速度数据可包括网页面完全加载时间、网页面完全加载所收到的数据量、链接DNS服务器所用时间、链接DNS服务器所收到的数据量、收取首字节数据所用时间、客户端与网站第一次链接成功所用的时间和客户端与网站第一次链接成功所收到的数据量。
较佳的,所述测速类型还包括视频观看测速,视频观看测速中所述客户端用于停止所述TCP网速测试和HTTP网速测试,并通过Java媒体框架(JMF)从所述服务端获取一固定时间长度的视频进行播放,获取所述视频在播放过程中的播放速度数据。具体的,可以excel文件格式输出最终的播放速度数据。具体的,在客户端,为保证测试数据的准确性,需要停止所有其他测速才能进行视频观看测速,可通过流媒体传输从服务端获取一段5~30分钟的视频播放给客户端的用户观看,并在用户观看的过程中记录下客户端打开视频并播放所需的时间和播放中每秒的下载速度等参数,并独立生成如图11所示的播放速度数据的结果文件。而在服务端,视频观看测速和其他测速可并行实施,由于服务端的带宽远大于客户端,所以并不会造成带宽压力导致影响其他测试数据的准确性。
优选的,所述播放速度数据包括打开视频并播放所需时间、缓冲时间的参数和播放中每秒的下载速度。具体的,视频观看测速采用JMF播放存储在服务器端的视频的方法模拟用户在最佳状态下观看视频的过程,测试用户在观看视频时的网络速度和视频的缓冲时间的参数,获取用户观看视频感知速度。视频观看测速流程可以是用户手动流程,独立于TCP网速测试、HTTP网速测试之外,用户主动触发时实现测速。
更详细的,本方法可采用Windows XP操作系统,8.0及以上IE(InternetExplorer),微软库采用VC2005库环境(vcredist_x86.exe),服务端可布设在运营商核心网络端,在核心交换出口处运行,客户端可布设在接入网的用户端,以模拟普通家庭或企业用户的网络环境进行网络速度的测试,具体的网络部署结构如图12所示,其中,服务端可采用打包式安装,客户端的系统软件安装步骤具体可如下:
1、在如图13所示的界面中点击setup.exe程序,选择安装语言为中文。
2、进入如图14所示的安装程序开始界面,点击“下一步”。
3、可单击“更改”按钮选择安装路径,考虑到测试时期产生的文件容量,可将程序安装在较大的硬盘内,尽量不要安装在系统盘,文件夹路径尽量不要出现中文字符,否则会出现乱码或无法启动的情况
4、点击“安装”按钮开始安装。
5、安装结束后,进入安装路径,点击testpage\xampp\setup_xampp.bat快捷方式进入DOS界面后按“1”并回车,安装XAMPP1.7.7服务器。
安装完毕后,需要对系统进行一定的配置,才能正常使用方法,具体配置步骤如下:
1、在如图15所示的界面中选中“我的电脑->控制面板->网络连接->本地连接”鼠标右键,点击“属性”。
2、在如图16所示的界面中选中“Microsoft网络客户端”选项,点击“安装”按钮。
3、在如图17所示的界面中选中“服务”选项,点击“添加”按钮,在“选择设备”弹出框里点击“确定”按钮。
4、在如图18所示的界面中的“从磁盘安装”弹出框里点击“浏览”按钮,进入安装路径,如图19所示的界面选中testpage\webpagetest\dummynet\netipfw.inf文件,点击“确定”按钮,在如图20所示的界面的菜单中点击“确定”按钮。
5、在如图21所示的界面中当“ipfw+dummynet”项目出现在“此连接使用下列项目”框内,表示服务安装完成。
6、服务配置完成后重启电脑。
7、电脑重启后,会自动运行xampp_start和urlBlast两个服务,等服务成功启动后,表示测速方法正常运行。如图22所示为xampp_start启动成功的界面,图23为urlBlast启动成功的界面。
8、右键Internet Explorer,点击“属性”,选中“高级”,点击“重置”按钮,重置IE浏览器,从而完成客户端系统软件的安装。
本实施例通过TCP网速测试、HTTP网速测试、网页测速和视频观看测速,能够对一切宽带网络进行网络速度的直观及客观的检测,为用户获得准确的运营商带宽数据提供技术上的可靠支持。
综上所述,本发明通过客户端发送网速测试请求至服务端的等待队列里排队,所述网速测试请求包括测试状态、测试方式和测速类型,所述测试状态包括开始测试和结束测试,所述测试方式包括多个客户端同时进行的压力测试和多个客户端依次进行的顺序测试,所述测速类型包括TCP网速测试、HTTP网速测试和网页测速;服务端判断收到的网速测试请求中的测试状态的种类,若为结束测试,则服务端判断该网速测试请求是否正在执行,若未执行,则将该网速测试请求从等待队列里删除;若正在执行,则停止该网速测试请求的执行后,读取执行所述等待队列里的下一个网速测试请求;若为开始测试,则服务端判断测试方式的种类,若为压力测试,则服务端向客户端发送测速命令,并与客户端配合进行TCP网速测试和/或HTTP网速测试;若为顺序测试,则判断当前服务端是否有TCP网速测试和/或HTTP网速测试正在执行,若有,则向客户端发送等待命令,客户端接收到所述等待命令后执行需要进行的所述网页测速的网速测试请求,服务端在执行完当前TCP网速测试和/或HTTP网速测试后,从所述等待队列里读取并执行下一个TCP网速测试和/或HTTP网速测试的网速测试请求,并向相应的客户端发送测速命令,客户端在收到服务端的测速命令后暂停所述网页测速的网速测试请求,并与服务端配合进行TCP网速测试和/或HTTP网速测试;若无,则服务端向客户端发送测速命令,并与客户端配合进行TCP网速测试和/或HTTP网速测试,能够对一切宽带网络进行网络速度的直观及客观的检测,为用户获得准确的运营商带宽数据提供技术上的可靠支持。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。