开发测试过程中的网络问题处理总结和案例分析

发表于:2017-8-11 14:27  作者:谢恒   来源:大商所行业测试中心

字体: | 上一篇 | 下一篇 | 打印 |我要投稿 | 推荐标签: 软件测试 业务测试

   本文总结了在交易系统及其业务系统的开发测试中,针对网络问题的分析和排障经验,介绍了网络模型的基本结构,总结了如何使用简单的工具快速确定问题属于哪个网络层。同时,本文着重介绍了如何巧用抓包工具诊断和分析问题,为相似问题的处理提供了借鉴。
  1.背景 
  网络作为最基础的IT资源,不论是开发、测试还是运维岗位,在日常工作中都需要与其打交道。相比于计算、存储等资源,网络模型相对比较复杂。OSI将其细分为7层,硬件方面不仅涉及到交换机、路由器和防火墙等链路硬件设备,也涉及到服务器、客户端等终端;此外,出于安全或者管理需求,各个设备都可能配置相应的访问策略,用户的应用也可能配置相应的网络策略。因此,看似简单的网络通讯,每个数据包的传输都可谓历经重重“考验”。正是由于网络模型和配置的复杂性,在日常工作中不可避免碰到各种网络问题,有些问题的定位和处理可能花费较多时间。快速定位和解决网络问题可以加快开发测试环境的建立。此外,合理使用一些网络诊断工具甚至可以帮助开发测试人员理解程序运行过程,为解决问题提供思路,因此有必要对其进行总结。
  本文是在交易系统及其业务系统日常的开发、测试过程中,针对网络问题排障的经验总结。旨在通过简单有效的工具,定位网络问题所在的层次,以帮助开发、测试和运维人员快速部署环境,提高工作效率。
  2.网络模型简介和分析过程
  在OSI网络模型中,可按不同层次粗分为五个层次,分别是物理层、数据链路层、网络层、传输层和应用层。在各层中都有相应的协议完成对应的功能,具体可总结为下表。
  表1 OSI五层模型描述及协议举例
  虽然网络模型相对而言比较复杂,且设备种类和配置项多,定位问题需要一定的基础知识和经验,但在实际排查问题过程中,可以通过简单的工具进行测试,大致判断出问题属于模型中的哪一层,然后使用具体的分析工具或者寻求相应岗位的支持。
  可以看到,网络层位于五层模型最中间,且该层提供了日常应用中最常见的工具,如ping命令等。因此,从网络层入手排查问题通常是一个不错的选择,可以将问题限定在下面三层或者上面两层。例如,如果测试人员发现A服务无法访问B服务,先从A所在的服务器pingB所在的服务器,如果可以通,说明物理层、数据链路层和网络层是没问题的,可以将问题定位于传输层和应用层。
  在数据链路层,可以先判断机器是否与其网关连通,如果不能连通,则可能是网络设备的配置或者安全策略,如交换机端口、trunk模式、路由器转发策略等问题,此类问题通常由专门的基础设施岗位人员负责,可以寻求他们的帮助。
  如果问题在传输层和应用层,可以简单的命令判断端到端口的连接情况,如使用telnet命令。考虑到服务的正常访问需要网络(包括访问策略)和服务本身两者都正常,因此可以先从本机telnet该端口,如果可以访问,则说明服务正常,问题可能在网络。如果端口不可访问,则说明服务没有正常启动,需要着重排查服务本身是否正常。如果他机可以正常访问服务端口,这时可以使用更为复杂的分析工具,如Wireshark,tcpdump等抓包分析。
  诊断网络问题的步骤可以用图1描述。
  图1 网络问题的一般诊断流程
  上图是在交易系统及其业务系统的开发和测试过程中,针对网络问题的排障所总结的诊断步骤。需要指出,在实际工作中碰到的网络问题千差万别,有的甚至需要网络方面专家的协助,因此这个诊断过程是针对一般的、大部分的网络排障经验的总结。
  针对抓包分析,本文第三部分列举了一些案例来说明如何恰当的使用抓包工具以达到事半功倍的效果。

21/212>

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2017, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道