二、功能模块设计概述
2.1 基本需求
测试两个节点之间的通信延时;
延时计算要求精确到毫秒级;
多次(不少于10次,每次测试不少于30个样本点数据)测试,完成延时变化图表和统计平均延时,以及分析延时变化特点;
测试与某台指定计算机之间的延时;
测试数据存放在日志文件中;
设计不少于三种不同的测试场景,如从距离的角度,从计算机是否忙于本地其它工作的角度(如播放视频),从计算机是否忙于其他下载的角度;
另外编写程序或使用工具软件分析测试数据,如计算均值、方差、作图等;
软件具有图形化界面,或者有命令行式菜单,可连续测试,可调整测试参数,如一次测试需要多个样本点;
2.2 功能概述
能够测量客户端程序与服务器程序之间的通信延时;
能够动态接收用户参数,调整测试方式;
能够计算统计信息,生成相关图表;
2.3 主要技术指标
测量通信延时的精确度;
客户端程序的易用性;
2.4 关键问题分析及解决思路
2.4.1 消除主机处理时间与ARP对延时的影响
通过大部分服务器本身自带的“回音壁”服务器辅助,即通过 简单TCP/IP服务 中的 ECHO(端口7)进行,通过测量远程服务器的回传时间,使得主机处理时间与ARP殉职时间。
2.4.2 测量传输延时与主机距离的关系
通过多线程机制,自动搜索各个网段上的回音壁服务器,测量延时和通过Traceroute计算跳数。
2.4.3 自动生成Excel图表
本机安装Microsoft Office 2013后,通过调用Excel的COM接口,将测试数据动态转换为Excel 图表。
2.7 各子模块方案设计
2.7.1 服务器部分
网络回传模块
采用TCP和/或UDP协议侦听指定端口,收到请求后自动建立连接。对于TCP协议采用逐字节回传策略,每从客户端接收一个字节便回送该字节,以减小本地处理延时;对于UDP协议采用逐数据报回传策略。
状态控制模块
根据用户的操作,能够实时响应用户的开启或关闭服务器请求。
2.7.2 客户端部分
网络通信模块
采用TCP和/或UDP协议,通过用户输入的IP地址和端口号,(连接目的端点并)向目的端点发送测试消息,记录(连接目的端点和)发送消息的时刻值,等待并接收回送消息。若收到回送消息,记录接收消息的时刻值,若没有接收到消息,记录错误信息。
进程控制模块
维护线程池和任务队列,控制后台线程的运行与停止。线程池用于在自动探测模式下按照特定规则生成IP地址队列,利用线程池对上述IP地址端口7进行测试。
图形交互模块
接收用户输入参数,显示实时信息。
图表输出模块
根据测试数据,调用Excel的COM接口,生成相应的Excel图表。
三、接口设计
3.1 外部接口关系
软件使用了Office 2013的COM接口(https://msdn.microsoft.com/zh-cn/library/office/microsoft.office.interop.excel.aspx ),其详细接口信息可以写一本书,此处从略。
3.2 内部接口关系
ExcelBuilder接口,在用户交互模块中调用。
四、模块详细设计
4.1 报文格式及定义
使用TCP及UDP协议的标准报文格式。
4.2 协议描述
使用Socket库文件中封装的TCP及UDP协议。
4.3 子模块设计
ExcelBuilder,用于Excel动态图表的构造,由于构造Excel图表本身是较为独立的功能,与具体的数据内容无关,故构建为独立项目。
五、界面展示
输入校验
完整的源码和详细的文档,上传到了 WRITE-BUG技术共享平台 上,需要的请自取:
https://www.write-bug.com/article/3014.html