一种监测冗余网卡切换时间的方法

文档序号:8945626阅读:976来源:国知局
一种监测冗余网卡切换时间的方法
【技术领域】
[0001]本发明涉及一种软件监测技术领域,具体地说是一种监测冗余网卡切换时间的方法。
【背景技术】
[0002]随着网络技术的高速发展以及以太网稳定性、抗干扰性和带宽问题的逐步改善,在对可靠性要求较高的通信系统中,为了提高控制系统的可靠性和抗毁性,常常采用冗余设计来作为提高设备和系统可靠性的一种方法。根据双冗余备份的要求,每个节点只能有一个IP地址,对于应用层的用户程序来说,仍呈现单网卡的特征。
[0003]其中,网络冗余切换时间是衡量该系统网络的核心标准。业内已有多种监测方法,将具有代表性的监测方法列举如下:
(I)、借助网络性能测试仪进行监测;
优点:不需另行开发监测软件;精度高;
缺点:需携带仪器,便利性不够。
[0004](2)、借助网络性能软件测试工具进行监测;
优点:不用另行开发监测软件;
缺点:第三方软件,局限性太强,如对网卡型号有限制;需提供第三方软件支持的运行环境。
[0005](3)、自研监测软件I;
方案简述:1ms发一个网络数据包,发送一定数量的数据包,通过统计丢包率得出切换时间;
优点:软件开发难度不大;思路易于理解;可支持大多数运行环境;
缺点:误差较大。
[0006](4)、自研监测软件2;
方案简述:
首先统计正常情况下收发NUM个数据包所用时间Tl ;
然后,重新收发NUM个数据包,在通信过程插拔网线共发生N次切换,统计通信时间
T2 ;
计算出切换时间=(T2-TD/N ;
优点:可支持大多数运行环境。
[0007]缺点:误差较大,因网络通信本身存在不稳定性,有时甚至会出现T2〈T1的情形。
[0008]综上所述,主流的监测技术已有很多,但并没有一种精度高、误差小、对网络流量稳定性要求低的软件监测技术。

【发明内容】

[0009]本发明的技术任务是针对以上不足之处,提供一种监测冗余网卡切换时间的方法。本发明是一种精度高、误差小、对网络流量稳定性要求低的软件监测技术。
[0010]本发明解决其技术问题所采用的技术方案是:
一种监测冗余网卡切换时间的方法,采用了流式套接字,即基于socket程序套接字完成TCP通信,运行环境为支持socket通信的平台;所述方法流程为:
(1)、主机向被测机发送多个数据包;
(2)、被测机统计所有数据包中,收到时间顺序为前后两个数据包之间的时间差,在所有的时间差中统计最大值,即一次有效的切换时间;
(3)、至少将步骤(1)、(2)重复两次进行测试,获得多个有效的切换时间;
(4)、在多个有效的切换时间中,取最大值,即为最终测试结果。
主机为服务器端,被测机为客户端。
[0011]运行环境为WindowsXP操作系统,则选择timeGetTime接口。
[0012]步骤(2)中,获取一次有效的切换时间,统计代码段如下:
DWORD tl, t2, tsub, tmax=0 ;
while(i〈N)
{
tl=timeGetTime();
ret = recv (sClient, (char *)sendMessage, 512*1024*sizeof (char), 0); if (ret == S0CKET_ERR0R)
{
printf(〃%d_send() failed!\n〃,i); break ;
}
t2=timeGetTime();tsub=t2_tl ;if (tsub>tmax)
tmax=tsub -J/统计最大间隔时间
}o
[0013]Socket是面向客户/服务器模型设计的,需针对客户和服务器程序提供不同的Socket系统调用ο
[0014]本发明的一种监测冗余网卡切换时间的方法和现有技术相比,具有以下优点:
1、可以精准的向用户反馈网络切换过程所花费的时间;
2、应用于非实时操作系统(如WindowsXP)时,还可将监测程序优先级提高,进一步提高监测精度;
3、精度高、误差小、对网络流量稳定性要求低。
【具体实施方式】
[0015]下面结合具体实施例对本发明作进一步说明。
[0016]本发明的一种监测冗余网卡切换时间的方法,采用了流式套接字,即基于socket程序套接字完成TCP通信,运行环境为支持socket通信的平台;所述方法流程为: (1)、主机向被测机发送多个数据包;
(2)、被测机统计所有数据包中,收到时间顺序为前后两个数据包之间的时间差,在所有的时间差中统计最大值,即一次有效的切换时间;
(3)、至少将步骤(1)、(2)重复两次进行测试,获得多个有效的切换时间;
(4)、在多个有效的切换时间中,取最大值,即为最终测试结果。
主机为服务器端,被测机为客户端。
[0017]运行环境为WindowsXP操作系统,则选择timeGetTime接口。
[0018]步骤(2)中,获取一次有效的切换时间,统计代码段如下:
DWORD tl, t2, tsub, tmax=0 ;
while(i〈N)
{
tl=timeGetTime();
ret = recv (sClient, (char *)sendMessage, 512*1024*sizeof (char), 0); if (ret == S0CKET_ERR0R)
{
printf(〃%d_send() failed!\n〃,i); break ;
}
t2=timeGetTime();tsub=t2_tl ;if (tsub>tmax)
tmax=tsub -J/统计最大间隔时间
}o
[0019]服务器端和客户端的通信过程在此不详述。
[0020]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种监测冗余网卡切换时间的方法的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
[0021]除说明书所述的技术特征外,均为本专业技术人员的已知技术。
【主权项】
1.一种监测冗余网卡切换时间的方法,其特征在于采用了流式套接字,即基于socket程序套接字完成TCP通信,运行环境为支持socket通信的平台;所述方法流程为: (1)、主机向被测机发送多个数据包; (2)、被测机统计所有数据包中,收到时间顺序为前后两个数据包之间的时间差,在所有的时间差中统计最大值,即一次有效的切换时间; (3)、至少将步骤(1)、(2)重复两次进行测试,获得多个有效的切换时间; (4)、在多个有效的切换时间中,取最大值,即为最终测试结果。2.根据权利要求1所述的一种监测冗余网卡切换时间的方法,其特征在于主机为服务器端,被测机为客户端。3.根据权利要求1所述的一种监测冗余网卡切换时间的方法,其特征在于运行环境为WindowsXP操作系统,则选择timeGetTime接口。4.根据权利要求1所述的一种监测冗余网卡切换时间的方法,其特征在于步骤(2)中,获取一次有效的切换时间,统计代码段如下:DWORD tl, t2, tsub, tmax=0 ; while(i〈N) {tl=timeGetTime(); ret = recv (sClient, (char *)sendMessage, 512*1024*sizeof (char), 0); if (ret == S0CKET_ERR0R){ printf(〃%d_send() failed!\n〃,i); break ;} t2=timeGetTime();tsub=t2_tl ;if (tsub>tmax) tmax=tsub -J/统计最大间隔时间 }o
【专利摘要】本发明公开了一种监测冗余网卡切换时间的方法,属于一种软件监测技术领域,本发明是一种精度高、误差小、对网络流量稳定性要求低的软件监测技术。技术方案为:采用了流式套接字,即基于socket程序套接字完成TCP通信,运行环境为支持socket通信的平台;所述方法流程为:(1)、主机向被测机发送多个数据包;(2)、被测机统计所有数据包中,收到时间顺序为前后两个数据包之间的时间差,在所有的时间差中统计最大值,即一次有效的切换时间;(3)、至少将步骤(1)、(2)重复两次进行测试,获得多个有效的切换时间;(4)、在多个有效的切换时间中,取最大值,即为最终测试结果。
【IPC分类】H04L12/26
【公开号】CN105162650
【申请号】CN201510475090
【发明人】孙超, 吴登勇, 陈乃阔
【申请人】山东超越数控电子有限公司
【公开日】2015年12月16日
【申请日】2015年8月5日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1