《《精编》学位论文之网络流量测量软件的设计与实现》由会员分享,可在线阅读,更多相关《《精编》学位论文之网络流量测量软件的设计与实现(25页珍藏版)》请在金锄头文库上搜索。
1、 密级 NANCHANG UNIVERSITY 学学 士士 学学 位位 论论 文文 THESIS OF BACHELOR 2002 2005 年 题 目 网络流量测量软件的设计与实现网络流量测量软件的设计与实现 学 院 信息工程学院信息工程学院 系 计算机计算机 专 业 计算机科学与技术计算机科学与技术 班 级 新余函授站新余函授站 学 号 学生姓名 指导教师 起讫日期 2005 3 22 2005 5 20 网络流量测量软件的设计与实现 摘摘 要 要 为了方便网络编程 90 年代初 由 Microsoft 联合了其他 几家公司共同制定了一套 WINDOWS 下的网络编程接口 即 Window
2、s Sockets 规范 它不是一种网络协议 而是一套开放的 支持多种协 议的 Windows 下的网络编程接口 本篇论文主要是介绍了在 TCP IP 基础上利用 winsock2 对网卡进行编程 以达到网络流量监测的目的 论文首先介绍了 TCP IP 协议 旨在介绍 IP TCP UDP 等比较重要 的协议 主要是介绍 IP 头 TCP 头 UDP 头的特点 以便从 IP 头中 可以获取源地址 目的地址 协议类型等信息 在随后的章节中提 出了 Socket 的概念 Socket 实际上提供了一个通信端口使所有拥 有 Socket 的端口的计算机之间能够相互通信 在本论文中主要说明 了 soc
3、ket 的建立 监听和撤销的过程 具体到程序实现中 对网卡 混杂模式的设置是通过原始套接字 raw socket 来实现的 为了 让原始套接字能接受所有的数据 还需要通过将 SOCK RAW 设置成 SIO RCVALL 对数据包的获取通过 recv 函数来完成 最后要完成 的工作就是对所捕获的 IP 数据包进行分析以提取出我们所需要的信 息 在论文的最后是旨在说明进一步工作的展开 关键字 TCP IP Winsock 原始套接字 NetBios Abstract For convenience of network programming in the early 1990s a new s
4、et of network programming interface using under WINDOWS was established by some companies united by Microsoft It is known as Windows Socket Norm It isn t a kind of network protocol but an open network programming interface support multiple protocols under WINDOWS The main purpose of the thesis is to
5、 introduce how to use Winsock2 program on network adapter under the protocol of TCP IP This is for the purpose of measure the network discharge At the beginning of the thesis we introduce all important protocols of TCP IP like IP TCP and UDP We introduce IP header TCP header and UDP header for the m
6、ost important because we need acquire the information of source address destination address and protocol type from the IP header In the following section we give the concept of Socket Sockets actually provide a communication port to allow all the computers that have Socket port to communicate with e
7、ach other In the thesis we talk on the process of the Socket s building listening and canceling In the program we use RAW Socket to set adapter on the mixed mode To let the Socket receive all data we also need to set the on SIO RCVALL Then we use the function recv to get data pack At last we need an
8、alyze the data pack to get the information we need KEYKEY WORDSWORDS TCP IP Winsock RAW SOCKET NetBIOS 目目 录录 摘 要 1 Abstract 2 前 言 4 第一章 绪论 5 1 1 TCP IP 协议及其协议分析方法 5 1 1 1 分层 5 1 1 2 IP 地址 6 1 1 3 端口 6 1 1 4 TCP IP 协议在 Windows 中的实现 7 1 2 Winsock 编程 7 1 3 网络流量测量的程序实现原理 8 第二章 TCP IP 协议集 9 2 1 TCP IP 协议
9、简介 9 2 2 IP 协议 9 2 3 TCP 协议 10 2 3 1 TCP 服务模型 10 2 3 2 TCP 数据段头 11 2 3 3 TCP 协议的建立 12 2 4 UDP 协议 13 第三章 WINSOCK 编程概述 14 3 1 套接字的概念 14 3 2 套接字的种类 14 3 3 套接字的建立 14 第四章 网络流量测量的程序实现 16 4 1 网卡初始化 16 4 1 1 NetBios 概述 16 4 1 2 利用 NetBios 来初始化网卡 16 4 2 原始套接字的设置 16 4 3 IP 包的协议分析 17 4 4 结果与测试 19 结 论 21 结束语 22
10、 参考文献 23 前前 言言 随着计算机网络技术日新月异的发展 Internet 的逐渐普及 网络对于人们已经不再 是一个陌生的概念 可以说 网络已经在很多人的生活中占据了重要的地位 于是 各种 各样的软件随之诞生 使人们能够更加方便 快捷的访问网络 了解网络以充分的利用网 络 本论文就是向大家介绍网络中比较常用的技术 网络流量的监测 在介绍具体的程 序实现之前 论文首先介绍了 TCP IP 协议 可以说 任何网络技术都与 TCP IP 协议有着 密切的关联 TCP IP 协议给不同型号的计算机 不同的操作系统之间提供了相互通信的平 台 TCP IP 起源于 60 年代末美国政府资助的一个分组
11、交换网络研究项目 到现在 90 年代 已发展成为计算机之间最常应用的组网形式 它是一个真正的开放系统 因为协议组件的 定义及其多种实现可以不用花钱或花很少的钱就可以公开地得到 在进行网络流量的测量之前 我们首先要对本地机的信息有一个了解 这些信息的获 取是通过 Netbios 来完成的 Netbios 利用其网络控制快 NCB 来完成我们需要它去完成的 对网卡的初始化工作 通过 ncb command 来发出命令完成对网卡的操作 通过发送 NCBENUM 命令获取网卡的数目和每个网卡的内部编号 对选定的网卡发送一个 NCBRESET 命 令 以便进行初始化 接着 可以发送 NCBASTAT 命
12、令以获取网卡的信息 这样 我们可以 读出网卡的 MAC 地址以便进行进一步的工作 要实现网络流量的测量 Winsock 给我们提供了一个接口 我们通过这个接口可以实 现对 IP 层以上的层的数据包的监测 我们通过建立原始套接字 利用 Winsock 提供给我们 的一些特定的函数就可以完成对网络数据包的捕获 首先需要建立一个 socket 将它设置 成为是对 ip 头的操作 然后利用 gethostname phost 获取本机名 本机 ip 地址 将本机 地址与 IP 地址绑定之后 将网卡设置为混杂模式 以便对所有经过它的数据包进行接收 在这些准备工作已经做好之后 余下的就是利用 recv 来
13、捕获网络中的数据包 到现在为止 我们所作的工作都是分析工作的铺垫 我们最后所要看到的就是网络数 据包的分析结果 在数据包的分析过程中 用户一般想得到的主要信息不外乎是包的协议 类型 源 目的地址 发送 接收端口以及包的大小 定义指针 分别指向数据包的相对应 的位置就可以得到这些信息 将得到的信息罗列并显示出来之后 我们就完成了对网络中 数据包的流量监测过程 在论文的最后对整篇论文进行了总结 说明了一些不足之处 并对所有对这篇论文知 道并建议的老师等表示感谢 第一章第一章 绪论绪论 1 11 1 TCP IPTCP IP 协议及其协议分析方法协议及其协议分析方法 TCP IP 起源于 60 年代
14、末美国政府资助的一个分组交换网络的研究项目 到现在 90 年 代已发展成为计算机之间最常用的组网形式 它是一个真正的开放系统 因为协议组件的 定义及其多种实现可以不用花钱或花很少的钱就可以公开地得到 它成为被称作 全球互 联网 或 因特网 Internet 的基础 1 1 11 1 1 分层分层 协议分层的概念的提出是为了减少协议设计的复杂性 每一层都建立到它的下层之上 每一层的目的就是为了向上一层提供特定的服务 一台机器的第 n 层向另一台机器的第 n 层会话 通话的规则称为协议 分层和协议构成了网络体系结构 在提到了分层的概念时就不能不提一下 OSI 参考模型 该模型基于国际化标准组织 共
15、分为七层 物理层 涉及到通信在信道上传输的原始比特流 数据链路层 加强物理层传输原始比特流的功能 使之对网络层显现为一条无错 线路 网络层 关系到子网的运行控制 其中一个关键的问题就是路由选择 传输层 为用户提供端到端的数据传送服务 会话层 允许不同机器上的用户建立会话关系 为用户提供会话控制服务 表示层 为用户提供数据转换和表示服务 应用层 为用户提供访问 OSI 的接口 其中包括大量的常见的协议 TCP IP 通常被认为是一个四层协议系统 每一层负责不同的功能 数据链路层 通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡 它们一起处理与电缆 或其他任何传输媒介 的物理接口细节 网
16、络层 处理分组在网络中的活动 例如分组的路由选择 在 TCP IP 协议组件中 网络层协议包括 IP 协议 网际协议 ICMP 协议 Internet 互连网控制报文协议 以及 IGMP 协议 Internet 组管理协议 运输层 主要为两台主机上的应用程序提供端到端的通信 在 TCP IP 协议组件中 有两个互不相同的传输协议 TCP 传输控制协议 和 UDP 用户数据报协议 TCP 为两台主机提供高可靠性的数据通信 而另一方面 UDP 则为应用层提供一种 非常简单的服务 它只是把称作数据报的分组从一台主机发送到另一台主机 但并不 保证该数据报能到达另一端 应用层 负责处理特定的应用程序细节 几乎各种不同的 TCP IP 实现都会提供下 面这些通用的应用程序 Telnet 远程登录 FTP 文件传输协议 SMTP 用于电子邮 件的简单邮件传输协议 SNMP 简单网络管理协议 图 1 1 OSI 模型与 TCP IP 模型的比较 如图所示 OSI 模型有七层 而 TCP IP 模型只有 4 层 OSI 模型在网络层支持无连接 和面向连接的通信 而 TCP IP 模型在网络层仅有无连接的