东北大学秦皇岛分校计算机网络课程设计

上传人:桔**** 文档编号:458018951 上传时间:2023-07-30 格式:DOC 页数:10 大小:551.50KB
返回 下载 相关 举报
东北大学秦皇岛分校计算机网络课程设计_第1页
第1页 / 共10页
东北大学秦皇岛分校计算机网络课程设计_第2页
第2页 / 共10页
东北大学秦皇岛分校计算机网络课程设计_第3页
第3页 / 共10页
东北大学秦皇岛分校计算机网络课程设计_第4页
第4页 / 共10页
东北大学秦皇岛分校计算机网络课程设计_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《东北大学秦皇岛分校计算机网络课程设计》由会员分享,可在线阅读,更多相关《东北大学秦皇岛分校计算机网络课程设计(10页珍藏版)》请在金锄头文库上搜索。

1、 计算机网络课程设计利用WinPcap编程实现监视某个特定TCP连接的程序系 别计算机与通信工程学院专 业计算机科学与技术学 号 姓 名 指导教师 2013年7月5日1.1 需求分析学会安装 WinPcap,熟悉WinPcap编程机制,学会在VC的IDE中添加相应的库文件,掌握Windows下应用程序的消息机制,利用WinPcap的过滤功能编写一个仅捕获已经分片的IP数据报的应用程序,深入地理解网络协议,了解如何分析网络的安全性和可靠性。1.2 实验要求在VC+6.0开发环境下,利用WinPcap编程实现监视某个特定TCP连接的程序并显示出来。1.3 实验原理以及相关内容 TCP协议数据传输的

2、解析 图1:TCP协议报头 应用程序分割为TCP认为最合适发送的数据块。由TCP传递给IP的信息单位叫做报文段。 当TCP发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能记时收到一个确认,它就重发这个报文段。 当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常延迟几分之一秒。 TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化如果收到报文段的检验和有差错,TCP将丢弃这个报文段和不确认收到这个报文段。 既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能失序,因此TCP报文段的到达也

3、可能失序。如果必要,TCP将对收到的数据进行排序,将收到的数据以正确的顺序交给应用层。 既然IP数据报会发生重复,TCP连接端必须丢弃重复的数据。 TCP还能提供流量控制,TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。WinPcap简明介绍WinPcap是一个开源的、运行于Win32平台的体系结构,是用于网络封包抓取的一套工具,包括一个内核级别的packet filter,一个底层的DLL(packet.dll)和一个高级的独立于系统的DLL(Wpcap.dll), packet.dll提供一个底层

4、的API,可以直接访问网络设备驱动,Wpcap.dll是一个强大的捕获程序库。它为win32应用程序提供访问网络底层的能力,Winpcap不能阻塞、过滤或控制其他应用程序数据报的发收,它仅仅只是监听共享网络上传送的数据包。本实验利用WinPcap提供的函数来设置网卡模式并捕获响应的数据包,进行解析。1.4 实验内容安装Winpcap驱动和DLL程序。在VC+中配置WinPcap,Tools-options-Directories,添加WinPcap的Include和Lib文件。如下:Winpcap功能强大,效率高,使用方便,但是,使用前的准备工作要费一番功夫,步骤如下: 步骤1:安装驱动程序。

5、下载WinPcap Driver和DLL并安装,安装后重启机器。 步骤2:下载wpdpack(Developers pack)。解压后会看到其中包含了docs、Include、lib、Examples等文件夹。 图2:Winpcap包含文件步骤3:在VC中设定Include目录及Library目录。具体做法:打开VC后,Tools-Option-Directories,在include files中添加wpdpackInclude目录(步骤2中得到的);在Library files中添加wpdpackLib目录。 图3:添加WinPcap库winpcap捕获数据包流程:计算机是通过网卡和网络中

