收藏 分享(赏)

编程实现简单的流量统计器16p.doc

上传人:无敌 文档编号:1060171 上传时间:2018-06-08 格式:DOC 页数:16 大小:646.52KB
下载 相关 举报
编程实现简单的流量统计器16p.doc_第1页
第1页 / 共16页
编程实现简单的流量统计器16p.doc_第2页
第2页 / 共16页
编程实现简单的流量统计器16p.doc_第3页
第3页 / 共16页
编程实现简单的流量统计器16p.doc_第4页
第4页 / 共16页
编程实现简单的流量统计器16p.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、 姓名 编程实现简单的流量统计器的设计 第 1 页 共 16 页1目录目录 .1摘要 .21 引言 .21.1 课程设计目的 .21.2 课程设计内容 .31.3 课程设计要求 .32 设计原理 .32.1 流量统计器的工作原理 .42.2 JAVA JPCAP 原理 .43 设计步骤 .53.1 相关必须程序包的安装 和解压 .53.2 Myeclipse 下的运 行 .74 出现的问题及解决方法 .105 结束语 .11参考文献 .12程序附录: .13姓名 编程实现简单的流量统计器的设计 第 2 页 共 16 页2编程实现简单的流量统计器学生姓名: 指导老师:摘要:它 是 一 个 可 以

2、 记 录 访 客 来 源 地 址 ( 包 括 ip、 转 入 地 址 、 搜 索 引 擎 地 址 、关 键 词 、 ie浏 览 器 型 号 等 ) , 被 访 问 页 面 地 址 ( 受 访 页 面 , 停 留 时 间 、 转 出地 址 等 ) 的 数 字 递 增 的 源 代 码 程 序 。 通过使用JAVA中的JPCAP包设计并实现了一个流量统计系统.关键词:JAVA;JPCAP;编程;流量统计器。1 引言计算机网络是这个时代的基石,整个信息的流动和交换全部依托于这个庞大的网络系统。如果这个信息网络出现问题和故障,则会给社会、团体、个人等带来很大的损失。有效的网络管理不仅能够保证网络的正常运

3、行,而且能够有效地避免网络故障给我们带来的损失。在网络管理过程中,网络流量监控是整个网络管理的一个重要部分。对于一个网络管理员,有效的网络流量监控不仅能够让网络管理人员能够及时了解网络的运行状态,并且能够对网络出现的问题作出及时调整和排除。1.1 课程设计目的以基础技能训练和能力培养为主线,从培养学生动手能力,培养工程技术实际应用型人才入手,强化综合性、实际性。目的是通过实习使学生掌握计算机网络的实际开发所要掌握技术,培养其动手能力,观察能力,分析和解决实际问题的能力,巩固、加深理论课知识,增加感性认识,进一步加深对计算机姓名 编程实现简单的流量统计器的设计 第 3 页 共 16 页3网络的理

