计算机网络监控ip包流量.docx
- 文档编号:5554429
- 上传时间:2022-12-25
- 格式:DOCX
- 页数:16
- 大小:51KB
计算机网络监控ip包流量.docx
《计算机网络监控ip包流量.docx》由会员分享,可在线阅读,更多相关《计算机网络监控ip包流量.docx(16页珍藏版)》请在冰豆网上搜索。
课程设计任务书
2009—2010学年第一学期
专业:
计算机应用技术学号:
姓名:
课程设计名称:
计算机网络课程设计
设计题目:
监控ip包流量
完成期限:
自2009年12月6日至2009年12月13日共1周设计目的:
监控本地网络,捕获一段时间内以本机为源或目的地址的IP数据包,统计IP数据包的信息,列出本机到相同目的地址或同一源地址到本机且数据包协议类型相同的数据包的数量。
通过编写程序,了解IP数据包的结构以及IP数据包头部各字段的含义,理解和认识IP协议的工作原理,掌握使用原始套接字(RawSocket)编程的方法。
功能要求:
分析监控ip包,编写一段程序用视图描绘
一、设计的任务:
本次课程设计,有助于熟悉IP包格式和加深对IP协议的理解,对ip包的分析和监控
二、开发工具:
VC++6.0
三、进度安排:
序号
阶段内容
所需时间
1
布置任务及调研
3天
2
系统分析与设计
2天
3
调试及报告总结
2天
合计
7天
四、主要参考资料:
[1]杨延双.TCP/IP协议分析及应用[M].北京:
人民邮电出版社.2006
[2]李树广.计算机网络[M].北京:
北京邮电大学出版社.2007
指导教师(签字):
教研室主任(签字):
批准日期:
年月日
IP就是真实流量,是有人真正浏览了您的网站而产生的流量,每台电脑只有一个IP地址,所以一个IP就是一个人,反映在统计上就是独立IP数量,IP是InternetProtocol(因特网协议)的缩写,它是通过计算机网络进行交流的最常用的协议之一。
IP监控解决方案就是通过有线或者无线IP网络把视频信息以数字化的形式来进行传输。
只要是网络可以到达的地方就一定可以实现视频监控和记录,并且这种监控还可以与很多其它类型的系统进行完美的结合,无论是由模拟摄像机加视频服务器组成的解决方案,还是单独由网络摄像机组成的解决方案,或者是两者混合组成的解决方案,IP监控都已被证明是一种极具吸引力的解决方案。
在越来越多的原有行业应用中,这种革命性的技术正在逐步取代传统的监控系统,在提高安全性的同时也进一步的降低了成本;而在许多新的应用领域,它还是第一次用到,也因此开创和激发了许多新的市场。
正是由于它系统的可扩展性,IP监控逐渐巩固了其在现有监视和远程监控行业应用的地位,也加速了在其他新兴行业的应用,监控本地网络,捕获一段时间内以本机为源或目的地址的IP数据包,统计IP数据的信息,列出本机到相同目的地址或同一源地址到本机且数据包协议类型相同的据包的数量。
IP协议的目标很简单:
生成发往目的地的数据报,而且除了把这个数据包发送到下一跳路由器之外,不需要担心任何事情。
实际上,IP协议很复杂,否则,IP数据报头就不需要那么多的字段。
认真研究IP数据报头是非常重要的。
IP协议负责接收和发送指定IP地址数据包。
但是,IP协议并不保证数据传递的可靠性
关键字:
ip监控监控系统ip数据包
1课程设计的目的 1
2课程设计的基本要求 1
3.0简述ip协议 1
3.1ip数据包监控 2
3.2课程设计的主要内容及开发 2
3.3捕获ip包的实现原理 3
3.4界面设计与框架构建程序实现的源代码 3
3.5程序的整合与测试 7
4课程设计中的主要方案的分析比较 7
5设计结果与分析 8
6.总 结 9
主要参考文献 10
1课程设计的目的
随着Internet技术的发展,基于IP协议的应用成为网络技术研究与软件开发的一个重要基础,因此学习网络层以基本概念,了解IP协议的基本内容,对于掌握TCP/IP协议的主要内容和学习网络课程是十分重要的,通过本次课程设计,有助于熟悉IP包格式和加深对IP协议的理解。
e随着网络技术的飞速发展,链路容量和设备处理能力不断升级,Internet的规模呈爆炸性增长,社会对Internet的依赖性越来越高,随之而来,网络传输的业务类型已从简单的低带宽要求的文件传送、电子邮件等变为数据、语音、视频等大流量业务,并且,业务对可靠性,实时性,安全性传输的要求越来越高监控本地网络。
⑵捕获一段时间内以本机为源或目的地址的IP数据包,统计IP数据包的信息,列出本机到相同目的地址或同一源地址到本机且数据包协议类型相同的数据包的数量。
2课程设计的基本要求
(1)了解internet在科技发展中的速度
(2)了解ip协议的基本内容
(3)解析ip数据包编程实现
2.1捕获ip包实现
在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的的数据包。
所以我们要想实现截获流经网络设备的所有数据包,就要采取一点特别的手段了:
将网卡设置为混杂模式。
这样,该主机的网卡就可以捕获到所有流经其网卡的数据包和帧。
但是要注意一点,这种截获仅仅是数据包的一份拷贝,而不能对其进行截断。
3.0简述ip协议
IP协议直接位于2层数据链路层之上,负责生成发往目的地的数据报。
IP协议原来在RFC791中定义,后来进行了修改并且进行了多次重新修订。
⑶但是,IP协议的基本设计思想仍没有变。
IP层不提供任何类型的流量控制或者排序功能。
这些功能留给上层。
我们将使用“数据报”(datagram)这个词汇指一个完整的IP信息,使用“数据包”(packet)这个词汇指一个单个的IP数据包。
IP协议负责接收和发送指定IP地址数据包。
但是,IP协议并不保证数据传递的可靠性。
在IP协议层中没有“重试一下”的概念。
由于各种原因,数据包有可能出现丢失、损坏、重复、不按照顺序传递或者延迟等问题。
IP协议还负责处理IP选项并且以ICMP错误和控制消息等方式提供反馈信息。
3.0ip协议的特点
Lip协议是一种不可靠,无联系的数据包传送协议
2.ip协议是点对点的网络层通信协议
3.ip协议向传输层隐藏了物理网络的差异
3.1ip数据包监控
ip数据包流量实时监控窗口,注意这里会监控所有的来往数据包,包括自己的,所以,如果你使用远程终端连接上来的话,你和监控机将会源源不断的产生数据流,因此建议在Filters...菜单中将自己的IP过滤掉,是它不产生影响。
在这里可以实时的看到每一个连接的流量状态,它有两个窗口,上面的是TCP的连接状态,下面的窗口可以看到UDP、ICMP、OSPF、IGRP、IGP、IGMP、GRE、ARP、RARP的数据包。
⑷可以点击s键选择排序,可以按照包的数量排序,也可按照字节的大小排序,如果因为它是实时变化的而导致看不太清楚的话,可以在Configure菜单中把Logging功能打开,它就会在/var/log把ptraf目录中记录日志,以方便你在日后查询。
IPTRAF是Linux命令行下使用的网络监视工具,功能很实用,真的不错。
可以即时监看网路流量资讯,是一款网络监测和统计生成报表的工具。
3.2课程设计的主要内容及开发
(1)操作系统:
WindowXP(sp2)
(2)开发语言:
C++语言
(3)开发工具:
VC6.0
3.3捕获ip包的实现原理
在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的的数据包。
所以我们要想实现截获流经网络设备的所有数据包,就要采取一点特别的手段了:
将网卡设置为混杂模式。
这样,该主机的网卡就可以捕获到所有流经其网卡的数据包和帧。
但是要注意一点,这种截获仅是数据报的一份拷贝,而不能对其进行截断。
3.4界面设计与框架构建程序实现的源代码
#include
#include
#include
#pragmacomment(lib,"ws2_32")
#defineIO_RCVALL_WSAIOW(IOC_VENDOR,1)
typedefstructIP_HEAD
union
{
unsignedcharVersion;
unsignedcharHeadLen;
};
unsignedcharServiceType;
unsignedshortTotalLen;
unsignedshortIdentifier;
union
{
unsignedshortFlags;
unsignedshortFragOffset;
};
unsignedcharTimeToLive;
unsignedcharProtocol;
unsignedshortHeadChecksum;
unsignedintSourceAddr;
unsignedintDestinAddr;
unsignedcharOptions;
}ip_head;
voidmain(intargc,char*argv[])
{
if(argc!
=2)
{
cout< PackParsepacket_sum"< return; } WSADATAWSAData; if(WSAStartup(MAKEWORD(2,2),&WSAData)! =0) { cout< return; } SOCKETsock=socket(AF_INET,SOCK_RAW,IPPROTO_IP); if(sock==INVALID_SOCKET) { cout< "< return; } boolflag=true; if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*) &flag,sizeof(flag))==SOCKET_ERROR) { cout< return; } charhostName[128]; if(gethostname(hostName,100)==SOCKET_ERROR) { cout< return; } hostent*pHostIP; if((pHostIP=gethostbyname(hostName))==NULL) { cout< return; } sockaddr_inhost_addr; host_addr.sin_family=AF_INET; host_addr.sin_port=htons(6000); host_addr.sin_addr=*(in_addr*)pHostIP->h_addr_list[0]; if(bind(sock,(PSOCKADDR)&host_addr,sizeof(host_addr))==SOCKET_ERROR) { cout< return; } DWORDdwBufferLen[10]; DWORDdwBufferInLen=1; DWORDdwBytesReturned=0; if(WSAIoctl(sock,IO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen), &dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL)==SOCKET_ ERROR) { cout< return; } cout< "< charbuffer[65535]; intpacksum=atoi(argv[1]); for(inti=0;i { if(recv(sock,buffer,65535,0)>0) { ip_headip=*(ip_head*)buffer; cout<<"-----------------------"< cout<<"版本: "<<(ip.Version>>4)< cout<<"头部长度: "<<((ip.HeadLen&0x0f)*4)< cout<<"服务类 型: Priority"<<(ip.ServiceType>>5)<<",Service"<<((ip.ServiceType>>1)&0 x0f)< cout<<"总长度: "< cout<<"标识符: "< cout<<"标志 位: "<<((ip.Flags>>15)&0x01)<<",DF="<<((ip.Flags>>14)&0x01)<<",Mf="<<( (ip.Flags>>13)&0x01)< cout<<"片偏移: "<<(ip.FragOffset&0x1fff)< cout<<"生存周期: "<<(int)ip.TimeToLive< cout<<"协议: Protocol"<<(int)ip.Protocol< cout<<"头部校验和: "< cout<<"原地址: "< cout<<"目的IP地址: "< } } closesocket(sock); WSACleanup(); } 3.5程序的整合与测试 4课程设计中的主要方案的分析比较 在程序的设计过程中,程序的功能编辑过程,对于大学阶段学习的语言: 汇编语言C、C++、Java等,对比于其它的几种语言,基于C++语言的是一种面向对象的语言,是一种健壮与安全的语言,对于它在大学阶段有了更多的了解,最终决定以它来实现程序的编写及其实现。 5设计结果与分析 经过这几天来翻阅及和同学的探讨,课程设计的已基本达到预期的结果,对各种汇编语言有了更进一步的了解,激起我对汇编语言的学习的更大的兴趣,结果与打算的差别不是很大。 但是还是有很多不足的地方,有些程序的应用不是很灵活,需要近一步的提高在课程设计中我对计算机网络有很大的认识和了解。 近几十年来,计算机的应用领域日益扩大,早已不再局限于简单的数值运算,而涉及到问题的分析,需要大量掌握各种汇编语言。 6.总结 通过完成本次课程设计,使我从中学到了很多语言的用法,对C,C++,JAVA这几种语言都加深了理解,使得自身能力有所增强了解决和处理问题的逻辑性的思维,在学习过程中,受益匪浅,感触很多,很多学习的理论知识终于有所实现,解决问题思路也变得更加清晰了,在实现程序的而过程中,也注意到了很多的困难,仅凭个人的掌握是不够的,还要更多的借助于学习,不断的求索,才可达到理想的目标,要想将程序设计的更加完善,还得真下上一番功夫.总之,通过这次的努力,编写出此程序,对已有知识有了更进一步的理解和认识,让我有了更好的实践,使我对计算机网络有了进一步的认识。 希望在以后的学习中,能发挥自己的优势,在以后的学习中我会不断的完善自己、不断进取。 通过本次网络课程设计,熟悉掌握VISUALC++6.0平台的基本操作,学习在该软件平台下进行程序设计。 理解记忆常用的网络协议和接口,学习对基于网络协议功能的网络编程。 这次的课程设计也使我意识到了理论与实践相结合的重要作用,学习到知识应该应用到实践中。 在此次的课程设计过程中,熟悉IP包格式和加深对IP协议的理解,告诉我们要不断地学习计算机方面的知识,精益求精,如今是信息化的时代,随着internet技术的日新月异的发展,我们更应不断地提高自己的水平,在每次的程序中能够有更多的领悟。 也让自己在程序的编译和应用上可以有更大一步的提高。 要更好的学习计算机网络和其他方便的有关知识,做到精益求精。 了解IP协议的基本内容,对于掌握TCP/IP协议的主要内容和学习网络课程是十分重要的,通过本次课程设计,有助于熟悉IP包格式和加深对IP协议的理解。 学好计算机及各种汇编语言会使我们受益匪浅。 主要参考文献 : 1]李树广.计算机网络[M].北京: 北京邮电大学出版社.2007 [2]吴功宜.计算机网络辅助上海: 机械工业出版社 [3]杨延双.TCP/IP协议分析及应用[M].北京: 人民邮电出版社.2006 [4]编程爱好者: 清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 监控 ip 流量