6、其他的主机进行通信的,网卡相当于数据包进出的大门,我们平时讲的数据包的捕获相当于大门的门卫在检查进出的行人一样。在网络基础我们学习过,数据包的发送是一个封装的过程,而数据包的接收则是解封装的过程,但是封装和解封装都是在OS内核来完成的,一般的应用程序没办法获取数据包原始的内容,而Winpcap却能提供这样的功能,在数据链路层捕获数据包,提供最原始的信息。其中Winpcap捕获数据的原理在第一章已经介绍过了,大家可以回顾下。 另外,数据捕获只能捕获通过本主机网卡的数据,没法捕获其他主机上网卡的数据。 下面先看看Winpcap捕获数据时的工作流程。图4:Winpcap工作流程1.5 实验结果与分析

7、经过上述步骤的设计后,执行VC+程序,得到如下的实验结构,可以清楚的看到程序捕获监视TCP连接传输过程的报文段信息。 图5:程序初始界面 图6:显示各网卡信息并提示选择 图7:选择网卡后TCP首部字段图8:显示TCP数据包首部控制字段信息1.6实验总结在经过相应的课程如计算机网络计算机网络编程操作系统等课程的系统学习之后,可以说对计算机网络已经是耳目能熟了,所有的有关计算机网络的基础知识、基本理论、基本方法和结构体系,我都基本掌握了,但这些似乎只是纸上谈兵,倘若将这些理论性极强的东西搬上实际上应用,那我想我肯定会是无从下手,一窍不通。自认为已经掌握了一定的计算机网络理论知识在这里只能成为空谈。

8、于是在坚信“实践是检验真理的唯一标准”下,认为只有把从书本上学到的理论应用于实际的网络设计操作中去,才能真正掌握这门知识。学习和掌握网络数据包的捕获与分析技术不但有利于理解网络协议,而且对分析网络安全性和可靠性大有益处。通过上述编程,我们对Winpcap抓包的函数以及获取网络设配的函数有了初步的认识与了解。可以对实验作进一步的改进,利用Winpcap提供的包捕获功能编制一个监视某个特定TCP连接的程序,要求对TCP首部的控制字段进行详细的解析和显示,加深对网络协议的理解。1.7附源代码#include #include #include #include #pragma comment(lib

9、, ws2_32)#pragma comment(lib, wpcap)/以太帧结构体typedef struct ether_header unsigned char ether_dhost6; unsigned char ether_shost6; unsigned short ehter_type;ETH_HEADER;/IPv4报头结构体/IP头部typedef structunsigned charhdr_len:4;/ length of the headerunsigned charversion:4;/ version of IPunsigned chartos;/ type

10、of serviceunsigned shorttotal_len;/ total length of the packetunsigned shortidentifier;/ unique identifierunsigned shortfrag_and_flags;/ flagsunsigned charttl;/ time to liveunsigned charprotocol;/ protocol (TCP, UDP etc)unsigned shortchecksum;/ IP checksumunsigned longsource_ip;/ source IP addressun

11、signed longdest_ip;/ destination IP address IP_HEADER;/TCP报头结构体typedef struct tcp_header u_short SourPort; /源端口号 u_short DestPort; /目的端口号 u_long SeqNo; /序列号 u_long AckNo; /确认序列号 u_short HLen; /首部长度 u_short Flag; /标识 u_short Window; /窗口大小 u_short ChkSum; /校验和 u_short UrgPtr; /紧急指针TCP_HEADER;void Init

12、Adapter();/初始化网络适配器void dispacher_handler(u_char *user, const struct pcap_pkthdr *header, const u_char *p);/解析TCP数据包格式void CloseAdapter();/关闭网络适配器pcap_if_t *pAdaptersList, *pAdapter;char errbufPCAP_ERRBUF_SIZE;pcap_t *adhandle;int main() int count=0, number; printf(请输入最大获取包数:); scanf(%d, &number); InitAdapter();printf(源端口 目的端口 序列号 确认序列号 首部长度 标识 窗口大小 校验和 紧急指针); while(count next)iAdapterCount+;if(pAdapter-description)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号