论文部分内容阅读
自20世纪90年代以来,以Internet为代表的计算机网络技术突飞猛进。它被广泛用于经济、文化、军事、教育等社会生活的各个方面。随着这一技术的不断向前发展,计算机网络安全技术显得日益重要。如何保证网络的安全,不受外来的攻击,传输的信息不被窃取,这就需要有强大的、可靠的网络安全工具来支持。
计算机之间进行通信时,交互的所有信息都封装在数据包中。因此,通过采集网络数据并对其进行相应的分析,可以清楚地了解到进行通信的计算机的通信目的。分析采集到的数据包,可以确定网络是否受到攻击入侵;其次,也可以使用采集到的数据包来分析网络应用程序可能出现的问题的原因;此外,通过网络数据采集和统计可以清楚的了解整个网络在各个时段内的网络负载情况,从而判断网络使用得是否合理。除了以上谈到的几个方面以外,数据包采集分析还有其他很多用途。
在研究IPv4网络的同时,还对IPv6协议进行了初步的研究并通过对数据报的分析,了解了在不同网络环境下IPv6数据报的封装格式以及在网络中的传输路经。目前,在同一子网范围内,可以通过IPv6邻居发现协议自动配置主机的本地-链路IPv6地址,并获取子网内其他主机的通信地址,通过该地址可以实现子网内的主机间纯IPv6环境下的通信。但由于现在整个因特网并不支持IPv6协议,因此IPv6数据报要在网间传输,必须通过基于双协议栈的IPv4隧道(Tunnel)技术,将IPv6数据报封装在IPv4包头中,并通过指定的支持IPv6协议的路由在Internet中传送到目的地,再由目的主机进行数据报解析,获取IPv6数据报中的信息。
在对上述问题研究的基础上,利用WinPcap实现了基于动态链表的数据采集系统和网络流量自动监测系统。在数据采集系统中的关键问题在于,如何解决所捕获的网络数据包的采集保存问题。在网络中,数据流量随时间变化而变化,因此无法准确估计固定时间内的数据流量。这样在应用程序中,如果分配一段固定的内存大小,用于存放捕获的数据,可能会造成在通信量高峰期时,出现由于分配的内存过小而出现内存溢出;在通信低谷时,可能出现分配内存过大而造成浪费内存。而在数据存盘问题上,如果采用定时存盘,可能会造成在存放数据时影响数据包的捕获,从而造成数据包的丢失。就会在存盘时造成降低数据包的捕获数量。为解决此问题,选择采用动态链表存放捕获的数据,为每一个数据包分配一个节点,将数据包中关键信息存放在节点中,并在采集结束时通过多线程进行数据存盘,为每一台主机的数据链表分配一个线程,这样能使各链表存盘相互独立,一根链表在存盘时产生错误,不会影响到其它的链表存储。最小程度的减少了存盘错误引起的数据损失。且在数据采集结束后存盘能最大限度的捕获到网络中的数据包,使应用程序达到最佳性能。
在网络流量自动监测系统中,对网络数据流量随时间变化进行统计,并通过折线图示表示出来。利用图示显示的数据报流量随时间变化,我们能及时掌握网内不同时刻网络流量的变化,了解到某一时段网络流量较大,网络利用率较高;另一时段网络流量较小,网络利用率较低。通过对网络流量折线图的研究,就可以合理分配网络通信的使用量,使网络使用趋于平衡,可以降低网络负荷,减少网络阻塞的情况发生。