论文部分内容阅读
在信息为主的当今社会,计算机网络技术发展非常快,人们对计算机网络中的设备性能要求越来越高,这样网络设备厂商对网络设备的测试是非常重要的一个环节,特别是最后的系统测试。在对网络设备(主要指路由器、交换机和网关)进行系统测试或回归测试时,特别是针对这些网络产品的TCP/IP协议栈进行稳定性或安全性测试,必须确保开发出来的产品在遇到各种不规则的错误的IP数据包时仍可正常稳定高效地工作。但是该测试中存在着一个问题,就是在正常的计算机网络环境中,很难产生自己想要的IP数据报文。考虑到现在的网路设备厂商程序开发环境及测试部门的测试工具的开发和测试环境都是在Linux环境下,但是在Linux环境下的IP发包软件非常少,其中用的最多的就是sendip软件,但是它所支持的数据包类型非常少,不能满足对网络设备进行测试的常用IP数据包类型。所以设计一款在Linux平台下开发的,能够构造在对网络设备进行测试时需要的常用类型的IP数据包的发包软件是一件非常有实际意义的事情。因此,本论文是设计一款能够在Linux平台下对网络设备(主要指路由器、交换机及网关)的TCP/IP协议族进行测试的IP流量发生器。根据对网络设备进行测试时需要的常用的IP数据包类型,本IP流量发生器支持的IP数据报文类型有:IPv4、IPv6、ICMP、NTP、TCP、UDP、RIP、BGP等IP数据报文类型,本软件暂时命名为packetsend。本文主要围绕Linux内核和TCP/IP协议族,对IP流量发生器的设计和实现方法进行研究。首先对自动化测试、Linux操作系统的发展和进展情况进行了论述,并对设计一款流量发生器的课题背景进行了阐述。其次讨论了IP流量发生器的相关技术,包括:Linux的内核、进程通信和套接字技术,其中对套接字技术中的原始套接字(SOCK_RAW)技术进行了重点讨论。接着讨论了IP流量发生器的设计算法、IP流量发生器的系统分析和设计及IP流量发生器中各个模块的详细设计。在系统分析设计中讨论了IP流量发生器的系统调用、公共函数设计和主要的数据结构的设计;在各个模块中主要对IP流量发生器中涉及到TCP/IP协议族中的协议进行了讨论,包括协议的数据包首部的数据结构的设计和各协议字段的默认值设置。在文章的最后给出了流量发生器的测试和全文的总结,并提出了将来需要进一步深入研究和完成的工作。