4、解,提高对网络中所于奥实现的功能的系统设计能力和调试能力。1.2 课程设计内容1.利用原始套接字实现简单的流量统计器。2.系统功能包括:2.1 原始套接字与网卡邦定,并接收流经网卡的所有数据包;2.2 对数据包进行分析以获得源 IP 地址和目的 IP 地址;2.3 对数据包进行分析以获得运输层协议类型;2.4 对数据包进行分析以获得数据包的长度;2.5 对本机发送、接收的各运输层协议的数据流量进行统计,并显示统计结果。1.3 课程设计要求(1)按要求编写课程设计报告书,能正确阐述设计结果。(2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。(3)学会文献检索的基本方法和综合

5、运用文献的能力。(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。2 设计原理姓名 编程实现简单的流量统计器的设计 第 4 页 共 16 页4图 2-1 流量统计器工作原理图2.1 流量统计器的工作原理源 代 码 放 置 在 网 页 中 , 每 次 有 用 户 浏 览 到 这 个 网 页 时 就 会 触 发 这 个 源 代码 程 序 工 作 , 然 后 以 全 程 记 录 所 有 信 息 , 并 以 数 字 递 增 的 方 式 把 结 果 统 计 出来 传 到 服 务 器 , 再 到 程 序 的 服 务 器 后 台 进 行 具 体 分 析 并 实 时 保 存 , 这 就 是流 量

6、统 计 器 的 原 理 了 。2.2 JAVA JPCAP 原理Java 语言虽然在 TCP/UDP 传输方面给予了良好的定义,但对于网络层以下的控制,却是无能为力的。JPCAP 扩展包弥补了这一点。JPCAP 实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,JPCAP 调用wincap/libpcap,而给 Java 语言提供一个公共的接口,从而实现了平台无关性。局域网监听利用的是所谓的“ARP 欺骗”技术。在以前曾经一段阶段,局域网的布局是使用总线式(或集线式)结构,要到达监听只需要将网卡设定为混杂模式即可,但现在的局域网络普遍采用的是交换式网络,所以单纯靠混杂模式来达到监听的

7、方法已经不可行了。所以为了达到监听的目的,我们需要“欺骗”路由器、 “欺骗”交换机,即“ARP 欺骗”技术。假设本机为 A,监听目标为 B。首先,伪造一个 ARP REPLY 包,数据链路层头及 ARP 内容部分的源 MAC 地址填入 A 的 MAC 地址,而源 IP 部分填入网关 IP,目的地址填入 B 的 MAC、IP,然后将这个包发送给 B,而 B 接收到这个伪造的 ARP REPLY 包后,由于源 IP 为网关 IP,于是在它的 ARP 缓存表里刷新了一项,将(网关 IP,网关 MAC)刷新成(网关 IP,A 的 MAC) 。而 B 要访问外部的网都需要经过网关,这时候这些要经过网关的

8、包就通通流到 A 的机器上来了。接着,再伪造一个 ARP REPLY 包,数据链路层头及 ARP 内容部分的源 MAC地址填入 A 的 MAC 地址,而源 IP 部分填入 B 的 IP,目的地址填入网关MAC、IP,然后将这个包发给网关,网关接收到这个伪造的 ARP REPLY 包后,由于源 IP 为 B 的 IP,于是在它的 ARP 缓存表里刷新了一项,将(B 的 IP,B 的姓名 编程实现简单的流量统计器的设计 第 5 页 共 16 页5MAC)刷新成(B 的 IP,A 的 MAC) 。这时候外部传给 B 的数据包经过网关时,就通通转发给 A。这样还只是拦截了 B 的数据包而已,B 并不能

9、上网解决方法是将接收到的包,除了目的地址部分稍做修改,其它原封不动的再转发出去,这样就达到了监听的目的在 B 不知不觉中浏览了 B 所有的对外数据包。3 设计步骤3.1 相关必须程序包的安装和解压1.JpcapSetup-0.7.exe 的安装,双击即可。图 3-1 JPCAP 包的安装2. WinPcap4.0.exe 的安装,双击即可。姓名 编程实现简单的流量统计器的设计 第 6 页 共 16 页6图 3-2 JPCAP 包的安装3. JpcapDumper-src.zip,解压。图 3-3 JPCAP 包的安装3.2 Myeclipse 下的运行1.运输层 TCP 协议包姓名 编程实现简

10、单的流量统计器的设计 第 7 页 共 16 页7this.packetCount+;/ 如果截获的包为 TCP 包if (packet instanceof jpcap.packet.TCPPacket) this.tcpPacketCount+;TCPPacket tcp = (TCPPacket) packet;this.tcppPacketLength += tcp.len;System.out.println(“=“);System.out.println(“TCPPacket“);System.out.println(“|*此数据包的源 IP 地址:“ + tcp.src_ip);S

11、ystem.out.println(“|*此数据包的目的 IP 地址:“ + tcp.dst_ip);System.out.println(“|*此数据包的传输层协议类型: “ + tcp.protocol + “(TCP)“);System.out.println(“|*此数据包的长度:“ + tcp.len);图 3-2-1 TCP 协议包的统计结果姓名 编程实现简单的流量统计器的设计 第 8 页 共 16 页8图 3-2-2 TCP 协议包的统计结果2.运输层UDP协议包/ 如果截获的包为 UDP 包this.udpPacketCount+;UDPPacket udp = (UDPPac

12、ket) packet;this.udpPacketLength += udp.len;System.out.println(“=“);System.out.println(“UDPPacket“);System.out.println(“|*此数据包的源 IP 地址:“ + udp.src_ip);System.out.println(“|*此数据包的目的 IP 地址:“ + udp.dst_ip);System.out.println(“|*此数据包的传输层协议类型: “ + udp.protocol + “(UDP)“);System.out.println(“|*此数据包的长度:“ +

13、 udp.len);姓名 编程实现简单的流量统计器的设计 第 9 页 共 16 页9图3-2-3 UDP协议包的统计结果3.协议包总统计System.out.println(“截止到目前:“);System.out.println(“|捕获到的运输层协议包的总数为: “ + this.packetCount);System.out.println(“|*捕获到 TCPPacket 包的总数为:“ + this.tcpPacketCount+ “,总数据包长度为“ + this.tcppPacketLength);System.out.println(“|*捕获到 UDPPacket 包的总数为:“ + this.udpPacketCount+ “,总数据包长度为“ + this.udpPacketLength);图 3-2-4 JPCAP 下流量统计器的统计结果姓名 编程实现简单的流量统计器的设计 第 10 页 共 16 页104 出现的问题及解决方法本次课程设计由于自己对知识的掌握不足够,所以出现了一些问题,不过在老师和同学的帮助下顺利克服了这个难题。例如对JAVA语言不熟悉,和JPCAP包的不了解,导致程序运行不成功。在调试的过程中,对myeclipse软件不够熟练,以至于调试了很长时间才得出结果。因此,掌握好相关的知识,做课程设计的时候才能得心应手。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报