网站大量收购独家精品文档,联系QQ:2885784924

监控IP数据包流量.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
监控IP数据包流量

目 录 1 课程设计目的 1 2 课程设计要求 1 3 相关知识 1 4 课程设计分析 1 5 程序代码 3 6 运行结果与分析 8 7 参考文献 9 1 课程设计目的 IP协议是TCP/IP协议簇中的核心协议。熟悉IP协议对于理解TCP/IP协议结构具有重要意义。本课程设计的主要目的是通过监控IP包流量,了解IP协议的工作原理与IP数据包的基本结构。 2 课程设计要求 根据后面介绍的IP数据包结构,编写程序监控IP数据包的流量。 以命令行形式运行: MonitorTraffic time 其中,MonitorTraffic为程序名,time为设定的监控时间(单位为分钟)。 2)输出内容:按源地址统计该时间内发送的IP包的个数。 3 相关知识 IP是TCP/IP协议体系中的网络层协议。TCP、UDP、ICMP和IGMP等其他 协议都是以IP协议为基础的。IP协议的特点如下: IP协议是一种不可靠、无连接的数据包传送协议。 IP协议是点对点的网路层通信协议。 IP协议传输层隐藏了物理网络的差异。 4课程设计分析 我们的课程设计涉及到winpcap编程。我们下载了相关软件,其中包含了wpdpack头文件包, 解压后出现了下列五个文件夹:docs、example-pcap、example-remote、include、lib。在vc中 设定include目录。具体做法如下:tools——option——directories,在include files中添加……\wpdpack\include目录;在library files中添加……\wpdpack\lib目录。 接下来进行库函数的设定:在project——settings——link中的object/library modules中添加wpcap.lib。至此,winpcap编程在vc中的编写步骤便告一段落了。 然后是对源文件的编写,其流程图如下: 图2-1 程序代码 #include iostream.h #include pcap.h #pragma comment(lib,wpcap.lib) #pragma comment(lib,ws2_32.lib) using namespace std; //IP包头部 struct IP_HEAD { unsigned char ver_ihl; //版本号+头部长度 unsigned char tos; //服务类型 unsigned short tlen; //总长度 unsigned short id; //标识 unsigned short flags; //标志+片偏移 unsigned char ttl; //生存时间 unsigned char proto; //协议 unsigned short crc; //校验和 DWORD saddr; //源地址 DWORD daddr; //目的地址 unsigned int op_pad; //选项+填充 }; //IP结点类 classIP_NODE { private: long SOURCE_ADDRESS ; //IP包的源地址 long COUNT; //IP包的个数 public: IP_NODE *pNext; //构造函数 IP_NODE(long sourceIP) { m_lIPAddress=sourceIP; COUNT=1; } //IP包的个数加1 void addCount() { COUNT++; } //返回IP包的个数 long GET_COUNT() { return COUNT; } //返回IP包的源地址 long GET_IP_ADDRESS() { return SOURCE_ADDRESS } }; //IP结点链表类 class NODE_LIST { IP_NODE *pHead; //链表头 IP_NODE *pTail; //链表尾 public: NODE_LIST() { pHead=pTail=NULL; } ~

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档