网络计费系统的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
基于数据链路层的网络计费方式中关键的技术在于链路层数据包的捕获及分析。首先,本文介绍了用于数据包捕获的网络嗅探技术的工作原理,并给出应用winpcap实现数据包获取类的设计。然后在介绍了分层网络数据包的类型及结构的基础上,给出数据包分析处理类的设计。分析出的有用信息存于参数类中记录入数据库,供计费模块所用。关键词:包捕获;网络嗅探器;winpcap;包分析
Abstract
The key technology of net-charging based on data-link Layer is the capture and analysis of data frame. Firstly, the paper introduces the principle of sniffer technology to capture data packets and presents the design of packet capture class. Then, It introduces the types and structures of packets and presents the design of packet analysis class. Being adopted in the net-charging module,the useful information in parameter class are stored into the database system.
Key words: Capture;Sniffer;Winpcap;Analysis
目录
1.绪论 (1)
1.1问题的提出 (1)
1.2网络计费方式 (1)
1.3本文研究内容 (3)
1.4本文的组织 (3)
2.网络嗅探的工作原理 (4)
2.1基础知识 (5)
2.1.1以太网络的工作原理 (5)
2.1.2以太网卡工作模式及原理 (6)
2.1.3 HUB工作原理 (6)
2.1.4局域网如何工作 (7)
2.2 Sniffer原理 (8)
3.数据包的分析 (10)
3.1分层协议 (10)
3.1.1数据链路帧 (11)
3.1.2 ARP 数据包 (12)
3.1.3 IP数据报 (13)
3.1.4 TCP 数据报 (14)
3.1.5 UDP数据报 (16)
3.1.6 ICMP 报文 (16)
3.2系统中数据包处理的实现 (17)
4.基于Winpcap的数据包获取实现 (18)
4.1 BPF (18)
4.1.1 Libpcap (19)
4.1.2 Libpcap 函数库框架 (19)
4.2 Winpcap (20)
4.2.1 winpcap 结构分析 (20)
4.2.2 wpcap. dll库函数介绍 (22)
结论 (23)
致谢 (24)
参考文献 (25)
1.绪论
1.1问题的提出
面对世界新科技革命的挑战和我国经济发展对科技不断增长的需求,我国作出了加快科技进步,实施科教兴国的重大战略决策。在这一重大决策的指导下,协调推进工业化与信息化的发展就成为历史的必然。按照协调推进工业化和信息化的要求,那就是要在全社会广泛应用信息技术,提高计算机和网络的普及应用程度,加强信息资源的开发利用。政府行政管理,社会公共服务,企业生产经营都要运用数字化、网络化技术,加快信息化步伐。当前,随着政府上网和企业上网工程的全面展开,各个政府部门及企事业单位Internet应用越来越走向深入。
在初期的宽带网络建设中,从重量级的电信企业到房地产商都投身到这场意图改变中国百姓生活的信息化建设中。但人们逐渐认识到,在这场没有硝烟的战争中,宽带应用才是真正的主宰者,于是人们纷纷寻找适合宽带网络的应用支撑技术。宽带给互联网带来了新的一页,带来了更多精彩的多媒体应用。当宽带接入的收费与拨号的费用相差无几的时候,宽带接入代替了原有大部分的拨号接入。宽带接入的发展,给人们带来了无穷无尽的资源,可以在信息高速公路上尽情驰骋。网上办公、可视听在线会议、远程炒股、在线欣赏影视大片、和远方的朋友交流……宽带让人们的生活越来越丰富多彩。但是在享受丰富的网络生活的同时,引发的宽带计费问题也越来越突出。各单位除了建网的一次性投资外,更多面临的是日常网络使用费的问题,这其中除专线月租费、端口费、IP地址费等固定费用外,长期、不确定的费用便是ISP收取的专线网络数据流量费。由于ISP通常不提供上网流量统计查询手段,而是每月提供一张收费单,因此在收到ISP的流量收费清单之前,专线用户单位往往不清楚自己的网络使用及费用情况,无法控制每月的网络使用费用。
另外,即使是包月收费,专线用户单位也应该对其内部各个部门或各台机器的网络使用情况做到心中有数。如此看来,按照“谁使用,谁付费”的原则,建立自己的网络统计计费系统,随时掌握本单位各个部门及用户的网络使用情况,收取适当的网络使用费用,将有利于加强网络管理,保证网络的合理、有效利用。
1.2网络计费方式
网络计费系统通常包括数据采集、数据处理、费用计算、计费信息查询、计费规则管理和用户管理等模块。当前,根据流量数据采集方式的不同,网络计费系统大体可划分为以下几种类型:[12]
(1)基于路由器的网络计费系统:
当网络达到一定程度或者说要求统计相当大的一个网段的流量,路由器必须用作整个网络的通向广域网的出路,所以路由器可作为流量统计的硬件位置。现在,路由器也的确提供这种流量统计功能,能够给出类似于日志的流量统计的结果。因此基于路由器的网络计费系统定时读取路由器MIB管理信息库中的IP计费表,并将这些采集到的数据处理后装入数据库中,在此数据库基础上进行统计计费等管理工作。但为路由器增加流量统计任务必然会加重其工作负载,而且,与计费相关的数据变量如不及时读取就会溢出,造成数据丢失。因此数据采集周期要求很短。这样,越是网络流量大的路由器就越是频繁传递采集数据,如此会使网络带宽更为拥挤,而且直接对路由器访问影响整个系统的安全。
此外,由于这种计费方式是按IP地址统计流量,对于在公共网络机房上网的用户就无法统计其流量。另外,在采用DHCP进行IP地址动态分配时,无法分辨是哪台机器或哪个用户产生的流量。并且它是基于第三层(IP)的包统计与网上实际的流量本身就有一定的差距。
(2)基于代理服务器的网络计费系统:
由于代理服务器负责整个局域网对外部网络的访问工作,凡是通向局域网以外的所有包都由服务器转发,所以利用它进行流量统计相当方便。现在大多数代理服务器软件产品具有登记内部网用户访问外部网的日志记录,有些产品还可以直接将日志记录到数据库中。日志记录包括用户标志、客户机IP地址、建立连接的时间、传送字节数、请求连接远程站点的URL等信息。根据日志记录文件或数据库,可以统计内部网每个用户的网络流量以及上网时间,甚至可以按服务网络类型(如:HTTP、SMIP、FTP等)分别进行统计。当然,基于代理服务器的数据流量统计方法同样也适用于局域网拨号上网的情况。但这种方法只适合于小型局域网,网络一旦达到一定程度,就不是一台代理服务器能解决的问题了。
(3)基于网桥的网络计费系统:
这个方法是在1997年提出的。其核心思想是将一台PC机设计成网桥放在局域网的出口,负责转发所有的帧,在转发的同时将其记录下来,再设计程序进行统计。这种方法在思路上有所突破,但PC机的负担太重,它负责整个网段的所有数据的转发,同时进行统计,一旦网络出现大量突发数据,可能会影响这个网络的工作,统计也会受影响。而且人们一般关心的是出入整个子网的流量特别是分别统计出流向国外和国内的数据量,如果一个子网不得不包含几个网桥,则每个网桥受到的数据可能重叠,在流量统计时可能会出现一些错误。